基于80196與PBL3717的步進電機控制系統(tǒng)
摘要: 本文介紹由Intel 80C196KC單片機和兩片PBL3717A電機驅(qū)動芯片構(gòu)成的二相步進電機的控制系統(tǒng),包括了基于PBL3717A芯片的電機驅(qū)動的硬件電路設(shè)計和步進電機的軟件控制程序。系統(tǒng)通過80C196KC高速輸出口HSO輸出控制脈沖,占用的CPU資源極少,實現(xiàn)了步進電機的轉(zhuǎn)動,鎖定,變速控制和軟件細分控制。
關(guān)鍵字:PBL3717 80C196KC 步進電機
1.引言
步進電動機是一種純粹的數(shù)字控制電動機,它將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰?,通過改變輸出脈沖信號的頻率和個數(shù),可以實現(xiàn)調(diào)速和位置控制,具有較好的低速運行特性和較寬的調(diào)速范圍,數(shù)控簡單,成本低,無累積誤差,能夠準(zhǔn)確的移動和定位[1]。PBL3717A是SGS-THOMSON公司生產(chǎn)的步進電機單相繞組的專用驅(qū)動芯片,兩塊PBL3717A芯片和少量無源電路元件可以組成一組完整的二相步進電機的控制驅(qū)動電路。80C196KC是INTEL MCS96 系列中一款高性能的CHMOS型的16位單片機,使用80C196KC和PBL3717可以很好的實現(xiàn)二相混合式步進電動機的運轉(zhuǎn)、轉(zhuǎn)矩細分、變速和鎖定控制。
2.硬件設(shè)計
2.1電機驅(qū)動電路
2.1.1 PBL3717A電機驅(qū)動芯片
本系統(tǒng)中采用的PBL3717A步進電機驅(qū)動芯片,通過單片機輸出控制信號,實現(xiàn)對步進電機不同的步距控制。下面就介紹一下3717A芯片的工作原理。
圖1 PBL3717A 結(jié)構(gòu)圖 |
如圖1為雙列直插16管腳的PBL3717A的電機驅(qū)動芯片的結(jié)構(gòu)圖電路[2],
管腳1和管腳15 是芯片電流的輸出端,分別連接電機線圈的兩端,內(nèi)部由四片達林頓晶體管和續(xù)流二極管構(gòu)成一個H型電橋。管腳8為相位選擇端,控制電流輸出的方向,當(dāng)為高電平時,電流從OUTPUTA流向OUTPUTB端。內(nèi)置的施密特觸發(fā)器能夠較好的消除噪聲干擾和換向電流的延遲。管腳9和管腳7時電流選擇輸入端,輸入不同的邏輯控制信號,選通片內(nèi)三個不同的電壓比較器,來選擇不同大小的輸出電流。比較器端的基準(zhǔn)電壓由外加電壓經(jīng)分壓電阻取得,從上至下的四個片內(nèi)分壓電阻分別為6kΩ、223Ω、223Ω、105Ω,分壓比為0.084、0.050、0.016,因此在不同邏輯控制輸入信號下,輸出電流為I00 :I10 :I01=1:0.6:0.2。管腳16外接繞組電流采樣電阻Rs。管腳11為參考電壓輸入端,連接著片內(nèi)的三個電壓比較器,改變參考電壓可以實現(xiàn)對步進電機轉(zhuǎn)矩的細分控制。
當(dāng)相位控制端Phase為高電平時,晶閘管Q2,Q3截止Q1持續(xù)導(dǎo)通,而Q4處于高頻開關(guān)的狀態(tài),電流從OUTA流向OUTB端。當(dāng)Q1、Q4導(dǎo)通時,經(jīng)過電機線圈的電流通過外接管腳16的采樣感應(yīng)電阻Rs而轉(zhuǎn)化為采樣電壓信號Urs,經(jīng)過RC低通濾波電路,形成與電機繞組電流成正比的電壓信號Uc,反饋到管腳10,接入到比較器的反相端。當(dāng)采樣到的電壓大于相應(yīng)的片內(nèi)電壓比較器的基準(zhǔn)電壓時,比較器被選通,輸出端發(fā)生電平負跳變,觸發(fā)單穩(wěn)電路輸出為高電平,晶閘管Q4截至,電機繞組電流通過Q1、D2形成續(xù)流回路,線圈放電,電流減小,Vrs相應(yīng)減小,其電流衰減的時間取決于管腳2外接的RT和CT參數(shù)(toff=0.69RTCT);當(dāng)采樣電壓Vrs小于電壓比較器參考電壓時,單穩(wěn)電路輸出低電平,Q4導(dǎo)通,電流增加,如此這樣重復(fù)。由于開關(guān)頻率極很高,所以在電機繞組中的電流近似于平穩(wěn)的直流,從而控制電動機繞組平均電流的大小,使繞組電流穩(wěn)定的輸出。當(dāng)選擇的比較器的基準(zhǔn)電壓相對較高時,Uc達到要求值的時間相對長,故單穩(wěn)電路處于穩(wěn)態(tài)的時間就長,電動機的平均電流就大。當(dāng)Phase端為低電平時,工作原理類似,Q1、Q4截止,Q2持續(xù)導(dǎo)通,Q3處于高頻開關(guān)狀態(tài),只是電流從OUTB流向OUTA。當(dāng)Phase引腳電平改變,電流換相時會由于電機繞組電感而產(chǎn)生感應(yīng)電動勢,產(chǎn)生感應(yīng)電流流過續(xù)流二極管,可以確保在電動機繞組上的電流可以迅速降為零并換相。
2.1.2電機驅(qū)動電路與步距控制
圖2 步進電機驅(qū)動電路
如圖2所示為兩片3717組成的二相步進電機的驅(qū)動電路,可實現(xiàn)步進電機的全步,半步和1/4步工作方式,全步距工作方式為單相激勵或二相激勵四拍方式。半步距工作方式為單相、二相交替激勵八拍方式。系統(tǒng)中使用的1/4步距工作方式,在整步和半步之間插入一個1/4步的狀態(tài),磁場旋轉(zhuǎn)一周分為16個拍節(jié),步距角較小,電動機運轉(zhuǎn)平滑。同時在系
2.2單片機系統(tǒng)電路
80C196KC是INTEL公司推出的CHMOS型16位單片機,性能較MCS51系列單片機很大的提高。主頻可以工作到20MHz,內(nèi)部為2分頻電路,指令執(zhí)行速度快,低功耗方式。CPU的算術(shù)邏輯單元不采用常規(guī)累加器結(jié)構(gòu),改用了寄存器-寄存器的結(jié)構(gòu),CPU直接面向256字節(jié)的寄存器,消除了一般CPU結(jié)構(gòu)存在的累加器的瓶頸效應(yīng),提高了操作速度和數(shù)據(jù)吞吐能力。片上集成了豐富的硬件外設(shè)和軟件硬件資源。內(nèi)部集成有8路10位的A/D轉(zhuǎn)換器、三路脈寬調(diào)制輸出,具有完善的HSIO功能,便于實現(xiàn)復(fù)雜的I/O控制,增加了外設(shè)服務(wù)器PTS,專門處理外設(shè)中斷服務(wù)事務(wù),提高了中斷事務(wù)的實時處理能力[3]。基于以上的優(yōu)點,80C196KC單片機和PBL3717可以構(gòu)成一個完整的步進電機的控制系統(tǒng)。下面就說明一下80C196KC的系統(tǒng)電路。
2.2.1 高速輸出口HSO
80C196KC有6個高速輸出口,用于按程序設(shè)定的時間去觸發(fā)某一事件,占用的CPU的開銷極少,所以速度很高。將80C196KC的HSO0~HSO6分別與兩片PBL3717A芯片的I0A、I0B、PHASEA、IB0、IB1、PHASEB相連接,對HSO口輸出一定頻率的控制字脈沖就能控制步進電機的轉(zhuǎn)動方向和速度。
系統(tǒng)中將定時器T2作為HSO輸出事件的時間基準(zhǔn),通過系統(tǒng)CLKOUT信號作為T2 的時鐘源,接入T2CLK引腳,利用HSO定時器2 復(fù)位的命令和CAM鎖定功能,T2復(fù)位時間鎖定在CAM中,這樣就能周期性的產(chǎn)生HSO輸出事件,步進電機繞組內(nèi)磁場旋轉(zhuǎn)一圈的周期就是定時器的T2的復(fù)位周期。通過設(shè)置HSO事件的觸發(fā)時間的T2的復(fù)位時間調(diào)整控制波形的頻率,從而實現(xiàn)步進電機的變速控制。顯然,利用HSO功能,輸出的脈沖波形精確,大大減少了系統(tǒng)的開銷。
因為在實際運行中,步進電機會因外界的干擾而產(chǎn)生一定的位移,所以,當(dāng)電機停轉(zhuǎn)時,要給電機一定的鎖定力矩以保持電機固定位置。這時二相步進電機A、B相繞組同時通恒定不變的電流。轉(zhuǎn)子轉(zhuǎn)到兩相磁場平衡的位置,即可鎖定不動。在長時間進行鎖定時,一般繞組輸出為低電流,以避免繞組中長時間通電而造成的電機和芯片過熱。
2..2.2 中斷系統(tǒng)
步進電機的上下限位信號分別接在P1.6和P1.7上,然后共同連接到外部中斷引腳P2.2上,當(dāng)步進電機旋轉(zhuǎn)到限位位置時,觸發(fā)外部中斷源,進行外部中斷服務(wù)子程序中,在子程序中首先查詢P1.6、P1.7口,判斷是哪個限位觸發(fā)的中斷信號,然后進行相應(yīng)服務(wù)子程序處理。
80C196KC內(nèi)部有四個軟件定時器可以同時工作,系統(tǒng)中使用軟件定時器中斷進行細分驅(qū)動控制,使用定時器2為時間基準(zhǔn),在中斷服務(wù)子程序中控制細分參考電壓的輸出。
2.2.4細分電路
圖4 D/A細分驅(qū)動電路 |
在系統(tǒng)中加入了步距角細分功能,在輸入脈沖切換時,只改變相應(yīng)繞組中額定的一部分,電機轉(zhuǎn)動的每步也只有步距角的一部分,在不改變電機構(gòu)造參數(shù)的情況下,使步進電機運行平穩(wěn),提高勻速性,減弱或消除震蕩,提高電機的控制精度[4]。
系統(tǒng)通過D/A轉(zhuǎn)換電路對3717的參考電壓輸入端進行電壓細分,最多可達256細分。
如圖4為四路8位數(shù)模轉(zhuǎn)化器TLC7226D/A轉(zhuǎn)換電路,單片機通過地址總線MA1,MA2 來選通數(shù)模轉(zhuǎn)換通道,通過數(shù)據(jù)總線AD0~AD8寫入所要輸出的參考電壓,當(dāng) 寫輸入選擇端為低電平時,所選的DA通道輸入鎖存是透明的,輸入對數(shù)據(jù)總線的活動做出響應(yīng),數(shù)據(jù)在 的上升沿鎖存入所尋址的D/A鎖存器,在 高電平時,模擬輸出保持在與存在鎖存器內(nèi)的數(shù)據(jù)相對應(yīng)數(shù)值得電壓信號,經(jīng)過電壓跟隨器送到3717的參考電壓輸入端。
系統(tǒng)地址總線MA14、MA15與80C196的WR通過邏輯門選通TLC7226D/A芯片。單片機的地址總線0xC000~0xFFFF被D/A電路占用。
3.軟件設(shè)計
軟件方面主要是設(shè)計系統(tǒng)的初始化,步進電機的正反轉(zhuǎn),變速控制,步距細分控制和電動機的鎖定。
在初始化程序中完成對單片機各個寄存器窗口的選擇、配置和系統(tǒng)初值的設(shè)定等等。
通過對HSO.0~HSO.5輸出固定頻率的控制脈沖序列,來控制電機的正轉(zhuǎn)與反轉(zhuǎn),通過改變所存在HSO_CAM中的定時器2的復(fù)位事件的時間和相應(yīng)HSO脈沖輸出事件的觸發(fā)時間來實現(xiàn)電機的變速控制。同時設(shè)置80C19KC的軟件定時器中斷,在中斷服務(wù)子程序中進行軟件細分驅(qū)動控制,對3717參考輸入電壓進行細分控制,產(chǎn)生階梯狀遞增和遞減參考電壓。通過對HSO配置固定電平信號使得電機A、B相繞組通入恒定不變得電流,以實現(xiàn)對步進電機的鎖定。
為了實現(xiàn)對步進電機啟停運轉(zhuǎn)的精確控制,將推導(dǎo)出的符合步進電機矩頻特性的指數(shù)型運行曲線量化后,存入E2PROM中。在系統(tǒng)運行過程中,通過調(diào)用當(dāng)前速度所對應(yīng)的狀態(tài)延時時間,控制輸出脈沖頻率,確保步進電機的平滑運轉(zhuǎn)。
系統(tǒng)中的主程序框圖、電機轉(zhuǎn)動控制與軟件細分程序框圖如圖5所示。
本系統(tǒng)程序采用C語言編寫,下面就列出HSO脈沖輸出的功能代碼:
IOC2=0X40; 允許鎖定CAM功能
ICO0=0; 允許T2CLK作T2的時鐘源
HSO_COMMAND=0xCE; 鎖定T2復(fù)位命令
HSO_TIME=time_reset; 設(shè)置T2的復(fù)位周期
Delay(8); 至少需延時8個機器周期
HSO_COMMAND =0x71; 對HSO.0定時置位
HSO_TIME= time_up; 設(shè)置置位時間
Delay(8);
HSO_COMMAND=0x71; 對HSO.0定時復(fù)位
HSO_TIME=timer_down; 設(shè)置復(fù)位時間,
4.結(jié)束語
選用80C196KC和兩片或更多片PBL3717A芯片可以構(gòu)成一個穩(wěn)定的二相或多相步進電機控制系統(tǒng),利用80C196KC高速輸出口輸出脈沖控制波形精確,CPU開銷少,通過軟件參考電壓細分功能,可以很好的實現(xiàn)步進電動機的整步、半步和微步距控制。這種步進電機控制系統(tǒng),成本低,控制方便,性能穩(wěn)定,有較高的實用價值。
參考文獻:
[1] 王曉明. 電動機的單片機控制[M]. 北京航空航天大學(xué)出版社,2002
[2]SGS公司. PBL3717A Stepper Motor Driver
[3]徐愛卿. Intel16位單片機(修訂版)[M]. 北京航空航天大學(xué)出版社,2002
[4]楊忠寶,林海波,基于80C196MC的步進電機斬波恒流均勻細分電路的實現(xiàn),微計算機信息,2003,19(7)
評論