關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > CAN總線錯誤檢測機制

        CAN總線錯誤檢測機制

        作者:ZLG致遠電子 時間:2018-06-29 來源:電子產品世界 收藏

          的錯誤都有哪些形式,相互之間有什么樣的關系,以及總線的檢測與校驗的原理是什么?

        本文引用地址:http://www.104case.com/article/201806/382527.htm

          的錯誤幀可分為位錯誤、位填充錯誤、CRC錯誤、格式錯誤、應答錯誤五大類,每類錯誤的具體解釋如圖8所示,此圖簡潔明了的展現了各種錯誤。

          圖8 錯誤類型

          CAN報文傳輸過程中出現通訊錯誤,會發送錯誤幀,以上所述的錯誤幀類型中根據其錯誤標識符不同,可分為“主動錯誤”和“被動錯誤”。

          主動錯誤:檢測錯誤主動報錯,發出錯誤標識符(連續6個顯性位)和錯誤界定符(連續8個隱形位);目的在于“主動”通知錯誤,即使別的節點沒有發現此錯誤;

          被動錯誤:檢測錯誤,被動等待其他節點報錯后發送錯誤標識符(連續6個隱形位)和錯誤標識符(連續8個隱形位);目的在于識別錯誤,回應主動錯誤;

          總線關閉:節點不參與總線通訊;

          為了避免某個設備因為自身原因(例如硬件損壞)導致無法正常收發數據而不斷地破壞數據幀,從而影響其他正常節點通訊,CAN-bus規范中規定每個CAN控制器都有一個發送錯誤計數器和一個接收錯誤計數器。根據計數值不同CAN節點會處于不同的設備狀態,狀態之間的轉換關系如圖9所示:

          圖9 錯誤轉換圖

          接收、發送錯誤計數器對應的變動條件及數值變動情況:

        •    接收單元檢測出錯誤時,檢測到錯誤標識符或過載標志的“位錯誤”除外,此時REC+1、TEC不變;

        •    接收單元在發送完錯誤標志后檢測到第一位為顯性電平,此時REC+8、TEC不變;

        •    發送單元輸出錯誤標志,此時REC不變、TEC+8;

        •    發送單元發送主動錯誤標志或過載標志,檢測出位錯誤,REC不變、TEC+8;

        •    接收單元發送主動錯誤標志或過載標志,檢測出位錯誤,REC+8、TEC不變;

        •    各單元從主動錯誤標志、過載標志的開始檢測出連續14個顯性位,之后每檢測出連續8個顯性位,發送時REC+8、接收時TEC+8;

        •    檢測出被動錯誤標志后追加連續8個位的顯性位,發送時REC+8、接收時TEC+8;

        •    發送單元正常接收數據結束時(返回ACK且到幀結束位檢測到錯誤),REC不變、TEC-1;

        •    接收單元正常接收數據結束時(到CRC未檢測出錯誤且正常返回ACK),REC<127時,REC-1,REC>127時,REC=127;TEC不變;

        •    處于總線關閉的單元,檢測到128次連續11個位的隱形位,錯誤計數器歸零,REC、TEC=0;

          CAN總線錯誤處理功能屬于是鏈路層功能,此功能由CAN控制器決定,如圖10所示CAN控制介紹圖,其中詳細介紹與錯誤處理有關的部分:位流處理器、位邏輯控制、錯誤管理邏輯。

        •    位流處理器(BSP)是一個控制發送緩沖器、接收FIFO和CAN總線之間數據流的程序裝置,它還執行總線上的錯誤檢測、仲載、總線填充和錯誤處理。

        •    位時序邏輯(BTL)監視串行的CAN總線和位時序,它在信息開頭“弱勢支配”的總線傳輸時,同步 CAN總線位流(硬同步),接收報文時再次同步下一次傳送(軟同步)。

        •    錯誤管理邏輯(EML)負責限制傳輸層模塊的錯誤,它接收來自位流處理器的出錯報告,然后把有關錯誤統計告訴位流處理器和接口管理邏輯(IML)。

          圖10 CAN控制器

          CAN控制器的信號從CAN收發器的TXD發送到總線,同時被RXD收回進行檢測,以此達到實時的接收錯誤檢測、發送錯誤檢測與ID仲裁功能。CAN總線是如何保證數據傳輸可靠性的,以下介紹CAN總線獨有的檢測機制:位流檢測和CRC校驗;

          位流檢測:即位檢測,如圖11所示節點在發送過程中,同時會監測自身發送的位數值,假如檢測到位與自身送出的位數值不同,則會提示位錯誤;

          圖11 位檢測

          CRC校驗:即循環冗余校驗碼是數據通訊領域中最常用的一種差錯校驗碼,其信息字段和校驗字段的長度可任意選定;CRC校驗過程是通過循環計算冗余校驗碼的方式實現的,CAN控制器內部CRC的實現是基于多項式發生器和一個15位寄存器;其意義在于保證傳輸數據的正確性,未經CRC校驗檢測出的錯誤低于10負九次方。

          CANscope總線分析儀是一款綜合性的CAN總線開發與測試的專業工具,集海量存儲示波器、網絡分析儀、誤碼率分析儀、協議分析儀及可靠性測試工具于一身,并把各種儀器有機的整合和關聯,如圖12所示CANscope的軟件界面圖;重新定義CAN總線的開發測試方法,可對CAN網絡通訊正確性、可靠性、合理性進行多角度全方位的評估;幫助用戶快速定位故障節點,解決CAN總線應用的各種問題,是CAN總線開發測試的終極工具。

          圖12 CANscope軟件界面


        上一頁 1 2 下一頁

        關鍵詞: CAN總線

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 河西区| 彭水| 青川县| 大余县| 六盘水市| 石河子市| 江达县| 威远县| 容城县| 宁化县| 东山县| 麻城市| 水富县| 社会| 凤庆县| 田东县| 南充市| 南阳市| 瓦房店市| 潼关县| 商水县| 吉林省| 吴旗县| 宿迁市| 西和县| 德昌县| 上饶县| 泸水县| 张家口市| 东阿县| 师宗县| 澎湖县| 荔浦县| 台江县| 张北县| 宣化县| 永清县| 镇宁| 桑日县| 棋牌| 肇州县|