CAN總線的通信錯(cuò)誤及其處理
發(fā)布時(shí)間:2009/1/13 0:00:00 訪問次數(shù):729
在can總線中存在5種錯(cuò)誤類型,它們互相并不排斥,下面簡(jiǎn)單介紹一下它們的區(qū)別、產(chǎn)生的原因及處理方法。
位錯(cuò)誤:向總線送出一位的某個(gè)節(jié)點(diǎn)同時(shí)也在監(jiān)視總線,當(dāng)監(jiān)視到總線位的電平與送出的電平不同時(shí)9則在該位時(shí)刻檢測(cè)到一個(gè)位錯(cuò)誤。但是在仲裁區(qū)的填充位流期間或應(yīng)答間隙送出隱性位而檢測(cè)到顯性位時(shí),不認(rèn)為是錯(cuò)誤位。送出認(rèn)可錯(cuò)誤標(biāo)注的發(fā)送器,在檢測(cè)到顯性位時(shí)也不認(rèn)為是錯(cuò)誤位。
填充錯(cuò)誤:在使用位填充方法進(jìn)行編碼的報(bào)文中,出現(xiàn)了第6個(gè)連續(xù)相同的位電平時(shí),將檢 測(cè)出一個(gè)填充錯(cuò)誤。
crc錯(cuò)誤:crc序列是由發(fā)送器crc計(jì)算的結(jié)果組成的。接收器以與發(fā)送器相同的方法計(jì)算crc。如果計(jì)算的結(jié)果與接收到的crc序列不同,則檢測(cè)出一個(gè)crc錯(cuò)誤。
形式錯(cuò)誤: 當(dāng)固定形式的位區(qū)中出現(xiàn)一個(gè)或多個(gè)非法位時(shí),則檢測(cè)到一個(gè)形式錯(cuò)誤。
應(yīng)答錯(cuò)誤:在應(yīng)答間隙,發(fā)送器未檢測(cè)到顯性位時(shí),則由它檢測(cè)出一個(gè)應(yīng)答錯(cuò)誤。
檢測(cè)到出錯(cuò)條件的節(jié)點(diǎn)通過發(fā)送錯(cuò)誤標(biāo)志進(jìn)行標(biāo)定。當(dāng)任何節(jié)點(diǎn)檢測(cè)出位錯(cuò)誤、填充錯(cuò)誤、形式錯(cuò)誤或應(yīng)答錯(cuò)誤時(shí),由該節(jié)點(diǎn)在下一位開始發(fā)送出錯(cuò)誤標(biāo)志。
當(dāng)檢測(cè)到crc錯(cuò)誤時(shí)。出錯(cuò)標(biāo)志在應(yīng)答界定符后面那一位開始發(fā)送.除非其他出錯(cuò)條件的錯(cuò)誤標(biāo)志已經(jīng)開始發(fā)送。
在can總線中,任何一個(gè)單元可能處于下列3種故障狀態(tài)之一:錯(cuò)誤激活狀態(tài)(erroractive)、錯(cuò)誤認(rèn)可狀態(tài)(error pasitive)和總線關(guān)閉狀態(tài)(bus off)。
錯(cuò)誤激活單元可以照常參與總線通信,并且當(dāng)檢測(cè)到錯(cuò)誤時(shí),送出一個(gè)活動(dòng)錯(cuò)誤標(biāo)志。錯(cuò)誤 認(rèn)可節(jié)點(diǎn)可參與總線通信,但是不允許送出活動(dòng)錯(cuò)誤標(biāo)志。當(dāng)其檢測(cè)到錯(cuò)誤時(shí),只能送出認(rèn)可錯(cuò) 誤標(biāo)志,并且發(fā)送后仍為錯(cuò)誤認(rèn)可狀態(tài),直到下一次發(fā)送初始化?偩關(guān)閉狀態(tài)不允許單元對(duì)總 線有任何影響。
為了界定故障,在每個(gè)總線單元中都設(shè)有2個(gè)計(jì)數(shù):發(fā)送出錯(cuò)計(jì)數(shù)和接收出錯(cuò)計(jì)數(shù)。這些 計(jì)數(shù)按照下列規(guī)則進(jìn)行。
。1)接收器檢查出錯(cuò)誤時(shí),接收器錯(cuò)誤計(jì)數(shù)器加1,除非所有檢測(cè)錯(cuò)誤是發(fā)送活動(dòng)錯(cuò)誤標(biāo)志或超載標(biāo)志期間的位錯(cuò)誤。
。2)接收器在送出錯(cuò)誤標(biāo)志后的第一位檢查出顯性位時(shí),錯(cuò)誤計(jì)數(shù)器加8。
。3)發(fā)送器送出一個(gè)錯(cuò)誤標(biāo)志時(shí),發(fā)送器錯(cuò)誤計(jì)數(shù)器加8。有兩種情況例外:其一是如果發(fā) 送器為錯(cuò)誤認(rèn)可,由于未檢測(cè)到顯性位應(yīng)答或檢測(cè)到應(yīng)答錯(cuò)誤,并且在送出其認(rèn)可錯(cuò)誤標(biāo)志時(shí),未檢測(cè)到顯性位;另外一種情況是如果仲裁器件產(chǎn)生填充錯(cuò)誤,發(fā)送器送出一個(gè)隱性位錯(cuò)誤標(biāo)志,而檢測(cè)到的是顯性位。除以上兩種情況外,發(fā)送器錯(cuò)誤計(jì)數(shù)器計(jì)數(shù)不改變。
。4)發(fā)送器送出一個(gè)活動(dòng)錯(cuò)誤標(biāo)志或超載標(biāo)志時(shí),檢測(cè)到位錯(cuò)誤,則發(fā)送器錯(cuò)誤計(jì)數(shù)器加8。
。5)在送出活動(dòng)鐠誤標(biāo)志、認(rèn)可錯(cuò)誤標(biāo)志或超載錯(cuò)誤標(biāo)志后,任何節(jié)點(diǎn)都最多允許連續(xù)7個(gè)顯性位。在檢測(cè)到第11個(gè)連續(xù)顯性位后,或緊隨認(rèn)可錯(cuò)誤標(biāo)志檢測(cè)到第8個(gè)連續(xù)的顯性位,以及附加的8個(gè)連續(xù)的顯性位的每個(gè)序列后,每個(gè)發(fā)送器的發(fā)送錯(cuò)誤計(jì)數(shù)都加8,并且每個(gè)接收器的接收錯(cuò)誤計(jì)數(shù)也加8。
。6)報(bào)文成功發(fā)送后,發(fā)送錯(cuò)誤計(jì)數(shù)減1,除非計(jì)數(shù)值已經(jīng)為0。
。7)報(bào)文成功發(fā)送后,如果接收錯(cuò)誤計(jì)數(shù)處于1~197之間,則其值減1;如果接收錯(cuò)誤計(jì)數(shù)為0,則仍保持為0;如果大于127,則將其值記為119~127之間的某個(gè)數(shù)值。
(8)當(dāng)發(fā)送錯(cuò)誤計(jì)數(shù)等于或大于128,或接收錯(cuò)誤汁數(shù)等于或大于128時(shí),節(jié)點(diǎn)進(jìn)人錯(cuò)誤認(rèn),可狀態(tài),節(jié)點(diǎn)送出一個(gè)活動(dòng)錯(cuò)誤標(biāo)志。
(9)當(dāng)發(fā)送錯(cuò)誤計(jì)數(shù)器大于或等于256時(shí),節(jié)點(diǎn)進(jìn)人總線關(guān)閉狀態(tài)。
(1o)當(dāng)發(fā)送錯(cuò)誤計(jì)數(shù)和接收錯(cuò)誤計(jì)數(shù)均小于或等于127時(shí),錯(cuò)誤認(rèn)可節(jié)點(diǎn)再次變?yōu)殄e(cuò)誤激活節(jié)點(diǎn)。
。11)在檢測(cè)到總線上11個(gè)連續(xù)的隱性位發(fā)送128次后,總線關(guān)閉節(jié)點(diǎn)將變?yōu)?個(gè)錯(cuò)誤計(jì)數(shù)器均為0的錯(cuò)誤激活節(jié)點(diǎn)。
。12)當(dāng)錯(cuò)誤計(jì)數(shù)器數(shù)值大于96時(shí),說明總線被嚴(yán)重干擾。
如果系統(tǒng)啟動(dòng)期間僅有1個(gè)節(jié)點(diǎn)掛在總線上,此節(jié)點(diǎn)發(fā)出報(bào)文后,將得不到應(yīng)答,檢查出錯(cuò)誤并重復(fù)該報(bào)文,此時(shí)該節(jié)點(diǎn)可以變?yōu)殄e(cuò)誤認(rèn)可節(jié)點(diǎn),但不會(huì)因此關(guān)閉總線。
歡迎轉(zhuǎn)載,信息來源維庫電子市場(chǎng)網(wǎng)(www.dzsc.com)
在can總線中存在5種錯(cuò)誤類型,它們互相并不排斥,下面簡(jiǎn)單介紹一下它們的區(qū)別、產(chǎn)生的原因及處理方法。
位錯(cuò)誤:向總線送出一位的某個(gè)節(jié)點(diǎn)同時(shí)也在監(jiān)視總線,當(dāng)監(jiān)視到總線位的電平與送出的電平不同時(shí)9則在該位時(shí)刻檢測(cè)到一個(gè)位錯(cuò)誤。但是在仲裁區(qū)的填充位流期間或應(yīng)答間隙送出隱性位而檢測(cè)到顯性位時(shí),不認(rèn)為是錯(cuò)誤位。送出認(rèn)可錯(cuò)誤標(biāo)注的發(fā)送器,在檢測(cè)到顯性位時(shí)也不認(rèn)為是錯(cuò)誤位。
填充錯(cuò)誤:在使用位填充方法進(jìn)行編碼的報(bào)文中,出現(xiàn)了第6個(gè)連續(xù)相同的位電平時(shí),將檢 測(cè)出一個(gè)填充錯(cuò)誤。
crc錯(cuò)誤:crc序列是由發(fā)送器crc計(jì)算的結(jié)果組成的。接收器以與發(fā)送器相同的方法計(jì)算crc。如果計(jì)算的結(jié)果與接收到的crc序列不同,則檢測(cè)出一個(gè)crc錯(cuò)誤。
形式錯(cuò)誤: 當(dāng)固定形式的位區(qū)中出現(xiàn)一個(gè)或多個(gè)非法位時(shí),則檢測(cè)到一個(gè)形式錯(cuò)誤。
應(yīng)答錯(cuò)誤:在應(yīng)答間隙,發(fā)送器未檢測(cè)到顯性位時(shí),則由它檢測(cè)出一個(gè)應(yīng)答錯(cuò)誤。
檢測(cè)到出錯(cuò)條件的節(jié)點(diǎn)通過發(fā)送錯(cuò)誤標(biāo)志進(jìn)行標(biāo)定。當(dāng)任何節(jié)點(diǎn)檢測(cè)出位錯(cuò)誤、填充錯(cuò)誤、形式錯(cuò)誤或應(yīng)答錯(cuò)誤時(shí),由該節(jié)點(diǎn)在下一位開始發(fā)送出錯(cuò)誤標(biāo)志。
當(dāng)檢測(cè)到crc錯(cuò)誤時(shí)。出錯(cuò)標(biāo)志在應(yīng)答界定符后面那一位開始發(fā)送.除非其他出錯(cuò)條件的錯(cuò)誤標(biāo)志已經(jīng)開始發(fā)送。
在can總線中,任何一個(gè)單元可能處于下列3種故障狀態(tài)之一:錯(cuò)誤激活狀態(tài)(erroractive)、錯(cuò)誤認(rèn)可狀態(tài)(error pasitive)和總線關(guān)閉狀態(tài)(bus off)。
錯(cuò)誤激活單元可以照常參與總線通信,并且當(dāng)檢測(cè)到錯(cuò)誤時(shí),送出一個(gè)活動(dòng)錯(cuò)誤標(biāo)志。錯(cuò)誤 認(rèn)可節(jié)點(diǎn)可參與總線通信,但是不允許送出活動(dòng)錯(cuò)誤標(biāo)志。當(dāng)其檢測(cè)到錯(cuò)誤時(shí),只能送出認(rèn)可錯(cuò) 誤標(biāo)志,并且發(fā)送后仍為錯(cuò)誤認(rèn)可狀態(tài),直到下一次發(fā)送初始化?偩關(guān)閉狀態(tài)不允許單元對(duì)總 線有任何影響。
為了界定故障,在每個(gè)總線單元中都設(shè)有2個(gè)計(jì)數(shù):發(fā)送出錯(cuò)計(jì)數(shù)和接收出錯(cuò)計(jì)數(shù)。這些 計(jì)數(shù)按照下列規(guī)則進(jìn)行。
。1)接收器檢查出錯(cuò)誤時(shí),接收器錯(cuò)誤計(jì)數(shù)器加1,除非所有檢測(cè)錯(cuò)誤是發(fā)送活動(dòng)錯(cuò)誤標(biāo)志或超載標(biāo)志期間的位錯(cuò)誤。
。2)接收器在送出錯(cuò)誤標(biāo)志后的第一位檢查出顯性位時(shí),錯(cuò)誤計(jì)數(shù)器加8。
。3)發(fā)送器送出一個(gè)錯(cuò)誤標(biāo)志時(shí),發(fā)送器錯(cuò)誤計(jì)數(shù)器加8。有兩種情況例外:其一是如果發(fā) 送器為錯(cuò)誤認(rèn)可,由于未檢測(cè)到顯性位應(yīng)答或檢測(cè)到應(yīng)答錯(cuò)誤,并且在送出其認(rèn)可錯(cuò)誤標(biāo)志時(shí),未檢測(cè)到顯性位;另外一種情況是如果仲裁器件產(chǎn)生填充錯(cuò)誤,發(fā)送器送出一個(gè)隱性位錯(cuò)誤標(biāo)志,而檢測(cè)到的是顯性位。除以上兩種情況外,發(fā)送器錯(cuò)誤計(jì)數(shù)器計(jì)數(shù)不改變。
。4)發(fā)送器送出一個(gè)活動(dòng)錯(cuò)誤標(biāo)志或超載標(biāo)志時(shí),檢測(cè)到位錯(cuò)誤,則發(fā)送器錯(cuò)誤計(jì)數(shù)器加8。
。5)在送出活動(dòng)鐠誤標(biāo)志、認(rèn)可錯(cuò)誤標(biāo)志或超載錯(cuò)誤標(biāo)志后,任何節(jié)點(diǎn)都最多允許連續(xù)7個(gè)顯性位。在檢測(cè)到第11個(gè)連續(xù)顯性位后,或緊隨認(rèn)可錯(cuò)誤標(biāo)志檢測(cè)到第8個(gè)連續(xù)的顯性位,以及附加的8個(gè)連續(xù)的顯性位的每個(gè)序列后,每個(gè)發(fā)送器的發(fā)送錯(cuò)誤計(jì)數(shù)都加8,并且每個(gè)接收器的接收錯(cuò)誤計(jì)數(shù)也加8。
。6)報(bào)文成功發(fā)送后,發(fā)送錯(cuò)誤計(jì)數(shù)減1,除非計(jì)數(shù)值已經(jīng)為0。
(7)報(bào)文成功發(fā)送后,如果接收錯(cuò)誤計(jì)數(shù)處于1~197之間,則其值減1;如果接收錯(cuò)誤計(jì)數(shù)為0,則仍保持為0;如果大于127,則將其值記為119~127之間的某個(gè)數(shù)值。
。8)當(dāng)發(fā)送錯(cuò)誤計(jì)數(shù)等于或大于128,或接收錯(cuò)誤汁數(shù)等于或大于128時(shí),節(jié)點(diǎn)進(jìn)人錯(cuò)誤認(rèn),可狀態(tài),節(jié)點(diǎn)送出一個(gè)活動(dòng)錯(cuò)誤標(biāo)志。
。9)當(dāng)發(fā)送錯(cuò)誤計(jì)數(shù)器大于或等于256時(shí),節(jié)點(diǎn)進(jìn)人總線關(guān)閉狀態(tài)。
(1o)當(dāng)發(fā)送錯(cuò)誤計(jì)數(shù)和接收錯(cuò)誤計(jì)數(shù)均小于或等于127時(shí),錯(cuò)誤認(rèn)可節(jié)點(diǎn)再次變?yōu)殄e(cuò)誤激活節(jié)點(diǎn)。
。11)在檢測(cè)到總線上11個(gè)連續(xù)的隱性位發(fā)送128次后,總線關(guān)閉節(jié)點(diǎn)將變?yōu)?個(gè)錯(cuò)誤計(jì)數(shù)器均為0的錯(cuò)誤激活節(jié)點(diǎn)。
。12)當(dāng)錯(cuò)誤計(jì)數(shù)器數(shù)值大于96時(shí),說明總線被嚴(yán)重干擾。
如果系統(tǒng)啟動(dòng)期間僅有1個(gè)節(jié)點(diǎn)掛在總線上,此節(jié)點(diǎn)發(fā)出報(bào)文后,將得不到應(yīng)答,檢查出錯(cuò)誤并重復(fù)該報(bào)文,此時(shí)該節(jié)點(diǎn)可以變?yōu)殄e(cuò)誤認(rèn)可節(jié)點(diǎn),但不會(huì)因此關(guān)閉總線。
歡迎轉(zhuǎn)載,信息來源維庫電子市場(chǎng)網(wǎng)(www.dzsc.com)
上一篇:eCAN總線模塊概述
上一篇:CAN總線的物理連接
熱門點(diǎn)擊
- USB接口內(nèi)部結(jié)構(gòu)
- USB封包格式
- A/D轉(zhuǎn)換過程
- CAN總線的仲裁
- USB通信協(xié)議——傳輸類型
- JTAG接線描述
- A/D變換類型
- eCAN總線模塊的位時(shí)間(Bit-Timin
- 外部DMA請(qǐng)求/應(yīng)答協(xié)議
- USB硬件原理圖
推薦技術(shù)資料
- AMOLED顯示驅(qū)動(dòng)芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計(jì)
- GB300 超級(jí)芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個(gè)最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究