1 引言
板间通信总线是决定SDH系统设备是否稳定可靠工作的关键技术之一。板间通信的物理层信道不可能不发生差错.必须选择合适的数据链路层协议克服有差错的信道。SDH系统网元内的板间通信受成本和复杂性的限制,一般都建议采用单板Mcu系统内置的串行通信机制来完成,MCU器件内置的通信接口中,以传统的UART串行通信接口较为常见,UART异步串行通信理论上最大的速率为115 200b/s,因而传输效率低下,只适合板间简单信息的互通。随着单板软件复杂程度的提高.通过板间通信总线传递的带宽要求也会不断增加:同时随着系统变得更加复杂,板间通信总线报文本身的长度也在不断增加中,板间的通信数据流量越来越大.对板间通信总线的传输要求也不断提高。针对UART方式速率上的不足,拟对HDLC协议进行研究.并选用Motormla 的MPC852T型处理器.利用其对HDLC协议的支持,尝试采用HDLC协议进行板间通信,验证其在可靠性、通信速率等方面的改善。
2 HDLC在SDH传输系统中的运用
HDLC(High一level Data Link Control Proeedures,高级数据链路控制规程)广泛应用于数据通信领域.是确保数据信息可靠互通的重要技术。HDLC按照包含地址、控制、信息、CRC(称为帧)的标准格式进行发送和接收。所有的帧以1个开始标志(0x7E)开始,以1个结束标志(0x7E)结束。在开始和结束标志之间。1个帧包含地址域(A)、控制域(c)、O到5000字节的信息域(I)(可选)和FCS域,HDLC的帧结构如下:
HDLC以1个独特的二进制系列01111111O(0x7E)来确定帧首(Opening Flag)、帧尾(ClosingFlag).经过编码在1个帧的开始和结束标志之间的其他部分杜绝了出现5个连续的“l”。
地址域(A)用于多点通讯方式时设定站地址。帧接收时如果地址域(A)与本站不匹配.该帧不会被接收。还有1个值得注意的是。FCS域.采用循环冗余校验((2RC)除标志域外的所有其他域的校验值。HDI£通过:FCS域来保证数据的可靠传输。关于HDLC的详细资料请参阅参考文献。
SDH系统是目前电信系统中的主要传输手段,它由一些SDH网元组成.在光纤上进行同步信息传输、复用和交叉连接。传统的SDH网元结构如图1所示。
在图1所示系统中.网元控制板NCP单元部件是SDH系统的重要组成部分.系统内部各功能单板的性能、告警等信息要通过该单元送到网管。同时网管的一些命令也必须通过。NCP下发到各单板。系统中板间通信组成了1个典型的多机系统.NCP单元为多机通信系统中主机.其他部件为从机。
NCP单元和其他部件通信可靠性要求高.信息量大而且实时性要求高。而SDH系统网元的背板总线线路长度相对较长.所以不得不考虑电磁干扰、信号完整性、阻抗匹配、电平选择等问题。传统的UART通信显然无法胜任。以HDLC协议的优越性能,可以实现高可靠和高效的板间通信。
3 SDH传输系统板间通信设计
3.1 MPC852T
MPC85T是MPC866 PowerOUICC系列中的一款嵌入式通信处理器。MPC852T内核主频可达100MHz.内部集成了CPU核(PowerQUICC)、系统接口单元(SIU)和通信处理器(CPM)3个模块,由于它成本低、通信能力强、多种通信协议能灵活接口,因而特别适合于通信和网络应用。MPC852T Pow-erQUICC集成了2个处理块,1个处理块是嵌入式Power PC核.另1个是RISC Controller。系统框图如图2所示。
通信协议处理器(CPM)模块是需要关注的焦点,它促成了MPC852T强大的通信处理能力。CPM是RISC处理器,具备多个通信控制器,其中包括2个串行通信控制器(SCC),可运行多种通信协议(Ether-net、HDLC、UART、透明传输等)。SCC口是最具有特色的接口.通过操作相应的寄存器、独立开发收发驱动程序或调用操作系统相关的驱动程序,SCC口就能完成优越的板间通信功能。
参考MPC852T Datasheet提供的数据,HDLC板间通信速率支持Nx64kb/s,N最大为64,即理论最大通信速率为4Mb/s,实用速率应视CPM利用率和Core处理能力而改变。而UART的理论最大速率为115.2kb/s.理论比较结果非常明显。
3.2 MPC852T处理器SCC口的设计
硬件设计方面.HDLC数据链路层协议需要合适的物理层的支持.以达到高可靠性和高流量。考虑到SDH网元背板的线路走线长度和通信速率,列举了常见的3种串行通信标准的主要特征。
由表1可以看出.RS一485的传输距离、速率都能满足设计要求,而且成本低廉、易购,所以选择RS一485来完成通信系统设计。如图3所示。
在软件编程方面。首先要设置SCC口的通道参数.本设计中将SCC3设置为HDLC模式。然后设计驱动程序.驱动程序运行时首先进行SCC3以及存储区的初始化.其次才进行收发操作。SCC3及存储区的初始化过程概括为:初始化SDCR以提供U总线上的优先级一设置SICR将时钟连接到SCC3一设置SCC3参数RAM最大接收缓存长度一对命令寄存器(CPCR)写入相应命令初始化发送和接收参数一初始化HDLC参数RAM,包括错误计数器和帧地址域一初始化接收和发送缓存描述字一初始化屏蔽寄存器以允许期望的事件发生的中断一初始化CIMR以允许CPM设备产生中断一初始化通用SCC3方式寄存器高、低位一初始化协议定义方式寄存器,包括标志的数量,HDLC总线方式.标志共享允许等一设置SCC3方式寄存器低位((GSMR_LX)中允许发送和,或接收。
初始化完成后,便可以进入收发状态。接收过程为:当GSMR_LX寄存器中的ENR位允许时,HDLC控制器进入接收允许状态,在该状态下,控制器等待1个标志。当出现1个标志时,控制器进入地址允许状态,等待1个非标志,该非标志必须为1个地址.控制器将地址与HADDRX和HMASK域的地址比较。地址匹配后,测RxBD状态模式字节.如果接收准备好便开始接收,1个数据包分多个地方缓存.RxBD字节的L位可以指示是否为接收帧最后一个缓存.不是便继续接收,是则完成CRC校验后结束接收。流程如图4所示。
图4中:RxBD(Receiver·Buffer Descriptor,接收缓冲描述符)是SCC、SMC等控制器与缓冲区的接口。RxBD的数据结构如表2所示。
每个RxBD管理内存中的1个BUFFER区,RxBD中确定了这个BUFFER区的首地址和末地址。CPM将要接收的数据会被置于这个BUFFER区里,Data length描述了数据的长度.Status and con-trol描述了数据和BUFFER区的状态。驱动程序通过设置、读取RxBD中的各参数来判断数据和BUFFER的状态,控制数据的收发。
多个RxBD可以在DPRAM或者内存中连续放置,构成1个RxBD表,让CPM的控制器可以在驱动程序介入处理之前接收或者发送多帧数据.数据帧数由RxBD表的个数所确定。
发送过程和接收相似,限于篇幅,不再赘述。
3.3 测试结果和性能分析
按照流程图,采用C语言编程,并在PSOS操作系统上运行调试,为了检查测试SCC3口的丢包率等性能,专门模仿TCP/IP中的ping命令编制了1条sping命令,用大数据包(1 024字节)长时间的测试SCC3口.测试的命令是:
sping子架号槽位号cpu号包大小次数最大时间间隔(10ms为单位)
测试平台如图5所示。接有网线的单板是NCP板,左下边是光板,微机通过网线经交换机和NCP板进行通信,运行telnet命令后相当于对NCP板自身的操作。NCP板和光板通过背板以HDLC协议进行通信,此时执行sping命令便能测试SCC3口的性能。图5是用于实测的硬件平台。实测时.为了验证对大数据包的处理能力,采用了1 024字节.并且重复了1 000次。
从测试结果看出:传输大数据包的丢包率为零;从传输速率来看,平均70ms的时间包括发出和接收的时间,单程是35ms,换算成实际的传输速率约为234.1kb/s。因为测试是在一块正常运行的单板上进行的,MCU除了处理HDLC通信外.大部分资源都是在处理其他功能,因此实际测试结果要比理论值速低很多,但从目前传输系统板间通信所需的数据量来看,实测结果已经满足要求。
4 结束语
本文针对UART在板间通信的局限性提出了采用HDLC协议重新设计的方法.并采用MPC852T实现了设计方案,通过编写驱动程序在PSOS操作系统上进行调试,取得了比较满意的结果。利用该方法已完成了SDH系统设备的研发,产品目前稳定可靠。该设计方法还可以延伸到路由器设备、移动通信基站、接人设备等单板之间的通信.具有比较高的应用值。