一文讀懂CAN通訊錯誤幀

2021-02-24 ZLG致遠電子

當前CAN總線通訊技術已經運用於各行各業之中,基本是每個總線設計工程師必學的一個通訊網絡。但什麼是CAN通訊中的錯誤幀,很多人還是處於只知其名,不知其所以然的狀態,也因此造成許多工程師在明知總線通訊出現問題卻束手無策的困擾。

一、錯誤標定

檢測到錯誤條件的站通過發送錯誤標誌指示錯誤。對於「錯誤主動」的節點,錯誤信息為「主動錯誤標誌」,對於「錯誤被動」的節點,錯誤信息為「被動錯誤標誌」。站檢測到無論是位錯誤、填充錯誤、形式錯誤,還是應答錯誤,這個站會在下一位時發出錯誤標誌信息。

只要檢測到的錯誤的條件是CRC錯誤,錯誤標誌的發送開始於ACK界定符之後的位(其他的錯誤條件除外)。如圖1所示:


圖1 CRC錯誤幀

二、故障界定

至於故障界定,單元的狀態可能為以下三種之一:「錯誤主動」、「錯誤被動」、「總線關閉」。

1、「錯誤主動」的單元可以正常地參與總線通訊並在錯誤被檢測到時發出主動錯誤標誌。

2、「錯誤被動」的單元不允許發送主動錯誤標誌。「錯誤被動」的單元參與總線通訊,在錯誤被檢測到時只發出被動錯誤標誌。而且,發送以後,「錯誤被動」單元將在初始化下一個發送之前處於等待狀態。(見「掛起發送」)

3、「總線關閉」的單元不允許在總線上有任何的影響(比如,關閉輸出驅動器)。

三個轉態的轉換方式如圖2所示:


圖2 CAN狀態轉換圖

在每一總線單元裡使用兩種計數以便故障界定: 發送錯誤計數、 接收錯誤計數

這些計數按以下規則改變(注意,在給定的報文發送期間,可能要用到的規則不只一個):

1、當接收器檢測到一個錯誤,接收錯誤計數就加1。在發送主動錯誤標誌或過載標誌期間所檢測到的錯誤為位錯誤時,接收錯誤計數器值不加1。

2、當錯誤標誌發送以後,接收器檢測到的第一個位為「顯性」時,接收錯誤計數值加8。

3、當發送器發送一錯誤標誌時,發送錯誤計數器值加8。

4、發送主動錯誤標誌或過載標誌時,如果發送器檢測到位錯誤,則發送錯誤計數器值加8。

5、當發送主動錯誤標誌或過載標誌時,如果接受器檢測到位錯誤(位錯誤),則接收錯誤計數器值加8。

6、在發送主動錯誤標誌、被動錯誤標誌或過載標誌以後,任何節點最多容許7個連續的 「顯性」位。以下的情況,每一發送器將它們的發送錯誤計數值加8,及每一接收器的接收錯誤計數值加8:

7、報文成功傳送後(得到ACK及直到幀末尾結束沒有錯誤),發送錯誤計數器值減1,除非已經是0。

8、如果接收錯誤計數值介於1和127之間,在成功地接收到報文後(直到應答間隙接收沒有錯誤,及成功地發送了ACK位),接收錯誤計數器值減1。如果接收錯誤計數器值是0,則它保持0,如果大於127,則它會設置一個介於119到127之間值。

9、當發送錯誤計數器值等於或超過128時,或當接收錯誤計數器值等於或超過128時,節點為「錯誤被動」。讓節點成為「錯誤被動」的錯誤條件致使節點發出主動錯誤標誌。

10、當發送錯誤計數器值大於或等於256時,節點為「總線關閉」。

11、當發送錯誤計數器值和接收錯誤計數器值都小於或等於127時,「錯誤被動」的節點重新變為「錯誤主動」。

12、在總線監視到128次出現11個連續「隱性」位之後,「總線關閉」的節點可以變成「錯誤主動」(不再是「總線關閉」),它的錯誤計數值也被設置為0。

備註1:

一個大約大於96的錯誤計數值顯示總線被嚴重幹擾。最好能夠預先採取措施測試這個條件。

備註2:

起動/睡眠:如果起動期間內只有1個節點在線,以及如果這個節點發送一些報文,則將不會有應答,並檢測到錯誤和重複報文。由此,節點會變為「錯誤被動」,而不是「總線關閉」。

聯繫方式

銷售電話:400-888-4005撥1

技術支持電話:400-888-4005撥2

致遠電子 (ID: ZLG_zhiyuan )

還沒關注致遠電子?您將錯過每日泛著油光的乾貨!您將錯過一段顛覆洋品牌的歷史!!有時候你想證明給一萬個人看,到後來,你發現只得到了一個明白的人,那就夠了。你是我們期待已久的粥粉麼?我們的微信號:ZLG_zhiyuan。

相關焦點

  • 一文讀懂CAN總線(三)
    點擊上方藍字關注我們在一文讀懂CAN總線(一)中我們介紹了標準CAN和擴展CAN以及CAN消息類型;在一文讀懂CAN總線(二)中為大家介紹了CAN總線的位填充機制、錯誤檢測和故障界定、網絡拓撲、終端匹配
  • 總線架構30講,啥是CAN錯誤幀?真的那麼煩人嗎?(1/5)
    所謂錯誤幀,就是總線出錯了。什麼是錯誤幀呢?為什麼會產生錯誤幀呢?出現錯誤幀該怎麼辦呢?
  • 詳解LIN通訊和CAN通訊的校驗算法
    在前一段時間推送的幾篇文章中涉及到了幾種不同的通訊方式,在每一個通訊方式講解時都有提到校驗,而且每一種通訊中的校驗也是不盡相同的,今天小編就和大家一起看一看這些檢驗到底是怎麼回事。LIN通訊的校驗我們先從比較簡單的開始,在理解校驗之前需要對通訊的基礎知識有所了解,因為校驗的計算會涉及到基礎的概念,如果對基礎概念還不清楚的朋友可以參看小編之前推送的文章《汽車上除了CAN通訊還有另外一種總線你需要知道》。LIN通訊的校驗分兩種:經典型校驗和增強型校驗。
  • 汽車CAN總線的數據幀結構
    報文傳輸格式有以下四種不同的幀類型所表示和控制,所謂幀就是一個計量單位,它的數據由兩部分組成:幀頭和幀數據。 數據幀:數據幀攜帶數據,是數據在網絡上傳輸時的一個數據單元。 遠程幀:總線單元發送的遠程幀,請求發送具有統一識別符的數據幀。 錯誤幀:任何電控單元檢測到總線錯誤就會發出錯誤幀。 過載幀:用以在先行和後續的數據幀之間提供以附加的延時。
  • 如何快速實現CAN到CAN FD的升級?
    一、CANFDCOM的應用 CANFDCOM-100IE智能協議轉換器可以快速將RS-232/485/422通訊設備連接到CAN(FD)-bus現場總線,實物圖如圖1所示。轉換器支持1200-921600bps串口波特率,以及50k-5Mbps的CAN(FD)-bus 通訊速率。
  • 獨家 | 一文讀懂Adaboost
    Adaboost算法通過將分類能力比較弱的基礎分類器按照訓練出來的組合係數組合成強分類器,以實現良好的預測性能,在訓練的過程中不斷提高上次訓練錯誤分類樣本的權重,從而提升整體模型分類能力。在本文中我們利用簡單的例子編碼實現了Adaboost算法,說明了其實際工作的原理。Adaboost算法可以利用加性模型的損失函數最小化來推導出來,並且具有確切的誤差界,說明了模型的收斂性。
  • CAN總線錯誤處理機制
    錯誤幀當節點檢測到錯誤時,節點會向總線上發送錯誤幀,通知其他節點當前總線有錯誤。錯誤幀由錯誤標誌和錯誤界定符組成,如圖1所示。並且分為主動錯誤狀態下的錯誤幀和被動錯誤狀態下的錯誤幀。圖1 錯誤幀其中:        主動錯誤狀態下錯誤幀的錯誤標誌為6位連續的顯性位。
  • 一文讀懂電容傳感器
    藍色標題,獲取文章】 10、一文讀懂光纖傳感器 11、一文讀懂溫溼度傳感器 12
  • CAN總線中主動錯誤和被動錯誤的通俗解釋
    對於通過競爭得到總線使用權的發送站點來說,它在一邊發一邊聽,有可能出現以下幾種情況:(a) 它自己就發現錯誤,它就乾脆譁啦譁啦,亂發一氣(連續的發六個同性位)。就象你小時候在幼兒園練習寫字,寫錯一個筆畫你自己就不耐煩了,在紙上譁啦譁啦亂畫一氣。目的就是告訴別人(別的站點):出錯了!
  • CAN和CANopen相關技術
    一、CAN和CANopen簡介    CAN總線全稱為Controller Area 包裝機械、菸草等行業得到了廣泛的應用。SDO   SDO (服務數據對象)   CANopen幀包含參數   SDO主要用於在程序運行時,從設備讀參數或者向設備寫參數   COB-ID   COB-ID(通訊對象標識符)   每個CAN幀以一個COB-ID開頭,COB-ID作為CAN幀的標識符。在配置階段,每個節點在接收COB-ID時,對幀來說,他是提供者或者消費者。
  • GEMAC CAN總線測試分析儀
    level (0 ... 100 %) 無幹擾電壓範圍,上升沿和下降沿Disturbance-free voltage range, rising and falling edges v持續監控       Continuous monitoring       總線狀態,總線流量負載,錯誤幀計數器
  • 一文讀懂磁傳感器(必須收藏)
    【點擊藍色標題,獲取文章】 >、一文讀懂接近傳感器 3、一文讀懂磁傳感器 4、一文讀懂流量傳感器
  • 一文讀懂PLC與工控機區別
    今天小編一文與你讀懂PLC與工控機區別。I/O接口的多樣性,可用於掃描、控制以及遠程數據交換外,也支持集成控制、通訊、並行運算,中斷維穩等功能。當然PLC很多公司具備信息協處理器模塊、高級語言協處理器、網絡適配模塊以及具有特殊功能的I/O模快等,為多種應用行業不同場景提供可靠性與專業性的服務。
  • 一文讀懂「2020限塑令」!
    一文讀懂「2020限塑令」!06 16:58 來源:澎湃新聞·澎湃號·政務 一張圖讀懂限塑令新規
  • NiMotion一體化電機在PLC上應用案例---TCP轉CAN通訊
    代表方向,0A 00 00 00位置移動的大小10step)乙太網轉CAN通信協議轉換器4.SCM-ETHCAT介紹SCM-ETHCAT是北京立邁勝控制技術有限責任公司開發的一款工業級乙太網一個CAN幀有13個字節,下面展示一個CAN幀的數據描述。
  • 獨家 | 一文讀懂Hadoop(三):Mapreduce
    讀者可以通過閱讀「一文讀懂Hadoop」系列文章,對Hadoop技術有個全面的了解,它涵蓋了Hadoop官網的所有知識點,並且通俗易懂,英文不好的讀者完全可以通過閱讀此篇文章了解Hadoop。本期獨家內容「一文讀懂Hadoop」系列文章先介紹Hadoop,繼而分別詳細介紹HDFS、MAPREDUCE、YARN的所有知識點,分為四期內容在近幾天推送。敬請關注後續內容。
  • 看美劇「讀懂」英語:I can't help it什麼意思?
    看美劇「讀懂」英語:I can't help it什麼意思? 看美劇學英語是個好方法,但不等於「用」中文去「讀懂」英語就算「學會了」英語:你「讀」英語「說」(已知的,學過的)英語的能力沒有因為看美劇而有任何改變,沒有得到任何訓練。
  • H.264 編碼中,I幀、B幀、P幀、IDR幀的區別
    在H.264協議裡定義了三種幀,完整編碼的幀叫 I 幀,參考之前的 I 幀生成的只包含差異部分編碼的幀叫 P 幀,還有一種參考前後的幀編碼的幀叫 B 幀。H.264採用的核心算法是幀內壓縮和幀間壓縮,幀內壓縮是生成 I 幀的算法,幀間壓縮是生成 B 幀和 P 幀的算法。
  • 一文讀懂乙太網MII/RMII/GMII三種接口
    一文讀懂乙太網MII/RMII/GMII三種接口 工程師d 發表於 2018-05-18 13:51:00   MII,RMII,GMII接口詳細解釋
  • 一文讀懂Python裝飾器
    打開APP 一文讀懂Python裝飾器 工程師3 發表於 2018-04-28 10:48:00