一、前言
CAN总线厉害的其中一个原因是CAN总线灵活且强大的竞争与仲裁机制。
二、CAN总线非破坏性仲裁机制
当CAN节点发送竞争失败时,计划发送的CAN报文并不会被破坏。然后CAN节点等待下一次的同步。
三、非破坏性仲裁机制的前提
CAN控制器有电平检测的功能,再加上“线与”的原理就能实现非破坏性仲裁机制。说白了,就是抢占总线之前先看看总线有没有被其他CAN节点占用,如果占用了就进入只听模式,等待下一次的同步。
每一个CAN节点都会在“帧开始”进行同步,同步之后开始仲裁,看看能否获得CAN总线的使用权。
四、仲裁的实现
每一个CAN节点在“帧同步”实现同步后,在仲裁段使用线与原理实现仲裁。从下图看到,在仲裁段时,如果节点处于隐性电平,将进入只听模式,不会再争夺CAN总线的使用权,等待下一次的帧同步。
经过两次的仲裁后,节点A获得CAN总线的使用权,然后节点A将CAN报文发出去。