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