CAN總線錯(cuò)誤
介
紹
在本系列文章中,我們將為您詳細(xì)介紹CAN總線錯(cuò)誤的相關(guān)知識(shí),包括CAN總線錯(cuò)誤的基礎(chǔ)概念、CAN總線錯(cuò)誤的類型、CAN錯(cuò)誤幀和CAN節(jié)點(diǎn)錯(cuò)誤狀態(tài),并通過實(shí)際的應(yīng)用測試生成并記錄CAN錯(cuò)誤。
CAN總線錯(cuò)誤類型
CAN總線協(xié)議規(guī)定了5種CAN錯(cuò)誤類型:
位錯(cuò)誤[發(fā)送器]
位填充錯(cuò)誤[接收器]
格式錯(cuò)誤[接收者]
ACK應(yīng)答錯(cuò)誤(應(yīng)答)[發(fā)送器]
CRC校驗(yàn)錯(cuò)誤(循環(huán)冗余校驗(yàn))[接收器]
在前文中,我們已經(jīng)對(duì)位錯(cuò)誤和位填充錯(cuò)誤有所了解,這兩者都是在位級(jí)別進(jìn)行評(píng)估的。其余三種CAN錯(cuò)誤類型在消息級(jí)別進(jìn)行評(píng)估。下面我們?cè)敿?xì)介紹每種錯(cuò)誤類型。
前文回顧:虹科干貨 | 帶你全面認(rèn)識(shí)“CAN總線錯(cuò)誤”(一)——CAN總線錯(cuò)誤與錯(cuò)誤幀
01
位錯(cuò)誤
CAN總線上的每個(gè)CAN節(jié)點(diǎn)都會(huì)在任何給定時(shí)間監(jiān)控信號(hào)電平——這意味著發(fā)送CAN節(jié)點(diǎn)也會(huì)“讀回”它發(fā)送的每一位。如果發(fā)送器讀取的數(shù)據(jù)位級(jí)別與其發(fā)送的內(nèi)容不同,則發(fā)送器會(huì)將其檢測為位錯(cuò)誤。但是,如果在仲裁過程中(即發(fā)送CAN ID時(shí))發(fā)生位不匹配,則不會(huì)將其解釋為位錯(cuò)誤。類似地,應(yīng)答時(shí)隙(ACK字段)中的不匹配不會(huì)導(dǎo)致位錯(cuò)誤,因?yàn)锳CK字段特別要求來自發(fā)送器的隱性位被來自接收器的顯性位覆蓋。
02
位填充錯(cuò)誤
如前文所述,位填充是CAN標(biāo)準(zhǔn)的一部分。它規(guī)定在同一邏輯級(jí)別的每5個(gè)連續(xù)位之后,第6位必須是補(bǔ)碼。這是通過提供上升沿來確保網(wǎng)絡(luò)的持續(xù)同步所必需的。此外,它確保位流不會(huì)被誤解為錯(cuò)誤幀或標(biāo)記消息結(jié)束的幀間空間(7位隱性序列)。所有CAN節(jié)點(diǎn)都會(huì)自動(dòng)刪除多余的位。
如果在CAN消息內(nèi)(在SOF和CRC字段之間)的總線上觀察到具有相同邏輯電平的6位序列,則接收器將其檢測為位填充錯(cuò)誤,即填充錯(cuò)誤。
03
格式錯(cuò)誤
此消息級(jí)別檢查利用CAN消息中的某些字段/位必須始終處于某個(gè)邏輯級(jí)別的事實(shí)。具體來說,1位SOF必須是顯性的,而整個(gè)8位EOF字段必須是隱性的。此外,ACK和CRC界定符必須是隱性的。如果接收器發(fā)現(xiàn)這些位中的任何一個(gè)具有無效的邏輯電平,則接收器將其檢測為格式錯(cuò)誤。
04
ACK應(yīng)答錯(cuò)誤(應(yīng)答)
當(dāng)發(fā)送器發(fā)送CAN報(bào)文時(shí),它將包含ACK字段(應(yīng)答),發(fā)送器將在其中發(fā)送一個(gè)隱性位。所有偵聽CAN節(jié)點(diǎn)都應(yīng)在該字段中發(fā)送顯性位以驗(yàn)證消息的接收(無論節(jié)點(diǎn)是否對(duì)消息感興趣)。如果發(fā)送器未讀取ACK時(shí)隙中的顯性位,則發(fā)送器將其檢測為ACK錯(cuò)誤。
05
CRC校驗(yàn)錯(cuò)誤(循環(huán)冗余校驗(yàn))
每個(gè)CAN報(bào)文都包含一個(gè)15位的循環(huán)冗余校驗(yàn)和字段。在這里,發(fā)送器已經(jīng)計(jì)算了CRC值并將其添加到消息中。每個(gè)接收節(jié)點(diǎn)也會(huì)自己計(jì)算CRC。如果接收器的CRC計(jì)算與發(fā)送器的CRC不匹配,接收器會(huì)將其檢測為CRC錯(cuò)誤。
-
CAN
+關(guān)注
關(guān)注
57文章
2694瀏覽量
463146
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論