双向CATV网中控制信令的传送
摘要:介绍基于CATV的双向FFSK数据通信线程和软件设计的原理、流程。该装置实现简单、成本低廉、性能可靠,并在实际应用中得以成功运用。
关键词:双向CATV 窄带 FFSK
有线电视网(CATV)是中国普及最广的网络,在已建的宾馆、居民小区中绝大部分都已建成。因此利用已有的网络进行更广泛的功能的开发,如:影视点播、安防监控、自动抄表及其它的服务呼叫等,是一个值得研究的课题。这些功能实现的关键,是在同轴电缆中控制信令的可靠实现。
在CATV网中,由于分支较多、用户繁杂、线路老化等原因,不可避免地会造成大量的干扰信号的窜入。在实际的频谱测试中,整个其带经常被噪波干扰抬高,因此,寻找廉价且可靠的线路和传送方案变得尤为重要。为此,我们通过长期的试验和实验,研制出一成本极其低廉,性能相当可靠的工作电路和通信方案,并在实际装机运行中使用。
1 硬件组成及原理框图
1.1 传输通道
根据国际,数据信息只能在双向CATV网的低端通过,允许分布的频率为65MHz以下。鉴于此,我们采用的通信频率分别为:上行信号采用无线信号工作方式,频点为21.7MHz,采用窄带方式,带宽为20kHz;下行信号采用电视信号的工作方式,中心频率为38MHz,带宽为8MHz。为加强抗干扰能力,上、下行被调制的信号采用FFSK方式,速率为1.2Kb/s。
图1 数据中心采集卡的通信线路原理方框图
采用此种通信方式的另一种考虑是成本及可生产化。数据采集中心与控制终端的通信系统是典型的一对多的通信,控制终端数量众多,应尽可能地设计得简单、低廉、精确;而数据采集心的采集卡则相对可靠即可。因此,在控制终端线路上的窄带发射电路,为保证频点精确且不漂移,舍弃LC振荡电路采用晶体振荡,定制晶体频率为21.7MHz,带宽为5kHz。通过对电源的控制来实现对振荡电路起振与否的控制。接收电路采用电视信号解调芯片TA7606,解调出音频FFSK信号。数据采集中心的采集卡相对应的接收电路采用窄带接收芯片MC3363。MC3363是一个由RF放大器到音频前置放大器输出的完整的FM窄带接收机。低电压双变换设计产生了用于窄带音频和数据链路的低功耗、高灵敏度和优越的图像载波抑制功能。MC3363具有较高的灵敏度,对于12dB SINAD(信号对噪声的先真比)的典型的输入值为0.3μV。输入信号先通过两级本生振荡器的差频输出到455kHz以下,然后再对信号限幅放大,最后经过正交检波输出音频范围内的有用信号。虽然CATV网是有线的,但MC3363用在此处可大大提高上行信号的灵敏度,在信噪比较低时也能接收得很好。发射电路采用电视信号的中频电路,即采用芯片MC1374,它的工作频率也是晶体通过第6脚输入的调制FFSK信号,硬件框图如图1所示。综合数据处理中心的采集卡和终端的控制卡,上行和下行信号发射的工作频率都是通过晶体振荡产生的。这种设计思路将大大方便于调试、生产。上行信号采用窄带是因为MC3363的接收性能极优,同时节省频率资源;javascript:window.open(this.src);" style="cursor:pointer;"/>而下行信号采用电视信号是因为成本低廉且便于调试、生产。图1是数据中心采集卡的通信线程原理方框图。
1.2 控制线程
采集卡的主控制芯片采用华邦公司的W77E58,主要出于三方面的考虑:
一是工作频率高,最高可达40MHz,而且W77E58的机器工作频率只是晶体振荡频率的4分频,即40MHz的频率相当于普通MCS-51系列单片机的120MHz。由于数据处理中心的采集卡要接收及处理多个终端来的信息,快速处理数据是必需的。二是W77E58拥有2个全双工异步串口,给采集卡与数据控制中心的数据交换提供了便利。三是W77E58片内有1KB的SRAM(采用MOVX指令),无须外扩数据存储芯片。当然,W77E58不还有其它一些特点也为程序设计带来了极大的便利:双16位的数据指针、WatchDog定时器等。FFSK调制解调芯片采用Toshiba公司的TC35470。该芯片有极少的外部线程,宽电压(2.7~5.5V)和低功耗,内部抗电源干扰电路和抗噪声滤波器。TC35470采用3.58MHz晶体,CPU的5根线相连,分别为:RTM(4脚)FFSK接收解调时钟输出,RDT(5脚)FFSK接收解调数据输出,TD(11脚)FFSK发送调制时钟输出,TRD(12脚)FFSK发送调制数据输入,MSKE(13脚)FFSK解调允许输出控制脚。W77E58的双串口有各自的用途:一串口通过RS232与控制主机相连,用以数据的通信;另一串口与其它设备相连。
由于终端所在的环境千变尤化,千差万别,因此终端控制线路最关心的硬件设计是抗干扰和低功耗。为此,我们采用TI公司的MSP430系列的MSP430F1111芯片。该芯片具有ESD保护,抗干扰能力特别强,低电压的工作范围1.8~3.6V和超低功耗。它与TC35470组成终端的控制线路,可将电压设计成3V,大大节省了耗电,使锂电池供电成为可能。由于一个数据处理中心的采集卡要对应于多个终端,而多个终端共用一个上行通道,因此,MSP430F1111除了与TC35470的五根口线相连外,还须提供一口线控制电源以决定窄带晶体振荡电路是否工作。这里因为振荡频率已达21.7MHz,无法通过电子开关来实现关断。MSP430F1111剩下的8个I/O口线可用做一些开关量的输入/输出,可对一些报警信号进行检测,按钮信号读取,驱动一些控制开关。
2 通信信令方式
由于CATV网络系统中众多的终端用户,采用一一“点名”的主从结构通信方式会使得整个通信周期太长。同时,在该网络用户中,大多通信事件的发起者应该是终端用户而不是数据处理中心,而且在众多用户中,在某一时刻真正需要传输数据的用户不可能很多。正因为大多通信事件的发起者是终端用户,我们何不采用随机信息上行的方案?考虑到以上各种因素,我们决定采用类似于无线集群通信的通信信令——ALOHA方式。
ALOHA信令是Motorola公司专为无线集群通信设定的控制信道通信协议,主要是针对于一个中心控制台对众多的手机用户且事件发起者为终端用户的情况,其核心内容是随机访问协议。随机访问协议的宗旨是:
*控制解决终端用户上行信号的碰撞问题;
*使终端用户的通信信息最快地上行;
*确何可靠性;javascript:window.open(this.src);" style="cursor:pointer;"/>
*在通信繁忙时也能保证通信有效。
当然,ALOHA控制信令的内容比较复杂,我们只采用了其中基本原理,并做了一定的修改,以适用本系统的应用环境。下面介绍其实现原理。
数据采集中心一直有信号向下发送,所以FFSK信号分成三类:
①空闲信令。该类信号一直下行,它是一种与终端约定的协议,表示紧接着的一段时间是采集卡接收终端初始上行信号的多个时钟间隙。一时间间隙表示一帧终端上行信号所需的时间长度。空闲信令本身包括空闲指令码+时间间隔数值。时间间隔数值表示紧接着的时间间隙的个数,它不是一个固定的数值。这个数据应该随着系统终端个数的多少和系统所要传输量数据多少进行最优化的设计;同时,也要随着采集卡收到要求信息交互的终端数的多少而变化。只有进行这样的变化,才能保证ALOHA随机访问协议的宗旨。根据前面硬件的设计,终端的上行信号的发射电路在平时是无电停振状态。当它要发射信号时,应给它的起振时间约为10ms,因此这一时间间隙应包括起振时间。
②应答信号。当采集卡收到终端的上行信息时,立刻给出应答信号。此应答信号包含终端地址。
③交互信令。给出应答信号后,采集卡还对信号进行分析,对于需要进一步交互的信息内容,立刻在空闲信令及时间间隙后跟上交互信令,同时跟上一帧的时间间隙以接收上行信号。交互信令也是由两个部分组成:交互指令码和需交互的终端地址。当在交互信令的时间间隔得到上行信号时也需给出应答信号。当收到上行的结束信号时,取消该地址的交互信令。
终端所发FFSK信号分成两类:
①申请上行信号。终端控制板一直通过外部中断口对数据中心采集卡的下行空闲信令进行检测。当它有数据需要上行时,根据下行的空闲信令所得的时刻与现在这一刻进行比较判断,在下一时间间隙立刻发射数据。信号发送后立刻检测采集卡的应答信号,这一定时间内若无应答信号,则说明刚才的上行信号没有被采集卡检测到,需要再一次发送申请上行信号。一般而言,数据中心得不到数据是因为有两个或两个以上的用户“同抢”时隙。这样,再一次发射信息就要采用随机发射方式:根据本机的一随机数据发和函数得到一单字节的随机数,除以时间间隙数,得一随机余数。该随机余数即为本次申请上行信号发生所占的时间间隙。之所以要有一随机数据的发生函数,是因为采集卡的下行空闲信令之后的时间间隙的个数有限,为了效地干扰。若还不成功,就需要根据信息的重要程度不同进行不的处理:报警型就要重复刚才的过程,直到收到应答信号为止;一般的信息只需重复一定次数,若还不成功就可放弃。对于那些需进一步信息交互的内容,终端单片机对采集卡的下行信号进一步检测,当检测到交互信令时,就进行下一步的信息交互。申请上行信号由两部分组成:终端地址和真正上行信息。
②交互行信号。检测到交经信令时,终端就可以发送交互的上行信号了。一帧交互上行信号可根据实际需要设计得与一帧申请上行信号不一样长。当信息交互完毕时,终端发送结束信息,以便采集卡收回该终端的交互信令时序。由于下行的交互信号中包含地址内容,因此交互上行信号只有信息内容。为了数据输送的可检验,数据的传送通过CRC校验。
采用上述通信方式,通过试验数据传送既快无好,即使碰了多个用户“同抢”的情况也能将信息顺利上达。
3 软件设计
在完成硬件设计和确定通信原理后,收发软件设计中,最主要是怎样把握时间间隙的计算。通过时间的延迟是可以达到这样的目的,但这样做要实现多样的延时,在实际试验中既不利于实现也不准确。我们采用的方法是:对芯片T35470,通过计算FFSK接收解调时钟输出RTM脚的脉冲个数来达到计时的目的。因为,此脚一直产生1.2kHz的方波,一个脉冲时间为0.83ms。比如,在终端每次发送信息应起振振荡线路,时间约为10ms。我们就可以通过计12个脉冲来达到延时目的。下行信号留出的每个时间间隙都应包括这12个脉冲的时间。实际上,随机函数也是通过计RTM脚脉冲的方式来实现的,这样也便于随机时隙的计算。
前已述及在外部中断服务子程序中,单片同对采集卡的空闲信号一直都在采集,中断就是由RTM脚脉冲引起的,在此服务子程序中也实现对RTM脉冲计数并实现随机函数。采集卡和终端的通信程序流程如图2、图3所示。