免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

CAN總線錯誤處理 看這里就對了!

 yeshuheng 2023-06-22 發(fā)布于江蘇

來源:車端 初光

1 CAN總線錯誤類型

為了防止故障節(jié)點干擾甚至阻塞整個CAN網絡系統(tǒng),CAN協議實現了復雜的故障限制機制。為了保證通信的正常,CAN 2.0 總線協議總線中各節(jié)點需要采取以下措施進行錯誤檢測:

  • 監(jiān)視(對發(fā)送位的電平與被監(jiān)控的總線電平進行比較)
  • 循環(huán)冗余檢查
  • 位填充
  • 報文格式檢查

圖片

CAN協議具有檢測錯誤的能力。但是如果發(fā)生錯誤,它無法糾正錯誤。因此,如果發(fā)生錯誤,檢測到的節(jié)點或ECU將向CAN網絡發(fā)送錯誤幀。與之相對應的CAN 2.0 總線協議定義參與通信的CAN節(jié)點錯誤類型如下:

  • 位錯誤(Bit Error) 發(fā)送的位值和總線監(jiān)視的位值不相符合時,檢測到一個位錯誤(除仲裁場、應答場外);

  • 填充錯誤(Stuff Error)

如果在使用位填充編碼的位流中,出現了第六個連續(xù)相同的位電平,將檢測到一個位填充錯誤;

  • 形式錯誤 (Form Error)

當一個固定形式的位場含有一個或多個非法位時,將檢測到一個形式錯誤;

  • 應答錯誤 (Acknowledgment Error)

在應答間隙(ACK SLOT)所監(jiān)視的位不為“顯性”,則會檢測到一個應答錯誤;

  • CRC 錯誤(CRC Error)

如果接收器的CRC結果和發(fā)送器的CRC結果不同,將檢測到一個CRC錯誤。

2 CAN總線錯誤處理機制

每個CAN控制器都有自己的CAN總線錯誤處理程序。為了處理這個問題,每個CAN控制器有兩個計數器寄存器(0 – 255),即:發(fā)送錯誤計數器 (TEC) 和接收錯誤計數器 (REC) 。如果5個錯誤中發(fā)生任何一個發(fā)生錯誤,它將根據錯誤類型增加 TEC 或 REC。Tips:一個特例:如果CAN總線上只有一個節(jié)點,該節(jié)點發(fā)送數據幀后得不到響應(ACK),其發(fā)送計數器TEC最大只能計到128,即該節(jié)點只能進入錯誤被動狀態(tài),而不會進入總線關閉狀態(tài),這就是為什么當您沒有將任何設備連接到網絡時,您的ECU將持續(xù)發(fā)送幀,但不會檢測到總線關閉并保持錯誤被動狀態(tài)。

錯誤計數器的遞增和遞減操作是不對稱的。在成功傳輸或接收消息時,如果相應的錯誤計數器未為零,則相應的錯誤計數器將遞減。在傳輸或接收錯誤的情況下,計數器將遞增,但遞增值大于遞減值。具體錯誤限制管理規(guī)則如下:

a) 當接收器檢測到錯誤時,接收錯誤計數器REC+ 1。例外:發(fā)送活動錯誤標志、過載標志期間的位錯誤。

b) 當接收器在發(fā)送錯誤標志后檢測到顯性位作為第一位時,接收錯誤計數器REC+8。

c) 當發(fā)送器發(fā)送錯誤標志時,發(fā)送錯誤計數器REC+8。

1) 例外 1:如果發(fā)送器是錯誤被動狀態(tài),并且由于未檢測到顯性 ACK 而檢測到 ACK 錯誤,并且在發(fā)送其被動錯誤標志時未檢測到顯性位。
2) 例外 2:如果發(fā)送方因為仲裁期間發(fā)生填充錯誤而發(fā)送錯誤標志,因此,填充位應該是隱性的,并且已作為隱性發(fā)送但被監(jiān)視為主導的。
在這兩種例外情況下,傳輸錯誤計數器保持不變。

d) 如果發(fā)送器在發(fā)送活動錯誤標志或過載標志時檢測到位錯誤,則發(fā)送錯誤計數器TEC+8。

e) 如果接收器在發(fā)送活動錯誤標志或過載標志時檢測到位錯誤,則接收錯誤計數器TEC+8。

f) 在發(fā)送活動錯誤標志、被動錯誤標志或過載標志后,任何節(jié)點都應容忍最多7 個連續(xù)顯性位。在檢測到第14個連續(xù)顯性位后(在活動錯誤標志或過載標志的情況下)或在被動錯誤標志后檢測到第 8 個連續(xù)顯性位之后,并且每當在出現額外的8個連續(xù)顯性位序列之后,REC和TEC都需要+8。

g) 成功傳輸一個幀后(收到 ACK 并且沒有檢測到錯誤,直到 EOF 被檢測到完成),傳輸錯誤計數器應減1,直到為0。

h) 成功接收一個幀后(接收到 ACK 時隙沒有錯誤并且成功ACK 位的發(fā)送),接收錯誤計數器應減 1,如果它介于1和127。如果接收錯誤計數器為0,則應保持為零 (0),如果它大于127,則應將其設置為介于119和127。

3 什么是CAN協議中的故障限制

故障限制是一種檢查機制,可以區(qū)分短時干擾(例如電纜的噪聲耦合到傳輸介質)和永久性故障(例如,節(jié)點發(fā)生故障并干擾總線). CAN通信節(jié)點的狀態(tài)分為暫時錯誤(Error active和Error Passive)和永久性故障(Bus Off);

  1. 永久性故障節(jié)點自動脫離總線,防止網絡鎖定;Bus Off恢復需要滿足于以下兩個條件:

    • 在bus off發(fā)生后,總線上已經檢測到了128次11個連續(xù)的隱性位(邏輯'1');

    • 用戶程序請求恢復,通常MCU中的CAN控制器都可以支持自動恢復和手動恢復兩種方式。CAN總線的bus off恢復需要滿足整車的網絡管理規(guī)范。

  2. 處于暫時錯誤(Error active和Error Passive)狀態(tài)的CAN 2.0總線節(jié)點,其狀態(tài)可以根據其發(fā)送錯誤計數器(TEC)和接收錯誤計數器(REC)值的變化,自動切換,而進入永久性故障(Bus Off))狀態(tài)的節(jié)點,必須進入重新初始化才能恢復:

圖片

因此,節(jié)點可能處于以下三種可能的錯誤狀態(tài)之一:

錯誤活動狀態(tài)。錯誤被動狀態(tài)。錯誤總線關閉狀態(tài)。

圖片

1. CAN協議中的錯誤主動狀態(tài)

當CAN設備通電時,它以錯誤活動狀態(tài)啟動。處于錯誤活動狀態(tài)的設備通??梢詤⑴cCAN通信。它還會在檢測到錯誤時傳輸主動錯誤標志。此主動錯誤標志(表示主導 0 位序列)會導致當前幀傳輸中止,從而導致同一消息的后續(xù)重新傳輸。

圖片

其中兩個錯誤計數器(TEC 和 REC)在錯誤活動狀態(tài)下都小于 128。它完全參與總線通信,并通過傳輸活動錯誤幀來發(fā)出錯誤信號。這包括 6 個主導位的序列,后跟 8 個隱性位,所有其他節(jié)點都使用適當的錯誤標志進行響應,以響應違反位填充規(guī)則。圖片

2. CAN協議中的錯誤被動狀態(tài)

如果發(fā)送錯誤計數器或接收錯誤計數器大于127,CAN設備將進入錯誤被動狀態(tài)。處于錯誤被動狀態(tài)的設備仍然可以參與通信,但在檢測到任何錯誤時會傳輸被動錯誤標志。此被動錯誤標志(隱性 1 位序列)通常不會中止其他設備(如錯誤主動幀)傳輸的幀。

此外,錯誤被動節(jié)點必須在消息傳輸后等待額外的時間(Suspend Transmission Field,ITM后的 8 個隱性位),然后才能啟動新數據。

圖片

3. CAN協議中的總線關閉狀態(tài)

如果CAN控制器的發(fā)送誤差計數器超過255,則進入總線關閉狀態(tài)。它與總線斷開連接(使用內部邏輯),不再參與總線活動。簡單地說,我們可以說物理上與總線連接和邏輯上斷開連接。為了重新連接協議控制器,必須執(zhí)行Bus Off recovery sequence。這通常涉及主機系統(tǒng)對CAN控制器的重新初始化和配置,之后它將等待(128 * 11)隱性位時間,然后再開始通信。

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多