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

完善資料讓更多小伙伴認(rèn)識你,還能領(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ù)幀、遠(yuǎn)程幀、錯(cuò)誤幀、過載幀和幀間隔。數(shù)據(jù)幀就是總線上傳輸用戶數(shù)據(jù)的幀,其最高有效載荷是8字節(jié)(CAN FD為64字節(jié)),除了有效載荷外,數(shù)據(jù)幀還包括必要的幀頭幀位部分以執(zhí)行CAN標(biāo)準(zhǔn)通信,比如消息標(biāo)識符(Identifier)、數(shù)據(jù)長度代碼、校驗(yàn)信息等。遠(yuǎn)程幀是用來向總線上其它節(jié)點(diǎn)請求數(shù)據(jù)的幀,它的幀結(jié)構(gòu)與數(shù)據(jù)幀相似,只不過沒有有效載荷部分;錯(cuò)誤幀是表示通信出錯(cuò)的幀;幀間隔是用來隔離數(shù)據(jù)幀或者遙控幀的。

數(shù)據(jù)幀和遠(yuǎn)程幀有標(biāo)準(zhǔn)格式和擴(kuò)展格式兩種格式。標(biāo)準(zhǔn)格式有11位的標(biāo)識符,擴(kuò)展格式有29位標(biāo)識符。

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

數(shù)據(jù)幀

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

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

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

各個(gè)字段定義及長度分別為:

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

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

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

IDE:標(biāo)識符擴(kuò)展位,0時(shí)表示為標(biāo)準(zhǔn)格式,1表示為擴(kuò)展格式;(1bit)

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

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

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

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

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

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

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

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

遠(yuǎn)程幀

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

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

遠(yuǎn)程幀與數(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個(gè)字節(jié) 15位CRC值和1位CRC界定符 1位ACK槽和1位ACK界定符 7位隱性位
遙控幀 1位顯性位 可請求具有相同ID的數(shù)據(jù)幀(RTR位為隱性) 6位

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

錯(cuò)誤幀

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

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

錯(cuò)誤標(biāo)志:6-12 個(gè)顯性/隱性重疊位

主動(dòng)錯(cuò)誤標(biāo)志(6個(gè)顯性位):處于主動(dòng)錯(cuò)誤狀態(tài)的單元檢測出錯(cuò)誤時(shí)輸出的錯(cuò)誤標(biāo)志

被動(dòng)錯(cuò)誤標(biāo)志(6個(gè)隱性位):處于被動(dòng)錯(cuò)誤狀態(tài)的單元檢測出錯(cuò)誤時(shí)輸出的錯(cuò)誤標(biāo)志

錯(cuò)誤界定符:8 個(gè)隱性位

過載幀

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

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

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

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

幀間隔

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

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

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

主動(dòng)錯(cuò)誤狀態(tài)的幀間隔

被動(dòng)錯(cuò)誤狀態(tài)的幀間隔

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

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

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

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

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

    關(guān)注

    145

    文章

    1951

    瀏覽量

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

    關(guān)注

    8

    文章

    7028

    瀏覽量

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

    關(guān)注

    18

    文章

    6032

    瀏覽量

    135992

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

    一文解析CAN總線遠(yuǎn)程和錯(cuò)誤

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

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

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

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

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

    CAN總線錯(cuò)誤的類型介紹

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

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

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

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

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

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

    CAN FD結(jié)構(gòu) CAN FD節(jié)點(diǎn)可以正常收、發(fā)CAN報(bào)文,但CAN節(jié)點(diǎn)不能正確收、發(fā)
    的頭像 發(fā)表于 07-18 10:42 ?7636次閱讀
    <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ù)、遠(yuǎn)程、錯(cuò)誤和過載
    的頭像 發(fā)表于 01-30 09:18 ?5495次閱讀

    CAN總線的標(biāo)準(zhǔn)和擴(kuò)展有什么區(qū)別呢?分別適用于什么工況?

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

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

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

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

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

    can標(biāo)準(zhǔn)和擴(kuò)展的區(qū)別

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

    CAN總線通信中的數(shù)據(jù)結(jié)構(gòu)解析

    CAN總線由Bosch公司在1980年代開發(fā),旨在為汽車電子系統(tǒng)提供一個(gè)可靠的通信網(wǎng)絡(luò)。隨著技術(shù)的發(fā)展,CAN總線已經(jīng)被廣泛應(yīng)用于各種工業(yè)和自動(dòng)化領(lǐng)域。 2.
    的頭像 發(fā)表于 11-12 10:12 ?618次閱讀