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