什么是CAN總線
時間:2023-09-08 來源:華清遠見
控制器局域網絡Can(controller area network)是用于無主機情況下,多個設備通信的總線協議。
協議參考OSI。OSI分成了應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層、物理層。Can總線,根據需求,只采用了物理層,數據鏈路層,以及應用層。
物理層:主要功能是為數據端設備提供傳送數據的通路。
Can總線,物理層是由雙絞線實現數據的傳輸,其中一條命名位CAN_H,另外一條是CAN_L。有兩種結構設計。
閉環結構,雙絞線兩端用120Ω電阻相連。這種結構,傳輸速度在125kbps-1Mbps之間。優點是傳輸速度快,缺點是通信距離短,最遠,只能實現40m的準確傳輸。
開環結構,雙絞線不連接,兩條線的一端都并聯一個2.2KΩ的電阻。開環結構,傳輸速度在125kbps以下。但是,傳輸距離較遠,可以達到1km。
無論哪種結構,通信設備只需要用兩條線路對應連接到CAN_H和CAN_L線上。
Can總線網絡拓撲圖

此外,物理層還規定,數據以差模信號傳輸,在閉環結構中,小于0.05v的差值,表示隱形位(1),差值大于1.5v,表示顯性位(0);開環結構中,差值大于-0.3v,表示隱形位(1),差值大于(0.3v),表示顯性位(0)。

can控制器或者芯片,多數采用ttl信號。因此每個can節點內部結構中,can控制器都是通過收發器來連接到總線上的。收發器,實現ttl信號和差模信號的轉換。
數據鏈路層:主要功能是如何在不可靠的物理線路上進行數據的可靠傳遞。
Can總線協議為了做到可靠傳遞,把數據鏈路層分位兩層,邏輯鏈路控制子層(LLC)和媒體訪問控制層(MAC)層。
MAC子層是實現CAN協議的核心,它的功能主要是規定傳送規則。參總線協議,對幀結構、執行仲裁、錯誤檢測、出錯標定和故障界定都做了規定。
例如,CAN總線規定了數據幀、遙控幀、錯誤幀、過載幀、幀間隔等不同類型的幀。其中,數據幀又分為標準幀和擴展幀。CAN總線協議規定數據幀的結構為:幀起始,仲裁段、控制段、數據段、CRC段、ACK段、幀結束,且對各段,都做了規定。

Can總線實現的執行仲裁,采用了線與原理,結合仲裁段來完成。
這些規定,目的都是通過簡單的雙絞線,達到可靠的信息傳遞。不過,這樣的信息傳遞,是廣播性質的。如果,所有數據都接收,無疑會給cpu帶來巨大的負荷。所以,還需要對數據進行處理,也就是LLC層的目的。
LLC子層的功能主要是報文濾波、超載通知和恢復管理。

Can控制器中,通過報文濾波器,篩選出Can總線傳輸,符號要求的信息,供微處理器使用。
物理層和數據鏈路層的功能可由CAN接口器件來完成。
應用層,由微處理器完成。根據使用場景的不同,在Can的基礎上,還有CanOpen,DeviceNet等升級協議,使用了Can總線的物理層和數據鏈路層,只是對應用層加以修改。
CAN總線協議,是一個發展的總線協議,我們可以對其進行優化,例如現在的CANFD,對數據幀的數據段做修改,CAN總線的傳輸速度可以達到5Mbps。
綜上所述,要理解什么是Can,要從協議和物理層次學習了解。

