CAN总线的仲裁
- 格式:docx
- 大小:11.29 KB
- 文档页数:2
CAN总线的仲裁
CAN 总线采用的是一种叫做“载波监测,多主掌控/冲突避免”
(CSMA/CA)的通信模式。
这种总线仲裁方式允许总线上的任何一个设各都
有机会取得总线的控制权并向外发送数据。
如果在同一时刻有2 个或2 个以上
的设各要求发送数据,就会产生总线冲突,CAN 总线能够实时地检测这些冲突
并对其进行仲裁,从而使具有高优先级的数据不受任何损坏地传输。
当总线处于空闲状态时呈隐性电平,此时任何节点都可以向总线发送显性电
平作为帧的开始。
如果2 个或2 个以上同时发送就会产生竞争。
CAN 总线解决
竞争的方法同以太网的CSMA/CD(Carrier Sense Multiple Access with Collislon Detection)方法基本相似,如图1 所示。
此外,CAN 总线做了改进并
采用CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)访问总线,按位对标识符进行仲裁。
各节点在向总线发送电平的同时,也对总线上
的电平读取,并与自身发送的电平进行比较,如果电平相同继续发送下一位,
不同则停止发送退出总线竞争。
剩余的节点继续上述过程,直到总线上只剩下
1 个节点发送的电平,总线竞争结束,优先级高的节点获得总线的控制权。
图1 Ethernet 采用的CSMA/CD 总线访问过程
CAN 总线以报文为单位进行数据传输,报文的优先级结合在44 位标识符中
(扩展帧的标识符29 位),具有最小二进制数的标识符的节点具有最高的优先级。
这种优先级一旦在系统设计时确定就不能随意地更改,总线读取产生的冲
突主要靠这些位仲裁解决。
之所以CAN 总线不采用以太网使用的延时避免冲
突,主要是为了保证具有更高优先级的节点能够完整地实时传输,而且
CSMA/CA 可以有效地避免冲突。