动车组WTBC编解码器设计
2019-11-11刘晨曦杜振环
刘晨曦, 杜振环, 王 锋
(中车大连电力牵引研发中心有限公司, 辽宁大连 116052)
国内某型动车组,单列车拓扑可分为“动力车+8辆拖车+控制车”短编组的动车组或“动力车+16辆拖车+动力车”长编组的动车组,配置十分灵活。不同厂家的控制车、动力车通过重联网关互联互通。
FPGA(现场可编程门阵列)作为 ASIC(Application Specific Integrated Circuit)领域中的一种半定制电路,解决了定制电路的不足,可以实现多种逻辑功能。WTB帧数据是曼彻斯特码,它是一种常用的基带信号编码。IEC61375[1]规定,列车间WTB通信数据以曼彻斯特码传输,实现列车间的互操作。
1 WTB帧
绞线式列车总线WTB(wire train bus)帧格式如图1所示,包括帧头(文中研究32 bits帧头)、帧数据、和帧尾(终止分界符)。
(1)帧头:即前导码preamble,由高电平“1”起始,接着若干个‘0’‘1’对(文中为15对)并以“1”结束,用于WTB帧数据同步;
(2)帧数据:标准HDLC数据;
(3)帧尾:两个时间单位宽度的高电平。
图1 WTB帧
2 硬件测试平台
硬件测试平台如图2所示(X1和X2为DB9对外连接器),用于测试WTB编解码器。ARM处理器AT91SAM3U4E,主频96 MHz,内存256 kB,SRAM是52 kB。FPGA是XILINX公司的Spartan-6系列芯片,型号XC6SLX9,用来实现WTBC编解码器。用WTB线缆把TCN分析仪串联在发送通道与接收通道之间。
ARM处理器通过可变静态存储控制器FSMC接口访问配置FPGA,通过WTB链路层接口从应用层控制WTB数据发送和接收。初始化成功后,在WTB通信板卡X1接口定时发送变化的WTB帧数据,通过TCN分析仪在接口X2接收,应用层软件对接收数据进行统计,可判断接收数据与期望是否相符。对于不同类型请求/响应帧数据(包括状态请求/状态响应帧、检测请求/检测响应帧、命名请求/命名响应帧、存在请求/存在响应帧等),通过TCN分析仪进行数据统计和分析,达到测试WTB编解码器的目的。
图2 硬件测试平台
3 WTBC编解码器
WTBC编解码器核心是编码器和解码器。编码是完成WTB数据编码并进行CRC校验;解码是实现接收波形的位同步和数据解析,如果计算的CRC与接收到的CRC结果不符,则放弃此帧数据。其原理如图3所示。主要分为以下几个部分:CPU接口模块,HDLC控制器模块及曼彻斯特编解码模块。
图3 WTBC编解码器
(1)CPU接口模块
CPU接口模块包括数据线(uPD)、地址线(uPA)、写(uPWR#)、读(uPRD#)、片选(uPESCCCS#)、中断(ESCC_INT#)等信号(如图4所示)。CPU接口模块作为WTB编解码器与外部处理器CPU的接口,是WTB编解码器与CPU的数据传输通道,CPU通过访问编码器和解码器的内部寄存器,控制WTB数据发送接收。
图4 WTBC编解码器CPU接口信号示意图
(2)HDLC控制器模块
HDLC数据是串行数据帧格式,与时序逻辑紧密联系,包括HDLC发送控制器和HDLC接收控制器。
①HDLC发送控制器。即HDLC编码器,是功能和时序复杂的时序逻辑电路,可抽象成有限状态机。其状态转换与数据处理包括HDLC数据的0比特插入,CRC校验等都可以按照ISO 3309标准实现。根据HDLC编码协议,得到HDLC编码器有限状态机:CPU发送数据时首先要读取发送寄存器状态,当TxDo=1时,HDLC控制器缓存CPU发送的数据到RAM中,CPU发送完一包数据后向发送寄存器写入TxEN=1命令。发送缓存接收到TxEN=1指令后跳转至read状态,TxOK=1;缓存的数据经CRC校验和时钟同步后,再把并行数据转换成串行数据,同时检验每位数据信息,即串行数据出现连续5个‘1’时在其后插入1个‘0’;并行数据转换串行数据的起始生成帧头flag,转换完成生成帧尾flag。HDLC发送控制器状态转换如图5所示。
图5 HDLC发送控制器状态机
②HDLC接收控制器。即HDLC解码器,和编码器一样是时序逻辑电路,同样可抽象成有限状态机,包括帧头帧数据检测、CRC校验、0比特删除等部分。HDLC接收是发送的逆过程,需要对接收的每一个数据位进行判断。HDLC接收模块检测总线上的数据,当识别到“01111110”即flag,则FlagDetect=1,并进行串行数据到并行数据转换,与此同时执行0比特删除操作,即检测到连续5个‘1’则自动将其后面的‘0’删除;再经过时钟同步和CRC校验,当WR=1时向双口RAM写入1个字节的数据,当数据长度大于等于31字节产生FULL中断,CPU从RAM读取31个字节数据并把CPU_ACK置1,直到产生EOF帧尾中断(若帧长度小于31字节则只产生帧尾中断),CPU从RAM读取剩余数据并把CPU_ACK再置1,状态机恢复到空闲。HDLC接收控制器状态转换如图6所示。
图6 HDLC接收控制器状态机
(3)曼彻斯特编解码模块
曼彻斯特编解码模块具有同步HDLC帧与WTB帧,和对数据进行曼彻斯特编码和解码。帧同步是通过程序中的移位寄存器暂时存放HDLC数据并与WTB曼彻斯特编码模块进行信号交互来实现。帧同步的状态转换如图7所示。曼彻斯特编码模块生成WTB帧32 bits帧头、2 bits终止分界符,及HDLC数据的曼彻斯特编码;曼彻斯特解码模块用来识别WTB帧头帧尾并将其删除,同时对数据进行曼彻斯特解码。
图7 帧同步状态机
4 设计实现
根据上面所描述的方法,采用自顶向下的设计理念,使用VHDL硬件描述语言和ISE14.7开发工具,仿真综合实现并下载到FPGA芯片(FPGA仿真如图8所示,从图中可以看出,CPU发送数据为0x1f,接收数据为0x1f,接收与发送数据相同),使用ChipScope软件监测波形如图9所示。
图8 功能仿真
图9 WTB帧波形
图9中,RxClk是接收时钟,Tx是HDLC数据帧,MAIN_OUT为WTB数据帧,帧头32 bits,这里以HDLC数据是0x1,1个字节为例。分析WTB波形,与标准要求一致。图10、图11是通过示波器监测的实际波形,符合WTB一致性要求。通过TCN分析仪多次长时间测试,所设计的WTBC编解码器能够被分析仪很好地识别,不存在丢帧和错帧(如图12、图13所示),符合IEC 61375标准规定。
图10 测试波形(WTB帧头)
图11 测试波形(WTB帧)
图12 TCN分析仪测试结果
WTB一致性测试检验依据是GB/T 28029.2-2011《列车通信网络一致性测试》,检验项目包括WTB设备节点的插入损失测试,WTB设备中间设置的输入阻抗测试,WTB设备发送器测试,WTB设备发送器帧尾测试,WTB设备发送器噪声测试,WTB设备发送器容错测试,WTB设备接收器测试,WTB链路层接口测试和稳定性测试。检验项目全部测试通过,B线发送帧尾测试如图14所示。
(1)网关发送帧尾,输出信号第一次达到1.100 V电平之后20.0 μs后的波动范围-B线
(2)网关发送帧尾,输出信号第一次达到1.100 V电平之后64.0 μs后的波动范围-B线
该WTBC编解码器已应用于某型动车组WTB重联网关,并通过了与其他厂家网关的互联互通测试,实现不同厂家设备的互控。为了验证重联网关WTBC编解码器功能和可靠性,在某型动车组列车进行通信试验,试验拓扑如图15所示,TCN网络分析仪串联在主从控车中间(以测试线路B为例),在动车组运行过程中监测WTB通信数据。在监测期间,未发生WTB初运行,WTB通信正常。
图14 WTB一致性测试
图15 测试拓扑图
5 结 论
WTBC编解码器是重联网关的重要组成部分,数据格式符合IEC 61375的要求,目前已应用于某型动车组上。实践结果表明,带有该WTBC编解码器的重联网关能够和其他厂家网关互联互通,并通过运营考核,可靠性高。