APP下载

一种基于时间触发的CAN发送机制

2017-11-07纪宏岩

汽车电器 2017年10期
关键词:实时性报文时钟

纪宏岩

(北汽集团越野车研究院,北京 101300)

一种基于时间触发的CAN发送机制

纪宏岩

(北汽集团越野车研究院,北京 101300)

提出一种CAN总线发送机制,通过这种机制,网络上的所有节点能够获取统一的时钟,报文将基于时间触发的方式发送。此机制应用于现有CAN网络之后,能够有效避免总线竞争带来的报文延迟,提高CAN总线的传送实时性。

时间触发;事件触发;总线竞争;报文优先级

随着汽车上电子功能的增多,总线上节点数量也越来越多,总线负载率也随之增高。在负载率超过40%的基础上,如果不针对CAN网络进行任何优化,将会使很多节点发送的报文产生竞争,从而带来传送的延迟。本文提出一种改进方式,即选取网络中的某个节点,让其周期性地发送同步报文,其他节点收到这条报文之后,立刻进行时钟同步,通过这种方法,使网络上的所有节点获取公共时钟,再以公共时钟为基准,为每个节点分配自己的时间段,节点都只在属于自己的时间段内发送报文,不属于自己的时间段内不发送,这样每个节点在发送报文的时候都不会与其他节点产生竞争,需发送报文就立刻能够成功发送出去,不会产生延迟。这种发送方式不需要对硬件和网络拓扑做改动,适用于任何CAN总线网络,可以在不增加成本的基础上有效改善总线网络的实时性。

1 报文延迟的来源

CAN是一种基于事件触发的通信方式。所谓事件触发是指当任何一个节点有发送报文需求时,立刻就进行发送。但也可能其他的节点有发送需求,这时就会产生竞争,CAN国际标准ISO 11898规定了此时依靠报文的优先级来决定报文的发送顺序,这种机制保证了在产生竞争时,每条报文都能够被成功发送,但没法保证报文的实时性,优先级低的报文不能在需发送的时候立刻发送成功,会有等待而造成的延迟。基于事件触发的报文发送示意图如图1所示。

图1 基于事件触发的报文发送

从图1可以看到,节点A、B、C、D在不同的时刻分别向总线上发送ID为5、7、3、6的报文。B节点发送优先级较低,虽然发送时间很早,但是由于总线竞争的原因导致其最终发送到总线上的时刻最靠后。这就是基于“事件触发”发送方式的缺陷,各个节点之间没有公共时钟,报文的发送不能统一进行协调,很多时候会由于多个节点同时发送报文造成总线竞争而产生延迟。

2 基于时间触发的CAN

提出一种以时间触发的CAN报文发送机制,时间触发的关键是要让所有的节点都能获取一个公共的时钟,CAN总线采取广播的方式发送报文,任何一个节点发送的报文都可以被其它节点所接收,并且发送节点发送完成和接收节点接收成功是同一个时刻,因此利用CAN总线的这种特点来实现基于时间触发。

选取网络上的任何一个节点发送同步报文,发送同步报文的节点称为同步节点。为了保证同步报文能够精确地 按周期发送,同步报文的ID设置为0(优先级最高),同步报文的周期取所有周期报文的最大公约数。假设其他报文的周期分别为10 ms、20 ms、30 ms、50 ms,则同步报文的周期为300 ms。同步节点每间隔300 ms发送一次同步报文,其发送完该报文之后,立刻将自身计数器清0,其他节点收到同步报文之后也将自身计数器清0,这样就能够使网络上所有节点每隔300 ms实现一次时钟同步。基于时间触发的报文发送如图2所示。

图2 基于时间触发的报文发送

从图2可以看出,时间轴上每间隔300 ms为一个同步时刻,所有节点都以同步时刻为基准发送报文。由于发送时刻都不冲突,因此报文能够在第一时间内被发送成功,避免了总线竞争,也就大大降低了报文延迟的可能。

3 总结

阐述CAN总线时间触发方面的一些思路,并尝试在汽车网络设计过程中进行一些有意义的理论实践,所提出的方法和措施都在工作中经过验证,实用性较强,对于提高汽车网络设计的实时性具有重要的参考作用。

[1] 颜碧云,魏叶华.基于CAN总线的共享时钟混合调度算法[J].计算机工程与应用,2014(4):69-72,156.

[2] 冯晓东,果艳红.TTCAN动态调度算法实现与仿真[J].电子测量与仪器学报,2008,22(2):81-85.

[3] 王庆祥,陈家琪.TTCAN网络的响应分析及系统矩阵的优化[J].上海理工大学学报,2005,27(1):32-36,42.

(编辑 心 翔)

A Time-trigger Method of CAN Transmission Mechanism

JI Hong-yan

(BAIC Off-road Vehicle Research Centre,Beijing 101300,China)

This article proposes a CAN transmission mechanism that all nodes on the network get a global clock,and message sending is triggered by time. This mechanism could effectively avoid delay caused by CAN competition,thus improve the real-time transmission.

time-trigger;event-trigger;CAN competition;message priority

U463.6

A

1003-8639(2017)10-0061-02

2017-01-05

纪宏岩,硕士,高级工程师,负责车载网络的设计和诊断系统的开发,具有10年总线开发经验。

猜你喜欢

实时性报文时钟
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
古代的时钟
浅析反驳类报文要点
一种基于FPGA的网络串口管理系统的设计
这个时钟一根针
有趣的时钟
计算机控制系统实时性的提高策略
可编程控制器的实时处理器的研究
时钟会开“花”