加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

【技術分享】一文讀懂CAN控制器錯誤處理的原理

04/25 17:32
3127
閱讀需 6 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

CAN通訊的錯誤幀到底是如何被界定的?本文帶你輕松了解!

錯誤標定

檢測到錯誤條件的站通過發(fā)送錯誤標志指示錯誤。對于“錯誤主動”的節(jié)點,錯誤信息為“主動錯誤標志”,對于“錯誤被動”的節(jié)點,錯誤信息為“被動錯誤標志”。站檢測到無論是位錯誤、填充錯誤、形式錯誤,還是應答錯誤,這個站會在下一位時發(fā)出錯誤標志信息。

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

圖1 CRC錯誤幀

? 故障界定

至于故障界定,單元的狀態(tài)可能為以下三種之一:“錯誤主動”、“錯誤被動”、“總線關閉”。

1. “錯誤主動”的單元可以正常地參與總線通訊并在錯誤被檢測到時發(fā)出主動錯誤標志。

2. “錯誤被動”的單元不允許發(fā)送主動錯誤標志。“錯誤被動”的單元參與總線通訊,在錯誤被檢測到時只發(fā)出被動錯誤標志。而且,發(fā)送以后,“錯誤被動”單元將在初始化下一個發(fā)送之前處于等待狀態(tài)(見“掛起發(fā)送”)。

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

三個狀態(tài)的轉換方式如圖2所示:

圖2 CAN狀態(tài)轉換圖

在每一總線單元里使用兩種計數(shù)以便故障界定:?發(fā)送錯誤計數(shù)、?接收錯誤計數(shù)。

這些計數(shù)按以下規(guī)則改變(注意,在給定的報文發(fā)送期間,可能要用到的規(guī)則不只一個):1. 當接收器檢測到一個錯誤,接收錯誤計數(shù)就加1。在發(fā)送主動錯誤標志或過載標志期間所檢測到的錯誤為位錯誤時,接收錯誤計數(shù)器值不加1。2. 當錯誤標志發(fā)送以后,接收器檢測到的第一個位為“顯性”時,接收錯誤計數(shù)值加8。3. 當發(fā)送器發(fā)送一錯誤標志時,發(fā)送錯誤計數(shù)器值加8。

    • 例外情況1:發(fā)送器為“錯誤被動”,并檢測到一應答錯誤(注:此應答錯誤由檢測不到一“顯性”ACK 以及當發(fā)送被動錯誤標志時檢測不到一“顯性”位而引起)。例外情況2:發(fā)送器因為填充錯誤而發(fā)送錯誤標志(注:此填充錯誤發(fā)生于仲裁期間。引起填充錯誤是由于:填充位〈填充位〉位于RTR位之前,并已作為“隱性”發(fā)送,但是卻被監(jiān)視為“顯性”)。
    例外情況1和例外情況2時,發(fā)送錯誤計數(shù)器值不改變。

4. 發(fā)送主動錯誤標志或過載標志時,如果發(fā)送器檢測到位錯誤,則發(fā)送錯誤計數(shù)器值加8。

5.?當發(fā)送主動錯誤標志或過載標志時,如果接受器檢測到位錯誤(位錯誤),則接收錯誤計數(shù)器值加8。6. 在發(fā)送主動錯誤標志、被動錯誤標志或過載標志以后,任何節(jié)點最多容許7個連續(xù)的 “顯性”位。以下的情況,每一發(fā)送器將它們的發(fā)送錯誤計數(shù)值加8,及每一接收器的接收錯誤計數(shù)值加8:

    當檢測到第14個連續(xù)的“顯性”位后;在檢測到第8個跟隨著被動錯誤標志的連續(xù)的“顯性”?位以后;在每一附加的8個連續(xù)“顯性”位順序之后。

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

8. 如果接收錯誤計數(shù)值介于1和127之間,在成功地接收到報文后(直到應答間隙接收沒有錯誤,并成功地發(fā)送了ACK位),接收錯誤計數(shù)器值減1。如果接收錯誤計數(shù)器值是0,則它保持0,如果大于127,則它會設置一個介于119到127之間值。9. 當發(fā)送錯誤計數(shù)器值等于或超過128時,或當接收錯誤計數(shù)器值等于或超過128時,節(jié)點為“錯誤被動”。讓節(jié)點成為“錯誤被動”的錯誤條件致使節(jié)點發(fā)出主動錯誤標志。10. 當發(fā)送錯誤計數(shù)器值大于或等于256時,節(jié)點為“總線關閉”。11. 當發(fā)送錯誤計數(shù)器值和接收錯誤計數(shù)器值都小于或等于127時,“錯誤被動”的節(jié)點重新變?yōu)椤板e誤主動”。12. 在總線監(jiān)視到128次出現(xiàn)11個連續(xù)“隱性”位之后,“總線關閉”的節(jié)點可以變成“錯誤主動”(不再是“總線關閉”),它的錯誤計數(shù)值也被設置為0。

備注1:

一個大約大于96的錯誤計數(shù)值顯示總線被嚴重干擾。最好能夠預先采取措施測試這個條件。

備注2:

起動/睡眠:如果起動期間內只有1個節(jié)點在線,以及如果這個節(jié)點發(fā)送一些報文,則將不會有應答,并檢測到錯誤和重復報文。由此,節(jié)點會變?yōu)椤板e誤被動”,而不是“總線關閉”。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據手冊 ECAD模型 風險等級 參考價格 更多信息
KSZ9567RTXI 1 Microchip Technology Inc IC ETHERNET SWITCH 7PORT 128TQFP

ECAD模型

下載ECAD模型
$15.08 查看
TJA1043TKY 1 NXP Semiconductors TJA1043 - High-speed CAN transceiver SON 14-Pin

ECAD模型

下載ECAD模型
$1.8 查看
TJA1042T/1J 1 NXP Semiconductors TJA1042 - High-speed CAN transceiver with Standby mode SOIC 8-Pin

ECAD模型

下載ECAD模型
$1.57 查看
致遠電子

致遠電子

廣州致遠電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術認證企業(yè),廣州市高端工控測量儀器工程技術研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術認證企業(yè),廣州市高端工控測量儀器工程技術研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關推薦

電子產業(yè)圖譜