CANfd 一次采样点和二次采样点
CANfd 一次采樣點和二次采樣點
采樣點的定義
采樣點是CAN控制器讀取總線電平,并解釋各個比特的邏輯值的時間點。
首先我們需要了解Tq的概念,Tq是can控制器的最小時間周期稱作時間份額(Time quantum,簡稱Tq),它是通過芯片晶振周期分頻而來。傳輸的個bit位由若干個Tq組成,根據功能傳輸一個BIT位需要分成四個階段:同步段、傳輸段、相位緩沖段1和相位緩沖段2.
這4個階段的功能如下:
1.同步段(Sync_Seg):用于實現時序調整,總線上各個節點的跳變沿產生在同步段內,通常為1個Tq;
2.傳播段(Prop_Seg):用于補償網絡上的物理延遲時間。這些延遲時間包含信號在總線上的傳輸延遲和CAN節點內部的處理延遲。傳播段保證了2倍的信號在總線上的延遲時間;
3.相位緩沖段1(Phase_Seg1)和相位緩沖段2(Phase_Seg2):用于補償跳變沿的相位誤差,其長度會在重同步的實現過程中延長或縮短。
采樣點位于相位緩沖段1的結尾。由于相位緩沖段1和相位緩沖段2能夠延長或縮短,采樣點也能夠隨之變化。
can采樣點的計算
晶振時鐘周期:是由單片機振蕩器的晶振頻率決定的,指的是振蕩器每震蕩一次所消耗的時間長度,也是整個系統中最小的時間單位;
下面以TP377為例進行計算
通過查看配置我們的canfd的,采樣分為仲裁場和數據場。仲裁場的波特率為500Kbit/s,數據場為2Mbit/s,can時鐘頻率為4.0E7。
查看TP377手冊Tq = (DBRP + 1) clock cycles
Tq=(1+1)1/4.0E7(s)=50(ns)
仲裁場計算采樣點:
對于仲裁場500k,傳輸一個bit位的時間1/500000s=2us,所以分配
2us/50ns=40個tq,
如果采樣點設置為80%,則sync_seg+prop_seg+phase_seg1=4080%=32Tq
在ET tresos中可以這樣配置
數據場采樣點計算:
對于數據場2Mkbs,傳輸一個bit位的時間1/2000000s=500ns,所以分配
500ns/50ns=10個tq,
如果采樣點設置為80%,則sync_seg+prop_seg+phase_seg1=10*80%=8Tq
則對應在EB TRESOS中配置如下
CAN-FD與CAN發送速率的不同
CAN最大傳輸速率1Mbps,CAN-FD速率可變,仲裁比特率最高1Mbps(與CAN相同),數據比特率最高8Mbps。BRS位速率切換為,BRS位為0時CANFD速率保持恒定速率、BRS位為1時CANFD的數據段會被切換到高速率。
ESI錯誤狀態指示位:CAN報文中發送節點的錯誤狀態只有該節點自己知道,CANFD報文中可以通過ESI標志位來告訴其他節點該節點的錯誤狀態,當ESI為1時表示發送節點處于被動錯誤狀態、當ESI為0時表示發送節點處于主動錯誤狀態。
發送延遲補償
CAN控制器發送信號時,是經過收發器后發往CAN總線后,再經過收發器反饋總線信號。那么發送過程中,控制器發送位信號到接收位信號就不可避免地存在環路延遲。發送延遲時間的總和如下:
1 ). CAN控制器內部產生TX信號到Tx引腳的傳播延遲;
2 ). Tx引腳到收發器TxD引腳的傳播延遲;
3 ).收發器環路延遲TxD到RxD;
4 ). 收發器RxD引腳到CAN控制器Rx引腳延遲;
5 ).CAN控制器Rx引腳到控制器內部收到Rx信號的延遲
CAN協議中規定:發送方發送位時,需檢測接收到的位與發送是否一致,若不一致則產生錯誤幀(位錯誤)。如果發送延遲過長,則將直接導致發送與接收位不一致而產生錯誤幀。由于傳統CAN協議規定最高波特率為1Mbps,即位寬1us,正常情況下,傳輸延遲不會超過位寬的采樣點(當然具體延遲取決于收發器環路延遲、傳輸距離、傳輸線纜質量等),因此不會因為發送延遲而產生錯誤。
在CANFD中,數據段的波特率是比CAN更高的(BRS位為隱性時),此時波特率越高,位寬越小,在發送報文時發送延遲影響越大,越容易產生位錯誤。由于發送延遲無法避免,此時就需要一種機制來保證發送與接收的位對應上,以避免產生位錯誤。這種機制就是發送延遲補償了。
發送延遲補償(TDC)
TDC實際上就是在發送BRS位為隱性的CANFD報文時(BRS隱性即開啟數據域波特率),在發送時延遲一定時間后,在第二采樣點采樣接收位,以正確采樣到發送位對應的接收位。
發送延遲測量
那么延遲采樣的延遲時間是多久呢?實際上,開啟TDC后,控制器將自動測量Tx信號線上FDF位到r0位下降沿與Rx信號線上FDF位到r0位邊沿的之間的延遲時間,如下圖中所示,TDCV即為延遲時間。發送延遲測量的時間單位為CAN控制器時鐘(TDC寄存器中一般對TDCV的值有限制,若超過寄存器最大位數,則發送延遲測量失敗)。
不同于采樣點,第二采樣點在CAN FD控制器接收其他節點發送報文的過程中并不會起到任何作用。第二采樣點的作用,是在不改變傳輸延遲補償的情況下,實現CAN FD在數據場的位錯誤檢測要求。
根據TP377手冊
根據手冊TDCV是接收到數據時的發送延遲時間,是當TDC使能的時候會自己自動計算的。
TDCO就是設置的正常采樣點的時間。
總結
以上是生活随笔為你收集整理的CANfd 一次采样点和二次采样点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 悦淘金:什么才是社交零售的真正逻辑?电商
- 下一篇: C20S023全新概念高集成单片机