通訊是通過以下 5 種型別的幀進行的
另外, 資料幀和遙控幀有標準格式(can2.0a)和和擴充套件格式(can2.0b)兩種格式:
標準格式有 11 個位的識別符號(identifier: 以下稱 id)
擴充套件格式有 29 個位的 id
各種幀的用途:
幀幀用途
資料幀用於傳送單元向接收單元傳送資料的幀
遙控幀用於接收單元向具有相同 id 的傳送單元請求資料的幀
錯誤幀用於當檢測出錯誤時向其它單元通知錯誤的幀
過載幀用於接收單元通知其尚未做好接收準備的幀
幀間隔用於將資料幀及遙控幀與前面的幀分離開來的幀
資料幀由 7 個段構成:
接下來,詳細的了解一下資料幀的構成
表示資料幀開始的段sof
1 個位的顯性位,電平的邏輯值為「0」
表示該幀優先順序的段
標準格式和擴充套件格式在此的構成有所不同
在id號前11位相同的情況下,有幾個位值得說一下:
簡稱全稱
名稱特點
作用rtr位
remote tra****sion request bit
遠端傳送請求位
在資料幀中,恒為顯性位0;在遙控幀中,恒為隱性1
相同格式下,保證 資料幀 優先順序高於 遙控幀
srr位
substitutes for remote requests bit
替代遠端請求位
在擴充套件幀(資料幀或遙控幀)中,恒為隱性1; 在標準資料幀的中,對應的位rtr,恒為顯性位0
保證 標準資料幀 優先順序高於 擴充套件資料幀
ide 位
identifier extension bit
識別符擴充套件位
在擴充套件幀(資料幀或遙控幀)中,恒為隱性1;在標準幀(資料幀或遙控幀)中,ide位於控制段,恒為顯性0
保證 標準遙控幀 優先順序高於 擴充套件遙控幀
在can匯流排中沒有位址的概念,can匯流排是通過報文id來實現收發資料的
can節點上都會有乙個驗收濾波id表,其位於can節點的驗收濾波器中
如果匯流排上的報文id號在某個節點的驗收濾波id表中
那麼這一幀報文就能通過該節點驗收濾波器的驗收,該節點就會接收這一幀報文
比如:node_a
傳送了一幀id號為id_1
的報文msg_1
node_b
的驗收濾波id表中恰好有id_1
於是乎msg_1
就會被node_b
接收
表示資料的位元組數及保留位的段,由 6 個位構成
標準格式和擴充套件格式的構成有所不同
資料位元組數
dlc3
dlc2
dlc1
dlc00d
ddd1
dddr
2ddr
d3dd
rr4d
rdd5
drdr
6drr
d7dr
rr8r
ddd資料的位元組數必須為 0~8 位元組
但接收方對 dlc = 9~15 的情況並不視為錯誤
資料的內容,可傳送 0~8 個位元組的資料
從 最高有效位msb(most significant bit)開始輸出
檢查幀的傳輸錯誤的段
由 15 個位的 迴圈冗餘校驗crc 順序 和 1 個位的 crc 界定符(用於分隔的位)構成
crc 順序是根據多項式生成的 crc 值
crc 的計算範圍包括幀起始、仲裁段、控制段、資料段
接收方以同樣的演算法計算 crc 值並進行比較,不一致時會通報錯誤
表示確認正常接收的段
由 確認字元ack 槽(ack slot)和 ack 界定符 2 個位構成
這稱作「傳送 ack」或者「返回 ack」
傳送 ack 的是:在既不處於匯流排關閉態也不處於休眠態的所有接收單元中,接收到正常訊息的單元
傳送單元不傳送 ack
所謂正常訊息是指不含填充錯誤、格式錯誤、 crc 錯誤的訊息
表示資料幀結束的段eof
由 7 個位的隱性位構成
接收單元 向 傳送單元請求傳送資料所用的幀
遙控幀由 6 個段組成(幀起始、仲裁段、控制段、crc 段、ack 段、 幀結束)
遙控幀 沒有 資料幀 的資料段
遙控幀的 遠端傳送請求位rtr
位為隱性位 1,沒有資料段
沒有資料段的資料幀和遙控幀可通過rtr
位區別開來
參考:《can入門書》
CAN協議學習(一)
1 在匯流排空閒時,所有單元都可以傳送訊息,兩個以上單元同時傳送訊息時,對各訊息的identifier進行逐位仲裁比較,仲裁獲勝的單元 具有較高優先順序 可繼續傳送訊息,仲裁失敗的單元停止傳送。2 訊息中沒有位址,訊息廣播到匯流排上,任何匯流排上的單元都可以接收訊息。在匯流排上增加單元,不會影響到其...
CAN匯流排協議 標準CAN和擴充套件CAN
can通訊協議是乙個載波偵聽 基於報文優先順序碰撞檢測和仲裁 csma cd amp 的多路訪問協議。csma的意思是匯流排上的每乙個節點在企圖傳送報文前,必須要監聽匯流排,當匯流排處於空閒時,才可傳送。cd amp的意思是通過預定程式設計好的報文優先順序逐位仲裁來解決碰撞,報文優先順序位於每個報文...
CAN協議簡介
硬體設計好了,在進行軟體程式設計之前我們最好對 can匯流排的協議有個了解。一 報文傳送由以下四種幀型別 1 資料幀 資料幀攜帶資料從傳送器至接收器。2 遠端幀 匯流排單元發出遠端幀,請求傳送具有同一識別符的資料幀。3 錯誤幀 任何單元檢測到一匯流排錯誤時就傳送錯誤幀。4 超載幀 用來在先行的和後續...