CAN節(jié)點(diǎn)的穩(wěn)定性、可靠性和安全性得益于其強(qiáng)大的錯誤管理機(jī)制。上一篇文章我們介紹了CAN控制器的錯誤管理機(jī)制的工作原理(點(diǎn)擊閱讀)。本文將基于其工作原理及ISO16845-1:2016標(biāo)準(zhǔn),為大家介紹使用ZPS-CANFD設(shè)備驗證CAN控制器的錯誤響應(yīng)過程。
CAN控制器的錯誤管理機(jī)制是保障CAN總線通信可靠性的關(guān)鍵機(jī)制,它能檢測并處理多種錯誤情況,即位錯誤、填充錯誤、CRC錯誤、格式錯誤以及ACK錯誤,并及時地響應(yīng)錯誤幀,另外通過錯誤計數(shù)器的數(shù)值(發(fā)送錯誤計數(shù)器TEC,接收錯誤計數(shù)器REC),它可以判斷自身通信狀態(tài),如主動錯誤、被動錯誤和總線關(guān)閉,從而采取不同應(yīng)對策略。
在CAN網(wǎng)絡(luò)里,CAN節(jié)點(diǎn)既可以作為發(fā)送節(jié)點(diǎn),也可以作為接收節(jié)點(diǎn),當(dāng)總線上出現(xiàn)錯誤時,可能是作為發(fā)送節(jié)點(diǎn)報出的錯誤,也可能是作為接收節(jié)點(diǎn)報出的錯誤,所以驗證CAN控制器錯誤處理機(jī)制,需要從發(fā)送和接收兩個方向進(jìn)行測試。本文通過使用ZPS-CANFD設(shè)備提供的發(fā)送干擾和接收干擾功能,進(jìn)行總線的錯誤注入,結(jié)合報文接收、報文解碼窗口觀察總線情況,分析錯誤幀的產(chǎn)生和錯誤計數(shù)器動作是否符合標(biāo)準(zhǔn)。

圖1 ZPS-CANFD功能開啟界面
接收錯誤響應(yīng)能力驗證
在CAN控制器的運(yùn)行機(jī)制中,當(dāng)面對不同的接收錯誤時,錯誤響應(yīng)位置與REC增量存在一定的差異,部分錯誤發(fā)生后,下一位便緊跟錯誤標(biāo)志位;而另一些錯誤出現(xiàn)后,要在隨后幾位才開始呈現(xiàn)錯誤標(biāo)志位。在REC增量方面,不同錯誤導(dǎo)致的結(jié)果也各不相同,有的錯誤讓REC以1為單位進(jìn)行遞增,有的使其以8為單位進(jìn)行遞增,還有的情況下REC保持不變。接下來我們將通過兩個實(shí)例,介紹不同錯誤情形下,CAN控制器的接收錯誤檢測結(jié)果以及REC增量是否符合標(biāo)準(zhǔn)。
實(shí)例一:CRC錯誤
1、驗證目的
①觀察出現(xiàn)CRC錯誤之后,錯誤幀生成位置是否符合標(biāo)準(zhǔn);②觀察出現(xiàn)錯誤幀之后,REC遞增是否符合標(biāo)準(zhǔn)。
2、預(yù)期結(jié)果
①根據(jù)ISO16845-1:2016(E)標(biāo)準(zhǔn)中7.2.5小節(jié)要求,當(dāng)DUT接收到CRC錯誤(CANFD幀的)之后,它將生成一個有效的錯誤幀,從CRC定界符后的第四位開始;②根據(jù)ISO16845-1:2016(E)標(biāo)準(zhǔn)中7.6.10小節(jié)要求,當(dāng)DUT生成一幀錯誤幀后,它的REC應(yīng)增加1。
3、硬件準(zhǔn)備
ZPS-CANFD作為測量設(shè)備,簡稱ZPS。USBCANFD-200U作為被測設(shè)備,簡稱DUT。
4、軟件準(zhǔn)備
打開ZPS和DUT的軟件,進(jìn)行CAN通道參數(shù)的匹配(如波特率、終端電阻),并開啟CAN通道,進(jìn)行數(shù)據(jù)數(shù)據(jù)交互,ZPS參數(shù)設(shè)置如圖2所示。

圖2 波特率匹配注:
1、總線允許,代表CAN1通道啟動;
2、ZPS的工作模式選擇“只聽?wèi)?yīng)答模式”,ZPS不會回應(yīng)錯誤幀,可以便于在對錯誤幀的波形分析時,只看到DUT發(fā)送的錯誤幀。
5、錯誤注
入打開ZPS軟件的報文發(fā)送窗口,添加任意報文(例如ID 100的CANFD幀),然后點(diǎn)開高級按鈕,勾選“發(fā)送干擾”,將干擾位置選擇“自定義”,干擾類型選擇“單位干擾”,干擾光標(biāo)移到CRC的某個位,如圖3所示。

圖3 發(fā)送CRC錯誤注:CANFD幀的CRC場有固定填充位,所以發(fā)送CRC錯誤時,干擾光標(biāo)不能選擇固定填充位,且需離它遠(yuǎn)一些,否者會發(fā)送CRC固定填充位錯誤,這樣就不符合該測試項的預(yù)期了。
6、驗證結(jié)果
①在ZPS軟件界面,觀察錯誤幀的波形,當(dāng)DUT接收到CRC錯誤后,它的錯誤幀從CRC定界符后的第四位開始發(fā)出,符合標(biāo)準(zhǔn)。如圖4、圖5所示,對比正確幀和錯誤幀的CRC定界符位置可以看出。

圖4 正確CANFD幀時,CRC起始~CRC定界符寬度:23us

圖5 DUT在CRC定界符后第四位開始發(fā)出錯誤幀注:主動錯誤幀格式:6個顯性位+8個隱性位。
②查看DUT軟件界面的錯誤信息,觀察到當(dāng)出現(xiàn)一幀錯誤幀時,REC+1,兩幀錯誤幀時,REC+2,以此類推,符合標(biāo)準(zhǔn)。

圖6 REC遞增結(jié)果顯示
實(shí)例二:EOF錯誤
1、驗證目的
①觀察出現(xiàn)EOF錯誤之后,錯誤幀生成位置是否符合標(biāo)準(zhǔn);②觀察出現(xiàn)錯誤幀之后,REC遞增是否符合標(biāo)準(zhǔn)。
2、預(yù)期結(jié)果
①根據(jù)ISO16845-1:2016(E)標(biāo)準(zhǔn)中7.2.10小節(jié)要求,當(dāng)DUT接收到EOF錯誤時,它將生成一個有效的錯誤幀,從損壞位的下一位位置開始。②根據(jù)ISO16845-1:2016(E)標(biāo)準(zhǔn)中7.6.14小節(jié)和ISO 11898-1:2015(E)標(biāo)準(zhǔn)中12.1.4.2小節(jié)描述,若REC起始值為0,接收節(jié)點(diǎn)ACK發(fā)送成功,REC保持為0,若REC起始值大于0,接收節(jié)點(diǎn)ACK發(fā)送成功,REC減1。③根據(jù)ISO16845-1:2016(E)標(biāo)準(zhǔn)中7.6.8小節(jié)要求,當(dāng)DUT生成一幀錯誤幀后,它的REC應(yīng)增加1。
3、硬件準(zhǔn)備同上。
4、軟件準(zhǔn)備同上。
5、錯誤注入打開ZPS-CANFD(1)軟件的報文發(fā)送窗口,添加任意報文,然后點(diǎn)開高級按鈕,勾選“發(fā)送干擾”,將干擾位置選擇“自定義”,干擾類型選擇“單位干擾”,干擾光標(biāo)移到EOF位,如圖7所示。

圖7 發(fā)送EOF錯誤
6、驗證結(jié)果
①在ZPS軟件界面,觀察錯誤幀的波形,當(dāng)DUT接收到EOF錯誤后,錯誤幀在該位之后的第一位開始發(fā)出,符合標(biāo)準(zhǔn),如圖8所示。

圖8 DUT在EOF損壞位后第一位開始發(fā)出錯誤幀
②查看DUT軟件界面的錯誤信息,觀察到當(dāng)出現(xiàn)一幀錯誤幀時,REC保持初始值,符合標(biāo)準(zhǔn)。例如REC初始值為1,因為EOF錯誤出現(xiàn)在ACK之后,ACK發(fā)送成功,REC-1,EOF錯誤,REC+1,所以,REC值不變。

圖9 REC遞增結(jié)果顯示
發(fā)送錯誤響應(yīng)能力驗證
在CAN控制器的運(yùn)行機(jī)制中,當(dāng)面對不同的發(fā)送錯誤時,它的錯誤響應(yīng)一般在錯誤出現(xiàn)后,下一位便緊跟錯誤標(biāo)志位。在TEC增量方面,錯誤幀的產(chǎn)生會讓TEC以8為單位進(jìn)行遞增。接下來我們將通過一個實(shí)例,介紹在錯誤情形下,CAN控制器的發(fā)送錯誤檢測結(jié)果以及TEC增量是否符合標(biāo)準(zhǔn)。
實(shí)例一:CRC定界符錯誤
1、驗證目的
①觀察出現(xiàn)CRC定界符錯誤之后,錯誤幀生成位置是否符合標(biāo)準(zhǔn)。②觀察出現(xiàn)錯誤幀之后,TEC遞增是否符合標(biāo)準(zhǔn)。
2、預(yù)期結(jié)果
①根據(jù)ISO16845-1:2016(E)標(biāo)準(zhǔn)中8.2.5小節(jié)要求,當(dāng)DUT發(fā)送報文的CRC定界符位被破壞之后,它將生成一個有效的錯誤幀,從損壞位的下一位位置開始。②根據(jù)ISO16845-1:2016(E)標(biāo)準(zhǔn)中8.6.7小節(jié)要求,當(dāng)DUT生成一幀錯誤幀后,它的TEC應(yīng)增加8。
3、硬件準(zhǔn)備
同上。
4、軟件準(zhǔn)備
打開ZPS和DUT的軟件,進(jìn)行CAN通道參數(shù)的匹配(如波特率、終端電阻),如圖 2所示,并開啟CAN通道,ZPS接收DUT發(fā)送的報文。DUT發(fā)送數(shù)據(jù)如圖10所示。

圖10 DUT發(fā)送幀
5、錯誤注入
打開ZPS軟件的被動接收干擾窗口,按照DUT發(fā)送的報文,設(shè)置幀數(shù)據(jù)、干擾位置,即設(shè)置模版,然后將干擾光標(biāo)放到“CRC定界符”位,再將干擾類型選擇為“隱性干擾為顯性”并啟動干擾,如圖11所示。

圖11 CRC定界符位干擾
6、驗證結(jié)果
①在ZPS軟件界面,觀察錯誤幀的波形,當(dāng)DUT的CRC定界符位被干擾后,它的錯誤幀在該位之后的第一位開始發(fā)出,符合標(biāo)準(zhǔn),如圖12所示。

圖12 DUT在CRC定界符后第一位開始發(fā)出錯誤幀
②查看DUT軟件界面的錯誤信息,觀察到當(dāng)發(fā)送一幀錯誤幀時,它的TEC+8,以此類推,符合標(biāo)準(zhǔn)。圖13 TEC遞增結(jié)果顯示
-
檢測
+關(guān)注
關(guān)注
5文章
4582瀏覽量
92453 -
CAN控制器
+關(guān)注
關(guān)注
3文章
75瀏覽量
15221
發(fā)布評論請先 登錄
CAN控制器總線錯誤分析之CAN節(jié)點(diǎn)BusOff恢復(fù)過程分析與測試

示波器破解CAN錯誤幀/BusOff的經(jīng)驗分享
基于Verilog HDL語言的CAN總線控制器設(shè)計及驗證

淺析CAN總線錯誤分析與解決

深入探討CAN節(jié)點(diǎn)錯誤管理機(jī)制

CAN控制器和收發(fā)器

基于FPGA的CAN總線控制器的設(shè)計

虹科干貨 | 帶你全面認(rèn)識“CAN總線錯誤”(一)——CAN總線錯誤與錯誤幀

STM32 CAN接收/發(fā)送錯誤寄存器如何清零?
CAN收發(fā)器與CAN控制器的區(qū)別
CAN總線控制器是什么意思
CAN總線控制器的工作原理
CAN節(jié)點(diǎn)錯誤管理機(jī)制工作原理解析

CAN芯片邏輯響應(yīng)驗證測試

評論