




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、二 一 三 屆 畢 業(yè) 設(shè) 計(jì)基于FPGA逐點(diǎn)比較圓弧插補(bǔ)算法設(shè)計(jì)學(xué) 院:電子與控制工程學(xué)院專 業(yè):電子科學(xué)與技術(shù)姓 名:.學(xué) 號:指導(dǎo)教師:.完成時(shí)間:2013年5月二一三年五月摘 要本課題主要是研究基于VHDL實(shí)現(xiàn)數(shù)控系統(tǒng)中的逐點(diǎn)比較圓弧插補(bǔ),要求圓弧運(yùn)動過程平滑,在各象限能順利過渡,并有較小的設(shè)計(jì)誤差,能與運(yùn)動控制部分很好的集成,實(shí)現(xiàn)較高的切割頻率。本課題采用QuartusII軟件來調(diào)試程序,并進(jìn)行波形仿真。主要的工作如下:1) 理解數(shù)控系統(tǒng)中逐點(diǎn)比較圓弧插補(bǔ)算法的原理及其實(shí)現(xiàn)方法;2) 通過硬件描述語言VHDL在FPGA上實(shí)現(xiàn)上述算法;3) 完成圓弧插補(bǔ)的仿真與測試。關(guān)鍵詞:VHDL,
2、FPGA,逐點(diǎn)比較法,QuartusIIABSTRACTThis topic mainly studies based on VHDL realization of point by point comparison circular arc interpolation in nc system, the movement for arc process smooth, in each quadrant can smooth transition, and a relatively small design error, can very good integration with motio
3、n control part, realize the high frequency of cutting.This subject adopts software QuartusII to debug program and waveform simulation. The main work is as follows:1. Understand CNC system the principle of point by point comparison in circular arc interpolation algorithm and its realization method2.
4、Through the hardware description language VHDL FPGA to realize the above algorithms. 3. Finish arc interpolation of simulation and testKEY WORDS: VHDL, FPGA, point-by-point comparison, QUARTUS II 目錄摘 要IABSTRACTII第一章 緒論1121.3 FPGA的優(yōu)點(diǎn)21.4 FPGA的設(shè)計(jì)流程2第二章 設(shè)計(jì)方案選擇444第三章 逐點(diǎn)比較法原理5567778第四章 圓弧插補(bǔ)算法VHDL實(shí)現(xiàn)891111
5、12第五章 總結(jié)與展望14致謝16參考文獻(xiàn)17第一章 緒論1.1 概述逐點(diǎn)比較法的基本原理是被控對象在按要求的軌跡運(yùn)動時(shí),每走一步都要與規(guī)定的軌跡進(jìn)行比較,由此結(jié)果決定下一步移動的方向。逐點(diǎn)比較法既可以作直線插補(bǔ)又可以作圓弧插補(bǔ)。這種算法的特點(diǎn)是,運(yùn)算直觀,插補(bǔ)誤差小于一個(gè)脈沖當(dāng)量,輸出脈沖均勻,而且輸出買成速度變化小,調(diào)節(jié)方便,因此在兩坐標(biāo)數(shù)控機(jī)床中應(yīng)用較為普遍。在零件加工中,理想加工軌跡是刀具中心軌跡應(yīng)與零件輪廓形狀一致,但實(shí)際應(yīng)用時(shí)往往用一小段直線或圓弧去逼近,從而使得控制算法簡單,計(jì)算量減小。插補(bǔ)算法是確定刀具中心運(yùn)動軌跡的計(jì)算方法;插補(bǔ)計(jì)算就是對數(shù)控系統(tǒng)輸入基本數(shù)據(jù)(如直線的起點(diǎn)、終
6、點(diǎn)的坐標(biāo),圓弧的起點(diǎn)、終點(diǎn)、圓心的坐標(biāo)等)運(yùn)用一定的插補(bǔ)算法計(jì)算,計(jì)算結(jié)果可用來圖形仿真或作為刀的進(jìn)給數(shù)據(jù)。目前插補(bǔ)算法有很多種,與其它插補(bǔ)方法相比,逐點(diǎn)比較法是一種控制算法簡單、進(jìn)給速度控制方便的插補(bǔ)算法。逐點(diǎn)比較法插補(bǔ)既可以作直線插補(bǔ),又可作圓弧插補(bǔ)。本文將介紹逐點(diǎn)比較法圓弧插補(bǔ)的基本原理,并進(jìn)行相應(yīng)的仿真,使其能很好的應(yīng)用到FPGA上。 國內(nèi)外發(fā)展現(xiàn)狀目前數(shù)控系統(tǒng)所使用的插補(bǔ)器多為軟件插補(bǔ)器,軟件插補(bǔ)器雖然有很多優(yōu)點(diǎn),但軟件插補(bǔ)受計(jì)算機(jī)軟件運(yùn)算速度限制,插補(bǔ)的速度、精度等性能指標(biāo)難以滿足高速實(shí)時(shí)控制的要求,并已經(jīng)逐漸成為制約數(shù)控加工速度的瓶頸。對于超高速加工場合,隨著數(shù)控設(shè)備中關(guān)鍵功能部
7、件(直線進(jìn)給伺服單元、大功率電主軸和陶瓷軸承等)的技術(shù)突破,如果繼續(xù)采用全軟件方法來實(shí)現(xiàn)數(shù)控加工功能,其速度和加工效率將無法得到進(jìn)一步提高。在數(shù)字計(jì)算機(jī)系統(tǒng)、數(shù)控機(jī)床、數(shù)字控制系統(tǒng)、數(shù)字測量系統(tǒng)等領(lǐng)域中,F(xiàn)PGA(FieldProgrammable Gate Array現(xiàn)場可編程門陣列)技術(shù)的應(yīng)用同益廣泛。FPGA器件及其開發(fā)系統(tǒng)是開發(fā)大規(guī)模數(shù)字集成電路的新技術(shù),它將現(xiàn)代T24U邏輯集成的優(yōu)點(diǎn)和可編程器件設(shè)計(jì)靈活,制作及上市快速的長處相結(jié)合,使設(shè)計(jì)者在FPGA開發(fā)系統(tǒng)軟件的支持下,現(xiàn)場直接根據(jù)系統(tǒng)要求定義和修改其邏輯功能,使一個(gè)包含數(shù)千個(gè)邏輯門的數(shù)字系統(tǒng)設(shè)計(jì)實(shí)現(xiàn),采用FPGA技術(shù),即可幾天內(nèi)完
8、成。用FPGA技術(shù)使得電子系統(tǒng)設(shè)計(jì)發(fā)展到系統(tǒng)芯片化的新時(shí)代,F(xiàn)PGA技術(shù)為電子系統(tǒng)設(shè)計(jì)提供了新的思路和方法。開放式、可重構(gòu)是目前數(shù)控系統(tǒng)的主要發(fā)展趨勢。隨著深亞微米集成電路制造工藝的成熟,可編程邏輯器件和硬件描述語言的廣泛應(yīng)用,使個(gè)人用戶開發(fā)定制硬邏輯運(yùn)動控制功能芯片成為可能。特別是近幾年興起的基于硬件復(fù)用技術(shù)的SoC(System onChip:片上系統(tǒng))設(shè)計(jì)方法,以其快速的產(chǎn)品上市時(shí)間、良好的功能可配置性日益成為IC(集成電路)設(shè)計(jì)的重要方法。 FPGA的優(yōu)點(diǎn)FPGA芯片是特殊的ASIC芯片,它除了具有ASIC的特點(diǎn)之外,還具有以下幾個(gè)優(yōu)點(diǎn):隨著VISI(Very Large Scale
9、IC,超大規(guī)模集成電路)工藝的不斷提高單一芯片內(nèi)部可以容納上百萬個(gè)晶體管,F(xiàn)PGA芯片的規(guī)模也越來越大,其單片邏輯門數(shù)已達(dá)到上百萬門,它所能實(shí)現(xiàn)的功能也越來越強(qiáng),同時(shí)也可以實(shí)現(xiàn)系統(tǒng)集成。FPGA芯片在出廠之前都做過百分之百的測試,不需要設(shè)計(jì)人員承擔(dān)投片風(fēng)險(xiǎn)和費(fèi)用,設(shè)計(jì)人員只需在自己的實(shí)驗(yàn)室里就可以通過相關(guān)的軟硬件環(huán)境來完成芯片的最終功能設(shè)計(jì)。所以,F(xiàn)PGA的資會投入小,節(jié)省了許多潛在的花費(fèi)。用戶可以反復(fù)地編程、擦除、使用或者在外圍電路不動的情況下用不同軟件就可實(shí)現(xiàn)不同的功能。所以,用FPGA試制樣片,能以最快的速度占領(lǐng)市場。FPGA軟件包中有各種輸入工具和仿真工具,及版圖設(shè)計(jì)工具和編程器等全線
10、產(chǎn)品,電路設(shè)計(jì)人員在很短的時(shí)間內(nèi)就可完成電路的輸入、編譯、優(yōu)化、仿真,直至最后芯片的制作。當(dāng)電路有少量改動時(shí),更能顯示出FPGA的優(yōu)勢。電路設(shè)計(jì)人員使用FPGA進(jìn)行電路設(shè)計(jì)時(shí),不需要具備專門的IC(集成電路)深層次的知識,F(xiàn)PGA軟件易學(xué)易用,可以使設(shè)計(jì)人員更能集中精力進(jìn)行電路設(shè)計(jì),快速將產(chǎn)品推向市場。14 FPGA的設(shè)計(jì)流程完整的FPGA設(shè)計(jì)流程包括電路設(shè)計(jì)與輸入、功能仿真、綜合、綜合后仿真、實(shí)現(xiàn)、布線后仿真與驗(yàn)證、板級仿真驗(yàn)證與調(diào)試等主要步驟。(1)電路設(shè)計(jì)與輸入電路設(shè)計(jì)與輸入是指通過某些規(guī)范的描述方式,將工程師電路構(gòu)思輸入給EDA工具。常用的設(shè)計(jì)輸入方法有硬件描述語言(HDL)和原理圖設(shè)
11、計(jì)輸入方法等。大型工程設(shè)計(jì)時(shí),最常用的設(shè)計(jì)方法是HDL設(shè)計(jì)輸入法。特點(diǎn)是利于由頂向下設(shè)計(jì),利于模塊的劃分與復(fù)用,可移植性好,通用性好,設(shè)計(jì)不因芯片的工藝與結(jié)構(gòu)的不同而變化,更利于#ASIC的移植。波形輸入和狀態(tài)機(jī)輸入方法是兩種常用的輔助設(shè)計(jì)輸入方法。(2)功能仿真電路設(shè)計(jì)完成后,要用專用的仿真工具對設(shè)計(jì)進(jìn)行功能仿真,驗(yàn)證電路功能是否符合設(shè)計(jì)要求。功能仿真有時(shí)也被稱為前仿真。通過仿真能及時(shí)發(fā)現(xiàn)設(shè)計(jì)中的錯(cuò)誤,加快設(shè)計(jì)進(jìn)度,提高設(shè)計(jì)的可靠性。(3)綜合優(yōu)化綜合優(yōu)化(Synthesize)是指將HDL語言、原理圖等設(shè)計(jì)輸入翻譯成由與、或、非門,RAM,觸發(fā)器等基本邏輯單元組成的邏輯連接(網(wǎng)表),并根據(jù)
12、目標(biāo)與要求(約束條件)優(yōu)化所生成的邏輯連接,輸出edf年Iledn等標(biāo)準(zhǔn)格式的網(wǎng)表文件,供FPGACPLD廠家的布局布線器進(jìn)行實(shí)現(xiàn)。(4)綜合后仿真綜合完成后需要檢查綜合結(jié)果是否與原設(shè)計(jì)一致,做綜合后仿真。在仿真時(shí),把綜合生成的標(biāo)準(zhǔn)延時(shí)文件反標(biāo)注到綜合仿真模型中去,可估計(jì)門延時(shí)帶來的影響。綜合后仿真只能估計(jì)門延時(shí),不能估計(jì)線延時(shí),仿真結(jié)果與布線后的實(shí)際情況還有一定的差距。這種仿真的主要目的在于檢查綜合器的綜合結(jié)果是否與設(shè)計(jì)輸入一致。在功能仿真中介紹的仿真工具一般都支持綜合后仿真功能。(5)實(shí)現(xiàn)與布局布線在實(shí)現(xiàn)過程中最主要的過程是布局布線(PAR,PlaceAnd Route):所謂布局(Pla
13、ce)是指將邏輯網(wǎng)表中的硬件原語或者底層單元合理地適配到FPGA內(nèi)部的固有硬件結(jié)構(gòu)上,所謂布線(Route)是指根據(jù)布局的拓樸結(jié)構(gòu),利用FPGA內(nèi)部的各種連線資源,合理正確連接各個(gè)元件的過程。(6)時(shí)序仿真與驗(yàn)證將布局布線的時(shí)延信息反標(biāo)注到設(shè)計(jì)網(wǎng)表中,所進(jìn)行的仿真就叫時(shí)序仿真或布局布線后仿真,簡稱后仿真。布局布線之后生成的仿真時(shí)延文件包含的時(shí)延信息最全,不僅包含門延時(shí),還包含實(shí)際布線延時(shí),所以布線后仿真最準(zhǔn)確,能較好地反映芯片的實(shí)際工作情況。通過布局布線后仿真能檢查設(shè)計(jì)時(shí)序與FPGA實(shí)際運(yùn)行情況是否一致,確保設(shè)計(jì)的可靠性和穩(wěn)定性。布局布線后仿真的主要目的在于發(fā)現(xiàn)時(shí)序違規(guī)(TimingViola
14、tion)。在功能仿真中介紹的仿真工具一般都支持布局布線后仿真功能。(7)板級仿真與驗(yàn)證在有些高速設(shè)計(jì)情況下還需要使用第三方的板級驗(yàn)證工具進(jìn)行仿真與驗(yàn)證,如Mentor Tau、Forte Design-Timing Designer、Mentor Hyperlynx、Mentor ICX,CadenceSPECCTRAQuest、Synopsys HSPICE。這些工具通過對設(shè)計(jì)的IBIS、HSPICE等模型的仿真,能較好地分析高速設(shè)計(jì)的信號完整性、電磁干擾(EMI)等電路特性等。(8)調(diào)試與加載配置設(shè)計(jì)開發(fā)的最后步驟就是在線調(diào)試或者將生成的配置文件寫入芯片中進(jìn)行測試。任何仿真或驗(yàn)證步驟出現(xiàn)
15、問題,就需要根據(jù)錯(cuò)誤的定位返回到相應(yīng)的步驟更改或者重新設(shè)計(jì)。第二章 設(shè)計(jì)方案選擇2.1 各種方案的特點(diǎn)第一:采用逐點(diǎn)比較法插補(bǔ)。逐點(diǎn)比較法的基本原理是被控對象在按要求的軌跡運(yùn)動時(shí),每走一步都要與規(guī)定的軌跡進(jìn)行比較,由此結(jié)果決定下一步移動的方向。逐點(diǎn)比較法既可以作直線插補(bǔ)又可以作圓弧插補(bǔ)。這種算法的特點(diǎn)是,運(yùn)算直觀,插補(bǔ)誤差小于一個(gè)脈沖當(dāng)量,輸出脈沖均勻,而且輸出買成速度變化小,調(diào)節(jié)方便,因此在兩坐標(biāo)數(shù)控機(jī)床中應(yīng)用較為普遍。第二:數(shù)學(xué)積分法插補(bǔ)。又稱為微分分析法。這種插補(bǔ)方法可實(shí)現(xiàn)一次、二次、甚至高次曲線的插補(bǔ),也可以實(shí)現(xiàn)多坐標(biāo)聯(lián)動控制。只要輸入不多的幾個(gè)數(shù)據(jù),就能加工出圓弧等形狀較為復(fù)雜的輪廓
16、曲線。作直線插補(bǔ)時(shí),脈沖分配也較均勻。第三:數(shù)據(jù)采樣插補(bǔ)。數(shù)據(jù)采樣插補(bǔ)實(shí)際上是一種粗插補(bǔ)過程,它所產(chǎn)生的微小線段仍然比較大,必須進(jìn)一步對其密化(即精插補(bǔ))。粗插補(bǔ)算法比較復(fù)雜,大多用高級語言編制;精插補(bǔ)算法比較簡單,多用匯編語言或硬件插補(bǔ)器實(shí)現(xiàn)。2.2 方案選擇根據(jù)課題要求,對逆圓插補(bǔ)。根據(jù)兩種方案的比較,都是很好的方法,但由于圓是二次,采用逐點(diǎn)比較法插補(bǔ)進(jìn)行設(shè)計(jì)比較方便、簡單,所以根據(jù)各種插補(bǔ)方法的特點(diǎn),選擇用逐點(diǎn)比較法來實(shí)現(xiàn)。第三章 逐點(diǎn)比較法原理3.1 逐點(diǎn)比較法圓弧插補(bǔ)原理加工一個(gè)圓弧,很容易令人想到用加工點(diǎn)到圓心的距離與該圓弧的名義半徑相比較來反映加工偏差。設(shè)要加工圖3-1所示的第一
17、象限逆時(shí)針走向的圓弧AB,半徑為R,以圓點(diǎn)為圓心,起點(diǎn)坐標(biāo)為A(,),在xy坐標(biāo)平面第一象限中,點(diǎn)的加工偏差有以下3種情況。若加工點(diǎn)正好落在圓弧上,則下式成立,即若加工點(diǎn)落在圓弧外側(cè),則,即若加工點(diǎn)落在圓弧內(nèi)側(cè),則,即將上面各式分別改寫為下列形式,即 (在圓弧上) (在圓弧外側(cè)) (在圓弧外側(cè))取加工偏差判別式為若點(diǎn)在圓弧外側(cè)或圓弧上,則滿足的條件時(shí),向軸發(fā)出一負(fù)向運(yùn)動的進(jìn)給脈沖;若點(diǎn)在圓弧內(nèi)測,即滿足條件的條件時(shí),則向軸發(fā)出一正向運(yùn)動的進(jìn)給脈沖。為了簡化偏差判別式的運(yùn)算,仍用遞推法來推算下一步新的加工偏差。設(shè)加工點(diǎn)在圓弧外側(cè)或圓弧上,則加工偏差為故軸必須向負(fù)方向進(jìn)給一步,移動到新的加工點(diǎn),其
18、加工偏差為 (3-1)設(shè)加工點(diǎn)在圓弧的內(nèi)測,則。那么y軸須向正向進(jìn)給一步,移到新的加工點(diǎn),其加工偏差為(3-2)新的加工點(diǎn)的偏差值可以用前一點(diǎn)的偏差值遞推出來。遞推法把圓弧偏差運(yùn)算式由平方運(yùn)算化為加法和乘2運(yùn)算,而對二進(jìn)制來說,乘2運(yùn)算是容易實(shí)現(xiàn)的。3.2 圓弧插補(bǔ)的運(yùn)算過程圓弧插補(bǔ)的運(yùn)算過程與直線插補(bǔ)的過程基本一樣,不同的是,圓弧插補(bǔ)時(shí),動點(diǎn)坐標(biāo)的絕對值總是一個(gè)增大,另一個(gè)減小。如對于第一象限逆圓來說,動點(diǎn)坐標(biāo)的增量公式為 圓弧插補(bǔ)運(yùn)算每進(jìn)給一步也需要偏差判別、進(jìn)給、偏差計(jì)算、終點(diǎn)判別四個(gè)工作節(jié)拍,運(yùn)算中F寄存偏差值為;x和y分別寄存x和y動點(diǎn)的坐標(biāo)值,開始分別存放和;n寄存終點(diǎn)判別值:3.
19、3 節(jié)拍控制和運(yùn)算程序的流程圖圓弧插補(bǔ)的節(jié)拍控制:綜上所述,逐點(diǎn)比較法圓弧插補(bǔ)的全過程,每走一步都要進(jìn)行以下四個(gè)節(jié)拍,如圖所示。第一節(jié)拍偏差判別:判斷道具當(dāng)前位置相對于給定的輪廓的偏差情況,以此決定道具移動的方向;第二節(jié)拍進(jìn)給:根據(jù)偏差判斷結(jié)果,控制道具相對于工件輪廓進(jìn)給一步,即向給定的輪廓靠攏,減小偏差;第三節(jié)拍偏差計(jì)算:由于道具進(jìn)給已經(jīng)改變了位置,因此應(yīng)計(jì)算出道具當(dāng)前位置的新偏差,為下次判別做準(zhǔn)備;第4節(jié) 拍終點(diǎn)判別:判別刀具是否已到達(dá)被加工輪廓的終點(diǎn)。若已經(jīng)到達(dá)終點(diǎn),則停止插補(bǔ);若還未到達(dá)終點(diǎn)則繼續(xù)插補(bǔ)。如此不斷重復(fù)上述四個(gè)節(jié)拍就可以加工出所要加工的輪廓。 圓弧插補(bǔ)的象限處理與坐標(biāo)交換.
20、1圓弧插補(bǔ)的象限處理上面僅討論了第一象限的逆圓弧插補(bǔ),實(shí)際上圓弧所在的象限不同,順逆不同,則插補(bǔ)公式和進(jìn)給方向均不同。逆圓插補(bǔ)有四種情況,如右圖所示現(xiàn)將逆圓弧插補(bǔ)的四種情況的偏差計(jì)算及進(jìn)給方向列于表3-1中,其中R表示圓弧,N表示逆時(shí)針,四個(gè)象限分別用數(shù)字1、2、3、4標(biāo)注,例如NR1表示第一象限逆圓。表3-1 xy平面內(nèi)逆圓插補(bǔ)的進(jìn)給方向與偏差計(jì)算線型偏差偏差計(jì)算進(jìn)給方向與坐標(biāo)NR1FF+2x+1xx+1NR1NR2FF-2x+1xx-1NR2NR3FF+2y+1yy+1NR3NR4FF-2y+1yyx-1NR4所謂圓弧自動過象限,是指圓弧的起點(diǎn)和終點(diǎn)不在同一象限內(nèi),如圖3-4所示。為實(shí)現(xiàn)一
21、個(gè)程序段的完整功能,需設(shè)置圓弧自動過象限功能。要完成過象限的功能,首先應(yīng)判別何時(shí)過象限。過象限有一顯著特點(diǎn),就是過象限時(shí)刻正好是圓弧與坐標(biāo)軸相交的時(shí)刻,因此在兩個(gè)坐標(biāo)值中必有一個(gè)為零,判斷是否過象限只要檢查是否有坐標(biāo)值為零即可。過象限后,圓弧線型也改變了,但過象限時(shí)象限的轉(zhuǎn)換是有一定規(guī)律的。當(dāng)圓弧起點(diǎn)在象限時(shí),逆時(shí)針圓弧過象限后轉(zhuǎn)換順序NR1NR2NR3NR4NR1,每過一次象限,象限順序號加1,當(dāng)從第四象限向第一象限過象限時(shí),象限順序號從4變?yōu)?。3-4圓弧過象限第四章 圓弧插補(bǔ)算法VHDL實(shí)現(xiàn)逐點(diǎn)比較法第象限圓插補(bǔ)計(jì)算流程圖如圖所示:圖 逐點(diǎn)比較法第象限圓插補(bǔ)計(jì)算流程圖4.1 圓弧插補(bǔ)邏輯
22、狀態(tài)在VHDL脈沖輸出真值表4-1CLKFCPXCPYclkevent and clk=0F=0有脈沖無脈沖clkevent and clk=0F=0否觸發(fā)P1進(jìn)程,判斷象限圖圓弧插補(bǔ)狀態(tài)圖程序中,p1:process(g,clck)為進(jìn)程語句,clk為敏感變信號,敏感信號有事件發(fā)生時(shí),進(jìn)程中的順序語句都會按照他們出現(xiàn)的順序執(zhí)行。程序中我設(shè)置了clk時(shí)鐘輸入口,還設(shè)置了變量clck,clk經(jīng)分頻處理后賦值給clck。DIR:=0時(shí)表示為逆圓,DIR:=1時(shí)則表示為順圓。clckevent and clck=1表pul上升沿,EVENT是信號預(yù)定義屬性,表示有事件發(fā)生,clckevent and
23、 clck=1為clck發(fā)生變化且clck=1,從而實(shí)現(xiàn)clck的上升沿,clck為上升沿有效。這里定義變量xcp,ycp分別表示X軸和Y軸的方向進(jìn)給,分別對應(yīng)cpx,cpy。其中cpx代表X軸方向進(jìn)給,cpy代表Y軸方向進(jìn)給。F是整型數(shù),代表偏差函數(shù)寄存器,用來存放偏差值,當(dāng)F0時(shí),(1)DIR:=0時(shí)為逆圓計(jì)算公式,-X方向進(jìn)給一個(gè)脈沖,(2)DIR:=1時(shí)為順圓計(jì)算公式,-Y方向進(jìn)給一個(gè)方向;當(dāng)F0時(shí),(1)DIR:=0時(shí)為逆圓計(jì)算公式,+Y方向進(jìn)給一個(gè)方向(2)DIR:=1時(shí)為順圓計(jì)算公式,+X方向進(jìn)給一個(gè)脈沖。r、s代表的是動態(tài)的X,Y坐標(biāo),也是整型數(shù),主要用來存放插補(bǔ)時(shí)插補(bǔ)點(diǎn)的坐標(biāo)
24、,動點(diǎn)坐標(biāo)是變化的,要不斷修正坐標(biāo)值并存入寄存器中。p2進(jìn)程程序是將clk分頻的程序,用于消除毛刺。以上程序插補(bǔ)算法是根據(jù)逐點(diǎn)比較法的原理來設(shè)計(jì),圓弧插補(bǔ)分為四個(gè)象限通過觀察,逐點(diǎn)比較法四象限的插補(bǔ)之間具有共同點(diǎn)。其它三個(gè)象限都可以和第一象限聯(lián)系起來,所以在設(shè)計(jì)四象限圓弧是可以參照第一象限圓弧的插補(bǔ)算法。程序增加了一個(gè)中間常量,用來存放中間CPU送入的直線終點(diǎn)坐標(biāo)值,再通過判別CPU送入的坐標(biāo)的象限,來修正坐標(biāo),把它對應(yīng)到第一象限中進(jìn)行插補(bǔ)運(yùn)算,再輸出脈沖。 圓弧插補(bǔ)方向進(jìn)給表4-2 四象限圓弧插補(bǔ)偏差計(jì)算與進(jìn)給方向線型F0F0偏差計(jì)算坐標(biāo)進(jìn)給偏差計(jì)算坐標(biāo)進(jìn)給SR1F=F-2|Y|+1|Y|=
25、|Y|-1-YF=F+2|X|+1|X|=|X|+1+XNR2-Y-XSR3+Y-XNR4+Y+XNR1F=F-2|X|+1|X|=|X|-1-XF=F+2|Y|+1|Y|=|Y|+1+YSR2+X+YNR3+X-YSR4-X-Y圓弧插補(bǔ)VHDL仿真圖4.3 第一象限逆圓弧插補(bǔ)VHDL仿真VHDL程序編寫完成后,對其進(jìn)行編譯,將文件置頂后選擇“Start Compilation”,編譯無誤后進(jìn)行波形仿真,仿真前要先建立仿真波形。1) 在File菜單中選擇“New”選項(xiàng),然后選擇“Vector Waveform File”,在“Name”下右擊選擇“Insert Node.”,再按“Node F
26、inder”,找到需要的輸入輸出量后,選擇向右箭頭,單擊“List”生成仿真窗口。2) 從Edit菜單中選擇“End Time”,設(shè)置欲仿真的時(shí)間長度。3) 在編輯波形窗口,根據(jù)需要來編輯波形,對信號進(jìn)行賦值。4) 保存在相應(yīng)文件夾后,點(diǎn)擊“Start Simulation”仿真開始。當(dāng)g脈沖出現(xiàn)第一個(gè)上升沿時(shí),程序初始化首先修改寫入的坐標(biāo)值,都取絕對值,對應(yīng)到第一象限上來,計(jì)算插補(bǔ)總步數(shù)。當(dāng)clk時(shí)鐘信號上升沿來時(shí),觸發(fā)p3進(jìn)程,將clk信號分頻,引入變量pul來觸發(fā)p2進(jìn)程,判斷插補(bǔ)是否結(jié)束,判斷num是否等于總插補(bǔ)步數(shù),如果不相等則進(jìn)行插補(bǔ)運(yùn)算,先修改偏差函數(shù),輸出插補(bǔ)脈沖,以此類推得出
27、插補(bǔ)波形。以圖4.3為例,插補(bǔ)起點(diǎn)坐標(biāo)(8,6),插補(bǔ)終點(diǎn)坐標(biāo)(6,8),XS表示起點(diǎn)X軸坐標(biāo),YS表示起點(diǎn)Y軸坐標(biāo),XE表示終點(diǎn)X軸坐標(biāo),YE表示終點(diǎn)Y軸坐標(biāo),首先F=0,X方向進(jìn)給一個(gè)脈沖,num加一,修正F,當(dāng)下一個(gè)clk上升沿到來時(shí)F0,Y方向進(jìn)給一個(gè)脈沖,以此類推,圓弧插補(bǔ)總共插補(bǔ)了4步,結(jié)果符合理論的結(jié)果。5.5 四象限圓弧插補(bǔ)VHDL程序編寫完成后,對其進(jìn)行編譯,將文件置頂后選擇“Start Compilation”,編譯無誤后進(jìn)行波形仿真,仿真前要先建立仿真波形。1) 在File菜單中選擇“New”選項(xiàng),然后選擇“Vector Waveform File”,在“Name”下右擊
28、選擇“Insert Node.”,再按“Node Finder”,找到需要的輸入輸出量后,選擇向右箭頭,單擊“List”生成仿真窗口。2) 從Edit菜單中選擇“End Time”,設(shè)置欲仿真的時(shí)間長度。3) 在編輯波形窗口,根據(jù)需要來編輯波形,對信號進(jìn)行賦值。4) 保存在相應(yīng)文件夾后,點(diǎn)擊“Start Simulation”仿真開始。 第一象限順圓弧插補(bǔ)VHDL仿真圖第第三象限逆圓弧插補(bǔ)VHDL仿真圖 第三象限順圓弧插補(bǔ)VHDL仿真第五章總結(jié)與展望本課題通過理解數(shù)控逐點(diǎn)比較圓弧插補(bǔ)的原理及實(shí)現(xiàn)方法,然后再通過硬件描述語言VHDL在FPGA上實(shí)現(xiàn)上述算法,完成仿真與測試。在FPGA平臺上用逐點(diǎn)
29、比較法來描述了圓弧的插補(bǔ)。在做此課題的過程中,對VHDL語言和數(shù)控的圓弧插補(bǔ)等知識有了進(jìn)一步的了解和運(yùn)用。但是剛開始時(shí),卻是對此了解不多。通過這次畢業(yè)設(shè)計(jì),有了以往在上課中沒有的鍛煉機(jī)會,比如自己調(diào)研,有不懂的都要向老師和組長及時(shí)請教,這是大學(xué)里為數(shù)不多的。逐點(diǎn)比較法具有鮮明的特點(diǎn),但是缺點(diǎn)也是一目了然。別的同學(xué)因此用了數(shù)據(jù)采樣法,在討論的過程中發(fā)現(xiàn)了自身方法的優(yōu)劣。在仿真調(diào)試的過程中,軟件仿真圖中總是會出現(xiàn)毛刺現(xiàn)象,經(jīng)過探究了解到這是由于賦值過程的延時(shí),這反映了硬件系統(tǒng)的重要特性,說明硬件系統(tǒng)并不是立即發(fā)生的,它發(fā)生在一個(gè)進(jìn)程結(jié)束時(shí)。由于在運(yùn)行程序時(shí)存在延遲,造成在下一個(gè)時(shí)鐘脈沖來時(shí)中間變量
30、狀態(tài)還保持原來的狀態(tài),所以造成了毛刺現(xiàn)象。為了解決這個(gè)問題,引入pul變量,clk時(shí)鐘信號經(jīng)過p3進(jìn)程處理后時(shí)鐘的頻率縮小對原來的一半,再將pul應(yīng)用到p2進(jìn)程中來,進(jìn)行插補(bǔ)運(yùn)算。在未處理前存在明顯的毛刺,在芯片輸出插補(bǔ)脈沖是會造成干擾,影響插補(bǔ)精度,分頻處理能有效的解決這個(gè)問題。綜上所述,盡管還有許多不盡人意的地方,但是逐點(diǎn)比較圓弧插補(bǔ)算法任然取得了一些成果,而且整個(gè)的研究仍然在繼續(xù)和進(jìn)一步深入,相信隨著科技的進(jìn)一步發(fā)展,我們還會有更加完備的算法來解決數(shù)控中的各種進(jìn)給問題。致謝本論文是在導(dǎo)師溫利民老師的細(xì)心指導(dǎo)下完成的,至此論文完成之際,對溫老師致以深深的感謝。溫老師常識淵博、治學(xué)嚴(yán)謹(jǐn),對研
31、究一絲不茍、對學(xué)生高度負(fù)責(zé)的態(tài)度,深深地影響著我的學(xué)習(xí)和生活,將使我受益終生,這也使我的論文質(zhì)量得到保證,同時(shí)使得我能夠及時(shí)的完成此論文。感謝溫利民老師在整個(gè)畢業(yè)設(shè)計(jì)中給予的我莫大的支持。整個(gè)論文的寫作過程中,溫老師耐心地指導(dǎo)我,幫助我解決遇到的困難;在軟件設(shè)計(jì)的過程中,溫老師在經(jīng)濟(jì)上給予了很大的支持。感謝我的父母在生活和經(jīng)濟(jì)上的關(guān)心和幫助,感謝朋友們多年來的關(guān)心和鼓勵。感謝國家自然科學(xué)基金(編號:60806043)、中國博士后科學(xué)基金 (編號:20090461278)和中央高?;究蒲袠I(yè)務(wù)費(fèi)專項(xiàng)基金 (編號:CHD2009JC025)對本課題和論文的大力支持,感謝專家教授們對本論文的評審。參
32、考文獻(xiàn)1 改進(jìn)逐點(diǎn)比較法圓弧插補(bǔ)的研究與仿真_唐慧鋒2006 年第22 卷第5-3 期2 基于FPGA的數(shù)控?cái)?shù)字積分法圓弧插補(bǔ)器的設(shè)計(jì)與實(shí)現(xiàn)_周保廷2005,27(5):16183 基于FPGA的數(shù)控逐點(diǎn)比較法直線插補(bǔ)數(shù)字系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)( 2001) 06- 0045- 054 基于FPGA的數(shù)字積分法圓弧插補(bǔ)器的設(shè)計(jì)與實(shí)現(xiàn)_陳黎融( 2008) 02) 0058) 035 基于FPGA的硬圓弧插補(bǔ)器設(shè)計(jì)_秦興( 2002) 5- 104- 26 基于FPGA技術(shù)的數(shù)控插補(bǔ)器算法改進(jìn)研究7 基于PC的逐點(diǎn)比較法插補(bǔ)控制程序設(shè)計(jì)8 逐點(diǎn)比較法第一象限直線圓弧插補(bǔ)9 逐點(diǎn)比較法順圓弧插補(bǔ)10 逐點(diǎn)
33、比較算法圓弧插補(bǔ)程序清單LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY PUL IS PORT(G : IN STD_LOGIC; XE : IN Integer RANGE -32768 TO 32767; YE : IN Integer RANGE -32768 TO 32767; CLK : IN STD_LOGIC; XDIR : OUT STD_LOGIC; YDIR : OUT STD_LOGIC; XP : OUT STD_LOGIC; YP : OUT STD_LOG
34、IC);END PUL;ARCHITECTURE sample OF PUL IS SIGNAL PUL:STD_LOGIC; SIGNAL XCP:STD_LOGIC; SIGNAL YCP:STD_LOGIC; SIGNAL XXE: Integer RANGE 0 TO 65535; SIGNAL YYE: Integer RANGE 0 TO 65535; BEGIN XP=XCP AND CLK; YP=YCP AND CLK; P1:PROCESS(XXE,YYE) VARIABLE XXDIR: STD_LOGIC; VARIABLE YYDIR: STD_LOGIC; VARI
35、ABLE TXE: Integer RANGE 0 TO 65535; VARIABLE TYE: Integer RANGE 0 TO 65535; BEGIN IF XE0 THEN XXDIR:=1; TXE:=-XE; ELSE XXDIR:=0; TXE:=XE; END IF; IF YE0 THEN YYDIR:=1; TYE:=-YE; ELSE YYDIR:=0; TYE:=YE; END IF; XDIR=XXDIR; YDIR=YYDIR; XXE=TXE; YYE=TYE; END PROCESS P1; P2:PROCESS(G,PUL) VARIABLE xx:In
36、teger RANGE 0 TO 65535; VARIABLE yy:Integer RANGE 0 TO 65535; VARIABLE F:Integer; VARIABLE NUM:Integer; VARIABLE YG:STD_LOGIC; VARIABLE XG:STD_LOGIC; BEGIN IF G=1 THEN XX:=XXE; YY:=YYE; F:=0; NUM:=abs(XE)+abs(YE); elsIF PULEVENT AND PUL=1 THEN IF NUM/=0 then IF(F0)then yy:=yy-1; YG:=1; XG:=0; F:=F+X
37、XE; else xx:=xx-1; YG:=0; XG:=1; F:=F-YYE; END IF; NUM:=NUM-1; ELSE YG:=0; XG:=0; END IF; END IF; XCP=XG AND PUL; YCP=YG AND PUL; END PROCESS P2; P3:PROCESS(CLK) VARIABLE CP:STD_LOGIC; BEGIN if CLKEVENT AND CLK=0 THEN CP:=NOT(CP); END IF; PUL=CP; END PROCESS P3;END sample;LIBRARY IEEE;USE IEEE.STD_L
38、OGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY APUL IS PORT(G : IN STD_LOGIC; XS : IN Integer RANGE -32768 TO 32767; YS : IN Integer RANGE -32768 TO 32767; XE : IN Integer RANGE -32768 TO 32767; YE : IN Integer RANGE -32768 TO 32767; CLK : IN STD_LOGIC; XDIR : OUT STD_LOGIC; YDIR : OUT STD_LOG
39、IC; XP : OUT STD_LOGIC; YP : OUT STD_LOGIC);END APUL;ARCHITECTURE sample OF APUL IS SIGNAL XCP:STD_LOGIC; SIGNAL YCP:STD_LOGIC; SIGNAL CLCK:STD_LOGIC; SIGNAL XXS: Integer RANGE 0 TO 65535; SIGNAL YYS: Integer RANGE 0 TO 65535; SIGNAL XXE: Integer RANGE 0 TO 65535; SIGNAL YYE: Integer RANGE 0 TO 65535; BEGIN XP=XCP AND CLK; YPXS THEN XXDIR:=0; ELSE XXDIR:=1; END IF; IF YEYS THEN YYDIR:=0; ELSE YYDIR:=1; END IF; IF XE0 THEN TXE:=-XE; ELSE TXE:=XE; END IF; IF XS0 THEN TXS:=-XS; ELSE TXS:=XS; END IF; IF YE0 THEN TYE:=-YE; ELSE TYE:=YE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 嵌入式系統(tǒng)架構(gòu)中的重要性試題及答案
- 黨辦預(yù)算業(yè)務(wù)管理制度
- 公司集團(tuán)結(jié)算管理制度
- 售電公司財(cái)務(wù)管理制度
- 醫(yī)用氧氣灌裝管理制度
- 工廠輔料預(yù)算管理制度
- 數(shù)據(jù)庫設(shè)計(jì)案例試題及答案分享
- 數(shù)學(xué) 第八章 實(shí)數(shù)復(fù)習(xí)練習(xí)題2024-2025學(xué)年人教版數(shù)學(xué)七年級下冊
- 行政組織理論的考點(diǎn)試題及答案
- 大學(xué)班級績效管理制度
- 休閑會所轉(zhuǎn)讓合同范本
- 骨科專業(yè)疾病臨床診療規(guī)范2025年版
- 上海市徐匯區(qū)2023-2024學(xué)年八年級下學(xué)期期末語文試題(解析版)
- 2025雅安事業(yè)單位筆試真題
- 2024年7月貴州高中學(xué)業(yè)水平合格考生物試卷真題(含答案詳解)
- 單位空調(diào)維修協(xié)議書
- 端午節(jié)文化傳承課件
- 2025-2030年少兒藝術(shù)培訓(xùn)行業(yè)發(fā)展分析及前景趨勢與投資研究報(bào)告
- 2025AI智算中心基礎(chǔ)設(shè)施方案白皮書
- 兒童輪狀病毒胃腸炎免疫預(yù)防專家共識(2024年版)解讀
- 花卉栽培高級工復(fù)習(xí)考試題庫(含答案)
評論
0/150
提交評論