淺談CAN總線的位定時參數(shù)
1.概述
CAN總線通信中,波特率、位周期內(nèi)采樣次數(shù)和采樣位置都可以通過編程設(shè)置,這些設(shè)置為用戶根據(jù)其應(yīng)用優(yōu)化網(wǎng)絡(luò)通信性能提供了方便。優(yōu)化位定時參數(shù),能夠保證信息同步、通信性能、傳輸延遲和晶振誤差在極端條件下進(jìn)行恰當(dāng)?shù)腻e誤檢測。
然而系統(tǒng)的有些性能是相互沖突的,例如,在位周期末端部分選擇采樣點可以使傳播延遲有更大的容差,這時總線長度可以更長;如果在位周期的中點附近選擇采樣點,則系統(tǒng)的每個節(jié)點可以有更大的振蕩器容差。可以明顯地看出振蕩器容差和總線長度是互相沖突的,它們只有通過優(yōu)化位定時參數(shù)才能兼?zhèn)洹?/p>
本文將通過一個CAN總線控制網(wǎng)絡(luò)介紹CAN總線位定時參數(shù)的基本概念和計算設(shè)置方法。該網(wǎng)絡(luò)采用AT89S52單片機(jī)、SJA1000 CAN控制器和PCA82C250總線收發(fā)器設(shè)計,并應(yīng)用于樓宇自動化控制系統(tǒng)中,獲得了良好的應(yīng)用效果。
2.CAN總線的位定時關(guān)系及相關(guān)概念
下面介紹的幾個概念中有些與具體的器件有關(guān),本網(wǎng)絡(luò)中使用的CAN總線控制器件是SJA1000,因此,有關(guān)概念也都是針對SJA1000而言的。
振蕩器時鐘周期tclk tclk是CAN總線控制器外掛晶振頻率的倒數(shù),它是CAN總線系統(tǒng)中的最小時間單位。
系統(tǒng)時鐘周期tSCL tSCL是系統(tǒng)將tSCL分頻后得到的一個時間值,它在時間上就是一個時間份額TQ,分頻數(shù)由SJA1000的波特率預(yù)設(shè)值(BRP)決定。tSCL可由下式來計算:tSCL=2×tclk×BRP (1)
位周期tBit位周期是一位數(shù)據(jù)在總線上的持續(xù)時間。使用Philips公司的獨(dú)立CAN控制器,一個位周期由3個部分組成:同步段( tSYNC_SEG)、相位緩沖段1(tTSEG1)和相位緩沖段2( tTseg2)。如下式所示:tBit=tSYNC_SEG+tTSEG1+tTSEG2 (2)
CAN位定時控制寄存器BTR0和BTR1 SJA1000的地址6(BTR0)和地址7(BTR1)是位定時控制寄存器。
BTR0的高兩位決定了同步跳轉(zhuǎn)寬度的大小,低六位決定波特率預(yù)設(shè)值; BTR1的最高位決定了總線采樣模式,低七位決定了TSEG1和TSEG2的大小。