<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > CAN總線位定時和同步的研究與設(shè)計

          CAN總線位定時和同步的研究與設(shè)計

          作者: 時間:2009-08-04 來源:網(wǎng)絡(luò) 收藏

          這里需要注意的是,相位緩沖段只在當(dāng)前的位時間內(nèi)被延長或縮短,在接下來的位時間內(nèi),只要沒有重,各時間段將恢復(fù)編程預(yù)設(shè)值。


          3 控制器中位參數(shù)設(shè)置的一般方法
          在典型的獨立控制器(SJA1000或PCA82C200)中,負(fù)責(zé)位的寄存器為寄存器0(BTR0)和定時寄存器1(BTR1),其結(jié)構(gòu)如圖5所示。

          寄存器中有關(guān)參數(shù)的計算公式如下:


          這些參數(shù)的范圍在中有較嚴(yán)格的規(guī)定,具體如表1所示。

          在有些情況中.為了優(yōu)化網(wǎng)絡(luò)性能,這些參數(shù)的設(shè)置往往需要考慮傳輸延遲、時鐘偏頻等因素。然而,對于一般的開發(fā)或工程實際,完全可以根據(jù)經(jīng)驗對其進(jìn)行計算和設(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)盡可能的大一些,這樣更有利于在重同步時對沿相位誤差的補(bǔ)償,在這里可將該參數(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é)合圖解的方式對總線位定時、硬同步和重同步等關(guān)鍵技術(shù)的深入探討和分析,反映了CAN總線位定時和同步機(jī)制的本質(zhì)、清晰地表明了它們在CAN技術(shù)規(guī)范中的地位與作用。
          (2)在CAN總線中,通信波特率(位時間)、每個位時間的采樣位置及個數(shù)、同步跳轉(zhuǎn)寬度等都可以自行設(shè)定。然而,位定時參數(shù)如果設(shè)置不當(dāng)就會檢測到錯誤并進(jìn)行錯誤處理,導(dǎo)致總線性能下降甚至無法工作。因此要分析、解決這樣的問題就需要對CAN總線位定時和同步機(jī)制有較深入的理解,從而保證正確地設(shè)置位定時參數(shù)。
          (3)這里所的內(nèi)容,是深入理解和學(xué)習(xí)CAN總線技術(shù)的前提和保證,也是進(jìn)行后續(xù)開發(fā)和的基礎(chǔ)和關(guān)鍵。


          上一頁 1 2 下一頁

          關(guān)鍵詞: 研究 設(shè)計 同步 定時 總線 CAN

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();