APP下载

CAN优先级倒置原因与对策

2012-09-25杨福宇

单片机与嵌入式系统应用 2012年4期

杨福宇

(重庆工业自动化仪表研究所,重庆 401123)

CAN总线起始于1986年左右,至今仍广泛应用。现在人们对安全的要求已大为提高,所以要不断仔细审视CAN的安全性能。现在已经发现的重要的CAN问题有:在消极报错状态下可能出现等效离线,使节点不能收发的时间相当长[1];错帧漏检率的估计不准,特别在误码率高时比Bosch CAN2.0数据高多个数量级[2],在单目的地址时影响数据正确性,在多个目的地址时会影响数据一致性;标准的振荡源精度要求偏低[3],使误用廉价器件成为可能,影响系统的稳定性;本文发现的优先级倒置的可能性,使调度分析结果的可信度下降;在数据帧倒数第二位的局部错可能引起不一致的接收重复或丢失[4]。所以在FlexRay尚未达到预定目标、无论在可靠性还是价格上能取代CAN以前,对CAN作进一步的改进仍然是非常有意义的。

CAN是一种代表性的事件触发通信协议,同时发生的多个通信请求将按照消息的优先级进行无损仲裁,高优先级的胜出。按照消息的优先级进行无损仲裁是CAN原始专利的唯一权利要求[5]。对于低优先级的消息而言,送达时间将受到高优先级消息的阻扰,在高优先级消息为周期性时,最坏送达时间是可以预先计算出的[6]。如果能安排好发送消息的初始相位并作宽松的时钟同步,这个最坏送达时间可以大为减少。事件触发协议的优点是总线带宽可以得到充分利用。另一个优点是高优先级消息可得到迅速发送。但是由于工业环境中普遍存在的电磁干扰,总线上会有毛刺,CAN总线的标准中已考虑到应对方法。……

登录APP查看全文