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