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

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

CAN標(biāo)準(zhǔn)數(shù)據(jù)幀和擴(kuò)展數(shù)據(jù)幀的區(qū)別
CAN FD幀結(jié)構(gòu)介紹

CAN協(xié)議的幾種幀格式介紹

CAN和CANFD協(xié)議簡(jiǎn)介(下)

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

評(píng)論