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