新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的數(shù)字積分法插補控制器設(shè)計與實現(xiàn)

基于FPGA的數(shù)字積分法插補控制器設(shè)計與實現(xiàn)

作者: 時間:2012-04-05 來源:網(wǎng)絡(luò) 收藏

摘要:為了提高伺服電機的步進精度,簡化控制器結(jié)構(gòu),采用器件并運用Verilog HDL語言設(shè)計出的,不僅采用法實現(xiàn)直線插補控制和圓弧插補控制,提高了插補速度和插補精度,而且運用多軸聯(lián)動技術(shù),實現(xiàn)輸出脈沖的均勻分配。它可接收外部處理器指令,并發(fā)出所需的脈沖到伺服電機的驅(qū)動中,從而控制伺服電機的運轉(zhuǎn),其結(jié)果證明了該控制器的正確性。這種結(jié)構(gòu)的控制器簡化了一般控制器結(jié)構(gòu),具有良好的移植性能和一定的實用價值。
關(guān)鍵詞:運動控制;;;

0 引言
數(shù)控系統(tǒng)的核心技術(shù)是運動控制技術(shù),隨著機電一體化的深入發(fā)展,運動控制技術(shù)已經(jīng)成為推動機電一體化進程的重要環(huán)節(jié),是推動新的產(chǎn)業(yè)革命的關(guān)鍵技術(shù)碼。
現(xiàn)代高速數(shù)控技術(shù)對運動控制器的速度和精度要求日益提高,與運用軟件實現(xiàn)的控制器相比較,基于設(shè)計的具有控制方便、插補速度快、精度高、通用性好、可移植性的特點,并擁有可運用硬件描述語言實現(xiàn)軟硬結(jié)合等多種優(yōu)點。為了提高伺服電機的精確度,本文設(shè)計了一個基于數(shù)字法并采用多軸聯(lián)動技術(shù)的插補控制器,該控制器可實現(xiàn)三軸的直線插補和兩軸的圓弧插補。

1 插補控制器的總體設(shè)計
該控制器的核心部分是DDA插補模塊,整個插補模塊可分成直線插補模塊和圓弧插補模塊兩部分。每個插補模塊內(nèi)都由數(shù)據(jù)緩存器、插補積分器和位置計數(shù)器3個部分組成。下面分別介紹各個模塊的設(shè)計及仿真。

本文引用地址:http://www.2s4d.com/article/190545.htm

c.JPG


插補控制器具備三軸直線插補及兩軸圓弧插補的能力,2種插補均采用數(shù)字積分法實現(xiàn)。數(shù)字積分法(DDA)具有邏輯能力強、可實現(xiàn)多軸聯(lián)動控制,且輸出脈沖均勻的特點。如圖1所示,插補控制器接收到外部處理器的控制信號和數(shù)據(jù),經(jīng)過譯碼及配置寄存器模塊的譯碼和配置后,根據(jù)需要選擇進行直線插補或圓弧插補,輸出指脈沖和方向信號。脈沖用于通過伺服電機驅(qū)動控制伺服電機的轉(zhuǎn)動,方向信號則控制伺服電機的轉(zhuǎn)動方向。

2 基于FPGA的模塊設(shè)計
該插補控制器采用Altera公司的CycloneⅢ-EP3C16Q240C8,運用Verilog HDL完成程序設(shè)計,在QuartusⅡ平臺進行編譯、綜合及下載,運用Modeisim進行程序的仿真和調(diào)試,最終完成整個控制器的設(shè)計(如圖1所示)。
2.1 譯碼及配置寄存器模塊
譯碼及配置寄存器模塊主要負(fù)責(zé)譯碼和完成各寄存器間數(shù)據(jù)的分配,并且選擇需要進行的插補方式。以下為各個輸入端口的定義和工作方式:cs為片選信號。
低電平有效,外部處理器選中插補控制器,使其進入待命狀態(tài);rest為復(fù)位信號。低電平有效,整個控制器處于復(fù)位狀態(tài),控制器內(nèi)部各個模塊做初始化操作;wr為寫信號,低電平有效,向插補控制器寫入需要完成插補的初始點坐標(biāo)和終點坐標(biāo)的數(shù)據(jù);start為插補開始信號,高電平有效,插補控制器開始進行插補;A3~A0為4位地址信號,通過地址指針的形式,將處理器數(shù)據(jù)分配給插補模塊各軸的數(shù)據(jù)緩存器。其中,高位A3具有選擇插補方式的功能;A3位為“0”時,插補控制器做三軸直線插補;A3位為“1”時,做兩軸圓弧插補;data為16位數(shù)據(jù)總線端口。
2.2 DDA插補模塊
DDA插補模塊有直線插補和圓弧插補兩部分,兩種插補方式在一次插補過程中,只能有一種處于工作狀態(tài)。直線插補能夠?qū)崿F(xiàn)3個軸的脈沖輸出,完成二維或三維的直線軌跡,而圓弧插補是實現(xiàn)兩軸的脈沖輸出,實現(xiàn)二維的圓弧軌跡。
2.2.1 直線插補模塊
當(dāng)選中直線插補模塊時,該模塊進入工作狀態(tài)。直線插補模塊由數(shù)據(jù)緩存器、插補積分器和位置計數(shù)器3個部分組成。下面分別介紹各部分的設(shè)計及其功能。
(1)數(shù)據(jù)緩存器
數(shù)據(jù)緩存器共由6個16位寄存器構(gòu)成,它們分別存儲x,y,z三個軸的初始點坐標(biāo)值及終點坐標(biāo)值。數(shù)據(jù)緩存模塊將直線插補的數(shù)據(jù)進行自動加載,以便于直線插補積分器調(diào)用模塊內(nèi)的數(shù)據(jù)。進行緩存的目的是為了保持?jǐn)?shù)據(jù)的流暢性,確保直線插補不因為數(shù)據(jù)的轉(zhuǎn)變而出現(xiàn)中斷的情況。這樣大大地提高直線插補的效率,同時減少因為時序問題所帶來的誤差。當(dāng)積分器加載緩存器中的數(shù)據(jù)完畢以后,積分器接收到start信號,積分器開始進行數(shù)字積分直線插補。當(dāng)數(shù)據(jù)緩存器接收到rest信號時,緩存器中所有數(shù)據(jù)全部做復(fù)位操作。

fpga相關(guān)文章:fpga是什么


伺服電機相關(guān)文章:伺服電機工作原理



上一頁 1 2 3 4 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉