在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

CAN總線報(bào)文數(shù)據(jù)一致性校驗(yàn)

jf_EksNQtU6 ? 來(lái)源:古德曼汽車(chē)工業(yè) ? 2024-01-24 10:03 ? 次閱讀

01不安全的CAN總線

1、如何保證ECU接收到的數(shù)據(jù)是合法的?

比如ECU1接收ECU2發(fā)出的一幀0x100報(bào)文,協(xié)議層是不會(huì)區(qū)分是ECU1發(fā)的,還是非法接入OBD的CAN盒發(fā)的?如果ECU1接收到非ECU2發(fā)出的0x100報(bào)文豈不是很危險(xiǎn)?

2、ECU如何知道另一個(gè)節(jié)點(diǎn)掛死

比如ECU1還是接收ECU2發(fā)出的一幀0x100報(bào)文,但是由于某些神秘原因(程序跑飛了)導(dǎo)致ECU2掛死或者掉線,那ECU1如何知道此時(shí)的接收到0x100無(wú)效?

CAN通訊是一種廣播形式的通訊方式,自然協(xié)議層是無(wú)法做到數(shù)據(jù)合法性的校驗(yàn),這部分工作需要應(yīng)用層來(lái)完成。由此就出現(xiàn)了RollingCounter與Checksum。這兩個(gè)東西好像也是功能安全的一部分,本期只是介紹這兩個(gè)東西的原理,不對(duì)功能安全做過(guò)多討論。

1e5c61b4-b9d9-11ee-8b88-92fbcf53809c.png

一個(gè)規(guī)范的CAN矩陣協(xié)議,每一幀報(bào)文都會(huì)要求有這個(gè)兩個(gè)信號(hào)。如上圖,從bit52到bit55是RollingCounter,取值范圍0~15,ECU沒(méi)發(fā)一次自動(dòng)累加,滿15就歸零。從bit56到bit63(byte8)都是Checksum,取值范圍0x00~0xFF,用來(lái)表示該條報(bào)文的校驗(yàn)值。

對(duì)于判斷發(fā)送報(bào)文ECU有沒(méi)有掛死很簡(jiǎn)單,只要在接收端對(duì)RollingCounter進(jìn)行判斷,幾個(gè)周期內(nèi)協(xié)議棧上的buff沒(méi)有得到更新則就能判斷為節(jié)點(diǎn)異常。

對(duì)于報(bào)文合法性的判斷則就要負(fù)責(zé)得多,且會(huì)有各種花樣

1e7fe1ca-b9d9-11ee-8b88-92fbcf53809c.png

車(chē)企制定的通訊協(xié)議時(shí),除了制定矩陣信號(hào)外,會(huì)規(guī)定Checksum的計(jì)算方法,比如這個(gè)是采用多項(xiàng)式的CRC校驗(yàn)算法

1eac986e-b9d9-11ee-8b88-92fbcf53809c.png

并且規(guī)定出需要校驗(yàn)的數(shù)據(jù),有的是對(duì)矩陣的前7個(gè)byte進(jìn)行校驗(yàn),有的則要增加報(bào)文ID作為校驗(yàn)計(jì)算的輸入,各種花樣都有。

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * CRC8校驗(yàn)子程序0x1D(x8+x4+x3+x2+1)  * * * * * * * * * * * *
* * 參數(shù)1,uint8_t *data:需要計(jì)算的數(shù)據(jù)  * * * * * * * * * * *
* * 參數(shù)1,uint16_t len:需要計(jì)算的數(shù)據(jù)字節(jié)長(zhǎng)度 * * * * * * * *
* * 返回值,uint8_t crc8:計(jì)算出的CRC值 * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
uint8_t crc_8find(uint8_t *data, uint16_t len)
{
uint8_tcrc8=0x00;
    while( len-- ) 
    {
        crc8 = crc_table[crc8 ^ *data];
        data++;
}
    return crc8;
}

甚至貼心的給出校驗(yàn)計(jì)算的偽代碼,這函數(shù)寫(xiě)法C、C++應(yīng)該都可以直接運(yùn)行的。理解下上面的代碼!

當(dāng)ECU2發(fā)出0x100之前,會(huì)對(duì)RollingCounter累加,并且通過(guò)計(jì)算包含RollingCounter的前七個(gè)字節(jié)的CRC值,填充到數(shù)據(jù)域的第8個(gè)字節(jié);

ECU1接收到0x100的時(shí)候使用同樣的校驗(yàn)算法,計(jì)算數(shù)據(jù)域的前7個(gè)字節(jié),并且與第8個(gè)字節(jié)發(fā)送源計(jì)算的CRC值進(jìn)行比較。如果兩者相同,則數(shù)據(jù)合法。

02CANOE仿真

接下來(lái)在CANOE的CAPL進(jìn)行RollingCounter與Checksum的模擬

1eddafbc-b9d9-11ee-8b88-92fbcf53809c.png

創(chuàng)建兩個(gè)ECU節(jié)點(diǎn),ECU1為發(fā)送節(jié)點(diǎn),ECU2為接收節(jié)點(diǎn)。ECU2會(huì)對(duì)ECU1的節(jié)點(diǎn)做Checksum,如果非法數(shù)據(jù)會(huì)在log窗口中打印出來(lái)。ECU1會(huì)而這個(gè)IG是用來(lái)模擬非法的數(shù)據(jù)發(fā)送。

int GetCrcChecksum (int crc_position ,message *data)
{
  byte checksum;
  byte bitIndex;
  byte byteIndex;
  byte tdata;
  checksum = 0x00;
  for (byteIndex = DBLookup(data).dlc; byteIndex >= 1; byteIndex--)
  {
    if(byteIndex-1 != crc_position)
    {
      tdata = data.byte(byteIndex-1);
    }
    else
    {
      tdata = 0;
    }
    checksum ^= tdata;


    for (bitIndex = 0; bitIndex < 8; bitIndex++)
    {
      if ((checksum & 0x80) != 0)
      {
            checksum = (checksum << 1) ^ 0x1D; // cb_CRC_POLY: 0x1D
      }
      else
      {
            checksum = (checksum << 1);
      }
    }
  }
  checksum &= 0xFF;
  return (checksum);
}

CAPL計(jì)算Checksum的函數(shù),在ECU1與ECU2里都存在

on timer Timer1
{
   Req.rollingCounter_0x100=LiveCount;
   Req.checksum_0x100=GetCrcChecksum(7,Req);
   output(Req);
   setTimer(Timer1,20);  
   LiveCount=LiveCount+1;
     if(LiveCount==16)
   {
    LiveCount=0;
   }

ECU1的定時(shí)器函數(shù),發(fā)送前調(diào)用GetCrcChecksum函數(shù)生成Checksum

on message RCTest1
{
  if(this.checksum_0x100==GetCrcChecksum(7,this))
  {
      Rep=this;


  }else
  {
    write("Invaild Message");
  }
}

ECU2接收事件中重新計(jì)算Checksum跟發(fā)送報(bào)文里的Checksum進(jìn)行比較,不同則拋出錯(cuò)誤

1f17f62c-b9d9-11ee-8b88-92fbcf53809c.png

按F2,開(kāi)始仿真,可以監(jiān)控到ECU1發(fā)送出來(lái)的rollingCounter與Checksum

1f3bbb52-b9d9-11ee-8b88-92fbcf53809c.png

在Write窗口中打印ECU2接收到的數(shù)據(jù)

1f59749e-b9d9-11ee-8b88-92fbcf53809c.png

在IG節(jié)點(diǎn)設(shè)置一個(gè)非法的報(bào)文,rollingcounter與Checksum都設(shè)置0

1f8505a0-b9d9-11ee-8b88-92fbcf53809c.png

對(duì)非法數(shù)據(jù)進(jìn)行拋出。

來(lái)源:古德曼汽車(chē)工業(yè)

審核編輯:湯梓紅

聲明:本文內(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總線
    +關(guān)注

    關(guān)注

    145

    文章

    1977

    瀏覽量

    132414
  • 仿真
    +關(guān)注

    關(guān)注

    51

    文章

    4250

    瀏覽量

    135436
  • ecu
    ecu
    +關(guān)注

    關(guān)注

    14

    文章

    923

    瀏覽量

    55557
  • 通訊協(xié)議
    +關(guān)注

    關(guān)注

    10

    文章

    285

    瀏覽量

    20756

原文標(biāo)題:CAN總線報(bào)文數(shù)據(jù)一致性校驗(yàn)

文章出處:【微信號(hào):談思實(shí)驗(yàn)室,微信公眾號(hào):談思實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    CAN一致性測(cè)試內(nèi)容及解決方案

    新能源汽車(chē)行業(yè)的迅速發(fā)展,CAN總線問(wèn)題日益突出,總線故障潛在問(wèn)題極其嚴(yán)重。那么,如何保證CAN總線穩(wěn)定,為何主機(jī)廠愈來(lái)愈重視
    的頭像 發(fā)表于 05-29 09:14 ?2.2w次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>一致性</b>測(cè)試內(nèi)容及解決方案

    CANDT一致性測(cè)試系統(tǒng)發(fā)布 保障CAN總線安全

    CAN總線已經(jīng)成為新能源汽車(chē)、軍工、航空等行業(yè)的主控系統(tǒng)應(yīng)用總線,ZLG致遠(yuǎn)電子致力于構(gòu)建CAN總線安全保障體系,震撼發(fā)布CANDT
    的頭像 發(fā)表于 08-29 09:54 ?6764次閱讀

    串行數(shù)據(jù)一致性測(cè)試和驗(yàn)證測(cè)量基礎(chǔ)知識(shí)

    小弟這次給大家?guī)?lái)了串行數(shù)據(jù)一致性測(cè)試和驗(yàn)證測(cè)量基礎(chǔ)知識(shí)其中提到了些高速串行信號(hào)的測(cè)試測(cè)量方法和簡(jiǎn)單的原理性介紹,適合初學(xué)者使用。PS。這其中提到的些測(cè)量設(shè)備現(xiàn)在已經(jīng)升級(jí)為最新的儀器設(shè)備,但是測(cè)試的原理和技術(shù)還是可以讓大家閑
    發(fā)表于 04-16 16:17

    CAN一致性測(cè)試—容錯(cuò)測(cè)試

    ,就可以進(jìn)行鍵自動(dòng)化測(cè)試,完整顯示測(cè)試結(jié)果、數(shù)據(jù)、波形截圖等數(shù)據(jù)內(nèi)容,工程師可快速判斷被測(cè)設(shè)備的CAN總線質(zhì)量。 CANDT
    發(fā)表于 11-22 16:36

    如何解決stm32 H7 DMA串口發(fā)送數(shù)據(jù)一致性問(wèn)題?

    如何解決stm32 H7 DMA串口發(fā)送數(shù)據(jù)一致性問(wèn)題?
    發(fā)表于 12-06 06:05

    VxWorks中主備數(shù)據(jù)一致性功能組件的設(shè)計(jì)與實(shí)現(xiàn)

    數(shù)據(jù)一致性是主備用系統(tǒng)必須解決的問(wèn)題。目前主備系統(tǒng)的一致性都采用手工編程來(lái)實(shí)現(xiàn)。導(dǎo)致代碼結(jié)構(gòu)繁雜,且效率不高。利用VxWorks的異常處理機(jī)制,結(jié)合RISC CPU的特性.設(shè)
    發(fā)表于 12-16 14:21 ?5次下載

    VxWorks中主備數(shù)據(jù)一致性功能組件的設(shè)計(jì)與實(shí)現(xiàn)

    數(shù)據(jù)一致性是主備用系統(tǒng)必須解決的問(wèn)題。目前主備系統(tǒng)的一致性都采用手工編程來(lái)實(shí)現(xiàn),導(dǎo)致代碼結(jié)構(gòu)繁雜,且效率不高。利用VxWorks 的異常處理機(jī)制,結(jié)合RISC CPU 的特性,設(shè)計(jì)實(shí)
    發(fā)表于 09-22 11:32 ?8次下載

    VxWorks中主備數(shù)據(jù)一致性功能組件的設(shè)計(jì)與實(shí)現(xiàn)

    數(shù)據(jù)一致性是主備用系統(tǒng)必須解決的問(wèn)題。目前主備系統(tǒng)的一致性都采用手工編程來(lái)實(shí)現(xiàn)。導(dǎo)致代碼結(jié)構(gòu)繁雜,且效率不高。利用VxWorks的異常處理機(jī)制,結(jié)合RISC CPU的特性.設(shè)計(jì)
    發(fā)表于 11-28 16:47 ?11次下載

    P2P平臺(tái)上的數(shù)據(jù)一致性研究

    P2P網(wǎng)絡(luò)是個(gè)自組織的動(dòng)態(tài)網(wǎng)絡(luò),對(duì)等點(diǎn)可以隨意的加入或者離開(kāi)網(wǎng)絡(luò),因此如何控制數(shù)據(jù)一致性成了P2P網(wǎng)絡(luò)平臺(tái)應(yīng)用擴(kuò)展應(yīng)用的關(guān)鍵點(diǎn),本文引入數(shù)據(jù)一致性算法到P2P網(wǎng)絡(luò)平臺(tái)中來(lái),
    發(fā)表于 02-25 16:06 ?15次下載

    電能質(zhì)量監(jiān)測(cè)數(shù)據(jù)一致性定義及檢測(cè)方法_邱麗羚

    電能質(zhì)量監(jiān)測(cè)數(shù)據(jù)一致性定義及檢測(cè)方法_邱麗羚
    發(fā)表于 01-08 11:07 ?0次下載

    分布式系統(tǒng)的CAP和數(shù)據(jù)一致性模型

    CAP理論的核心思想是任何基于網(wǎng)絡(luò)的數(shù)據(jù)共享系統(tǒng)最多只能滿足數(shù)據(jù)一致性(Consistency)、可用(Availability)和網(wǎng)絡(luò)分區(qū)容忍(Partition Tolerance)三個(gè)特性中的兩個(gè)。
    的頭像 發(fā)表于 05-05 23:20 ?2509次閱讀

    AMAZINGIC晶焱科技CAN 總線收發(fā)器一致性測(cè)試

    AMAZINGIC晶焱科技CAN 總線收發(fā)器一致性測(cè)試
    的頭像 發(fā)表于 05-26 15:49 ?1102次閱讀
    AMAZINGIC晶焱科技<b class='flag-5'>CAN</b> <b class='flag-5'>總線</b>收發(fā)器<b class='flag-5'>一致性</b>測(cè)試

    AMAZINGIC晶焱科技CAN 總線收發(fā)器一致性測(cè)試

    AMAZINGIC晶焱科技CAN 總線收發(fā)器一致性測(cè)試
    的頭像 發(fā)表于 08-29 15:36 ?988次閱讀
    AMAZINGIC晶焱科技<b class='flag-5'>CAN</b> <b class='flag-5'>總線</b>收發(fā)器<b class='flag-5'>一致性</b>測(cè)試

    為什么主機(jī)廠愈來(lái)愈重視CAN一致性測(cè)試?

    新能源汽車(chē)迅猛發(fā)展下整車(chē)CAN網(wǎng)絡(luò)架構(gòu)日益復(fù)雜,總線故障等潛在問(wèn)題時(shí)刻影響著運(yùn)行安全。整車(chē)零部件通過(guò)CAN一致性測(cè)試必將是安全保障的第道門(mén)
    的頭像 發(fā)表于 05-29 08:24 ?1672次閱讀
    為什么主機(jī)廠愈來(lái)愈重視<b class='flag-5'>CAN</b><b class='flag-5'>一致性</b>測(cè)試?

    新品發(fā)布 | 同星智能正式推出CAN總線一致性測(cè)試系統(tǒng)

    CAN總線一致性測(cè)試系統(tǒng)CANFD/CAN總線一致性測(cè)試系統(tǒng),在硬件系統(tǒng)上基于同星自主研發(fā)的
    的頭像 發(fā)表于 07-06 08:21 ?927次閱讀
    新品發(fā)布 | 同星智能正式推出<b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>一致性</b>測(cè)試系統(tǒng)
    主站蜘蛛池模板: 日韩一级一欧美一级国产 | 美女把尿口扒开让男人桶出水 | 一本高清在线视频 | 国产精品丝袜xxxxxxx | 成人国产在线24小时播放视频 | www.亚洲天堂 | 黄 色 成 年人在线 黄a大片 | 在线永久免费播放视频 | 三级视频网站在线观看播放 | 在线播放你懂 | 女人张腿让男桶免费视频网站 | 四虎精品成人免费观看 | 男女一区二区三区免费 | 97色在线播放 | 亚洲偷自偷白图片 | 亚洲欧美视频一区二区 | 奇米色88欧美一区二区 | 色播图片| 成年人看的毛片 | 色多多黄色 | 国产午夜免费视频 | 亚洲色图激情 | 康熙古代高h细节肉爽文全文 | 成人人免费夜夜视频观看 | 在线免费观看h视频 | 日韩毛片网站 | 人人插视频 | 欧美亚洲专区 | 最新黄色免费网站 | 国产亚洲一区二区三区在线 | 欧美色视频网 | 亚洲综合婷婷 | 好吊操免费视频 | 狠狠艹视频| 四虎影像| 377p亚洲欧洲日本大胆色噜噜 | 一级特黄a大片免费 | 2021国产精品成人免费视频 | 免费看美女毛片 | 哥也操 | 天天射天天爱天天干 |