亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        楊秀增,黎運(yùn)宇

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

        0 引 言

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

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

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

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

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

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

        寄存器文件單元由如下九個(gè)寄存器組成:

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

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

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

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

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

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

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

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

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

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

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

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

        終點(diǎn)判定模塊用于判定步進(jìn)電動(dòng)機(jī)是否運(yùn)動(dòng)到終點(diǎn)。插補(bǔ)前,NiosII根據(jù)本次差補(bǔ)的終點(diǎn)坐標(biāo)值和步進(jìn)電動(dòng)機(jī)的最小步長(zhǎng)的值,計(jì)算出五個(gè)步進(jìn)電動(dòng)機(jī)的步進(jìn)數(shù)總數(shù),并把這總數(shù)寫到總步進(jìn)數(shù)寄存器,插補(bǔ)開始后,終點(diǎn)判定模塊讀取總步進(jìn)數(shù)寄存器的值,并對(duì)各軸步進(jìn)脈沖的上升沿進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)的值與讀到時(shí)的總步進(jìn)數(shù)相等時(shí),表明步進(jìn)電動(dòng)機(jī)已到達(dá)終點(diǎn),用over信號(hào)通知狀態(tài)機(jī)停止本次直線插補(bǔ),本模塊的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;//終點(diǎn)結(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í),讀取數(shù)據(jù)

        else if(mcounter==mreg)

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

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

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

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

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

        2.3 Avalon接口設(shè)計(jì)

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

        表2 Avalon接口信息表

        3 軟件設(shè)計(jì)

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

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

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

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

        5 測(cè)試結(jié)果

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

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

        6 結(jié) 語

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

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

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

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

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

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

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

        猜你喜歡
        分頻器控制卡積分器
        一種基于0.18μm SiGe工藝的8GHz前置分頻器
        兼容多種運(yùn)動(dòng)控制卡的V割機(jī)數(shù)控系統(tǒng)關(guān)鍵技術(shù)*
        高頻、低相噪、雙模分頻器設(shè)計(jì)
        基于ECVT數(shù)字積分器的仿真及研究
        電子科技(2018年8期)2018-07-23 02:15:28
        基于運(yùn)動(dòng)控制卡的桁架機(jī)器人控制系統(tǒng)設(shè)計(jì)
        Rogowski線圈數(shù)字積分器的直流誤差消除方法研究
        基于單二階廣義積分器的三相數(shù)字鎖相環(huán)設(shè)計(jì)
        凌華科技四軸伺服/步進(jìn)運(yùn)動(dòng)控制卡PCI-C154+
        DRM/DAB/AM/FM頻率綜合器中吞吐脈沖分頻器的設(shè)計(jì)
        高可靠性通信設(shè)備主備倒換軟件實(shí)現(xiàn)方法
        日韩高清亚洲日韩精品一区| 三年片免费观看大全国语| 蜜桃精品人妻一区二区三区| 欧洲美熟女乱又伦av影片| 国产偷国产偷精品高清尤物| 国产精品综合一区二区三区| 国产精品免费久久久久影院 | 亚洲精品国产第一区二区| 香港aa三级久久三级| 日本爽快片18禁免费看| 国产成人无码一二三区视频| 久久福利资源国产精品999| av在线免费观看你懂的| 午夜麻豆视频在线观看| 91三级在线观看免费| 在线播放五十路熟妇| 日韩成人无码| 国产偷窥熟女精品视频| 精品无吗国产一区二区三区av| 日韩国产自拍精品在线| 在线观看一区二区三区国产| 成人免费在线亚洲视频| 69精品人人人人| 毛茸茸的中国女bbw| 國产AV天堂| 国产高清女人对白av在在线| av网站免费在线浏览| 亚洲国产精品久久久久秋霞小说| 护士人妻hd中文字幕| 久久精品这里只有精品| 亚洲国产av剧一区二区三区| 日韩亚洲在线观看视频| 国产免费三级av在线| 国产精品久久久久aaaa| 亚洲免费观看在线视频| 亚洲黄色性生活一级片| 日本办公室三级在线看| 日韩精品在线视频一二三| 国产xxx69麻豆国语对白| 蜜桃精品免费久久久久影院| 国产日产久久福利精品一区|