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

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

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

虹科干貨 | 帶你全面認(rèn)識“CAN總線錯誤”(一)——CAN總線錯誤與錯誤幀

虹科智能自動化 ? 2022-05-27 10:39 ? 次閱讀

A simple intro to CAN errors

CAN總線錯誤

在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯誤的相關(guān)知識,包括CAN總線錯誤的基礎(chǔ)概念、CAN總線錯誤的類型、CAN錯誤幀和CAN節(jié)點錯誤狀態(tài),并通過實際的應(yīng)用測試生成并記錄CAN錯誤。

什么是CAN總線錯誤?

控制器局域網(wǎng)絡(luò)(Controller Area Network, CAN)是當(dāng)今汽車和工業(yè)自動化系統(tǒng)的重要標(biāo)準(zhǔn)。可靠性是CAN總線協(xié)議的核心優(yōu)勢之一,這使其成為安全關(guān)鍵應(yīng)用的理想選擇。但值得注意的是,錯誤處理對CAN的穩(wěn)健性來說至關(guān)重要。


CAN總線錯誤的發(fā)生可能有多種原因,比如電纜故障、噪聲、不匹配的終端電阻、CAN節(jié)點故障等。識別、分類和解決此類CAN錯誤是確保整個CAN系統(tǒng)持久性能的關(guān)鍵。錯誤處理可以識別和拒絕錯誤的信息,使發(fā)送者能夠重新傳輸信息。此外,該過程有助于識別和斷開持續(xù)傳輸錯誤信息的CAN節(jié)點。

CAN錯誤處理如何工作?

錯誤處理是CAN標(biāo)準(zhǔn)和每個CAN控制器的內(nèi)置部分。換句話說,每個CAN節(jié)點都以相同的方式處理故障識別和限制。下面我們做了一個簡單的說明性示例:


0f0280f4-dd12-11ec-b80f-dac502259ad0.jpg

具體步驟示例

1

CAN節(jié)點1將消息傳輸?shù)紺AN總線-并讀取它發(fā)送的每一位,在這樣做的過程中,它發(fā)現(xiàn)發(fā)送顯性的一位被讀取為隱性

2

這是一個“位錯誤”,節(jié)點1會引發(fā)一個活動錯誤標(biāo)志以通知其他節(jié)點,實際上,這意味著節(jié)點1將6個顯性位序列發(fā)送到總線上,反過來,6個顯性位被其他節(jié)點視為“位填充錯誤”

3

作為響應(yīng),節(jié)點2和3同時引發(fā)活動錯誤標(biāo)志,此引發(fā)的錯誤標(biāo)志序列構(gòu)成“CAN錯誤幀”的一部分

4

CAN節(jié)點1的發(fā)送器將其“發(fā)送錯誤計數(shù)器”(TEC)增加8,CAN節(jié)點2和3將其“接收錯誤計數(shù)器”(REC)增加1,CAN節(jié)點1自動重新傳輸消息。結(jié)果節(jié)點1將其TEC減少1,節(jié)點2和3將其REC減少1

CAN錯誤幀

在上述示例中,CAN節(jié)點“引發(fā)活動錯誤標(biāo)志”,從而創(chuàng)建“錯誤幀”以響應(yīng)檢測到的CAN錯誤。為了理解它是如何工作的,讓我們首先看一個“正?!钡腃AN幀(沒有錯誤):


0f24c178-dd12-11ec-b80f-dac502259ad0.jpg

請注意,我們突出顯示了CAN幀中的“位填充”。位填充是CAN標(biāo)準(zhǔn)的一個微妙但重要的部分?;旧纤?guī)定,每當(dāng)CAN節(jié)點發(fā)送相同邏輯電平(顯性或隱性)的五個位時,它必須發(fā)送相反電平的一個位。接收CAN節(jié)點會自動刪除這個額外的位。此過程有助于確保網(wǎng)絡(luò)的持續(xù)同步。

根據(jù)前面的示例,當(dāng)CAN節(jié)點1在CAN消息傳輸期間檢測到錯誤時,它會立即傳輸相同邏輯電平的6位序列——也稱為引發(fā)活動錯誤標(biāo)志。

0f466e90-dd12-11ec-b80f-dac502259ad0.jpg

正如前文所述,這樣的序列違反了位填充規(guī)則——也稱為“位填充錯誤”。此外,此錯誤對網(wǎng)絡(luò)上的所有CAN節(jié)點都是可見的(與導(dǎo)致此錯誤標(biāo)志出現(xiàn)的“位錯誤”相反)。因此,錯誤標(biāo)志的增加可以被視為一種“全局性”錯誤發(fā)現(xiàn)的方式,確保通知每個CAN節(jié)點。

請注意,其他CAN節(jié)點會將活動錯誤標(biāo)志視為位填充錯誤。作為響應(yīng),它們還會引發(fā)一個活動錯誤標(biāo)志。正如我們后面將解釋的,區(qū)分錯誤標(biāo)志很重要。特別是,第一個錯誤標(biāo)志(來自“發(fā)現(xiàn)”節(jié)點)通常被稱為“主要”活動錯誤標(biāo)志,而后續(xù)“反應(yīng)”節(jié)點的錯誤標(biāo)志被稱為“次要”活動錯誤標(biāo)志(s)。

0f956266-dd12-11ec-b80f-dac502259ad0.jpg

CAN錯誤幀示例

示例1

6位錯誤標(biāo)志

在這里,所有CAN節(jié)點同時發(fā)現(xiàn)CAN報文中存在錯誤并同時發(fā)出錯誤標(biāo)志。結(jié)果是錯誤標(biāo)志全部重疊并且顯性位的總序列總共持續(xù)6位。在這種情況下,所有CAN節(jié)點都將自己視為“發(fā)現(xiàn)”CAN節(jié)點。

0fb8415a-dd12-11ec-b80f-dac502259ad0.jpg

同時發(fā)現(xiàn)這種類型的錯誤幀在實踐中不太常見。但是,它可能是由于格式錯誤(例如CRC定界符是顯性而不是隱性)或CAN發(fā)送器在寫入CRC字段期間遇到位錯誤而發(fā)生的。

示例2

12位錯誤標(biāo)志

在本示例中,CAN節(jié)點1傳輸顯性位,但將其讀取為隱性-這意味著它發(fā)現(xiàn)了位錯誤。它立即發(fā)送6個顯性位的序列。其他節(jié)點僅在讀取完整的6位后才發(fā)現(xiàn)位填充錯誤,之后它們同時提高錯誤標(biāo)志,從而產(chǎn)生隨后的6個顯性位序列-即總共12個。

0fe55c76-dd12-11ec-b80f-dac502259ad0.jpg

示例3

9位錯誤標(biāo)志

在本示例中,當(dāng)CAN節(jié)點1發(fā)現(xiàn)位錯誤并開始發(fā)送6個顯性位時,它已經(jīng)發(fā)送了3個顯性位序列。一旦通過主要活動錯誤標(biāo)志的一半,節(jié)點2和3識別位填充錯誤(由于3個初始顯性位后面跟著另外3個顯性位)并開始提高它們的錯誤標(biāo)志。結(jié)果是來自錯誤標(biāo)志的顯性位序列變?yōu)?位長。

1038ddb0-dd12-11ec-b80f-dac502259ad0.jpg

上述引發(fā)錯誤標(biāo)志的邏輯反映在我們所謂的“活動”CAN錯誤幀中。請?zhí)貏e注意各個節(jié)點引發(fā)的次要錯誤標(biāo)志如何相互重疊——以及主要和次要標(biāo)志也可能如何重疊。結(jié)果是來自引發(fā)錯誤標(biāo)志的主要位序列可能是6到12位長。

該序列始終以8個隱性位序列終止,標(biāo)志著錯誤幀的結(jié)束。實際上,活動錯誤幀可能在錯誤CAN幀中的不同位置“開始”,這取決于何時發(fā)現(xiàn)錯誤。然而,結(jié)果將是相同的:所有節(jié)點都丟棄錯誤的CAN幀,發(fā)送節(jié)點可以嘗試重新發(fā)送失敗的消息。

被動錯誤標(biāo)志

如果CAN節(jié)點已從其默認(rèn)的“活動”狀態(tài)轉(zhuǎn)變?yōu)椤氨粍印睜顟B(tài),那么它將只能引發(fā)所謂的“被動錯誤標(biāo)志”。被動錯誤標(biāo)志是6個隱性位的序列。在這種情況下,區(qū)分由發(fā)送節(jié)點和接收節(jié)點引發(fā)的被動錯誤標(biāo)志是相關(guān)的。


示例4

發(fā)送器是被動錯誤

如圖所示,如果發(fā)送器(例如我們示例中的CAN節(jié)點1)引發(fā)被動錯誤標(biāo)志(例如響應(yīng)位錯誤),這將對應(yīng)于6個隱性位的連續(xù)序列。這又被所有CAN節(jié)點檢測為位填充錯誤。假設(shè)其他CAN節(jié)點仍處于其錯誤活動狀態(tài),它們將引發(fā)6個顯性位的活動錯誤標(biāo)志。換言之,無源發(fā)送器仍然可以“傳達(dá)”CAN幀是錯誤的。

105fcd3a-dd12-11ec-b80f-dac502259ad0.jpg


示例5

接收器是被動錯誤

相反,如果接收器產(chǎn)生被動錯誤標(biāo)志,這實際上對總線上的所有其他CAN節(jié)點“不可見”(因為任何顯性位都勝過隱性位序列)。實際上,這意味著錯誤被動接收器不再具有破壞其他CAN節(jié)點傳輸?shù)膸哪芰Α?/p>

10b45314-dd12-11ec-b80f-dac502259ad0.jpg

聲明:本文內(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

    文章

    2686

    瀏覽量

    462906
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    文讀懂CAN通訊錯誤

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

    常見的CAN中繼器應(yīng)用錯誤及原因有哪些?

    CAN中繼器在應(yīng)用中可能會遇到些常見的錯誤,這些錯誤可能源于多個方面。
    的頭像 發(fā)表于 05-08 10:16 ?496次閱讀

    文讀懂CAN控制器錯誤處理的原理

    CAN通訊的錯誤到底是如何被界定的?本文帶你輕松了解!錯誤標(biāo)定檢測到錯誤條件的站通過發(fā)送
    的頭像 發(fā)表于 04-26 08:25 ?1420次閱讀
    <b class='flag-5'>一</b>文讀懂<b class='flag-5'>CAN</b>控制器<b class='flag-5'>錯誤</b>處理的原理

    CAN 會收到錯誤的數(shù)據(jù)嗎?

    CAN-bus總線協(xié)議以高穩(wěn)定性,高容錯率而著稱于世,然而仍有很多用戶在使用的時候擔(dān)心CAN會接受到錯誤的信息,在數(shù)據(jù)里增加了CRC校驗的部分,這種做法是否有必要?
    的頭像 發(fā)表于 04-04 08:24 ?339次閱讀
    <b class='flag-5'>CAN</b> 會收到<b class='flag-5'>錯誤</b>的數(shù)據(jù)嗎?

    CAN數(shù)據(jù)傳輸錯誤的常見原因有哪些?

    電源波動或其他電氣問題可能會影響CAN信號的質(zhì)量并導(dǎo)致“錯誤”。例如,波特率不匹配或者節(jié)點沒有初始化,也可能導(dǎo)致沒有ACK(應(yīng)答)信號。
    發(fā)表于 04-02 09:30 ?859次閱讀

    科技術(shù) | PCAN View功能細(xì)講:從實時監(jiān)測到錯誤分析

    相信使用過PCAN工具的朋友都知道PCAN-View這款免費軟件,它具有直觀的用戶界面,可以實時監(jiān)測和分析CAN總線上的數(shù)據(jù),并提供過
    的頭像 發(fā)表于 03-18 13:48 ?947次閱讀
    <b class='flag-5'>虹</b>科技術(shù) | PCAN View功能細(xì)講:從實時監(jiān)測到<b class='flag-5'>錯誤</b><b class='flag-5'>幀</b>分析

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

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

    CAN總線抗干擾的6條“軍規(guī)”

    的6條“軍規(guī)”。在汽油車時代,CAN總線遇到的干擾少之又少,即使有些繼電器和電磁閥的脈沖,也不會有很大影響,稍微進(jìn)行雙絞處理,完全可以實現(xiàn)零錯誤
    的頭像 發(fā)表于 03-05 08:24 ?1071次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>抗干擾的6條“軍規(guī)”

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

    高速CAN總線和低速CAN總線的特性 高速CAN總線和低速C
    的頭像 發(fā)表于 01-31 14:09 ?2334次閱讀

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

    請問用CAN存儲器存儲的CAN總線數(shù)據(jù)格式有哪些呢? CAN總線
    的頭像 發(fā)表于 01-31 13:46 ?1088次閱讀

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

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

    ADM3053在CAN總線上顯示錯誤的信號電平如何解決?

    通過ACK正確確認(rèn)CAN消息。ADM3053后的CAN控制器嘗試發(fā)送主動電平,但ADM3053在CAN總線上保持被動。因此產(chǎn)生了主動錯誤
    發(fā)表于 01-03 09:00

    Coral3568如何軟硬件過濾can及優(yōu)化?

    CAN總線調(diào)試時,根據(jù)數(shù)據(jù)的重要性,接收端可以專注于接收重要消息,提高效率。CAN報文是用個標(biāo)識符或
    的頭像 發(fā)表于 12-08 15:52 ?527次閱讀
    Coral3568如何軟硬件過濾<b class='flag-5'>can</b><b class='flag-5'>幀</b>及優(yōu)化?

    如何用示波器排查CAN的各種錯誤呢?

    如何用示波器排查CAN的各種錯誤呢? 導(dǎo)言: 控制器局域網(wǎng)絡(luò)(Controller Area Network,CAN)是種常用的現(xiàn)場
    的頭像 發(fā)表于 12-07 11:09 ?1008次閱讀