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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 用P89C51RC+IA和EMP7064S實現(xiàn)轉(zhuǎn)速測量

          用P89C51RC+IA和EMP7064S實現(xiàn)轉(zhuǎn)速測量

          作者: 時間:2012-02-27 來源:網(wǎng)絡 收藏

          2.3 方向信號提取電路

          當測轉(zhuǎn)速時,不僅要給出速度的大小,還要給出速度的方向。由采用的測量原理可知,測量過程中不能得出方向的信息,轉(zhuǎn)動方向只能通過輸出脈沖得到。設(shè)順時針轉(zhuǎn)時,A超前B90°;反之,B超前A90°。根據(jù)這一關(guān)系可得到方向信號。實現(xiàn)此功能的電路及時序如圖3所示。D為不同電平分別代表不同的轉(zhuǎn)動方向。

          3 測量系統(tǒng)的構(gòu)成

          測量過程中用到一個定時器,一個帶捕獲功能的脈沖計數(shù)器和一個帶捕獲功能的標準時間計數(shù)器。 P89C51RC+IA有三個定時器TIME0~0和一個 PCA可編程計數(shù)陣列。其中定時器2和PCA陣列具有計數(shù)捕獲功能。根據(jù)采用的測量方法構(gòu)成如圖4所示的測量框圖。由圖4可知,定時器2用于脈沖計數(shù),PCA陣列用作標準時間信號計數(shù),定時器1用于定,這樣就構(gòu)成基本的測量系統(tǒng)。在測量時定,這樣就構(gòu)成基本的測量系統(tǒng)。在 Ts內(nèi)同時對碼盤脈沖Fm(倍頻后的信號)和標準時間信號計數(shù)。定時器1每隔時間Ts就產(chǎn)生一次中斷。定時器2和PCA計數(shù)陣列都為下降沿捕獲。捕獲寄存器在a、b時刻的值分別是計數(shù)器在ti、ti+1時刻的計數(shù)值。設(shè)定時器2和PCA陣列捕獲寄存器在a、b時刻的值分別為Cti、Cti+1和Cmi、 Cmi+1。則轉(zhuǎn)速為ω=[90(Cmi+1-Cmi)/mTc(Cti+1-Cti)](°/s)。

          4 軟件設(shè)計

          系統(tǒng)要正常工作,需有軟件的配合。系統(tǒng)軟件除了完成系統(tǒng)的硬件初始化外,還要完成對硬件電路的實時控制,對數(shù)據(jù)進行輸入輸出操作和數(shù)據(jù)的分析,并根據(jù)數(shù)據(jù)分析的結(jié)果作相應的處理。由于本系統(tǒng)被設(shè)計成PC ISA卡的個人儀器形式,簡化了測量系統(tǒng)的結(jié)構(gòu),并能充分利用PC機的運算資源,大大提高測速上限。簡要測試程序框圖如圖5所示。

          本文介紹了以M/T法為基礎(chǔ),為PHILIPS P89C51RC+IA和ALTERA EMP7064S實現(xiàn)的數(shù)字測量法。由于P89C51RC+IA單片機定時器2、PCA可編程計數(shù)器捕獲功能的特殊結(jié)構(gòu)及EMP7064S的可編程功能,大大簡化了電路設(shè)計,提高了系統(tǒng)的可靠性。此儀器被做成PC ISA卡的個人儀器,既可利用PC機的資源,又可簡化測量系統(tǒng)。此設(shè)計已成功應用于模擬仿真試驗轉(zhuǎn)臺的速率測量中。


          上一頁 1 2 3 下一頁

          評論


          相關(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); })();