優(yōu)化位定時提高CAN 網(wǎng)絡(luò)性能的研究
隨著 CAN 總線的應(yīng)用越來越廣泛,對如何提高CAN 總線網(wǎng)絡(luò)的性能就顯得尤為重要。 CAN 總線允許用戶自行設(shè)計采樣點位置和采樣次數(shù)來優(yōu)化應(yīng)用網(wǎng)絡(luò)的性能。而振蕩器容差 和總線長度是互相沖突的,只有通過優(yōu)化位定時參數(shù)才能使二者兼?zhèn)?。本文深入分析了CAN 總線的位定時參數(shù)、參考振蕩器容差和信號傳播延遲之間的關(guān)系,提出了一種切實可行的優(yōu) 化方法,并采用獨立CAN 控制器SJA1000 構(gòu)建實驗平臺,經(jīng)驗證該方法是有效的。
1 位定時控制方法分析
1.1 位時間
位時間即位周期是指一位的持續(xù)時間。額定位周期tBit由同步段SYNC_SEG、相位緩 沖段TSEG 1 和TSEG2這3個時間段組成。
額定位周期中這些段都由整數(shù)個基本時間單位來表示,稱為時間份額(TQ),而時間份 額由振蕩器時鐘周期CLK t 和波特率預(yù)分頻值BRP 取得。
簡言之,位定時的作用可歸納為:1)確定位時間,以便確定波特率,進而確定總線的 網(wǎng)絡(luò)速度;或在給定總線的網(wǎng)絡(luò)速度的情況下確定位時間;2)確定1 位的各個組成部分的 時間長度;3)確定重同步跳轉(zhuǎn)寬度以用于重同步。
1.2 傳輸延遲
CAN 總線中的節(jié)點通過非破壞性仲裁訪問網(wǎng)絡(luò),總線上的所有節(jié)點都要同步于最先開 始發(fā)送的節(jié)點,但是節(jié)點之間競爭優(yōu)先權(quán)時會產(chǎn)生傳輸延遲,使節(jié)點的同步達(dá)不到理想值。 如果傳輸延遲時間過長,將導(dǎo)致無效的訪問仲裁。同時,CAN 總線中的各種延遲在給定位 速率下還會限制最大的網(wǎng)絡(luò)總線長度。
如圖 2 所示,節(jié)點A 和節(jié)點B 都是發(fā)送節(jié)點,因此總線要對兩個節(jié)點進行仲裁。節(jié)點 A 比節(jié)點B 提前發(fā)送不到1 個位時間,當(dāng)節(jié)點B 收到延遲后的跳變沿時,節(jié)點B 要同步于 節(jié)點A,對位時間進行移相。移相后節(jié)點B 發(fā)送的標(biāo)識符有較高優(yōu)先級,因此贏得總線的 使用權(quán),同時節(jié)點B 發(fā)送的顯性位經(jīng)過延遲后到達(dá)節(jié)點A。
因為存在振蕩器容差,節(jié)點A 的采樣點在相位緩沖段的位置是不能確定的,所以節(jié)點B 發(fā)送的位流必須在節(jié)點A 的相位緩沖段1 開始之前到達(dá),因此傳播時間段的長度將受到這 個條件的限制。
2 位定時參數(shù)的計算
2.1 實驗方法及軟件設(shè)計
CAN 系統(tǒng)的最小要求是有兩個節(jié)點,本實驗系統(tǒng)由4 臺插有CAN 適配器的PC 機構(gòu)成, 4 臺PC 機分別定義為節(jié)點1、節(jié)點2、節(jié)點3、節(jié)點4。該適配器以獨立CAN 控制器SJA1000 為核心,SJA1000 是由PHILIPS 公司生產(chǎn),支持PeliCAN 模式。
獨立CAN 控制器SJA1000 中,總線定時寄存器0(BTR0) 用來定義波特率預(yù)設(shè)值BRP 和同步跳轉(zhuǎn)寬度SJW 的值,總 線定時器1 用來定義每個位周期的長度、采樣點的位置,以 及在每個采樣點的采樣數(shù)目。
本系統(tǒng)采用低波特率通信,因此選擇3 采樣點模式,基 于以上討論及SJA1000 的特點,可以設(shè)計出CAN 總線位定 時計算的軟件,其流程圖如圖3 所示。
選 擇 3 采樣點模式時位定時的計算公式如下:
當(dāng)表 2 中計算出的TSEG2的最小值和最大值出現(xiàn)沖突時,需要減少期望的最大傳播延遲和 使用容差更小的振蕩器來重新計算位定時參數(shù)。
3 結(jié)論
優(yōu)化位定時時間能大大提高 CAN 總線網(wǎng)絡(luò)的性能,本文提出的方法能有效的得到最優(yōu) 的位定時參數(shù),實驗證明該方法是可行和有效的。本文作者創(chuàng)新點:設(shè)計系統(tǒng)采用低波特率 通信,針對傳輸延遲和振蕩器容差編寫出最優(yōu)位定時參數(shù)計算程序,該方法能應(yīng)用到CAN 總線節(jié)點開發(fā)中。