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

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

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

一幀CANFD報(bào)文由多少個(gè)位組成?

星星科技指導(dǎo)員 ? 來(lái)源:焉知汽車(chē) ? 2024-04-27 06:08 ? 次閱讀

我們知道CANFD比CAN擁有更長(zhǎng)的數(shù)據(jù)長(zhǎng)度(最長(zhǎng)64字節(jié)),更高的波特率(8Mbps甚至更高)。那么波特率更高,數(shù)據(jù)更長(zhǎng)的CANFD,一秒鐘最高可以發(fā)送多少幀CANFD報(bào)文呢?

要想知道問(wèn)題的答案,那么我們就要知道一幀CANFD報(bào)文由多少個(gè)位組成,再由具體波特率算出報(bào)文時(shí)間,最后就可以得出每秒能發(fā)送的幀數(shù)了。接下來(lái),我們就一步步來(lái)算出答案。

要想知道CANFD報(bào)文由多少個(gè)位組成,那么我們就要了解CANFD幀結(jié)構(gòu),知道每個(gè)段占用位數(shù)從而得出CANFD報(bào)文位數(shù)。

幀結(jié)構(gòu)

865178e4-fed6-11ee-a297-92fbcf53809c.png

如上圖所示,分別為CANFD標(biāo)準(zhǔn)幀和擴(kuò)展幀,其組成如下:

1. 幀起始:起始信號(hào),由1個(gè)顯性位組成。

2. 仲裁段:

標(biāo)準(zhǔn)幀仲裁段由11位ID和r1位(顯性)、IDE(顯性)組成,總共13位;

擴(kuò)展幀仲裁段由29位ID和SRR(隱性)、IDE(隱性)、r1位(顯性)組成,總共32位。

○ SRR:替代CAN標(biāo)準(zhǔn)幀中的RTR位;

○ IDE:擴(kuò)展幀標(biāo)志位;

○ r1:保留位,為顯性;

3. 控制段:由EDL、r0、BRS、ESI、DLC總共8個(gè)位組成。

EDL:CANFD幀標(biāo)識(shí),為隱性;

r0:保留位,為顯性;

BRS:位速率切換,該位顯性則仍采用仲裁域波特率;該位為隱性,則該位發(fā)送到采樣點(diǎn)后,采用數(shù)據(jù)域波特率;

ESI:錯(cuò)誤狀態(tài)指示位,指示發(fā)送節(jié)點(diǎn)為主動(dòng)錯(cuò)誤狀態(tài)(顯性),還是被動(dòng)錯(cuò)誤狀態(tài)(隱性);

DLC:數(shù)據(jù)段長(zhǎng)度指示,4個(gè)位組成。

4. 數(shù)據(jù)段:0~64字節(jié),也就是0~512個(gè)位。

5. CRC段:由固定填充位FSB(6/7位)、填充位計(jì)數(shù)(4位)、CRC(17/21位)CRC界定符(1位)組成,總共28或33位組成。

86553650-fed6-11ee-a297-92fbcf53809c.png

6. 固定填充位(FSB):CRC段中每4個(gè)位固定填充一個(gè)與上位相反的位。

采用CRC17時(shí),F(xiàn)SB為6個(gè)位;

采用CRC21時(shí),F(xiàn)SB為7個(gè)位;

7. 填充位計(jì)數(shù):由填充位計(jì)數(shù)(3位)和奇偶校驗(yàn)位(1位)組成。

8. CRC:

報(bào)文長(zhǎng)度小于16時(shí),采用CRC17,17位組成;

報(bào)文長(zhǎng)度大于16時(shí),采用CRC21,21位組成。

9. CRC界定符:固定為隱性位;從該位采樣后,切換為仲裁域波特率。

10. ACK段:由ACK位和ACK界定符位組成,總共2位。

ACK:接收節(jié)點(diǎn)應(yīng)答位,接收節(jié)點(diǎn)應(yīng)應(yīng)答顯性位;

ACK界定符,固定為隱性;

11. 幀結(jié)束:固定為7個(gè)隱性位。

12. 幀間隔:每次發(fā)送一幀報(bào)文后,需留3位時(shí)間作為幀間隔。

一幀CANFD報(bào)文位數(shù)

知道CANFD幀結(jié)構(gòu)組成后,我們可以算出:

CANFD報(bào)文位數(shù)=幀起始(1位)+仲裁段(13/32位)+控制段(8位)+數(shù)據(jù)段(0~512位)+CRC段(28/33位)+ACK段(2位)+幀結(jié)束(7位)

從上述公式中可以看出,影響報(bào)文位數(shù)主要為仲裁段(幀ID長(zhǎng)度)和數(shù)據(jù)段(CRC段受數(shù)據(jù)段長(zhǎng)度影響)。那么我們通過(guò)幀類型、幀長(zhǎng)度組合出不同情況報(bào)文位數(shù):

標(biāo)準(zhǔn)幀,數(shù)據(jù)0字節(jié):

幀起始(1位)+仲裁段(13位)+控制段(8位)+數(shù)據(jù)段(0位)+CRC段(28位)+ACK段(2位)+幀結(jié)束(7位)=59位

標(biāo)準(zhǔn)幀,數(shù)據(jù)64字節(jié):

幀起始(1位)+仲裁段(13位)+控制段(8位)+數(shù)據(jù)段(512位)+CRC段(33位)+ACK段(2位)+幀結(jié)束(7位)=576位

擴(kuò)展幀,數(shù)據(jù)0字節(jié):

幀起始(1位)+仲裁段(32位)+控制段(8位)+數(shù)據(jù)段(0位)+CRC段(28位)+ACK段(2位)+幀結(jié)束(7位)=78位

擴(kuò)展幀,數(shù)據(jù)64字節(jié):

幀起始(1位)+仲裁段(13位)+控制段(8位)+數(shù)據(jù)段(512位)+CRC段(33位)+ACK段(2位)+幀結(jié)束(7位)=590位

仲裁域和數(shù)據(jù)域所占報(bào)文位數(shù)

由于CANFD采用了雙波特率形式:標(biāo)準(zhǔn)波特率(也稱仲裁域波特率)和數(shù)據(jù)域波特率,所以幀結(jié)構(gòu)中不同段采用的波特率也不同。

仲裁域波特率所占位數(shù):

幀起始(1位)+仲裁段(13位)+控制段的EDL、r0、BRS(3位)+ACK段(2位)+幀結(jié)束(7位)

數(shù)據(jù)域波特率所占位數(shù):

控制段的ESI、DLC(5位)+數(shù)據(jù)段(0~512位)+CRC段(28/33位)

主要說(shuō)明的是,BRS位和CRC界定符位均同時(shí)使用了兩個(gè)波特率:

BRS位:由**仲裁域波特率*仲裁域采樣點(diǎn)+數(shù)據(jù)域波特率*(1 -仲裁域采樣點(diǎn))**組成;

CRC界定符:由**數(shù)據(jù)域波特率*數(shù)據(jù)域采樣點(diǎn)+仲裁域波特率*(1 -數(shù)據(jù)域采樣點(diǎn))**組成;

我們此處將BRS認(rèn)定采用仲裁域波特率、CRC界定符采用數(shù)據(jù)域波特率以方便計(jì)算。

位填充

當(dāng)然,上述報(bào)文位數(shù)中,還未包含填充位個(gè)數(shù)。在CAN/CANFD協(xié)議中規(guī)定:每5個(gè)相同的位就必須填充一個(gè)相反位,該位即為填充位。

我們知道字節(jié)0x55或0xAA,其二進(jìn)制分別為0101 0101或1010 1010,也就是每個(gè)位與上一位均相反,若此時(shí)ID和數(shù)據(jù)均為0x55或0xAA,則可以使填充位個(gè)數(shù)最少。

同理,字節(jié)0xFF或0x00,其二進(jìn)制位1111 1111或00000000,也就是所有位均一致,若此時(shí)ID和數(shù)據(jù)均為0x00或0xFF,此時(shí)報(bào)文的填充位個(gè)數(shù)最多。

不同類型報(bào)文所占位數(shù)

基于以上報(bào)文位數(shù)的計(jì)算,我們可以得出算出不同類型報(bào)文所占位數(shù),如下表所示。

86716492-fed6-11ee-a297-92fbcf53809c.png

從上表可知:

當(dāng)報(bào)文為CANFD標(biāo)準(zhǔn)幀ID為0x555,數(shù)據(jù)長(zhǎng)度為0時(shí),報(bào)文位數(shù)最少,為59位。

當(dāng)報(bào)文為CANFD擴(kuò)展幀ID為0x0,數(shù)據(jù)長(zhǎng)度為64字節(jié),數(shù)據(jù)全為0xFF時(shí),報(bào)文位數(shù)最多,為703位。

CANFD報(bào)文時(shí)間計(jì)算

最后,我們就可以根據(jù)波特率算出不同類型報(bào)文時(shí)間了,計(jì)算公式如下:

報(bào)文時(shí)間=仲裁域位時(shí)間*仲裁域位數(shù)+數(shù)據(jù)域位時(shí)間*數(shù)據(jù)域位數(shù)

我們以位數(shù)最少的CANFD報(bào)文為例,在仲裁域波特率為1Mbps(位時(shí)間1us),數(shù)據(jù)域波特率為5Mbps(位時(shí)間200ns)時(shí),其報(bào)文時(shí)間= 1us * 26 + 33 * 200ns = 32.6us。

那么一秒鐘最多可以發(fā)送報(bào)文呢?由于報(bào)文發(fā)送成功后,需經(jīng)過(guò)幀間隔(3個(gè)位)后才能發(fā)送下一幀報(bào)文,也就說(shuō)仲裁段要在原來(lái)基礎(chǔ)上加3個(gè)位,就可以算出每秒發(fā)送多少幀了。那么上述位數(shù)最少報(bào)文的發(fā)送時(shí)間耗時(shí)= 1us *(26 + 3)+ 33 * 200ns = 35.6us,也就是1秒鐘最多可以發(fā)送1000000us / 35.6us = 28089幀報(bào)文。也就是說(shuō),1M/5M波特率下,發(fā)送CANFD標(biāo)準(zhǔn)加速幀,最多可以發(fā)送28089幀。

下面我們給出一些常用波特率下,不同類型報(bào)文每秒最多可以發(fā)送的CANFD報(bào)文幀數(shù)(下表中報(bào)文BRS位為1,ESI位為0),供大家參考。

500K/2M波特率

86849b02-fed6-11ee-a297-92fbcf53809c.png

1M/5M波特率

868b29ea-fed6-11ee-a297-92fbcf53809c.png

1M/8M波特率

86986f60-fed6-11ee-a297-92fbcf53809c.png

審核編輯:黃飛

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

    關(guān)注

    57

    文章

    2760

    瀏覽量

    463993
  • 波特率
    +關(guān)注

    關(guān)注

    2

    文章

    308

    瀏覽量

    34212
  • 幀結(jié)構(gòu)
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    10678
  • CANFD
    +關(guān)注

    關(guān)注

    0

    文章

    58

    瀏覽量

    4975

原文標(biāo)題:CANFD每秒最多可發(fā)多少幀報(bào)文是算出來(lái)的~

文章出處:【微信號(hào):嵌入式情報(bào)局,微信公眾號(hào):嵌入式情報(bào)局】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ESP32C6作為UDP Server,使用recvfrom無(wú)法及時(shí)收到第一幀報(bào)文的原因?如何解決?

    后調(diào)用recvfrom()阻塞等待接收報(bào)文。 在測(cè)試時(shí)發(fā)現(xiàn),AP在接收來(lái)自STA的第一幀UDP報(bào)文時(shí)recvfrom()無(wú)法及時(shí)返回結(jié)果,通常在STA發(fā)送第一幀
    發(fā)表于 06-06 07:34

    如何確保平鋪?lái)樞蚪Y(jié)構(gòu)上一幀數(shù)據(jù)都處理完才進(jìn)入下一幀

    在進(jìn)行數(shù)據(jù)處理時(shí),下一幀會(huì)用到上一幀計(jì)算出的數(shù)據(jù),但是上一幀有好多輸出的時(shí)候,有些數(shù)據(jù)并沒(méi)有處理出來(lái),就進(jìn)入了下一幀,導(dǎo)致最后結(jié)果錯(cuò)誤。該怎么辦么?加了等待時(shí)間什么的,也不管用…
    發(fā)表于 02-27 10:39

    有關(guān)串行通信里面一幀一幀發(fā)送數(shù)據(jù)的問(wèn)題?。。?!

    我想實(shí)現(xiàn)一幀一幀的發(fā)送數(shù)據(jù),一幀發(fā)送數(shù)據(jù)的長(zhǎng)度可以自己定義,請(qǐng)問(wèn)要怎么修改一幀發(fā)送數(shù)據(jù)的長(zhǎng)度???怎么實(shí)現(xiàn)???
    發(fā)表于 07-26 10:29

    RS-485通信時(shí)一幀數(shù)據(jù)中包含多少個(gè)字節(jié)的有效數(shù)據(jù)合適呢?

    大家好,想問(wèn)下有沒(méi)有用單片機(jī)做過(guò)RS-485通信的呢?我現(xiàn)在通過(guò)自定義的RS-485協(xié)議進(jìn)行多機(jī)通信,這個(gè)時(shí)候的協(xié)議中的有效數(shù)據(jù)為多少個(gè)字節(jié)比較合適呢?我看有的人說(shuō)一幀數(shù)據(jù)中包含的有效字節(jié)數(shù)過(guò)多,會(huì)發(fā)生滑位,想請(qǐng)有經(jīng)驗(yàn)的指點(diǎn)
    發(fā)表于 04-06 09:38

    CAN報(bào)文定義

    協(xié)議中CAN報(bào)文種類報(bào)文傳輸過(guò)程中有:數(shù)據(jù)、遠(yuǎn)程、錯(cuò)誤、過(guò)載
    發(fā)表于 09-14 09:23

    CANFD的發(fā)送模式解析

    + TXFIFO。三者的區(qū)別如下:1. TXBUFF 發(fā)送模式TXBUFF 的發(fā)送方式為專用發(fā)送發(fā)送緩存區(qū),每個(gè)換緩存區(qū)僅能保存一幀報(bào)文,根據(jù)對(duì) Message RAM 的配置可以選擇將報(bào)文放入指定編號(hào)的發(fā)送
    發(fā)表于 03-21 14:35

    串口一幀數(shù)據(jù)到底什么意思,比如接收串漢字個(gè)漢字算一幀嗎?

    關(guān)于串口接收發(fā)送問(wèn)題,一幀數(shù)據(jù)到底什么意思,比如接收串漢字,個(gè)漢字算一幀嗎?還是不固定。搞不懂
    發(fā)表于 09-26 08:03

    秒鐘最高可以發(fā)送多少CANFD報(bào)文呢?

    由于CANFD采用了雙波特率形式:標(biāo)準(zhǔn)波特率(也稱仲裁域波特率)和數(shù)據(jù)域波特率,所以結(jié)構(gòu)中不同段采用的波特率也不同。
    的頭像 發(fā)表于 07-28 11:47 ?3364次閱讀

    全面解析LIN總線的應(yīng)用/結(jié)構(gòu)/分類

    報(bào)文頭僅可以主機(jī)節(jié)點(diǎn)發(fā)出 LIN總線的一幀主要由兩部分組成,即報(bào)文頭(Header)和報(bào)文響應(yīng)
    發(fā)表于 01-03 12:09 ?7333次閱讀

    CANFD每秒最多可以發(fā)送多少報(bào)文?

    我們知道CANFD比CAN擁有更長(zhǎng)的數(shù)據(jù)長(zhǎng)度(最長(zhǎng)64字節(jié)),更高的波特率(8Mbps甚至更高)。
    的頭像 發(fā)表于 05-25 09:21 ?1411次閱讀
    <b class='flag-5'>CANFD</b>每秒最多可以發(fā)送多少<b class='flag-5'>幀</b><b class='flag-5'>報(bào)文</b>?

    【Z站推薦】CANFD每秒最多可以發(fā)送多少報(bào)文?

    我們知道CANFD比CAN擁有更長(zhǎng)的數(shù)據(jù)長(zhǎng)度(最長(zhǎng)64字節(jié)),更高的波特率(8Mbps甚至更高)。那么波特率更高,數(shù)據(jù)更長(zhǎng)的CANFD秒鐘最高可以發(fā)送多少
    的頭像 發(fā)表于 07-29 09:34 ?1846次閱讀
    【Z站推薦】<b class='flag-5'>CANFD</b>每秒最多可以發(fā)送多少<b class='flag-5'>幀</b><b class='flag-5'>報(bào)文</b>?

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

    ,CRC段,ACK段和結(jié)束,7部分組成。 2.1、起始 CAN與CANFD使用相同的SOF標(biāo)志位來(lái)標(biāo)志報(bào)文的起始。
    的頭像 發(fā)表于 07-18 10:42 ?7702次閱讀
    CAN FD<b class='flag-5'>幀</b>結(jié)構(gòu)介紹

    一幀CAN報(bào)文多少字節(jié)

    一幀CAN FD報(bào)文位數(shù) 根據(jù)CAN FD結(jié)構(gòu)組成,可以算出一幀CAN FD報(bào)文位數(shù): CAN
    的頭像 發(fā)表于 07-18 10:48 ?7986次閱讀

    CAN FD報(bào)文時(shí)間計(jì)算

    (3個(gè)位)后才能發(fā)送下一幀報(bào)文,也就說(shuō)仲裁段要在原來(lái)基礎(chǔ)上加3個(gè)位,就可以算出每秒發(fā)送多少了。那么上述
    的頭像 發(fā)表于 07-18 10:49 ?3132次閱讀
    CAN FD<b class='flag-5'>報(bào)文</b>時(shí)間計(jì)算

    CAN報(bào)文為什么會(huì)發(fā)送失???

    怎么樣的。表1是一幀正常標(biāo)準(zhǔn)數(shù)據(jù)報(bào)文組成。表1標(biāo)準(zhǔn)數(shù)據(jù)報(bào)文格式
    的頭像 發(fā)表于 04-12 08:25 ?2211次閱讀
    CAN<b class='flag-5'>報(bào)文</b>為什么會(huì)發(fā)送失?。? />    </a>
</div>                </div>            </div><!-- .main-wrap -->
        </article>

        <aside class=

    精選推薦

    更多
    • 文章
    • 資料
    • 帖子

    推薦專欄

    更多