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

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

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

科普系列:CAN總線錯(cuò)誤幀及排查方法簡(jiǎn)介

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


作者 | 蒹葭小編 | 吃不飽

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

位錯(cuò)誤

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

格式錯(cuò)誤

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

ACK錯(cuò)誤

發(fā)送節(jié)點(diǎn)在自身發(fā)送的報(bào)文的ACK位檢測(cè)到隱性時(shí),會(huì)認(rèn)為沒(méi)有其他節(jié)點(diǎn)接收到此條報(bào)文,即為ACK錯(cuò)誤。d410c578-b231-11ed-ad0d-dac502259ad0.png圖4ACK檢測(cè)

填充錯(cuò)誤

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

CRC錯(cuò)誤

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

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

02實(shí)車上出現(xiàn)錯(cuò)誤幀的主要原因
對(duì)于實(shí)車而言出現(xiàn)錯(cuò)誤幀主要可能是因?yàn)橐韵聨追N原因:終端電阻不匹配:終端電阻用以匹配電纜的阻抗特性,減少信號(hào)的反射,當(dāng)終端電阻與總線的阻抗不匹配時(shí),產(chǎn)生的反射現(xiàn)象就會(huì)較為嚴(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 不同電阻對(duì)波形的影響
電容對(duì)波形的影響:電容不匹配會(huì)影響電平上升下降沿的時(shí)間,進(jìn)而影響采樣時(shí)的結(jié)果??偩€電容過(guò)大,會(huì)導(dǎo)致放電時(shí)間增加,下降沿時(shí)間會(huì)增加,影響最后采樣的結(jié)果。
d4c69bb4-b231-11ed-ad0d-dac502259ad0.pngd4d78992-b231-11ed-ad0d-dac502259ad0.png

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

先判斷終端節(jié)點(diǎn)是否在線,加載DBC來(lái)判斷是否有終端節(jié)點(diǎn)的報(bào)文,或者用萬(wàn)用表測(cè)量終端電阻阻值是否正確。

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

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


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

排查錯(cuò)誤幀出現(xiàn)時(shí),對(duì)應(yīng)的報(bào)文是否有固定的ID,或者是固定的節(jié)點(diǎn)。

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

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

圖11 優(yōu)先級(jí)對(duì)錯(cuò)誤幀的影響


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

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

    關(guān)注

    57

    文章

    2901

    瀏覽量

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

    關(guān)注

    10

    文章

    2958

    瀏覽量

    89491
收藏 1人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何評(píng)估CAN總線信號(hào)質(zhì)量

    網(wǎng)絡(luò)中,數(shù)據(jù)通過(guò)雙絞線上的差分信號(hào)傳輸。信號(hào)質(zhì)量直接影響節(jié)點(diǎn)正確解讀數(shù)據(jù)的能力。信號(hào)質(zhì)量差可能表現(xiàn)為: 位錯(cuò)誤 :由于噪聲或信號(hào)失真導(dǎo)致的位誤判。 錯(cuò)誤CAN
    發(fā)表于 06-07 08:46

    CAN總線故障排查:從問(wèn)題到解決的實(shí)戰(zhàn)案例

    視頻推薦在工業(yè)現(xiàn)場(chǎng)的煤安監(jiān)控網(wǎng)絡(luò)中,CAN總線通信常因復(fù)雜環(huán)境出現(xiàn)數(shù)據(jù)丟失問(wèn)題。本文以一起煤安監(jiān)控網(wǎng)絡(luò)中CAN總線數(shù)據(jù)丟失的故障排查案例,簡(jiǎn)
    的頭像 發(fā)表于 02-28 11:37 ?768次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>故障<b class='flag-5'>排查</b>:從問(wèn)題到解決的實(shí)戰(zhàn)案例

    CAN總線十萬(wàn)個(gè)為什么 | 做好這幾點(diǎn),總線通訊不再異常

    導(dǎo)讀在當(dāng)今的工業(yè)和汽車電子領(lǐng)域,CAN總線的應(yīng)用極為廣泛,但錯(cuò)誤問(wèn)題卻常常困擾著工程師們。本文將通過(guò)一個(gè)真實(shí)的案例,深入探討CAN
    的頭像 發(fā)表于 02-14 11:37 ?538次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>十萬(wàn)個(gè)為什么 | 做好這幾點(diǎn),<b class='flag-5'>總線</b>通訊不再異常

    CAN錯(cuò)誤的表現(xiàn)形式#汽車總線 #CAN #CANoe

    CAN
    北匯信息POLELINK
    發(fā)布于 :2025年01月22日 16:23:53

    基于Vector工具進(jìn)行CAN協(xié)議錯(cuò)誤的分析實(shí)踐

    廣播發(fā)送的短結(jié)構(gòu),還體現(xiàn)在其錯(cuò)誤檢測(cè)機(jī)制上。通過(guò)總線數(shù)據(jù)以及總線波形來(lái)分析總線故障時(shí),CAN協(xié)
    的頭像 發(fā)表于 01-15 10:03 ?513次閱讀
    基于Vector工具進(jìn)行<b class='flag-5'>CAN</b>協(xié)議<b class='flag-5'>錯(cuò)誤</b><b class='flag-5'>幀</b>的分析實(shí)踐

    CAN錯(cuò)誤格式與錯(cuò)誤分類#汽車總線 #CAN #CANoe

    汽車總線
    北匯信息POLELINK
    發(fā)布于 :2025年01月13日 09:44:37

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

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

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

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

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

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

    CAN總線常見(jiàn)錯(cuò)誤碼及其解決方法

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

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

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

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

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

    can標(biāo)準(zhǔn)和擴(kuò)展的區(qū)別

    CAN(Controller Area Network)是一種用于汽車和工業(yè)領(lǐng)域的通信協(xié)議,它允許多個(gè)設(shè)備在同一總線上進(jìn)行通信。CAN協(xié)議有兩種類型:標(biāo)準(zhǔn)
    的頭像 發(fā)表于 07-24 15:20 ?3370次閱讀

    can網(wǎng)絡(luò)數(shù)據(jù)的特點(diǎn)

    一、引言 CAN協(xié)議簡(jiǎn)介CAN(Controller Area Network)是一種用于汽車電子和工業(yè)自動(dòng)化等領(lǐng)域的串行通信協(xié)議,由德國(guó)博世公司開(kāi)發(fā)。CAN協(xié)議以其高可靠性、高速
    的頭像 發(fā)表于 07-24 15:18 ?754次閱讀

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

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

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品