CAN:Controller Area Network,控制器局域網
是一種能有效支持分布式控制和實時控制的串行通訊網絡。
CAN-bus: Controller Area Network-bus,控制器局域網總線技術
CAN總線系統結構
- CAN 控制器
接收控制單元中微處理器發出的數據,處理數據並傳給CAN收發器
- CAN收發器
將數據傳到總線 or 從總線接收數據給控制器
- CAN數據傳遞終端
避免數據傳輸終了反射回來
-
CAN數據總線
傳輸數據的數據線,兩根 CAN-high and CAN-low,差分信號
CAN總線系統的數據傳輸
CAN總線節點上的節點發送數據是以報文的形式廣播給網絡中所有節點。收發器接收到數據就把數據傳送給控制器,再由控制器檢查判斷是不是所需數據。不是則忽略。
- 網絡上任何一個節點在任何時候都可以發送數據
- 多個節點發送數據,優先級低主動退出發送
- 短幀結構,每幀數據信息為0~8字節(具體用戶定義),對數據編碼而不是地址編碼
- CAN每幀都有CRC校驗和其他檢驗措施,嚴重錯誤的情況下具有自動關閉輸出的功能
CAN總線系統數據格式
CAN-bus通信幀共分為數據幀、遠程幀、錯誤幀、過載幀和幀間隔
五種類型。
-
數據幀
結構上由7個段組成,其中根據仲裁段ID碼長度的不同,分為標准幀(CAN2.0A)和擴展幀(CAN2.0B)。
幀起始、幀結束
仲裁段
顯性隱性
總線仲裁
- 從該分析過程得出結論是:幀ID值越小,優先級越高
-
對於同為擴展格式數據幀、標准格式遠程幀和擴展格式遠程幀的情況同理。
控制段
數據段
CRC段
ACK段
遠程幀
數據幀與遠程幀的區別
CAN-bus 錯誤類型
過載幀
幀間隔