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