基于STM32 的MVB-CAN 通信网关设计与实现

2019-04-03 08:19
自动化与仪表 2019年3期
关键词:数据通信通信网板卡

赵 科

(大连交通大学 电气信息工程学院,大连116028)

随着车载通信网络的快速发展以及应用范围的不断扩大,用户对其开放性、灵活性以及开发与应用多样性等方面都提出了更高的要求,使得具有不同特点的现场总线技术不断被引入列车总线网络,这样就不可避免地会发生不同总线之间的数据交换与传输,而如何有效地实现这些总线之间的数据通信,已成为当前研究的热点之一。MVB 是专门针对列车通信网络而开发的专用网络,具有实时性好、通信速率高等特点[1]。MVB 总线技术在国外已经成熟,但在国内还有待提高,这就直接导致国外厂家长期垄断了MVB 网关以及其他MVB 总线设备的庞大市场,使得国内使用MVB 总线设备的成本较高。而对于CAN 总线技术的研究与应用在国内已经很成熟,CAN 总线技术以其突出的可靠性、 实时性、灵活性以及极高的性价比等特点[2],使其在铁路上得到了越来越广泛的使用。且CAN 总线技术开发相对容易,成本低,周期短,因此国内在一些高速列车车载设备的研发中仅使用了CAN 接口技术,如一些厂商开发的PIS(passenger information system)系统、ATP(automatic train protection)系统、GPS(global positioning system)设备以及烟火探测器等,这些设备在实际应用中都需要接入MVB 车辆总线,就存在MVB 总线和CAN 总线数据的交换问题。因此,本文开发设计了一款结构新颖、可靠性高、灵活性强的车载MVB-CAN 通信网关,用于组建CAN 总线和MVB 总线共同组成的异构网络,解决了带有CAN 接口的车载设备与列车MVB 网络的互联互通问题,推动了我国列车通信网络技术的发展。

1 网关硬件设计

1.1 网关结构设计

网关设备结构如图1 所示,主要由CPU 板卡、MVB通信网卡、电源板卡、机箱、网络连接器及线缆等组成。网关设计符合IEC61375、ISO14229、EN50121-1、EN50155、TB/T1333.1-2002 TB/T 1333.1-2002 等 规范,具有良好电磁兼容性、扩展性、可移植性和可维护性等优点。网关设备可以插入标准的3U 机箱,也可以设计成盒式结构,方便机架安装及携带。机箱或盒式结构均采用U 型铝材并经过氧化处理[3],为了提高EMC(电磁兼容),边缘处带有电磁屏蔽弹片,并设置了安全接地。板卡设计均采用3U 结构,板卡间采用PC/104 接口连接,并增加了铜支撑柱固定连接,提高抗震能力及接地保护。CPU 主板还保留了背板连接器,方便与3U 机箱背板连接。各连接器均采用专用连接器,保证连接可靠,及外壳均通过电容接地。

图1 MVB-CAN 网关结构设计Fig.1 Design of MVB-CAN gateway structure

1.2 网关硬件电路设计

网关硬件电路设计如图2 所示,由CPU 板卡通过PC/104 接口对MVB 通信网卡中的总线控制器MVBC 进行配置,总线控制器MVBC 通过总线收发管理器MAX3485、隔离变压器T60403-Y4021-X123与MVB 通信介质相连,进行MVB 数据收发;由CPU 板卡通过内部总线控制CAN 控制器,再通过CAN 收发器与CAN 通信介质相连,进行CAN 数据收发;CPU 板卡中主控制器CPU 实现MVB 和CAN两种总线数据相互转换及存储。CPU 通过CPLD 时序控制对PC/104 接口进行I/O 模式访问,CPU 与PC/104 之间设计了电平转换电路。电源板卡实现车辆110 V 直流电转换为直流5 V,为CPU 板卡和MVB 通信板卡提供稳定可靠的电源。

图2 MVB-CAN 网关硬件电路设计Fig.2 Design of MVB-CAN gateway hardware circuit

1.2.1 CPU 板卡

CPU 板卡电路主要包括:STM32F207 微控制器核心系统电路模块(存储器扩展、复位电路、看门狗电路和JTAG 接口)、通信功能电路模块、状态指示电路模块、PC/104 接口电路模块(CPLD 时序控制和电平转换)、扩展功能模块(背板连接器)及板卡供电电路模块。CPU 板卡主控制器采用STM32F207ZGT6控制器,该控制器内核为CortexTM-M3 架构[4],主频高达120 MHz,带有片上存储器,包括1 MB 的Flash存储器和容量为128 KB 的系统SRAM 以及高达4 KB 的备用SRAM,能够满足绝大部分应用需求。但考虑到网关的快速、实时及可靠等性能要求以及数据量比较大,在STM32F207 芯片外围通过FSMC 总线进行SRAM、NandFlash 和E2PROM 存储扩展。CPU 板卡上设计了开发网关所需的通信电路,包括2 组CAN 通信 电 路、1 组RS-232 串口 通信电路、1组以太网通信电路。RS-232 电路及以太网电路可以完成串行数据通信和以太网数据通信功能,用来实现MVB-CAN 网关的调试以及系统维护、 升级等功能。CAN 总线通信电路由CAN 总线控制器、CAN 总线收发器和CAN 总线接口组成,完成CAN 数据的收发。由于STM32F207 控制器芯片本身集成了专门的CAN 总线控制器,支持CAN 2.0B 协议通信,CAN收发器采用ANALOG DEVICES 公司的符合ISO 11898 标准的ADM3053BRWZ 芯片,数据传输速率高达1 Mbps,直流5 V 电源供电。CAN 总线收发器提高了总线驱动能力,具有高频干扰信号抑制作用,EMC 满足EN50155 标准[5]。

因篇幅所限,各模块电路的详细设计不再赘述,只给出图3 所示的CPU 板卡的印刷电路板(PCB)图,在PCB 设计中充分考虑了电磁兼容性设计。

图3 CPU 板卡PCB 图Fig.3 PCB diagram of CPU board

1.2.2 MVB 通信网卡

MVB 通信网卡由CPU 主控模块、MVB 协议控制器、通信存储器、双通道冗余的收发管理器等组成。可以实现MVB 主动式网卡的全部功能,可进行3 种数据通信并可作为总线管理器。网卡与CPU 板卡的数据通信采用PC/104 并行总线接口。在本文的MVB-CAN 通信网关测试中MVB 网卡工作在从模式,由STM32F207 微控制器芯片通过PC/104 总线进行控制,实现与MVB 总线间的通信任务。网卡处理器采用AT91R40008 微控制器,再加上外围时钟电路、复位电路、扩展存储电路、电源电路等,共同组成了MVB 通信网卡的CPU 主控模块。MVB 网卡处理器AT91R40008 外围电路的设计与CPU 板卡上STM32F207ZGT6 芯片的外围电路设计很类似,在此不再赘述。MVB 网卡和软件功能满足MVB 的1 类、2 类、3 类、4 类设备的功能要求,电气接口上能提供ESD+、EMD、OGF 等总线接口,并实现介质冗余功能[6]。

1.2.3 电源板卡

网关使用列车上110 V 直流供电,故设计了直流110 V 转直流5 V 的电源板卡。该电源板卡通过PC/104 连接器为CPU 板卡和MVB 通信网卡供电。该电源板卡采用了PWR-CFD10-110S05 电源模块,此模块专为铁路应用而研发的小型化DC-DC 转换模块,满足铁路设备标准,输入输出都添加了隔离保护,短路保护以及具有自恢复功能,输出功率可达到10 W。为了有效降低对电源电路的干扰,提高电源的可靠性,该电源板卡设计中采用了输入防雷击浪涌保护电路、二阶共模滤波电路、一阶差模滤波电路、整流电路、输出一阶共模滤波电路、稳压电路等。经电磁兼容试验,此板卡满足浪涌(冲击)抗扰度英标RIA12 标准、 电快速脉冲群抗扰度GB/T17626.4 3 级、电源电压变化和中断GB/T25119 A级、EMI 传导实验GB9254 A 级、冲击振动标准GB/T21563 1 类B 级等要求。

2 网关软件设计

网关软件功能包括系统软件和应用软件。系统软件主要有引导程序、操作系统内核、文件系统。应用程序主要对各个接口电路及板卡进行初始化设置,实现数据收发和数据转换功能。

MVB-CAN 网关软件程序流程如图4 所示,程序运行流程为网关上电后,加载引导程序(Bootloader),引导系统启动,完成后加载μC/OS-Ⅱ操作系统内核,内核启动后加载文件系统,最后调用网关应用程序。

图4 MVB-CAN 网关程序流程Fig.4 Flow chart of MVB-CAN gateway program

网关应用程序首先进行MVB 初始化及配置MVB 板卡信息,初始化CAN 接口,配置波特率等信息。MVB 和CAN 初始化后,创建线程数据共享区,创建共享区互斥量,然后执行CAN 收发线程和MVB 收发线程,循环扫描CAN 和MVB 的源端口与宿端口,当扫描到相关端口有数据到达时则执行相关通信线程中的应用程序,进行数据的接收与发送,并在主程序的控制下通过数据存储区实现数据交换,从而实现网关MVB 总线数据和CAN 总线数据通信的功能。

MVB 数据接收到CAN 数据发送过程: 首先执行MVB 接收线程,接收MVB 总线数据,获取MVBCAN 数据共享区互斥,更新MVB 接收数据到MVBCAN 数据共享区,释放MVB-CAN 数据共享区互斥。接下来执行CAN 发送线程,获取MVB-CAN 数据共享区互斥,更新MVB-CAN 共享区数据到CAN发送区,释放MVB-CAN 数据共享区互斥,配置CAN 标识,将发送数据放入发送缓冲区,调用CAN发送函数,发送CAN 数据。

CAN 数据接收到MVB 数据发送过程: 首先执行CAN 接收线程,调用CAN 接收函数,接收CAN总线数据,获取CAN-MVB 数据共享区互斥,更新CAN接收数据到CAN-MVB 数据共享区,释放CAN-MVB数据共享区互斥。接下来执行MVB 发送线程,获取CAN-MVB 数据共享区互斥,更新CAN-MVB 共享区数据到MVB 发送区,释放CAN-MVB 数据共享区互斥,配置MVB 标识及变量,将发送数据放入发送缓冲区,发送MVB 数据。

3 网关通信测试

搭建如图5 所示的MVB-CAN 网络通信测试平台,测试MVB 总线和CAN 总线数据的转换。其中司控台、VCU 控制器和HMI 显示屏模拟列车MVB网络通信,通过MVB 屏蔽线缆连接。MVB-CAN 网关通过MVB 接口接入MVB 网络,再通过CAN 接口接入CAN 通信网络。CAN 总线侧接入装有PCI-CAN卡的工控机,模拟具有CAN 接口的车载设备。在工控机上开发CAN2.0 通信应用程序,当PCI-CAN 板卡上电后,系统加载程序引导应用程序启动后,首先对PCI-CAN 板卡的CAN1 和CAN2 接口以及通信数据存储区进行初始化、 波特率和超时时间配置,配置完成之后,板卡进入工作模式,主程序能够实现CAN2.0 通信数据收发工作,从而实现PCICAN 板卡的CAN2.0 数据通信的功能。

图5 MVB-CAN 网络通信测试平台Fig.5 MVB-CAN network communication test platform

MVB 到CAN 的通信测试例程: 操作司控台发出司机室激活信号、1 号车门开信号和空调制暖信号,经过VCU 控制器,HMI 显示屏会显示相应的信息,通过MVB-CAN 网关,在工控机上通过PCI-CAN板卡数据接收程序,接收数据如图6 所示。通过分析数据流并进“00000001”,对应十六进制为“01”;当在司机室激活时发送门开信号,第一字节的第一位和第二位发生跳变,二进制数据为“00000011”,对应十六进制“03”;当在司机室激活时发送空调制暖信号,第一字节的第一位和第三位发生跳变,二进制数据为“00000101”,对应十六进制为“05”。验证了MVB 数据到CAN 数据的正确转换与传输。相反,当PCI-CAN工控机发送CAN 数据“03”,通过MVB-CAN 网关进行数据转换,传输到MVB 总线上,并通过HMI 显示屏显示司机室激活及1 号车门打开,如图7 所示,验证了CAN 数据到MVB 数据的正确转换与传输。

图6 CAN 接收数据Fig.6 CAN receiving data

图7 MVB 接收数据Fig.7 MVB receiving data

4 结语

本文设计了一款MVB-CAN 网关设备,用于MVB 总线和CAN 总线的双向数据通信,并通过MVB-CAN 网络通信测试平台对该设备进行系统测试。测试结果表明该设备可以实时、可靠地完成数据通信和转换,解决了在列车通信异构组网中MVB总线和CAN 总线的数据通信问题,推动了我国列车车载设备的开发进程。

猜你喜欢
数据通信通信网板卡
基于ASON的高速公路骨干通信网升级探讨
车载控制器CVRE板卡显红故障分析及处理
基于SDN-MEC配用电通信网任务迁移策略
数据通信网络维护与网络安全问题探讨
关于数据通信电源现状和高压直流供电新系统的分析
基于组态王软件和泓格PIO-D64 板卡的流水灯控制
IP 融合通信技术在通信网的融合与应用研究
基于EDA技术的通用异步收发器设计
基于ASON技术的电力通信网优化及应用
一种基于光纤数据传输的多板卡软件程序烧写技术