本文通過實(shí)驗(yàn)驗(yàn)證CAN控制器的錯(cuò)誤處理機(jī)制是否符合相關(guān)標(biāo)準(zhǔn)。
具體而言,我們使用ZPS-CANFD設(shè)備(ZPS-CANFD介紹)作為測(cè)量工具,USBCANFD-200U作為被測(cè)設(shè)備(DUT),通過注入特定類型的錯(cuò)誤,觀察DUT的響應(yīng)是否符合ISO16845-1:2016和ISO11898-1:2015標(biāo)準(zhǔn)的要求。

實(shí)驗(yàn)包括接收錯(cuò)誤響應(yīng)驗(yàn)證和發(fā)送錯(cuò)誤響應(yīng)驗(yàn)證兩個(gè)部分。
1
測(cè)試環(huán)境
1.1、硬件準(zhǔn)備
1.2、軟件準(zhǔn)備
打開ZPS-CANFD和USBCANFD-200U的配套軟件。

配置CAN通道參數(shù),包括波特率和終端電阻,確保兩者匹配。
開啟CAN通道,ZPS-CANFD設(shè)置為“只聽?wèi)?yīng)答模式”,以便于觀察DUT的錯(cuò)誤幀響應(yīng),而不干擾總線。
在CAN控制器的運(yùn)行機(jī)制中,當(dāng)接收到不同類型的錯(cuò)誤時(shí),錯(cuò)誤幀的生成位置和REC(接收錯(cuò)誤計(jì)數(shù)器)的增量會(huì)有所不同。本節(jié)通過兩個(gè)實(shí)例驗(yàn)證DUT在接收錯(cuò)誤時(shí)的響應(yīng)。
2
實(shí)例一:CRC錯(cuò)誤
驗(yàn)證目的
觀察出現(xiàn)CRC錯(cuò)誤后,錯(cuò)誤幀生成位置是否符合標(biāo)準(zhǔn)。
觀察出現(xiàn)錯(cuò)誤幀后,REC遞增是否符合標(biāo)準(zhǔn)。
預(yù)期結(jié)果
根據(jù)ISO16845-1:2016標(biāo)準(zhǔn)7.2.5小節(jié),當(dāng)DUT接收到CRC錯(cuò)誤(CANFD幀)時(shí),它將生成一個(gè)有效的錯(cuò)誤幀,從CRC定界符后的第四位開始。
根據(jù)ISO16845-1:2016標(biāo)準(zhǔn)7.6.10小節(jié),當(dāng)DUT生成一幀錯(cuò)誤幀后,其REC應(yīng)增加1。
錯(cuò)誤注入
在ZPS-CANFD軟件的報(bào)文發(fā)送窗口,添加任意報(bào)文(例如ID為100的CANFD幀)。
打開高級(jí)按鈕,勾選“發(fā)送干擾”,將干擾位置設(shè)置為“自定義”,干擾類型選擇“單位干擾”。
將干擾光標(biāo)移到CRC字段的某個(gè)位(注意避開固定填充位),如下圖所示。

驗(yàn)證結(jié)果

在ZPS-CANFD軟件界面,觀察錯(cuò)誤幀波形。
當(dāng)DUT接收到CRC錯(cuò)誤后,其錯(cuò)誤幀從CRC定界符后的第四位開始發(fā)出,符合標(biāo)準(zhǔn)。
下圖分別展示了正確幀和錯(cuò)誤幀的CRC定界符位置對(duì)比。


在DUT軟件界面,觀察錯(cuò)誤信息。當(dāng)出現(xiàn)一幀錯(cuò)誤幀時(shí),REC+1;出現(xiàn)兩幀錯(cuò)誤幀時(shí),REC+2,以此類推,符合標(biāo)準(zhǔn)。如下圖所示。

3
實(shí)例二:EOF錯(cuò)誤
驗(yàn)證目的
觀察出現(xiàn)EOF錯(cuò)誤后,錯(cuò)誤幀生成位置是否符合標(biāo)準(zhǔn)。
觀察出現(xiàn)錯(cuò)誤幀后,REC遞增是否符合標(biāo)準(zhǔn)。
預(yù)期結(jié)果
根據(jù)ISO16845-1:2016標(biāo)準(zhǔn)7.2.10小節(jié),當(dāng)DUT接收到EOF錯(cuò)誤時(shí),它將生成一個(gè)有效的錯(cuò)誤幀,從損壞位的下一位開始。
根據(jù)ISO16845-1:2016標(biāo)準(zhǔn)7.6.14小節(jié)和ISO11898-1:2015標(biāo)準(zhǔn)12.1.4.2小節(jié),若REC起始值為0且ACK發(fā)送成功,REC保持為0;若REC起始值大于0且ACK發(fā)送成功,REC減1。
根據(jù)ISO16845-1:2016標(biāo)準(zhǔn)7.6.8小節(jié),當(dāng)DUT生成一幀錯(cuò)誤幀后,其REC應(yīng)增加1。
錯(cuò)誤注入
在ZPS-CANFD軟件的報(bào)文發(fā)送窗口,添加任意報(bào)文。
打開高級(jí)按鈕,勾選“發(fā)送干擾”,將干擾位置設(shè)置為“自定義”,干擾類型選擇“單位干擾”。
將干擾光標(biāo)移到EOF位,如下圖所示。

驗(yàn)證結(jié)果

在ZPS-CANFD軟件界面,觀察錯(cuò)誤幀波形。當(dāng)DUT接收到EOF錯(cuò)誤后,其錯(cuò)誤幀在該位之后的第一位開始發(fā)出,符合標(biāo)準(zhǔn)。如下圖所示。

在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ò)誤發(fā)生,REC+1,因此REC值不變。如下圖所示。

4
實(shí)例三:CRC定界符錯(cuò)誤
驗(yàn)證目的
觀察出現(xiàn)CRC定界符錯(cuò)誤后,錯(cuò)誤幀生成位置是否符合標(biāo)準(zhǔn)。
觀察出現(xiàn)錯(cuò)誤幀后,TEC遞增是否符合標(biāo)準(zhǔn)。
預(yù)期結(jié)果
根據(jù)ISO16845-1:2016標(biāo)準(zhǔn)8.2.5小節(jié),當(dāng)DUT發(fā)送報(bào)文的CRC定界符位被破壞后,它將生成一個(gè)有效的錯(cuò)誤幀,從損壞位的下一位開始。
根據(jù)ISO16845-1:2016標(biāo)準(zhǔn)8.6.7小節(jié),當(dāng)DUT生成一幀錯(cuò)誤幀后,其TEC應(yīng)增加8。
錯(cuò)誤注入
在ZPS-CANFD軟件的被動(dòng)接收干擾窗口,根據(jù)DUT發(fā)送的報(bào)文設(shè)置幀數(shù)據(jù)和干擾位置。
將干擾光標(biāo)放到“CRC定界符”位,干擾類型選擇“隱性干擾為顯性”,并啟動(dòng)干擾,如下圖所示。

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

在DUT軟件界面,觀察錯(cuò)誤信息。當(dāng)發(fā)送一幀錯(cuò)誤幀時(shí),TEC+8;發(fā)送兩幀錯(cuò)誤幀時(shí),TEC+16,以此類推,符合標(biāo)準(zhǔn)。如下圖所示。

通過以上實(shí)驗(yàn),我們驗(yàn)證了USBCANFD-200U的CAN控制器在接收和發(fā)送過程中對(duì)CRC錯(cuò)誤、EOF錯(cuò)誤和CRC定界符錯(cuò)誤的響應(yīng)完全符合ISO16845-1:2016和ISO11898-1:2015標(biāo)準(zhǔn)的要求。
具體而言:
這些驗(yàn)證對(duì)于確保CAN總線系統(tǒng)的可靠性至關(guān)重要,尤其是在汽車電子和工業(yè)控制等對(duì)通信穩(wěn)定性有嚴(yán)格要求的領(lǐng)域。通過使用ZPS-CANFD設(shè)備進(jìn)行總線錯(cuò)誤注入和分析,我們可以高效地驗(yàn)證CAN控制器的錯(cuò)誤處理機(jī)制,從而提高系統(tǒng)的設(shè)計(jì)和調(diào)試效率。
