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