CAN總線(xiàn)局部錯誤及全局通知分析
局部錯誤,全局通知是CAN總線(xiàn)錯誤類(lèi)型中較為典型的一種,如何通過(guò)錯誤報文及波形快速定位錯誤原因呢?本文結合現場(chǎng)實(shí)測案例簡(jiǎn)要分析。
本文引用地址:http://dyxdggzs.com/article/201710/370313.htm在CAN總線(xiàn)中存在5種錯誤類(lèi)型,如圖1所示:它們互相并不排斥,下面簡(jiǎn)單介紹一下它們的區別、產(chǎn)生的原因。

圖1 5種錯誤類(lèi)型
位錯誤:向總線(xiàn)送出一位的某個(gè)節點(diǎn)同時(shí)也在監視總線(xiàn),當監視到總線(xiàn)位的電平和送出的電平不同時(shí),則在該位時(shí)刻檢測到一個(gè)位錯誤。但是在仲裁區的填充位流期間或應答間隙送出隱性位而檢測到顯性位時(shí),不認為是錯誤位。
填充錯誤:在使用位填充方法進(jìn)行編碼的報文中(幀起始到CR序列),出現了第6個(gè)連續相同的位電平時(shí),將檢 測出一個(gè)填充錯誤。
CRC錯誤:CRC序列是由發(fā)送器CRC計算的結果組成的。接收器以和發(fā)送器相同的方法計算CRC。如果計算的結果和接收到的CRC序列不同,則檢測出一個(gè)CRC錯誤。
格式錯誤: 當固定格式的位區中(如CRC認可位、ACK認可位、幀結束位)出現一個(gè)或多個(gè)非法位時(shí),則檢測到一個(gè)形式錯誤。
應答錯誤:在應答間隙,每一個(gè)接收端都會(huì )向總線(xiàn)回一個(gè)顯性位,如果發(fā)送端在A(yíng)CK場(chǎng)檢測不到顯性位應答,將產(chǎn)生應答錯誤。
當出現5種錯誤類(lèi)型之一時(shí),發(fā)送或接收節點(diǎn)將發(fā)送錯誤幀。其中錯誤幀 又分主動(dòng)錯誤幀和被動(dòng)錯誤幀。
主動(dòng)錯誤幀由處于主動(dòng)錯誤狀態(tài)的節點(diǎn)發(fā)送 ,幀格式由主動(dòng)錯誤標志(6個(gè)連續顯性位)+錯誤標志疊加(0~6個(gè)連續顯性位)+錯誤界定符(8個(gè)連續的隱性位)組成。主動(dòng)錯誤幀格式如圖2所示:

圖2 主動(dòng)錯誤幀格式
被動(dòng)錯誤幀由被動(dòng)錯誤狀態(tài)的節點(diǎn)發(fā)送,幀格式由被動(dòng)錯誤標志(6個(gè)連續隱性位)+錯誤標志疊加(0~6個(gè)連續顯性位)+錯誤界定符(8個(gè)連續的隱性位)組成。被動(dòng)錯誤標志能夠部分或全部被其它節點(diǎn)的顯性位覆蓋。如下:

圖3被動(dòng)錯誤幀格式
二、什么是局部錯誤?
在整個(gè)CAN網(wǎng)絡(luò )中,由于干擾等原因引起總線(xiàn)局部錯誤(即某一個(gè)CAN節點(diǎn)出錯,其他節點(diǎn)正常),CAN總線(xiàn)上的主動(dòng)報錯站點(diǎn)首先檢測到錯誤,并立即主動(dòng)向總線(xiàn)上發(fā)出錯誤標識,通知其他未發(fā)現錯誤的節點(diǎn),如圖4所示:

圖4 錯誤幀的發(fā)送(局部錯誤)
檢測錯誤---發(fā)送錯誤幀---通知報文錯誤:首先,發(fā)送節點(diǎn)檢測到總線(xiàn)錯誤,發(fā)出錯誤標識——六個(gè)連續的顯性電平位,總線(xiàn)接收到錯誤標識后進(jìn)行全局通知——0~6個(gè)連續的顯性電平位+8個(gè)連續的隱性電平位,告知其他節點(diǎn)總線(xiàn)錯誤。
三、局部錯誤,全局通知案例分析
某純電動(dòng)公交車(chē),在啟動(dòng)車(chē)輛未啟動(dòng)電機時(shí),總線(xiàn)報文成功率很高,基本沒(méi)有錯誤幀,但在啟動(dòng)電機后,特別是踩氣泵剎車(chē)時(shí),每踩一次踩氣泵就會(huì )涌現出較多的錯誤幀。整車(chē)的簡(jiǎn)單拓撲如圖5所示:

圖5 整車(chē)通信簡(jiǎn)易拓撲
使用ZLG致遠電子總線(xiàn)分析儀CANscope連接方向盤(pán)下的OBD接口測試,通過(guò)踩氣泵剎車(chē),產(chǎn)生了較多的錯誤幀,主要為填充錯誤和格式錯誤,分析錯誤幀波形如圖6:

圖6 錯誤幀的波形圖
從藍色標記可以看到,ACK應答后,先有一個(gè)低臺階,再二次抬高的錯誤幀。

圖7 錯誤標志分析
CAN網(wǎng)絡(luò )波特率為250 Kbps,即每個(gè)位為4us,由圖7知,錯誤標志為7個(gè)顯性位(主動(dòng)錯誤標志+錯誤標志疊加)組成,二次抬高的6個(gè)連續顯性電平,是局部錯誤后全局通知,各節點(diǎn)錯誤標志疊加造成的。也就是說(shuō)車(chē)網(wǎng)絡(luò )上有某一CAN節點(diǎn)較容易受到干擾,出現局部錯誤。
如何快速分析局部錯誤,定位干擾源呢?
由于是局部錯誤,干擾源在不同的測試點(diǎn)幅值是不同的,使用致遠電子CANScope接入車(chē)前端的OBD接口和車(chē)尾部的電機控制器分別測試,結果如圖8所示:

圖8 共模干擾對比
由上圖所示,在OBD接口測試的共模幅值為700多mV,在電機控制器節點(diǎn)測試的共模幅值為1.3V左右,同時(shí)可看到周期性的干擾脈沖。通過(guò)對異常共模信號做FFT頻譜分析,快速定位共模干擾頻率,測試結果如圖9所示:

圖9 共模干擾分析
測試出的干擾頻率與電機驅動(dòng)器頻率吻合,推斷為驅動(dòng)器逆變產(chǎn)生的巨大電流形成強干擾,串擾到CAN總線(xiàn)上,導致距離其較近的節點(diǎn)出現局部錯誤。
局部錯誤,全局通知是一種常見(jiàn)的錯誤類(lèi)型,如何快速定位到錯誤報文及其對應的波形是分析問(wèn)題的關(guān)鍵,通過(guò)CANScope總線(xiàn)分析儀的報文接收和示波器,可將每一幀報文與波形做一一對應,快速分析報文及波形情況,實(shí)現CAN總線(xiàn)的快速故障定位和干擾排除。
評論