一文讀懂CAN節點錯誤管理機製
發布時間:2021-10-19 來源:ZLG 責任編輯:wenwei
【導讀】CAN節點的穩定性、可靠性和安全性得益於其強大的錯誤管理機製。那麼,CAN節點為什麼能感知錯誤?又是如何響應錯誤?您是否能清晰地想象出這一過程?本文將為大家詳細分析CAN節點錯誤管理的工作過程。
節點電路構成
如圖1所示,MCU作為主控製器,完成CAN控製器和功能電路的控製。
圖1 CAN節點組成框圖
CAN控製器是工作於數據鏈路層的器件,集成了CAN規範中數據鏈路層的全部功能,其功能由軟件和硬件共同實現,從設備供應商買回來的CAN控製器已經把相應的邏輯固化在其矽片之中;MCU是工作於應用層的器件,其功能由軟件和硬件共同實現,MCU運行的程序可由設計者靈活設計,以實現CAN節點的特定功能;CAN收發器工作於物理層,其功能完全由硬件實現,其作用是將CAN控製器的邏輯電平轉化為CAN總線的模擬差分信號,以及把總線模擬差分信號轉換成CAN控製器的邏輯電平。
CAN節點的錯誤管理屬於CAN通信規範數據鏈路層的內容,具體來說,錯誤管理是通過MCU和CAN控製器來實施的。可以說,CAN控製器是錯誤管理的基礎設施,我們可以從兩個方麵理解其工作邏輯:一是如何感知錯誤,二是如何響應錯誤。
注:1、本文所說的CAN規範指的是德國BOSCH公司的《CAN Specification Version 2.0》。
節點如何感知錯誤?
如前文所述,節點對總線錯誤的識別是通過CAN控製器來完成的。CAN控製器輸出給收發器發送引腳TX的邏輯信號位會從收發器接收引腳RX接收,這使得CAN控製器可以在發送一個邏輯位期間同時監測總線的實際電平值。CAN控製器檢測總線錯誤原理如圖2所示:
圖2 監測總線錯誤原理圖
如圖2描述,CAN控製器監測一個總線電平的電平值是在采樣點位置進行的,判斷是否出現錯誤是在信息處理時間內完成的。
綜上所述,CAN控製器對錯誤的識別可概括為:無論是作為發送器還是接收器,在采樣點位置成功監測到當前總線的實際電平值後,CAN控製器便按照CAN規範中描述的錯誤管理規則判斷是否出現錯誤。
CAN通信過程中的錯誤類型包括5種,分別是:位錯誤、填充錯誤、CRC錯誤、幀格式錯誤、應答錯誤。接下來分別對5種錯誤的檢測識別過程進行解析。
1、位錯誤
位錯誤是由作為發送器的節點在發送報文期間進行檢測識別的。CAN控製器的程序邏輯發送的電平與監測到總線的實際信號不一致即在此位期間檢測到位錯誤。
例外情況,在仲裁場或應答間隙期間發送一“隱性”位卻監視到一“顯性”位,以及當發送器發送一個被動錯誤標誌但檢測到“顯性”位時,均也不被視為位錯誤,以實現特定的功能。
2、填充錯誤
在CAN幀的位場中,幀起始、仲裁場、控製場、數據場以及CRC序列,均通過位填充的方法編碼。無論何時,發送器隻要檢測到這些位場對應位流裏有5個連續相同值的位,便自動在接著的下一位插入一個補碼位。CAN控製器在監測總線電平值的同時對連續相同的位電平值會進行計數,如果在使用位填充法進行編碼的信息中,出現了第6個連續相同的位電平值時,便檢測到一個填充錯誤。
3、CRC錯誤
CRC錯誤是由作為接收器的節點進行檢測識別的。CRC序列共15位(不包含填充位),其內容由幀起始、仲裁場、控製場、數據場(如果有)的無填充位流計算而來。
CRC序列計算使用CAN規範規定的方法。作為發送器的節點發送CAN報文時CRC序列由規定的計算方法確定,作為接收器的節點從總線上接收完數據場最後一個數據位(沒有數據場時是接收完控製場的最後一個位)後,如果接下來接收到實際的CRC序列與接收器的計算結果不一致,便檢測到CRC錯誤。
4、格式錯誤
節點無論是作為發送器的還是作為接收器均可在監測報文期間檢測識別格式錯誤。由於CAN通信嚴格按照CAN規範定義的幀格式進行報文封裝傳輸,CAN控製器在監測總線電平位時明確知道當前位、後(hou)續(xu)位(wei)屬(shu)於(yu)幀(zhen)格(ge)式(shi)中(zhong)哪(na)個(ge)位(wei)場(chang),以(yi)及(ji)屬(shu)於(yu)位(wei)場(chang)的(de)第(di)幾(ji)個(ge)位(wei),當(dang)接(jie)收(shou)到(dao)一(yi)個(ge)屬(shu)於(yu)幀(zhen)格(ge)式(shi)固(gu)定(ding)形(xing)式(shi)的(de)位(wei)時(shi),如(ru)果(guo)實(shi)際(ji)電(dian)平(ping)值(zhi)與(yu)幀(zhen)格(ge)式(shi)定(ding)義(yi)不(bu)一(yi)致(zhi),則(ze)檢(jian)測(ce)到(dao)一(yi)個(ge)格(ge)式(shi)錯(cuo)誤(wu)。
例外情況,對於接收器來說,幀結束最後的位被置於“不重要”狀態,監測到的幀結束最後一位期間的顯性位不被當作幀錯誤。
5、應答錯誤
應答錯誤是由作為發送器的節點檢測識別的。在發送報文時,隻要在發送應答間隙(隱性)期間所監測到的位不為“顯性”,則發送器會檢測到一個應答錯誤。
注:
1、上述5種錯誤不會相互排斥,也就是說CAN幀中的某個錯誤有可能同屬一種以上的錯誤類型。
2、如上所述,作為發送器或接收器的不同角色時,直接能檢測到的錯誤類型是不一樣的。
節點如何響應錯誤?
CAN規範中規定每個CANkongzhiqizhongshixianyigefasongcuowujishuqiheyigejieshoucuowujishuqi。genjujishuzhibutong,jiedianhuichuyubutongdejiedianzhuangtai,binggenjujishuzhidebianhuajinxingzhuangtaizhuanhuan,zhuangtaizhuanhuanrutu3所示。
圖3 節點轉態轉換圖
當CAN控製器檢測到總線錯誤後通過發送錯誤標誌指示錯誤。對於“錯誤主動”的節點,錯誤標誌表現為“主動錯誤標誌”,對於“錯誤被動”的節點,錯誤標誌表現為“被動錯誤標誌”。
無論檢測到位錯誤、填充錯誤、幀格式錯誤、還是應答錯誤,CAN控製器會在緊鄰的下一位發送錯誤標誌。如果檢測到的錯誤類型是CRC錯誤,錯誤標誌的發送開始於ACK定界符之後的位,即幀結尾。
綜上所述,CAN控製器對錯誤的響應可概括為:根據當前的節點狀態在位流序列相應的位置用錯誤標誌標示錯誤,並按照CAN規範更新錯誤計數值,進行節點狀態轉換。並且是每成功監測到一次錯誤便進行一次響應。
注:
1、由於篇幅有限,關於錯誤計數的詳細規則、節點狀態轉換以及錯誤幀格式等細節均不在本文進行討論,請讀者查閱CAN協議規範。
2、上述分析可知道,錯誤響應的關鍵要素包括錯誤標誌的類型和響應的位置。
錯誤管理機製的作用
錯誤管理機製的作用主要體現在對錯誤的響應過程。
作為發送器發送錯誤標誌時,無論“主動錯誤”還是“被動錯誤”都必然包括6個連續同極性的位,使其他節點也識別到總線錯誤,進而使所有節點都能丟棄當前出錯的幀。
作為接收器發送錯誤標誌時,“主動錯誤”標誌使其他節點也識別到總線錯誤從而使所有節點(包括作為發送器的節點)都能丟棄當前出錯的幀;“被動錯誤”標誌不影響總線通信從而使其他節點都能成功接收當前幀,處於“被動錯誤”狀態的節點屬於“不可信”狀zhuang態tai,其qi檢jian測ce到dao錯cuo誤wu僅jin是shi自zi己ji丟diu棄qi當dang前qian幀zhen,這zhe也ye是shi錯cuo誤wu管guan理li的de靈ling活huo性xing所suo在zai,即ji錯cuo誤wu響xiang應ying並bing不bu是shi嚴yan格ge在zai任ren何he情qing況kuang下xia都dou使shi所suo有you節jie點dian丟diu棄qi同tong一yi幀zhen報bao文wen。
綜(zong)上(shang)所(suo)述(shu),錯(cuo)誤(wu)管(guan)理(li)機(ji)製(zhi)可(ke)以(yi)使(shi)所(suo)有(you)的(de)節(jie)點(dian)同(tong)時(shi)接(jie)收(shou)或(huo)丟(diu)棄(qi)總(zong)線(xian)的(de)同(tong)一(yi)幀(zhen)報(bao)文(wen),又(you)可(ke)以(yi)使(shi)作(zuo)為(wei)接(jie)收(shou)器(qi)的(de)被(bei)動(dong)錯(cuo)誤(wu)狀(zhuang)態(tai)的(de)節(jie)點(dian)僅(jin)自(zi)己(ji)丟(diu)棄(qi)當(dang)前(qian)報(bao)文(wen)而(er)不(bu)影(ying)響(xiang)其(qi)他(ta)節(jie)點(dian)。因(yin)此(ci),錯(cuo)誤(wu)管(guan)理(li)是(shi)實(shi)現(xian)CAN通信數據一致性的機製之一。
總結
CAN節點錯誤管理功能是由CAN節點組成中的CAN控製器負責的,對錯誤管理的工作過程可以從“錯誤識別”和“錯誤響應”兩個方麵進行理解。錯誤管理是實現CAN通信數據的一致性的機製之一。
ZPS-CANFD是致遠電子總線分析儀第二代CAN總線開發輔助工具,適用於CANFD、CAN、LIN總線的測量及測試儀器,支持總線數據的發送和接收,高層協議解析及診斷,能對CANFD、CAN總線物理層電氣信號實時采集和記錄,並附帶有高速模擬通道、通用數字IO及模擬IO,通過提供的硬件接口及軟件功能,用戶能夠便捷地構建總線信號測量與分析、節點功能仿真及測試、網絡可靠性診斷及評估的自動化係統。ZPS-CANFD可實現CAN/CANFD報文和波形的同步監測,可以直觀的定位排查節點錯誤問題,以及更高效的錯誤幹擾等模擬測試。
來源:ZLG致遠儀器,原創:研發部
免責聲明:本文為轉載文章,轉載此文目的在於傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯係小編進行處理。
推薦閱讀:
淩華科技推出邊緣視覺分析軟件開發套件EVA SDK加速邊緣AI視覺
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 從機械執行到智能互動:移遠Q-Robotbox助力具身智能加速落地
- 品英Pickering將亮相2026航空電子國際論壇,展示航電與電池測試前沿方案
- 模擬芯片設計師的噩夢:晶體管差1毫伏就廢了,溫度升1度特性全飄
- 3A大電流僅需3x1.6mm?意法半導體DCP3603重新定義電源設計
- 芯科科技Tech Talks與藍牙亞洲大會聯動,線上線下賦能物聯網創新
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall



