天天看點

超幹貨!| 什麼是嵌入式CAN總線?

如今,CAN總線在汽車和船艦電子裝置通信中被廣泛運用,并且随着國家越來越重視海防,對CAN的需求也會越來越大。

是以同學們,你們知道什麼是嵌入式CAN總線嗎?不如今天就和華妹一起來學習吧!

控制器區域網路絡CAN(controller area network)是用于無主機情況下,多個裝置通信的總線協定。

協定參考OSI。OSI分成了應用層、表示層、會話層、傳輸層、網絡層、資料鍊路層、實體層。CAN總線根據需求,隻采用了實體層,資料鍊路層,以及應用層。

一、CAN實體層

實體層:主要功能是為資料端裝置提供傳送資料的通路。

CAN總線,實體層是由雙絞線實作資料的傳輸,其中一條命名位CAN_H,另外一條是CAN_L,有兩種結構設計。

閉環結構

閉環結構,雙絞線兩端用120Ω電阻相連。這種結構,傳輸速度在125kbps-1Mbps之間。優點是傳輸速度快;缺點是通信距離短,最遠也隻能實作40m的準确傳輸。

開環結構

開環結構,雙絞線不連接配接,兩條線的一端都并聯一個2.2KΩ的電阻。開環結構,傳輸速度在125kbps以下。但是,傳輸距離可以達到1km。

無論哪種結構,通信裝置隻需要用兩條線路對應連接配接到CAN_H和CAN_L線上。

超幹貨!| 什麼是嵌入式CAN總線?

CAN總線網絡拓撲圖

差模信号傳輸

實體層還規定,資料以差模信号傳輸。在閉環結構中,小于0.05v的內插補點,表示隐形位(1),內插補點大于1.5v,表示顯性位(0);開環結構中,內插補點大于-0.3v,表示隐形位(1),內插補點大于(0.3v),表示顯性位(0)。

超幹貨!| 什麼是嵌入式CAN總線?

CAN控制器或者晶片,多數采用ttl信号。是以每個CAN節點内部結構中,CAN控制器都是通過收發器來連接配接到總線上的。收發器,實作ttl信号和差模信号的轉換。

二、資料鍊路層

資料鍊路層:主要功能是如何在不可靠的實體線路上進行資料的可靠傳遞。

CAN總線協定為了做到可靠傳遞,把資料鍊路層分位兩層,媒體通路控制層(MAC)層和邏輯鍊路控制子層(LLC)。

MAC子層

MAC子層是實作CAN協定的核心,它的功能主要是規定傳送規則。參總線協定,對幀結構、執行仲裁、錯誤檢測、出錯标定和故障界定都做了規定。

例如,CAN總線規定了資料幀、遙控幀、錯誤幀、過載幀、幀間隔等不同類型的幀。其中,資料幀又分為标準幀和擴充幀。CAN總線協定規定資料幀的結構為:幀起始,仲裁段、控制段、資料段、CRC段、ACK段、幀結束,且對各段,都做了規定。

超幹貨!| 什麼是嵌入式CAN總線?

CAN總線實作的執行仲裁,采用了線與原理,結合仲裁段來完成。

這些規定,目的都是通過簡單的雙絞線,達到可靠的資訊傳遞。不過,這樣的資訊傳遞,是廣播性質的。如果,所有資料都接收,無疑會給cpu帶來巨大的負荷。是以,還需要對資料進行處理,也就是LLC層的目的。

LCC子層

LLC子層的功能主要是封包濾波、超載通知和恢複管理。

超幹貨!| 什麼是嵌入式CAN總線?

CAN控制器中,通過封包濾波器,篩選出CAN總線傳輸,符号要求的資訊,供微處理器使用。

實體層和資料鍊路層的功能可由CAN接口器件來完成。

三、應用層

應用層,由微處理器完成。根據使用場景的不同,在CAN的基礎上,還有CANOpen,DeviceNet等更新協定,使用了CAN總線的實體層和資料鍊路層,隻是對應用層加以修改。

CAN總線協定,是一個發展的總線協定,我們可以對其進行優化,例如現在的CANFD,對資料幀的資料段做修改,CAN總線的傳輸速度可以達到5Mbps。

是以同學們要想了解什麼是CAN,就要從協定和實體層次學習哦~大家如果還有疑問,歡迎評論區留言!

繼續閱讀