博客專欄

EEPW首頁 > 博客 > 詳解CAN總線:CAN總線報(bào)文格式—錯(cuò)誤幀

詳解CAN總線:CAN總線報(bào)文格式—錯(cuò)誤幀

發(fā)布人:美男子玩編程 時(shí)間:2022-10-11 來源:工程師 發(fā)布文章

CAN總線上傳輸?shù)男畔⒎Q為報(bào)文,當(dāng)總線空閑時(shí)任何連接的單元都可以開始發(fā)送新的報(bào)文。


CAN通信是通過以下5種類型的幀進(jìn)行的:

  • 數(shù)據(jù)幀 

  • 遙控幀 

  • 錯(cuò)誤幀 

  • 過載幀 

  • 幀間隔


另外,數(shù)據(jù)幀和遙控幀有標(biāo)準(zhǔn)格式和擴(kuò)展格式兩種格式。標(biāo)準(zhǔn)格式有 11 個(gè)位的標(biāo)識符(Identifier: 以下簡稱 ID), 擴(kuò)展格式有 29 個(gè)位的 ID。


各種幀的用途如下表所示:


圖片

近期打算寫5篇文章,分別詳細(xì)介紹這5種類型的CAN總線報(bào)文格式,本篇博文將詳細(xì)講解CAN錯(cuò)誤幀格式,創(chuàng)作不易,請各位朋友多多點(diǎn)贊、收藏、關(guān)注支持~


1


錯(cuò)誤幀格式

錯(cuò)誤幀由錯(cuò)誤標(biāo)志(Error Flag)和錯(cuò)誤界定符(Error Delimiter)組成。


接收節(jié)點(diǎn)發(fā)現(xiàn)總線上的報(bào)文有錯(cuò)誤時(shí),將自動(dòng)發(fā)出活動(dòng)錯(cuò)誤標(biāo)志,它是6個(gè)連續(xù)的顯性位。其他節(jié)點(diǎn)檢測到活動(dòng)錯(cuò)誤標(biāo)志后發(fā)送錯(cuò)誤認(rèn)可標(biāo)志,它由6個(gè)連續(xù)的隱性位組成。由于各個(gè)接收節(jié)點(diǎn)發(fā)現(xiàn)錯(cuò)誤的時(shí)間可能不同,所以總線上實(shí)際的錯(cuò)誤標(biāo)志可能由6~12個(gè)顯性位組成。


錯(cuò)誤界定符由 8 個(gè)位的隱性位構(gòu)成。當(dāng)錯(cuò)誤標(biāo)志發(fā)生后,每一個(gè)CAN 節(jié)點(diǎn)監(jiān)視總線,直至檢測到一個(gè)顯性電平的跳變。此時(shí)表示所有的節(jié)點(diǎn)已經(jīng)完成了錯(cuò)誤標(biāo)志的發(fā)送,并開始發(fā)送8個(gè)隱性電平的界定符。


如下所示:


圖片

2


主動(dòng)錯(cuò)誤標(biāo)志和被動(dòng)錯(cuò)誤標(biāo)志

 錯(cuò)誤標(biāo)志包括主動(dòng)錯(cuò)誤標(biāo)志和被動(dòng)錯(cuò)誤標(biāo)志兩種。

  • 主動(dòng)錯(cuò)誤標(biāo)志:處于主動(dòng)錯(cuò)誤狀態(tài)的單元檢測出錯(cuò)誤時(shí)輸出的錯(cuò)誤標(biāo)志,6 個(gè)位的顯性位;

  • 被動(dòng)錯(cuò)誤標(biāo)志:處于被動(dòng)錯(cuò)誤狀態(tài)的單元檢測出錯(cuò)誤時(shí)輸出的錯(cuò)誤標(biāo)志,6 個(gè)位的隱性位。


圖片

3


錯(cuò)誤幀種類

錯(cuò)誤幀共有 5 種,多種錯(cuò)誤可能同時(shí)發(fā)生,種類如下所示:

  • 位錯(cuò)誤

  • 填充錯(cuò)誤

  • CRC 錯(cuò)誤

  • 格式錯(cuò)誤

  • ACK 錯(cuò)誤


錯(cuò)誤的種類、錯(cuò)誤的內(nèi)容、錯(cuò)誤檢測幀和檢測單元如下表所示:


圖片

重點(diǎn)聊一聊位錯(cuò)誤和格式錯(cuò)誤。


位錯(cuò)誤特性如下所示:

  • 位錯(cuò)誤由向總線上輸出數(shù)據(jù)幀、遙控幀、錯(cuò)誤幀、過載幀的單元和輸出 ACK 的單元、輸出錯(cuò)誤的單元來檢測;

  • 在仲裁段輸出隱性電平,但檢測出顯性電平時(shí),將被視為仲裁失利,而不是位錯(cuò)誤;

  • 在仲裁段作為填充位輸出隱性電平時(shí),但檢測出顯性電平時(shí),將不視為位錯(cuò)誤,而是填充錯(cuò)誤;

  • 發(fā)送單元在 ACK 段輸出隱性電平,但檢測到顯性電平時(shí),將被判斷為其它單元的 ACK 應(yīng)答,而非位錯(cuò)誤;

  • 輸出被動(dòng)錯(cuò)誤標(biāo)志(6 個(gè)位隱性位)但檢測出顯性電平時(shí),將遵從錯(cuò)誤標(biāo)志的結(jié)束條件,等待檢測出連續(xù)相同 6 個(gè)位的值(顯性或隱性),并不視為位錯(cuò)誤。


格式錯(cuò)誤特性如下所示:

  • 即使接收單元檢測出 EOF(7 個(gè)位的隱性位)的最后一位(第 8 個(gè)位)為顯性電平,也不視為格式錯(cuò)誤;

  • 即使接收單元檢測出數(shù)據(jù)長度碼(DLC)中 9~15 的值時(shí),也不視為格式錯(cuò)誤。


發(fā)送單元發(fā)送完錯(cuò)誤幀后,將再次發(fā)送數(shù)據(jù)幀或遙控幀,錯(cuò)誤標(biāo)志輸出時(shí)序如下表所示:


圖片


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: CAN總線 汽車電子

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉