許 伍, 郎 朗, 李騰飛
(安徽工程大學 安徽省電氣傳動與控制重點實驗室,安徽 蕪湖 241000)
基于FPGA的手搖脈沖發(fā)生器模塊的實現(xiàn)*
許 伍, 郎 朗, 李騰飛
(安徽工程大學 安徽省電氣傳動與控制重點實驗室,安徽 蕪湖 241000)
設計了一種基于FPGA的手搖脈沖發(fā)生器模塊,在QurteusII開發(fā)軟件上使用硬件描述語言(VerilogHDL)編寫出手搖脈沖發(fā)生程序,將其通過FPGA器件實現(xiàn)了一種手搖脈沖發(fā)生器;在嵌入式數(shù)控系統(tǒng)應用中,該模塊發(fā)揮重要的作用,實現(xiàn)了外置式手輪的進給軸選擇、移動、方向判別、步長倍率選擇的功能。
手搖脈沖發(fā)生器;嵌入式數(shù)控系統(tǒng);FPGA;VerilogHDL
數(shù)控系統(tǒng)(簡稱CNC),在現(xiàn)代化工業(yè)中的應用越來越廣泛,并得到更多的重視,其特點和功能也十分的龐大。嵌入式技術與數(shù)控系統(tǒng)結合后的新系統(tǒng)具有的實時性強、穩(wěn)定性好、可靠性高等突出優(yōu)點,并在實際過程中得到驗證[1]。基于FPGA的手搖脈沖發(fā)生器利用FPGA內置的編碼器將轉角信號變換為脈沖序列信號,采集脈沖序列信號并輸出,通過伺服驅動器驅動坐標軸。手搖脈沖發(fā)生器是通過A、B兩相的差分信號進行數(shù)據(jù)傳輸,減少信號傳輸中的干擾。由于手搖脈沖發(fā)生器在數(shù)控系統(tǒng)中使用非常方便,所以得到廣泛的使用[2]。通過硬件和軟件兩個部分設計,實現(xiàn)手輪脈沖發(fā)生器的功能。
手搖脈沖發(fā)生器與一般機床的手輪裝置外形相似,其表面標有刻度,通過刻度的變化可以清晰的判別機床或工作臺的移動量。手搖脈沖發(fā)生器的手搖速度直接影響脈沖序列的產(chǎn)生的速率,從而決定軸的運行速度[3]。
手搖脈沖發(fā)生器旋轉個角度,可以得到一個正弦波信號,其相位差為90度,正弦波信號經(jīng)過一些處理后輸出方波。當手輪正轉時,A相較B相超前90度,反之反轉時,A相較B相滯后90度。由此對A、B兩相信號的超前滯后進行控制[4]。
基于FPGA的體系結構與邏輯單元具有靈活、集成度高,并具有實現(xiàn)規(guī)模較大電路,同時編程也較簡便等優(yōu)勢,因此本次設計系統(tǒng)中的數(shù)字信號采集模塊與編碼器計數(shù)模塊是利用FPGA來完成實現(xiàn)。
圖1為外置式手搖脈沖編碼器與FPGA的接口示意圖。手搖脈沖發(fā)生器中,軸選信號是:HX、HY、HZ、HA,倍率信號為:X1、X10、X100,軸選信號和倍率信號直接輸入到FPGA的數(shù)字信號采集模塊,系統(tǒng)采用的輸入方式為光耦隔離方式。采用光耦隔離的輸入方式主要是基于其能有效的減少尖脈沖與一些噪音干擾,進而實現(xiàn)提高過程通道上的信噪比的結果。A、*A、B、*B為兩組方波差分信號,它們在相位上相差90度,采用差分-單端轉換的形式被輸送到FPGA的編碼器計數(shù)模塊。采用差分信號是基于其對干擾不夠敏感,且比單端信號產(chǎn)生的EMI更少的優(yōu)點,所以編碼器反饋最常采用的就是差分的方式。
圖1 外置式手搖脈沖發(fā)生器與FPGA的接口示意圖
系統(tǒng)設計采用VerilogHDL語言來實現(xiàn)FPGA內部之間的邏輯關系。FPGA通過VerilogHDL的硬件描述語言實現(xiàn)其內部的硬件電路功能、信號連接關系、定時關系等,搖動手輪采集輸入信號,由CPU讀取信號并經(jīng)過處理產(chǎn)生手輪脈沖信號。如下是用VerilogHDL編寫的手輪脈沖產(chǎn)生的語言程序:
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) ∥順時針旋轉時LED燈右移
begin
led_mask=led_mask>>1;
led_mask[8]=led_mask[0];
led=~led_mask[8:1];
end
else if(antiwise) ∥逆時針旋轉時LED燈左移
begin
led_mask=led_mask<<1;
led_mask[1]=led_mask[9];
led=~led_mask[8:1];
end
根據(jù)上述程序在FPGA中生成的頂層程序設計模塊如圖2所示。
圖2 頂層程序設計模塊
圖3 輸出的正反向方波信號
利用示波器驗證了手搖脈沖發(fā)生器設計的可行性。對手輪進行順時針和逆時針的轉動,通過示波器輸出顯示的方波信號,如圖3所示,具體為A、B兩組相位差為90度的方波信號。
介紹的基于FPGA的手搖脈沖發(fā)生器模塊的硬件與軟件設計,采用的FPGA實現(xiàn)了外置式手搖脈沖發(fā)生器的進給軸和步長倍率的選擇以及編碼計數(shù)和方向確定的功能,簡化了數(shù)控系統(tǒng)的設計,并能使系統(tǒng)可靠性得到明顯的提高。
[1] 蘇會林,董長雙.數(shù)控技術的發(fā)展與展望[J].機械研究與應用,2005,18(6):25-27
[2] 孫福清,何凱,王治森. 手搖脈沖發(fā)生器鑒相及脈沖計數(shù)的軟件實現(xiàn)[J].制造業(yè)自動化,2001,20(10):54-56
[3] 趙海軍,葉佩青.手輪脈沖驅動均勻化控制[J].機床與液壓,2003,1:117-118,47
[4] 李芳.嵌入式數(shù)控系統(tǒng)中手搖脈沖發(fā)生器模塊的實現(xiàn)[J].科學技術與工程,2010,10(12):2963-2964,2969
[5] 王田苗,魏洪興.嵌入式系統(tǒng)設計與實例開發(fā)—基于ARM微處理器與μC/OS-Ⅱ實時操作系統(tǒng)[M].北京:清華大學出版社,2008
[6] 周立功.SOPC嵌入式系統(tǒng)基礎教程[M].北京:北京航空航天大學出版社,2006
[7] 周立功.ARM嵌入式系統(tǒng)基礎教程[M].北京:北京航空航天大學出版社,2005
[8] 姚放吾.嵌入式系統(tǒng)的硬件/軟件協(xié)同設計[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.
安徽高校省級自然科學研究項目(KJ2013A041);國家級大學生創(chuàng)新創(chuàng)業(yè)訓練計劃項目(201210363003).
許伍 (1987-),男,安徽宿州人,碩士研究生,從事運動控制系統(tǒng)的分析與設計研究.
TP273.6
A
責任編輯:代小紅
校對田靜