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

圖1 ZPS-CANFD功能開啟界面
接收錯(cuò)誤響應(yīng)能力驗(yàn)證
在CAN控制器的運(yùn)行機(jī)制中,當(dāng)面對不同的接收錯(cuò)誤時(shí),錯(cuò)誤響應(yīng)位置與REC增量存在一定的差異,部分錯(cuò)誤發(fā)生后,下一位便緊跟錯(cuò)誤標(biāo)志位;而另一些錯(cuò)誤出現(xiàn)后,要在隨后幾位才開始呈現(xiàn)錯(cuò)誤標(biāo)志位。在REC增量方面,不同錯(cuò)誤導(dǎo)致的結(jié)果也各不相同,有的錯(cuò)誤讓REC以1為單位進(jìn)行遞增,有的使其以8為單位進(jìn)行遞增,還有的情況下REC保持不變。接下來我們將通過兩個(gè)實(shí)例,介紹不同錯(cuò)誤情形下,CAN控制器的接收錯(cuò)誤檢測結(jié)果以及REC增量是否符合標(biāo)準(zhǔn)。
實(shí)例一:CRC錯(cuò)誤
1、驗(yàn)證目的
①觀察出現(xiàn)CRC錯(cuò)誤之后,錯(cuò)誤幀生成位置是否符合標(biāo)準(zhǔn);②觀察出現(xiàn)錯(cuò)誤幀之后,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錯(cuò)誤(CANFD幀的)之后,它將生成一個(gè)有效的錯(cuò)誤幀,從CRC定界符后的第四位開始;②根據(jù)ISO16845-1:2016(E)標(biāo)準(zhǔn)中7.6.10小節(jié)要求,當(dāng)DUT生成一幀錯(cuò)誤幀后,它的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通道啟動(dòng);
2、ZPS的工作模式選擇“只聽?wèi)?yīng)答模式”,ZPS不會回應(yīng)錯(cuò)誤幀,可以便于在對錯(cuò)誤幀的波形分析時(shí),只看到DUT發(fā)送的錯(cuò)誤幀。
5、錯(cuò)誤注
入打開ZPS軟件的報(bào)文發(fā)送窗口,添加任意報(bào)文(例如ID 100的CANFD幀),然后點(diǎn)開高級按鈕,勾選“發(fā)送干擾”,將干擾位置選擇“自定義”,干擾類型選擇“單位干擾”,干擾光標(biāo)移到CRC的某個(gè)位,如圖3所示。

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

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

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

圖6 REC遞增結(jié)果顯示
實(shí)例二:EOF錯(cuò)誤
1、驗(yàn)證目的
①觀察出現(xiàn)EOF錯(cuò)誤之后,錯(cuò)誤幀生成位置是否符合標(biāo)準(zhǔn);②觀察出現(xiàn)錯(cuò)誤幀之后,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錯(cuò)誤時(shí),它將生成一個(gè)有效的錯(cuò)誤幀,從損壞位的下一位位置開始。②根據(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生成一幀錯(cuò)誤幀后,它的REC應(yīng)增加1。
3、硬件準(zhǔn)備同上。
4、軟件準(zhǔn)備同上。
5、錯(cuò)誤注入打開ZPS-CANFD(1)軟件的報(bào)文發(fā)送窗口,添加任意報(bào)文,然后點(diǎn)開高級按鈕,勾選“發(fā)送干擾”,將干擾位置選擇“自定義”,干擾類型選擇“單位干擾”,干擾光標(biāo)移到EOF位,如圖7所示。

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

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

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

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

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

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

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

淺析CAN總線錯(cuò)誤分析與解決

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

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

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

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

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

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

評論