DSP和PBL3717A構(gòu)成的步進(jìn)電機(jī)的控制系統(tǒng)
摘要:介紹由美國TI公司的數(shù)字信號處理器TMS320LF2407A和SGS公司的步進(jìn)電機(jī)驅(qū)動(dòng)芯片PBL3717A構(gòu)成的兩相混合式步進(jìn)電機(jī)的控制系統(tǒng)。
關(guān)鍵詞:PBL3717A DSP 步進(jìn)電機(jī) 控制系統(tǒng)
引言
步進(jìn)電機(jī)是數(shù)字控制系統(tǒng)中的一種重要執(zhí)行元件,廣泛應(yīng)用于各種控制系統(tǒng)中。它是一種將電脈沖信號轉(zhuǎn)換為位移或轉(zhuǎn)速的控制電機(jī),輸入一個(gè)脈沖信號,電機(jī)就轉(zhuǎn)動(dòng)一個(gè)角度或前進(jìn)一步。其機(jī)械角位移和轉(zhuǎn)速分別與輸入電機(jī)繞組的脈沖個(gè)數(shù)和脈沖頻率成比例,可以通過改變脈沖頻率在大范圍內(nèi)調(diào)速,易于與計(jì)算機(jī)或其它數(shù)字元件接口,適用于數(shù)字控制系統(tǒng)。隨著超大規(guī)模集成電路技術(shù)的迅速發(fā)展,DSP(Digital Signal Processor數(shù)字信號處理器)的性能價(jià)格比得到很大提高,使得DSP在電機(jī)控制領(lǐng)域的應(yīng)用愈來愈廣泛。本文介紹由美國TI公司的數(shù)字信號處理器TMS320LF2407和SGS公司的步進(jìn)電機(jī)驅(qū)動(dòng)芯片PBL3717A構(gòu)成的兩相混合式步進(jìn)電機(jī)的控制系統(tǒng)。
1 DSP性能簡介
美國TI公司的TMS320LF2407A是專為馬達(dá)控制而設(shè)計(jì)的一款DSP。它采用高性能靜態(tài)CMOS技術(shù),使得供電電壓降為3.3V,減少了控制器的功耗;40MIPS的執(zhí)行速度使指令周期縮短到25ns(40MHz),從而提高了控制器的實(shí)時(shí)控制能力。兩個(gè)事件管理器模塊EVA和EVB,每個(gè)包括:2個(gè)16位通用定時(shí)器;CAN總線接口模塊;16位的串行外設(shè)(SPI)接口模塊;基于鎖相環(huán)的時(shí)鐘發(fā)生器;內(nèi)置正交編碼脈沖(QEP)電路;3個(gè)捕獲單元;16通道A/D轉(zhuǎn)換器;8個(gè)16位的脈寬調(diào)制(PWM)通道。它們能夠?qū)崿F(xiàn):三相反相器控制;PWM的對稱和非對稱波形;當(dāng)外部引腳PDPINTx出現(xiàn)低電平時(shí),快速關(guān)閉PWM通道;可編程的PWM死區(qū)控制以防止上下橋臂同時(shí)輸出觸發(fā)脈沖;事件管理器模塊適用于控制交流感應(yīng)電機(jī)、無刷直流電機(jī)、開關(guān)磁阻電阻、步進(jìn)電阻、多級電機(jī)和逆變器。
2 PBL3717A原理與步距控制方法
2.1 PBL3717A的原理簡介
PBL3717A是SGS公司設(shè)計(jì)生產(chǎn)的步進(jìn)電動(dòng)機(jī)單相繞組的驅(qū)動(dòng)電路,內(nèi)部采用的是H-橋脈寬調(diào)制電路。利用外部邏輯電路構(gòu)成的邏輯分配器或微處理器分配信號,由若干片這種電路和少量無源元件可組成一個(gè)完整的多相步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)程序,可實(shí)現(xiàn)整步(基本步距)、半步或微步距控制??刂品绞绞请p極性、固定OFF(關(guān)斷)時(shí)間的斬波電流控制。下面簡要介紹一下PBL3717A的各引腳功能。如圖1所示,它采用16腳雙列直插塑料封裝。1腳(OUTPUT B)和15腳(OUTPUT A)為輸出端,分別接一相繞組線圈的兩端;2腳(PULSE TIME)外接RC定時(shí)元件;3、14腳(Vs)是繞組線圈供電電源,可在10~46V的范圍內(nèi)選擇;4、5、12、13腳(GND)接地端,可接至熱片;6腳(Vss)是IC供電電源接+5V;7、9腳(INPUT 1,INPUT 0)用于選擇繞組線圈電流;8腳(Phase)為相位輸入端,用于控制轉(zhuǎn)動(dòng)方向;16腳(Sense Resistor)外部繞組電流采樣電阻,采樣信號通過RC低通濾波器送至10腳(Comparator Input),與內(nèi)部電壓比較器的基準(zhǔn)電壓進(jìn)行比較;11腳(Reference)外接參考電壓,改變Reference可實(shí)現(xiàn)微步距控制,例如用1片單片機(jī)和2片DAC0808 8bit D/A轉(zhuǎn)換電路即可實(shí)現(xiàn)256細(xì)分控制。在整步、半步、1/4步工作方式下,REFERENCE接固定的+5V,本文僅討論這種情況。
2.2 PBL3717A的步距控制方法
本文所設(shè)計(jì)的是兩修配混合式步進(jìn)電機(jī)的控制系統(tǒng),具體驅(qū)動(dòng)電路如圖所示。其中,PHASE、INPUT 1、INPUT 0(圖中簡寫為PH、I1、I0)為輸入端,OUTPUT A、OUTPUT B(圖中以MA、MB表示)為輸出端。因?yàn)楸疚牟豢紤]細(xì)分的情況,所以可以把圖中的DAC(11引腳)直接接+5V電源。
PHASE的作用是控制步進(jìn)電動(dòng)機(jī)定子繞組中電流的方向。當(dāng)PHASE=0時(shí),電流從MB流向MA;當(dāng)PHASE=1時(shí),電流從MA流向MB。PBL3717A對步距的控制是通過選擇I1、I0的不同組合,從而控制繞組電流,達(dá)到步距控制的目的。電流的具體數(shù)值由VR、RS決定。計(jì)算公式如下:Im=(Vr*0.083)/Rs[A],100%級別;
Im=(Vr*0.050)/Rs[A],60%級別;
Im=(VR*0.016)/Rs[A],20%級別。
PBL3717A能實(shí)現(xiàn)三種運(yùn)行方式。在以下討論中,以A、B表示二相繞組正向電流工作,以A、B表示二相繞組反向電流工作。
?。?)基本步距(整步)工作方式
可用二相激勵(lì)四拍方式,即AB→AB→AB→AB實(shí)現(xiàn),也可用單相激勵(lì)四拍方式,即A→B→A→B實(shí)現(xiàn)。
?。?)半步距工作方式
半步距方式采用二相,單相交替激勵(lì)的二相八拍方式,即AB→B→AB→A→AB→B→AB→A,這種工作方式是兩相激勵(lì)和單相激勵(lì)交替出現(xiàn),每一找不到的轉(zhuǎn)距不相等。在二相激勵(lì)時(shí)的轉(zhuǎn)距是單相的1.4倍,這是因?yàn)槎嗉?lì)時(shí)的轉(zhuǎn)距是單相激勵(lì)時(shí)轉(zhuǎn)距的矢量合成。如果兩相激勵(lì)時(shí),采用I1I0=01方式,使電流降到60%,由于磁路原先有飽和效應(yīng),此時(shí)每相轉(zhuǎn)距可能增大到70%左右,兩相合成的轉(zhuǎn)距接近于1。這樣電機(jī)就可以近似實(shí)現(xiàn)恒轉(zhuǎn)距運(yùn)行。
?。?)1/4步距工作方式
為了實(shí)現(xiàn)1/4步距工作方式,要在整步與半步間插入一個(gè)1/4步的狀態(tài)。例如上方的1/4步狀態(tài),A相繞組取100%電流,B相繞組取20%電流。在第一象限由半步A狀態(tài)到半步B狀態(tài)要經(jīng)過4步,即A→A0.2B→AB→0.2AB→B。知道第一象限的矢量圖不難推出其它三個(gè)象限的矢量圖,一個(gè)循環(huán)需6步完成,即AB→0.2AB→B→0.2AB→AB→A0.2B→A→A0.2B→AB→0.2AB→B→
0.2AB→AB→A0.2B→A→A0.2B,其中0.2A、0.2B分別表示A相、B相繞組取20%電流。
3 硬件部分
因?yàn)镈SP采用3.3V供電,而PBL3717A的工作電壓是+5V,所以要考慮3.3V和5V的電平轉(zhuǎn)換問題。如圖4所示,為5V CMOS,5V TTL和3.3V TTL電平的轉(zhuǎn)換標(biāo)準(zhǔn)。其中,VOH表示輸出高電平的最低電平,VIH表示輸入高電平的最低電平,VIL表示輸入低電平的最高電壓,VOL輸出低電平的最高電壓。從圖中可以看出5V CMOS和3.3V TTL的電平轉(zhuǎn)換標(biāo)準(zhǔn)不同,因此,3.3V器件(LVC)引腳不能直接與5V CMOS器件引腳相連接。在這種情況下,可以采用雙電壓(一邊是3.3V供電,另一邊是5V供電)供電的驅(qū)動(dòng)器,如TI公司的SN74ALVC164245,SN74LV4245等。而5V TTL和3.3V TTL的電平轉(zhuǎn)換標(biāo)準(zhǔn)相同,所以它們可以直接相連。因?yàn)镻BL3717A是TTL兼容電路,所以可以直接將DSP的I/O口和PBL3717的相應(yīng)引腳相連。在這里,我們選DSP的端口B中的IOPB0,IOPB1,IOPB2,IOPB3,IOPB4,IOPB4分別與PBL3717A的I1B,I0B,I1A,I0A,PhaseA,PhaseB相連接。
4 軟件部分
本文以步進(jìn)電機(jī)工作在1/4步為例設(shè)計(jì)DSP控制軟件。DSP控制軟件采用C語言編寫。從第一拍到第十六拍的控制字分別為:0x0000、0x0004、0x000c、0x0014、0x0010、0x0011、0x0013、0x0031、0x0030、0x0034、0x003C、0x0024、0x0020、0x0021、0x0023、0x0001。將以上數(shù)值存放到數(shù)組Run_Table[]中,可通過循環(huán)程序調(diào)用數(shù)組中的相應(yīng)值賦給端口B的數(shù)據(jù)和方向控制寄存器PBDATDIR,從而通過DSP的端口B來驅(qū)動(dòng)控制PBL3717A的相應(yīng)引腳來實(shí)現(xiàn)步進(jìn)電機(jī)旋轉(zhuǎn)運(yùn)行。通過修改run_delay(int count)延時(shí)子程序的count的值可改變電機(jī)的運(yùn)轉(zhuǎn)速度。下面給出了兩相步進(jìn)電機(jī)1/4步方式下正轉(zhuǎn)的控制程序清單。
/*Filename:Step.c*/
/*IOPB0=I1B,IOPB1=I0B,IOPB2=I1A,IOPB3=10A,IOPB4=PhaseA,IOPB5=PhaseB*/
#include "f2407_c.h"
static int Run_Table[]={0x0000,0x0004,
0x000C,0x0014,0x0010,0x0011,0x0013,0x0031,0x0030,0x0034,0x003C,0x0024,0x0020,
0x0021,0x0023,0x0001};
void main()
{int i;
InitCPU();
while(1)
{
for(i=0;i<=15;i++)
{
*PBDATDIR=Run_Table[i]|0xff00;
run_delay(10);
}
}
}
結(jié)語
綜上所述,利用DSP或者其它微處理器,選用兩片或者更多片PBL3717A和少量的無源元件就可組成一個(gè)完事穩(wěn)定的多相步進(jìn)電機(jī)的驅(qū)動(dòng)系統(tǒng),可實(shí)現(xiàn)整步、半步或微步距控制。這樣種方法成本低、容易實(shí)現(xiàn)、性能穩(wěn)定,是步進(jìn)電機(jī)驅(qū)動(dòng)系統(tǒng)的一種較好選擇。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論