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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 基于SoPC的步進電機設(shè)計

          基于SoPC的步進電機設(shè)計

          作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

          是一種完全數(shù)字化的電動執(zhí)行機構(gòu),從原理上說,其角位移與驅(qū)動脈沖的個數(shù)成正比,在正常情況下,具有使用簡單、運動精確、連續(xù)運行無累積誤差等特點,因而被廣泛應用于各種位置控制系統(tǒng)中。當前由于儀器內(nèi)部的機械系統(tǒng)日益復雜,其運動往往是多自由度的,因而通常需要利用多個的運動合成來實現(xiàn)系統(tǒng)的各種動作。例如,對圖1所示的半自動生化分析儀的取樣針移位系統(tǒng),該系統(tǒng)的動作執(zhí)行就是由兩部分組成的:一是固定基座上的步進電機控制取樣橫臂進行垂直方向上的升降運動;二是滑塊上的步進電機控制取樣橫臂進行水平方向上的旋轉(zhuǎn)運動。這兩個運動的合成實現(xiàn)了取樣橫臂的位置變換。

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

          傳統(tǒng)的步進電機多軸控制器是以微控制器(MCU)/微處理器(MPU)/專用集成電路(ASIC)/數(shù)字信號處理器(DSP)為核心,再輔以其他外圍分立器件構(gòu)成的。這種結(jié)構(gòu)的步進電機多軸控制器的優(yōu)點在于其硬件結(jié)構(gòu)清晰,易于復制再現(xiàn),對于類似的應用只需要修改其應用軟件即可。然而對于多數(shù)實際應用來說,單純依靠軟件的修改通常不足以使其達到其他應用場合所需的要求,并且當系統(tǒng)升級時,通常需要對整個電路重新進行設(shè)計,這樣既延長了升級的

          周期,又增加了升級成本。因而在實際應用中受到了一定的限制。由于可編程邏輯器件(PLD)技術(shù)的飛速發(fā)展,使得單一FPGA/CPLD芯片內(nèi)部可以集成多個分立元件的功能,因此在對傳統(tǒng)控制器的改進中,通常使用一個FPGA/CPLD芯片將傳統(tǒng)控制器中的數(shù)字電路部分集成到一起,從而形成具有處理器一FPCA/CPLD-模擬電路結(jié)構(gòu)形式的控制器。這類控制器比起傳統(tǒng)控制器而言,其硬件結(jié)構(gòu)的可擴展性得到了很大的提高。這是因為FPGA /CPLD芯片具有在不改變其引腳定義的情況下可對其內(nèi)部邏輯關(guān)系進行重構(gòu)的特性,因而對于不同的應用,可以通過改變FPGA/CPLD芯片的內(nèi)部結(jié)構(gòu)來滿足某些特殊的應用需求,從而在一定程度上使得系統(tǒng)的開發(fā)升級更為簡便,而且成本也更為低廉。因此,這種改進型的多步進電機控制器的應用范圍也得到了很大的擴展。但是,這種結(jié)構(gòu)的控制器也存在著這樣的問題:在FPGA外部仍然存在一個處理器。這樣不僅增加了控制器的尺寸,而且在升級處理器時,硬件電路需要重新設(shè)計,使升級成本仍然相對較高。

          近年來,由于IP資源復用理念得到了普遍的認同并成為主要設(shè)計方式,MCU、DSP、MPU等嵌入式處理器IP成為了FPGA應用的核心。隨著處理器內(nèi)核以IP的形式嵌入到FPGA中,未來的電路板上可能只有兩部分電路:模擬部分(包括電源)以及FPGA芯片和一些大容量存儲器。這一切都表明可編程片上系統(tǒng)(SOPC)正在成為FPGA最重要的發(fā)展方向。與傳統(tǒng)多軸控制器相比。這種基于SOPC的步進電機多軸控制器具有體積小、集成度高、硬件結(jié)構(gòu)穩(wěn)定、易于開發(fā)升級且成本低廉等特點,尤其適用于儀器儀表內(nèi)部控制系統(tǒng)的設(shè)計。本文所論述的步進電機多軸控制器就是基于SOPC方式的步進電機多軸控制器。

          1 基于SOPC的步進電機多軸控制器的硬件結(jié)構(gòu)

          基于SOPC的步進電機多軸控制器的結(jié)構(gòu)框圖如圖2所示。其外部電路的構(gòu)成包含模擬電路和數(shù)宇電路兩部分。模擬電路包括供電電源及功率驅(qū)動。數(shù)字電路主要為FPGA芯片及其相關(guān)電路。

          如圖2,基于SOPC的步進電機多軸控制器包含兩部分:FPGA芯片及其配置芯片的數(shù)字部分和電機控制及位置反饋部分。其中,虛線框內(nèi)部表示 FPGA芯片的內(nèi)部結(jié)構(gòu),空心箭頭表示FPGA芯片內(nèi)部的數(shù)據(jù)連線,實心箭頭表示外部連線。FPGA芯片內(nèi)部由MPU模塊、通訊模塊、RAM模塊、ROM 模塊、計數(shù)器模塊、電機控制模塊等構(gòu)成。當控制器失電時,這些模塊信息存儲在配置芯片中,等到系統(tǒng)重新上電時,F(xiàn)PGA芯片再從配置芯片中讀取其配置信息,重構(gòu)內(nèi)部模塊結(jié)構(gòu)。MPU模塊是整個控制器的核心,它的功能等同于事實的微處理器。它通過通訊模塊與外部主機進行數(shù)據(jù)的交換,并將數(shù)據(jù)存儲在RAM模塊中。RAM模塊同時還用于暫存MPU模塊執(zhí)行ROM模塊所存儲的程序段時的某些中間過程值,而MPU則根據(jù)ROM模塊中程序執(zhí)行的結(jié)果輸出相應的控制信號給電機控制模塊。電機控制模塊的輸出連接到實際的芯片引腳上,以驅(qū)動相應的功率驅(qū)動電路工作,從而實現(xiàn)步進電機的運轉(zhuǎn)。在閉環(huán)控制時,步進電機軸端的編碼器模塊輸出編碼信號。該信號經(jīng)編碼器反饋電路進行隔離等處理之后,由FPGA芯片內(nèi)部的計數(shù)器模塊進行計數(shù),并將結(jié)果傳輸給MPU模塊進行處理,從而形成位置/速度的閉環(huán)控制。圖2只表示了單個步進電機閉環(huán)控制的結(jié)構(gòu)框圖,對于多軸步進電機而言,F(xiàn)PGA芯片只需要增加相應的功率驅(qū)動電路及編碼器反饋電路即可。電機控制模塊和計數(shù)器模塊都在FPGA內(nèi)部集成,因而硬件電路的結(jié)構(gòu)較為穩(wěn)定。

          由于IP技術(shù)的飛速發(fā)展,在圖2中的FPGA芯片內(nèi)部模塊中,MPU、ROM、RAM、計數(shù)模塊等的IP核都可以很方便地獲得,而電機控制模塊由于與具體的功率放大電路實際相關(guān),因而通常需要用戶自行設(shè)計。下面介紹這一模塊的設(shè)計。

          2 二相步進電機控制模塊結(jié)構(gòu)

          以小慣量的二相步進電機為例闡述步進電機控制模塊的結(jié)構(gòu)。該步進電機由兩片PBL3717a芯片所驅(qū)動。其驅(qū)動時序及其控制模塊如圖3、圖4所示。

          在控制模塊中,mtr_cp為步進電機的脈沖輸入端,每個脈沖驅(qū)動步進電機前進,后退一步,脈沖頻率即為步進電機運行的速度,因此這個脈沖信號由MPU模塊根據(jù)ROM內(nèi)部程序的執(zhí)行結(jié)果輸出。mtr_dir為步進電機的正/反轉(zhuǎn)切換信號,mtr_mode為步進電機全/半步運行方式選擇,mtr_on_off是電機的啟停位,該位置l時,mtr_cp能夠驅(qū)動步進電機工作;為O時,mtr_cp脈沖被封鎖。設(shè)置該位的目的是為了在多個步進電機工作時分別控制各個電機的啟停而不影響到其他電機的運行狀態(tài)。mtr_reset是控制模塊復位信號,A_out為圖3中下標為A的驅(qū)動芯片控制信號,B_out為圖3中下標為B的驅(qū)動芯片的控制信號。步進電機的控制模塊的仿真波形圖如圖5所示。從圖5可以看出,仿真波形完全符合圖2中步進電機的驅(qū)動時序,即控制模塊的設(shè)計滿足預定的設(shè)計需求。


          上一頁 1 2 下一頁

          關(guān)鍵詞: SoPC 步進電機

          評論


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