隨著汽車電子和工業的蓬勃發展, CAN總線上的設備數量和數據吞吐量都大大提升。為了滿足更高帶寬和數據的吞吐量,CAN FD應運而生。CANFD的延遲時間更短,具有更好的實時性能和更高的帶寬,可以顯著提升數據傳輸的效率。
越來越多的應用需要支持CAN FD通訊,然而很多主控芯片的CAN 控制器模塊尚未支持CANFD。TI的TCAN4550(-Q1)及TCAN4551(-Q1)產品集成了SPI轉CAN的CAN控制器和CAN 收發器,并支持CANFD功能,可以幫助開發者在現有平臺的基礎上迅速拓展CAN FD通訊功能。
為什么CAN FD通訊要開啟收發送延時補償TDC
傳統CAN最大傳輸速率1Mbps,CAN-FD采用兩種位速率,BRS到ACK中間(數據傳輸段)為可變速率,速率最高為8Mbps,其余部分(仲裁段和數據控制段)為原CAN總線用的速率,最高1Mbps。針對不同的速率有相應的時間定義寄存器。
CAN 控制器要經過CAN收發器將信號發往CAN總線,再經過收發器反饋總線信號。而CAN協議規定,發送方發送位時,需要檢測接收到的位與發送的位是否一致,否則會產生位錯誤幀。對于傳統CAN來說,因為其最高波特率位1Mbps,位寬只有1us,所以大部分情況下傳輸的延遲不會超過位寬的一次采樣點Sample Point SP (通過TSEG1設置),見圖1。
圖1 發送延時對傳統CAN 位校驗的影響
傳輸延遲受收發器環路延遲、傳輸距離和傳輸線纜帶來的硬件延時影響。CAN FD的數據段具有比傳統CAN更高的波特率,位寬也更小。因此傳輸延時對CAN
FD的采樣準確性的影響就比較大了,在一次采樣點采樣容易產生位錯誤,如圖2所示。
圖2 發送延時對CAN FD 位校驗的影響
在汽車應用中,受限于車輛線纜布局的限制,難免會有長距離布線的要求。而因為傳輸延遲無法避免,所以在CANFD通訊中引入了發送延時補償Transmitter Delay Compensation (TDC)和二次采樣點 Secondary Sample Point(SSP)的機制,將發送的數據與二次采樣點時刻接收到的數據進行比較,從而保證發送與接受的位可以更好地匹配。在采用CAN FD時,建議啟動此功能。
如何在TCAN4550 配置TDC 和SSP
1. 首先,需要配置CC Control 寄存器的configuration change enable (CCE) 位,才能寫保護寄存器,并將TCAN4550的Date Bit Timing and Prescaler (DBTP)寄存器中配置使能TDC功能。
2. 使能了TDC之后,芯片會在CAN FD幀發送FD Format (FDF) 位的下降沿開始計算傳輸延時,直到RX收到這一位。
圖3 延時補償和二次采樣點圖示
3. 二次采樣點的偏置位置稱為Transmitter Delay Compensation SSP Offset
(TDCO),建議配置成與DBTP寄存器DTSEG1相同的值,通常建議采樣點在80%的位置。確定采樣點是否需要調整的方法如下:
通過監控發送和接受的錯誤計數( TEC Transmitter Error Counter和REC Receiver ErrorCounter)來判斷采樣位置是否合適;
通過示波器來監控CANH 和CANL的信號,判斷是否有較久的振鈴時間(通常出現于長的線纜)需要通過更晚的采樣點來規避;
對一次采樣點SP來說,可以通過增加DTSEG1/DTSEG2推遲采樣點,對二次采樣點SSP來說,可以通過增加偏置位置TDCO推遲二次采樣點。
4. 芯片會自動根據測量到的延時時間和配置的TDCO偏置值,計算發送延時補償后的二次測量點位置Transmitter DelayCompensation Value (TDCV)。TDCV= delay+ TDCO。
5.為了避免在收到的FDF位中出現干擾,導致延時計算被顯性邊緣誤觸發提前結束,從而出現二次采樣點的位置非預期的提前,用戶可以通過TDCF(Transmitter
delay compensation filter windowlength)配置一個最短的濾波窗口時間為最小的SSP位置。通常,對于delay時間范圍未知的系統,建議設定TDCF=TDCO,以使得二次采樣點的位置通過TDCV設定。對于delay已知的系統,建議將TDCF設置為小于并接近TDCV的值。
6. 當計算的TDCV《TDCF時,二次采樣點SSP為TDCF設定值。當TDCV》TDCF時,二次采樣點為TDCV計算結果。
圖4 延時補償和二次采樣點對CAN FD 位校驗的影響
需要特別注意的是上述計算的單位,傳輸延時補償寄存器都是基于minimum time quantum (mtq)即最小時間量做計算的,一般為CAN時鐘的一個時鐘周期。TDCO和TDCF的單位為mtq,自動測量的延時時間的分辨率也為一個mtq。
tq為mtq的整數倍,Nominal Bit Timing and Prescaler (NBTP) 和Data Bit Timing andPrescaler (DBTP)寄存器是以tq為單位,相應的Prescaler系數決定了一個tq為多少倍的mtq。所以在配置TDCO與DTSEG1相同時,需要注意這個單位的轉換。如果DBRP=1,1tq=1mtq。如果DBRP=2, 1tq= 2mtq。DTSEG1的單位為tq,且由于它的值是從1開始的,所以其配置值比實際值大1。
-
CAN
+關注
關注
57文章
2660瀏覽量
462425 -
TDC
+關注
關注
0文章
34瀏覽量
13708 -
SSP
+關注
關注
0文章
16瀏覽量
11539 -
CANFD
+關注
關注
0文章
51瀏覽量
4888
發布評論請先 登錄
相關推薦
評論