五分鐘帶你認識CAN總線錯誤— CAN節點狀態與錯誤計數器 (3)

A simple intro to CAN errors

CAN 總線錯誤

在本系列文章中,我們將為您詳細介紹 CAN 總線錯誤的相關知識,包括 CAN 總線錯誤的基礎概念、CAN 總線錯誤的類型、CAN 錯誤幀和 CAN 節點錯誤狀態,並透過實際的應用測試生成並記錄 CAN 錯誤。


回顧前文: 五分鐘帶你認識CAN 總線錯誤 — CAN總線錯誤與錯誤幀 (1)

回顧前文: 五分鐘帶你認識CAN 總線錯誤 — CAN總線錯誤類型 (2)


顯然,CAN 錯誤處理有助於去除錯誤消息,並使 CAN 節點能夠重新進行錯誤消息的傳輸。這確保了短暫的局部干擾(例如來自噪聲)不會導致無效/丟失數據。相反,發送器將會嘗試重新發送消息。如果它贏得仲裁(並且沒有錯誤),則消息發送成功。

但是,如果錯誤是由於傳輸節點中的系統故障引起的怎麼辦?這可能會觸發發送/去除相同消息的無限循環—— 干擾 CAN 總線。這就是 CAN 節點狀態和錯誤計數器發揮作用的地方。

CAN 錯誤跟踪的目的是透過降低有問題的 CAN 節點的權限來限制錯誤。具體來說,讓我們看看三種可能的狀態:

活動錯誤:這是每個 CAN 節點的預設狀態,在該狀態下它能夠傳輸數據並在檢測到錯誤時引發“活動錯誤標誌”

被動錯誤:在這種狀態下,CAN 節點仍然能夠傳輸數據,但現在在檢測到錯誤時會引發“被動錯誤標誌”。此外,CAN 節點現在除了等待 3 位中斷時間外,還必須等待額外的 8 位(也稱為暫停傳輸時間)才能恢復數據傳輸(以允許其他 CAN 節點控制總線)

總線關閉:在此狀態下,CAN節點將自身與CAN總線斷開連接,無法再傳輸數據或引發錯誤標誌

每個 CAN 控制器都會跟踪自己的狀態並採取相應的行動。CAN 節點根據其錯誤計數器的值轉換狀態。具體來說,每個 CAN 節點都會跟踪發送錯誤計數器(TEC)和接收錯誤計數器(REC):

  • 如果 REC 或 TEC 超過 127,則 CAN 節點進入被動錯誤狀態
  • 如果 TEC 超過 255,則 CAN 節點進入總線關閉狀態

那麼錯誤計數器如何變化呢?在我們了解如何增加/減少錯誤計數器的邏輯之前,讓我們重新審視 CAN 錯誤幀以及主要/次要錯誤標誌。

從 CAN 錯誤幀圖示中可以明顯看出,在其自己的 6 個顯性位序列之後觀察到顯性位的 CAN 節點將知道它引發了主要錯誤標誌。在這種情況下,我們可以將此 CAN 節點稱為錯誤的 “發現者”。

起初,讓一個 CAN 節點反復發現錯誤,並透過在其他節點之前發出錯誤標誌來迅速做出反應,這聽起來可能是積極的。然而,在實踐中,發現者通常也是導致錯誤的罪魁禍首。


CAN/LIN 數據與錯誤紀錄器

虹科 CANedge1 讓您可以輕鬆地將數據從 2xCAN/LIN 總線記錄到 8-32GB 的 SD 卡中,並支持記錄 CAN/LIN 錯誤。只需將其連接到汽車或卡車即可開始記錄,並透過免費軟體/API 解碼數據。此外,升級版 CANedge2 添加了 WiFi 功能,讓您可以將數據自動傳輸到您自己的服務器,並透過無線方式更新設備。

除此之外,我們也為客戶提供 CAN 卡、數據採集模塊、CAN 網關和轉換器等硬體設備,和Kvaser CANLIB SDK 等軟體。若想了解更多關於 CAN 技術服務和 CAN 產品,歡迎隨時聯繫宏虹電子!


聯繫我們