CAN总线冲突裁决

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

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

CAN总线冲突裁决_第1张图片

你可能感兴趣的:(CANOpen)