許 伍, 郎 朗, 李騰飛
(安徽工程大學(xué) 安徽省電氣傳動(dòng)與控制重點(diǎn)實(shí)驗(yàn)室,安徽 蕪湖 241000)
基于FPGA的手搖脈沖發(fā)生器模塊的實(shí)現(xiàn)*
許 伍, 郎 朗, 李騰飛
(安徽工程大學(xué) 安徽省電氣傳動(dòng)與控制重點(diǎn)實(shí)驗(yàn)室,安徽 蕪湖 241000)
設(shè)計(jì)了一種基于FPGA的手搖脈沖發(fā)生器模塊,在QurteusII開(kāi)發(fā)軟件上使用硬件描述語(yǔ)言(VerilogHDL)編寫(xiě)出手搖脈沖發(fā)生程序,將其通過(guò)FPGA器件實(shí)現(xiàn)了一種手搖脈沖發(fā)生器;在嵌入式數(shù)控系統(tǒng)應(yīng)用中,該模塊發(fā)揮重要的作用,實(shí)現(xiàn)了外置式手輪的進(jìn)給軸選擇、移動(dòng)、方向判別、步長(zhǎng)倍率選擇的功能。
手搖脈沖發(fā)生器;嵌入式數(shù)控系統(tǒng);FPGA;VerilogHDL
數(shù)控系統(tǒng)(簡(jiǎn)稱(chēng)CNC),在現(xiàn)代化工業(yè)中的應(yīng)用越來(lái)越廣泛,并得到更多的重視,其特點(diǎn)和功能也十分的龐大。嵌入式技術(shù)與數(shù)控系統(tǒng)結(jié)合后的新系統(tǒng)具有的實(shí)時(shí)性強(qiáng)、穩(wěn)定性好、可靠性高等突出優(yōu)點(diǎn),并在實(shí)際過(guò)程中得到驗(yàn)證[1]?;贔PGA的手搖脈沖發(fā)生器利用FPGA內(nèi)置的編碼器將轉(zhuǎn)角信號(hào)變換為脈沖序列信號(hào),采集脈沖序列信號(hào)并輸出,通過(guò)伺服驅(qū)動(dòng)器驅(qū)動(dòng)坐標(biāo)軸。手搖脈沖發(fā)生器是通過(guò)A、B兩相的差分信號(hào)進(jìn)行數(shù)據(jù)傳輸,減少信號(hào)傳輸中的干擾。由于手搖脈沖發(fā)生器在數(shù)控系統(tǒng)中使用非常方便,所以得到廣泛的使用[2]。通過(guò)硬件和軟件兩個(gè)部分設(shè)計(jì),實(shí)現(xiàn)手輪脈沖發(fā)生器的功能。
手搖脈沖發(fā)生器與一般機(jī)床的手輪裝置外形相似,其表面標(biāo)有刻度,通過(guò)刻度的變化可以清晰的判別機(jī)床或工作臺(tái)的移動(dòng)量。手搖脈沖發(fā)生器的手搖速度直接影響脈沖序列的產(chǎn)生的速率,從而決定軸的運(yùn)行速度[3]。
手搖脈沖發(fā)生器旋轉(zhuǎn)個(gè)角度,可以得到一個(gè)正弦波信號(hào),其相位差為90度,正弦波信號(hào)經(jīng)過(guò)一些處理后輸出方波。當(dāng)手輪正轉(zhuǎn)時(shí),A相較B相超前90度,反之反轉(zhuǎn)時(shí),A相較B相滯后90度。由此對(duì)A、B兩相信號(hào)的超前滯后進(jìn)行控制[4]。
基于FPGA的體系結(jié)構(gòu)與邏輯單元具有靈活、集成度高,并具有實(shí)現(xiàn)規(guī)模較大電路,同時(shí)編程也較簡(jiǎn)便等優(yōu)勢(shì),因此本次設(shè)計(jì)系統(tǒng)中的數(shù)字信號(hào)采集模塊與編碼器計(jì)數(shù)模塊是利用FPGA來(lái)完成實(shí)現(xiàn)。
圖1為外置式手搖脈沖編碼器與FPGA的接口示意圖。手搖脈沖發(fā)生器中,軸選信號(hào)是:HX、HY、HZ、HA,倍率信號(hào)為:X1、X10、X100,軸選信號(hào)和倍率信號(hào)直接輸入到FPGA的數(shù)字信號(hào)采集模塊,系統(tǒng)采用的輸入方式為光耦隔離方式。采用光耦隔離的輸入方式主要是基于其能有效的減少尖脈沖與一些噪音干擾,進(jìn)而實(shí)現(xiàn)提高過(guò)程通道上的信噪比的結(jié)果。A、*A、B、*B為兩組方波差分信號(hào),它們?cè)谙辔簧舷嗖?0度,采用差分-單端轉(zhuǎn)換的形式被輸送到FPGA的編碼器計(jì)數(shù)模塊。采用差分信號(hào)是基于其對(duì)干擾不夠敏感,且比單端信號(hào)產(chǎn)生的EMI更少的優(yōu)點(diǎn),所以編碼器反饋?zhàn)畛2捎玫木褪遣罘值姆绞健?/p>
圖1 外置式手搖脈沖發(fā)生器與FPGA的接口示意圖
系統(tǒng)設(shè)計(jì)采用VerilogHDL語(yǔ)言來(lái)實(shí)現(xiàn)FPGA內(nèi)部之間的邏輯關(guān)系。FPGA通過(guò)VerilogHDL的硬件描述語(yǔ)言實(shí)現(xiàn)其內(nèi)部的硬件電路功能、信號(hào)連接關(guān)系、定時(shí)關(guān)系等,搖動(dòng)手輪采集輸入信號(hào),由CPU讀取信號(hào)并經(jīng)過(guò)處理產(chǎn)生手輪脈沖信號(hào)。如下是用VerilogHDL編寫(xiě)的手輪脈沖產(chǎn)生的語(yǔ)言程序:
always @(negedge dinb or negedge rst)
begin
if(!rst)
begin
dirout<=1′b0;
antiwise<=1′b0;
end
else if(!dinb)
begin
if(!dina)
begin
dirout<=1′b0;
antiwise<=1′b0;
end
else if(dina)
begin
dirout<=1′b1;
antiwise<=1′b1;
end
always @(posedge clk or posedge dina or negedge rst)
begin
.
.
.
Else if(dina)
begin
plsnum<=plsnum+1;
end
else if(clk)
begin
if(plsnum)
begin
plsout<=~plsout;
plsnum<=plsnum-1;
end
end
在LED上顯示手輪操作狀態(tài),其程序如下:
else if(!antiwise) ∥順時(shí)針旋轉(zhuǎn)時(shí)LED燈右移
begin
led_mask=led_mask>>1;
led_mask[8]=led_mask[0];
led=~led_mask[8:1];
end
else if(antiwise) ∥逆時(shí)針旋轉(zhuǎn)時(shí)LED燈左移
begin
led_mask=led_mask<<1;
led_mask[1]=led_mask[9];
led=~led_mask[8:1];
end
根據(jù)上述程序在FPGA中生成的頂層程序設(shè)計(jì)模塊如圖2所示。
圖2 頂層程序設(shè)計(jì)模塊
圖3 輸出的正反向方波信號(hào)
利用示波器驗(yàn)證了手搖脈沖發(fā)生器設(shè)計(jì)的可行性。對(duì)手輪進(jìn)行順時(shí)針和逆時(shí)針的轉(zhuǎn)動(dòng),通過(guò)示波器輸出顯示的方波信號(hào),如圖3所示,具體為A、B兩組相位差為90度的方波信號(hào)。
介紹的基于FPGA的手搖脈沖發(fā)生器模塊的硬件與軟件設(shè)計(jì),采用的FPGA實(shí)現(xiàn)了外置式手搖脈沖發(fā)生器的進(jìn)給軸和步長(zhǎng)倍率的選擇以及編碼計(jì)數(shù)和方向確定的功能,簡(jiǎn)化了數(shù)控系統(tǒng)的設(shè)計(jì),并能使系統(tǒng)可靠性得到明顯的提高。
[1] 蘇會(huì)林,董長(zhǎng)雙.數(shù)控技術(shù)的發(fā)展與展望[J].機(jī)械研究與應(yīng)用,2005,18(6):25-27
[2] 孫福清,何凱,王治森. 手搖脈沖發(fā)生器鑒相及脈沖計(jì)數(shù)的軟件實(shí)現(xiàn)[J].制造業(yè)自動(dòng)化,2001,20(10):54-56
[3] 趙海軍,葉佩青.手輪脈沖驅(qū)動(dòng)均勻化控制[J].機(jī)床與液壓,2003,1:117-118,47
[4] 李芳.嵌入式數(shù)控系統(tǒng)中手搖脈沖發(fā)生器模塊的實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2010,10(12):2963-2964,2969
[5] 王田苗,魏洪興.嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā)—基于ARM微處理器與μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)[M].北京:清華大學(xué)出版社,2008
[6] 周立功.SOPC嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2006
[7] 周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2005
[8] 姚放吾.嵌入式系統(tǒng)的硬件/軟件協(xié)同設(shè)計(jì)[J].微計(jì)算機(jī)信息,2001(3):1-3
Keywords:manual pulse generator; embedded CNC system;FPGA;VerilogHDL
Implementation of Manual Pulse Generator Module Based on FPGA
XUWu,LANGLang,LITeng-fei
(Anhui Key Lab of Electric Drive and Control, Anhui Polytechnic University, Anhui Wuhu 241000, China)
A kind of manual pulse generator module based on FPGA has been designed. VerilogHDL is used to write the germination program of manual pulse in QurteusII, with the program running on the FPGA device, the manual pulse generator can be achieved. The module plays an important role in the application of embedded CNC system, realizing multiple functions of external handwheel such as the selection and movement of feed shaft, direction distinguishing and selection of step rate.
1672-058X(2013)10-0070-03
2013-07-01;
2013-07-28.
安徽高校省級(jí)自然科學(xué)研究項(xiàng)目(KJ2013A041);國(guó)家級(jí)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目(201210363003).
許伍 (1987-),男,安徽宿州人,碩士研究生,從事運(yùn)動(dòng)控制系統(tǒng)的分析與設(shè)計(jì)研究.
TP273.6
A
責(zé)任編輯:代小紅
校對(duì)田靜
重慶工商大學(xué)學(xué)報(bào)(自然科學(xué)版)2013年10期