基于FPGA的數(shù)字積分法插補控制器設計與實現(xiàn)
摘要:為了提高伺服電機的步進精度,簡化控制器結構,采用FPGA器件并運用Verilog HDL語言設計出的插補控制器,不僅采用數(shù)字積分法實現(xiàn)直線插補控制和圓弧插補控制,提高了插補速度和插補精度,而且運用多軸聯(lián)動技術,實現(xiàn)輸出脈沖的均勻分配。它可接收外部處理器指令,并發(fā)出所需的脈沖到伺服電機的驅動中,從而控制伺服電機的運轉,其結果證明了該控制器的正確性。這種結構的控制器簡化了一般數(shù)字控制器結構,具有良好的移植性能和一定的實用價值。
關鍵詞:運動控制;FPGA;插補控制器;數(shù)字積分法
0 引言
數(shù)控系統(tǒng)的核心技術是運動控制技術,隨著機電一體化的深入發(fā)展,運動控制技術已經成為推動機電一體化進程的重要環(huán)節(jié),是推動新的產業(yè)革命的關鍵技術碼。
現(xiàn)代高速數(shù)控技術對運動控制器的速度和精度要求日益提高,與運用軟件實現(xiàn)的控制器相比較,基于FPGA設計的插補控制器具有控制方便、插補速度快、精度高、通用性好、可移植性的特點,并擁有可運用硬件描述語言實現(xiàn)軟硬結合等多種優(yōu)點。為了提高伺服電機的精確度,本文設計了一個基于數(shù)字積分法并采用多軸聯(lián)動技術的插補控制器,該控制器可實現(xiàn)三軸的直線插補和兩軸的圓弧插補。
1 插補控制器的總體設計
該控制器的核心部分是DDA插補模塊,整個插補模塊可分成直線插補模塊和圓弧插補模塊兩部分。每個插補模塊內都由數(shù)據(jù)緩存器、插補積分器和位置計數(shù)器3個部分組成。下面分別介紹各個模塊的設計及仿真。
插補控制器具備三軸直線插補及兩軸圓弧插補的能力,2種插補均采用數(shù)字積分法實現(xiàn)。數(shù)字積分法(DDA)具有邏輯能力強、可實現(xiàn)多軸聯(lián)動控制,且輸出脈沖均勻的特點。如圖1所示,插補控制器接收到外部處理器的控制信號和數(shù)據(jù),經過譯碼及配置寄存器模塊的譯碼和配置后,根據(jù)需要選擇進行直線插補或圓弧插補,輸出指脈沖和方向信號。脈沖用于通過伺服電機驅動控制伺服電機的轉動,方向信號則控制伺服電機的轉動方向。
2 基于FPGA的模塊設計
該插補控制器采用Altera公司的CycloneⅢ-EP3C16Q240C8,運用Verilog HDL完成程序設計,在QuartusⅡ平臺進行編譯、綜合及下載,運用Modeisim進行程序的仿真和調試,最終完成整個控制器的設計(如圖1所示)。
2.1 譯碼及配置寄存器模塊
譯碼及配置寄存器模塊主要負責譯碼和完成各寄存器間數(shù)據(jù)的分配,并且選擇需要進行的插補方式。以下為各個輸入端口的定義和工作方式:cs為片選信號。
低電平有效,外部處理器選中插補控制器,使其進入待命狀態(tài);rest為復位信號。低電平有效,整個控制器處于復位狀態(tài),控制器內部各個模塊做初始化操作;wr為寫信號,低電平有效,向插補控制器寫入需要完成插補的初始點坐標和終點坐標的數(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)。直線插補能夠實現(xiàn)3個軸的脈沖輸出,完成二維或三維的直線軌跡,而圓弧插補是實現(xiàn)兩軸的脈沖輸出,實現(xiàn)二維的圓弧軌跡。
2.2.1 直線插補模塊
當選中直線插補模塊時,該模塊進入工作狀態(tài)。直線插補模塊由數(shù)據(jù)緩存器、插補積分器和位置計數(shù)器3個部分組成。下面分別介紹各部分的設計及其功能。
(1)數(shù)據(jù)緩存器
數(shù)據(jù)緩存器共由6個16位寄存器構成,它們分別存儲x,y,z三個軸的初始點坐標值及終點坐標值。數(shù)據(jù)緩存模塊將直線插補的數(shù)據(jù)進行自動加載,以便于直線插補積分器調用模塊內的數(shù)據(jù)。進行緩存的目的是為了保持數(shù)據(jù)的流暢性,確保直線插補不因為數(shù)據(jù)的轉變而出現(xiàn)中斷的情況。這樣大大地提高直線插補的效率,同時減少因為時序問題所帶來的誤差。當積分器加載緩存器中的數(shù)據(jù)完畢以后,積分器接收到start信號,積分器開始進行數(shù)字積分直線插補。當數(shù)據(jù)緩存器接收到rest信號時,緩存器中所有數(shù)據(jù)全部做復位操作。
fpga相關文章:fpga是什么
伺服電機相關文章:伺服電機工作原理
評論