对于标准帧而言,有11位的标识符,也就是报文的ID。报文的ID值越小,优先级越高。如果有两个以上的ECU同时发送CAN报文,ID值小的报文可以发送成功。总线仲裁机制是一种非破坏性仲裁,是一种既不会造成已发送数据的延迟,也不会破坏已经发送的数据的仲裁机制。
每个ECU在发送报文的同时,它也在不断的回读总线上的电平,发送报文就是传输发送电平。CAN报文的发送与接收依靠链接在CAN总线的CAN收发器,CAN收发器内部有一个接收端和一个发送端,它们同时进行工作。
低电平的本质就是接地线。不管总线上挂了多少个ECU节点,大家都在发送隐形高电平信号,只有有其中任意一个ECU发送显性低电平,就导致总线上是低电平,呈现出显性这种状态。只有当总线上所有的节点都在发送隐形高电平,这时总线上才呈现隐形的状态。
示例:
现在有三个ECU节点在同时发送CAN报文,它们的ID分别是67C、65A、65D。
隐形高电平表示1
显性低电平表示0
多个节点同时发送报文,可以同时发送,但是在发的过程中,每个节点在发送每一个比特的同时也在回读总线上的每一个比特的实际电平。只要回读到的电平和自己一致就继续发,不一致就停止发送。这种巧妙的设计,不需要在仲裁过程中,额外的再发送一些别的报文,即不浪费时间,也不破坏报文的这种数据。其中非常根本的底层机制,就是显性的电平一旦某一个节点发出去,那么总线的电平就呈现显性低电平,因此显性低电平0的优先级就更高。