關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > CAN總線錯(cuò)誤檢測(cè)機(jī)制

CAN總線錯(cuò)誤檢測(cè)機(jī)制

作者:ZLG致遠(yuǎn)電子 時(shí)間:2018-06-29 來(lái)源:電子產(chǎn)品世界 收藏

  的錯(cuò)誤都有哪些形式,相互之間有什么樣的關(guān)系,以及總線的檢測(cè)與校驗(yàn)的原理是什么?

本文引用地址:http://butianyuan.cn/article/201806/382527.htm

  的錯(cuò)誤幀可分為位錯(cuò)誤、位填充錯(cuò)誤、CRC錯(cuò)誤、格式錯(cuò)誤、應(yīng)答錯(cuò)誤五大類(lèi),每類(lèi)錯(cuò)誤的具體解釋如圖8所示,此圖簡(jiǎn)潔明了的展現(xiàn)了各種錯(cuò)誤。

  圖8 錯(cuò)誤類(lèi)型

  CAN報(bào)文傳輸過(guò)程中出現(xiàn)通訊錯(cuò)誤,會(huì)發(fā)送錯(cuò)誤幀,以上所述的錯(cuò)誤幀類(lèi)型中根據(jù)其錯(cuò)誤標(biāo)識(shí)符不同,可分為“主動(dòng)錯(cuò)誤”和“被動(dòng)錯(cuò)誤”。

  主動(dòng)錯(cuò)誤:檢測(cè)錯(cuò)誤主動(dòng)報(bào)錯(cuò),發(fā)出錯(cuò)誤標(biāo)識(shí)符(連續(xù)6個(gè)顯性位)和錯(cuò)誤界定符(連續(xù)8個(gè)隱形位);目的在于“主動(dòng)”通知錯(cuò)誤,即使別的節(jié)點(diǎn)沒(méi)有發(fā)現(xiàn)此錯(cuò)誤;

  被動(dòng)錯(cuò)誤:檢測(cè)錯(cuò)誤,被動(dòng)等待其他節(jié)點(diǎn)報(bào)錯(cuò)后發(fā)送錯(cuò)誤標(biāo)識(shí)符(連續(xù)6個(gè)隱形位)和錯(cuò)誤標(biāo)識(shí)符(連續(xù)8個(gè)隱形位);目的在于識(shí)別錯(cuò)誤,回應(yīng)主動(dòng)錯(cuò)誤;

  總線關(guān)閉:節(jié)點(diǎn)不參與總線通訊;

  為了避免某個(gè)設(shè)備因?yàn)樽陨碓?例如硬件損壞)導(dǎo)致無(wú)法正常收發(fā)數(shù)據(jù)而不斷地破壞數(shù)據(jù)幀,從而影響其他正常節(jié)點(diǎn)通訊,CAN-bus規(guī)范中規(guī)定每個(gè)CAN控制器都有一個(gè)發(fā)送錯(cuò)誤計(jì)數(shù)器和一個(gè)接收錯(cuò)誤計(jì)數(shù)器。根據(jù)計(jì)數(shù)值不同CAN節(jié)點(diǎn)會(huì)處于不同的設(shè)備狀態(tài),狀態(tài)之間的轉(zhuǎn)換關(guān)系如圖9所示:

  圖9 錯(cuò)誤轉(zhuǎn)換圖

  接收、發(fā)送錯(cuò)誤計(jì)數(shù)器對(duì)應(yīng)的變動(dòng)條件及數(shù)值變動(dòng)情況:

  •    接收單元檢測(cè)出錯(cuò)誤時(shí),檢測(cè)到錯(cuò)誤標(biāo)識(shí)符或過(guò)載標(biāo)志的“位錯(cuò)誤”除外,此時(shí)REC+1、TEC不變;

  •    接收單元在發(fā)送完錯(cuò)誤標(biāo)志后檢測(cè)到第一位為顯性電平,此時(shí)REC+8、TEC不變;

  •    發(fā)送單元輸出錯(cuò)誤標(biāo)志,此時(shí)REC不變、TEC+8;

  •    發(fā)送單元發(fā)送主動(dòng)錯(cuò)誤標(biāo)志或過(guò)載標(biāo)志,檢測(cè)出位錯(cuò)誤,REC不變、TEC+8;

  •    接收單元發(fā)送主動(dòng)錯(cuò)誤標(biāo)志或過(guò)載標(biāo)志,檢測(cè)出位錯(cuò)誤,REC+8、TEC不變;

  •    各單元從主動(dòng)錯(cuò)誤標(biāo)志、過(guò)載標(biāo)志的開(kāi)始檢測(cè)出連續(xù)14個(gè)顯性位,之后每檢測(cè)出連續(xù)8個(gè)顯性位,發(fā)送時(shí)REC+8、接收時(shí)TEC+8;

  •    檢測(cè)出被動(dòng)錯(cuò)誤標(biāo)志后追加連續(xù)8個(gè)位的顯性位,發(fā)送時(shí)REC+8、接收時(shí)TEC+8;

  •    發(fā)送單元正常接收數(shù)據(jù)結(jié)束時(shí)(返回ACK且到幀結(jié)束位檢測(cè)到錯(cuò)誤),REC不變、TEC-1;

  •    接收單元正常接收數(shù)據(jù)結(jié)束時(shí)(到CRC未檢測(cè)出錯(cuò)誤且正常返回ACK),REC<127時(shí),REC-1,REC>127時(shí),REC=127;TEC不變;

  •    處于總線關(guān)閉的單元,檢測(cè)到128次連續(xù)11個(gè)位的隱形位,錯(cuò)誤計(jì)數(shù)器歸零,REC、TEC=0;

  CAN總線錯(cuò)誤處理功能屬于是鏈路層功能,此功能由CAN控制器決定,如圖10所示CAN控制介紹圖,其中詳細(xì)介紹與錯(cuò)誤處理有關(guān)的部分:位流處理器、位邏輯控制、錯(cuò)誤管理邏輯。

  •    位流處理器(BSP)是一個(gè)控制發(fā)送緩沖器、接收FIFO和CAN總線之間數(shù)據(jù)流的程序裝置,它還執(zhí)行總線上的錯(cuò)誤檢測(cè)、仲載、總線填充和錯(cuò)誤處理。

  •    位時(shí)序邏輯(BTL)監(jiān)視串行的CAN總線和位時(shí)序,它在信息開(kāi)頭“弱勢(shì)支配”的總線傳輸時(shí),同步 CAN總線位流(硬同步),接收?qǐng)?bào)文時(shí)再次同步下一次傳送(軟同步)。

  •    錯(cuò)誤管理邏輯(EML)負(fù)責(zé)限制傳輸層模塊的錯(cuò)誤,它接收來(lái)自位流處理器的出錯(cuò)報(bào)告,然后把有關(guān)錯(cuò)誤統(tǒng)計(jì)告訴位流處理器和接口管理邏輯(IML)。

  圖10 CAN控制器

  CAN控制器的信號(hào)從CAN收發(fā)器的TXD發(fā)送到總線,同時(shí)被RXD收回進(jìn)行檢測(cè),以此達(dá)到實(shí)時(shí)的接收錯(cuò)誤檢測(cè)、發(fā)送錯(cuò)誤檢測(cè)與ID仲裁功能。CAN總線是如何保證數(shù)據(jù)傳輸可靠性的,以下介紹CAN總線獨(dú)有的檢測(cè)機(jī)制:位流檢測(cè)和CRC校驗(yàn);

  位流檢測(cè):即位檢測(cè),如圖11所示節(jié)點(diǎn)在發(fā)送過(guò)程中,同時(shí)會(huì)監(jiān)測(cè)自身發(fā)送的位數(shù)值,假如檢測(cè)到位與自身送出的位數(shù)值不同,則會(huì)提示位錯(cuò)誤;

  圖11 位檢測(cè)

  CRC校驗(yàn):即循環(huán)冗余校驗(yàn)碼是數(shù)據(jù)通訊領(lǐng)域中最常用的一種差錯(cuò)校驗(yàn)碼,其信息字段和校驗(yàn)字段的長(zhǎng)度可任意選定;CRC校驗(yàn)過(guò)程是通過(guò)循環(huán)計(jì)算冗余校驗(yàn)碼的方式實(shí)現(xiàn)的,CAN控制器內(nèi)部CRC的實(shí)現(xiàn)是基于多項(xiàng)式發(fā)生器和一個(gè)15位寄存器;其意義在于保證傳輸數(shù)據(jù)的正確性,未經(jīng)CRC校驗(yàn)檢測(cè)出的錯(cuò)誤低于10負(fù)九次方。

  CANscope總線分析儀是一款綜合性的CAN總線開(kāi)發(fā)與測(cè)試的專(zhuān)業(yè)工具,集海量存儲(chǔ)示波器、網(wǎng)絡(luò)分析儀、誤碼率分析儀、協(xié)議分析儀及可靠性測(cè)試工具于一身,并把各種儀器有機(jī)的整合和關(guān)聯(lián),如圖12所示CANscope的軟件界面圖;重新定義CAN總線的開(kāi)發(fā)測(cè)試方法,可對(duì)CAN網(wǎng)絡(luò)通訊正確性、可靠性、合理性進(jìn)行多角度全方位的評(píng)估;幫助用戶快速定位故障節(jié)點(diǎn),解決CAN總線應(yīng)用的各種問(wèn)題,是CAN總線開(kāi)發(fā)測(cè)試的終極工具。

  圖12 CANscope軟件界面


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: CAN總線

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉