0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CAN總線的幀類型及結(jié)構(gòu)

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-11-03 09:05 ? 次閱讀

本文主要介紹CAN總線的幀類型及結(jié)構(gòu)。

CAN總線定義五種幀類型,分別為數(shù)據(jù)幀、遠程幀、錯誤幀、過載幀和幀間隔。數(shù)據(jù)幀就是總線上傳輸用戶數(shù)據(jù)的幀,其最高有效載荷是8字節(jié)(CAN FD為64字節(jié)),除了有效載荷外,數(shù)據(jù)幀還包括必要的幀頭幀位部分以執(zhí)行CAN標準通信,比如消息標識符(Identifier)、數(shù)據(jù)長度代碼、校驗信息等。遠程幀是用來向總線上其它節(jié)點請求數(shù)據(jù)的幀,它的幀結(jié)構(gòu)與數(shù)據(jù)幀相似,只不過沒有有效載荷部分;錯誤幀是表示通信出錯的幀;幀間隔是用來隔離數(shù)據(jù)幀或者遙控幀的。

數(shù)據(jù)幀和遠程幀有標準格式和擴展格式兩種格式。標準格式有11位的標識符,擴展格式有29位標識符。

幀類型 幀用途 備注
數(shù)據(jù)幀 用于發(fā)送單元向接收單元傳送數(shù)據(jù)的幀 分為標準格式和擴展格式,標準格式有11位標識符,擴展格式有29位標識符
遙控幀 用于接收單元向具有相同ID的發(fā)送單元請求數(shù)據(jù)的幀
錯誤幀 用于當檢測出錯誤時向其它單元通知錯誤的幀
過載幀 用于接收單元通知其尚未做好接收準備的幀
幀間隔 用于將數(shù)據(jù)幀及遙控幀與前面的幀分離開來的幀 過載幀和錯誤幀前不能插入幀間隔

數(shù)據(jù)幀

數(shù)據(jù)幀的幀結(jié)構(gòu)如下圖所示:

7d03c54e-5b12-11ed-a3b6-dac502259ad0.png

7d19af9e-5b12-11ed-a3b6-dac502259ad0.jpg

各個字段定義及長度分別為:

SOF:表示數(shù)據(jù)幀開始;(1bit)

Identifier:標準格式11 bit,擴展格式29 bit包括Base Identifier(11bit)和Extended Identifier(18bit),該區(qū)段標識數(shù)據(jù)幀的優(yōu)先級,數(shù)值越小,優(yōu)先級越高;

RTR:遠程傳輸請求位,0時表示為數(shù)據(jù)幀,1表示為遠程幀,也就是說RTR=1時,消息幀的Data Field為空;(1bit)

IDE:標識符擴展位,0時表示為標準格式,1表示為擴展格式;(1bit)

DLC:數(shù)據(jù)長度代碼,0~8表示數(shù)據(jù)長度為0~8 Byte;(4bit)

Data Field:數(shù)據(jù)域;(0~8Byte)

CRC Sequence:校驗域,校驗算法G(x) = x15 + x14 + x10 + x8 + x7 + x4 + x3 + 1;(15bit)

DEL:校驗域和應(yīng)答域的隱性界定符;(1bit)

ACK:應(yīng)答,確認數(shù)據(jù)是否正常接收,所謂正常接收是指不含填充錯誤、格式錯誤、 CRC 錯誤。發(fā)送節(jié)點將此位為1,接收節(jié)點正常接收數(shù)據(jù)后將此位置為0;(1bit)

SRR:替代遠程請求位,在擴展格式中占位用,必須為1;(1bit)

EOF:連續(xù)7個隱性位(1)表示幀結(jié)束;(7bit)

ITM:幀間隔,Intermission (ITM),又稱Interframe Space (IFS),連續(xù)3個隱性位,但它不屬于數(shù)據(jù)幀。幀間空間是用于將數(shù)據(jù)幀和遠程幀與前面的幀分離開來的幀。數(shù)據(jù)幀和遠程幀可通過插入幀間空間將本幀與前面的任何幀(數(shù)據(jù)幀、遙控幀、錯誤幀、過載幀)分開。過載幀和錯誤幀前不能插入幀間空間。

遠程幀

一般情況,數(shù)據(jù)是由發(fā)送單元主動向總線上發(fā)送的,但也存在接收單元主動向發(fā)送單元請求數(shù)據(jù)的情況。遠程幀的作用就在于此,它是接收單元向發(fā)送單元請求發(fā)送數(shù)據(jù)的幀。遠程幀與數(shù)據(jù)幀的幀結(jié)構(gòu)類似,如下圖所示。

7d331d58-5b12-11ed-a3b6-dac502259ad0.jpg

遠程幀與數(shù)據(jù)幀的幀結(jié)構(gòu)區(qū)別如下表所示:

幀起始 仲裁段 控制段 數(shù)據(jù)段 CRC段 ACK段 幀結(jié)束
意義 表示幀開始 表示數(shù)據(jù)優(yōu)先級 表示數(shù)據(jù)段的字節(jié)數(shù)
數(shù)據(jù)幀 1位顯性位 11位或29位(RTR位為顯性) 6位 0~8個字節(jié) 15位CRC值和1位CRC界定符 1位ACK槽和1位ACK界定符 7位隱性位
遙控幀 1位顯性位 可請求具有相同ID的數(shù)據(jù)幀(RTR位為隱性) 6位

當總線上具有相同標識符的數(shù)據(jù)幀和遠程幀同時發(fā)送時,由于數(shù)據(jù)幀的 RTR 位是顯性的,數(shù)據(jù)幀將在仲裁中贏得總線控制權(quán)。

錯誤幀

用于在接收和發(fā)送消息時檢測出錯誤時,通知錯誤的幀。錯誤幀由錯誤標志和錯誤界定符構(gòu)成。錯誤幀的幀結(jié)構(gòu)如下圖所示。

7d455248-5b12-11ed-a3b6-dac502259ad0.png

錯誤標志:6-12 個顯性/隱性重疊位

主動錯誤標志(6個顯性位):處于主動錯誤狀態(tài)的單元檢測出錯誤時輸出的錯誤標志

被動錯誤標志(6個隱性位):處于被動錯誤狀態(tài)的單元檢測出錯誤時輸出的錯誤標志

錯誤界定符:8 個隱性位

過載幀

過載幀是用于接收單元通知發(fā)送單元它尚未完成接收準備的幀。在兩種情況下,節(jié)點會發(fā)送過載幀:

接收單元條件的制約,要求發(fā)送節(jié)點延緩下一個數(shù)據(jù)幀或遠程幀的傳輸;
幀間空間(Intermission)的3 bit內(nèi)檢測到顯性位

每個節(jié)點最多連續(xù)發(fā)送兩條過載幀。過載幀由過載標志和過載界定符(8 個隱性位)構(gòu)成。過載幀的結(jié)構(gòu)如下圖所示。

7d5eba3a-5b12-11ed-a3b6-dac502259ad0.png

幀間隔

幀間隔是用來隔離數(shù)據(jù)幀(或者遙控幀)的,也就是說,數(shù)據(jù)幀(或者遙控幀)通過插入幀間隔可以將本幀與先行幀(數(shù)據(jù)幀、遙控幀、錯誤幀、過載幀)分隔開來。但是過載幀和錯誤幀的前面不能插入幀間隔。

7d7b9a2e-5b12-11ed-a3b6-dac502259ad0.png

幀間隔有兩種不同的形式:

主動錯誤狀態(tài)的幀間隔

被動錯誤狀態(tài)的幀間隔

間隔段:連續(xù)三個隱性位;間隔段期間,所有節(jié)點不允許發(fā)送數(shù)據(jù)幀或遙控幀,只要在這期間監(jiān)聽到顯性位,接收節(jié)點就會發(fā)送過載幀。

空閑段:連續(xù)隱性位,個數(shù)不一定,0個或者多個都可以??偩€空閑的時間是任意長的,只要總線空閑,節(jié)點就可以競爭總線。

暫停段:又叫做延遲傳送段,只有處于被動錯誤狀態(tài)的節(jié)點在發(fā)送幀間隔的時候,才會在幀間隔中插入8個連續(xù)隱性位的暫停段。

以上就是針對CAN總線的幀結(jié)構(gòu)的介紹。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • CAN總線
    +關(guān)注

    關(guān)注

    145

    文章

    1908

    瀏覽量

    130501
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6760

    瀏覽量

    88619
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    5926

    瀏覽量

    135702

原文標題:硬件接口協(xié)議之“CAN總線報文”

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    淺談CAN FD總線協(xié)議格式

    假期更新了一文搞懂CAN總線協(xié)議格式,CAN FD總線協(xié)議怎能錯過?本篇博文將講解CAN FD
    發(fā)表于 10-14 12:49 ?3276次閱讀
    淺談<b class='flag-5'>CAN</b> FD<b class='flag-5'>總線</b>協(xié)議<b class='flag-5'>幀</b>格式

    Can總線何時是空閑的

    錄1.Can總線電平介紹2.Can總線何時是空閑的3.Can總線的標準
    發(fā)表于 08-23 08:44

    CAN總線過載及數(shù)據(jù)詳解

    CAN:Controller Area Network,控制器局域網(wǎng)是一種能有效支持分布式控制和實時控制的串行通訊網(wǎng)絡(luò)。本文首先介紹了CAN總線系統(tǒng)結(jié)構(gòu)及數(shù)據(jù)傳輸,其次詳細的闡述了
    的頭像 發(fā)表于 05-07 10:59 ?2w次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>過載<b class='flag-5'>幀</b>及數(shù)據(jù)<b class='flag-5'>幀</b>詳解

    一文解析CAN總線遠程和錯誤

    本文主要介紹了CAN總線遠程和錯誤,首先我們先來了解了解一下通訊時使用的類型有哪些,他們的
    的頭像 發(fā)表于 05-07 11:30 ?2.7w次閱讀
    一文解析<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>遠程<b class='flag-5'>幀</b>和錯誤<b class='flag-5'>幀</b>

    CANOpen系列教程04 _CAN總線波特率、位時序、類型及格式說明

    CANOpen系列教程04_CAN總線波特率、位時序、類型及格式說明
    的頭像 發(fā)表于 03-06 16:18 ?7749次閱讀

    CAN總線的特點/類型/應(yīng)用中的注意事項

    CAN以其多主,高速(最高1Mbps),抗干擾的特性被廣泛應(yīng)用汽車及各種工業(yè)環(huán)境。在此我們主要介紹一下CAN總線的特點,類型,以及應(yīng)用中的
    發(fā)表于 01-05 10:37 ?4094次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>的特點/<b class='flag-5'>幀</b><b class='flag-5'>類型</b>/應(yīng)用中的注意事項

    CAN總線錯誤的類型介紹

    在本系列文章中,我們將為您詳細介紹CAN總線錯誤的相關(guān)知識,包括CAN總線錯誤的基礎(chǔ)概念、CAN總線
    的頭像 發(fā)表于 06-13 16:08 ?8014次閱讀

    虹科干貨 | 帶你全面認識“CAN總線錯誤”(一)——CAN總線錯誤與錯誤

    AsimpleintrotoCANerrorsCAN總線錯誤介紹在本系列文章中,我們將為您詳細介紹CAN總線錯誤的相關(guān)知識,包括CAN總線
    的頭像 發(fā)表于 05-27 10:39 ?4447次閱讀
    虹科干貨 | 帶你全面認識“<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>錯誤”(一)——<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>錯誤與錯誤<b class='flag-5'>幀</b>

    虹科干貨 | 帶你全面認識“CAN總線錯誤”(二)——CAN錯誤類型

    AsimpleintrotoCANerrorsCAN總線錯誤介紹在本系列文章中,我們將為您詳細介紹CAN總線錯誤的相關(guān)知識,包括CAN總線
    的頭像 發(fā)表于 06-02 09:41 ?1316次閱讀
    虹科干貨 | 帶你全面認識“<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>錯誤”(二)——<b class='flag-5'>CAN</b>錯誤<b class='flag-5'>類型</b>

    CAN FD結(jié)構(gòu)介紹

    CAN FD結(jié)構(gòu) CAN FD節(jié)點可以正常收、發(fā)CAN報文,但CAN節(jié)點不能正確收、發(fā)
    的頭像 發(fā)表于 07-18 10:42 ?7075次閱讀
    <b class='flag-5'>CAN</b> FD<b class='flag-5'>幀</b><b class='flag-5'>結(jié)構(gòu)</b>介紹

    CAN通信協(xié)議中有哪幾種類型?CAN通信中格式的作用

    CAN通信協(xié)議中有四種類型,分別是數(shù)據(jù)、遠程、錯誤和過載
    的頭像 發(fā)表于 01-30 09:18 ?4680次閱讀

    CAN總線的標準和擴展有什么區(qū)別呢?分別適用于什么工況?

    CAN總線的標準和擴展CAN協(xié)議中的兩種類型
    的頭像 發(fā)表于 01-30 09:41 ?5167次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>的標準<b class='flag-5'>幀</b>和擴展<b class='flag-5'>幀</b>有什么區(qū)別呢?分別適用于什么工況?

    請問用CAN存儲器存儲的CAN總線數(shù)據(jù)格式有哪些呢?

    之間的信息傳輸。下面將詳細介紹CAN總線數(shù)據(jù)的格式。 CAN總線數(shù)據(jù)分為兩種
    的頭像 發(fā)表于 01-31 13:46 ?1105次閱讀

    CAN總線的數(shù)據(jù)結(jié)構(gòu)

    CAN總線是一種基于時間分割的通信協(xié)議,它允許多個設(shè)備共享一個通信介質(zhì)(如雙絞線或光纖)。CAN總線的數(shù)據(jù)傳輸速率可以達到1 Mbps,適用于短距離通信。
    的頭像 發(fā)表于 07-24 15:06 ?544次閱讀

    can標準和擴展的區(qū)別

    CAN(Controller Area Network)是一種用于汽車和工業(yè)領(lǐng)域的通信協(xié)議,它允許多個設(shè)備在同一總線上進行通信。CAN協(xié)議有兩種
    的頭像 發(fā)表于 07-24 15:20 ?1113次閱讀