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
總結
- 上一篇: 简单明了区分escape、encodeU
- 下一篇: Java高并发系列 — AQS