<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

CAN-bus網絡中,出現具有相同ID段的兩個節點會發生什么?

AGk5_ZLG_zhiyua ? 來源:未知 ? 作者:佚名 ? 2017-09-14 14:03 ? 次閱讀

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總線分析儀,產品詳見致遠電子官網)

圖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段相同的情況出現。

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

    關注

    0

    文章

    209

    瀏覽量

    24132
  • CAN-BUS
    +關注

    關注

    0

    文章

    26

    瀏覽量

    16535

原文標題:為什么CAN節點ID不能相同?

文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    合理的CAN-bus總線設計 保證通訊的可靠性和節點

    CAN-bus電路設計中,理論上收發器支持節點數最多可做到110個,但實際應用中往往達不到這個數量。這里我們談談如何通過合理的CAN-bus總線設計,保證CAN
    發表于 08-17 11:34 ?1990次閱讀
    合理的<b class='flag-5'>CAN-bus</b>總線設計 保證通訊的可靠性和<b class='flag-5'>節點</b>數

    CAN總線中節點ID相同會怎樣?

    CAN-bus網絡中原則上不允許兩個節點具有相同ID
    發表于 08-31 15:38 ?2443次閱讀

    CAN-bus應用方案

    作為一種技術先進、可靠性高、功能完善、成本合理的遠程網絡通訊控制方式,CAN-bus已被廣泛應用到各個自動化控制系統。例如,在汽車電子、自動控制、智能大廈、電力系統、安防監控等各領域CAN-
    發表于 03-09 12:43

    CAN-bus 開發步驟

    CAN-bus 開發步驟
    發表于 08-08 21:26

    智能停車場的現場總線 CAN-bus網絡

    智能停車場的現場總線 CAN-bus網絡
    發表于 08-20 13:32

    基于CAN-bus和以太網的區域信息管理系統

    基于CAN-bus和以太網的區域信息管理系統概述:介紹一種CAN-bus網絡與以太網連接,構成一個中型遠程監控/數據傳輸網絡的方法。CAN
    發表于 03-22 15:24 ?15次下載

    CAN-bus 總線分析儀手冊

    CAN-bus 總線分析儀手冊 CANalsyt-Ⅱ分析儀是用來安裝、開發、測試、維護、管理CAN-bus 網絡的專業分析工具,操作通用,功能強大。分析儀支持Win98/Me/2K/XP 等32 位
    發表于 03-22 15:30 ?24次下載

    CAN-bus應用方案(1)

    CAN-bus應用方案(1) 概述作為一種技術先進、可靠性高、功能完善、成本合理的遠程網絡通訊控制方式,CAN-bus已被廣泛應用到各個自動化控制系統中。例如,在汽車電子
    發表于 03-22 15:35 ?23次下載

    CAN-bus 網絡中的虛擬串口 (VCOM)

    CAN-bus 網絡中的虛擬串口 (VCOM) 基于CAN-bus 網絡的虛擬串口在工業串行通訊領域中,RS-232 與RS-485 都是會被經常用到的數據傳輸標準之一。例如,普通P
    發表于 03-27 13:40 ?43次下載

    CAN-bus接口控制實驗

    CAN-bus 接口控制實驗 一.實驗目的通過調用CAN 程序庫SJA1000_PELI.LIB 的基本函數,實現實驗板上CAN 節點的初始化以及
    發表于 09-26 16:03 ?1963次閱讀
    <b class='flag-5'>CAN-bus</b>接口控制實驗

    CAN-BUS,CAN-BUS是什么意思

    CAN-BUS,CAN-BUS是什么意思 CAN-BUS  1,CAN-BUS的起源  控制器局域網(controllerareanetwork 簡稱
    發表于 03-11 15:31 ?1.8w次閱讀

    CAN-bus器件是什么意思

    CAN-bus器件是什么意思 概述  
    發表于 03-18 17:07 ?3140次閱讀
    <b class='flag-5'>CAN-bus</b>器件是什么意思

    CAN-BUS,CAN-BUS原理是什么?

    CAN-BUS,CAN-BUS原理是什么?  1,CAN-BUS的起源  控制器局域網(controllerareanetwork 簡稱CAN)最初是德國Bosch公司于1983年為汽
    發表于 03-22 15:51 ?2604次閱讀

    CAN總線中節點ID相同出現什么

    CAN-bus網絡中原則上不允許兩個節點具有相同ID
    發表于 11-12 10:52 ?8次下載
    <b class='flag-5'>CAN</b>總線中<b class='flag-5'>節點</b><b class='flag-5'>ID</b><b class='flag-5'>相同</b>會<b class='flag-5'>出現</b>什么

    CAN-bus應用筆記:節點

    CAN-bus電路設計中,理論上收發器支持節點數最多可做到110個,但實際應用中往往達不到這個數量。今天我們就來談談如何通過合理的CAN-bus總線設計,保證CAN
    的頭像 發表于 05-12 08:24 ?164次閱讀
    <b class='flag-5'>CAN-bus</b>應用筆記:<b class='flag-5'>節點</b>篇
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>