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

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

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

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

智能汽車(chē)電子與軟件 ? 來(lái)源:ZLG致遠(yuǎn)電子 ? 2023-05-25 09:21 ? 次閱讀

我們知道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ù)。

e737cfc8-fa7c-11ed-90ce-dac502259ad0.jpg??幀結(jié)構(gòu)

e7482288-fa7c-11ed-90ce-dac502259ad0.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位組成。

e75e1958-fa7c-11ed-90ce-dac502259ad0.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í)間作為幀間隔。

e7719df2-fa7c-11ed-90ce-dac502259ad0.jpg??一幀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ò)幀類(lèi)型、幀長(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位

e7719df2-fa7c-11ed-90ce-dac502259ad0.jpg??仲裁域和數(shù)據(jù)域所占報(bào)文位數(shù)

由于CANFD采用了雙波特率形式:標(biāo)準(zhǔn)波特率(也稱(chēng)仲裁域波特率)和數(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ì)算。

e790ea22-fa7c-11ed-90ce-dac502259ad0.jpg??位填充

當(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ù)最多。

e790ea22-fa7c-11ed-90ce-dac502259ad0.jpg??不同類(lèi)型報(bào)文所占位數(shù)

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

e7ad18fa-fa7c-11ed-90ce-dac502259ad0.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位。

e7719df2-fa7c-11ed-90ce-dac502259ad0.jpg??CANFD報(bào)文時(shí)間計(jì)算

最后,我們就可以根據(jù)波特率算出不同類(lèi)型報(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幀。

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

500K/2M波特率

e7c45b5a-fa7c-11ed-90ce-dac502259ad0.png

1M/5M波特率

e7e18ec8-fa7c-11ed-90ce-dac502259ad0.png

1M/8M波特率

e7ff0ae8-fa7c-11ed-90ce-dac502259ad0.png

e7719df2-fa7c-11ed-90ce-dac502259ad0.jpg??高性能CANFD接口

既然CANFD每秒最多可以發(fā)送28000幀報(bào)文(1M/5Mbps),那么什么樣的設(shè)備可以能擁有如此高性能的收發(fā)能力呢?答案就是,致遠(yuǎn)電子最新發(fā)布八通道CANFD卡——USBCANFD-800U。 USBCANFD-800U采用創(chuàng)新型的ARM+FPGA架構(gòu),使得多路CANFD同時(shí)實(shí)現(xiàn)高性能收發(fā)。即使在1M/5M波特率下,也能夠輕松實(shí)現(xiàn)滿(mǎn)載收發(fā)不丟幀。 此外,其還具有硬件采集CAN總線(xiàn)負(fù)載、微秒級(jí)別的收發(fā)報(bào)文時(shí)間戳、微秒級(jí)別的定時(shí)發(fā)送精度等一系列特性,以滿(mǎn)足用戶(hù)的高階需求。






審核編輯:劉清

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

    關(guān)注

    14

    文章

    176

    瀏覽量

    36228
  • CANFD
    +關(guān)注

    關(guān)注

    0

    文章

    54

    瀏覽量

    4897
  • BRS
    BRS
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    3932
  • CRC效驗(yàn)
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    1089

原文標(biāo)題:CANFD每秒最多可以發(fā)送多少幀報(bào)文?

文章出處:【微信號(hào):智能汽車(chē)電子與軟件,微信公眾號(hào):智能汽車(chē)電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用CYT2B75芯片CANFD模塊無(wú)法發(fā)送消息是什么原因?qū)е碌哪兀?/a>

    你好,我使用SDL的example中的CANFD代碼測(cè)試CYT2B75芯片CANFD模塊,對(duì)部分代碼進(jìn)行了硬件適配修改,詳見(jiàn)附件,配置為每秒發(fā)送一次CAN
    發(fā)表于 02-02 06:57

    TC3xx連續(xù)發(fā)多CAN報(bào)文,超過(guò)40就死機(jī)了怎么解決?

    之前的應(yīng)用只發(fā)送幾個(gè)報(bào)文很正常,今天測(cè)試連續(xù)發(fā)送100(for循環(huán)內(nèi))時(shí),發(fā)現(xiàn)最多只能連續(xù)發(fā)送
    發(fā)表于 02-06 07:18

    基于ZLGCAN例程修改的多報(bào)文發(fā)送

    ZLGCAN提供的例程僅僅是單報(bào)文發(fā)送,做點(diǎn)小改動(dòng)為多發(fā)送隨手改的,歡迎大家討論
    發(fā)表于 11-04 10:10

    CANFD發(fā)送模式解析

    + TXFIFO。三者的區(qū)別如下:1. TXBUFF 發(fā)送模式TXBUFF 的發(fā)送方式為專(zhuān)用發(fā)送發(fā)送緩存區(qū),每個(gè)換緩存區(qū)僅能保存一
    發(fā)表于 03-21 14:35

    CANFD的接收模式簡(jiǎn)析

    ,一定要明白濾波器只在接收報(bào)文時(shí)生效,發(fā)送模式與濾波器無(wú)關(guān)。通過(guò)對(duì) Message RAM 的配置可知,CANFD 的濾波器配置可以分為兩套,分別是:標(biāo)準(zhǔn)
    發(fā)表于 04-14 15:43

    CH395每秒發(fā)送分別發(fā)送4數(shù)據(jù)失敗怎么解決?

    ;net_tx_cnt);。卻只收到了1數(shù)據(jù)。這里可以確定串口每秒打印4次,該網(wǎng)絡(luò)發(fā)送函數(shù)也調(diào)用四次。但是網(wǎng)絡(luò)中,只收到了一數(shù)據(jù),其它3
    發(fā)表于 10-12 06:18

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

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

    CAN FD網(wǎng)絡(luò)中每秒最多可以發(fā)送多少報(bào)文

    隨著總線(xiàn)技術(shù)在汽車(chē)電子領(lǐng)域越來(lái)越廣泛和深入的應(yīng)用,特別是自動(dòng)駕駛技術(shù)的迅速發(fā)展,汽車(chē)電子對(duì)總線(xiàn)寬度和數(shù)據(jù)傳輸速率的要求也越來(lái)也高,傳統(tǒng)CAN(1MBit/s,8Bytes?Payload)已難以滿(mǎn)足日益增加的需求。
    的頭像 發(fā)表于 06-16 12:21 ?818次閱讀
    CAN FD網(wǎng)絡(luò)中<b class='flag-5'>每秒</b><b class='flag-5'>最多</b><b class='flag-5'>可以</b><b class='flag-5'>發(fā)送</b>多少<b class='flag-5'>幀</b><b class='flag-5'>報(bào)文</b>?

    為什么發(fā)送CANFD加速報(bào)文要開(kāi)啟發(fā)送延遲補(bǔ)償(TDC)?

    CANFD協(xié)議中,有個(gè)重要的概念TDC(Transmitter Delay Compensation)即發(fā)送延遲補(bǔ)償,字面意思就是對(duì)發(fā)送延遲進(jìn)行補(bǔ)償。那么為什么會(huì)存在發(fā)送延遲,又為什
    的頭像 發(fā)表于 07-11 16:49 ?3136次閱讀
    為什么<b class='flag-5'>發(fā)送</b><b class='flag-5'>CANFD</b>加速<b class='flag-5'>報(bào)文</b>要開(kāi)啟<b class='flag-5'>發(fā)送</b>延遲補(bǔ)償(TDC)?

    【Z站推薦】為什么發(fā)送CANFD加速報(bào)文要開(kāi)啟發(fā)送延遲補(bǔ)償(TDC)?

    CANFD協(xié)議中,有個(gè)重要的概念TDC(TransmitterDelayCompensation)即發(fā)送延遲補(bǔ)償。為什么會(huì)存在發(fā)送延遲,又為什么CANFD要對(duì)
    的頭像 發(fā)表于 07-22 15:13 ?929次閱讀
    【Z站推薦】為什么<b class='flag-5'>發(fā)送</b><b class='flag-5'>CANFD</b>加速<b class='flag-5'>報(bào)文</b>要開(kāi)啟<b class='flag-5'>發(fā)送</b>延遲補(bǔ)償(TDC)?

    【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 ?1709次閱讀
    【Z站推薦】<b class='flag-5'>CANFD</b><b class='flag-5'>每秒</b><b class='flag-5'>最多</b><b class='flag-5'>可以</b><b class='flag-5'>發(fā)送</b>多少<b class='flag-5'>幀</b><b class='flag-5'>報(bào)文</b>?

    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 ?7609次閱讀

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

    1us),數(shù)據(jù)域波特率為5Mbps(位時(shí)間200ns)時(shí),其報(bào)文時(shí)間 = 1us * 26 + 33 * 200ns = 32.6us。 那么一秒鐘最多可以發(fā)送報(bào)文呢?由于
    的頭像 發(fā)表于 07-18 10:49 ?2739次閱讀
    CAN FD<b class='flag-5'>報(bào)文</b>時(shí)間計(jì)算

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

    CAN總線(xiàn)調(diào)試過(guò)程中出現(xiàn)報(bào)文發(fā)送失敗。很多工程師都對(duì)此只知其一不知其二,今天我們就以CAN報(bào)文發(fā)送失敗的問(wèn)題來(lái)做一次探討。在了解CAN報(bào)文
    的頭像 發(fā)表于 04-12 08:25 ?1632次閱讀
    CAN<b class='flag-5'>報(bào)文</b>為什么會(huì)<b class='flag-5'>發(fā)送</b>失敗?

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

    要想知道CANFD報(bào)文由多少個(gè)位組成,那么我們就要了解CANFD結(jié)構(gòu),知道每個(gè)段占用位數(shù)從而得出CANFD
    的頭像 發(fā)表于 04-27 06:08 ?3386次閱讀
    一<b class='flag-5'>幀</b><b class='flag-5'>CANFD</b><b class='flag-5'>報(bào)文</b>由多少個(gè)位組成?