基于ARM7的网关通信模块设计
扫描二维码
随时随地手机看文章
MVB多功能车辆总线是在国际标准IEC61375列车通信网络(TCN)中被详细定义的一种现场总线,按照TCN标准,列车通信网分为两级,第一级绞线式列车总线实现车辆间的数据通信,第二级多功能车辆总线MVB主实现同车辆内各个功能控制单元之间的数据通信。MVB以其高实时性、高可靠性及可管理性等多方面的优势而广泛应用在列车总线控制当中。但是由于MVB是专门针对列车通信网络而开发的,其实用范围、供货商、经济型均不如CAN总线。CAN总线作为现场设备级的通信总线具有很高的可靠性和性价比。目前很多机车车辆的列车通信网络系统都采用MVB总线和CAN总线共同组成的异构网络。因此,本文提出了一种基于μC/OS-Ⅱ的ARM7内核芯片LPC2294的MVB-CAN双向通信模块。
1 MVB多功能车辆总线
MVB是国际标准IEC61375-1的车辆总线部分,它主要用于具有互操作性和互换性要求的互联设备之间通信的串行数据总线。MVB采用主帧/从帧应答方式,可以实现设备和介质冗余,实时性靠RTP实时协议保证。MVB介质分为3种:电气短距离介质为RS 485差分传输导线对,传输距离为20 m;电气中距离介质为双绞屏蔽线,传输距离为200 m;电气长距离介质为光纤,传输距离为2 km。
MVB作为主从方式的串行通讯总线,是可以实现过程控制优化的总线。MVB具有良好的实时响应,一般用作车辆内部设备之问的数据通信,其采用曼彻斯特编码方式,数据传输速率为1.5 MHz。MVB多功能车辆总线主要由通信介质、MVBC协议控制器和MVB链路软件3部分构成。
MVB具有2种帧格式,一种是只能由总线主设备发送的主设备帧,简称主帧;另一种是为响应主帧而由从设备发送的从设备帧,简称从帧。总线主设备在每一个特征周期里通过发主帧的方式对进程数据进行轮询,相应地从设备发送从帧进行真正的数据传输。报文由主帧和响应此主帧而送出的从帧组成。一个主帧应以主起始分界符开始,其后为16 b帧数据,接着为8 b校验序列。
一个从帧应以从起始分界符开始;接着为(16,32,64,128或256)b帧数据,在每64个数据位包含一个8 b的校验序列,当帧数据只有16 b或32 b时将一个8 b的校验序列附加其后。
2 CAN总线
控制器局域网(Conteoller Area Network,CAN)是国际上应用最广泛的现场总线之一,最早由德国BOSCH公司推出,是一种用于汽车内部测量与执行部件之间的数据通信协议,CAN总线作为一种技术先进,可靠性高,功能完善,成本合理的远程网络通信控制技术,CAN总线已被广泛应用于各个领域。它为分布式控制系统实现各功能节点之间实时、可靠的数据通信提供强有力的技术支持。其报文结构可以分为2种不同的帧格式,两种帧格式的不同之处为标识符的长度不同:具有11位标识符的帧称为标准帧,具有29位标识符的帧称为扩展帧。本设计中主要考虑标准帧的情况。标准帧的报文由4种不同类型的帧构成表示:数据帧、远程帧、出错帧和超载帧。以数据帧为例:数据帧由7个不同部分构成:帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束。
3 通信网关模块硬件设计
网关模块的硬件框图如1所示。
处理器采用基于ARM7的LPC2294。LPC2294是一款基于16 b/32 b ARM7TDMI-S内核,内带16 KB RAM和256 KB高速FLASH的微处理器,最大时钟速率60 MHz。内带2路CAN通道,其CAN控制器集成了数据链路层功能,符合CAN2.0A和CAN2.0B的规范。
CAN收发器采用Philips PCA82C250。主要提供对总线的差分发送能力和对CAN控制器的差动分接收能力。微处理器对CAN控制器进行相应配置后,收发器自动完成相应的CAN总线动作。
MVB通信控制器采用MVBC02专用芯片,它采用16 b数据总线,提供了丰富的接口控制信号,简化了与各种宿主CPU以及通信存储器的接口设计,支持MVB协议中链路层及物理层的功能。MVB物理层接口采用电气短距离介质ESD+接口,系统信号通道使用光耦实现主系统与外界的电隔离,从而提高了系统的可靠性。使用RS 485芯片LTC1485I作为收发器,并使用过压保护模块以防止瞬间过压对器件造成损坏。MVB物理层接口电路如图2所示。
4 软件实现方案
在本设计中,关键是实现MVB总线和CAN总线之间的数据交换,它具有MVB检测和接入功能,以及CAN总线检测和接入功能,通过处理器控制数据帧的解析和重新封装,实现符合CAN总线V2.0规范和MVB标准格式帧的相互转换。因此从CAN侧接收到的数据要通过MVB传输,就需要按照一定的格式把CAN帧中的数据组合成MVB帧的数据格式;同样从MVB侧接收到的数据要通过CAN传输,也需要按照一定的格式对MVB帧中的数据进行分帧处理。另外,为了实现透明传输需要在MVB端口中将各种变量的含义按照一定的规则和CAN总线侧帧的标识符等信息对应,从而形成一个表格,同样在CAN总线侧也将CAN侧的标识符与MVB侧的过程数据的数据集进行对应形成表格。
软件主要由主函数调度模块、MVB控制模块、CAN控制模块以及2个数据缓冲组成。当CAN应用层有数据要发送到MVB网络时,主函数需调度模块得到CAN数据传输后调度CAN控制模块接收数据,解码分析获取标识符,依据标识符查询索引表找出对应MVB端口相关变量,后将报文中的相关数据提取出来发送到数据缓冲区B。主函数调度模块通知MVB控制模块从缓冲区B中提取数据,并进行完整的MVB报文封装,发送到MVB总线上,释放缓冲区B。反过来,当MVB应用层有数据要发送到CAN节点时,首先,数据发送到MVB上,主函数调度模块检测MVB上是否有数据传输,通知MVB控制模块接受数据,并对信息解码分析,从中获取端口相关变量,依据端口相关变量查询索引表找出对应CAN标识符,同时将数据发送到数据缓冲区A。此时,总调度模块通知CAN控制模块从缓冲区A中提取数据,并进行完整的CAN报文封装,发送到CAN总线上,释放缓冲区A。CAN控制模块主要负责从CAN数据包中解析出完整CAN协议报文,存入数据缓冲区B。同时,将数据缓冲区A中的CAN数据封装成完整的CAN协议报文后发送到CAN总线上。MVB控制模块主要负责从MVB数据包中解析出完整MVB协议报文,存入数据缓冲区A。同时,将数据缓冲区B中的MVB数据封装成完整的MVB协议报文后发送到MVB上。总调度模块主要起到综合调度和监控作用,同时,它还用于整个传输过程中的中断响应。
图3说明了软件流程框图。
5 结语
本文描述了基于ARM7处理器LPC2294的MVB-CAN通信模块的实现方法,概述了MVB网络和CAN总线网络的报文结构,提出通信模块的硬、软件实现方法。通过考核该通信模块实现了MVB与CAN总线间的数据传递,其性能稳定,可靠性高。各种现场总线都有各自应用特点及优势。所以,多类型总线异构组网方式在列车通信网络中的应用越来越广泛。MVB及CAN总线的异构组网方式具有广阔的市场前景。MVB-CAN通信模块的设计为列车通信网络的多元化发展提供了支持,也为其他网络异构组网(例如:RS 485/RS 422-MVB,HDLC-MVB等)方式的网络通信模块设计提供了参考。