當通訊節點間采樣點參數和波特率參數不匹配造成一些錯誤幀時,我們如何在TSMaster中設置以及調整波特率參數和采樣點參數,來減少以及消除總線上出現的錯誤幀,進一步提高通信質量。本文著重講解講解如何借用TSmaster更加便捷地獲取相應的采樣點參數以及波特率參數并通過API設置到用戶程序中。
本文關鍵字:采樣點、波特率、錯誤幀、tsapp_configure_canfd_regs
目錄
●采樣點定義
●采樣點導致的通信問題
●如何在TSMaster中調整采樣點參數
●tsapp_configure_canfd_regs參數配置
Catalog
”
采樣點定義
采樣點是CAN控制器讀取總線電平,并解釋各個比特的邏輯值的時間點。在我們了解采樣點之前,我們需要先了解CAN報文中位時間的概念以及位時間的組成部分,位時間指的是每傳輸一位數據所需要的時間,而CAN控制器的最小時間周期稱作時間份額(Time Quantum,簡稱TQ),它是通過對芯片晶振周期進行分頻而得來的。一個位時間由若干個TQ組成(通常為8到25個),同時根據功能的不同,可以分為4個階段:同步段、傳播段、相位緩沖段1和相位緩沖段2。
△ 圖1:某個位時間的組成
四個階段的功能如下
● 同步段:用于實現時序調整,總線上各個節點的跳變沿產生在同步段內,通常為1個TQ。
● 傳播段:用于補償網絡上的物理延遲時間,這些延遲時間包含信號在總線上的傳輸延遲和CAN節點內部的處理延遲。
●相位緩沖段1(Phase_Seg1)和相位緩沖段2(Phase_Seg2):用于補償跳變沿的相位誤差,其長度會在重同步的實現過程中延長或縮短。
CAN通信中不同得分波特率時間對應的采樣點以及位時間的份額不盡相同。常見的采樣點以及相關的參數如下表所示。以波特率為500K為例,一個位時間被分配成16個時間份額,而采樣點在第14個時間份額。
△ 圖2:CAN通信中常見采樣參數
合適的采樣點位置是CAN控制器正常通信的保證,其重要性主要有以下三點:
● 對于CAN網絡這個整體而言,各個節點應該盡量使用相同的采樣點位置,否則容易出現采樣錯誤,進而使整個網絡的通信出現故障;
● 對于單個節點而言,過早的采樣使得節點易受位時間初期的電平波動影響,進而導致采樣錯誤;
● 受限于重同步的要求和相位緩沖段的寬度,CAN控制器無法過晚采樣。
采樣點導致的通信問題
CAN網絡采用異步通信的方式,因此需要根據波特率進行采樣,采樣原理如下圖所示。紅色箭頭則表示采樣點的位置,采樣得到的數據為“1010 1010”。
△ 圖3:CAN通信采樣原理示意圖
若采樣點設置提前20%,則采樣后得到的數據為“0101 1010”,與圖1中數據相比較,圖4中采樣得到的第五位數據就不相同。因此,在CAN通信網絡中,如果傳輸節點之間的采樣點差異不同,則會造成數據傳輸傳輸錯誤,并且隨著傳輸的數據越多,累計的錯誤數據位就越多。所以在進行CAN網絡通信時,需要將各個節點的波特率和采樣點設置位相同的。
△ 圖4:采樣點提前20%的采樣示意圖
在CAN通信網絡中,節點之間波特率和采樣點設置不匹配導致的問題主要表現是出現錯誤幀。以波特率500k、采樣點80%(相位緩沖段1為63、相位緩沖段2為16)與波特率250k、采樣點50%(相位緩沖段1為3、相位緩沖段2為4)為例,使用同星硬件TC1016和TSmaster進行測試,分別將以上波特率和采樣點參數部署至短接的CAN1與CAN2通道。
△ 圖5:CAN1通道波特率和采樣點參數配置
△ 圖6:CAN2通道波特率和采樣點參數配置
在此參數配置條件下,在TSMaster的報文發送窗口發送報文,然后可以在報文信息窗口下看到報文數據在總線上傳輸的狀態。如下圖所示,在通信節點之間的波特率和采樣點參數配置不相同的情況下,報文信息窗口會出現錯誤幀。
△ 圖7:節點間采樣點參數不同導致的錯誤幀
因此,在TSMaster報文信息窗口出現錯誤幀的時候,檢查節點之間的波特率和采樣點參數配置是一個重點排查的方向。除此之外,不僅僅是上圖所展示的錯誤幀類型,當報文信息窗口出現其他錯誤幀類型,諸如bit error、form error等(如圖8和圖9所示),都需要檢查波特率和采樣點采樣點參數配置。
△ 圖8:錯誤幀
△ 圖9:錯誤幀
如何在TSMaster中調整采樣點
當因為采樣點設置不當,導致在TSMaster的報文信息窗口觀測到錯誤幀時,此時需要重新調整TSMaster中的參數配置,以實現節點之間的正常通信。因此,如何在TSMaster中調整采樣點和波特率參數以消除錯誤幀,提高通信質量尤為重要。但在此之前,需要知道如何計算采樣點。
其中,TSEG1和TSEG2在TSmaster中分別表示為相位緩沖段1和相位緩沖段2。在知道采樣點的計算公式后,可以根據被測件的通信參數準確計算出相應的采樣點參數,然后可進一步在TSMaster的總線硬件界面中配置好相應參數,以實現節點間的正常通訊。
調整采樣點和波特率參數的步驟
● 步驟一:首先需要在通道需選擇界面選擇相應的硬件通道,并點擊確認。
△ 圖10:選擇通道
●步驟二:確定通道后,在總線硬件界面配置波特率參數。
△ 圖11:配置波特率和采樣點參數
以CAN通信網絡為例,波特率的選擇范圍由125kbps至1000kbps,波特率的選擇要參考被測件的通信參數,并且在TSmaster中波特率參數設置應與之對應,若在不清楚被測件波特率參數的情況下,可以詢問廠商或者換用其他波特率參數進行通信,看看在其他波特率參數下可否改善出現錯誤幀的情況。
△ 圖12:波特率參數選項
●步驟三:配置采樣點參數(即仲裁段位時間)
TSMaster提供諸多采樣點參數,以供配置使用。參考總線硬件界面中的仲裁段位時間選項,同一個采樣點可能對應的相位緩沖段1參數和相位緩沖段2參數不盡相同,因此,在選擇采樣點時需要用到采樣點公式進行計算,根據被測件的的通信參數,選擇與之對應的相位緩沖段1參數和相位緩沖段2參數進而計算出采樣點參數。
△ 圖13:采樣點參數選項
此外,當根據被測件計算出來的采樣點參數或者相位緩沖段1參數和相位緩沖段2參數在仲裁段位時間參數選項列表中無法找到時,可以在選項列表中選擇與之相近的參數進行配置即可。若使用者在不知道被測件的通信參數下,推薦使用TSMaster中默認采樣點參數即可。
△ 圖14:TSMaster默認采樣點參數
tsapp_configure_canfd_regs參數配置
TSMaster提供眾多的API函數給用戶進行二次開發,通過API函數編寫更加符合自己需求的用戶程序實現各項功能。當使用二次開發的程序出現通信錯誤時,可以使用上述方法在TSMaster界面中不斷調整采樣點和波特率等參數的配置,以改善總線中出現錯誤幀的情況,進而獲取更加符合與被測件之間進行通信的采樣點和波特率等參數。
tsapp_configure_canfd_regs函數作用是配置 CANFD 控制器內部寄存器,讓控制器的采樣點,同步跳變寬度等參數更加精確。函數如圖15所示:
△ 圖15:tsapp_configure_canfd_regs函數
表格:tsapp_configure_canfd_regs函數輸入參數表
上面這些參數看起來很繁瑣,但是可以通過 TSMaster 的配置器直接查看到對應的參數值。以仲裁場 500k,仲裁采樣點 80%,數據場 2000k,數據場采樣點 80%為例。進入TSMaster,打開總線硬件配置,如圖16所示。
△ 圖16:總線硬件配置
展開仲裁段位時間選項,精確選擇 80%的采樣點,如圖17所示:
△ 圖17:仲裁段位時間
因此,可以看到 AArbSEG1 = 31,AArbSEG2 = 8, AArbPrescaler = 2;AArbSJW= 6(<= AArbSEG2 即可),AArbBaudrate = 500。
同理,可以獲得數據場的參數配置,如圖18所示:
△ 圖18: 數據段位時間
因此采樣點和波特率等參數的獲取和調整都可以在TSMaster中完成,通過這樣的調試方式可以讓TSMaster的功能充分發揮出來,更加便捷地幫助使用者完成開發所需。
-
網絡
+關注
關注
14文章
7600瀏覽量
89251 -
MASTER
+關注
關注
0文章
104瀏覽量
11331 -
CAN控制器
+關注
關注
3文章
74瀏覽量
15103
發布評論請先 登錄
相關推薦
評論