一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深入探討CAN節(jié)點錯誤管理機制

AGk5_ZLG_zhiyua ? 來源:ZLG致遠電子 ? 作者: 研發(fā)部 ? 2021-10-20 09:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

CAN節(jié)點的穩(wěn)定性、可靠性和安全性得益于其強大的錯誤管理機制。那么,CAN節(jié)點為什么能感知錯誤?又是如何響應錯誤?您是否能清晰地想象出這一過程?本文將為大家詳細分析CAN節(jié)點錯誤管理的工作過程。

節(jié)點電路構成

如圖1所示,MCU作為主控制器,完成CAN控制器和功能電路的控制。

6961e90e-30fb-11ec-82a8-dac502259ad0.jpg

圖1 CAN節(jié)點組成框圖

CAN控制器是工作于數(shù)據鏈路層的器件,集成了CAN規(guī)范中數(shù)據鏈路層的全部功能,其功能由軟件和硬件共同實現(xiàn),從設備供應商買回來的CAN控制器已經把相應的邏輯固化在其硅片之中;

MCU是工作于應用層的器件,其功能由軟件和硬件共同實現(xiàn),MCU運行的程序可由設計者靈活設計,以實現(xiàn)CAN節(jié)點的特定功能;

CAN收發(fā)器工作于物理層,其功能完全由硬件實現(xiàn),其作用是將CAN控制器的邏輯電平轉化為CAN總線的模擬差分信號,以及把總線模擬差分信號轉換成CAN控制器的邏輯電平。

CAN節(jié)點的錯誤管理屬于CAN通信規(guī)范數(shù)據鏈路層的內容,具體來說,錯誤管理是通過MCU和CAN控制器來實施的??梢哉f,CAN控制器是錯誤管理的基礎設施,我們可以從兩個方面理解其工作邏輯:一是如何感知錯誤,二是如何響應錯誤。

注:

1、本文所說的CAN規(guī)范指的是德國BOSCH公司的《CAN Specification Version 2.0》。

節(jié)點如何感知錯誤?

如前文所述,節(jié)點對總線錯誤的識別是通過CAN控制器來完成的。CAN控制器輸出給收發(fā)器發(fā)送引腳TX的邏輯信號位會從收發(fā)器接收引腳RX接收,這使得CAN控制器可以在發(fā)送一個邏輯位期間同時監(jiān)測總線的實際電平值。CAN控制器檢測總線錯誤原理如圖2所示:

69fbdfc8-30fb-11ec-82a8-dac502259ad0.jpg

圖2 監(jiān)測總線錯誤原理圖

如圖2描述,CAN控制器監(jiān)測一個總線電平的電平值是在采樣點位置進行的,判斷是否出現(xiàn)錯誤是在信息處理時間內完成的。

綜上所述,CAN控制器對錯誤的識別可概括為:無論是作為發(fā)送器還是接收器,在采樣點位置成功監(jiān)測到當前總線的實際電平值后,CAN控制器便按照CAN規(guī)范中描述的錯誤管理規(guī)則判斷是否出現(xiàn)錯誤。

CAN通信過程中的錯誤類型包括5種,分別是:位錯誤、填充錯誤、CRC錯誤、幀格式錯誤、應答錯誤。接下來分別對5種錯誤的檢測識別過程進行解析。

1、位錯誤

位錯誤是由作為發(fā)送器的節(jié)點在發(fā)送報文期間進行檢測識別的。CAN控制器的程序邏輯發(fā)送的電平與監(jiān)測到總線的實際信號不一致即在此位期間檢測到位錯誤。

例外情況,在仲裁場或應答間隙期間發(fā)送一“隱性”位卻監(jiān)視到一“顯性”位,以及當發(fā)送器發(fā)送一個被動錯誤標志但檢測到“顯性”位時,均也不被視為位錯誤,以實現(xiàn)特定的功能。

2、填充錯誤

在CAN幀的位場中,幀起始、仲裁場、控制場、數(shù)據場以及CRC序列,均通過位填充的方法編碼。無論何時,發(fā)送器只要檢測到這些位場對應位流里有5個連續(xù)相同值的位,便自動在接著的下一位插入一個補碼位。CAN控制器在監(jiān)測總線電平值的同時對連續(xù)相同的位電平值會進行計數(shù),如果在使用位填充法進行編碼的信息中,出現(xiàn)了第6個連續(xù)相同的位電平值時,便檢測到一個填充錯誤。

3、CRC錯誤

CRC錯誤是由作為接收器的節(jié)點進行檢測識別的。CRC序列共15位(不包含填充位),其內容由幀起始、仲裁場、控制場、數(shù)據場(如果有)的無填充位流計算而來。

CRC序列計算使用CAN規(guī)范規(guī)定的方法。作為發(fā)送器的節(jié)點發(fā)送CAN報文時CRC序列由規(guī)定的計算方法確定,作為接收器的節(jié)點從總線上接收完數(shù)據場最后一個數(shù)據位(沒有數(shù)據場時是接收完控制場的最后一個位)后,如果接下來接收到實際的CRC序列與接收器的計算結果不一致,便檢測到CRC錯誤。

4、格式錯誤

節(jié)點無論是作為發(fā)送器的還是作為接收器均可在監(jiān)測報文期間檢測識別格式錯誤。由于CAN通信嚴格按照CAN規(guī)范定義的幀格式進行報文封裝傳輸,CAN控制器在監(jiān)測總線電平位時明確知道當前位、后續(xù)位屬于幀格式中哪個位場,以及屬于位場的第幾個位,當接收到一個屬于幀格式固定形式的位時,如果實際電平值與幀格式定義不一致,則檢測到一個格式錯誤。

例外情況,對于接收器來說,幀結束最后的位被置于“不重要”狀態(tài),監(jiān)測到的幀結束最后一位期間的顯性位不被當作幀錯誤。

5、應答錯誤應答錯誤是由作為發(fā)送器的節(jié)點檢測識別的。在發(fā)送報文時,只要在發(fā)送應答間隙(隱性)期間所監(jiān)測到的位不為“顯性”,則發(fā)送器會檢測到一個應答錯誤。

注:

1、上述5種錯誤不會相互排斥,也就是說CAN幀中的某個錯誤有可能同屬一種以上的錯誤類型。

2、如上所述,作為發(fā)送器或接收器的不同角色時,直接能檢測到的錯誤類型是不一樣的。

節(jié)點如何響應錯誤?

CAN規(guī)范中規(guī)定每個CAN控制器中實現(xiàn)一個發(fā)送錯誤計數(shù)器和一個接收錯誤計數(shù)器。根據計數(shù)值不同,節(jié)點會處于不同的節(jié)點狀態(tài),并根據計數(shù)值的變化進行狀態(tài)轉換,狀態(tài)轉換如圖3所示。

6a87abe8-30fb-11ec-82a8-dac502259ad0.png

圖3 節(jié)點轉態(tài)轉換圖

當CAN控制器檢測到總線錯誤后通過發(fā)送錯誤標志指示錯誤。對于“錯誤主動”的節(jié)點,錯誤標志表現(xiàn)為“主動錯誤標志”,對于“錯誤被動”的節(jié)點,錯誤標志表現(xiàn)為“被動錯誤標志”。

無論檢測到位錯誤、填充錯誤、幀格式錯誤、還是應答錯誤,CAN控制器會在緊鄰的下一位發(fā)送錯誤標志。如果檢測到的錯誤類型是CRC錯誤,錯誤標志的發(fā)送開始于ACK定界符之后的位,即幀結尾。

綜上所述,CAN控制器對錯誤的響應可概括為:根據當前的節(jié)點狀態(tài)在位流序列相應的位置用錯誤標志標示錯誤,并按照CAN規(guī)范更新錯誤計數(shù)值,進行節(jié)點狀態(tài)轉換。并且是每成功監(jiān)測到一次錯誤便進行一次響應。

注:

1、由于篇幅有限,關于錯誤計數(shù)的詳細規(guī)則、節(jié)點狀態(tài)轉換以及錯誤幀格式等細節(jié)均不在本文進行討論,請讀者查閱CAN協(xié)議規(guī)范。

2、上述分析可知道,錯誤響應的關鍵要素包括錯誤標志的類型和響應的位置。

錯誤管理機制的作用

錯誤管理機制的作用主要體現(xiàn)在對錯誤的響應過程。

作為發(fā)送器發(fā)送錯誤標志時,無論“主動錯誤”還是“被動錯誤”都必然包括6個連續(xù)同極性的位,使其他節(jié)點也識別到總線錯誤,進而使所有節(jié)點都能丟棄當前出錯的幀。

作為接收器發(fā)送錯誤標志時,“主動錯誤”標志使其他節(jié)點也識別到總線錯誤從而使所有節(jié)點(包括作為發(fā)送器的節(jié)點)都能丟棄當前出錯的幀;“被動錯誤”標志不影響總線通信從而使其他節(jié)點都能成功接收當前幀,處于“被動錯誤”狀態(tài)的節(jié)點屬于“不可信”狀態(tài),其檢測到錯誤僅是自己丟棄當前幀,這也是錯誤管理的靈活性所在,即錯誤響應并不是嚴格在任何情況下都使所有節(jié)點丟棄同一幀報文。

綜上所述,錯誤管理機制可以使所有的節(jié)點同時接收或丟棄總線的同一幀報文,又可以使作為接收器的被動錯誤狀態(tài)的節(jié)點僅自己丟棄當前報文而不影響其他節(jié)點。因此,錯誤管理是實現(xiàn)CAN通信數(shù)據一致性的機制之一。

總結

CAN節(jié)點錯誤管理功能是由CAN節(jié)點組成中的CAN控制器負責的,對錯誤管理的工作過程可以從“錯誤識別”和“錯誤響應”兩個方面進行理解。錯誤管理是實現(xiàn)CAN通信數(shù)據的一致性的機制之一。

ZPS-CANFD是致遠電子總線分析儀第二代CAN總線開發(fā)輔助工具,適用于CANFD、CAN、LIN總線的測量及測試儀器,支持總線數(shù)據的發(fā)送和接收,高層協(xié)議解析及診斷,能對CANFD、CAN總線物理層電氣信號實時采集和記錄,并附帶有高速模擬通道、通用數(shù)字IO及模擬IO,通過提供的硬件接口及軟件功能,用戶能夠便捷地構建總線信號測量與分析、節(jié)點功能仿真及測試、網絡可靠性診斷及評估的自動化系統(tǒng)。ZPS-CANFD可實現(xiàn)CAN/CANFD報文和波形的同步監(jiān)測,可以直觀的定位排查節(jié)點錯誤問題,以及更高效的錯誤干擾等模擬測試。

編輯:jq

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

    關注

    146

    文章

    17984

    瀏覽量

    367083
  • 計數(shù)器
    +關注

    關注

    32

    文章

    2291

    瀏覽量

    96423
  • 發(fā)送器
    +關注

    關注

    1

    文章

    261

    瀏覽量

    27285
  • CAN控制器
    +關注

    關注

    3

    文章

    75

    瀏覽量

    15341

原文標題:【原理解析】一文讀懂CAN節(jié)點錯誤管理機制

文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何驗證CAN控制器的錯誤響應機制?

    CAN節(jié)點的穩(wěn)定性、可靠性和安全性得益于其強大的錯誤管理機制。上一篇文章我們介紹了CAN控制器的錯誤
    的頭像 發(fā)表于 04-30 18:24 ?224次閱讀
    如何驗證<b class='flag-5'>CAN</b>控制器的<b class='flag-5'>錯誤</b>響應<b class='flag-5'>機制</b>?

    T113核心板CAN通訊bus-off自動恢復

    ,通信中斷。本文將深入探討CAN總線自動恢復機制的原理、調優(yōu)方法及實戰(zhàn)應用,旨在幫助工程師優(yōu)化系統(tǒng)配置,提升通信可靠性。軟硬件環(huán)境說明本次實戰(zhàn)應用基于眺望T113-I
    的頭像 發(fā)表于 04-10 08:30 ?501次閱讀
    T113核心板<b class='flag-5'>CAN</b>通訊bus-off自動恢復

    CAN節(jié)點錯誤管理機制工作原理解析

    CAN節(jié)點的穩(wěn)定性、可靠性和安全性得益于其強大的錯誤管理機制。那么,CAN節(jié)點為什么能感知
    的頭像 發(fā)表于 03-25 11:44 ?402次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>節(jié)點錯誤</b><b class='flag-5'>管理機制</b>工作原理解析

    深入探討試驗機數(shù)據采集系統(tǒng)在力學試驗室中發(fā)揮的作用

    萬能機及壓力機設備的特殊性、數(shù)據無法實時采集的現(xiàn)狀、綜合管理需求以及數(shù)據聯(lián)動分析需求等方面,深入探討試驗機數(shù)據采集系統(tǒng)在力學試驗室中的作用。 一、萬能機及壓力機設備的特殊性對數(shù)據采集系統(tǒng)的需求 萬能試驗機和壓
    的頭像 發(fā)表于 02-22 11:27 ?571次閱讀
    <b class='flag-5'>深入探討</b>試驗機數(shù)據采集系統(tǒng)在力學試驗室中發(fā)揮的作用

    CAN總線十萬個為什么 | 做好這幾點,總線通訊不再異常

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

    深入探討DeepSeek大模型的核心技術

    導讀 本文深入探討了DeepSeek大模型的核心技術,從公司背景、模型能力、訓推成本到核心技術細節(jié)進行了全面分析。 ? 一、關于DeepSeek公司及其大模型 1.1 公司概況 DeepSeek
    的頭像 發(fā)表于 02-10 10:49 ?1494次閱讀
    <b class='flag-5'>深入探討</b>DeepSeek大模型的核心技術

    基于Vector工具進行CAN協(xié)議錯誤幀的分析實踐

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

    CAN通信節(jié)點多時,如何減少寄生電容和保障節(jié)點數(shù)量?

    節(jié)點就會帶來寄生電容的增加,節(jié)點增加到一定數(shù)量,波形嚴重失真,導致數(shù)據接收錯誤。硬件設計CAN電路時,需要總線抗受電磁兼容同時需要寄生電容小,直接給總線并聯(lián)TVS瞬
    的頭像 發(fā)表于 01-03 11:41 ?3071次閱讀
    <b class='flag-5'>CAN</b>通信<b class='flag-5'>節(jié)點</b>多時,如何減少寄生電容和保障<b class='flag-5'>節(jié)點</b>數(shù)量?

    深入探討Linux系統(tǒng)中的動態(tài)鏈接庫機制

    本文將深入探討Linux系統(tǒng)中的動態(tài)鏈接庫機制,這其中包括但不限于全局符號介入、延遲綁定以及地址無關代碼等內容。 引言 在軟件開發(fā)過程中,動態(tài)庫鏈接問題時常出現(xiàn),這可能導致符號沖突,從而引起程序運行
    的頭像 發(fā)表于 12-18 10:06 ?588次閱讀
    <b class='flag-5'>深入探討</b>Linux系統(tǒng)中的動態(tài)鏈接庫<b class='flag-5'>機制</b>

    CAN總線十萬個為什么 | 為什么CAN總線分支不能過長?

    導讀探討CAN總線中分支問題及其對信號完整性的影響,并提出了相應的解決方案。今天我們將深入探討CAN總線中的一個關鍵問題——分支問題。在開始之前,讓我們先來觀察一下一個
    的頭像 發(fā)表于 11-28 15:14 ?773次閱讀
    <b class='flag-5'>CAN</b>總線十萬個為什么 | 為什么<b class='flag-5'>CAN</b>總線分支不能過長?

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

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

    得瑞領新亮相IDC中國年度峰會,深入探討NVMe SSD助力金融行業(yè)數(shù)字化轉型

    在2024 IDC中國年度峰會上,得瑞領新展示了其企業(yè)級存儲解決方案,并通過主題演講深入探討了NVMe SSD在金融行業(yè)數(shù)字化轉型中的高效應用和技術創(chuàng)新。
    的頭像 發(fā)表于 09-18 14:52 ?511次閱讀
    得瑞領新亮相IDC中國年度峰會,<b class='flag-5'>深入探討</b>NVMe SSD助力金融行業(yè)數(shù)字化轉型

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

    CAN總線錯誤狀態(tài)的種類主要包括以下幾種,每種狀態(tài)都反映了CAN總線網絡中節(jié)點或總線的不同錯誤情況,以及相應的通信能力和限制。
    的頭像 發(fā)表于 09-03 14:17 ?3498次閱讀

    CAN總線知識】為什么CAN節(jié)點ID不能相同?

    CAN-bus網絡中原則上不允許兩個及以上節(jié)點具有相同的ID段,但如果兩個及以上節(jié)點ID相同會怎樣呢?資深強迫癥患者想一探究竟!實驗前,我們首先要對CAN報文的結構組成、仲裁原理有清晰
    的頭像 發(fā)表于 08-30 12:48 ?1985次閱讀
    【<b class='flag-5'>CAN</b>總線知識】為什么<b class='flag-5'>CAN</b><b class='flag-5'>節(jié)點</b>ID不能相同?

    深入探討Linux的進程調度器

    ,以及其運行的順序。這篇文章將詳細探討Linux進程調度器的工作原理、主要算法、調度策略以及其在實際操作中的應用。
    的頭像 發(fā)表于 08-13 13:36 ?1293次閱讀
    <b class='flag-5'>深入探討</b>Linux的進程調度器