基于FPGA的步進(jìn)電機(jī)控制器研究和實(shí)現(xiàn)
DEC2為無細(xì)分時(shí)的電機(jī)控制模塊,控制雙四拍時(shí)的正反轉(zhuǎn)。
步進(jìn)電機(jī)的正、反轉(zhuǎn)控制可通過改變步進(jìn)電機(jī)各繞組的通電順序來改變轉(zhuǎn)向,當(dāng)四相雙四拍步進(jìn)電機(jī)的通電順為AB→BC→CD→DA→AB…時(shí),電機(jī)正轉(zhuǎn);當(dāng)其繞組按AD→DC→CB→BA→AD…的順序通電時(shí),電機(jī)反轉(zhuǎn)。因此,利用case語句編程來改變輸出脈沖的順序,以此改變步進(jìn)電機(jī)繞組的通電順序。用‘1’表示該繞組加電;用‘0’表示該繞組斷電。
圖4為DEC2反轉(zhuǎn)時(shí)的仿真波形。本文引用地址:http://www.ex-cimer.com/article/191259.htm
2.2 利用VHDL文件生成元器件
工程創(chuàng)建好以后,就可以用設(shè)計(jì)好的VHDL語言文件生成工程模塊。首先打開CNT8.vhd文件,點(diǎn)擊菜單中File→Create/Update→Crea-te Symbol Files forCurrent File命令,以生成圖5所示CNT8模塊。
按照同樣的方法生成CNT24和DEC2模塊。將這些模塊包裝為一個(gè)symbol,以備總模塊調(diào)用,如圖5所示。
2.3 原理圖輸入設(shè)計(jì)
2.3.1 PWM_1.mif文件的設(shè)計(jì)
在設(shè)計(jì)控制器前,必須首先完成存放PWM波形的ROM存儲(chǔ)器設(shè)計(jì),而在此之前還必須定制LPM_ROM初始化數(shù)據(jù)文件,如圖6所示。
2.3.2 ROM存儲(chǔ)器的設(shè)計(jì)
mif文件建好以后就可以進(jìn)入ROM存儲(chǔ)器的設(shè)計(jì)。
設(shè)計(jì)好的rom3模塊如圖7所示。
2.3.3 定制模塊
調(diào)用LPM庫中的模塊,定制BUSMUX(參數(shù)化多路數(shù)據(jù)選擇器)元件和lpm_compare0元件。
如圖8所示,數(shù)據(jù)選擇器通過模式選擇信號(hào),再根據(jù)不同的模式功能選擇該功能模塊的信號(hào)輸出。該模塊的輸入信號(hào)有模式選擇信號(hào)sel[0],即非細(xì)分控制和模式選擇信號(hào)sel[1],即細(xì)分控制。當(dāng)sel為“0”時(shí),對(duì)應(yīng)的為非細(xì)分控制輸出,即由DEC2輸出,此時(shí)步進(jìn)電機(jī)按照雙四拍模式運(yùn)行;當(dāng)sel為“1”時(shí),對(duì)應(yīng)的為細(xì)分控制輸出,即由比較器CMP3輸出,此時(shí)步進(jìn)電機(jī)按照細(xì)分8拍模式運(yùn)行。
評(píng)論