基于fpga的控制步進(jìn)電機(jī)的系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于通信控制領(lǐng)域,涉及一種基于FPGA的控制步進(jìn)電機(jī)的系統(tǒng)及方法。
【背景技術(shù)】
[0002]隨著通信技術(shù)、傳感器技術(shù)、嵌入式操作技術(shù)和微電子等技術(shù)的高速發(fā)展,步進(jìn)電機(jī)的需求和應(yīng)用的數(shù)量日益劇增。步進(jìn)電機(jī)作為執(zhí)行模塊,是電子智能設(shè)備的關(guān)鍵部件之一,廣泛的應(yīng)用在計(jì)算機(jī)控制系統(tǒng)中,步進(jìn)電機(jī)與傳統(tǒng)的其它電機(jī)不同,它可以接收數(shù)字控制信號(hào)并將其轉(zhuǎn)化成相應(yīng)的位移。它作為數(shù)字轉(zhuǎn)化的執(zhí)行器件,只要輸入數(shù)字信號(hào)后,它就會(huì)得到相應(yīng)的位置增量,這種增量位置控制與傳統(tǒng)的直流控制相比成本明顯降低且控制靈活。
[0003]現(xiàn)有技術(shù)一般通過(guò)模擬電路來(lái)實(shí)現(xiàn)控制步進(jìn)電機(jī)的運(yùn)行,其顯著缺點(diǎn)是:電路復(fù)雜器件多,此外,也有采用單片機(jī)控制步進(jìn)電機(jī),其雖然減小了系統(tǒng)體積、簡(jiǎn)化了電路,但其控制需要CPU的頻繁參與,這導(dǎo)致了運(yùn)算時(shí)間增加,會(huì)影響系統(tǒng)的整體效率,切無(wú)法滿足高度集成系統(tǒng)的要求。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于克服上述不足,提供一種基于FPGA的控制步進(jìn)電機(jī)的系統(tǒng),其可以簡(jiǎn)便、高效地實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)運(yùn)行狀態(tài)的實(shí)時(shí)調(diào)整。
[0005]為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:一種基于FPGA的控制步進(jìn)電機(jī)的系統(tǒng),其特征在于,包括:
[0006]開(kāi)始標(biāo)志寄存器,用于設(shè)置開(kāi)始標(biāo)志值,以發(fā)起或停止步進(jìn)電機(jī)的運(yùn)轉(zhuǎn);
[0007]方向寄存器,用于設(shè)置步進(jìn)電機(jī)運(yùn)行的方向值;
[0008]轉(zhuǎn)速寄存器,用于設(shè)置步進(jìn)電機(jī)運(yùn)行的速度值;
[0009]角度寄存器,用于設(shè)置步進(jìn)電機(jī)運(yùn)行的轉(zhuǎn)動(dòng)角度值;
[0010]狀態(tài)轉(zhuǎn)換模塊,其由FPGA可編程邏輯器件實(shí)現(xiàn),用于根據(jù)所述開(kāi)始標(biāo)志寄存器,方向寄存器,轉(zhuǎn)速寄存器和角度寄存器的值來(lái)決定輸出狀態(tài),以控制步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)。
[0011]本發(fā)明的另一目的在于提供一種基于FPGA的控制步進(jìn)電機(jī)的方法,其特征在于,包括:開(kāi)始標(biāo)志寄存器設(shè)置開(kāi)始標(biāo)志值,以發(fā)起或停止步進(jìn)電機(jī)的運(yùn)轉(zhuǎn);
[0012]方向寄存器設(shè)置步進(jìn)電機(jī)運(yùn)行的方向值;
[0013]轉(zhuǎn)速寄存器設(shè)置步進(jìn)電機(jī)運(yùn)行的速度值;
[0014]角度寄存器設(shè)置步進(jìn)電機(jī)運(yùn)行的轉(zhuǎn)動(dòng)角度值;
[0015]狀態(tài)轉(zhuǎn)換模塊根據(jù)所述開(kāi)始標(biāo)志寄存器,方向寄存器,轉(zhuǎn)速寄存器和角度寄存器的值來(lái)決定輸出狀態(tài),以控制步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)。
[0016]本發(fā)明的有益效果為:
[0017]第一,結(jié)構(gòu)簡(jiǎn)單,包括:開(kāi)始標(biāo)志寄存器,用于設(shè)置開(kāi)始標(biāo)志值,以發(fā)起或停止步進(jìn)電機(jī)的運(yùn)轉(zhuǎn);方向寄存器,用于設(shè)置步進(jìn)電機(jī)運(yùn)行的方向值;轉(zhuǎn)速寄存器,用于設(shè)置步進(jìn)電機(jī)運(yùn)行的速度值;角度寄存器,用于設(shè)置步進(jìn)電機(jī)運(yùn)行的轉(zhuǎn)動(dòng)角度值,狀態(tài)轉(zhuǎn)換模塊,其由FPGA可編程邏輯器件實(shí)現(xiàn),用于根據(jù)所述開(kāi)始標(biāo)志寄存器,方向寄存器,轉(zhuǎn)速寄存器和角度寄存器的值來(lái)決定輸出狀態(tài),以控制步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)。簡(jiǎn)化了系統(tǒng)的設(shè)計(jì),靈活性強(qiáng),便于大規(guī)模系統(tǒng)的開(kāi)發(fā),能夠?qū)崿F(xiàn)步進(jìn)電機(jī)的并行多線程控制。
[0018]第二,應(yīng)用高效,轉(zhuǎn)速寄存器設(shè)置步進(jìn)電機(jī)運(yùn)行的速度值的步驟是通過(guò)產(chǎn)生相應(yīng)頻率的系統(tǒng)時(shí)鐘來(lái)實(shí)現(xiàn)的,步進(jìn)電機(jī)的角位移量與輸入的脈沖個(gè)數(shù)和頻率成線性關(guān)系,只要控制脈沖的數(shù)量、頻率,就可以實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)動(dòng)的角度和速度控制,電機(jī)的方向是通過(guò)輸出脈沖的相序決定的,也可以通過(guò)脈沖實(shí)現(xiàn)步進(jìn)電機(jī)方向的控制。步進(jìn)電機(jī)運(yùn)轉(zhuǎn)狀態(tài)控制的處理速度更快,工作效率更高,能夠?qū)崿F(xiàn)電機(jī)速度和方向的實(shí)時(shí)調(diào)整,并可以克服步進(jìn)電機(jī)起停時(shí)存在的丟步和過(guò)沖,使得步進(jìn)電機(jī)運(yùn)行更平穩(wěn),定位更精確。
【附圖說(shuō)明】
[0019]此處所說(shuō)明的附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
[0020]圖1是本發(fā)明的基于FPGA的控制步進(jìn)電機(jī)的系統(tǒng)的結(jié)構(gòu)原理示意圖;
[0021]圖2是本發(fā)明的基于FPGA的控制步進(jìn)電機(jī)的方法的流程圖。
【具體實(shí)施方式】
[0022]如在說(shuō)明書及權(quán)利要求當(dāng)中使用了某些詞匯來(lái)指稱特定組件。本領(lǐng)域技術(shù)人員應(yīng)可理解,硬件制造商可能會(huì)用不同名詞來(lái)稱呼同一個(gè)組件。本說(shuō)明書及權(quán)利要求并不以名稱的差異來(lái)作為區(qū)分組件的方式,而是以組件在功能上的差異來(lái)作為區(qū)分的準(zhǔn)則。如在通篇說(shuō)明書及權(quán)利要求當(dāng)中所提及的“包含”為一開(kāi)放式用語(yǔ),故應(yīng)解釋成“包含但不限定于”?!按笾隆笔侵冈诳山邮盏恼`差范圍內(nèi),本領(lǐng)域技術(shù)人員能夠在一定誤差范圍內(nèi)解決所述技術(shù)問(wèn)題,基本達(dá)到所述技術(shù)效果。說(shuō)明書后續(xù)描述為實(shí)施本申請(qǐng)的較佳實(shí)施方式,然所述描述乃以說(shuō)明本申請(qǐng)的一般原則為目的,并非用以限定本申請(qǐng)的范圍。本申請(qǐng)的保護(hù)范圍當(dāng)視所附權(quán)利要求所界定者為準(zhǔn)。
[0023]實(shí)施例1
[0024]請(qǐng)參照?qǐng)D1,本發(fā)明的基于FPGA的控制步進(jìn)電機(jī)的系統(tǒng)包括:開(kāi)始標(biāo)志寄存器,用于設(shè)置開(kāi)始標(biāo)志值,以發(fā)起或停止步進(jìn)電機(jī)的運(yùn)轉(zhuǎn);方向寄存器,用于設(shè)置步進(jìn)電機(jī)運(yùn)行的方向值;轉(zhuǎn)速寄存器,用于設(shè)置步進(jìn)電機(jī)運(yùn)行的速度值;角度寄存器,用于設(shè)置步進(jìn)電機(jī)運(yùn)行的轉(zhuǎn)動(dòng)角度值;狀態(tài)轉(zhuǎn)換模塊,其由FPGA可編程邏輯器件實(shí)現(xiàn),用于根據(jù)所述開(kāi)始標(biāo)志寄存器,方向寄存器,轉(zhuǎn)速寄存器和角度寄存器的值來(lái)決定輸出狀態(tài),以控制步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)。
[0025]優(yōu)選地,所述狀態(tài)轉(zhuǎn)換模塊還連接有步進(jìn)電機(jī)驅(qū)動(dòng)單元。
[0026]優(yōu)選地,還包括接口模塊,用于使FPGA通過(guò)PCI總線與CPU通信。
[0027]優(yōu)選地,F(xiàn)PGA芯片主要包括:可編程輸入輸出單元、基本可編程邏輯單元、時(shí)鐘管理單元、嵌入塊式RAM、布線單元、內(nèi)嵌的底層功能單元和內(nèi)嵌專用硬件模塊。
[0028]優(yōu)選地,F(xiàn)PGA利用小型查找表(16 X I RAM)來(lái)實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè)D觸發(fā)器的輸入端,觸發(fā)器再來(lái)驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)1/0,由此構(gòu)成了即可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/o模塊。
[0029]優(yōu)選地,F(xiàn)PGA的邏輯是通過(guò)向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來(lái)實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及個(gè)模塊之間或模塊與I/O間的連接方式,并最終決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了 FPGA所能實(shí)現(xiàn)的功能,F(xiàn)PGA允許無(wú)限次的編程。
[0030]優(yōu)選地,所述可編程輸入輸出單元是與外界電路的接口部分,用于完成不同電氣特性下對(duì)輸入/輸出信號(hào)的驅(qū)動(dòng)與匹配要求,通過(guò)軟件的靈活配置,可適配不同的電氣標(biāo)準(zhǔn)與I/o物理特性,可以調(diào)整驅(qū)動(dòng)電流的大小。
[0031]優(yōu)選地,外部輸入信號(hào)可以通過(guò)可編程輸入輸出單元輸入到FPGA的內(nèi)部,也可以直接輸入FPGA內(nèi)部。
[0032]優(yōu)選地,基本可編程邏輯單元包含一個(gè)可配置開(kāi)關(guān)矩陣,此矩陣由4或6個(gè)輸入、一些選型電路(多路復(fù)用器等)和觸發(fā)器組成。
[0033]優(yōu)選地,開(kāi)關(guān)矩陣是高度靈活的,可以對(duì)其進(jìn)行配置以便處理組合邏輯、移位寄存器或RAM。
[0034]優(yōu)選地,每個(gè)基本可編程邏輯單元不僅可以用于實(shí)現(xiàn)組合邏輯、時(shí)序邏輯,還可以配置為分布式RAM和分布式ROM。
[0035]優(yōu)選地,基本可編程邏輯單元由兩個(gè)4輸入的函數(shù)、進(jìn)位邏輯、算術(shù)邏輯、存儲(chǔ)邏輯和函數(shù)復(fù)用器組成。
[0036]優(yōu)選地,算術(shù)邏輯包括一個(gè)異或門和一個(gè)與門,一個(gè)異或門可以實(shí)現(xiàn)2bit全加操作,進(jìn)位邏輯由進(jìn)位信號(hào)和函數(shù)復(fù)用器組成,用于實(shí)現(xiàn)快速的算術(shù)加減法操作;4輸入函數(shù)發(fā)生器用于實(shí)現(xiàn)4輸入LUT、分布式RAM或16比特移位寄存器。
[0037]優(yōu)選地,所述進(jìn)位邏輯包括兩條快速進(jìn)位鏈,用于提高基本可編程邏輯單元的處理速度。
[0038]優(yōu)選地,時(shí)鐘管理單元用于數(shù)字時(shí)鐘管理和相位環(huán)路鎖定。相位環(huán)路鎖定能夠提供精確的時(shí)鐘綜合,且能夠降低抖動(dòng),并實(shí)現(xiàn)過(guò)濾功能。
[0039]優(yōu)選地,嵌入塊式RAM可被配置為單端口 RAM、雙端口 RAM、內(nèi)容地址存儲(chǔ)器以及FIFO等存儲(chǔ)結(jié)構(gòu)。
[00