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

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的多通道直流電機控制器設計

          基于FPGA的多通道直流電機控制器設計

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

          2.2 分頻模塊
          盡管可以設計中采用鎖相環(huán)來完成分頻器的設計,但為了節(jié)省邏輯資源,降低芯片功耗,在對于時鐘要求不太嚴格的設計中,可自主設計進行時鐘分頻。本設計中采用常用的計數(shù)分頻,只改變分頻系數(shù)就可實現(xiàn)隨意分頻。其設計過程簡單,且消耗系統(tǒng)資源少。在本設計中輸入時鐘CLK_25M為25 MHz,為了設計方便,選擇分頻系數(shù)設為16。通過對模塊輸出進行仿真,測量時鐘輸出頻率為1.562 5 MHz,周期為640 ns滿足設計要求。
          2.3 計數(shù)模塊
          本設計中采用霍爾傳感器對進行轉速測量,電機每轉一圈,霍爾傳感器就輸出一個高脈沖。測速模塊其功能主要是計數(shù),并且將所得到的數(shù)字應予鎖存輸出。根據(jù)單位周期內霍爾傳感器輸出的高脈沖數(shù)就可以估算出電機的轉速。在本設計中設定每500 ms的周期內對計數(shù)結果進行一次輸出并清零。根據(jù)其具體邏輯功能將利用Verilog HDL語言實現(xiàn),其邏輯框圖如圖4所示。

          本文引用地址:http://www.ex-cimer.com/article/189758.htm

          g.JPG


          測速模塊的邏輯仿真結果如圖5所示,分頻后系統(tǒng)時鐘頻率為1.562 5 MHz,系統(tǒng)復位后,開始對被測霍爾傳感器輸入進行計數(shù)測量,其結果為20。已經(jīng)被測輸入信號周期為50 ms,則頻率為20,表明設計完全正確。

          b.JPG


          2.4 并行控制模塊
          并行控制模塊部分是電機控制的核心部分,主要負責根據(jù)預定設置和計數(shù)模塊的計數(shù)結果,按照設計目的,完成對PWM占空比的控制。由于要實現(xiàn)各通道電機之間互不干擾,則要求各并行控制模塊與測速模塊和PWM生成模塊一一對應,以實現(xiàn)各通道并行獨立控制。
          2.5 PWM生成模塊
          產生PWM原理:中的基準計數(shù)器用來產生類似模擬電路的三角波基準,是一個最小計數(shù)值為0,最大計數(shù)值為周期寄存器中保存的數(shù)值。PWM的任務邏輯由輸入時鐘CLK,輸出信號pwm_out,使能位,32位計數(shù)器以及一個32位比較器組成。輸入時鐘作為32位計數(shù)器的時鐘信號,32位計數(shù)器的當前值與占空比設定寄存器中的值經(jīng)過比較器后來決定pwm_out的輸出為高或為低。當前計數(shù)器中的值小于或等于占空比寄存器中的值時,pwm_out輸出低電平,否則輸出高電平。PWM的周期設定寄存器來設置pwm_out的信號周期,當前計數(shù)器的值等于周期設定寄存器中設定的值時產生一個復位信號來清除計數(shù)器中的值。使能控制寄存器能使時鐘信號有效或無效,從而控制計數(shù)器是否工作,進而控制pwm_out是否保持當前狀態(tài)不變。PWM生成模塊邏輯圖如圖6所示。

          h.JPG

          霍爾傳感器相關文章:霍爾傳感器工作原理


          霍爾傳感器相關文章:霍爾傳感器原理


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();