CAN通訊中使用的是同步數據傳輸,CAN控制器在其通訊過程中會不停出現位同步的操作,但不同的數據通訊系統對位同步的要求是不同,為了滿足其要求,我們必須更加深入的來探討另一個概念叫位定時段的規格。
位定時段的規格是根據數據通信系統的需求而確定的。如果要在特定位速率下實現最大的總線長度或者在給定總線長度的情況下實現最短的等待時間(最大位速率),那么用于重新同步的保留時間(相位緩沖段)必須保持最小。當時間緩沖段設定為最小值時,表示在一次重新同步當中只能校正|e|=1的相位誤差。因此對位同步的要求非常高,要滿足這樣的要求只能使用精確的石英晶振(石英晶振的誤差通常小于0.1%.)。
圖 1 位定時段(位速率和總線長度乘積為最大值)的規格
圖 1所示為位定時段(位速率和總線長度乘積為最大值)的規格。這樣的要求主要應用于工業自動化系統。
如果對位速率和總線長度的要求不高,那么位速率和總線長度的乘積也因此降低,而用于重新同步的時間緩沖段則可延長。這樣根據最大可能的同步跳轉寬度,在一次重新同步中可校正|e|=4的相位誤差。因此可以使用較為經濟的陶瓷振蕩器。圖 2所示為適用于汽車電子中最大振蕩器誤差的位定時規格。
圖 2 位定時段的規格(適用于最大振蕩器誤差)
通常位定時的規格首先通過所需要的位速率來確定。位時間必須為系統時鐘周期的整數倍。位時間tbit=n×tq(n=4..25,tq為時間量)。確定位定時參數的一種方法是首先確定傳輸段的長度,因此必須考慮到最大的總線長度和最大內部延遲時間。將往返的延遲時間轉換成對應時間量的數目并取四舍五入為tq的整數倍。由于同步段的長度為1個tq。那么剩下兩個相位緩沖段的長度為(tbit-tprog_seg-tq)。如果剩余時間單位的個數m=(tbit-tprog_seg-tq)/tq為偶數,則兩個緩沖段的長度相同,如果是奇數,tphase-seq2=tphase_seq1+tq。
還必須注意Phase_Seg2的最小標稱長度。由于該段不能短于CAN控制器的數據處理時間(該時間取決于實現方式的不同,介于0到2 tq之間)。同步跳轉寬度(SJW)設置為它的最大值Min{4, tphase_Seg1/tq}。
振蕩器的允許誤差根據下方兩條公式進行確定。
公式一:
df ≤ tSJW / (20×tBit)
式中: tBit 標稱位時間
tSJW 重新同步跳轉寬度
公式二:
df ≤ min{ t Phase_seg1, t Phase_seg2} / (2×( 13×tBit-t Phase_seg2))
式中: t Phase_seg2 相位緩沖段1的時間
t Phase_seg2 相位緩沖段1的時間
tBit 標稱位時間