国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于DDA插補算法的五軸步進(jìn)電動機插補控制器IP核設(shè)計

2011-11-20 08:34:42楊秀增黎運宇
微特電機 2011年9期
關(guān)鍵詞:分頻器控制卡積分器

楊秀增,黎運宇

(廣西民族師范學(xué)院,廣西崇左532200)

0 引 言

插補控制器是數(shù)控系統(tǒng)的基本單元,用來完成運動軌跡的擬合[1]。隨著加工零件結(jié)構(gòu)復(fù)雜程度的提高,對數(shù)控制系統(tǒng)的插補控制器性能提出了更高的要求,不僅要求插補控制器具有高精度、高速度,還要求具有多軸聯(lián)動控制功能,比如,對復(fù)雜曲面零部件加工,目前廣泛采用具有五軸聯(lián)動線性插補功能[2]的插補控制器,但是,目前的數(shù)控系統(tǒng)利用軟件插補器[3],軟件插補器由于用軟件實現(xiàn)插補功能,其性能難以滿足復(fù)雜數(shù)控系統(tǒng)的要求[3]。

針對以上情況,本文利用現(xiàn)場可編程邏輯門陣列(FPGA)[4],設(shè)計了一款基于數(shù)字積分算法(DDA)五軸步進(jìn)電動機聯(lián)動控制的硬件插補控制IP核,由于該插補器控制器全都由硬件來實現(xiàn),因此,本控制器具有速度快、精度高和實時性強等優(yōu)點,能應(yīng)用于多軸復(fù)雜的數(shù)控系統(tǒng)中。

1 IP核硬件系統(tǒng)框圖及其工作原理

圖1為本設(shè)計的硬件系統(tǒng)原理框圖。由圖1可見,本設(shè)計包括Avalon接口單元、寄存器文件單元和任務(wù)邏輯單元三大部分。

圖1 五軸步進(jìn)電動機插補控制器IP核硬件原理框圖

Avalon接口單元是本控制IP核的接口電路,負(fù)責(zé)把用戶任務(wù)邏輯單元,按基于Avalon總線通信協(xié)議接在Avalon總線上,以便實現(xiàn)用戶任務(wù)邏輯單元與NiosII軟核CPU進(jìn)行通信。

寄存器文件單元由如下九個寄存器組成:

分頻因子寄存器,用于寄存可編程分頻器的分頻因子,其大小能有效地控制插補器的插補速度;X軸坐標(biāo)寄存器、Y軸坐標(biāo)寄存器、Z軸坐標(biāo)寄存器、B軸坐標(biāo)寄存器和C軸坐標(biāo)寄存器,分別寄存X軸、Y軸、Z軸、B軸和C軸的終點坐標(biāo)值,作為數(shù)字積分器的被積函數(shù),其值越大,被積函數(shù)值越大,意味著該軸的運動距離越遠(yuǎn),在單位時間內(nèi),數(shù)字積分器產(chǎn)生的步進(jìn)脈沖越快;狀態(tài)寄存器,用于寄存控制器的當(dāng)前所處的狀態(tài)(“閑”或“忙”),用高或低電平來表示;總步進(jìn)數(shù)寄存器,用于寄存五個步進(jìn)電動機要走的總步進(jìn)數(shù);控制寄存器,寄存著各種控制信息,包括1位暫??刂菩盘?、1位起動信號和5位步進(jìn)電動機的方向轉(zhuǎn)動控制信號。

任務(wù)邏輯單元是本IP核的行為部分[5],要實現(xiàn)五軸步進(jìn)電動機的聯(lián)動和速度控制功能。五軸數(shù)字積分器模塊,由五個相互獨立的數(shù)字積分器組成,此模塊能對各軸坐標(biāo)的值進(jìn)行數(shù)字積分運算,不斷地產(chǎn)生各軸步進(jìn)電動機的步進(jìn)脈沖信號,控制著各軸步進(jìn)電動機的運動速度和聯(lián)動功能;終點判定模塊對各軸輸出的步進(jìn)脈沖進(jìn)行計數(shù),并且把計數(shù)的結(jié)果與總步進(jìn)數(shù)寄存器的值進(jìn)行比較,如相等,表示已到達(dá)終點,用over信號通知狀態(tài)機表示本次差補結(jié)束;狀態(tài)機是任務(wù)邏輯單元的協(xié)調(diào)控制中心,能產(chǎn)生各種時序控制信號,使五軸數(shù)字積分器和終點判定模塊的協(xié)調(diào)工作;可編程分頻器可根據(jù)分頻因子的值對50 MHz時鐘進(jìn)行分頻,得到不同頻率的工作時鐘,實現(xiàn)步進(jìn)電動機的速度控制。

2 IP核硬件系統(tǒng)的FPGA設(shè)計

2.1 寄存器文件設(shè)計

寄存器文件由九個寄存器組成,寄存著控制信息、狀態(tài)信息和各種數(shù)據(jù)。每個寄存器對應(yīng)著不同的地址,且讀寫方向和位寬也不盡相同,表1列出這些寄存器的名稱、相對地址、讀寫方向、位寬和功能描述。

表1 寄存器組定義與地址分配

圖2 數(shù)字積分器的原理方框圖

2.2 任務(wù)邏輯設(shè)計

2.2.1 可編程分頻器設(shè)計

在本設(shè)計中,利用一個可編程分頻器來控制步進(jìn)電動機的轉(zhuǎn)動速度。由圖1可知,分頻器的分頻因子變大,50 MHz的系統(tǒng)時鐘被分頻器分頻的頻率變小,數(shù)字積分器的工作時鐘變小,數(shù)字積分器的運算速度變慢,步進(jìn)電動機速度變小;相反,分頻器分頻因子變小,分頻器的輸出頻率變大,五軸數(shù)字積分器的運算速度變快,步進(jìn)電動機轉(zhuǎn)速變快。

2.2.2 五軸數(shù)字積分器設(shè)計

為了實現(xiàn)五個步進(jìn)電動機的聯(lián)動控制,設(shè)計了五軸數(shù)字積分器。五軸數(shù)字積分器由五個互相獨立的數(shù)字積分組成,每一個坐標(biāo)軸對應(yīng)一個數(shù)字積分器,其原理框圖如圖2所示,坐標(biāo)值寄存器存放本次直線插補的終點坐標(biāo)值,作為數(shù)字積分器的被積函數(shù)。在插補前,clr要對余數(shù)寄存器內(nèi)容清零,插補起動后,在clk時鐘的上升沿控制下,加法器對坐標(biāo)寄存器的值和余數(shù)寄存器的值進(jìn)行一次加法運算,并把運算結(jié)果存放在余數(shù)寄存器中。在設(shè)計中,余數(shù)寄存器最高位作為驅(qū)動步進(jìn)電動機的步進(jìn)脈沖,每個上升沿表示步進(jìn)電動機要步進(jìn)一步,本積分器的Verlogn HDL程序如下:

module Digital_integrator(iclk,iclr,idata,step_pulse,en);

input iclk,iclr,en;

input[15:0]idata;//數(shù)據(jù)輸入

output step_pulse;//步進(jìn)脈沖

reg[16:0]sum;//中間寄存器

always@(posedge iclk or posedge iclr)

if(iclr)//高電平,清零

sum=0;

else if(en)//高電平,進(jìn)行累加

sum=sum+idata;

assign step_pulse=sum[16];//步進(jìn)脈沖

endmodule

2.2.3 終點判定模塊設(shè)計

終點判定模塊用于判定步進(jìn)電動機是否運動到終點。插補前,NiosII根據(jù)本次差補的終點坐標(biāo)值和步進(jìn)電動機的最小步長的值,計算出五個步進(jìn)電動機的步進(jìn)數(shù)總數(shù),并把這總數(shù)寫到總步進(jìn)數(shù)寄存器,插補開始后,終點判定模塊讀取總步進(jìn)數(shù)寄存器的值,并對各軸步進(jìn)脈沖的上升沿進(jìn)行計數(shù),當(dāng)計數(shù)的值與讀到時的總步進(jìn)數(shù)相等時,表明步進(jìn)電動機已到達(dá)終點,用over信號通知狀態(tài)機停止本次直線插補,本模塊的Verlogn HDL程序如下:

module end_test(x_p,y_p,_p,b_p,c_p,over,idata,RD);

input x_p,y_p,z_p,b_p,c_p,RD;

output reg over;//終點結(jié)束輸出

input[31:0]idata;//數(shù)據(jù)輸入

reg[31:0]mcounter,mreg;//中間寄存器

wire dclk;

assign dclk=x_p||y_p||z_p||b_p||c_p;always@(posedge dclk or posedge RD)if(RD)begin mreg=idata;over=0;end//RD為高電平時,讀取數(shù)據(jù)

else if(mcounter==mreg)

begin end_out=1;mcounter=0;end//如計數(shù)與總步進(jìn)數(shù)相等進(jìn),結(jié)束

else begin mcounter=mcounter+1;over=0;end//否則計數(shù)endmodule

2.2.4 狀態(tài)機設(shè)計

圖3 狀態(tài)機的狀態(tài)轉(zhuǎn)換圖

狀態(tài)機用于協(xié)調(diào)五軸數(shù)字積分器和終點判定模塊協(xié)調(diào)工作。圖3為本狀態(tài)機的狀態(tài)轉(zhuǎn)換圖,包括“空閑”狀態(tài)(s0)、數(shù)據(jù)初始化狀態(tài)(s1)和步進(jìn)控制狀態(tài)(s2)三個狀態(tài)。在NiosII沒有起動插補器前,狀態(tài)機始終在“空閑”狀態(tài)(s0)中等待起動信號(start)到來;一旦start為高電平,表明NiosII起動插補器,狀態(tài)機由等待狀態(tài)(s0)進(jìn)入數(shù)據(jù)初始化狀態(tài)(s1),在狀態(tài)中,狀態(tài)機對數(shù)字積分器的余數(shù)寄存器內(nèi)容清零和用RD信號通知終點判定模塊讀取總步進(jìn)數(shù)寄存器的值,在時鐘控制下,狀態(tài)機無條件地進(jìn)行步進(jìn)電控制狀態(tài)(s2),在此狀態(tài)中,EN為高電平,使五軸數(shù)字積分器開始進(jìn)行積分運算,當(dāng)over為高電平時,此狀態(tài)結(jié)束,進(jìn)入“空閑”狀態(tài)s0中。

2.3 Avalon接口設(shè)計

在QuartusII 8.0軟件中,SOPC Builder工具提供了6種不同接口類型和信號,設(shè)計者可根據(jù)設(shè)計需要選擇接口,并把任務(wù)邏輯各種信號,指定Avalon信號類型,表2為本設(shè)計所用到的接口單元信息。

表2 Avalon接口信息表

3 軟件設(shè)計

硬件系統(tǒng)工作離不開軟件的支持,硬件系統(tǒng)的設(shè)計結(jié)構(gòu)和工作原理決定了軟件的編寫方法[6]。在插補前,讀取狀態(tài)寄存器里的值,了解系統(tǒng)工作狀態(tài),如處于“空閑”狀態(tài),NiosII把本次直線插補終點坐標(biāo)寫到相應(yīng)的寄存器中,然后,根據(jù)空間直線的長度和步進(jìn)電動機的步距,計算出總的步進(jìn)脈沖數(shù),并寫入總步進(jìn)脈沖寄存器中。最后,根據(jù)直線插補方向設(shè)置好控制寄存器方向控制位后,起動插補器。

4 IP核在五軸步進(jìn)電動機運動控制卡中應(yīng)用及其測試

本控制器IP核被成功地應(yīng)用于如圖4所示的五軸步進(jìn)電動機運動控制卡中。本運動控制卡在一片F(xiàn)PGA上實現(xiàn)。UART控制器、JTAG控制器、NiosII處理器、EPCS控制器、SDRAM控制、LCD控制器、PIO控制器和Avalon數(shù)據(jù)總線構(gòu)成基于NiosII的最小系統(tǒng);五軸步進(jìn)電動機插補控制器是通過例化本設(shè)計IP核得到的;SPWM細(xì)分驅(qū)動器實現(xiàn)步進(jìn)電動機的細(xì)分驅(qū)動,改善步進(jìn)電動機的運動性能。加工的數(shù)據(jù)從上位機的USB口傳送到五軸步進(jìn)電動機控制卡中,CP2101橋式控制芯片把USB數(shù)據(jù)流轉(zhuǎn)換成UART數(shù)據(jù)流,然后NiosII把這些數(shù)據(jù)寫到五軸步進(jìn)電動機插補控制器中。本運動控制卡的具體設(shè)計方法,限于篇幅,本文不作介紹。

圖4 基于FPGA的五軸步進(jìn)電動機運動控制卡設(shè)計框圖

5 測試結(jié)果

對以上所設(shè)計的運動卡進(jìn)行測試,現(xiàn)場可編程邏輯門陣列選用Altera公司的EP3C25Q240C8N,步進(jìn)電動機選用Leetro公司生產(chǎn)的二相式步進(jìn)電動機DM4250C。測試結(jié)果表明,本運動控制卡工作穩(wěn)定,被控制的步進(jìn)電動機工作平穩(wěn),插補運算速度快、控制精度高。圖5為利用QuartusII嵌入式邏輯分析儀(SigalTap II Logic Analyzer)測試五軸數(shù)字積分器的輸出信號波形:xp、yp、zp、bp和cp分別是X軸、Y軸、Z軸、B軸和C軸的步進(jìn)脈沖輸出,信號每一個上升沿表示步進(jìn)電動機走一步,從圖5可以看出,它們之間的步進(jìn)數(shù)(上升沿數(shù))剛好為2倍關(guān)系,說明五軸步進(jìn)電動機具有良好的聯(lián)動關(guān)系,有效驗證了本設(shè)計的正確性。

圖5 用嵌入式邏輯分析儀分析五軸波形時序圖

6 結(jié) 語

插補器聯(lián)動控制器是多軸聯(lián)動控制卡的重要組成部分,針對目前數(shù)控制系統(tǒng)的軟件插補器的運行速度慢和實時性差等缺點,利用現(xiàn)場可編程門陣列設(shè)計一款五軸步進(jìn)電動機插補控制器,實際測試結(jié)果表明,本控制器工作穩(wěn)定,具有速度快、精度高和實時性強等優(yōu)點,因此,本設(shè)計有一定推廣和實用價值。

[1] 陳黎融,白婕靜,劉繼偉.基于FPGA的數(shù)字積分法圓弧插補器的設(shè)計與實現(xiàn)[J].現(xiàn)代制造工程,2008,(2):58-60.

[2] 劉源,王永章,富宏亞,等.用于五軸聯(lián)動數(shù)控機床的曲線插補控制策略[J].計算機集成制造系統(tǒng),2009,15(4):758-761.

[3] 于海東.直線插補控制器的FPGA實現(xiàn)[J].微特電機,2009(1):46-49.

[4] 李凡,廖勇.基于FPGA數(shù)字硬件的無刷直流電動機速度控制系統(tǒng)[J].微特電機,2010(8):65-68.

[5] 殷蘇民,楊仁宇.基于Avalon總線的插補器IP核的設(shè)計[J].機械設(shè)計與制造,2009(8):198-200.

[6] 楊秀增.可變波特率和載頻的2FSK數(shù)字調(diào)制器的FPGA實現(xiàn)[J].電訊技術(shù),2010,50(5):64-67.

猜你喜歡
分頻器控制卡積分器
一種基于0.18μm SiGe工藝的8GHz前置分頻器
兼容多種運動控制卡的V割機數(shù)控系統(tǒng)關(guān)鍵技術(shù)*
高頻、低相噪、雙模分頻器設(shè)計
基于ECVT數(shù)字積分器的仿真及研究
電子科技(2018年8期)2018-07-23 02:15:28
基于運動控制卡的桁架機器人控制系統(tǒng)設(shè)計
Rogowski線圈數(shù)字積分器的直流誤差消除方法研究
基于單二階廣義積分器的三相數(shù)字鎖相環(huán)設(shè)計
電測與儀表(2015年6期)2015-04-09 12:01:12
凌華科技四軸伺服/步進(jìn)運動控制卡PCI-C154+
DRM/DAB/AM/FM頻率綜合器中吞吐脈沖分頻器的設(shè)計
高可靠性通信設(shè)備主備倒換軟件實現(xiàn)方法
聂荣县| 台湾省| 萝北县| 桂阳县| 于都县| 峨山| 湛江市| 郑州市| 霍林郭勒市| 洞头县| 四川省| 乌审旗| 富源县| 南皮县| 静乐县| 辉南县| 台南市| 安宁市| 潜江市| 全椒县| 安吉县| 丹东市| 读书| 石门县| 桦南县| 仪陇县| 邮箱| 武城县| 新乐市| 淮北市| 兴海县| 平舆县| 和田县| 安福县| 曲麻莱县| 星子县| 潼南县| 双流县| 英德市| 阳东县| 郯城县|