局部錯(cuò)誤,全局通知是CAN總線錯(cuò)誤類型中較為典型的一種,如何通過(guò)錯(cuò)誤報(bào)文及波形快速定位錯(cuò)誤原因呢,?本文結(jié)合現(xiàn)場(chǎng)實(shí)測(cè)案例簡(jiǎn)要分析,。
一,、CAN總線錯(cuò)誤簡(jiǎn)介
在CAN總線中存在5種錯(cuò)誤類型,如圖1所示:它們互相并不排斥,,下面簡(jiǎn)單介紹一下它們的區(qū)別,、產(chǎn)生的原因。
圖1 5種錯(cuò)誤類型
位錯(cuò)誤:向總線送出一位的某個(gè)節(jié)點(diǎn)同時(shí)也在監(jiān)視總線,,當(dāng)監(jiān)視到總線位的電平和送出的電平不同時(shí),則在該位時(shí)刻檢測(cè)到一個(gè)位錯(cuò)誤,。但是在仲裁區(qū)的填充位流期間或應(yīng)答間隙送出隱性位而檢測(cè)到顯性位時(shí),不認(rèn)為是錯(cuò)誤位,。
填充錯(cuò)誤:在使用位填充方法進(jìn)行編碼的報(bào)文中(幀起始到CR序列),,出現(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ū)中(如CRC認(rèn)可位、ACK認(rèn)可位,、幀結(jié)束位)出現(xiàn)一個(gè)或多個(gè)非法位時(shí),,則檢測(cè)到一個(gè)形式錯(cuò)誤。
應(yīng)答錯(cuò)誤:在應(yīng)答間隙,,每一個(gè)接收端都會(huì)向總線回一個(gè)顯性位,,如果發(fā)送端在ACK場(chǎng)檢測(cè)不到顯性位應(yīng)答,將產(chǎn)生應(yīng)答錯(cuò)誤,。
當(dāng)出現(xiàn)5種錯(cuò)誤類型之一時(shí),,發(fā)送或接收節(jié)點(diǎn)將發(fā)送錯(cuò)誤幀。其中錯(cuò)誤幀 又分主動(dòng)錯(cuò)誤幀和被動(dòng)錯(cuò)誤幀,。
主動(dòng)錯(cuò)誤幀由處于主動(dòng)錯(cuò)誤狀態(tài)的節(jié)點(diǎn)發(fā)送 ,,幀格式由主動(dòng)錯(cuò)誤標(biāo)志(6個(gè)連續(xù)顯性位)+錯(cuò)誤標(biāo)志疊加(0~6個(gè)連續(xù)顯性位)+錯(cuò)誤界定符(8個(gè)連續(xù)的隱性位)組成。主動(dòng)錯(cuò)誤幀格式如圖2所示:
圖2 主動(dòng)錯(cuò)誤幀格式
被動(dòng)錯(cuò)誤幀由被動(dòng)錯(cuò)誤狀態(tài)的節(jié)點(diǎn)發(fā)送,,幀格式由被動(dòng)錯(cuò)誤標(biāo)志(6個(gè)連續(xù)隱性位)+錯(cuò)誤標(biāo)志疊加(0~6個(gè)連續(xù)顯性位)+錯(cuò)誤界定符(8個(gè)連續(xù)的隱性位)組成。被動(dòng)錯(cuò)誤標(biāo)志能夠部分或全部被其它節(jié)點(diǎn)的顯性位覆蓋,。如下:
圖3被動(dòng)錯(cuò)誤幀格式
二,、什么是局部錯(cuò)誤?
在整個(gè)CAN網(wǎng)絡(luò)中,,由于干擾等原因引起總線局部錯(cuò)誤(即某一個(gè)CAN節(jié)點(diǎn)出錯(cuò),,其他節(jié)點(diǎn)正常),CAN總線上的主動(dòng)報(bào)錯(cuò)站點(diǎn)首先檢測(cè)到錯(cuò)誤,并立即主動(dòng)向總線上發(fā)出錯(cuò)誤標(biāo)識(shí),,通知其他未發(fā)現(xiàn)錯(cuò)誤的節(jié)點(diǎn),,如圖4所示:
圖4 錯(cuò)誤幀的發(fā)送(局部錯(cuò)誤)
檢測(cè)錯(cuò)誤---發(fā)送錯(cuò)誤幀---通知報(bào)文錯(cuò)誤:首先,發(fā)送節(jié)點(diǎn)檢測(cè)到總線錯(cuò)誤,,發(fā)出錯(cuò)誤標(biāo)識(shí)——六個(gè)連續(xù)的顯性電平位,,總線接收到錯(cuò)誤標(biāo)識(shí)后進(jìn)行全局通知——0~6個(gè)連續(xù)的顯性電平位+8個(gè)連續(xù)的隱性電平位,告知其他節(jié)點(diǎn)總線錯(cuò)誤,。
三,、局部錯(cuò)誤,全局通知案例分析
某純電動(dòng)公交車,,在啟動(dòng)車輛未啟動(dòng)電機(jī)時(shí),,總線報(bào)文成功率很高,基本沒(méi)有錯(cuò)誤幀,,但在啟動(dòng)電機(jī)后,,特別是踩氣泵剎車時(shí),每踩一次踩氣泵就會(huì)涌現(xiàn)出較多的錯(cuò)誤幀,。整車的簡(jiǎn)單拓?fù)淙鐖D5所示:
圖5 整車通信簡(jiǎn)易拓?fù)?br/>
使用ZLG致遠(yuǎn)電子總線分析儀CANscope連接方向盤下的OBD接口測(cè)試,,通過(guò)踩氣泵剎車,產(chǎn)生了較多的錯(cuò)誤幀,,主要為填充錯(cuò)誤和格式錯(cuò)誤,,分析錯(cuò)誤幀波形如圖6:
圖6 錯(cuò)誤幀的波形圖
從藍(lán)色標(biāo)記可以看到,ACK應(yīng)答后,,先有一個(gè)低臺(tái)階,,再二次抬高的錯(cuò)誤幀。
圖7 錯(cuò)誤標(biāo)志分析
CAN網(wǎng)絡(luò)波特率為250 Kbps,,即每個(gè)位為4us,由圖7知,,錯(cuò)誤標(biāo)志為7個(gè)顯性位(主動(dòng)錯(cuò)誤標(biāo)志+錯(cuò)誤標(biāo)志疊加)組成,二次抬高的6個(gè)連續(xù)顯性電平,,是局部錯(cuò)誤后全局通知,,各節(jié)點(diǎn)錯(cuò)誤標(biāo)志疊加造成的。也就是說(shuō)車網(wǎng)絡(luò)上有某一CAN節(jié)點(diǎn)較容易受到干擾,,出現(xiàn)局部錯(cuò)誤,。
如何快速分析局部錯(cuò)誤,定位干擾源呢,?
由于是局部錯(cuò)誤,,干擾源在不同的測(cè)試點(diǎn)幅值是不同的,使用致遠(yuǎn)電子CANScope接入車前端的OBD接口和車尾部的電機(jī)控制器分別測(cè)試,,結(jié)果如圖8所示:
圖8 共模干擾對(duì)比
由上圖所示,,在OBD接口測(cè)試的共模幅值為700多mV,在電機(jī)控制器節(jié)點(diǎn)測(cè)試的共模幅值為1.3V左右,,同時(shí)可看到周期性的干擾脈沖。通過(guò)對(duì)異常共模信號(hào)做FFT頻譜分析,,快速定位共模干擾頻率,,測(cè)試結(jié)果如圖9所示:
圖9 共模干擾分析
測(cè)試出的干擾頻率與電機(jī)驅(qū)動(dòng)器頻率吻合,推斷為驅(qū)動(dòng)器逆變產(chǎn)生的巨大電流形成強(qiáng)干擾,,串?dāng)_到CAN總線上,,導(dǎo)致距離其較近的節(jié)點(diǎn)出現(xiàn)局部錯(cuò)誤。
局部錯(cuò)誤,,全局通知是一種常見(jiàn)的錯(cuò)誤類型,,如何快速定位到錯(cuò)誤報(bào)文及其對(duì)應(yīng)的波形是分析問(wèn)題的關(guān)鍵,通過(guò)CANScope總線分析儀的報(bào)文接收和示波器,,可將每一幀報(bào)文與波形做一一對(duì)應(yīng),,快速分析報(bào)文及波形情況,實(shí)現(xiàn)CAN總線的快速故障定位和干擾排除,。