在CANFD協議中,有個重要的概念TDC(Transmitter Delay Compensation)即發送延遲補償。為什么會存在發送延遲,又為什么CANFD要對發送延遲做補償?
為什么存在發送延遲?
眾所周知,CAN控制器發送信號時,是經過收發器后發往CAN總線后,再經過收發器反饋總線信號。那么發送過程中,控制器發送位信號到接收位信號就不可避免地存在環路延遲。發送延遲時間的總和如下:
CAN控制器內部產生TX信號到Tx引腳的傳播延遲;
Tx引腳到收發器TxD引腳的傳播延遲;
收發器環路延遲TxD到RxD;
收發器RxD引腳到CAN控制器Rx引腳延遲;
CAN控制器Rx引腳到控制器內部收到Rx信號的延遲。
CAN協議中規定:發送方發送位時,需檢測接收到的位與發送是否一致,若不一致則產生錯誤幀(位錯誤)。如果發送延遲過長,則將直接導致發送與接收位不一致而產生錯誤幀。由于傳統CAN協議規定最高波特率為1Mbps,即位寬1us,正常情況下,傳輸延遲不會超過位寬的采樣點(當然具體延遲取決于收發器環路延遲、傳輸距離、傳輸線纜質量等),因此不會因為發送延遲而產生錯誤。
為什么CANFD要對發送延遲做補償?
在CANFD中,數據段的波特率是比CAN更高的(BRS位為隱性時),此時波特率越高,位寬越小,在發送報文時發送延遲影響越大,越容易產生位錯誤。由于發送延遲無法避免,此時就需要一種機制來保證發送與接收的位對應上,以避免產生位錯誤。這種機制就是發送延遲補償了。
發送延遲補償(TDC)
TDC實際上就是在發送BRS位為隱性的CANFD報文時(BRS隱性即開啟數據域波特率),在發送時延遲一定時間后,在第二采樣點采樣接收位,以正確采樣到發送位對應的接收位。
1. 發送延遲測量那么延遲采樣的延遲時間是多久呢?實際上,開啟TDC后,控制器將自動測量Tx信號線上FDF位到r0位下降沿與Rx信號線上FDF位到r0位邊沿的之間的延遲時間,如下圖中所示,TDCV即為延遲時間。發送延遲測量的時間單位為CAN控制器時鐘(TDC寄存器中一般對TDCV的值有限制,若超過寄存器最大位數,則發送延遲測量失敗)。
2. 第二采樣點(SSP)
在達到延遲時間后,控制器此時需要采樣接收位,該采樣點我們稱為第二采樣點(SSP=Second Sample Point),以區別未延遲之前的采樣點(SP),如下圖所示。
SSP等于測量延遲TDCV+發送延遲補償偏移TDCO(TDC Offset)之和。一般TDCO設置與第一采樣點一致,即(PROP+TSEG1) * DBRP。主要注意是:實際填入寄存器的波特率參數一般為實際值減一,具體可參考控制器手冊說明。此外,ISO11898-1:2015中還對TDC做了一些規定:
開啟TDC后,數據段波特率的預分頻值(DBRP)應設置為1或2;
控制器實現TDC機制應能補償至少兩個位時間。
TDC配置建議
當CANFD數據域波特率大于1Mbps時,應開啟TDC;
數據段波特率的預分頻值(DBRP)建議設置為1或2;
第二采樣點SSP=發送延遲測量值TD + Offset, 其中Offset設置與第一采樣點一致或早1Tq。
當然,USBCANFD-200U系列CANFD卡的TDC也同樣遵循上述配置,用戶使用時,無需再手動配置。
原文標題:【Z站推薦】為什么發送CANFD加速報文要開啟發送延遲補償(TDC)?
文章出處:【微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
-
收發器
+關注
關注
10文章
3454瀏覽量
106260 -
控制器
+關注
關注
112文章
16455瀏覽量
179506 -
CAN
+關注
關注
57文章
2772瀏覽量
464430 -
CANFD
+關注
關注
0文章
59瀏覽量
5014
原文標題:【Z站推薦】為什么發送CANFD加速報文要開啟發送延遲補償(TDC)?
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
CAN/CANFD?總線干擾儀TESTBASE-BDI
![CAN/<b class='flag-5'>CANFD</b>?總線干擾儀TESTBASE-BDI](https://file1.elecfans.com/web3/M00/03/D5/wKgZPGdszDuAd9_oAABhbiYsSsg400.png)
rk3588 canfd發送部分數據失敗的問題
dap協議的基本概念 dap協議在區塊鏈中的應用
一款實現PLC擴展CANFD的好工具 — PXB-6020D協議轉換器
![一款實現PLC擴展<b class='flag-5'>CANFD</b>的好工具 — PXB-6020D<b class='flag-5'>協議</b>轉換器](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
CANFD_TopFIFO無法正常工作的原因?
詳解TSMaster CAN 與 CANFD 的 CRC E2E 校驗方法
![詳解TSMaster CAN 與 <b class='flag-5'>CANFD</b> 的 CRC E2E 校驗方法](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
CYT2B75 SK Rev03無法正常發送CANFD數據,為什么?
canfd協議是什么?canfd協議的應用場景
汽車測試系統如何實現CANFD到EtherCAT的協議轉換
![汽車測試系統如何實現<b class='flag-5'>CANFD</b>到EtherCAT的<b class='flag-5'>協議</b>轉換](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
評論