CAN筆記(6) CAN協議(一)

2021-09-26 19:40:58 字數 2952 閱讀 5778

通訊是通過以下 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 超載幀 用來在先行的和後續...