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

?

基于USB3.0與FPGA的多軸運(yùn)動(dòng)控制器開發(fā)*

2015-11-04 09:30:33顧定富羅福源
關(guān)鍵詞:積分器傳輸速度數(shù)據(jù)包

顧定富,羅福源

(南京航空航天大學(xué)機(jī)電學(xué)院,南京 210016)

基于USB3.0與FPGA的多軸運(yùn)動(dòng)控制器開發(fā)*

顧定富,羅福源

(南京航空航天大學(xué)機(jī)電學(xué)院,南京 210016)

USB3.0技術(shù)的出現(xiàn)使得USB串行接口不僅具有即插即用、支持熱插拔等特點(diǎn),而且提高了數(shù)據(jù)傳輸?shù)乃俾?,在此背景下,這里提出了基于USB3.0通信接口的運(yùn)動(dòng)控制器設(shè)計(jì)。文中對(duì)運(yùn)動(dòng)控制器的總體結(jié)構(gòu)進(jìn)行了設(shè)計(jì)并對(duì)主要芯片進(jìn)行選型,利用USB3.0接口高達(dá)5Gbps以及全雙工工作模式的特點(diǎn),自定義了數(shù)據(jù)差錯(cuò)控制與數(shù)據(jù)雙向傳輸?shù)男峦ㄐ艆f(xié)議??刂破鞑捎肍PGA作為主控芯片,采用SOPC的設(shè)計(jì)方法,運(yùn)用Verilog HDL語言設(shè)計(jì)出運(yùn)動(dòng)控制器的精插補(bǔ)、編碼器信號(hào)細(xì)分辨向等模塊。最后的仿真驗(yàn)證了該運(yùn)動(dòng)控制器有效性與可行性,為USB3.0產(chǎn)品的開發(fā)提供了參考。

USB3.0;精插補(bǔ)器;運(yùn)動(dòng)控制器;FPGA

0 引言

運(yùn)動(dòng)控制器是現(xiàn)代數(shù)控系統(tǒng)的核心。運(yùn)動(dòng)控制器經(jīng)歷了一個(gè)漫長(zhǎng)的發(fā)展。早先,運(yùn)動(dòng)控制器基于模擬器件實(shí)現(xiàn),隨著電力電子技術(shù)的發(fā)展,目前,基于PC的開放式運(yùn)動(dòng)控制器已經(jīng)成為數(shù)控技術(shù)發(fā)展的主要方向[1]。早期,PC與運(yùn)動(dòng)控制器之間的連接主要通過PC機(jī)的串口、并口或者ISA/PCI總線等通信接口。但是,串口、并口雖然連接簡(jiǎn)單、方便,開發(fā)成本低,但是其傳輸速度慢,不能滿足運(yùn)動(dòng)控制器的高實(shí)時(shí)性要求;PCI總線是目前主流的通信總線,其速度也能滿足實(shí)時(shí)性,但其開發(fā)難度大,成本高,而且便攜式計(jì)算機(jī)都沒有PCI插槽,所以在現(xiàn)場(chǎng)使用很不方便。USB2.0雖然也具有連接方便、簡(jiǎn)單等特點(diǎn),但隨著存儲(chǔ)數(shù)據(jù)的變大,USB2.0的速度存在很大的局限性。2008年推出的USB3.0技術(shù)很好的解決了之前通信總線使用便利性與傳輸速度的矛盾,USB3.0繼承了USB2.0的特性,比如即插即用,功耗低,連接簡(jiǎn)便,價(jià)格便宜等優(yōu)點(diǎn),此外由于USB3.0采用了新的傳輸技術(shù)[2],不僅使得傳輸速度是USB2.0的10倍,達(dá)到5Gbps(640MB/ S),而且采用了雙通道的輸模式,可以實(shí)現(xiàn)全雙工傳輸,使得它非常適合用于PC與控制器之間的數(shù)據(jù)傳輸。另一方面,隨著計(jì)算機(jī)技術(shù)與半導(dǎo)體制造工藝的發(fā)展,F(xiàn)PGA芯片的性能突飛猛進(jìn),單片F(xiàn)PGA已經(jīng)能夠獨(dú)立承擔(dān)運(yùn)動(dòng)控制系統(tǒng)的大部分信號(hào)處理與控制運(yùn)算任務(wù)。跟以往采用DSP+FPGA實(shí)現(xiàn)的運(yùn)動(dòng)控制器相比,完全基于FPGA設(shè)計(jì)的運(yùn)動(dòng)控制器具有成本低、速度快、結(jié)構(gòu)緊湊、可靠性高的優(yōu)點(diǎn)[3-4]。因此,利用USB3.0的高速傳輸與開放式,可進(jìn)一步顯著提升運(yùn)動(dòng)控制器的便攜性、實(shí)時(shí)性。

1 運(yùn)動(dòng)控制器總體結(jié)構(gòu)設(shè)計(jì)

1.1 系統(tǒng)總體結(jié)構(gòu)

設(shè)計(jì)的插補(bǔ)器采用上下位機(jī)的結(jié)構(gòu)形式,數(shù)據(jù)采樣插補(bǔ)的粗插補(bǔ)階段由上位機(jī)PC來實(shí)現(xiàn),精插補(bǔ)階段由FPGA模塊實(shí)現(xiàn),采用這種不同于傳統(tǒng)的兩級(jí)插補(bǔ)分離的設(shè)計(jì)方式,不僅充分利用了PC的資源,而且由于不再使用DSP處理器,使得下位機(jī)運(yùn)動(dòng)控制器的設(shè)計(jì)變得簡(jiǎn)單,方便,降低了開發(fā)的成本。PC與運(yùn)動(dòng)控制器的數(shù)據(jù)通信管道采用具有超速特性的USB3.0接口,粗插補(bǔ)數(shù)據(jù)通過USB3.0接口傳到運(yùn)動(dòng)控制器,由FPGA完成精插補(bǔ)并輸出驅(qū)動(dòng)脈沖。運(yùn)動(dòng)控制器硬件電路主要由USB3.0接口芯片CYUSB3014和FPGA(型號(hào)為EP3C40F484)、EEPROM(型號(hào)為24LC256)以及外圍處理電路如:位置反饋信息預(yù)處理電路、AD轉(zhuǎn)換電路、PWM模擬輸出電路、開關(guān)量I/O接口電路組成,整體結(jié)構(gòu)如圖1所示。

圖1 運(yùn)動(dòng)控制器結(jié)構(gòu)框圖

1.2 重要芯片選型分析

在調(diào)研現(xiàn)有運(yùn)動(dòng)控制器功能的基礎(chǔ)上,提出了本運(yùn)動(dòng)控制器所要求的主要功能,具體如下:

(1)具有超速的主機(jī)通信接口,實(shí)現(xiàn)PC與運(yùn)動(dòng)控制器的實(shí)時(shí)通信,確保運(yùn)動(dòng)控制器的實(shí)時(shí)性,為此選擇CYUSB3014作為通信接口。CYUSB3014具有超速的傳輸速度5Gbps以及雙通道的傳輸模式。CYUSB3014接口芯片負(fù)責(zé)所有與USB傳輸事務(wù)相關(guān)的任務(wù),對(duì)粗插補(bǔ)數(shù)據(jù)和控制指令數(shù)據(jù)進(jìn)行收發(fā),以及對(duì)數(shù)據(jù)的打包和校驗(yàn)。

(2)具有4軸脈沖信號(hào)輸出功能,實(shí)現(xiàn)4軸步進(jìn)或伺服控制,脈沖輸出可調(diào),范圍為286Hz~75MHz;4路增量式光電編碼器輸入信號(hào)接口,可接受2MHz的編碼器信號(hào);伺服控制周期為250μs,具有較高的伺服頻率,為了能實(shí)現(xiàn)以上的性能,這里選擇高性能FPGA(型號(hào)為EP3C40F484)作為主控芯片。EP3C40F484具有150MHz的主頻,內(nèi)部具有豐富的物理資源,用它獲得粗插補(bǔ)數(shù)據(jù),調(diào)用內(nèi)部實(shí)現(xiàn)的DDA精插補(bǔ)模塊[5-6]對(duì)數(shù)據(jù)精插補(bǔ),并輸出控制脈沖。

2 USB3.0通信接口設(shè)計(jì)

USB3.0接口芯片采用的是USB業(yè)界領(lǐng)頭羊Cypress公司推出的CYUSB3014,該款控制器的數(shù)據(jù)傳輸速度達(dá)到了5Gbps,傳輸速度已經(jīng)是USB2.0的10倍,其內(nèi)部集成了200MHz的ARM9的核(ARM926EJ-S)、512K字節(jié)的RAM和USB 3.0物理層[7]。USB3.0接口相比于USB2.0在物理接口方面也有很大的調(diào)整,USB主機(jī)與從機(jī)之間采用USB線纜相連接,USB3.0中定義了8根信號(hào)線,比USB2.0多了SSTX+,SSTX-,SSRX+,SSRX-四根數(shù)據(jù)線,這使得USB3.0可以工作在全雙工狀態(tài)。利用USB3.0超速以及全雙工的特性,進(jìn)行了設(shè)計(jì)。

2.1 運(yùn)動(dòng)控制數(shù)據(jù)的組織規(guī)劃

PC與運(yùn)動(dòng)控制器通信采用數(shù)據(jù)幀作為傳輸?shù)幕締挝?,幀格式如圖2所示。

圖2 數(shù)據(jù)幀格式

·SF(8位):數(shù)據(jù)幀的起始標(biāo)志,編碼為01111110。

·Addr(16位):數(shù)據(jù)幀所要存放的的位置信息。

·N(16位):表示數(shù)據(jù)幀內(nèi)包含用戶數(shù)據(jù)的數(shù)量,默認(rèn)最大傳輸65536個(gè)數(shù)據(jù)包。

·Data(4*32位):用戶數(shù)據(jù)包,包含了運(yùn)動(dòng)控制所需的各種信息。

·CRC校驗(yàn)(16位):為了防止數(shù)據(jù)傳輸過程中發(fā)生錯(cuò)誤,采用了CRC-16的差錯(cuò)檢驗(yàn),提高通信的可靠性。

·EF(8位):數(shù)據(jù)幀結(jié)束標(biāo)志,編碼為01111101。

2.2 數(shù)據(jù)傳輸差錯(cuò)檢測(cè)與控制

無論通信系統(tǒng)如何可靠,都不可能做到完美無缺,受熱噪聲和沖擊噪聲等干擾因素的影響,數(shù)據(jù)在傳輸過程中會(huì)發(fā)生錯(cuò)誤或丟失,而運(yùn)動(dòng)控制對(duì)數(shù)據(jù)的正確性要求非常高,因此,必須考慮如何發(fā)現(xiàn)和糾正信號(hào)傳輸中的差錯(cuò)。USB3.0的數(shù)據(jù)傳輸速度已經(jīng)達(dá)到5Gbps,在這樣的超速傳輸速度下,完全可以采用數(shù)據(jù)冗余的設(shè)計(jì)方法,即將PC產(chǎn)生的粗插補(bǔ)數(shù)據(jù)進(jìn)行備份式傳輸,每個(gè)數(shù)據(jù)包都將發(fā)送三份到運(yùn)動(dòng)控制器,圖3表示的是數(shù)據(jù)包組織形式,其中X B、X C的數(shù)據(jù)包作為備份的數(shù)據(jù)包跟X A的數(shù)據(jù)完成一樣(X為數(shù)據(jù)的序列號(hào)),正常情況下,控制器存取的都是X A的數(shù)據(jù)包,而如果X A的數(shù)據(jù)包出現(xiàn)錯(cuò)誤,控制器可以讀取X B或X C的數(shù)據(jù)包,不需要通知PC機(jī)進(jìn)行重新發(fā)送,所以采用此數(shù)據(jù)傳輸協(xié)議提高了數(shù)據(jù)傳輸?shù)男?,確保了運(yùn)動(dòng)控制的實(shí)時(shí)性,讀取流程圖如圖4。

圖3 數(shù)據(jù)包組織形式

圖4 數(shù)據(jù)讀取流程圖

2.3 雙向數(shù)據(jù)通道設(shè)計(jì)

USB3.0物理層結(jié)構(gòu)模型如圖 5所示。圖中SSTX+,SSTX-,SSRX+,SSRX-是USB3.0相對(duì)于USB2.0新增的四根數(shù)據(jù)線,可見USB3.0可以工作在全雙工的通信模式。利用這一特點(diǎn),通過對(duì)運(yùn)動(dòng)控制數(shù)據(jù)的分析,把運(yùn)動(dòng)控制指令與運(yùn)動(dòng)控制狀態(tài)反饋數(shù)據(jù)分別使用發(fā)送和接收兩條通信管道進(jìn)行同時(shí)傳輸,從而縮短通信時(shí)間開銷,增強(qiáng)運(yùn)動(dòng)控制器的實(shí)時(shí)性,提高數(shù)據(jù)傳輸?shù)男?。具體分配如下:

1)數(shù)據(jù)發(fā)送(SSTX+,SSTX-):主要是由PC發(fā)送到運(yùn)動(dòng)控制器的數(shù)據(jù),包括粗插補(bǔ)數(shù)據(jù),命令控制數(shù)據(jù),數(shù)字量輸出等。

2)數(shù)據(jù)接收(SSRX+,SSRX-):PC接收運(yùn)控控制器數(shù)據(jù)的主要通道,包括外部I/O輸入,編碼器數(shù)據(jù),運(yùn)動(dòng)控制器運(yùn)行狀態(tài)監(jiān)控,以及控制器內(nèi)寄存器數(shù)據(jù)的上傳等。

圖5 USB3.0物理層結(jié)構(gòu)模型

3 基于FPGA的運(yùn)動(dòng)控制模塊設(shè)計(jì)

所設(shè)計(jì)的運(yùn)動(dòng)控制器僅采用FPGA作為主控芯片,這與以往的DSP+FPGA有著本質(zhì)的區(qū)別。USB3.0提供的超速傳輸速度,可以把數(shù)據(jù)采樣插補(bǔ)的粗插補(bǔ)階段放到PC實(shí)現(xiàn),從而使得下位機(jī)不再需要浮點(diǎn)運(yùn)算,涉及到的運(yùn)算都是定點(diǎn)整數(shù),而性能優(yōu)異的FPGA(型號(hào)為EP3C40F484)即可滿足定點(diǎn)整數(shù)的運(yùn)算,運(yùn)動(dòng)控制器的各個(gè)功能都以模塊的方式集成在FPGA中。USB3.0的傳輸速度很快,當(dāng)有數(shù)據(jù)傳輸時(shí),它會(huì)很快的將數(shù)據(jù)傳給運(yùn)控控制器,但由于Windows系統(tǒng)的弱實(shí)時(shí)性[8],數(shù)據(jù)傳輸很不穩(wěn)定,影響運(yùn)動(dòng)控制器的實(shí)時(shí)性,為了解決這個(gè)問題,提出了如下兩個(gè)方法:

(1)在FPGA內(nèi)部添加一個(gè)雙端口RAM模塊作為數(shù)據(jù)緩沖區(qū),保證粗插補(bǔ)數(shù)據(jù)能夠被流暢地送到精插補(bǔ)模塊。

(2)利用FPGA內(nèi)部資源豐富以及生成的寄存器傳輸級(jí)電路具有確定的運(yùn)算時(shí)間的特點(diǎn),通過運(yùn)算單元與門電路的復(fù)制(即增加電路面積)提升電路響應(yīng)的速度,使任意的輸入在確定的時(shí)間限內(nèi)獲得預(yù)期的輸出,從而提高運(yùn)動(dòng)控制器的實(shí)時(shí)性。

FPGA的設(shè)計(jì)主要是三軸直線插補(bǔ)器的設(shè)計(jì)[9],插補(bǔ)器由數(shù)據(jù)緩存、插補(bǔ)積分器、分頻器、計(jì)數(shù)器組成。本系統(tǒng)采用Altera公司的EP3C40F484,此型號(hào)FPGA具有邏輯單元39600個(gè),RAM容量1134kbits,內(nèi)嵌乘法器126個(gè),鎖相環(huán)4個(gè),使用Verilog HDL語言進(jìn)行程序設(shè)計(jì),整個(gè)系統(tǒng)采用SOPC的設(shè)計(jì)方式,在Quartus II環(huán)境下編譯、綜合和下載,運(yùn)用Modelsim對(duì)設(shè)計(jì)好的程序進(jìn)行仿真調(diào)試,最終設(shè)計(jì)完的精插補(bǔ)器結(jié)構(gòu)如圖6。

圖6 精插補(bǔ)器原理圖

3.1 SOPC系統(tǒng)設(shè)計(jì)

FPGA內(nèi)部功能模塊的設(shè)計(jì)采用片上可編程系統(tǒng)設(shè)計(jì)的方式,在Quartus II環(huán)境下,通過SOPC Builder加載NIOS II內(nèi)核以及自定義的IP核。NIOS軟核是Altera公司推出的精簡(jiǎn)指令軟核,系統(tǒng)中的其他子模塊由NIOS處理器控制。

3.2 插補(bǔ)以及指令數(shù)據(jù)分配模塊

插補(bǔ)以及指令數(shù)據(jù)分配模塊主要負(fù)責(zé)將PC機(jī)發(fā)送過來的粗插補(bǔ)數(shù)據(jù)分配到相應(yīng)的寄存器,并且對(duì)指令進(jìn)行譯碼和選擇插補(bǔ)方式。該模塊跟Avalon總線連接,具體的信號(hào)線定義如下:

CLK:系統(tǒng)脈沖輸入,為整個(gè)插補(bǔ)器提供基準(zhǔn)脈沖。

RST:復(fù)位信號(hào)。當(dāng)該信號(hào)有效時(shí),插補(bǔ)器處于初始化狀態(tài),各寄存器進(jìn)行復(fù)位。

CS:片選信號(hào)。該信號(hào)有效時(shí),NIOS II軟核選中插補(bǔ)器,使其進(jìn)入待工作狀態(tài)。

WR:寫信號(hào)。該信號(hào)是將PC機(jī)傳來的粗插補(bǔ)數(shù)據(jù)(X/Y/Z軸起始坐標(biāo)與終止坐標(biāo))寫入數(shù)據(jù)緩存。

START:插補(bǔ)開始信號(hào)。該信號(hào)有效時(shí),插補(bǔ)器開始進(jìn)行插補(bǔ)。

A3~A0:地址信號(hào)。處理器通過地址信號(hào)將粗插補(bǔ)數(shù)據(jù)分配到各軸的數(shù)據(jù)緩存器,另外,地址線的最高位A3可以選擇直線插補(bǔ)還是圓弧插補(bǔ),A3為0時(shí),選擇直線插補(bǔ),A3為1時(shí),選擇圓弧插補(bǔ)。

Data(15:0):16位數(shù)據(jù)總線,用于傳遞粗插補(bǔ)數(shù)據(jù)。

3.3 DDA插補(bǔ)器模塊

插補(bǔ)器模塊是整個(gè)精插補(bǔ)器設(shè)計(jì)的核心,具體的工作過程為:當(dāng)數(shù)據(jù)緩存器緩存有粗插補(bǔ)數(shù)據(jù)時(shí),插補(bǔ)積分器發(fā)出申請(qǐng)數(shù)據(jù)的信號(hào),緩存器接到信號(hào)后,加載數(shù)據(jù)到插補(bǔ)積分器,等到數(shù)據(jù)加載完畢后,插補(bǔ)積分器接收到START信號(hào),積分器開始進(jìn)行插補(bǔ),并且分頻器會(huì)給出特定頻率的脈沖作為積分器的插補(bǔ)迭代脈沖,通過控制分頻器的輸出頻率來改變插補(bǔ)器輸出脈沖的頻率,而此時(shí)計(jì)數(shù)器記錄插補(bǔ)的次數(shù),當(dāng)全部完成插補(bǔ)時(shí),發(fā)出插補(bǔ)完成的信號(hào),通知積分器再次申請(qǐng)新的數(shù)據(jù),如此循環(huán),完成運(yùn)動(dòng)軌跡的插補(bǔ)。具體分以下4個(gè)部分:

(1)數(shù)據(jù)緩存器

本文設(shè)計(jì)的數(shù)據(jù)緩存器用來存儲(chǔ)X/Y/Z軸的起始坐標(biāo)和終止坐標(biāo),共6個(gè)16位寄存器組成,設(shè)計(jì)緩存器的目的是為了使積分器能夠及時(shí)的加載到粗插補(bǔ)數(shù)據(jù),使得插補(bǔ)的效率得到提高,并且避免因?yàn)椴逖a(bǔ)數(shù)據(jù)的延遲,而使插補(bǔ)出現(xiàn)中斷,甚至出現(xiàn)插補(bǔ)出錯(cuò)的情況。

(2)插補(bǔ)積分器

插補(bǔ)積分器是直線插補(bǔ)模塊的核心組成部分,本文設(shè)計(jì)的DDA直線插補(bǔ)器可以進(jìn)行三軸插補(bǔ),由三個(gè)數(shù)字積分器構(gòu)成,每個(gè)數(shù)字積分器由積分累加器和被積函數(shù)寄存器兩部分構(gòu)成,插補(bǔ)結(jié)構(gòu)原理圖如圖7。被積函數(shù)寄存器里存放X/Y/Z軸的終點(diǎn)坐標(biāo),每當(dāng)來一個(gè)插補(bǔ)迭代脈沖,被積函數(shù)寄存器的值將會(huì)和累加器里的值累加一次,結(jié)果存于累加器中,當(dāng)累積值超過216(設(shè)計(jì)的累積器為16位)時(shí),對(duì)應(yīng)的軸溢出一個(gè)增量脈沖,當(dāng)經(jīng)過M=216次累加后,插補(bǔ)器完成此次插補(bǔ)。使用此插補(bǔ)方法,在給定的時(shí)間總能夠把PC發(fā)來的粗插補(bǔ)數(shù)據(jù)插補(bǔ)完,因此,就可以在粗插補(bǔ)階段將需要插補(bǔ)的曲線段進(jìn)行速度規(guī)劃,形成粗插補(bǔ)數(shù)據(jù),交給精插補(bǔ)模塊,實(shí)現(xiàn)插補(bǔ)速度的控制。

圖7 三軸直線插補(bǔ)原理圖

(3)計(jì)數(shù)器

位置計(jì)數(shù)器存放要插補(bǔ)的脈沖次數(shù),每插補(bǔ)一次,計(jì)數(shù)器的值將會(huì)減去1,直到計(jì)數(shù)器的值為0時(shí),表示插補(bǔ)結(jié)束,此時(shí)計(jì)數(shù)器將會(huì)發(fā)出插補(bǔ)結(jié)束的信號(hào),通知積分器進(jìn)行下一次插補(bǔ)。

(4)分頻器

粗插補(bǔ)數(shù)據(jù)在進(jìn)入精插補(bǔ)之前,已經(jīng)對(duì)其進(jìn)行了左移規(guī)格化處理[10],因此每發(fā)出兩個(gè)迭代脈沖必有一個(gè)增量脈沖輸出,這樣可以通過對(duì)插補(bǔ)迭代脈沖頻率的分頻控制來實(shí)現(xiàn)增量脈沖輸出的速度,從而使DDA插補(bǔ)器的輸出具有速度可調(diào)的功能。

設(shè)計(jì)的分頻器具有對(duì)任意整數(shù)分頻的功能,采用的方法是脈沖周期剔除法[11]。對(duì)于2N分頻,可以方便地用模N的計(jì)數(shù)器與一個(gè)T觸發(fā)器(二分頻器)來簡(jiǎn)單實(shí)現(xiàn)50%占空比分頻輸出。而對(duì)于2N-1的奇數(shù)分頻,為了獲得50%占空比的輸出,采用觸發(fā)周期前移半個(gè)周期的方式,在計(jì)數(shù)器計(jì)到第N個(gè)脈沖時(shí),只計(jì)半個(gè)周期的脈沖寬度,這樣就可以得到半周期為N-0.5的時(shí)鐘信號(hào),圖8為7分頻(N=4)的示意圖。

圖8 7分頻(N=4)波形示意圖

具體是對(duì)150MHz系統(tǒng)頻率,根據(jù)分頻系數(shù)對(duì)其分頻,為了滿足步進(jìn)電機(jī)的啟動(dòng)等特性,以兩相步進(jìn)電機(jī)為例,步距角1.8°,不細(xì)分的情況下200個(gè)脈沖一轉(zhuǎn),一般設(shè)置步進(jìn)電機(jī)啟轉(zhuǎn)速設(shè)置60~200r/min,即脈沖頻率200Hz~700Hz。那么設(shè)計(jì)分頻器位寬為18位,那么迭代脈沖變化范圍為:572Hz~150MHz,根據(jù)每?jī)蓚€(gè)迭代脈沖輸出一個(gè)增量脈沖的關(guān)系,可以知道輸出脈沖的頻率變化范圍為:286Hz~75MHz。

根據(jù)設(shè)計(jì)的插補(bǔ)模塊結(jié)構(gòu),采用Verilog HDL編寫的部分代碼如下:

4 仿真與分析

為了驗(yàn)證設(shè)計(jì)的正確性,對(duì)直線插補(bǔ)模塊進(jìn)行了仿真測(cè)試。

三軸直線插補(bǔ),給定一段直線段,直線段的起點(diǎn)為(0,0,0),終點(diǎn)坐標(biāo)為(12,11,5),對(duì)此直線段進(jìn)行精插補(bǔ),插補(bǔ)的仿真波形圖如圖9所示,圖中clk為時(shí)鐘信號(hào);rst為復(fù)位信號(hào),低電平有效;start為開始插補(bǔ)信號(hào),高電平有效;x_pls、y_pls、z_pls為脈沖輸出信號(hào)。

圖9 直線插補(bǔ)仿真圖

從仿真波形圖可以看出,X軸均勻輸出12個(gè)脈沖,Y軸均勻輸出11個(gè)脈沖,Z軸均勻輸出5個(gè)脈沖,與給定的坐標(biāo)位置一致,驗(yàn)證了插補(bǔ)器設(shè)計(jì)的正確性。

5 結(jié)束語

本文研究了基于USB3.0與FPGA的多軸運(yùn)動(dòng)控制器,設(shè)計(jì)采用USB3.0作為PC與FPGA的通信管道,利用USB3.0超速的數(shù)據(jù)傳輸與全雙工的工作模式,設(shè)計(jì)了數(shù)據(jù)備份式傳輸與雙向數(shù)據(jù)通道協(xié)議,對(duì)運(yùn)動(dòng)控制器的各個(gè)模塊采用Verilog HDL語言實(shí)現(xiàn)并進(jìn)行仿真。由于當(dāng)前市面上出售的計(jì)算機(jī)已經(jīng)普遍配置了USB3.0接口,因此所設(shè)計(jì)的基于USB3.0的運(yùn)動(dòng)控制器應(yīng)用前景廣闊。仿真與實(shí)驗(yàn)表明,所設(shè)計(jì)的運(yùn)動(dòng)控制器已經(jīng)能夠正確實(shí)現(xiàn)多軸運(yùn)動(dòng)控制功能。今后將在此基礎(chǔ)上針對(duì)電火花機(jī)床的控制需求改進(jìn)電路,完善運(yùn)動(dòng)控制算法,進(jìn)一步提高控制器的性能。

[1]胡細(xì)東,游有鵬,繆群華.基于USB的高速硬件精插補(bǔ)器設(shè)計(jì)[J].微計(jì)算機(jī)信息,2005,22(62):247-249.

[2]謝榮禧.USB3.0簡(jiǎn)介與未來發(fā)展趨勢(shì).電子與電腦,2009(7):39-44.

[3]任羿.基于預(yù)計(jì)的電子設(shè)備可靠性優(yōu)化方法研究[J].電子機(jī)械工程,2004(8):19-21.

[4]黃繼海.電子元器件應(yīng)用手冊(cè)[M].北京:人民郵電出版社,2004.

[5]張偉,王黎,郭建強(qiáng),等.基于FPGA的數(shù)字積分法插補(bǔ)控制器設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2011,34(22):150-153.

[6]夏長(zhǎng)春,張建鋼,吳曉光,等.精插補(bǔ)器在FPGA中的研究與實(shí)現(xiàn)[J].武漢科技學(xué)院學(xué)報(bào),2007,20(11):16-18.

[7]劉明.基于CYUSB3014的高速實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)[J].電子測(cè)試,2013(13):8-9.

[8]王芳,王琨琦,梅雪松.基于Windows全軟件數(shù)控系統(tǒng)實(shí)時(shí)性的研究[J].西安工業(yè)大學(xué)學(xué)報(bào),2009,29(3):228-233.

[9]CHEN W,Wen Z,Xu Z,et al.Implementation of 3-axis Linear Interpolation in a FPGA-based 4-axis Motion Controller.Industrial Electronics and Applications,2008.ICIEA 2008.3rd IEEEConference on.IEEE,2008:1308-1313.

[10]王細(xì)洋.機(jī)床數(shù)控技術(shù)[M].北京:國(guó)防工業(yè)出版社,2012.

[11]汪虹,李宏.基于FPGA的等占空比任意整數(shù)分頻器的設(shè)計(jì)[J].儀器與儀表,2005(16):8-9.

(編輯 李秀敏)

Developm ent of M ulti-axis M otion Controller Based on USB3.0 and FPGA

GU Ding-fu,LUO Fu-yuan
(College of Mechanical and Electrical Engineering,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,China)

The emergence of USB3.0 technologymakes the USB serial interface not only has the characteristics such as plug and play,hot swap and so on,butalso improves the rate of data transm ission.In this situation,the design ofmotion controller based on USB3.0 communication interfaceis put forward.The overall structure of themotion controller is designed and themain chip is selected in this paper,new communication protocol of data error control and bidirectional data transmission is designed using USB3.0 interface features of 5Gbps rate and full duplex mode.The controller uses FPGA as the main control chip,adopt the design method of SOPC,using Verilog HDL language to design themoduleof fine interpolation,motion controller encoder signal subdivision.Finally,the simulation validates the effectiveness and feasibility of the motion controller,which provides a reference for the development of USB3.0 products.

USB3.0;fine interpolator;motion controller;FPGA

TH165;TG659

A

1001-2265(2015)07-0064-05 DOI:10.13462/j.cnki.mmtamt.2015.07.018

2014-10-7;

2014-11-07

國(guó)家自然科學(xué)基金資助項(xiàng)目(51205200);江蘇省自然科學(xué)基金資助項(xiàng)目(BK2012388);中央高校基本科研業(yè)務(wù)費(fèi)資助項(xiàng)目(NS2012098)

顧定富(1990-),男,江蘇泰州人,南京航空航天大學(xué)碩士研究生,研究方向?yàn)閿?shù)控技術(shù),(E-mail)gudingfu@163.com。

猜你喜歡
積分器傳輸速度數(shù)據(jù)包
SSD移動(dòng)硬盤大降價(jià),可以考慮了
SmartSniff
基于ECVT數(shù)字積分器的仿真及研究
電子科技(2018年8期)2018-07-23 02:15:28
Rogowski線圈數(shù)字積分器的直流誤差消除方法研究
基于單二階廣義積分器的三相數(shù)字鎖相環(huán)設(shè)計(jì)
基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
電網(wǎng)中無線通信技術(shù)的應(yīng)用探析
淺談提升互聯(lián)網(wǎng)信息傳輸速度技術(shù)分析
視覺注意的數(shù)據(jù)包優(yōu)先級(jí)排序策略研究
多參數(shù)控制的全頻數(shù)字積分器及其穩(wěn)定性設(shè)計(jì)
黄浦区| 渝中区| 澎湖县| 黄平县| 武汉市| 桐城市| 西青区| 龙里县| 敦化市| 巢湖市| 垫江县| 甘孜| 马边| 定边县| 乐亭县| 海伦市| 旌德县| 新邵县| 长葛市| 洛宁县| 桐乡市| 来安县| 奉化市| 静乐县| 英超| 丽江市| 安阳县| 枣强县| 武隆县| 同江市| 平山县| 古丈县| 荃湾区| 东乌珠穆沁旗| 额济纳旗| 海南省| 平乡县| 二连浩特市| 铜鼓县| 永丰县| 南召县|