中文字幕人妻互换av久久I免费网站avI色爽I护士HD白色free性XXXI久热免费视频I91色色I9i看片成人免费appI人妻推油-91PornI91国精产品自偷I亚洲一卡二卡I锵锵锵锵锵锵好湿好大

CAN節點錯誤管理機制工作原理解析

2025-03-25

節點電路構成

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


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

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

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

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

注:本文所說的CAN規范指的是德國BOSCH公司的《CAN Specification Version 2.0》。


節點如何感知錯誤?

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

CAN控制器檢測總線錯誤原理如圖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控制器在監測總線電平位時明確知道當前位、后續位屬于幀格式中哪個位場,以及屬于位場的第幾個位,當接收到一個屬于幀格式固定形式的位時,如果實際電平值與幀格式定義不一致,則檢測到一個格式錯誤。

例外情況,對于接收器來說,幀結束最后的位被置于"不重要"狀態,監測到的幀結束最后一位期間的顯性位不被當作幀錯誤。

5、應答錯誤

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

注:

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

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


節點如何響應錯誤?

CAN規范中規定每個CAN控制器中實現一個發送錯誤計數器和一個接收錯誤計數器。根據計數值不同,節點會處于不同的節點狀態,并根據計數值的變化進行狀態轉換,狀態轉換如圖3所示。

當CAN控制器檢測到總線錯誤后通過發送錯誤標志指示錯誤。對于"錯誤主動"的節點,錯誤標志表現為"主動錯誤標志",對于"錯誤被動"的節點,錯誤標志表現為"被動錯誤標志"。

無論檢測到位錯誤、填充錯誤、CRC錯誤、幀格式錯誤、還是應答錯誤,CAN控制器一般會在緊鄰的下一位發送錯誤標志。

例外情況,如果檢測到的錯誤類型是CRC錯誤,錯誤標志的發送開始于ACK定界符之后的位,即幀結尾。

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

注:

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

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


錯誤管理機制的作用

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

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

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

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


總結

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


主站蜘蛛池模板: 久久99精品国产麻豆不卡 | 岛国精品一区免费视频在线观看 | 国产日韩久久免费影院 | 伊人情人综合网| 在线精品亚洲观看不卡欧| 伊人伊成久久人综合网| 亚洲精华国产精华精华液网站 | 成人无码18?在线观看| 日韩高清在线观看不卡一区二区 | 伊人久久无码大香线蕉综合| 国产免费无码一区二区三区| 久久精品国产99国产精品严洲| 思热99re视热频这里只精品| 日韩人妻无码系列专区| 丰满少妇作爱视频免费观看| 日本丰满白嫩大屁股ass| 国产美女在线精品免费观看 | 国产主播av福利精品一区| 熟女少妇人妻中文字幕| 欧美日韩国产在线人成| 国产精品成人午夜电影| 国内少妇高清露脸精品视频| 国产情侣久久久久aⅴ免费| 国产性生交xxxxx无码| 成码无人av片在线电影网站| 狠狠色综合7777久夜色撩人| 亚洲一区天堂九一| 强行交换配乱婬bd| 国产无遮挡吃胸膜奶免费看| 亚洲人成网站在线播放942| 一区二区三区av波多野结衣| 成人免费无码大片a毛片小说| 亚洲人成色77777在线观看大战p| 狠狠躁夜夜躁人人爽天天不| 少妇高潮惨叫久久久久电影69| 美女裸体自慰在线观看| 欧美嫩交一区二区三区| 国产精品va无码免费麻豆| 天天摸天天碰天天添| 日本三线免费视频观看| 精品国产第一国产综合精品|