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