• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      CANFD 協(xié)議在程序刷寫中的研究與應(yīng)用

      2021-12-30 08:46:02潘文卿劉興義王飛飛宋炳雨穆大蕓
      汽車電器 2021年12期
      關(guān)鍵詞:波特率字節(jié)報文

      潘文卿,劉興義,王飛飛,宋炳雨,穆大蕓

      (濰柴動力股份有限公司,山東 濰坊 261061)

      在汽車領(lǐng)域,因為功能越來越多,越來越復(fù)雜,負載率越來越高,傳統(tǒng)CAN總線難以滿足當前需求,又不可能直接放棄傳統(tǒng)CAN總線技術(shù),為了解決負載率問題還要兼容傳統(tǒng)的CAN總線,CANFD應(yīng)運而生。2011年BOSCH首次發(fā)布了CANFD(CAN with Flexible Data rate)方案,在滿足CAN總線特性的基礎(chǔ)上升級了波特率和數(shù)據(jù)長度的兩大特性,在數(shù)據(jù)段傳輸時既可以提升速率又可以增加數(shù)據(jù)長度,最大可以一次傳輸64字節(jié),大大節(jié)省了數(shù)據(jù)傳輸?shù)臅r間,CANFD同時還繼承了傳統(tǒng)CAN的主要特性,采用雙線串行通信協(xié)議,非破壞性仲裁技術(shù),分布式實時控制,可靠的錯誤處理和檢測機制。

      1 CANFD簡介

      1.1 CANFD與CAN

      對比傳統(tǒng)的CAN[1]如圖1所示。

      1)CANFD不支持遠程幀,所以原來RTR位用RRS替代,并且始終為顯性位“0”。

      2)為了區(qū)分CANFD與CAN,增加了FDF(FD Format)位,0表示傳統(tǒng)CAN,1表示CANFD。

      3)CANFD最顯著的特征就是數(shù)據(jù)段可以提升傳輸速率,在CANFD仲裁場增加BRS(Bit Rate Switch)位,1表示進行速率切換,0表示不進行速率切換。

      圖1 CANFD幀格式

      4)CANFD最大可傳輸64字節(jié)的數(shù)據(jù),所以原來4個字節(jié)的DLC(Data Length Code)需要重新編碼,既支持傳統(tǒng)的CAN,也要支持最大64個字節(jié)的CANFD,具體編碼方式見表1。

      5)CRC(Cyclic Redundancy Check)校驗在傳統(tǒng)CAN的基礎(chǔ)上進行了升級,如果數(shù)據(jù)段的長度大于16個字節(jié)時,CRC的長度為21bits,小于16個字節(jié)時,CRC的長度是17bits,CANFD對CRC算法做了改變。在校驗和部分從第1位開始每4bits添加一個填充位加以分割,這個填充位的值是上一位的反碼。

      6)ESI(Error State Indicator)錯誤知識狀態(tài)位,0表示CANFD節(jié)點處于主動報錯狀態(tài),1表示CANFD節(jié)點處于被動報錯狀態(tài)[2]。

      1.2 CANFD的波特率和采樣點的配置

      傳統(tǒng)CAN僅有一套預(yù)分頻方式,CANFD確定仲裁段預(yù)分頻因子和數(shù)據(jù)段預(yù)分頻因子有兩種方式[3]:①兩套獨立的預(yù)分頻配置方式,仲裁段預(yù)分頻因子不等于數(shù)據(jù)段預(yù)分頻因子。②一套共享的預(yù)分頻配置方式,仲裁段預(yù)分頻因子等于數(shù)據(jù)段預(yù)分頻因子。

      表1 CAN&CANFD DLC編碼表

      在研究和應(yīng)用中發(fā)現(xiàn)如果采用第1種兩套獨立的預(yù)分頻配置方式,采樣會有誤差,所以選用第2種配置方式。根據(jù)實際應(yīng)用中基于單片機時鐘配置,仲裁段和數(shù)據(jù)段設(shè)置相同的分頻因子。同時考慮仲裁段和數(shù)據(jù)段的波特率都會在1Mb/s以上,為保證信號采集的準確性,采樣點的配置需要大于80%以上。

      2 CANFD數(shù)據(jù)傳輸理論計算

      分析基于擴展幀格式的傳統(tǒng)CAN和CANFD報文的傳輸時間理論上均以有效位計算,不考慮填充位。傳統(tǒng)CAN通信,按照最大波特率1Mb/s,傳輸1bit的時間是1μs,報文數(shù)據(jù)長度是8字節(jié),一幀不計算數(shù)據(jù)填充位的報文長度是128bits,傳輸一幀報文的時間是128μs。

      根據(jù)實際應(yīng)用中CANFD報文的仲裁段按照1Mb/s波特率配置,其中BRS速率切換指示位是數(shù)據(jù)段波特率加速過渡階段,BRS階段前半段為仲裁段,會采用仲裁段的波特率,后半段采用數(shù)據(jù)段的波特率,所以計算BRS的整體脈寬則是分別取兩種波特率脈寬的一半,進行累加,CRC界定符同理[4]。仲裁段按照圖1的幀格式計算傳輸時間為45μs,數(shù)據(jù)段按照不同的波特率和不同數(shù)據(jù)長度,傳輸時間見表2。

      數(shù)據(jù)段按照2Mb/s波特率配置,傳輸一幀報文的時間按照兩種波特率的配置方式計算,仲裁段是1μs/bit,數(shù)據(jù)段0.5μs/bit,按照傳輸數(shù)據(jù)的長度,如果是最大64字節(jié)數(shù)據(jù),一幀報文仲裁段45bits,數(shù)據(jù)段543bits,傳輸一幀64字節(jié)數(shù)據(jù)的CANFD報文的時間是仲裁段45μs,數(shù)據(jù)段271.5μs,傳輸一幀數(shù)據(jù)是64字節(jié)的CANFD報文不考慮填充位的理論時間是45μs+271.5μs=316.5μs;如果是8字節(jié)數(shù)據(jù),一幀報文仲裁段45bits,數(shù)據(jù)段91bits,傳輸一幀8字節(jié)數(shù)據(jù)的CANFD報文的時間是45μs+45.5μs=90.5μs。

      表2 數(shù)據(jù)段不同配置對應(yīng)報文時間

      對比分析同樣是一幀8字節(jié)數(shù)據(jù)的報文,傳統(tǒng)CAN采用1Mb/s波特率,需要128μs;通過CANFD協(xié)議,仲裁段采用1Mb/s,數(shù)據(jù)段采用2Mb/s傳輸,需要90.5μs。整條報文的傳輸時間相較于傳統(tǒng)CAN并未提升50%,僅僅提升了(128-90.5)/128=29.3%左右,原因主要有兩點:①CANFD的數(shù)據(jù)長度加長了,傳統(tǒng)CAN是128bits,CANFD是136bits;②數(shù)據(jù)傳輸時間提升是在數(shù)據(jù)段的91bits,仲裁段的45bits依然是按照1Mb/s的波特率,1μs/bit的時間傳輸。

      CANFD在刷寫中的理論計算如下。

      如果要傳輸2048個字節(jié)的數(shù)據(jù),按照傳統(tǒng)的UDS刷寫協(xié)議[6],采用傳統(tǒng)CAN-1Mb/s的波特率傳輸,需要295條報文,理論計算用時295*128μs=37760μs。

      采用CANFD協(xié)議,仲裁段1Mb/s,數(shù)據(jù)段2Mb/s,第一種情況:數(shù)據(jù)長度8字節(jié),理論計算用時295*90.5μs=26697.5μs。第二種情況:最大數(shù)據(jù)長度是64字節(jié),需要32條64字節(jié)報文,1條48字節(jié)報文,2條8字節(jié)報文;理論計算用時,32*316.5μs+252.5μs+2*90.5μs=10561.5μs。表3為CANFD數(shù)據(jù)傳輸中速率提升。

      表3 CANFD數(shù)據(jù)傳輸中速率提升

      通過理論計算分析可以得出,在傳輸2048個字節(jié)時,CANFD協(xié)議如果僅僅是提升數(shù)據(jù)段的波特率到2Mb/s,字節(jié)長度不變的情況下,相較于傳統(tǒng)CAN速率會提升29.3%,這與前面分析的傳輸一幀報文的速率提升一致,當數(shù)據(jù)長度最大到64字節(jié)時,同樣是傳輸2048字節(jié)的數(shù)據(jù),數(shù)據(jù)段波特率為2Mb/s,相較于傳統(tǒng)CAN,速率會提升72%。

      3 CANFD在刷寫中的實際應(yīng)用

      CANFD最大可支持的長度是64字節(jié),標準的UDS刷寫協(xié)議[6]是針對8字節(jié)的傳統(tǒng)CAN,所以如果要用CANFD協(xié)議刷寫,需要修改傳統(tǒng)的數(shù)據(jù)傳輸協(xié)議,同時兼容8字節(jié),最大64字節(jié)的數(shù)據(jù)長度。

      3.1 傳統(tǒng)ISO 15765-2協(xié)議的升級

      相較于傳統(tǒng)的ISO 15765-2協(xié)議,在CANFD協(xié)議刷寫的過程中,需要通過數(shù)據(jù)長度來決定單幀的字節(jié)長度究竟是使用哪個字節(jié)來表示,如表4所示,如果CANFD協(xié)議傳輸?shù)臄?shù)據(jù)長度大于8,則通過Byte1來表示有效字節(jié)長度,如果是等于8的數(shù)據(jù)長度,依然使用傳統(tǒng)的Byte0的Bit3-0表示有效字節(jié)長度[5]。

      表4 ISO 15765-2升級

      3.2 CANFD協(xié)議在刷寫中的實際應(yīng)用

      圖2是傳統(tǒng)CAN采用1Mb/s波特率刷寫一段完整的程序數(shù)據(jù)的報文記錄,用時209.199s-17.941s=191.258s。

      圖2 傳統(tǒng)CAN-1Mb/s刷寫時間

      同一段程序數(shù)據(jù)采用CANFD協(xié)議,仲裁段1Mb/s,數(shù)據(jù)段2Mb/s的波特率,最大是8字節(jié)的數(shù)據(jù)長度進行刷寫,用時229.188s-66.000s=163.188s,如圖3所示。

      綜合實際測試結(jié)果,數(shù)據(jù)段不同波特率和不同最大數(shù)據(jù)長度的情況下,同一段程序數(shù)據(jù)的刷寫所用的時間和傳統(tǒng)CAN波特率是1Mb/s的刷寫時間及速率提升見表5。

      圖3 CANFD-1Mb/s-2Mb/s-8字節(jié)

      表5 不同波特率不同數(shù)據(jù)長度下刷寫情況

      圖4 CANFD-1Mb/s-2Mb/s擦除等待

      圖5 CAN-1Mb/s擦除等待

      在實際刷寫應(yīng)用中,CANFD在提升數(shù)據(jù)段波特率和數(shù)據(jù)長度的情況下,提升速率與理論計算傳輸2048個字節(jié)的傳輸提升速率有偏差,主要是因為,在傳統(tǒng)的刷寫流程[6]中有寫入等待,擦除等待,數(shù)據(jù)一致性校驗等待,在線監(jiān)測等時間優(yōu)化是微小的,如圖4和圖5,分別截取了CANFD和傳統(tǒng)CAN協(xié)議刷寫過程擦除同一塊Block時的擦除等待時間,可以通過時間戳看出,CANFD協(xié)議在刷寫過程中的擦除等待時間如圖4所示:72.380s-53.948s=18.432s,擦除同一塊區(qū)域,傳統(tǒng)CAN協(xié)議等待時間如圖5所示,57.840s-38.455s=19.385s。CANFD協(xié)議與傳統(tǒng)CAN協(xié)議在擦除同一塊區(qū)域的時間僅僅差了19.385s-18.432s=0.953s,這個差距主要是因為CANFD協(xié)議數(shù)據(jù)段提升了速率,發(fā)送報文的時間短的優(yōu)勢。刷寫的過程中是按照單片機的Block塊進行擦除寫入的,在擦寫時會根據(jù)Block塊的大小有不同的等待時間,在這些不可優(yōu)化的流程上,CANFD是沒有優(yōu)勢的,所以CANFD的優(yōu)勢在刷寫流程中主要體現(xiàn)在數(shù)據(jù)傳輸過程中。

      4 結(jié)論

      本文介紹了CANFD協(xié)議相較于傳統(tǒng)CAN的升級,以及分析了CANFD協(xié)議在數(shù)據(jù)段不同波特率,不同數(shù)據(jù)長度情況下一幀報文的傳輸時間的不同,比較了CANFD協(xié)議傳輸一幀8字節(jié)的報文和傳統(tǒng)CAN傳輸一幀報文所用時間的差異和速率提升,CANFD在傳輸數(shù)據(jù)時波特率提升主要體現(xiàn)在數(shù)據(jù)段,仲裁段的波特率最大是1Mb/s。通過理論計算分析了傳輸同一塊2048個字節(jié)的數(shù)據(jù),CANFD協(xié)議在不同數(shù)據(jù)段波特率和數(shù)據(jù)長度下的用時和相較于傳統(tǒng)CAN的速率提升。實際應(yīng)用中,基于CANFD協(xié)議刷寫功能的開發(fā),在傳統(tǒng)ISO 15765-2不滿足數(shù)據(jù)長度的地方做了升級。刷寫一段完整的程序數(shù)據(jù),不同波特率和數(shù)據(jù)長度時分別做了時間戳的記錄,分析計算不同情況下的用時,并針對理論計算的速度提升率和實際應(yīng)用中速度的提升率差異作了分析。通過研究分析,CANFD協(xié)議在實際刷寫過程中優(yōu)勢主要體現(xiàn)在數(shù)據(jù)傳輸階段,在擦除和寫入過程中的等待時間無法優(yōu)化。

      猜你喜歡
      波特率字節(jié)報文
      基于J1939 協(xié)議多包報文的時序研究及應(yīng)用
      汽車電器(2022年9期)2022-11-07 02:16:24
      No.8 字節(jié)跳動將推出獨立出口電商APP
      CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
      CAN 總線波特率自適應(yīng)程序設(shè)計
      智能制造(2020年5期)2020-07-03 06:24:00
      淺析反駁類報文要點
      中國外匯(2019年11期)2019-08-27 02:06:30
      No.10 “字節(jié)跳動手機”要來了?
      基于FPGA的異步串行通信波特率容錯設(shè)計
      電子測試(2018年7期)2018-05-16 06:27:18
      簡談MC7字節(jié)碼
      ATS與列車通信報文分析
      C*Core芯片SCI串口波特率容限優(yōu)化
      抚州市| 开封县| 镶黄旗| 七台河市| 博湖县| 曲松县| 景谷| 葵青区| 天长市| 都江堰市| 军事| 金华市| 仁怀市| 南通市| 和平县| 定陶县| 内黄县| 绵竹市| 亚东县| 山阳县| 昔阳县| 辉县市| 苍南县| 望奎县| 即墨市| 靖安县| 修水县| 绍兴县| 潮州市| 喀喇沁旗| 建宁县| 长汀县| 繁昌县| 玉田县| 叶城县| 嘉善县| 玉山县| 吴江市| 武宁县| 山东| 正安县|