加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

【CAN總線知識】一文讀懂CAN通訊錯(cuò)誤幀

06/12 09:31
4652
閱讀需 6 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

CAN總線通信技術(shù)廣泛應(yīng)用于多個(gè)行業(yè),是每個(gè)總線設(shè)計(jì)工程師必學(xué)的一個(gè)通訊網(wǎng)絡(luò)。然而,對于CAN通信中的錯(cuò)誤幀,許多人僅停留在表面了解,缺乏深入理解,這導(dǎo)致許多工程師在面對總線通信故障時(shí)感到無從下手。

錯(cuò)誤標(biāo)定

檢測到錯(cuò)誤條件的站通過發(fā)送錯(cuò)誤標(biāo)志指示錯(cuò)誤。對于“錯(cuò)誤主動”的節(jié)點(diǎn),錯(cuò)誤信息為“主動錯(cuò)誤標(biāo)志”,對于“錯(cuò)誤被動”的節(jié)點(diǎn),錯(cuò)誤信息為“被動錯(cuò)誤標(biāo)志”。站檢測到無論是位錯(cuò)誤、填充錯(cuò)誤、形式錯(cuò)誤,還是應(yīng)答錯(cuò)誤,這個(gè)站會在下一位時(shí)發(fā)出錯(cuò)誤標(biāo)志信息。

只要檢測到的錯(cuò)誤的條件是CRC錯(cuò)誤,錯(cuò)誤標(biāo)志的發(fā)送開始于ACK界定符之后的位(其他的錯(cuò)誤條件除外)。如圖1所示:

圖1 CRC錯(cuò)誤幀

? 故障界定

至于故障界定,單元的狀態(tài)可能為以下三種之一:“錯(cuò)誤主動”、“錯(cuò)誤被動”、“總線關(guān)閉”。

“錯(cuò)誤主動”的單元可以正常地參與總線通訊并在錯(cuò)誤被檢測到時(shí)發(fā)出主動錯(cuò)誤標(biāo)志。

“錯(cuò)誤被動”的單元不允許發(fā)送主動錯(cuò)誤標(biāo)志?!板e(cuò)誤被動”的單元參與總線通訊,在錯(cuò)誤被檢測到時(shí)只發(fā)出被動錯(cuò)誤標(biāo)志。而且,發(fā)送以后,“錯(cuò)誤被動”單元將在初始化下一個(gè)發(fā)送之前處于等待狀態(tài)。(見“掛起發(fā)送”)“總線關(guān)閉”的單元不允許在總線上有任何的影響(比如,關(guān)閉輸出驅(qū)動器)。

三個(gè)轉(zhuǎn)態(tài)的轉(zhuǎn)換方式如圖2所示:

圖2 CAN狀態(tài)轉(zhuǎn)換圖

在每一總線單元里使用兩種計(jì)數(shù)以便故障界定:?發(fā)送錯(cuò)誤計(jì)數(shù)、?接收錯(cuò)誤計(jì)數(shù)。

這些計(jì)數(shù)按以下規(guī)則改變(注意,在給定的報(bào)文發(fā)送期間,可能要用到的規(guī)則不只一個(gè)):

1、當(dāng)接收器檢測到一個(gè)錯(cuò)誤,接收錯(cuò)誤計(jì)數(shù)就加1。在發(fā)送主動錯(cuò)誤標(biāo)志或過載標(biāo)志期間所檢測到的錯(cuò)誤為位錯(cuò)誤時(shí),接收錯(cuò)誤計(jì)數(shù)器值不加1。

2、當(dāng)錯(cuò)誤標(biāo)志發(fā)送以后,接收器檢測到的第一個(gè)位為“顯性”時(shí),接收錯(cuò)誤計(jì)數(shù)值加8。

3、當(dāng)發(fā)送器發(fā)送一錯(cuò)誤標(biāo)志時(shí),發(fā)送錯(cuò)誤計(jì)數(shù)器值加8。

例外情況1:發(fā)送器為“錯(cuò)誤被動”,并檢測到一應(yīng)答錯(cuò)誤(注:此應(yīng)答錯(cuò)誤由檢測不到一“顯性”ACK 以及當(dāng)發(fā)送被動錯(cuò)誤標(biāo)志時(shí)檢測不到一“顯性”位而引起)。

例外情況2:發(fā)送器因?yàn)樘畛溴e(cuò)誤而發(fā)送錯(cuò)誤標(biāo)志(注:此填充錯(cuò)誤發(fā)生于仲裁期間。引起填充錯(cuò)誤是由于:填充位〈填充位〉位于RTR位之前,并已作為“隱性”發(fā)送,但是卻被監(jiān)視為“顯性”)。

例外情況1和例外情況2時(shí),發(fā)送錯(cuò)誤計(jì)數(shù)器值不改變。

4、發(fā)送主動錯(cuò)誤標(biāo)志或過載標(biāo)志時(shí),如果發(fā)送器檢測到位錯(cuò)誤,則發(fā)送錯(cuò)誤計(jì)數(shù)器值加8。

5、當(dāng)發(fā)送主動錯(cuò)誤標(biāo)志或過載標(biāo)志時(shí),如果接受器檢測到位錯(cuò)誤(位錯(cuò)誤),則接收錯(cuò)誤計(jì)數(shù)器值加8。

6、在發(fā)送主動錯(cuò)誤標(biāo)志、被動錯(cuò)誤標(biāo)志或過載標(biāo)志以后,任何節(jié)點(diǎn)最多容許7個(gè)連續(xù)的 “顯性”位。以下的情況,每一發(fā)送器將它們的發(fā)送錯(cuò)誤計(jì)數(shù)值加8,及每一接收器的接收錯(cuò)誤計(jì)數(shù)值加8:

當(dāng)檢測到第14個(gè)連續(xù)的“顯性”位后;

在檢測到第8個(gè)跟隨著被動錯(cuò)誤標(biāo)志的連續(xù)的“顯性”位以后;

在每一附加的8個(gè)連續(xù)“顯性”位順序之后。

7、報(bào)文成功傳送后(得到ACK及直到幀末尾結(jié)束沒有錯(cuò)誤),發(fā)送錯(cuò)誤計(jì)數(shù)器值減1,除非已經(jīng)是0。

8、如果接收錯(cuò)誤計(jì)數(shù)值介于1和127之間,在成功地接收到報(bào)文后(直到應(yīng)答間隙接收沒有錯(cuò)誤,及成功地發(fā)送了ACK位),接收錯(cuò)誤計(jì)數(shù)器值減1。如果接收錯(cuò)誤計(jì)數(shù)器值是0,則它保持0,如果大于127,則它會設(shè)置一個(gè)介于119到127之間值。

9、當(dāng)發(fā)送錯(cuò)誤計(jì)數(shù)器值等于或超過128時(shí),或當(dāng)接收錯(cuò)誤計(jì)數(shù)器值等于或超過128時(shí),節(jié)點(diǎn)為“錯(cuò)誤被動”。讓節(jié)點(diǎn)成為“錯(cuò)誤被動”的錯(cuò)誤條件致使節(jié)點(diǎn)發(fā)出主動錯(cuò)誤標(biāo)志。

10、當(dāng)發(fā)送錯(cuò)誤計(jì)數(shù)器值大于或等于256時(shí),節(jié)點(diǎn)為“總線關(guān)閉”。

11、當(dāng)發(fā)送錯(cuò)誤計(jì)數(shù)器值和接收錯(cuò)誤計(jì)數(shù)器值都小于或等于127時(shí),“錯(cuò)誤被動”的節(jié)點(diǎn)重新變?yōu)椤板e(cuò)誤主動”。

12、在總線監(jiān)視到128次出現(xiàn)11個(gè)連續(xù)“隱性”位之后,“總線關(guān)閉”的節(jié)點(diǎn)可以變成“錯(cuò)誤主動”(不再是“總線關(guān)閉”),它的錯(cuò)誤計(jì)數(shù)值也被設(shè)置為0。

備注1:

一個(gè)大約大于96的錯(cuò)誤計(jì)數(shù)值顯示總線被嚴(yán)重干擾。最好能夠預(yù)先采取措施測試這個(gè)條件。

備注2:

起動/睡眠:如果起動期間內(nèi)只有1個(gè)節(jié)點(diǎn)在線,以及如果這個(gè)節(jié)點(diǎn)發(fā)送一些報(bào)文,則將不會有應(yīng)答,并檢測到錯(cuò)誤和重復(fù)報(bào)文。由此,節(jié)點(diǎn)會變?yōu)椤板e(cuò)誤被動”,而不是“總線關(guān)閉”。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級 參考價(jià)格 更多信息
AD73311ARSZ-REEL 1 Rochester Electronics LLC SPECIALTY TELECOM CIRCUIT, PDSO20, SSOP-20
$9.29 查看
TJA1051T/3/1J 1 NXP Semiconductors TJA1051 - High-speed CAN transceiver SOIC 8-Pin

ECAD模型

下載ECAD模型
$1.11 查看
LAN8720AI-CP 1 Microchip Technology Inc LAN8720AI-CP

ECAD模型

下載ECAD模型
$1.64 查看
致遠(yuǎn)電子

致遠(yuǎn)電子

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測量儀器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測量儀器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜