CAN總線位定時和同步的研究與設(shè)計
這里需要注意的是,相位緩沖段只在當(dāng)前的位時間內(nèi)被延長或縮短,在接下來的位時間內(nèi),只要沒有重同步,各時間段將恢復(fù)編程預(yù)設(shè)值。
3 控制器中位定時參數(shù)設(shè)置的一般方法
在典型的獨立CAN控制器(SJA1000或PCA82C200)中,負責(zé)位定時的寄存器為總線定時寄存器0(BTR0)和總線定時寄存器1(BTR1),其結(jié)構(gòu)如圖5所示。
寄存器中有關(guān)參數(shù)的計算公式如下:
這些參數(shù)的范圍在CAN中有較嚴格的規(guī)定,具體如表1所示。
在有些情況中.為了優(yōu)化網(wǎng)絡(luò)性能,這些參數(shù)的設(shè)置往往需要考慮傳輸延遲、時鐘偏頻等因素。然而,對于一般的開發(fā)或工程實際,完全可以根據(jù)經(jīng)驗對其進行計算和設(shè)置。這里以一個時鐘頻率為20 MHz、通信波特率為250 Kb/s(位時間為4μs)的系統(tǒng)為例,介紹與位定位有關(guān)的各參數(shù)的計算方法和步驟。
(1)確定時間份額。
由表1可知,在1個位周期中時間份額的數(shù)量必須是8~25之間的
(3)確定同步跳轉(zhuǎn)寬度和采樣次數(shù)。
為完成位定時參數(shù)的設(shè)置,最后還要確定同步跳轉(zhuǎn)寬度和采樣次數(shù)。同步跳轉(zhuǎn)寬度的一般設(shè)置原則是在允許的范圍內(nèi)應(yīng)盡可能的大一些,這樣更有利于在重同步時對沿相位誤差的補償,在這里可將該參數(shù)設(shè)置為3。采樣次數(shù)的設(shè)置比較容易和直接,對于高速總線,建議將SAM置為“0”,此時總線被采樣1次;而對于低/中速總線,建議將SAM置為“1”,此時總線被采樣3次。250 Kb/s屬于高速總線,所以在這里SAM應(yīng)置為0。通過以上方法和步驟所確定的各參數(shù)值,再結(jié)合式(2)、式(3)、式(5)、式(6)可直接得出寄存器BTR0和BTR1的設(shè)置值。
4 結(jié) 語
(1)結(jié)合圖解的方式對CAN總線位定時、硬同步和重同步等關(guān)鍵技術(shù)的深入探討和分析,反映了CAN總線位定時和同步機制的本質(zhì)、清晰地表明了它們在CAN技術(shù)規(guī)范中的地位與作用。
(2)在CAN總線中,通信波特率(位時間)、每個位時間的采樣位置及個數(shù)、同步跳轉(zhuǎn)寬度等都可以自行設(shè)定。然而,位定時參數(shù)如果設(shè)置不當(dāng)就會檢測到錯誤并進行錯誤處理,導(dǎo)致總線性能下降甚至無法工作。因此要分析、解決這樣的問題就需要對CAN總線位定時和同步機制有較深入的理解,從而保證正確地設(shè)置位定時參數(shù)。
(3)這里所研究的內(nèi)容,是深入理解和學(xué)習(xí)CAN總線技術(shù)的前提和保證,也是進行后續(xù)開發(fā)和研究的基礎(chǔ)和關(guān)鍵。
評論