你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文
快速讀懂CAN-bus節(jié)點(diǎn)的錯(cuò)誤處理規(guī)則
發(fā)布時(shí)間:2016-11-11 責(zé)任編輯:susan
【導(dǎo)讀】CAN-bus的可靠性很高,但是在某些情況下還是發(fā)生錯(cuò)誤,為了使數(shù)據(jù)能夠在總線上可靠傳輸,CAN-bus規(guī)范對(duì)各類幀的格式、用途及發(fā)送時(shí)機(jī)都進(jìn)行了詳細(xì)的規(guī)定。
CAN-bus規(guī)范對(duì)各類幀的格式、用途及發(fā)送時(shí)機(jī)都進(jìn)行了詳細(xì)的規(guī)定。并實(shí)現(xiàn)在CAN控制器中自動(dòng)完成幀格式處理及校驗(yàn)等工作,一旦錯(cuò)誤被檢測(cè),正在傳送的數(shù)據(jù)幀將會(huì)立即停止而待總線空閑時(shí)再次重發(fā)直至發(fā)送成功,該過(guò)程并不需要CPU的干涉除非錯(cuò)誤累計(jì)該發(fā)送器退隱(Bus off)。
CAN-bus的可靠性很高,但是在某些情況下還是發(fā)生錯(cuò)誤,為了使數(shù)據(jù)能夠在總線上可靠傳輸,CAN-bus規(guī)范對(duì)各類幀的格式、用途及發(fā)送時(shí)機(jī)都進(jìn)行了詳細(xì)的規(guī)定。下面我們來(lái)總結(jié)下在CAN通訊中會(huì)出現(xiàn)哪些錯(cuò)誤。
圖一
位錯(cuò)誤:發(fā)送節(jié)點(diǎn)在發(fā)送數(shù)據(jù)的同時(shí)也會(huì)對(duì)發(fā)出的比特流采樣回收,如果監(jiān)測(cè)到總線電平與正在發(fā)送的電平不符,將會(huì)發(fā)生位錯(cuò)誤(Bit Check Error);
位填充錯(cuò)誤:為解決異步串行通訊中共有的缺點(diǎn)——各節(jié)點(diǎn)通訊時(shí)鐘不同步,CAN-bus采用了一種同步的方式,規(guī)定每隔5個(gè)位的時(shí)間長(zhǎng)度進(jìn)行一次同步,當(dāng)傳輸信號(hào)連續(xù)5個(gè)位是相同的,就要插入一個(gè)點(diǎn)評(píng)相反的位(稱為“填充位”),如果電纜上傳輸?shù)男盘?hào)不滿足這一規(guī)則,則會(huì)出現(xiàn)填充位錯(cuò)誤(Bit Stuff Error);
CRC錯(cuò)誤:發(fā)送端發(fā)送的CRC值由發(fā)送器計(jì)算得出,接收器采用同樣的CRC算法,計(jì)算出接收端CRC值,若接收器計(jì)算的CRC值與接收到的CRC值不符,將會(huì)產(chǎn)生該類錯(cuò)誤(CRC Error);
格式錯(cuò)誤:當(dāng)傳輸?shù)臄?shù)據(jù)幀格式與任何一種合法的幀格式不符時(shí)會(huì)發(fā)生該類格式錯(cuò)誤(Frame Check Error);
應(yīng)答錯(cuò)誤:如果在ACK段發(fā)送節(jié)點(diǎn)沒(méi)有接收到接收節(jié)點(diǎn)發(fā)出的應(yīng)答(顯性位),將發(fā)生應(yīng)答錯(cuò)誤(Acknowledgment Error),所以當(dāng)單個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)幀時(shí)會(huì)發(fā)生該類錯(cuò)誤。
錯(cuò)誤幀在總線信號(hào)傳輸中起著信號(hào)燈的作用,接收和發(fā)送過(guò)程中如果檢測(cè)到通信出錯(cuò),便會(huì)發(fā)送錯(cuò)誤幀,錯(cuò)誤幀由錯(cuò)誤標(biāo)識(shí)符以及錯(cuò)誤界定符構(gòu)成。其中錯(cuò)誤標(biāo)識(shí)符分為兩種:“主動(dòng)錯(cuò)誤”和“被動(dòng)錯(cuò)誤”。
主動(dòng)錯(cuò)誤狀態(tài)下,只要檢查到錯(cuò)誤,它立即“主動(dòng)地”發(fā)出錯(cuò)標(biāo)識(shí)。所謂“出錯(cuò)標(biāo)識(shí)“,它本身就是一個(gè)“錯(cuò)誤的位序列”(連續(xù)的6個(gè)顯性位,不滿足CAN協(xié)議的“最多5個(gè)連續(xù)的同性位”要求),目的是“主動(dòng)地”告訴大家:即使你們沒(méi)有發(fā)現(xiàn)“剛才我已發(fā)現(xiàn)”的錯(cuò)誤,現(xiàn)在我“以身作則”出錯(cuò)啦!你們?cè)摽吹竭@個(gè)錯(cuò)誤了吧!
如果處于被動(dòng)狀態(tài)下,檢查到錯(cuò)誤,它只能干瞪眼“被動(dòng)地”等別人(主動(dòng)報(bào)錯(cuò)站點(diǎn))報(bào)錯(cuò),等待的時(shí)候它可不能去動(dòng)總線,直到識(shí)別出由主動(dòng)報(bào)錯(cuò)站點(diǎn)發(fā)出 的“錯(cuò)誤的位序列”,它才松了一口氣:有人正式報(bào)錯(cuò)了!然后他就可以去競(jìng)爭(zhēng)總線,該干啥干啥。
為了避免某個(gè)設(shè)備因?yàn)樽陨碓颍ɡ缬布p壞)導(dǎo)致無(wú)法正常收發(fā)數(shù)據(jù)而不斷地破壞數(shù)據(jù)幀,從而影響其他正常節(jié)點(diǎn)通訊,CAN-bus規(guī)范中規(guī)定每個(gè)CAN控制器都有一個(gè)發(fā)送錯(cuò)誤計(jì)數(shù)器和一個(gè)接收計(jì)數(shù)器。根據(jù)計(jì)數(shù)值不同CAN節(jié)點(diǎn)會(huì)處于不同的設(shè)備狀態(tài),狀態(tài)之間的轉(zhuǎn)換關(guān)系見(jiàn)下圖:
特別推薦
- 是否存在有關(guān) PCB 走線電感的經(jīng)驗(yàn)法則?
- 一文看懂電壓轉(zhuǎn)換的級(jí)聯(lián)和混合概念
- 第12講:三菱電機(jī)高壓SiC芯片技術(shù)
- 準(zhǔn) Z 源逆變器的設(shè)計(jì)
- 貿(mào)澤電子持續(xù)擴(kuò)充工業(yè)自動(dòng)化產(chǎn)品陣容
- 低功耗嵌入式設(shè)計(jì)簡(jiǎn)介
- 如何通過(guò)基本描述找到需要的電容?
技術(shù)文章更多>>
- 混合信號(hào)示波器的原理和應(yīng)用
- 功率器件熱設(shè)計(jì)基礎(chǔ)(十)——功率半導(dǎo)體器件的結(jié)構(gòu)函數(shù)
- JFET 共源共柵提高了電流源性能
- 福耀玻璃曹德旺主席蒞臨深圳傲科指導(dǎo)交流并與傲科達(dá)成戰(zhàn)略合作意向
- 京東工業(yè)元器件自營(yíng)服務(wù)商配套能力再升級(jí) 與廣東芯博通達(dá)成合作
技術(shù)白皮書(shū)下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索