徐曉津
摘 要 文章論述了基于單片機的步進電動機的控制。結合步進電動機的驅動系統,以單片機作為控制器的核心器件,從步進電動機的硬件驅動電路和軟件驅動程序兩方面闡述其設計構成,從而控制步進電動機的運動,實現工作臺的進給。
關鍵詞 單片機 步進電動機 驅動
中圖分類號:G64文獻標識碼:A文章編號:1002-7661(2012)03-0012-01
步進電動機是將電脈沖信號轉換為相應的機械角位移的機電執行元件,具有控制簡單,運行可靠,無累積誤差等優點,因此得到了廣泛應用。步進電動機的控制一般由控制器完成。簡單的控制過程可以用各種邏輯電路實現,但是線路復雜,成本高,更改不便,而微處理器的問世,為步進電動機控制器的研究開辟了新的領域。自上世紀七十年代美國Fairchild公司研制的第一臺單片機F8問世以來,單片機就以驚人的速度在各個領域發展和普及,為設計功能很強而且價格低的步進電動機控制提供了先進的技術和豐富的資源。采用單片機作為控制器的核心,這種結構不僅可以提高系統的可靠性,較易于對其功能進行增強和擴展,而且可以減少硬件電路,有效地降低步進電動機控制器成本。
本文所設計的步進電動機驅動系統,主要實現工作臺的進給運動。由單片機控制輸出的進給脈沖的數量、頻率和方向,經驅動控制放大電路和步進電動機后,再由其機械傳動機構即可以轉換為工作臺的位移量、進給速度和進給方向,從而滿足數控系統對位移控制的要求。其結構設計示意圖如圖1所示:
圖13D定位裝置的總體設計圖
一、步進電動機的驅動電路設計
由步進電動機的工作原理可知,為了保證其正常工作,必須由步進電動機的驅動電路將控制器送入的弱電信號通過轉換和放大變為強電信號,使脈沖電流達到1~10A,才足以驅動步進電動機旋轉。步進驅動電路主要由環形脈沖分配器、功率放大器組成,其結構及功能框圖如圖2所示:
圖2步進驅動電路結構及功能圖
1.環形脈沖分配器
環形脈沖分配器用于接收來自控制器的CP脈沖,從而控制步進電動機的通電方式。環形脈沖分配可以用硬件和軟件兩種方法實現,由于本設計是用單片機來控制步進電動機的轉動,故只需軟件編程,即利用單片機的并行端口循環輸出按一定順序排列的控制代碼,經放大驅動電路送至步進電機各相繞組輸入控制端。由于該數控裝置中三個電動機的驅動方式完全類似,故僅以X向的步進電動機為例作說明。控制器單片機的P2.0~P2.3端口通過ULN2003A分別接X向步進電動機的A、B、C、D四相繞組控制端,選用1相勵磁方式。如果正向順序讀取控制信號代碼,電動機可以進行正轉,如果反向順序讀取,電動機則實現反轉。同時,如果改變各輸出代碼的延續時間,即可以改變電動機的轉速。
2.功率放大器
從微機輸出或從環形脈沖分配器輸出的信號,脈沖電流一般只有幾個毫安,不能直接驅動步進電動機,所以必須采用功率放大器將脈沖電流進行放大。與步進電動機匹配的驅動電路較多,現多采用專用的集成驅動電路,設計中使用了ULN2003A芯片。ULN2003A 是高耐壓、大電流達林頓陣列,為單片雙極型大功率高速集成電路,是可控大功率器件,單片機的I/O口可以直接與之接口,實現驅動控制。設計中,單片機的P0.0~P0.3端口、P0.4~P0.7端口通過74LS245的A0~A3、A4~A7口,分別對應兩個ULN2003A的1B~4B輸入端口,信號脈沖通過P0口送出,繼而控制Y、Z方向的電動機。其中,74LS245是三態輸出的8路同相雙向總線收發器,為常用的總線驅動芯片,使用它可以增加P0口的扇出能力。單片機的P2.0~P2.3引腳直接與第三個功率放大器ULN2003A的1B~4B輸入端口相連,通過發送信號脈沖來控制X方向的電動機。在使用步進電機時,只需對P0和P2口賦予不同的值,即可使X、Y、Z向步進電動機實現相應動作,從而控制工作臺運動。
3.光電隔離電路
為保證信號傳輸質量,有效地抑制干擾,提高系統的可靠性,在單片機與功率放大器ULN2003A之間,利用光電耦合器件4N25構成光電隔離電路。其目的是切斷單片機與步進電動機驅動電路之間的電氣聯系,使之相互獨立,以防止處于大電流、感性負載下工作的驅動電路產生的干擾信號通過輸出通道反竄入控制系統,而影響單片機的正常工作。同時因為ULN2003A本身是一個7路反向器,所以在光耦與ULN2003A之間又增加了非門元件。
二、步進電動機的驅動程序設計
工作臺的驅動元件選用步進電動機,而步進電動機的轉角、轉速及轉向由輸入的電脈沖信號的數量、頻率以及電動機繞組通電順序來控制,所以電動機的轉動實際上是由單片機的輸出信號所決定。同時由于負載和慣性的作用,步進電動機還可能存在啟動時失步、停止時前沖的現象,故為了保證定位精度,步進電動機的運行速度都需要有一個加速-恒速-減速-停止的要求,以使其運行平穩、準確。
設計中選擇步進電動機的加減速方式為直線勻加速和勻減速,采用了軟件程序延時的方法來確定步進脈沖的周期,通過順序改變步進電動機轉動控制子程序的延時時間,從而有規律地改變輸出的步進脈沖頻率,便可達到勻加速勻減速之目的。系統運行過程中,程序設置勻加速、勻減速延時時間表首地址為TABT,R7作為存儲變址寄存器數據的工作單元,應用MOVC A,@A+DPTR 指令查出延時時間常數并送給寄存器R4,通過規律性地改變R4工作單元中的延時時間常數,達到改變單片機輸出的步進脈沖頻率,繼而實現電機調速的目的。
以下為電機勻加速延時子程序內容:
RUN1: MOVDPTR,#TABT
MOVA,R7
MOVCA,@A+DPTR
MOVR4,A
LCALLDEL1調用加減速延時子程序
INC R7
RET
電動機在啟動前,應用程序先計算出總步數,并將加速脈沖數、減速脈沖數、恒速脈沖數分別存于NN0、NN2、NN1寄存器,然后調用電機轉動子程序。電機每走一步,都要判斷步數。電機勻加速過程中,用DECNN0指令,一直執行NN0減1操作,當減至0時表示升速過程完畢,轉入恒速運行階段。電機恒速運行過程中,采用借位減法實現減1功能,一直執行NN1減1操作,當減至0時表示恒速過程結束,轉入勻減速運行階段。電機勻減速過程中,用DECNN2指令,一直執行NN2減1操作,當減至0時表示減速過程完畢,已到達預定位置,電動機停轉,并置電機停止標志位為1。
參考文獻:
[1]鄭曉峰.數控技術及應用[M]. 北京:機械工業出版社,2008.
[2]張健民.機電一體化系統設計[M]. 北京:高等教育出版社,2003.
[3]邊春遠,王志強.MCS-51單片機應用開發實用子程序[M]. 北京:人民郵電出版社,2005.