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

VLAN 配置中的常見(jiàn)問(wèn)題解決
常見(jiàn)傅里葉變換錯(cuò)誤及解決方法
CAN總線常見(jiàn)錯(cuò)誤碼及其解決方法
解決方案 | 基于TSMaster的平板電腦解決方案

干貨分享 | TSMaster軟件指南

TSMaster 中不同總線報(bào)文消息過(guò)濾的操作方式

TSMaster 的 CAN UDS 診斷操作指南(下)

一文讀懂CAN通訊錯(cuò)誤幀

TSMaster 的 CAN UDS 診斷操作指南(上)

TSMaster 中 Hex 文件編輯器使用詳細(xì)教程

詳解TSMaster CAN 與 CANFD 的 CRC E2E 校驗(yàn)方法

TSMaster如何同時(shí)記錄標(biāo)定變量和DBC信號(hào)至BLF文件

TSMaster 信號(hào)映射的配置方法

評(píng)論