各字段解釋:
SOF
幀開始標誌比特是一個顯性比特(0),由一個或多個準備發送幀的節點傳輸。SOF標誌着幀的開始(或仲裁發送幀的權利),並用於「硬同步」總線上的設備。只有在開始發送前總線上至少有11個處於隱性狀態的連續比特時,發送方纔能開始發送幀。
仲裁字段
仲裁字段包含12比特,前11比特被稱爲仲裁ID。該字段的主要功能是實現CAN的媒體接入控制機制,仲裁字段的第12比特標記爲遠程傳輸請求(RTR),如今基本不用。CAN-FD做爲最新的CAN幀格式已經沒有RTR字段。
控制字段
標準11比特幀的控制字段包含一個顯性的IDE標記,在擴展幀(29比特ID字段)中該標記爲隱性狀態,還有一個保留比特和一個4比特的數據字段。數據字段決定了幀中數據或淨荷部分的數據長度。ISO11898-1規定,數據字段能夠是任何4比特值,但大於或等於8表示數據淨荷長度是8。在CAN-FD規範中,數據字段大於8表示淨荷大於8,但淨荷最大爲64字節(大於8時有對應關係)。網絡
CRC
ISO11898標準幀的CRC字段長度是16比特,由15比特的CRC值和一個隱性CRC定界符比特組成。當CRC校驗失敗時,ACK產生做用
ACK
確認字段是總線上的全部接收方用來向發送方發送信號確認CRC值匹配且正確接收到了整個幀。若是任何節點正確的收到了幀且不存在任何錯誤,發送方會將該比特設置成顯性比特,表明它已正確發送了報文。若是接收方檢測到問題,將用一個錯誤幀覆蓋ACK比特,用以通知給全部問題相關方。
幀結束標識符
連續7個隱性比特表示幀結束架構
CAN用一種巧妙的方法容許設備可以同時開始傳輸數據而不產生衝突,規定具備最高優先級的報文的設備可以持續傳輸,而較低優先級的報文組隊不過退避。
該方法依賴於仲裁字段以及總線上的全部設備的數據傳輸都由總線控制這一事實。任什麼時候候總線被檢測到空閒時,設備找發送幀數據前會發送一個顯性比特的幀起始標識符(SOF)。該顯性比特供總線上全部設備來同步時鐘。所以,若是多臺設備檢測到總線空閒並試圖發送SOF時,他們能檢測到其它設備的比特,並根據從總線收到的第一個SOF進行同步。
一旦「硬同步」完成, 任何但願在該幀時間內發送幀的設備將開始以每次發送1比特的方法發送11比特的仲裁ID。總線配置成「邏輯與」操做,即便只有一臺設備發送了一個顯性比特(0),總線也會變成0值。在此種狀況下,發送顯性比特的設備繼續仲裁,而發送隱性比特的設備將「退出」並準備隨後發送幀。因此ID較小者,仲裁時會優先勝出,每次競爭時高優先級的報文可以優先發送。
CAN仲裁機制被稱爲非破壞性的機制,由於總會有一個報文會勝出將幀發送出去。可是,這一點也要求設備可以同步並幾乎同時將仲裁ID的比特發送出去才能發生。因此總線要求長度較短且傳輸速度較慢。(500K/s的總線佈線最大長度40M,支節點0.3M,最多30個節點)spa
LIN的物理層使用基於汽車電源工做的單線,一般12V。容許在7V至18V的範圍內波動。LIN採用主從架構的總線拓撲。全部LIN節點共享同一物理媒介,其中一個節點指定爲主機,而其餘最多16個節點做爲從節點。最大網絡長度40M。blog
Break
LIN 數據幀開始發送前,主機會發送13個顯性比特,用於通知其它節點即將有數據發送
SYNC
SYNC符號由主節點發送,比特序0,1,0,1,0,1,0,1(0x55)組成。使從節點與主機同步並準備好開始接收ID
ID
ID字節由6比特的ID值以及末端用於錯誤檢測的2個校驗比特組成。因此惟一ID的數量限制在了64個
淨荷
爆頭始終由主節點發送,而淨荷部分由數據的預期源節點根據幀DI發送。
校驗和
簡單的8比特校驗和用於檢測錯誤同步
LIN依賴與由主節點控制的定時觸發的報文系統。只有主機才能發起幀在總線上的傳輸,所以不會產生衝突。
擴展