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

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

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

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

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

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

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

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

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

圖9 結果展示從測量結果界面可以看到,最大ACK偏移是1607ns,最大單向傳播延遲是803ns,當波特率為100k bps、采樣點75%時,采樣點占比(75%)遠大于延遲占比(1607/10000≈16%),無通訊錯誤,但是若波特率提高至500k bps且采樣點仍為75%,可能因延遲占比接近采樣點而引發(fā)通訊錯誤。
-
CAN總線
+關注
關注
145文章
1987瀏覽量
132889 -
通信異常
+關注
關注
0文章
4瀏覽量
6098
發(fā)布評論請先 登錄
如何發(fā)現(xiàn)電動機運行的異?,F(xiàn)象
【CAN總線知識】為何總線“鐮刀”波形頻頻發(fā)生?

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

評論