<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 電源管理 > 正文

    CAN總線中節點ID相同會如何?

    發布時間:2017-08-31 責任編輯:susan

    【導讀】CAN-bus網絡中原則上不允許兩個節點具有相同的ID段,但如果兩個節點ID段相同會怎樣呢?實驗前,我們首先要對CAN報文的結構組成、仲裁原理有清晰的認識。
     

     
    一、CAN報文結構
     
    目前使用最廣泛的CAN-bus網絡標準是V2.0版本,該標準又分為A、B兩部分,它們主要的區別在仲裁區域的ID碼長度。其中CAN2.0A(標準幀)為11位ID,CAN2.0B(擴展幀)為29位ID。下表1為CAN報文結構:
     
    表1.CAN報文結構
     
    二、仲裁原理
     
    CAN總線的仲裁是基于“線與原理”,如圖1所示。當個收發器同時發出不同電平信號時,隱性電平總是被顯性電平覆蓋。CAN控制器在發送報文的同時會監聽總線狀態與自己發送的電平是否一致,如果不一致發生在ID段則會發生仲裁,如果發生在其他區域則會觸發相應錯誤。
     
    圖1.線“與”示意圖
     
    下面進入重點,如果兩個節點ID段相同會怎樣?我們用兩個CAN卡 和一臺CANScope開始實驗,CAN卡模擬CAN標準節點收發報文,CANScope做通信監控,如圖2所示。(注:CAN卡為USB轉CAN工具,CANScope為CAN總線分析儀,產品詳見ZLG致遠電子官網)
     
    圖2.實驗平臺搭建
     
    三、實驗一“ID段相同但數據不同”
     
    使用一個CAN卡發送ID為000H數據為01020304050607H的CAN幀,使用另一個CAN卡發送ID為000H數據為02020304050607H的CAN幀。CANScope監聽的數據如圖3所示,可以觀察到有大量的數據場填充錯誤。
     
    圖3.數據場填充錯誤
     
    為什么會這樣呢?我們首先分別獲取兩個CAN卡發送報文對應的波形,如圖4。因為兩針報文同為標準數據幀,且每幀包含8個字節數據,所以兩幀報文對應的波形在ID段、RTR、IDE、R0以及DLC段完全一致。因此,仲裁作用失效,兩節點都認為自己獲得了優先權,繼續發送數據。
     
    圖4.報文對應波形對比
     
    現在我們聚焦數據段,第一個字節數據相同,均為為00H;第二個字節數據不同,分別為01H、02H。圖5箭頭標示處可以看到兩者對應位的邏輯分別為0和1。前面我們提到CAN節點在發送報文的同時會檢測總線電平是否與自己發送的電平一致,若不一致發生在非仲裁區域則觸發相應錯誤,因此若這兩幀報文同時發送到總線上必將發生位發送錯誤。因為位發送錯誤會引起節點發送違反填充規則的6個顯性位(主動錯誤破壞該幀數據),故出現數據場填充錯誤,如圖3。
     
    圖5.數據場沖突
     
    四、實驗二“ID相同數據也相同”
     
    同時使用兩個CAN卡發送ID為000H數據為01020304050607H的CAN幀,CANScope做通信監控。首先,我們不勾選“總線應答”選項,使CANScope工作在僅監聽模式。實驗結果如圖6所示,出現的是應答定界符格式錯誤。
     
    圖6.應答界定符格式錯誤
     
    為什么會發生這種錯誤呢?發送報文的節點會在ACK段發送兩個隱性位,若在第一個位期間接收到顯性電平則認為該幀被正確接收。由于仲裁段相同時兩節點都認為自己取得仲裁權,在ACK段等待應答,但該網絡中僅存在兩個節點,因此在ACK段不能收到應答,進而發生應答定界符錯誤。簡單說來這種情形就類似于總線中只有一個節點將不能實現數據發送。圖7是在ACK段有無應答時的波形對比。
     
    圖7.ACK應答
     
    我們勾選上總線應答,再次開始實驗(此時總線中相當于有3個節點)。這時如圖8所示,總線數據收發正常。
     
    圖8.啟動總線應答
     
    總結:當兩節點同時發送ID相同數據不同的報文時,將發生數據場填充錯誤;當兩節點同時發送ID相同數據也相同的報文時,若有其他節點應答則不發生錯誤,若無其他節點應答則發生應答錯誤。因此,我們在設計CAN總線時應避免ID段相同的情況出現。
    要采購工具么,點這里了解一下價格!
    特別推薦
    技術文章更多>>
    技術白皮書下載更多>>
    熱門搜索
    ?

    關閉

    ?

    關閉

    中文字幕一区二区三区久久网站| 无码国产乱人伦偷精品视频| 少妇无码一区二区二三区| 伊人久久一区二区三区无码| 中文字幕有码无码AV| 人妻中文字幕乱人伦在线| 国产精品无码一区二区在线观一 | 人妻丰满熟妞av无码区| 亚洲天堂中文字幕在线| 无码人妻精品中文字幕免费东京热 | 精品欧洲AV无码一区二区男男| 亚洲欧美日韩中文字幕二区 | 色综合久久中文综合网| 国模无码一区二区三区不卡| 无码h黄动漫在线播放网站| 亚洲精品无码午夜福利中文字幕 | 精品久久久无码人妻中文字幕| 色综合中文字幕| 天堂中文在线最新版| 亚洲无码精品浪潮| 无码视频在线播放一二三区| 国产亚洲情侣一区二区无码AV | 欧洲人妻丰满av无码久久不卡 | 亚洲AV永久无码精品水牛影视| 日韩人妻无码一区二区三区久久99| 亚洲欧美中文字幕| 一本久中文视频播放| 色综合久久无码中文字幕| 亚洲精品无码午夜福利中文字幕 | 亚洲欧美日韩中文字幕在线不卡 | 亚洲国产av无码精品| 亚洲AV无码乱码精品国产| 亚洲美日韩Av中文字幕无码久久久妻妇| 国产V亚洲V天堂A无码| 人妻少妇看A偷人无码精品视频| 国产精品无码不卡一区二区三区| 国产精品无码一区二区在线| 无码人妻精品一区二区蜜桃AV| 全球中文成人在线| 日韩欧美一区二区不卡中文| 惠民福利中文字幕人妻无码乱精品|