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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種以基于NiosⅡ的超聲電機(jī)驅(qū)動控制電路

          一種以基于NiosⅡ的超聲電機(jī)驅(qū)動控制電路

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

          摘要:針對直線超聲電機(jī)的特點,設(shè)計了一種以FPGA為核心、基于技術(shù)和軟核處理器的新型超聲電機(jī)驅(qū)動控制器,以控制直線型超聲電機(jī)的速度和位移。該驅(qū)動控制器把CPU、DDS模塊以及光柵反饋計數(shù)模塊都集成在一片F(xiàn)PGA中,具有電子元件使用少,功耗低,易修改、易升級等特點,為超聲電機(jī)的各種運(yùn)動平臺提供了一個良好的閉環(huán)控制系統(tǒng)。

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

          超聲電機(jī)是一種新型微特電機(jī),其工作原理是通過壓電材料的逆壓電效應(yīng),使定子在超聲頻段微幅振動,依靠摩擦將振動轉(zhuǎn)換成動子的旋轉(zhuǎn)(直線)運(yùn)動。超聲電機(jī)具有體積小,重量輕、結(jié)構(gòu)緊湊、響應(yīng)快、無電磁干擾等優(yōu)點,在航天宇航和軍事裝備等領(lǐng)域有著廣泛的應(yīng)用前景。

          近些年來,我國在超聲電機(jī)控制方面,提出了一些控制理論,并搭建了一些用于超聲電機(jī)驅(qū)動的實際驅(qū)動與控制電路。2010年,薛雯玉碩士研究了基于DSP芯片的超聲電機(jī)驅(qū)動控制器,但驅(qū)動電路仍以傳統(tǒng)的模擬電路為主,精度不高,不能實時的調(diào)頻、調(diào)相。2011年,孫霖碩士研究了基于DSP/FPGA的超聲電機(jī)驅(qū)動控制器,利用DDS技術(shù)產(chǎn)生數(shù)字正弦波,雖然提高了精確度和實時性,但是浪費了很多芯片的邏輯資源,也不利于驅(qū)動控制電路的小型化。

          本文使用Altera公司的EP3C400240C8芯片設(shè)計了一種以FPGA為核心、基于技術(shù)和軟核處理器的新型超聲電機(jī)驅(qū)動控制器。在FPGA內(nèi)部用(可編程片上系統(tǒng))的思想定制了一個軟核處理器作為控制運(yùn)算部分,用Verilog語言編寫出了頻率、相位、幅度都可調(diào)的DDS模塊和光柵反饋計數(shù)模塊,這樣的一個閉環(huán)系統(tǒng)在滿足控制精度和實時性的同時具有良好的靈活性和可重構(gòu)性,并且做到了以極少的硬件資源和高度集成的系統(tǒng)結(jié)構(gòu)去控制超聲電機(jī)運(yùn)行,便于驅(qū)動控制電路的小型化。

          1 驅(qū)動控制器的設(shè)計

          1.1 驅(qū)動控制電路

          本文提出的超聲電機(jī)驅(qū)動控制系統(tǒng)由控制驅(qū)動器和功放/升壓電路組成。圖1是以FPGA為核心構(gòu)建的超聲電機(jī)驅(qū)動控制電路。超聲電機(jī)的驅(qū)動機(jī)理要求驅(qū)動器必須提供在超聲頻段內(nèi)兩相具有一定相位差的同頻、等幅正弦交流電,電壓在幾十伏到幾百伏之間。該電路的功能全部由FPGA的軟件實現(xiàn),控制和輸出正弦交流電,大大提高了控制系統(tǒng)的穩(wěn)定性和精確性,并使控制系統(tǒng)電路板的面積大幅度縮小,一塊控制板可以同時控制數(shù)個超聲電機(jī)。

           

           

          此驅(qū)動控制系統(tǒng)用FPGA內(nèi)部編寫的DDS模塊輸出兩路具有一定相位差的正弦波數(shù)據(jù),然后通過DA芯片轉(zhuǎn)成正弦波信號,經(jīng)過功率放大之后,最后用變壓器抬高電壓。

          該電路加載超聲電機(jī)后輸出的波形如圖2所示,波形變的光滑很多。當(dāng)超聲電機(jī)在運(yùn)行過程中發(fā)生頻率漂移的情況時,系統(tǒng)也能夠從速度的改變量來調(diào)整相應(yīng)的驅(qū)動輸出,不會出現(xiàn)電機(jī)速度不穩(wěn)定的現(xiàn)象。

           

           

          1.2 FPGA內(nèi)部系統(tǒng)

          圖3是超聲電機(jī)控制驅(qū)動電路中FPGA內(nèi)部的構(gòu)架。其設(shè)計的核心是可裁剪的Nios II軟核和發(fā)出正弦信號的DDS模塊以及讀取光柵編碼器反饋脈沖的計數(shù)模塊。

           

           

          1.2.1 NiosⅡ系統(tǒng)的搭建

          Nios II是Altera公司開發(fā)的軟核32位的RISC微處器,作為一個采用硬件描述語言編寫的軟核,Nios II可以通過內(nèi)帶的Avalon總線機(jī)制與其他采用HDL語言描述的硬件接口模塊組成Nios系統(tǒng)一起嵌入到Altera的Stratix、Cyclone或APEX系列的FPGA中,從而構(gòu)成一個可編程片上系統(tǒng)設(shè)計。

          首先要構(gòu)建一個基于Nios II的最小系統(tǒng),這個系統(tǒng)的組件都在SOPC Builder提供的IP核中,依次選擇Nios II處理器、EPCS控制器、SDR AM控制器、JTAG模塊。其中,NiosⅡ?qū)崿F(xiàn)MCU的功能,SDRAM和EPCS控制器組件用來連接外部存儲器,JTAG模塊實現(xiàn)程序的調(diào)試與下載。除此以外,我們還需要用到串口接收上位機(jī)發(fā)送來的數(shù)據(jù)以及定時器中斷,因此在系統(tǒng)中添加UART模塊和定時器模塊。最后,處理器要控制DDS模塊的運(yùn)行并且接收光柵計數(shù)模塊計算出的脈沖數(shù),還需要添加一些I/O口用作數(shù)據(jù)的傳輸。這樣,F(xiàn)PGA內(nèi)部的一個NIOS系統(tǒng)就構(gòu)建完成了。

          1.2.2 DDS模塊

          直接數(shù)字頻率合成器(Direct Digital Frequency Synthesizer)是一種基于全數(shù)字技術(shù),從相位概念出發(fā)直接合成所需波形的一種頻率合成技術(shù)?;驹硎且詳?shù)控振蕩器的方式,產(chǎn)生頻率、相位可控制的正弦波、余弦波、三角波、三角波、方波等波形。圖4所示為DDS的基本結(jié)構(gòu)。

           

           

          圖4中,fc為時鐘頻率,K為頻率控制字,N為相位累加器的字長,D為ROM數(shù)據(jù)線寬度。

           

           

          本文的DDS設(shè)計主要分為3個模塊:控制字接收模塊,用來與NIOS系統(tǒng)進(jìn)行通信,接收來自上位機(jī)的控制字;波形存儲器模塊,用來產(chǎn)生驅(qū)動信號所需要的波形,本文只需要產(chǎn)生正弦波;相位累加器模塊,用來產(chǎn)生頻率和相位,本文是將接收到的頻率和相位控制字轉(zhuǎn)化為實際的頻率和相位。

          1.2.3 脈沖計數(shù)模塊

          脈沖計數(shù)模塊由濾波和計數(shù)兩部分構(gòu)成,主要是為了讀取光柵編碼器反饋回來的信息,從而實現(xiàn)對電機(jī)的精確定位和速度控制。本文使用的光柵編碼器,其分辨率為0.5um/count,輸出A+/A-、B+/B- 2路差分信號,為將編碼器的差分輸出轉(zhuǎn)換成單端脈沖信號,本文選用了26LS32AC差分轉(zhuǎn)單端芯片實現(xiàn)差分信號的轉(zhuǎn)換。轉(zhuǎn)換后的兩路信號A、B是一組正交脈沖信號,電機(jī)朝不同方向運(yùn)動時,A、B兩路信號之間


          上一頁 1 2 下一頁

          關(guān)鍵詞: SOPC NiosⅡ

          評論


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