通過 CAN 總線傳輸數(shù)據(jù)是需要按照一定協(xié)議進行的,CAN 協(xié)議提供了 5種幀格式來傳輸數(shù)據(jù):數(shù)據(jù)幀、遙控幀、錯誤幀、過載幀和幀間隔。其中數(shù)據(jù)幀和遙控幀有標(biāo)準(zhǔn)格式和擴展格式兩種,標(biāo)準(zhǔn)格式有 11 位標(biāo)識符(ID),擴展格式有 29個標(biāo)識符(ID)。這 5 中幀的用途見表:
1、數(shù)據(jù)幀
數(shù)據(jù)幀由 7 段組成:
①、幀起始,表示數(shù)據(jù)幀開始的段。②、仲裁段,表示該幀優(yōu)先級的段。③、控制段,表示數(shù)據(jù)的字節(jié)數(shù)及保留位的段。④、數(shù)據(jù)段,數(shù)據(jù)的內(nèi)容,一幀可發(fā)送 0~8個字節(jié)的數(shù)據(jù)。⑤、CRC 段,檢查幀的傳輸錯誤的段。⑥、ACK 段,表示確認(rèn)正常接收的段。⑦、幀結(jié)束,表示數(shù)據(jù)幀結(jié)束的段。
數(shù)據(jù)幀結(jié)構(gòu)如圖所示:
圖給出了數(shù)據(jù)幀標(biāo)準(zhǔn)格式和擴展格式兩種幀結(jié)構(gòu),圖中 D 表示顯性電平 0、R 表示隱性電平 1,D/R 表示顯性或隱性,也就是 0 或1,我們來簡單分析一下數(shù)據(jù)幀的這 7 個段。
①、幀起始
幀起始很簡單,標(biāo)準(zhǔn)格式和擴展格式都是由一個位的顯性電平 0 來表示幀起始。
②、仲裁段
仲裁段表示幀優(yōu)先級,仲裁段結(jié)構(gòu)如圖所示:
標(biāo)準(zhǔn)格式和擴展格式的仲裁段不同,從圖可以看出,標(biāo)準(zhǔn)格式的 ID 為 11 位,發(fā)送順序是從 ID10 到 ID0,最高 7 位 ID10~ID4不能全為隱性(1),也就是禁止 0X1111111XXXXX這樣的 ID。擴展格式的 ID 為 29 位,基本 ID 從 ID28 到 ID18,擴展 ID 由ID17 到 ID0,基本ID 與標(biāo)準(zhǔn)格式一樣,禁止最高 7 位都為隱性。
③、控制段
控制段由 6 個位構(gòu)成,表示數(shù)據(jù)段的字節(jié)數(shù),標(biāo)準(zhǔn)格式和擴展格式的控制段略有不同,如圖所示:
圖中 r1 和 r0 為保留位,保留位必須以顯性電平發(fā)送。DLC 為數(shù)據(jù)長度,高位在前,DLC 段有效值范圍為 0~8。
④、數(shù)據(jù)段
數(shù)據(jù)段也就是幀的有效數(shù)據(jù),標(biāo)準(zhǔn)格式和擴展格式相同,可以包含 0~8 個字節(jié)的數(shù)據(jù),從最高位(MSB)開始發(fā)送,結(jié)構(gòu)如圖所示:
⑤、CRC 段
CRC 段保存 CRC 校準(zhǔn)值,用于檢查幀傳輸錯誤,標(biāo)準(zhǔn)格式和擴展格式相同,CRC 段結(jié)構(gòu)如圖所示:
從圖可以看出,CRC 段由 15 位的 CRC 值與 1 位的 CRC 界定符組成。CRC值的計算范圍包括:幀起始、仲裁段、控制段、數(shù)據(jù)段,接收方以同樣的算法進行計算,然后用計算得到的 CRC 值與此 CRC段進行比較,如果不一致的話就會報錯。
⑥、ACK 段
ACK 段用來確認(rèn)接收是否正常,標(biāo)準(zhǔn)格式和擴展格式相同,ACK 段結(jié)構(gòu)如圖所示:
從圖可以看出,ACK 段由 ACK 槽(ACK Slot)和 ACK 界定符兩部分組成。發(fā)送單元的 ACK,發(fā)送 2
個隱性位,而接收到正確消息的單元在 ACK 槽(ACK Slot)發(fā)送顯性位,通知發(fā)送單元正常接收結(jié)束,這個過程叫發(fā)送 ACK/返回 ACK。發(fā)送 ACK的是所有接收單元中接收到正常消息的單元,所謂正常消息是指不含填充錯誤、格式錯誤、CRC錯誤的消息,這些接收單元既不處于總線關(guān)閉態(tài)也不處于休眠態(tài)的所有接收單元中。
⑦、幀結(jié)束
最后就是幀結(jié)束段,標(biāo)準(zhǔn)格式和擴展格式相同,幀結(jié)束段結(jié)構(gòu)如圖所示:
從圖可以看出,幀結(jié)束段很簡單,由 7 位隱性位構(gòu)成。
-
CAN
+關(guān)注
關(guān)注
57文章
2788瀏覽量
465183 -
數(shù)據(jù)幀
+關(guān)注
關(guān)注
0文章
47瀏覽量
6836
發(fā)布評論請先 登錄
相關(guān)推薦
淺談CAN FD總線協(xié)議幀格式

CAN協(xié)議規(guī)定了好幾種幀類型
CAN協(xié)議的數(shù)據(jù)幀是如何構(gòu)成的
CAN總線過載幀及數(shù)據(jù)幀詳解

CAN標(biāo)準(zhǔn)數(shù)據(jù)幀和擴展數(shù)據(jù)幀的區(qū)別
CAN通信協(xié)議中有哪幾種幀類型?CAN通信中幀格式的作用
請問用CAN存儲器存儲的CAN總線數(shù)據(jù)幀格式有哪些呢?
CAN數(shù)據(jù)幀的各個域及其作用
can數(shù)據(jù)幀有哪幾個域組成
can網(wǎng)絡(luò)數(shù)據(jù)幀的特點
can標(biāo)準(zhǔn)幀和擴展幀能否共存
基于Vector工具進行CAN協(xié)議錯誤幀的分析實踐

評論