刘晓冬
(1.北京全路通信信号研究设计院集团有限公司,北京 100070;2.北京市高速铁路运行控制系统工程技术研究中心,北京 100070)
设计FlexRay总线的硬件接口电路和软件流程图,并将其应用到计算机联锁系统中[1]。
在铁路信号设备中,联锁设备是保证行车安全的重要基础装备。从早期6502继电联锁系统发展到计算机联锁系统的过程中,越来越多的新技术被运用到铁路信号设备中。新技术的使用,既保证了行车安全,又极大提高了行车效率。
本文在比较几种联锁设备上常用的通信总线的基础上,介绍了一种新的车载通信总线FlexRay,
目前,在计算机联锁系统中,主要采用的通信总线有RS-422/485、CAN总线和以太网总线等。其中,联锁与CTC采用RS-422接口;联锁与轨旁设备采用CAN总线通信;联锁站间、联锁与RBC、联锁与计轴采用以太网通信等。这几种接口总线的主要特点如下。
1) RS-422
RS-422是一种单点发送、多点接收的单向、平衡传输规范接口,传输速率最高达10 Mbit/s,传输距离达3 000 m(速率低于100 kbit/s时),并允许在一条平衡总线上最多连接10个接收器。
2) RS-485
RS-485是在RS-422基础上制定的,增加了多点、双向通信能力,允许多个发送器连接到同一条总线上,提高了发送器的驱动能力,增加了冲突保护特性等,其传输速率最高达10 Mbit/s,最多连接32个节点。
3) CAN
CAN总线是一种国际标准的工业级总线[2],具有可靠性、实时性和灵活性高的优点,采用多主方式工作,节点可设置优先级,纠错机制可保证数据出错机率低,单个节点故障后自动关闭,不会影响整个网络,其最高传输速率为1 Mbit/s,最多连接110个节点。
4) 以太网
以太网是一种标准的开放式网络[3],具有传输速率高(千兆网),距离长,成本低,易于组网等优点。以太网具有冲突检测机制,因而无法保证通信的实时性,属于非稳定性的网络。此外,以太网采用超时重发机制,单点故障容易扩散导致整个网络瘫痪,存在网络风暴和非法入侵等问题。
上述4种接口总线中,以CAN和以太网总线的应用最广。其中,CAN总线主要应用在对实时性要求较高而通信速率和通信容量要求不高的场合,以太网总线则主要应用在高速率大通讯量的场合,RS-422/485因无法满足实时性等要求,在联锁设备上应用越来越少。
与CAN总线类似,FlexRay总线也是由汽车厂商制定和推广。2000年的9月,宝马和戴姆勒克莱斯勒联合飞利浦和摩托罗拉成立了FlexRay联盟,之后,世界上主要的半导体和电子系统生产商都加入了这个联盟,共同制定FlexRay总线的技术规范,目前FlexRay协议规范V3.0.1版本已经发布。
目前,FlexRay总线已经在高级轿车上推广使用,其主要特点如下[4]。
1) 传输速率高
FlexRay总线采用双通道设计,每个通道最高速率为10 Mbit/s,既可以像CAN总线一样采用单通道运行,又可以采用双通道运行,最高传输速率可以达到20 Mbit/s,是CAN总线的20倍。
2) 时钟同步
FlexRay总线是基于时钟同步进行数据传输,该时钟通过协议自动建立和同步,并提供给应用层。时钟的精度介于0.5 μs和10 μs之间。由于采用时钟同步,消息在通信周期中拥有固定位置,接收器可提前预知消息的到达时间,因此可以可靠、准确地传送安全相关的信息。
3) 高容错
FlexRay总线采用双通道通信,通过硬件冗余备份的方法实现容错;物理层总线监控器可对节点进行监控,当节点发生故障无法正常收发数据时,总线监控器将通信控制器和总线断开,避免影响其他节点的工作;当使用星型拓扑结构时,星形连接器本身具备故障隔离功能,一旦发生意外情况,可以有选择的切断有故障的星型支路;此外,FlexRay总线使用24位循环冗余校验 (Cyclic redundancy cheek,CRC)对通信数据进行检错。
4) 灵活性
FlexRay总线带宽可调、提供消息冗余传输和非冗余传输两种方案;支持总线、星型或二者混合的拓扑结构,可采用时间触发和事件触发相结合的通信方式;FlexRay总线提供了大量的配置参数(如通信周期的持续时间、消息长度等),支持对系统进行调整,以满足不同的应用需求。
综上所述,支持高吞吐量、满足实时性要求、具备高容错性和应用灵活等特点的FlexRay总线在安全应用中具有巨大的优势。
FlexRay总线以其传输速率高、实时性好、容错能力强等特点,可以满足计算机联锁系统的通信需求。本设计将FlexRay总线应用于计算机联锁系统的逻辑单元中,作为双CPU间和系间的通信总线。逻辑单元由二取二主控制单元组成,通过系间通信总线与另一系逻辑单元进行通信,形成二乘二取二结构,其拓扑结构如图1所示。
如果现场被抽中人员不在场,主持人继续主持抽奖,直到奖品被现场的人员领完为止(主持人在邀请读者上台抽奖时,应当提醒读者待主持人确认中奖人员在场后,再进行下一轮抽奖,屏幕上也需要弹出一条信息提醒邀请的抽奖读者确认中奖的人员是否在场)(注:抽奖的大屏在闲时:左侧滚动显示已被用户荐购的图书,右边边滚动已经关注微信公众号的用户,屏幕滚动频率大约7s~10s一次)。
图1 拓扑结构图Fig.1 Topological structure diagram
1) 器件选型
选择TI公司内置双通道FlexRay控制器的TMS570系列的CPU,该芯片集成了ARM Cortex-R4F 32位RISC CPU,具有丰富的外设接口,如ADC、I/O输入输出、以太网等,可以满足采集、控制和通信等功能需求。
选择NXP公司的TJA1082作为FlexRay节点收发器[5],符合FlexRay电气物理层规范V3.0.1,数据传输速率可选2.5 Mbit/s、5 Mbit/s和10 Mbit/s,并为FlexRay网络中的协议控制器和物理总线之间提供了高级接口;TJA1082为网络提供差分传输功能,为FlexRay控制器提供差分接收功能,当差分电压为400 mV时支持60 ns的最小位时间;可主动监控系统性能,同时进行内部电压和温度监控等。
2) 电路设计
由于选择了内置FlexRay控制器的CPU,因此外围仅需节点收发器和节点总线匹配电路即可,电路实现简单可靠,所需器件较少。
3) 总线匹配
根据FlexRay总线物理层应用笔记,推荐采用共模扼流圈和拆分终端(Split Termination)的方式实现总线匹配[6]。通过增加共模电感改进发射和抗干扰性能,在FlexRay总线节点上将匹配电阻拆分为两个阻值一样的电阻,两个电阻之间通过一个电容接地,以获得更好的EMC性能。对于共模电感的选型,要求电感量不小于100 μH,直流电阻值小于1.5 Ω,杂散电感小于1 μH;拆分终端的两个电阻值小于10 Ω,电容选择4 700 pF。
综上,FlexRay总线的外围接口硬件电路设计如图2所示。
在进行软件设计前,需要确定主要的协议参数[8],具体如表1所示。
表1 FlexRay总线协议参数Tab.1 FlexRay bus protocol parameters
1)节点初始化流程图
图2 FlexRay总线接口硬件电路原理图Fig.2 Schematic diagram of FlexRay bus interface hardware circuit
图3 FlexRay节点初始化流程图Fig.3 Initialization flowchart of FlexRay node
FlexRay总线节点的初始化流程如图3所示,初始化主要完成FlexRay网络通信之间的唤醒、启动和时间同步,是实现网络正常通信的前提。
2)数据发送流程图
FlexRay总线通信是基于时间触发,每一个发送时槽对应一个中断,当对应的发送时槽到来时,由FlexRay模块自动置位中断,进入对应时槽的中断服务程序后,调用发送函数。在发送操作之前,需要锁住存储待发送数据的缓冲器,保证对该缓冲器的配置在发送过程中不会发生改变,防止发送错误。发送结束后,再释放该缓冲器。具体的数据发送流程如图4所示。
3)数据接收流程图
同样的,每一个接收时槽对应一个中断,接收时槽接收数据完毕并确认有效后,由FlexRay模块自动产生相应的接收中断,进入对应时槽的中断服务程序后,调用接收函数。在接收之前需要锁住接收缓冲器,在确认为数据帧后,读取接收缓存器中的数据与帧长度,最后解锁接收缓冲器。具体的数据接收流程如图5所示。
本文对比分析计算机联锁系统上常用的几种总线,总结FlexRay总线的主要特点,设计一种实用的接口电路,制定主要的软件流程图,相关的软硬件设计已经在计算机联锁设备上得到使用,并已在现场运行。实践证明,FlexRay总线可以替代CAN总线,运用到铁路信号设备中。
图4 FlexRay节点数据发送流程图Fig.4 Data transmission flowchart of FlexRay node
图5 FlexRay节点数据接收流程图Fig.5 Data reception flowchart of FlexRay node