CAN总线冲突裁决

当总线上的几个器件同时发送数据的时候,CAN总线必须决定哪个器件可以发送,而其他的器件必须等待。冲突裁决是CAN协议最重要的一个特性。

    以下图为例。总线上有器件A,B,C,D。A,B,C同时发出SOF位为显性。而D为隐形,当它发现总线上的状态与自己的状态不一致时,D就进入监听状态。A,B,C继续发送数据。发送到ID的第5位时A,C为显性,B为隐形。B检测到总线的状态于自己的状态不一致,进入监听状态。A,C继续发送数据。这也说明B的ID比A,C要大。当发送到ID的第1位时A为隐形,C为显性,A进入监听状态。C继续发送。最终ID最小的C发送成功,A,B只能等待C发送完成之后再进行发送。然后A会发送成功,B等待,最后才是B发送。从上面的裁决过程可以看出,对于C来说,它的数据发送没有因为冲突而产生延迟。

原文地址:https://www.cnblogs.com/yzl050819/p/8963007.html