CAN總線錯誤
介紹
在本系列文章中,我們將為您詳細介紹CAN總線錯誤的相關知識,包括CAN總線錯誤的基礎概念、CAN總線錯誤的類型、CAN錯誤幀和CAN節(jié)點錯誤狀態(tài),并通過實際的應用測試生成并記錄CAN錯誤。
什么是CAN總線錯誤?
控制器局域網絡(Controller Area Network, CAN)是當今汽車和工業(yè)自動化系統(tǒng)的重要標準??煽啃允荂AN總線協(xié)議的核心優(yōu)勢之一,這使其成為安全關鍵應用的理想選擇。但值得注意的是,錯誤處理對CAN的穩(wěn)健性來說至關重要。
CAN總線錯誤的發(fā)生可能有多種原因,比如電纜故障、噪聲、不匹配的終端電阻、CAN節(jié)點故障等。識別、分類和解決此類CAN錯誤是確保整個CAN系統(tǒng)持久性能的關鍵。錯誤處理可以識別和拒絕錯誤的信息,使發(fā)送者能夠重新傳輸信息。此外,該過程有助于識別和斷開持續(xù)傳輸錯誤信息的CAN節(jié)點。
CAN錯誤處理如何工作?
錯誤處理是CAN標準和每個CAN控制器的內置部分。換句話說,每個CAN節(jié)點都以相同的方式處理故障識別和限制。下面我們做了一個簡單的說明性示例:
具體步驟示例
1CAN節(jié)點1將消息傳輸?shù)紺AN總線-并讀取它發(fā)送的每一位,在這樣做的過程中,它發(fā)現(xiàn)發(fā)送顯性的一位被讀取為隱性
2這是一個“位錯誤”,節(jié)點1會引發(fā)一個活動錯誤標志以通知其他節(jié)點,實際上,這意味著節(jié)點1將6個顯性位序列發(fā)送到總線上,反過來,6個顯性位被其他節(jié)點視為“位填充錯誤”
3作為響應,節(jié)點2和3同時引發(fā)活動錯誤標志,此引發(fā)的錯誤標志序列構成“CAN錯誤幀”的一部分
4CAN節(jié)點1的發(fā)送器將其“發(fā)送錯誤計數(shù)器”(TEC)增加8,CAN節(jié)點2和3將其“接收錯誤計數(shù)器”(REC)增加1,CAN節(jié)點1自動重新傳輸消息。結果節(jié)點1將其TEC減少1,節(jié)點2和3將其REC減少1
CAN錯誤幀
在上述示例中,CAN節(jié)點“引發(fā)活動錯誤標志”,從而創(chuàng)建“錯誤幀”以響應檢測到的CAN錯誤。為了理解它是如何工作的,讓我們首先看一個“正常”的CAN幀(沒有錯誤):
請注意,我們突出顯示了CAN幀中的“位填充”。位填充是CAN標準的一個微妙但重要的部分。基本上它規(guī)定,每當CAN節(jié)點發(fā)送相同邏輯電平(顯性或隱性)的五個位時,它必須發(fā)送相反電平的一個位。接收CAN節(jié)點會自動刪除這個額外的位。此過程有助于確保網絡的持續(xù)同步。
根據(jù)前面的示例,當CAN節(jié)點1在CAN消息傳輸期間檢測到錯誤時,它會立即傳輸相同邏輯電平的6位序列——也稱為引發(fā)活動錯誤標志。
正如前文所述,這樣的序列違反了位填充規(guī)則——也稱為“位填充錯誤”。此外,此錯誤對網絡上的所有CAN節(jié)點都是可見的(與導致此錯誤標志出現(xiàn)的“位錯誤”相反)。因此,錯誤標志的增加可以被視為一種“全局性”錯誤發(fā)現(xiàn)的方式,確保通知每個CAN節(jié)點。
請注意,其他CAN節(jié)點會將活動錯誤標志視為位填充錯誤。作為響應,它們還會引發(fā)一個活動錯誤標志。正如我們后面將解釋的,區(qū)分錯誤標志很重要。特別是,第一個錯誤標志(來自“發(fā)現(xiàn)”節(jié)點)通常被稱為“主要”活動錯誤標志,而后續(xù)“反應”節(jié)點的錯誤標志被稱為“次要”活動錯誤標志(s)。
CAN錯誤幀示例
示例1
6位錯誤標志
在這里,所有CAN節(jié)點同時發(fā)現(xiàn)CAN報文中存在錯誤并同時發(fā)出錯誤標志。結果是錯誤標志全部重疊并且顯性位的總序列總共持續(xù)6位。在這種情況下,所有CAN節(jié)點都將自己視為“發(fā)現(xiàn)”CAN節(jié)點。
同時發(fā)現(xiàn)這種類型的錯誤幀在實踐中不太常見。但是,它可能是由于格式錯誤(例如CRC定界符是顯性而不是隱性)或CAN發(fā)送器在寫入CRC字段期間遇到位錯誤而發(fā)生的。
示例2
12位錯誤標志
在本示例中,CAN節(jié)點1傳輸顯性位,但將其讀取為隱性-這意味著它發(fā)現(xiàn)了位錯誤。它立即發(fā)送6個顯性位的序列。其他節(jié)點僅在讀取完整的6位后才發(fā)現(xiàn)位填充錯誤,之后它們同時提高錯誤標志,從而產生隨后的6個顯性位序列-即總共12個。
示例3
9位錯誤標志
在本示例中,當CAN節(jié)點1發(fā)現(xiàn)位錯誤并開始發(fā)送6個顯性位時,它已經發(fā)送了3個顯性位序列。一旦通過主要活動錯誤標志的一半,節(jié)點2和3識別位填充錯誤(由于3個初始顯性位后面跟著另外3個顯性位)并開始提高它們的錯誤標志。結果是來自錯誤標志的顯性位序列變?yōu)?位長。
上述引發(fā)錯誤標志的邏輯反映在我們所謂的“活動”CAN錯誤幀中。請?zhí)貏e注意各個節(jié)點引發(fā)的次要錯誤標志如何相互重疊——以及主要和次要標志也可能如何重疊。結果是來自引發(fā)錯誤標志的主要位序列可能是6到12位長。
該序列始終以8個隱性位序列終止,標志著錯誤幀的結束。實際上,活動錯誤幀可能在錯誤CAN幀中的不同位置“開始”,這取決于何時發(fā)現(xiàn)錯誤。然而,結果將是相同的:所有節(jié)點都丟棄錯誤的CAN幀,發(fā)送節(jié)點可以嘗試重新發(fā)送失敗的消息。
被動錯誤標志
如果CAN節(jié)點已從其默認的“活動”狀態(tài)轉變?yōu)椤氨粍印睜顟B(tài),那么它將只能引發(fā)所謂的“被動錯誤標志”。被動錯誤標志是6個隱性位的序列。在這種情況下,區(qū)分由發(fā)送節(jié)點和接收節(jié)點引發(fā)的被動錯誤標志是相關的。
示例4
發(fā)送器是被動錯誤
如圖所示,如果發(fā)送器(例如我們示例中的CAN節(jié)點1)引發(fā)被動錯誤標志(例如響應位錯誤),這將對應于6個隱性位的連續(xù)序列。這又被所有CAN節(jié)點檢測為位填充錯誤。假設其他CAN節(jié)點仍處于其錯誤活動狀態(tài),它們將引發(fā)6個顯性位的活動錯誤標志。換言之,無源發(fā)送器仍然可以“傳達”CAN幀是錯誤的。
示例5
接收器是被動錯誤
相反,如果接收器產生被動錯誤標志,這實際上對總線上的所有其他CAN節(jié)點“不可見”(因為任何顯性位都勝過隱性位序列)。實際上,這意味著錯誤被動接收器不再具有破壞其他CAN節(jié)點傳輸?shù)膸哪芰Α?/p>
未完待續(xù)
虹科在工業(yè)通訊總線行業(yè)深耕十余年,為客戶提供CAN卡、CAN數(shù)據(jù)記錄儀、數(shù)據(jù)采集模塊、CAN網關和轉換器等硬件設備,以及PCAN-Explore 6等軟件。深厚的技術積累和優(yōu)秀的技術服務能力是眾多客戶選擇虹科的理由,歡迎隨時通過sales@hkaco.com聯(lián)系虹科。
原文標題:虹科干貨 | 帶你全面認識“CAN總線錯誤”(一)——CAN總線錯誤與錯誤幀
文章出處:【微信公眾號:廣州虹科電子科技有限公司】歡迎添加關注!文章轉載請注明出處。
-
控制器
+關注
關注
112文章
15879瀏覽量
175343 -
CAN總線
+關注
關注
145文章
1898瀏覽量
130333 -
虹科電子
+關注
關注
0文章
572瀏覽量
14131
原文標題:虹科干貨 | 帶你全面認識“CAN總線錯誤”(一)——CAN總線錯誤與錯誤幀
文章出處:【微信號:Hongketeam,微信公眾號:廣州虹科電子科技有限公司】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論