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

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

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

CAN DLC與實(shí)際發(fā)送數(shù)據(jù)長(zhǎng)度有何關(guān)系

冬至配餃子 ? 來(lái)源:開(kāi)心果 Need Car ? 作者:開(kāi)心果 Need Car ? 2022-08-25 10:41 ? 次閱讀

Q1、Prepare Bus-Sleep Mode進(jìn)入Network Mode條件

A1CAN網(wǎng)絡(luò)管理中,Prepare Bus-Sleep Mode進(jìn)入Network Mode可以通過(guò)三種方式,如下所示:

pYYBAGMG4JCALkZ3AACUY_N4y2I973.png

由CanNm_RxIndication()方式進(jìn)入,即:在PBSM(Prepare Bus-Sleep Mode)下收到網(wǎng)絡(luò)管理報(bào)文方式進(jìn)入;

由CanNm_PassiveStartUp()方式進(jìn)入。調(diào)用CanNm_PassiveStartUp()接口,表明網(wǎng)絡(luò)需要被動(dòng)喚醒,收到網(wǎng)絡(luò)管理報(bào)文也屬于被動(dòng)接收,和CanNm_RxIndication()方式進(jìn)入不一樣嗎?這里說(shuō)一下個(gè)人理解:在PBSM模式下,ECU依然有接收?qǐng)?bào)文的能力,如果接收到NM Msg,可以通過(guò)CanNm_RxIndication()接收,喚醒網(wǎng)絡(luò);如果收到特定的應(yīng)用報(bào)文(比如:包含KL15信號(hào)的應(yīng)用報(bào)文)或者診斷報(bào)文,也想把網(wǎng)絡(luò)喚醒,顯然非網(wǎng)絡(luò)管理報(bào)文不會(huì)通過(guò)CanNm_RxIndication()接口接收,如果想讓非網(wǎng)絡(luò)管理喚醒網(wǎng)絡(luò),此時(shí)就可以讓上層主動(dòng)調(diào)用CanNm_PassiveStartUp()接口,進(jìn)而喚醒網(wǎng)絡(luò);

由CanNm_NetworkRequest()方式進(jìn)入,同CanNm_PassiveStartUp()方式,此方式也屬于上層請(qǐng)求行為。不同于CanNm_PassiveStartUp()方式,此方式表明當(dāng)前節(jié)點(diǎn)需要通信,需要主動(dòng)喚醒網(wǎng)絡(luò)。比如前面提到的一種情況:VFC置位時(shí),即可主動(dòng)調(diào)用CanNm_NetworkRequest()接口進(jìn)入RMS狀態(tài)。

Q2:CAN DLC與實(shí)際發(fā)送數(shù)據(jù)長(zhǎng)度關(guān)系

A2:DLC(Data Length Code),一幀CAN報(bào)文中,發(fā)送數(shù)據(jù)的長(zhǎng)度,用4個(gè)Bit表示。

對(duì)于ClassicalFrame,DLC的長(zhǎng)度有效范圍為0~8,對(duì)應(yīng)的發(fā)送數(shù)據(jù)長(zhǎng)度為0~8 bytes,如果DLC長(zhǎng)度≥8,則發(fā)送數(shù)據(jù)長(zhǎng)度為8 byte。

對(duì)于FD frame,DLC不僅可以等于0~8,還可以等于9~F,對(duì)應(yīng)的數(shù)據(jù)長(zhǎng)度分為12、16、20、24、32、48、64。如下所示:

pYYBAGMG4KiAOJJWAAEpyKwS8rM465.png

對(duì)于ClassicalFrame,如果設(shè)置DLC = 4,實(shí)際在總線上傳輸?shù)臄?shù)據(jù)長(zhǎng)度是4 byte還是8 byte?答:4 byte。雖然可以這樣設(shè)置,但是工程實(shí)際中,很少這樣用,一幀報(bào)文只傳輸4個(gè)數(shù)據(jù)或者更少,會(huì)降低有效數(shù)據(jù)負(fù)載,效率低。

注意:假設(shè)傳輸一個(gè)ClassicalFrame,雖然總線只傳輸4 byte數(shù)據(jù),但是CAN模塊消耗的硬件資源(RAM),實(shí)際是8 byte(eg:tc3xx)。

發(fā)送一幀CAN報(bào)文,對(duì)應(yīng)一個(gè)Tx Buffer Element,在Tx Buffer Element中,根據(jù)發(fā)送CAN報(bào)文的類型決定消耗的DB(Data Buffer)大小,如下所示:

poYBAGMG4LyABLs6AACWlJ25nUA653.png

一幀CAN報(bào)文消耗多大的DB呢?DB空間的消耗,由TXESC.TBDS決定,因此,DB最小需要8 byte。如下所示:

pYYBAGMG4M-ANOLkAADNj0UUJrU566.png

什么意思呢?就是在硬件配置階段,即使配置DLC = 4,但是一幀CAN報(bào)文也必須消耗8 byte的硬件RAM資源。而數(shù)據(jù)發(fā)送到總線時(shí),只發(fā)送4 byte的數(shù)據(jù)。

Q3:$3E 80發(fā)送時(shí)機(jī)

A3:$3E 80的主要作用在于維持節(jié)點(diǎn)的會(huì)話狀態(tài),即:將節(jié)點(diǎn)維持在非默認(rèn)會(huì)話。工程中,基于UDS軟件升級(jí)過(guò)程中,Tester或者Gateway節(jié)點(diǎn)會(huì)使用功能尋址周期性發(fā)送$3E 80。何時(shí)發(fā)送$3E 80更合適呢?

本文主要想討論$36服務(wù)過(guò)程中,何時(shí)發(fā)送$3E 80更恰當(dāng)。軟件升級(jí)過(guò)程中,一個(gè)$36 Block會(huì)發(fā)送大量數(shù)據(jù),即:多幀傳輸,在多幀傳輸?shù)倪^(guò)程中,發(fā)送一個(gè)$3E 80是否可行?答:可以,但是會(huì)帶來(lái)風(fēng)險(xiǎn)。為什么這樣說(shuō)呢?多幀傳輸過(guò)程,一般使用物理尋址,針對(duì)特定節(jié)點(diǎn)升級(jí),在多幀傳輸?shù)倪^(guò)程中,發(fā)送一幀功能尋址的$3E 80,且中斷接收,如果處理3E 80的中斷例程耗時(shí)過(guò)多,導(dǎo)致連續(xù)幀會(huì)被延遲處理,連續(xù)幀被延時(shí)時(shí)間過(guò)長(zhǎng)會(huì)導(dǎo)致接收丟幀的問(wèn)題,即:下一個(gè)連續(xù)幀覆蓋被延時(shí)處理的連續(xù)幀。以500Kbps通信的經(jīng)典CAN為例,如果允許上位機(jī)/Gateway節(jié)點(diǎn)連續(xù)發(fā)送,1ms內(nèi)可以發(fā)送三幀報(bào)文,也就是說(shuō):如果接收端沒(méi)有在300us左右的時(shí)間內(nèi)處理完連續(xù)幀,就可能會(huì)導(dǎo)致連續(xù)幀覆蓋的問(wèn)題,即:接收端接收丟幀。

pYYBAGMG4OWAL-hbAABuuhxFelE773.png

如上,討論一種工況:

t0時(shí)刻,接收端中斷收到$2A XxXx...(接收完成),進(jìn)入中斷例程處理$2A XxXx...數(shù)據(jù)(主要是通知上層Copy數(shù)據(jù));

t1時(shí)刻,接收端中斷收到$3E 80,進(jìn)入中斷例程處理3E 80數(shù)據(jù);

t2時(shí)刻,接收端中斷收到連續(xù)幀$2BXxXx...,由于同一中斷(均是接收中斷,優(yōu)先級(jí)一樣)正在執(zhí)行,2BXx Xx...數(shù)據(jù)暫時(shí)不能處理;

t3時(shí)刻,3E 80數(shù)據(jù)處理完成,同時(shí)收到連續(xù)幀$2CXx Xx...,如果$2BXx Xx...和$2CXx Xx...使用同一個(gè)硬件緩存區(qū),會(huì)導(dǎo)致連續(xù)幀$2CXx Xx...覆蓋連續(xù)幀$2BXxXx...的工況。所以,為避免接收丟幀,接收緩存區(qū)一般會(huì)配置多一些,一般工程中會(huì)將資源全部使用或者用FIFO方式接收。

理想工況,這種連續(xù)幀插入3E 80的行為不會(huì)出現(xiàn)問(wèn)題(中斷例程不要處理大量邏輯),但在工程實(shí)際中,偶爾會(huì)遇到并行發(fā)送功能尋址$3E 80,導(dǎo)致連續(xù)幀發(fā)送問(wèn)題的Bug。

一般在處理多幀發(fā)送過(guò)程中,如果上位機(jī)或者Gateway節(jié)點(diǎn)發(fā)送功能尋址的$3E 80,會(huì)選擇在連續(xù)幀結(jié)束時(shí)(發(fā)送完最后一幀連續(xù)幀)發(fā)送。

注意:需求中,有時(shí)會(huì)約束$36服務(wù)的P4 server_max為5000ms,即:只允許接收節(jié)點(diǎn)(Server)回復(fù)一個(gè)NRC0x78,為什么呢?如果S3超時(shí)時(shí)間設(shè)置為5000ms,且$3E 80放在連續(xù)幀的最后發(fā)送,當(dāng)前Block傳輸用時(shí)接近5000ms,如果再不發(fā)送一幀$3E 80,則其他節(jié)能可能會(huì)因S3超時(shí)回到默認(rèn)會(huì)話。



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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

    文章

    2665

    瀏覽量

    462526
  • 網(wǎng)絡(luò)管理
    +關(guān)注

    關(guān)注

    0

    文章

    116

    瀏覽量

    27619
  • 上位機(jī)
    +關(guān)注

    關(guān)注

    27

    文章

    927

    瀏覽量

    54571
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ESP32S3R2 BLE設(shè)置發(fā)送功率與實(shí)際發(fā)送功率差別大,且實(shí)際發(fā)送功率不穩(wěn)定是什么原因?qū)е碌模?/a>

    設(shè)置發(fā)送功率與實(shí)際發(fā)送功率差異大的原因哪些?BLE發(fā)送功率與設(shè)置的發(fā)送功率在多少區(qū)間內(nèi)算是合格
    發(fā)表于 06-05 06:51

    STM32有沒(méi)有USB庫(kù)里面有變量記錄著每次發(fā)送實(shí)際長(zhǎng)度?

    Report_buf的數(shù)據(jù)全部讀出來(lái),然后再根據(jù)自己定的協(xié)議定的長(zhǎng)度 再解析出本次發(fā)送 過(guò)來(lái)的具體長(zhǎng)度。有沒(méi)有USB庫(kù)里面有變量記錄著每次發(fā)送
    發(fā)表于 04-28 07:25

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

    CAN總線調(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 ?1454次閱讀
    <b class='flag-5'>CAN</b>報(bào)文為什么會(huì)<b class='flag-5'>發(fā)送</b>失?。? />    </a>
</div>                            <div   id=

    如何提高BLE_MeshLightingLPN的發(fā)送數(shù)據(jù)長(zhǎng)度?

    (GENERIC_ONOFF_SERVER_MODEL_ID,srcAddress ,GENERIC_ON_OFF_SET_UNACK,generic_Buff, 2,MOBLE_FALSE, MOBLE_FALSE); 數(shù)據(jù)長(zhǎng)度小于等于4時(shí)可以
    發(fā)表于 03-15 07:20

    導(dǎo)體的電阻與長(zhǎng)度和橫截面積的關(guān)系是什么

    電阻是導(dǎo)體對(duì)電流流動(dòng)的阻礙程度的量度,它與導(dǎo)體的長(zhǎng)度和橫截面積有著密切的關(guān)系。在一個(gè)理想的導(dǎo)體中,電流的流動(dòng)是由電子在電場(chǎng)中的漂移而形成的。而導(dǎo)體的長(zhǎng)度和橫截面積則直接影響了電子在導(dǎo)體中的漂移速率
    的頭像 發(fā)表于 02-26 13:49 ?3707次閱讀

    TC275的GTM模塊中,TIM與ATOM的時(shí)鐘關(guān)聯(lián)?與CCU的關(guān)系又如何?

    TC275的GTM模塊中,TIM與ATOM的時(shí)鐘關(guān)聯(lián)?與CCU的關(guān)系又如何?
    發(fā)表于 02-20 06:35

    canfd通信tdcv實(shí)測(cè)值受總線長(zhǎng)度影響嗎

    CAN FD通信的基本原理、總線長(zhǎng)度的影響、總線終端電阻的作用以及總線長(zhǎng)度和通信質(zhì)量之間的關(guān)系CAN FD通信是現(xiàn)代汽車和其他領(lǐng)域常用的
    的頭像 發(fā)表于 01-31 13:46 ?720次閱讀

    請(qǐng)問(wèn)用CAN存儲(chǔ)器存儲(chǔ)的CAN總線數(shù)據(jù)幀格式哪些呢?

    請(qǐng)問(wèn)用CAN存儲(chǔ)器存儲(chǔ)的CAN總線數(shù)據(jù)幀格式哪些呢? CAN總線是一種常用于汽車、工業(yè)控制和其他應(yīng)用領(lǐng)域的串行通信協(xié)議。在
    的頭像 發(fā)表于 01-31 13:46 ?1004次閱讀

    can總線的數(shù)據(jù)幀中數(shù)據(jù)長(zhǎng)度碼和數(shù)據(jù)字節(jié)數(shù)的關(guān)系?

    can總線的數(shù)據(jù)幀中數(shù)據(jù)長(zhǎng)度碼和數(shù)據(jù)字節(jié)數(shù)的關(guān)系CAN
    的頭像 發(fā)表于 01-31 11:31 ?1632次閱讀

    相位噪聲與時(shí)間抖動(dòng)關(guān)系?如何測(cè)試時(shí)間抖動(dòng)?

    相位噪聲與時(shí)間抖動(dòng)關(guān)系?如何測(cè)試時(shí)間抖動(dòng)? 相位噪聲和時(shí)間抖動(dòng)在信號(hào)處理中是兩個(gè)非常重要的概念。它們都是衡量信號(hào)或系統(tǒng)的穩(wěn)定性和準(zhǔn)確性的指標(biāo)。雖然它們?cè)谝恍┓矫媸窍嚓P(guān)的,但它們也有一些不同之處
    的頭像 發(fā)表于 01-31 09:29 ?649次閱讀

    M480 CAN為什么無(wú)法收到數(shù)據(jù)?

    發(fā)出去的數(shù)據(jù),可以起到觸發(fā)中斷,但是收不到驅(qū)動(dòng)器收到的數(shù)據(jù);驅(qū)動(dòng)器的ID設(shè)置位了1;并不能收到這個(gè)響應(yīng); CAN發(fā)送使用MSG[0] void M_RUN(void) { /*
    發(fā)表于 01-16 08:09

    車載天線的安裝位置與方向性關(guān)系?

    車載天線的安裝位置與方向性關(guān)系?車載天線垂直安裝好還是斜后向安裝比較好?車載天線接收信號(hào)時(shí)帶來(lái)噪聲干擾如何解決? 車載天線的安裝位置與方向性之間存在密切的關(guān)系。正確的安裝位置和方向
    的頭像 發(fā)表于 11-28 15:33 ?1729次閱讀

    鉛酸電池的放電速率和使用關(guān)系?

    鉛酸電池的放電速率和使用關(guān)系? 鉛酸電池是一種常見(jiàn)的蓄電池,廣泛用于汽車、UPS電源等領(lǐng)域。它的放電速率與使用密切關(guān)系,下面我將詳細(xì)介
    的頭像 發(fā)表于 11-17 11:41 ?1277次閱讀

    什么是機(jī)器周期?機(jī)器周期和晶振頻率關(guān)系?

    什么是機(jī)器周期?機(jī)器周期和晶振頻率關(guān)系?當(dāng)晶振頻率為6MHz時(shí),機(jī)器周期是多少?
    發(fā)表于 11-01 07:46

    vMeasure exp周期性發(fā)送CSM數(shù)采信號(hào)到CANoe的方法

    實(shí)際的工程開(kāi)發(fā)中,需要將vMeasure?exp測(cè)量結(jié)果發(fā)送CAN總線的情況,這篇應(yīng)用筆記提供使用vMeasure?exp把CSM數(shù)采測(cè)量得到的信號(hào)值
    的頭像 發(fā)表于 10-11 08:38 ?1115次閱讀
    vMeasure exp周期性<b class='flag-5'>發(fā)送</b>CSM數(shù)采信號(hào)到CANoe的方法