歡迎您光臨本站 登入註冊首頁

基於SOPC的步進電機多軸控制器

admin @ 2014-03-26 , reply:0

概述

   步進電機是一種完全數字化的電動執行機構,從原理上說,其角位移與驅動脈衝的個數成正比,在正常情況下,步進電機具有使用簡單、運動精確、連續運行無累積誤差等特點,因而被廣……

    步進電機是一種完全數字化的電動執行機構,從原理上說,其角位移與驅動脈衝的個數成正比,在正常情況下,步進電機具有使用簡單、運動精確、連續運行無累積誤差等特點,因而被廣泛應用於各種位置控制系統中。當前由於儀器內部的機械系統日益複雜,其運動往往是多自由度的,因而通常需要利用多個步進電機的運動合成來實現系統的各種動作。例如,對圖1所示的半自動生化分析儀的取樣針移位系統,該系統的動作執行就是由兩部分組成的:一是固定基座上的步進電機控制取樣橫臂進行垂直方向上的升降運動;二是滑塊上的步進電機控制取樣橫臂進行水平方向上的旋轉運動。這兩個運動的合成實現了取樣橫臂的位置變換。
 
    傳統的步進電機多軸控制器是以微控制器(MCU)/微處理器(MPU)/專用集成電路(ASIC)/數字信號處理器(DSP)為核心,再輔以其他外圍分立器件構成的。這種結構的步進電機多軸控制器的優點在於其硬體結構清晰,易於複製再現,對於類似的應用只需要修改其應用軟體即可。然而對於多數實際應用來說,單純依靠軟體的修改通常不足以使其達到其他應用場合所需的要求,並且當系統升級時,通常需要對整個電路重新進行設計,這樣既延長了升級的周期,又增加了升級成本,因而在實際應用中受到了一定的限制。
    由於可編程邏輯器件(PLD)技術的飛速發展,使得單一FPGA/CPLD晶元內部可以集成多個分立元件的功能,因此在對傳統控制器的改進中,通常使用一個FPGA/CPLD晶元將傳統控制器中的數字電路部分集成到一起,從而形成具有處理器-FPGA/CPLD-模擬電路結構形式的控制器。這類控制器比起傳統控制器而言,其硬體結構的可擴展性得到了很大的提高。這是因為FPGA/CPLD晶元具有在不改變其引腳定義的情況下可對其內部邏輯關係進行重構的特性,因而對於不同的應用,可以通過改變FPGA/CPLD晶元的內部結構來滿足某些特殊的應用需求,從而在一定程度上使得系統的開發升級更為簡便,而且成本也更為低廉。因此,這種改進型的多步進電機控制器的應用範圍也得到了很大的擴展。但是,這種結構的控制器也存在著這樣的問題:在FPGA外部仍然存在一個處理器。這樣不僅增加了控制器的尺寸,而且在升級處理器時,硬體電路需要重新設計,使升級成本仍然相對較高。
    近年來,由於IP資源復用理念得到了普遍的認同並成為主要設計方式,MCU、DSP、MPU等嵌入式處理器IP成為了FPGA應用的核心。隨著處理器內核以IP的形式嵌入到FPGA中,未來的電路板上可能只有兩部分電路:模擬部分(包括電源)以及FPGA晶元和一些大容量存儲器。這一切都表明可編程片上系統(SOPC)正在成為FPGA最重要的發展方向。與傳統多軸控制器相比,這種基於SOPC的步進電機多軸控制器具有體積小、集成度高、硬體結構穩定、易於開發升級且成本低廉等特點,尤其適用於儀器儀錶內部控制系統的設計。本文所論述的步進電機多軸控制器就是基於SOPC方式的步進電機多軸控制器。

1 基於SOPC的步進電機多軸控制器的硬體結構
    基於SOPC的步進電機多軸控制器的結構框圖如圖2所示。其外部電路的構成包含模擬電路和數字電路兩部分。模擬電路包括供電電源及功率驅動。數字電路主要為FPGA晶元及其相關電路。
 
    如圖2,基於SOPC的步進電機多軸控制器包含兩部分:FPGA晶元及其配置晶元的數字部分和電機控制及位置反饋部分。其中,虛線框內部表示FPGA晶元的內部結構,空心箭頭表示FPGA晶元內部的數據連線,實心箭頭表示外部連線。FPGA晶元內部由MPU模塊、通訊模塊、RAM模塊、ROM模塊、計數器模塊、電機控制模塊等構成。當控制器失電時,這些模塊信息存儲在配置晶元中,等到系統重新上電時,FPGA晶元再從配置晶元中讀取其配置信息,重構內部模塊結構。MPU模塊是整個控制器的核心,它的功能等同於事實的微處理器。它通過通訊模塊與外部主機進行數據的交換,並將數據存儲在RAM模塊中。RAM模塊同時還用於暫存MPU模塊執行ROM模塊所存儲的程序段時的某些中間過程值,而MPU則根據ROM模塊中程序執行的結果輸出相應的控制信號給電機控制模塊。電機控制模塊的輸出連接到實際的晶元引腳上,以驅動相應的功率驅動電路工作,從而實現步進電機的運轉。在閉環控制時,步進電機軸端的編碼器模塊輸出編碼信號。該信號經編碼器反饋電路進行隔離等處理之後,由FPGA晶元內部的計數器模塊進行計數,並將結果傳輸給MPU模塊進行處理,從而形成位置/速度的閉環控制。圖2隻表示了單個步進電機閉環控制的結構框圖,對於多軸步進電機而言,FPGA晶元只需要增加相應的功率驅動電路及編碼器反饋電路即可。電機控制模塊和計數器模塊都在FPGA內部集成,因而硬體電路的結構較為穩定。
    由於IP技術的飛速發展,在圖2中的FPGA晶元內部模塊中,MPU、ROM、RAM、計數模塊等的IP核都可以很方便地獲得,而電機控制模塊由於與具體的功率放大電路實際相關,因而通常需要用戶自行設計。下面介紹這一模塊的設計。

2  二相步進電機控制模塊結構
    以小慣量的二相步進電機為例闡述步進電機控制模塊的結構。該步進電機由兩片PBL3717a晶元所驅動,其驅動時序及其控制模塊如圖3、圖4所示。

 
    在控制模塊中,mtr_cp為步進電機的脈衝輸入端,每個脈衝驅動步進電機前進/後退一步,脈衝頻率即為步進電機運行的速度,因此這個脈衝信號由MPU模塊根據ROM內部程序的執行結果輸出。mtr_dir為步進電機的正/反轉切換信號,mtr_mode為步進電機全/半步運行方式選擇,mtr_on_off是電機的啟停位,該位置1時,mtr_cp能夠驅動步進電機工作;為0時,mtr_cp脈衝被封鎖。設置該位的目的是為了在多個步進電機工作時分別控制各個電機的啟停而不影響到其他電機的運行狀態。mtr_reset是控制模塊複位信號,A_out為圖3中下標為A的驅動晶元控制信號,B_out為圖3中下標為B的驅動晶元的控制信號。步進電機的控制模塊的模擬波形圖如圖5所示。從圖5可以看出,模擬波形完全符合圖2中步進電機的驅動時序,即控制模塊的設計滿足預定的設計需求。
    由上分析,利用上述多個步進電機控制模塊以圖6所示的方式進行適當的連接,就能夠構成本文所論述的基於SOPC的步進電機多軸控制器。由於MPU、ROM、RAM、電機控制模塊等都是以功能模塊的形式集成在FPGA晶元內部,因此大大縮小了基於SOPC的步進電機多軸控制器的尺寸。這些功能模塊可以根據實際的應用進行添加或刪除(即對FPGA晶元的內部邏輯結構進行重構),因此極大地增強了系統設計的靈活性,能更好地滿足不同應用領域的需求。
 
    IP技術的飛速發展使得開發人員很容易獲得多數通用模塊的可復用IP核,從而減輕了開發人員的負擔,縮短了開發周期。當系統需要升級時,也不需要對硬體電路重新設計,只需通過修改FPGA中相應模塊的配置文件,因此節約了控制器的升級成本。同時,由於MPU模塊的功能與實際的微處理器相同,因而在微處理器上可運行的控制程序也可以很容易移植到MPU模塊中運行。為了便於闡述基於SOPC的步進電機多軸控制器,
    本文側重於闡述多個步進電機同速恆速運行的情況。對於變速運行的情況,可通過在MPU的脈衝輸出端和各電機控制模塊的脈衝輸入端之間插入MPU可控的分頻模塊來獲得,同時增加插補模塊以實現不同電機之間的聯動功能。
    本文所述的基於SOPC的步進電機多軸控制器應用於半自動生化分析儀的取樣針移位系統中,能夠實現傳統步進電機多軸控制器的所有控制功能,控制器的尺寸小於傳統控制器;當控制器的數字電路部分需要修改時,無需更換控制器的實際硬體電路,大大方便了控制器的研究設計工作並節約了相應的開發成本。


[admin via 研發互助社區 ] 基於SOPC的步進電機多軸控制器已經有2088次圍觀

http://cocdig.com/docs/show-post-43062.html