本文導(dǎo)讀
在CAN總線系統(tǒng)中,傳播延遲過大是引發(fā)通信故障的關(guān)鍵誘因之一,可能會(huì)導(dǎo)致仲裁異常,使優(yōu)先級(jí)高的信號(hào)無(wú)法正常優(yōu)先傳輸,破壞通信秩序;可能會(huì)造成應(yīng)答錯(cuò)誤,使發(fā)送節(jié)點(diǎn)難以在應(yīng)答隙內(nèi)接收到有效應(yīng)答信號(hào),影響數(shù)據(jù)傳輸確認(rèn)機(jī)制;也可能會(huì)引發(fā)數(shù)據(jù)采樣錯(cuò)誤,導(dǎo)致發(fā)送與接收位不一致,產(chǎn)生位錯(cuò)誤。
本文將在不考慮其它影響下,對(duì)傳播延遲過大造成的應(yīng)答錯(cuò)誤現(xiàn)象進(jìn)行詳細(xì)解析。
相關(guān)定義
1、傳播延遲定義:傳播延遲是所有類型的傳輸媒體都存在的一種特性。以簡(jiǎn)單雙節(jié)點(diǎn)網(wǎng)絡(luò)模型(如圖1所示)為例,傳播延遲包括終端收發(fā)器及其附件的延遲時(shí)間與線纜的延遲時(shí)間。
Node A到Node B的傳播延遲=0.2+10+0.1=10.3
Node B到Node A的傳播延遲=0.2+10+0.1=10.3

圖1 簡(jiǎn)單雙節(jié)點(diǎn)網(wǎng)絡(luò)模型
2、ACK延遲定義:
CAN總線網(wǎng)絡(luò)中,當(dāng)一個(gè)節(jié)點(diǎn)按照CAN協(xié)議要求發(fā)送完數(shù)據(jù)后,其它節(jié)點(diǎn)都會(huì)回應(yīng)ACK,但是受傳播延遲及控制器響應(yīng)快慢的影響,發(fā)送節(jié)點(diǎn)一般不能在預(yù)期的時(shí)刻收到接收節(jié)點(diǎn)回應(yīng)的ACK,而實(shí)際回應(yīng)ACK時(shí)刻和預(yù)期時(shí)刻間的差值,我們稱之為ACK延遲時(shí)間。
以簡(jiǎn)單雙節(jié)點(diǎn)網(wǎng)絡(luò)模型(如圖2所示)為例,測(cè)量方法如下:
以發(fā)送節(jié)點(diǎn)TX位流中最后一個(gè)下降沿為起始時(shí)刻T0;
經(jīng)歷n個(gè)位時(shí)間()后,找到TX預(yù)期收到ACK開始邊沿的時(shí)刻T1;
從發(fā)送節(jié)點(diǎn)RX位流中找到實(shí)際收到ACK開始邊沿的時(shí)刻T2,計(jì)算?T=T2-T0;
ACK延遲計(jì)算公式:。

圖2 ACK延遲測(cè)量原理
3、ACK延遲和傳播延遲的關(guān)聯(lián):如圖3所示,ACK延遲由三部分組成:
- 陰影1:發(fā)送節(jié)點(diǎn)TX到接收節(jié)點(diǎn)RX的傳播延遲;
- 陰影2:接收節(jié)點(diǎn)控制器發(fā)送ACK前的元件響應(yīng)時(shí)間;
- 陰影3:接收節(jié)點(diǎn)TX到發(fā)送節(jié)點(diǎn)RX的傳播延遲。
結(jié)合ACK延遲計(jì)算公式,上述三部分之和即為ACK延遲,因此ACK延遲包含了雙向的傳播延遲和控制器響應(yīng)時(shí)間。

圖3 ACK延遲和傳播延遲關(guān)系圖
注:
1、選擇ACK前的下降沿作為參考點(diǎn),是因?yàn)橄陆笛芈湓诮邮展?jié)點(diǎn)同步段外時(shí)會(huì)觸發(fā)重同步,可減少波特率誤差積累對(duì)結(jié)果的影響。
2、本章節(jié)內(nèi)的解析均以簡(jiǎn)單雙節(jié)點(diǎn)CAN網(wǎng)絡(luò)模型為例,所以從ACK開始邊沿開始計(jì)算延時(shí),較好理解。若在多節(jié)點(diǎn)的CAN網(wǎng)絡(luò)中,因?yàn)闊o(wú)法看到最晚節(jié)點(diǎn)開始回應(yīng)ACK的時(shí)間,所以以ACK的結(jié)束邊沿進(jìn)行傳播延時(shí)的計(jì)算。
3、受接收節(jié)點(diǎn)重同步影響,ACK起始回應(yīng)時(shí)間存在0~1TQ偏差,因此可能比標(biāo)準(zhǔn)值小0~1TQ。
傳播延遲過大的影響
如圖 4所示,ZPS-CANFD設(shè)備與USBCANFD卡組網(wǎng)后,USBCANFD卡以500K bps的波特率(采樣點(diǎn)80%)在線纜很短的情況發(fā)送數(shù)據(jù)給ZPS,然后通過ZPS軟件中報(bào)文接收列表可以看到,沒有錯(cuò)誤幀產(chǎn)生。

圖4 傳播延遲很小時(shí)現(xiàn)象將線纜換為100m,ZPS-CANFD設(shè)備與USBCANFD卡組網(wǎng)后,USBCANFD卡以相同的波特率參數(shù)發(fā)送數(shù)據(jù)給ZPS,然后從ZPS軟件中報(bào)文接收列表看到有很多錯(cuò)誤幀產(chǎn)生,如圖 5所示。

圖5 傳播延遲很大時(shí)現(xiàn)象
對(duì)比兩次報(bào)文接收列表關(guān)聯(lián)的波形數(shù)據(jù)可以看出,當(dāng)ZPS報(bào)出應(yīng)答定界符錯(cuò)誤時(shí),本應(yīng)該是隱性位的應(yīng)答定界符位卻顯示了顯性位,不符合CAN規(guī)范要求,所以導(dǎo)致了錯(cuò)誤幀的產(chǎn)生。那么為什么應(yīng)答定界符位顯示了顯性位呢?下面我們對(duì)其進(jìn)行詳細(xì)的解析。
1、傳播延遲過大為什么會(huì)產(chǎn)生錯(cuò)誤幀?
如圖6所示,從DUT-TX波形可以知道DUT在TA時(shí)刻開始等待ZPS回應(yīng)的ACK,從DUT-RX的波形可以知道在TB時(shí)刻,DUT開始收到ZPS回應(yīng)的ACK,所以ACK延遲是1604ns。
前面已知DUT的采樣點(diǎn)是80%,所以DUT應(yīng)該在1600ns(2000ns×0.8)的時(shí)刻判斷顯隱性電平,但是由于傳播延遲的影響,此時(shí)DUT-RX剛好收到ZPS回應(yīng)的ACK邊沿臨界位置,所以會(huì)導(dǎo)致DUT在正確的時(shí)刻采樣不到預(yù)期的顯性值,從而發(fā)送了主動(dòng)錯(cuò)誤幀(6個(gè)顯性錯(cuò)誤標(biāo)志位+8個(gè)隱性錯(cuò)誤定界符位)。
正是因?yàn)镈UT發(fā)送了主動(dòng)錯(cuò)誤幀,將ACK應(yīng)答定界符的隱性位覆蓋了,所以ZPS識(shí)別到的應(yīng)答定界符位不符合CAN規(guī)范,然后報(bào)出了應(yīng)答定界符錯(cuò)誤。

圖6 錯(cuò)誤幀解析
2、如何消除因傳播延遲過大導(dǎo)致的通信錯(cuò)誤?
傳播延遲主要是受線纜、收發(fā)器及其附件影響,如果想要減小延遲,我們可以在選型時(shí),選擇延遲較小的收發(fā)器,或者減少網(wǎng)絡(luò)中的線纜長(zhǎng)度,如果這些硬件環(huán)境已經(jīng)固定,我們可以通過修改軟件參數(shù),來消除通信錯(cuò)誤,比如降低波特率或采樣點(diǎn)后移。
下面以采樣點(diǎn)后移(采樣點(diǎn)調(diào)整到90%)的方法為例,來細(xì)看通信錯(cuò)誤被消除后的波形細(xì)節(jié)。
如圖7所示,從報(bào)文接收列表中,可以看到無(wú)錯(cuò)誤幀產(chǎn)生,通過觀察報(bào)文關(guān)聯(lián)的波形,如圖8所示,M0時(shí)刻為DUT采樣點(diǎn)位置:2000ns×0.9=1800ns,大于ACK延遲時(shí)間1604ns,所以此時(shí)DUT-RX可正確判斷顯隱性位,從而不會(huì)發(fā)出錯(cuò)誤幀。

圖7 采樣點(diǎn)改為90%,無(wú)錯(cuò)誤幀產(chǎn)生

圖8 DUT- RX識(shí)別位正確不報(bào)錯(cuò)誤幀
在上述分析環(huán)節(jié),我們基于所獲取的DUT發(fā)送(TX)與接收(RX)數(shù)據(jù),借助ZPS的光標(biāo)測(cè)量功能,手動(dòng)地測(cè)量出傳播延遲,幫助大家直觀理解傳播延遲對(duì)通信的具體影響。那在實(shí)際的現(xiàn)場(chǎng)環(huán)境中,如何快速的測(cè)量出系統(tǒng)的傳播延遲呢?下面,我們一起看下ZPS-CANFD設(shè)備的自動(dòng)化系統(tǒng)傳播延遲評(píng)估功能測(cè)量出的結(jié)果。
ZPS-CANFD系統(tǒng)傳播延遲評(píng)估
ZPS-CANFD設(shè)備的“系統(tǒng)傳播延遲評(píng)估”功能,可自動(dòng)化測(cè)量關(guān)鍵參數(shù),步驟如下:
1)配置軟硬件測(cè)試環(huán)境,打開評(píng)估功能并設(shè)置參數(shù);
2)測(cè)試完成后,輸出ACK偏移(延遲時(shí)間)、最大傳播延遲、建議傳播段長(zhǎng)度、線纜長(zhǎng)度等結(jié)果,如圖9所示。

圖9 結(jié)果展示從測(cè)量結(jié)果界面可以看到,最大ACK偏移是1607ns,最大單向傳播延遲是803ns,當(dāng)波特率為100k bps、采樣點(diǎn)75%時(shí),采樣點(diǎn)占比(75%)遠(yuǎn)大于延遲占比(1607/10000≈16%),無(wú)通訊錯(cuò)誤,但是若波特率提高至500k bps且采樣點(diǎn)仍為75%,可能因延遲占比接近采樣點(diǎn)而引發(fā)通訊錯(cuò)誤。
-
CAN總線
+關(guān)注
關(guān)注
145文章
1986瀏覽量
132814 -
通信異常
+關(guān)注
關(guān)注
0文章
4瀏覽量
6097
發(fā)布評(píng)論請(qǐng)先 登錄
【CAN總線知識(shí)】為何總線“鐮刀”波形頻頻發(fā)生?

優(yōu)化CAN節(jié)點(diǎn)位時(shí)序以適應(yīng)數(shù)字隔離器傳播延遲
優(yōu)化CAN節(jié)點(diǎn)位時(shí)序以適應(yīng)數(shù)字隔離器傳播延遲
CAN總線多節(jié)點(diǎn)通信異常問題解決
can總線通信出現(xiàn)奇怪現(xiàn)象
STM32的串口通訊的實(shí)驗(yàn)異常現(xiàn)象及解決辦法有哪些
電源設(shè)計(jì)調(diào)試過程中的異常現(xiàn)象分析
蓄電池極板硫化的異常現(xiàn)象盤點(diǎn)
貼片機(jī)取料的異常現(xiàn)象及解決方法
叉車can總線異常怎么解決
電路異常現(xiàn)象及解決

如何自動(dòng)測(cè)量CAN收發(fā)器的延遲時(shí)間?

評(píng)論