基于單片機(jī)與fpga的多重細(xì)分步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)系統(tǒng)
劉夢(mèng)亭,羅鵬輝
(吉林大學(xué)珠海學(xué)院,廣東珠海519041)
摘要:介紹了步進(jìn)電動(dòng)機(jī)細(xì)分控制,提出了基于單片機(jī)與fpga控制的pwm細(xì)分驅(qū)動(dòng)技術(shù),利用單片機(jī)來(lái)設(shè)定電機(jī)的轉(zhuǎn)速、轉(zhuǎn)向。由fpga產(chǎn)生階梯脈沖形成階梯形電壓信號(hào)以控制步進(jìn)電動(dòng)機(jī)每相繞組在各時(shí)刻的電壓,從而實(shí)現(xiàn)步進(jìn)電動(dòng)機(jī)轉(zhuǎn)角的任意細(xì)分控制。利用vhdl語(yǔ)言編程實(shí)現(xiàn)了步進(jìn)電動(dòng)機(jī)256細(xì)分控制器的pwm模塊、速度控制模塊、數(shù)字比較模塊等功能。
關(guān)鍵詞:fpga;vhdl;步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng);細(xì)分控制
中圖分類號(hào):tm383.6 文獻(xiàn)標(biāo)識(shí)碼:a 文章編號(hào):1004—7018(2009)11—0037—04
0引 言
步進(jìn)電動(dòng)機(jī)作為一種電脈沖角位移的轉(zhuǎn)換元件,它受脈沖信號(hào)控制,其位移與輸入脈沖個(gè)數(shù)成嚴(yán)格正比關(guān)系。采用fpga控制步進(jìn)電動(dòng)機(jī),利用其中的eab可以構(gòu)成存放電機(jī)各相電流所需的控制波形數(shù)據(jù)表和利用fpga設(shè)計(jì)的數(shù)字比較器可以同步產(chǎn)生多路pwm電流波形,對(duì)多相步進(jìn)電動(dòng)機(jī)進(jìn)行靈活的控制。改變控制波形表的數(shù)據(jù),增加計(jì)數(shù)器的位數(shù),提高技術(shù)精度,從而可以對(duì)步進(jìn)電動(dòng)機(jī)的步進(jìn)轉(zhuǎn)角進(jìn)行任意細(xì)分,實(shí)現(xiàn)步進(jìn)轉(zhuǎn)角的精確控制。用fpca實(shí)現(xiàn)多路pwm控制,無(wú)需外接d/a轉(zhuǎn)換器,使外同控制電路大大簡(jiǎn)化,控制方式簡(jiǎn)潔,控制精度高、控制效果好。用單片機(jī)和dsp的控制都難以達(dá)到同樣的控制效果。
1系統(tǒng)構(gòu)成
系統(tǒng)構(gòu)成如圖1所示。利用單片機(jī)來(lái)設(shè)定電機(jī)的轉(zhuǎn)速、轉(zhuǎn)向。由fpga產(chǎn)生階梯脈沖形成階梯形電壓信號(hào)以控制步進(jìn)電動(dòng)機(jī)每相繞組在各時(shí)刻的電壓,從而實(shí)現(xiàn)步進(jìn)電動(dòng)機(jī)轉(zhuǎn)角的任意細(xì)分控制。利用vhdl語(yǔ)言編程實(shí)現(xiàn)了步進(jìn)電動(dòng)機(jī)256細(xì)分控制器的pwm模塊、速度控制模塊、數(shù)字比較模塊等功能。選用兩片l293d驅(qū)動(dòng)芯片驅(qū)動(dòng)兩臺(tái)兩相/四相步進(jìn)電動(dòng)機(jī)。
l.1步進(jìn)電動(dòng)機(jī)細(xì)分驅(qū)動(dòng)硬件部分
根據(jù)對(duì)電機(jī)細(xì)分驅(qū)動(dòng)的理論研究,提出了基于單片機(jī)與fpga控制的多重細(xì)分步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)技術(shù)。本系統(tǒng)的硬件電路主要以單片機(jī)和fpga為核心器件,其硬件電路的組成如圖2所示。
單片機(jī)采用飛利浦p89v53rb2芯片,通過(guò)爭(zhēng)片機(jī)的po口向fpga發(fā)送控制信號(hào),由于po口是一個(gè)8位開(kāi)漏雙向i/o口,用作程序校驗(yàn)或通用l/o口時(shí)均需連接一個(gè)外部上拉電阻。fpga管腳設(shè)定為43~36,主要完成轉(zhuǎn)速、轉(zhuǎn)向、電機(jī)、細(xì)分?jǐn)?shù)的設(shè)定,其中s0~s2用來(lái)確定細(xì)分?jǐn)?shù),此三個(gè)引腳從000到111分別實(shí)現(xiàn)256、128、64、32、16、8、4、2細(xì)分,具體情況如表1所示。
本控制器選用的fpga器件為xilinx公司的xc2s15芯片,reset信號(hào)用來(lái)對(duì)fpga復(fù)位(“l(fā)”時(shí)有效),clk是存儲(chǔ)器地址計(jì)數(shù)器脈沖輸入,上升沿有效。pwmclk是脈寬時(shí)鐘,一般接12 mhz,****200mhz。dir是步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)向信號(hào)(“1”為正轉(zhuǎn),“0”為反轉(zhuǎn))。csl、cs2分別用來(lái)控制fpga內(nèi)部步進(jìn)電動(dòng)機(jī)控制模塊的選定,以達(dá)到控制多臺(tái)步進(jìn)電動(dòng)機(jī)的作用。此外,xc2s15具有86個(gè)用戶自定義i/0口,解決了單片機(jī)i/o口不足的問(wèn)題,因此可進(jìn)行多臺(tái)步進(jìn)電動(dòng)機(jī)的控制,并選用兩片1.293d驅(qū)動(dòng)芯片驅(qū)動(dòng)兩臺(tái)兩相/四相步進(jìn)電動(dòng)機(jī)。
1.2單片機(jī)系統(tǒng)軟件結(jié)構(gòu)
單片機(jī)系統(tǒng)主 要完成步進(jìn)電動(dòng)機(jī)調(diào)速控制、轉(zhuǎn)向、細(xì)分?jǐn)?shù)的設(shè)定。單片機(jī)完成步進(jìn)電動(dòng)機(jī)調(diào)速控制分兩種方式:細(xì)分?jǐn)?shù)不變,改變步進(jìn)脈沖的頻率和步進(jìn)脈沖的頻率不變,選擇不同的細(xì)分?jǐn)?shù),可以實(shí)現(xiàn)8種運(yùn)行速度。步進(jìn)頻率不變的調(diào)速方式的軟件流程圖如圖
3所示。細(xì)分?jǐn)?shù)不變的調(diào)速方式軟件流程圖如圖4所示。
1.3 fpga設(shè)計(jì)與仿真
根據(jù)步進(jìn)電動(dòng)機(jī)細(xì)分驅(qū)動(dòng)原理,選擇采用pwm脈寬調(diào)制式細(xì)分驅(qū)動(dòng),根據(jù)細(xì)分精度的要求,決定所需要的****細(xì)分電流波形,設(shè)計(jì)步距細(xì)分的系統(tǒng)構(gòu)成。圖5為步進(jìn)電動(dòng)機(jī)細(xì)分驅(qū)動(dòng) |