摘要
CAN总线是代表性的基于消息优先级进行调度的事件触发协议。为了保障通信的正常运行,必须实现帧开始时的硬同步以及无帧发送时的毛刺滤除。在现有CAN总线协议中,这2个设计的组合在特定场合会引起高优先级消息失去与同时发生的低优先级消息的竞争机会,即优先级倒置。优先级倒置的后果是高优先级消息的送达时间延迟,送达时间的理论分析结果不再正确。在完全兼容CAN总线的条件下,提出了在总线空闲时以及在服务间隔第3位处理毛刺的方法。它对于优先级倒置有改进,但对于毛刺较长而与低优先级消息帧开始位(SOF)相连引起的倒置仍无法解决。
CAN is a representative event-triggered protocol scheduled based on priority. To guarantee the correct operation it is necessary to realize hard synchronization during frame starting and glitch filtering when there is no frame starting. In current CAN protocol the two corresponding protocol designs in some cases will cause priority inversion: the higher priority message loses the chance to compete with the lower priority message which is ready at the same time with the higher one. The consequence of priority inversion is delay of higher priority message's delivery, and the scheduling analysis result is no longer correct. This paper suggests a remedy method to deal with the glitch in bus idle time and the glitch in the 3rd bit of inter mission. It is fully compatible with native CAN. It mitigates the pri- ority inversion problem, but the problem is still there when the width of glitch is prolonging to the SOF of lower priority message.
出处
《单片机与嵌入式系统应用》
2012年第4期1-4,共4页
Microcontrollers & Embedded Systems