0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

科普系列:CAN總線錯誤幀及排查方法簡介

北匯信息POLELINK ? 2023-02-23 15:11 ? 次閱讀


作者 | 蒹葭小編 | 吃不飽

CAN幀有多種格式,錯誤幀作為CAN幀中獨特的一種,了解其作用,類型與產(chǎn)生原因,對于進行測試以及開發(fā)有很大的幫助,本文將對錯誤幀的相關(guān)基礎(chǔ)知識以及后續(xù)的分析排查進行介紹。
01錯誤幀的基礎(chǔ)知識錯誤幀的作用錯誤幀是CAN總線用于進行錯誤通知的報文,可以將任何一個節(jié)點發(fā)現(xiàn)的錯誤通知給其他節(jié)點,包括發(fā)送節(jié)點;進而丟棄錯誤的報文,發(fā)送節(jié)點再進行報文的重新發(fā)送,保證傳遞信息的準(zhǔn)確性。
d35dfa92-b231-11ed-ad0d-dac502259ad0.gif錯誤類型
d3a84886-b231-11ed-ad0d-dac502259ad0.png圖1CAN的分層體系結(jié)構(gòu)
首先,如上圖所示,按照分層的理念,CAN的錯誤檢測和錯誤信號的發(fā)送都處于二層,即數(shù)據(jù)鏈路層,因此,錯誤檢測所檢測的報文也是檢測數(shù)據(jù)鏈路層的報文。其次,當(dāng)總線上的幀出現(xiàn)錯誤時,節(jié)點就會發(fā)出錯誤幀,而錯誤也有多種類型:

位錯誤

位錯誤是發(fā)送節(jié)點在發(fā)送數(shù)據(jù),進行回讀,檢測到總線上的數(shù)據(jù)與自身發(fā)出的數(shù)據(jù)不同時,發(fā)出的錯誤。由于CAN的仲裁機制和ACK應(yīng)答機制,在仲裁場和ACK處發(fā)出隱性位,而回讀到顯性位時并不會認(rèn)為是位錯誤。d3c5a34a-b231-11ed-ad0d-dac502259ad0.png圖2位檢測

格式錯誤

格式錯誤是在固定格式的位場處檢測到非法位,例如:ACK界定符固定是一個隱性位,若檢測到顯性,就認(rèn)為是格式錯誤。d3d719a4-b231-11ed-ad0d-dac502259ad0.png圖3格式檢測

ACK錯誤

發(fā)送節(jié)點在自身發(fā)送的報文的ACK位檢測到隱性時,會認(rèn)為沒有其他節(jié)點接收到此條報文,即為ACK錯誤。d410c578-b231-11ed-ad0d-dac502259ad0.png圖4ACK檢測

填充錯誤

CAN的填充機制是每檢測到5個連續(xù)相同的位時,即填充一個相反的位,以提供足夠的跳變沿來進行同步,當(dāng)在總線上有報文時,檢測到連續(xù)的6個相同的位時,即認(rèn)為是填充錯誤。d429e346-b231-11ed-ad0d-dac502259ad0.png圖5填充檢測

CRC錯誤

接收節(jié)點接收到的CRC序列與發(fā)送節(jié)點發(fā)送的CRC序列不同時,即識別為CRC錯誤。d4543966-b231-11ed-ad0d-dac502259ad0.png圖6CRC檢測
d35dfa92-b231-11ed-ad0d-dac502259ad0.gif錯誤幀的類型

上文已經(jīng)說了CAN錯誤的類型,當(dāng)檢測到錯誤時,就會有錯誤幀發(fā)出,處于不同錯誤狀態(tài)的節(jié)點,所發(fā)送的錯誤幀格式是不同的。從錯誤的角度分析,節(jié)點有三種不同的狀態(tài),分別是主動錯誤狀態(tài),被動錯誤狀態(tài)和總線關(guān)閉狀態(tài)。并有兩種不同的錯誤計數(shù)器,分別是接收錯誤計數(shù)器REC和發(fā)送錯誤計數(shù)器TEC。當(dāng)節(jié)點檢測到錯誤時,會發(fā)出錯誤幀,并增加錯誤計數(shù)器的值,根據(jù)錯誤計數(shù)器的值,節(jié)點會進入不同的狀態(tài)。具體的計數(shù)算法參照 ISO 11898-1。d47a7054-b231-11ed-ad0d-dac502259ad0.png圖7節(jié)點狀態(tài)轉(zhuǎn)換圖
當(dāng)TEC和REC的值都小于128時,節(jié)點處于主動錯誤狀態(tài)時,節(jié)點發(fā)送的錯誤幀由6個顯性位(主動錯誤標(biāo)志)加8個隱性位(錯誤界定符)組成,共14位。一個節(jié)點發(fā)出錯誤幀,其他節(jié)點識別到后會跟著發(fā)出錯誤幀,由此機制,將一個節(jié)點檢測到的錯誤通知給其他節(jié)點,也能防止其他節(jié)點接收到錯誤的報文。當(dāng)TEC或REC大于127時,節(jié)點處于被動錯誤狀態(tài)時,節(jié)點發(fā)送的錯誤幀由6個隱性位(被動錯誤標(biāo)志)加8個隱性位(錯誤界定符)即14個連續(xù)的隱性位組成,當(dāng)處于被動錯誤狀態(tài)的節(jié)點在接收報文時檢測到錯誤進而發(fā)出的錯誤幀,一定會被正常的報文或者其他節(jié)點的錯誤幀覆蓋掉。只有當(dāng)處于被動錯誤狀態(tài)的節(jié)點在主動發(fā)出報文,發(fā)出的錯誤幀才會被其他節(jié)點正常檢測到并觸發(fā)其他節(jié)點發(fā)出錯誤幀。當(dāng)TEC大于255時,節(jié)點處于總線關(guān)閉狀態(tài)(busoff)時,節(jié)點會停止收發(fā)報文,直到有用戶請求(如:重啟)或總線連續(xù)128次出現(xiàn)11個連續(xù)的隱性位時,節(jié)點重新恢復(fù)到主動錯誤的狀態(tài)??偩€關(guān)閉狀態(tài)主要是為了防止一個節(jié)點出現(xiàn)故障或持續(xù)被干擾時,不斷發(fā)出錯誤幀,從而影響其他節(jié)點的正常收發(fā)報文。
綜上,錯誤幀按具體格式分類只有兩類,即6個顯性0 + 8個隱性1和6個隱性1 + 8個隱性1兩種。當(dāng)一個節(jié)點連續(xù)檢測到多個錯誤,進入到被動錯誤模式時,此時很有可能是此節(jié)點出了問題或者受到干擾,這個時候這個節(jié)點檢測出的錯誤可能已經(jīng)不被信任,所以處于被動錯誤模式的節(jié)點發(fā)出的錯誤幀是14個隱性位,可以被正常報文或正常的錯誤幀覆蓋掉。

02實車上出現(xiàn)錯誤幀的主要原因
對于實車而言出現(xiàn)錯誤幀主要可能是因為以下幾種原因:終端電阻不匹配:終端電阻用以匹配電纜的阻抗特性,減少信號的反射,當(dāng)終端電阻與總線的阻抗不匹配時,產(chǎn)生的反射現(xiàn)象就會較為嚴(yán)重,影響結(jié)果。
d48e63f2-b231-11ed-ad0d-dac502259ad0.png總線電阻75Ωd4a0fd1e-b231-11ed-ad0d-dac502259ad0.png總線電阻40Ωd4b1bdac-b231-11ed-ad0d-dac502259ad0.png總線電阻60Ω圖8 不同電阻對波形的影響
電容對波形的影響:電容不匹配會影響電平上升下降沿的時間,進而影響采樣時的結(jié)果??偩€電容過大,會導(dǎo)致放電時間增加,下降沿時間會增加,影響最后采樣的結(jié)果。
d4c69bb4-b231-11ed-ad0d-dac502259ad0.pngd4d78992-b231-11ed-ad0d-dac502259ad0.png

圖9 不同電容對波形的影響
支線長度的影響:支線長度過長,會對總線的阻抗匹配產(chǎn)生影響,形成的反射也會更嚴(yán)重,進而影響總線上的波形。采樣點不合適的節(jié)點。當(dāng)總線上的節(jié)點的采樣點位置設(shè)置的不一致,有可能會出現(xiàn)錯誤幀。電磁干擾比較大的電源,較大的電磁干擾會影響總線的波形,進而影響總線上的報文,出現(xiàn)錯誤幀。
總結(jié):實車上出現(xiàn)錯誤幀一般是波形較差,波形的波動,進而影響采樣的結(jié)果,出現(xiàn)錯誤幀。
03錯誤幀的排查方法示例
進行錯誤幀的原因排查,觀察錯誤幀的類型等信息,可借助Vector公司軟件工具CANoe、示波器、萬用表等。在CANoe的Trace窗口中可以看到報文的詳細(xì)信息,錯誤類型等。實車上出現(xiàn)錯誤幀時,綜合出現(xiàn)錯誤幀的原因,如下部分典型排查方法可以參考。

先判斷終端節(jié)點是否在線,加載DBC來判斷是否有終端節(jié)點的報文,或者用萬用表測量終端電阻阻值是否正確。

d4f0aac6-b231-11ed-ad0d-dac502259ad0.png

圖10 判斷節(jié)點是否在線


確認(rèn)錯誤幀出現(xiàn)的頻率,是否為周期型或僅在固定的時間段內(nèi)出現(xiàn)。

排查錯誤幀出現(xiàn)時,對應(yīng)的報文是否有固定的ID,或者是固定的節(jié)點。

根據(jù)錯誤幀的信息排查,是否與正常報文相關(guān);同時再結(jié)合重傳和報文的優(yōu)先級綜合分析。

d50e0cf6-b231-11ed-ad0d-dac502259ad0.png

圖11 優(yōu)先級對錯誤幀的影響


04結(jié)語
通過上述的介紹,相信讀者對于錯誤幀的類型和原因有了一定的了解。對于測試而言,了解錯誤幀的類型,進而分析錯誤出現(xiàn)的原因,對于測試中出現(xiàn)的問題以及對測試結(jié)果的分析,都是可以參考的方法。北匯信息專注于汽車電子網(wǎng)絡(luò)通信、診斷刷寫、邏輯功能測試開發(fā)服務(wù),期待進一步溝通交流、共享合作的機會。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2754

    瀏覽量

    463717
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2881

    瀏覽量

    88090
收藏 人收藏

    評論

    相關(guān)推薦

    CAN總線與LIN總線的區(qū)別

    不同的數(shù)據(jù)傳輸速率,從最低的10 kbps到最高的1 Mbps。 拓?fù)浣Y(jié)構(gòu): 通常采用雙絞線結(jié)構(gòu),支持多點通信。 錯誤檢測: 具有強大的錯誤檢測機制,包括位錯誤、
    的頭像 發(fā)表于 11-12 10:13 ?1451次閱讀

    CAN總線通信中的數(shù)據(jù)結(jié)構(gòu)解析

    CAN總線由Bosch公司在1980年代開發(fā),旨在為汽車電子系統(tǒng)提供一個可靠的通信網(wǎng)絡(luò)。隨著技術(shù)的發(fā)展,CAN總線已經(jīng)被廣泛應(yīng)用于各種工業(yè)和自動化領(lǐng)域。 2.
    的頭像 發(fā)表于 11-12 10:12 ?621次閱讀

    CAN總線的主要優(yōu)勢與不足

    具有強大的錯誤檢測能力,包括位錯誤、錯誤和CRC錯誤等。一旦發(fā)現(xiàn)錯誤,系統(tǒng)可以自動重傳信息,確
    的頭像 發(fā)表于 11-12 10:10 ?916次閱讀

    CAN總線常見錯誤碼及其解決方法

    錯誤碼,這些錯誤碼可以幫助我們診斷和解決問題。 1. 錯誤(Error Frame) 錯誤碼 :當(dāng)CA
    的頭像 發(fā)表于 11-12 10:05 ?2111次閱讀

    CAN總線錯誤狀態(tài)的種類

    CAN總線錯誤狀態(tài)的種類主要包括以下幾種,每種狀態(tài)都反映了CAN總線網(wǎng)絡(luò)中節(jié)點或總線的不同
    的頭像 發(fā)表于 09-03 14:17 ?1399次閱讀

    can標(biāo)準(zhǔn)和擴展能否共存

    CAN(Controller Area Network)是一種用于汽車和工業(yè)自動化領(lǐng)域的現(xiàn)場總線通信協(xié)議。CAN協(xié)議具有多種格式,包括標(biāo)準(zhǔn)
    的頭像 發(fā)表于 07-24 15:24 ?1882次閱讀

    CAN總線的數(shù)據(jù)結(jié)構(gòu)

    CAN(Controller Area Network)總線是一種用于汽車和工業(yè)自動化領(lǐng)域的通信協(xié)議。它具有高可靠性、實時性和靈活性,廣泛應(yīng)用于各種電子控制單元(ECU)之間的通信。 CAN
    的頭像 發(fā)表于 07-24 15:06 ?915次閱讀

    一文讀懂CAN通訊錯誤

    CAN總線通信技術(shù)廣泛應(yīng)用于多個行業(yè),是每個總線設(shè)計工程師必學(xué)的一個通訊網(wǎng)絡(luò)。然而,對于CAN通信中的錯誤
    的頭像 發(fā)表于 06-12 08:24 ?2718次閱讀
    一文讀懂<b class='flag-5'>CAN</b>通訊<b class='flag-5'>錯誤</b><b class='flag-5'>幀</b>

    CAN總線錯誤及其排查方法簡單介紹#汽車CAN總線?

    CAN總線汽車電子
    北匯信息POLELINK
    發(fā)布于 :2024年03月15日 14:14:40

    CAN總線上可以同時存在標(biāo)準(zhǔn)和擴展嗎?

    今天做實驗,can總線上同時存在標(biāo)準(zhǔn)和擴展,從上位機上觀察到這樣的現(xiàn)象:標(biāo)準(zhǔn)可以正常接收,但是擴展
    發(fā)表于 02-05 07:41

    高速CAN總線和低速CAN總線的特性

    總線的特性。 首先,高速CAN總線是指數(shù)據(jù)傳輸速率較高的CAN總線,其中包括CAN 2.0A和
    的頭像 發(fā)表于 01-31 14:09 ?2772次閱讀

    請問用CAN存儲器存儲的CAN總線數(shù)據(jù)格式有哪些呢?

    請問用CAN存儲器存儲的CAN總線數(shù)據(jù)格式有哪些呢? CAN總線是一種常用于汽車、工業(yè)控制和其
    的頭像 發(fā)表于 01-31 13:46 ?1282次閱讀

    can總線的數(shù)據(jù)中數(shù)據(jù)長度碼和數(shù)據(jù)字節(jié)數(shù)的關(guān)系?

    can總線的數(shù)據(jù)中數(shù)據(jù)長度碼和數(shù)據(jù)字節(jié)數(shù)的關(guān)系? CAN總線是一種常用于數(shù)據(jù)通信的協(xié)議,它使用數(shù)據(jù)
    的頭像 發(fā)表于 01-31 11:31 ?2381次閱讀

    CAN總線的標(biāo)準(zhǔn)和擴展有什么區(qū)別呢?分別適用于什么工況?

    CAN總線的標(biāo)準(zhǔn)和擴展CAN協(xié)議中的兩種類型。
    的頭像 發(fā)表于 01-30 09:41 ?6216次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>的標(biāo)準(zhǔn)<b class='flag-5'>幀</b>和擴展<b class='flag-5'>幀</b>有什么區(qū)別呢?分別適用于什么工況?

    CAN通信協(xié)議中有哪幾種類型?CAN通信中格式的作用

    CAN通信協(xié)議中有四種類型,分別是數(shù)據(jù)、遠(yuǎn)程錯誤和過載
    的頭像 發(fā)表于 01-30 09:18 ?5503次閱讀