<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協議?如何避免總線仲裁失敗?

    發布時間:2023-02-22 來源:ZLG 責任編輯:wenwei

    【導讀】CAN總線是可以掛載多個控制單元,每個單元均可以發送和接收數據,為了避免發生沖突,協議規定只有等信道空閑時刻優先級高的單元才能占有總線并發送數據,那么CAN單元是如何判斷優先級的呢?


    CAN仲裁的實現方式


    1. CANID在CAN報文中的位置


    每一個CAN報文的CANID有唯一標識的11bit/29bit構成,以標準CAN幀為例,11bitCANID在CAN幀中的位置如圖1所示。SOF之后是Identifier,各個節點要外發的CANID通過CANID仲裁,優先級高的報文被優先發送。同時,對應節點優先獲得CAN總線的使用權,而仲裁失敗的節點則停止數據的發送,轉而進行數據的接收,只能等待下一個SOF時刻再去仲裁。


    1675243312447641.png

    圖1 標準CAN數據幀格式


    2. CAN總線仲裁機制的實現


    那么CANID的優先等級是如何判斷的呢?其實CAN總線ID仲裁方式相當于一個“線與”的結構,顯性(邏輯0)與隱形(邏輯1)相與變為顯性即0&1=0,硬件電路簡圖可參考圖2。標準CAN幀格式的總線仲裁方式如圖3所示。因為高位在前,低位在后,故CAN標識符組成的數值越小優先級越高。


    7.png

    圖2 線與電路簡圖


    1675243291720998.png

    圖3 總線仲裁方式圖


    CANID沖突發生的條件及現象


    1. CANID沖突的條件


    本文以我司協議轉換模塊CSM300為例進行介紹,CSM300是集成微處理器、CAN-bus控制器、CAN-bus收發器、DC-DC轉換、高速數字隔離于一體的嵌入式CAN與UART/SPI雙向轉換模塊。如果我們將兩個ID均為00 00 00 00的CSM300模塊組成一個CAN總線網絡系統,當這兩個ID相同的模塊同時往CAN總線端發送數據時將會造成仲裁失敗。


    2. CANID沖突的現象


    以CSM300為例進行說明,電路硬件簡易連接圖如圖4所示,用兩個上位機通過兩路串口同時給兩個相同配置的模塊發送一組數據,此時兩模塊會同時將RXD腳接收到的數據轉換至CAN總線端。因為兩個CAN節點的ID一樣,CAN總線仲裁失敗,兩發送節點收不到反饋信號,將一直發送最后一幀數據,此時CAN總線端的波形如圖5所示。


    9.png

    圖4 CSM300電路連接圖


    1675243270872988.png

    圖5 CAN總線波形圖


    CSM系列如何避免CANID沖突


    為滿足不同環境的應用,CSM300系列和CSM100系列均有透明轉換、透明帶標識轉換、自定義協議轉換三種轉換方式供用戶選配,如圖6所示。


    11.png

    圖6 轉換方式選配圖


    透明轉換方式下用戶可通過MCU或上位機將模塊配置為不同的ID避免發生仲裁失敗的情況,透明轉換方式下,模塊無需對數據進行額外處理,最大限度地提高了數據轉換速度,也提高了緩沖區的利用率。不過此模式下每個模塊的CANID在配置完成后不能更改除非用戶再次配置,此外該模式下可能將兩組時間間隔接近的UART幀識別為一組數據進行轉換,造成數據轉換錯誤。


    透明帶標識轉換方式下,用戶可以在配置時固定CANID在串行幀的位置和長度如圖7所示,通過改變串行幀數據來控制所發數據的CAN幀ID,方便用戶在同一節點發送不同ID的CAN數據。但是此模式下需要確保串行幀的時間間隔足夠大,避免模塊不能正確識別每組串行幀的結束造成數據轉換錯誤。透明帶標識模式下串行幀最小間隔具體要求可參考CSM100和CSM300的用戶手冊。


    12.png

    圖7 透明帶標識轉換配置圖


    有效的自定義協議轉換串行幀包括了幀頭、幀尾、幀ID和幀長度等,用戶可通過改變串行幀數據來控制CAN幀ID,方便用戶在同一節點發送不同ID的CAN數據。同時用戶將在配置時固定幀頭和幀尾如圖8所示,此模式下用戶通過串行幀數據告知模塊串行幀的幀頭、幀尾和數據長度,故此轉換方式下可有效避免因串行幀間隔時間短造成的數據轉換錯誤的情況。


    13.png

    圖8 自定義轉換配置圖


    來源:ZLG



    免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理。


    推薦閱讀:


    自主機器人的分布式傳感器

    第三代半導體功率器件在汽車上的應用

    應用為導向的混合式步進電機技術大大提升了電機的動態扭矩

    種草氮化鎵充電器,幾個方面要注意

    如何抑制藍牙音頻設備的噪聲和提升其音質?

    特別推薦
    技術文章更多>>
    技術白皮書下載更多>>
    熱門搜索
    ?

    關閉

    ?

    關閉

    国产强伦姧在线观看无码| 亚洲色中文字幕无码AV| 亚洲AV无码精品色午夜果冻不卡 | 97无码人妻福利免费公开在线视频| 久久中文精品无码中文字幕| 在线观看片免费人成视频无码| 99高清中文字幕在线| 成人无码小视频在线观看| 无码性午夜视频在线观看| 久久无码国产专区精品| 最近2019年中文字幕6| 中文字幕色AV一区二区三区| 国产无码区| 日韩欧国产精品一区综合无码| 亚洲AV无码久久寂寞少妇| 中文字幕丰满乱孑伦无码专区| 亚洲中文字幕伊人久久无码| 婷婷综合久久中文字幕蜜桃三电影| 精品久久久久久无码免费| 久久精品无码专区免费东京热 | 亚洲国产精品无码久久| 中文字幕亚洲一区二区va在线| 精品一区二区三区中文字幕| 亚洲av中文无码乱人伦在线r▽ | 国产 欧美 亚洲 中文字幕| 国产亚洲AV无码AV男人的天堂 | 国产成人无码一区二区在线播放| 亚洲AV永久无码精品成人| 免费一区二区无码东京热| 中文字幕久久精品| 亚洲国产日韩欧美在线a乱码日本中文字幕高清| 中文字幕国产精品| 中文字幕亚洲男人的天堂网络| 在线观看无码AV网站永久免费| 日韩少妇无码一区二区三区| 亚洲Aⅴ无码一区二区二三区软件| 国产精品无码素人福利不卡| 亚洲国产精品无码久久久久久曰| 无码视频在线播放一二三区| 中文字字幕在线中文无码| 人妻精品久久久久中文字幕一冢本 |