CAN(Controller Area Network)總線
CAN(Controller Area Network)即控制器局域網,是一種能夠實現分佈式實時控制的串行通信網絡。
CAN 總線廣泛應用於汽車、船艦等電子設備通信
概述
CAN是由 Bosch (德國)和 Intel 公司開發的
CAN有很多優秀的特點,使得它能夠被廣泛的應用。比如:
- 傳輸速度最高到 1Mbps
- 通信距離最遠到 10km,
- 無損位仲裁機制
- 多主結構。
現在每一輛汽車上都裝有CAN總線。
一個 CAN 應用場景:
CAN總線標準
CAN總線標準只規定了物理層和數據鏈路層,需要用戶自定義應用層。
CAN收發器負責邏輯電平 和物理信號之間的轉換。
物理層
多個節點連接,只要有一個爲低電平,總線就爲低電平,只有所有節點輸出高電平時,才爲高電平。所謂"線與"。
CAN總線有5個連續相同位後,就插入一個相反位,產生跳變沿,用於同步。從而消除累積誤差。
CAN的傳輸速度與距離成反比:
數據鏈路層
CAN總線傳輸的是CAN幀,CAN的通信幀分爲五種,分別是:
- 數據幀:用來節點之間收發數據,是使用最多的幀類型;
- 遠程幀:用來接收節點向發送節點接收數據;
- 錯誤幀:是某節點發現幀錯誤時用來向其他節點通知的幀;
- 過載幀:是接收節點用來向發送節點告知自身接收能力的幀;
- 隔離幀:用於將數據幀、遠程幀與前面幀隔離的幀。
數據幀根據仲裁段長度不同分爲標準幀(2.0A)和擴展幀(2.0B)