欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

CAN DLC與實際發(fā)送數(shù)據(jù)長度有何關系

冬至配餃子 ? 來源:開心果 Need Car ? 作者:開心果 Need Car ? 2022-08-25 10:41 ? 次閱讀

Q1、Prepare Bus-Sleep Mode進入Network Mode條件

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

pYYBAGMG4JCALkZ3AACUY_N4y2I973.png

由CanNm_RxIndication()方式進入,即:在PBSM(Prepare Bus-Sleep Mode)下收到網(wǎng)絡管理報文方式進入;

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

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

Q2:CAN DLC與實際發(fā)送數(shù)據(jù)長度關系

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

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

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

pYYBAGMG4KiAOJJWAAEpyKwS8rM465.png

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

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

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

poYBAGMG4LyABLs6AACWlJ25nUA653.png

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

pYYBAGMG4M-ANOLkAADNj0UUJrU566.png

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

Q3:$3E 80發(fā)送時機

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

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

pYYBAGMG4OWAL-hbAABuuhxFelE773.png

如上,討論一種工況:

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

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

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

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

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

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

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



審核編輯:劉清

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

    關注

    57

    文章

    2774

    瀏覽量

    464488
  • 網(wǎng)絡管理

    關注

    0

    文章

    122

    瀏覽量

    27761
  • 上位機
    +關注

    關注

    27

    文章

    945

    瀏覽量

    55039
收藏 人收藏

    評論

    相關推薦

    CAN loopback模式測試

    ); HAL_NVIC_EnableIRQ(CAN_RX0_IRQn);。 發(fā)送和接收測試 發(fā)送報文:創(chuàng)建一個 CAN 報文結構體,填寫標準 ID、擴展 ID、
    發(fā)表于 01-18 16:29

    飛凌嵌入式ElfBoard ELF 1板卡-CAN編程示例之socket CAN編程步驟

    規(guī)則為不接受任何報文,僅發(fā)送數(shù)據(jù)。填充frame結構體中的數(shù)據(jù)部分(frame.data[])和數(shù)據(jù)長度(frame.
    發(fā)表于 11-15 09:23

    CAN總線知識】全面了解CAN總線協(xié)議

    基本概念1.報文總線上的信息以不同格式的報文發(fā)送,但長度有限?當總線開放時,任何連接的單元均可開始發(fā)送一個新報文?2.信息路由在CAN系統(tǒng)中,一個C
    的頭像 發(fā)表于 10-15 08:05 ?1696次閱讀
    【<b class='flag-5'>CAN</b>總線知識】全面了解<b class='flag-5'>CAN</b>總線協(xié)議

    CAN/CAN FD/CAN XL三大總線協(xié)議解讀,是逐步替代關系嗎?

    電子發(fā)燒友網(wǎng)報道(文/吳子鵬)在軟件定義汽車逐漸成為主流的當下,數(shù)據(jù)傳輸?shù)乃俣群托食蔀榇蛟熘悄芷嚨钠款i,在這種大背景下,傳統(tǒng)CAN總線應對一些需求已經(jīng)相當吃力,因此CAN FD和CAN
    的頭像 發(fā)表于 08-12 01:12 ?4619次閱讀

    AirKiss配網(wǎng)完成后,向10000端口發(fā)送UDP廣播包的長度疑問求解

    參考微信 [AirKiss 庫文件使用指南]-Page7,使用AirKiss配網(wǎng) 接收到SSID及PWD完成后設備需要向10000端口發(fā)送UDP廣播包,其數(shù)據(jù)長度為1,內(nèi)容為ack->
    發(fā)表于 07-19 07:47

    EPS32-C3使用USB串口收發(fā)數(shù)據(jù),在發(fā)送長度為64的數(shù)據(jù)時,上位機串口工具無法接收到數(shù)據(jù)怎么解決?

    ticks_to_wait)函數(shù) 在發(fā)送長度為64的數(shù)據(jù)時,上位機串口工具無法接收到數(shù)據(jù), 然后再發(fā)送非64
    發(fā)表于 06-06 06:12

    ESP32S3R2 BLE設置發(fā)送功率與實際發(fā)送功率差別大,且實際發(fā)送功率不穩(wěn)定是什么原因導致的?

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

    STM32有沒有USB庫里面有變量記錄著每次發(fā)送實際長度?

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

    關于HAL庫F4 V1.23下HAL_CAN_GetRxMessage接收函數(shù)的疑問求解

    最近升級到F4 V1.23的版本,發(fā)現(xiàn)CAN接收函數(shù)變了,非接收中斷下 HAL_CAN_GetRxMessage函數(shù)只能接收到SID和數(shù)據(jù)長度 ,但是
    發(fā)表于 04-19 07:52

    CAN報文為什么會發(fā)送失敗?

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

    使用F334的USART+DMA進行發(fā)送數(shù)據(jù)遇到的疑問求解

    , uint8_t *pData, uint16_t Size)發(fā)送數(shù)據(jù)時,實際發(fā)送數(shù)據(jù)長度
    發(fā)表于 04-10 08:08

    stm32F427用CAN發(fā)送數(shù)據(jù)錯誤怎么解決?

    stm32F427用CAN發(fā)送數(shù)據(jù)錯誤
    發(fā)表于 04-02 06:43

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

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

    導體的電阻與長度和橫截面積的關系是什么

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

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

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