步進(jìn)電機(jī)控制器的FPGA實(shí)現(xiàn)
該模塊的主要功能是將count與angleDnCount產(chǎn)生的數(shù)值經(jīng)過(guò)編碼,再通過(guò)baBA輸出到步進(jìn)電機(jī),來(lái)對(duì)電機(jī)進(jìn)行控制。模塊仿真圖見(jiàn)圖2。
假設(shè)resel=1,則將count和angleDnCount設(shè)置成0。
假設(shè)reset=O,clk為上升沿觸發(fā)且ini=0時(shí),就將設(shè)定的初值(cntini與angle)賦給count和angleDn―Count兩個(gè)信號(hào)端,也就是(count=O+cntini)與(an―gleDnCount=angle)。
假設(shè)reset=O,clk為上升沿觸發(fā)且ini=1時(shí),則將count與cntini相加,再將結(jié)果存為count。然后判斷angleDnCount的值是否大于angleDnCntDec。如果大于,則用angleDnCount減angleDnCntDec,將結(jié)果存為angleDnCount;否則,將angleDnCount設(shè)為0(因?yàn)榇藭r(shí)angleDnCount的值小于angleDnCntDec,表示電機(jī)已經(jīng)到達(dá)設(shè)定位置,故不需要繼續(xù)轉(zhuǎn)動(dòng)了)。BaBA[3..O]是將count與angleDnCount產(chǎn)生的數(shù)值經(jīng)過(guò)編碼后輸出到四相步進(jìn)電機(jī)的端口的。本文引用地址:http://butianyuan.cn/article/192088.htm
3 QuartusⅡ仿真結(jié)果
上述程序在ALTERA公司免費(fèi)提供的QuartusⅡ環(huán)境下編譯通過(guò),適配的FPGA器件為FLEXlOKlO。最后得到的系統(tǒng)仿真圖及生成的系統(tǒng)模塊符號(hào)圖分別如圖3,圖4所示。
reset是系統(tǒng)內(nèi)部自復(fù)位信號(hào);dir是步進(jìn)電機(jī)正反轉(zhuǎn)的方向控制;clk是由外部提供的時(shí)鐘信號(hào);ini是賦初值的使能開(kāi)關(guān);manner[1..O]是激磁方式的選擇開(kāi)關(guān)(00:自動(dòng)檢測(cè)角度輸入,決定激磁方式;01:一相激磁;10:二相激磁;11:一、二相激磁);angle[7..0]是步進(jìn)角的倍數(shù)設(shè)定數(shù)如引腳;baBA[3..0]是系統(tǒng)輸出信號(hào)引腳,是內(nèi)部計(jì)數(shù)器的count[3..O]數(shù)值編碼的結(jié)果。
4 結(jié) 語(yǔ)
步進(jìn)電機(jī)作為一種數(shù)字伺服執(zhí)行元件,具有結(jié)構(gòu)簡(jiǎn)單,運(yùn)行可靠,控制方便,控制性能好等優(yōu)點(diǎn),但現(xiàn)實(shí)中步進(jìn)電機(jī)的控制比較復(fù)雜。
這里設(shè)計(jì)的步進(jìn)電機(jī)控制器方法簡(jiǎn)單,支持四相步進(jìn)電機(jī)的三種勵(lì)磁方式、正反轉(zhuǎn)運(yùn)行,這種基于FPGA的設(shè)計(jì)方法,可以加速同類(lèi)型產(chǎn)品的開(kāi)發(fā)速度,節(jié)約投資。并且可以根據(jù)步進(jìn)電機(jī)的不同,改變分層模塊的VHDL程序的參數(shù),實(shí)現(xiàn)不同型號(hào)步進(jìn)電機(jī)的控制,在實(shí)際應(yīng)用中有利于步進(jìn)電機(jī)的廣泛應(yīng)用。
評(píng)論