本發(fā)明涉及一種基于fpga的多軸運(yùn)動(dòng)控制系統(tǒng),屬于運(yùn)動(dòng)控制技術(shù)領(lǐng)域。
背景技術(shù):
運(yùn)動(dòng)控制技術(shù)是對(duì)機(jī)械運(yùn)動(dòng)部件的位置、速度等參數(shù)進(jìn)行實(shí)時(shí)控制管理,使其按照預(yù)定的運(yùn)動(dòng)軌跡和運(yùn)動(dòng)參數(shù)進(jìn)行運(yùn)動(dòng)的技術(shù)。主要是通過(guò)對(duì)電機(jī)驅(qū)動(dòng)器的控制以達(dá)到對(duì)機(jī)械運(yùn)動(dòng)的位置、速度、加速度的精確控制,運(yùn)動(dòng)控制器以其精準(zhǔn)的軌跡控制能力使其在航天、機(jī)床、機(jī)器人、軍事得已廣泛的應(yīng)用。通常伺服電機(jī)和步進(jìn)電機(jī)的驅(qū)動(dòng)器采用總線控制或者脈沖和方向控制??偩€型運(yùn)動(dòng)控制器輸出信號(hào)是指令和參數(shù),而采用脈沖和方向的控制方式,脈沖的數(shù)量對(duì)應(yīng)運(yùn)動(dòng)控制的位置,脈沖頻率對(duì)應(yīng)運(yùn)動(dòng)控制的速度,控制精度高,靈活性強(qiáng)。近年來(lái),多軸電機(jī)同步控制技術(shù)在高速高精度機(jī)械控制系統(tǒng)中得到廣泛應(yīng)用,控制精度及同步性問(wèn)題普遍存在于控制系統(tǒng)中。以上問(wèn)題是解決高精度多軸同步運(yùn)動(dòng)控制的核心,也是運(yùn)動(dòng)控制發(fā)展的趨勢(shì)。
fpga(現(xiàn)場(chǎng)可編程門(mén)陣列)以其較高的精度和較快的速度,在運(yùn)動(dòng)控制中得已廣泛應(yīng)用。fpga固有的靈活性、并行性、集成性使得它越來(lái)越受重視,此外fpga可以集成各種通訊接口,適用于各種通信協(xié)議。隨著生產(chǎn)工藝的提高,fpga的規(guī)模不斷地?cái)U(kuò)大,成本逐步降低,使用者可以在單片的fpga內(nèi)實(shí)現(xiàn)各種邏輯電路。以fpga作為運(yùn)動(dòng)控制的核心處理器來(lái)實(shí)現(xiàn)高精度多軸同步運(yùn)動(dòng)控制器已然成為數(shù)控領(lǐng)域的主流趨勢(shì)。
目前市場(chǎng)存在的控制器,處理速度慢,精度不高,不可重復(fù)編程,擴(kuò)展性差,通用性不好等缺點(diǎn)。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種基于fpga的多軸運(yùn)動(dòng)控制系統(tǒng),其目的是:(1)本發(fā)明可以通過(guò)輸出脈沖控制多達(dá)8個(gè)電機(jī)軸運(yùn)動(dòng),電路設(shè)計(jì)不僅可以對(duì)各個(gè)單電機(jī)獨(dú)立控制,還可以對(duì)多電機(jī)進(jìn)行同步控制,提高聯(lián)動(dòng)精度。(2)電路設(shè)計(jì)采用arm與fpga結(jié)合的方案,利用plc控制器的優(yōu)點(diǎn)將運(yùn)動(dòng)控制技術(shù)與plc控制技術(shù)相結(jié)合,設(shè)計(jì)出一款控制精度高、速度快、編程方便、通用性好、低成本的運(yùn)動(dòng)控制器。(3)將運(yùn)動(dòng)控制功能集成到所述fpga中,根據(jù)現(xiàn)場(chǎng)功能需求,可以對(duì)fpga進(jìn)行重復(fù)編程,而不需要更改其他硬件或軟件配置,開(kāi)發(fā)周期縮短,降低了運(yùn)動(dòng)控制器的成本。(4)利用fpga外圍豐富的io資源,作為運(yùn)動(dòng)控制器模塊的輸入輸出的擴(kuò)展io口,大大的增加了運(yùn)動(dòng)控制器對(duì)數(shù)字量信號(hào)的控制能力。(5)采用arm的fsmc來(lái)控制fpga的數(shù)據(jù)交互,其中將fpga作為sram管理,接口模塊在fpga內(nèi)部設(shè)計(jì),不僅提高的數(shù)據(jù)交互的實(shí)時(shí)性還節(jié)省了解接口資源使用。(6)在fpga底層實(shí)現(xiàn)運(yùn)動(dòng)控制大量的數(shù)據(jù)處理,實(shí)現(xiàn)各類(lèi)型脈沖的輸出,以達(dá)到對(duì)各類(lèi)伺服電機(jī)的控制,使得所述的運(yùn)動(dòng)控制設(shè)計(jì)適用于任意的工業(yè)現(xiàn)場(chǎng),打破了專(zhuān)用的壟斷,降低了開(kāi)發(fā)成本。(7)可以對(duì)外部信號(hào)進(jìn)行中斷處理、測(cè)頻計(jì)數(shù)處理,且普通數(shù)字信號(hào)輸入多達(dá)15路,高速數(shù)字信號(hào)輸入多達(dá)8路,完成對(duì)整個(gè)運(yùn)功控制系統(tǒng)的反饋檢測(cè),保證運(yùn)動(dòng)控制系統(tǒng)的高精度和穩(wěn)定性。
為了實(shí)現(xiàn)上述發(fā)明目的,解決己有技術(shù)中存在的問(wèn)題,本發(fā)明采取的技術(shù)方案是:一種基于fpga的多軸運(yùn)動(dòng)控制系統(tǒng),包括電源、晶振、jtag電路、arm芯片、fpga芯片、15路di輸入電路、8路hdi輸入電路及16路hdo輸出電路,所述的15路di輸入電路和8路hdi輸入電路,分別包括輸入保護(hù)電路并與其依次相連的限流濾波電路及光耦隔離電路,所述16路hdo輸出電路,包括輸出保護(hù)電路并與其依次相連的輸出驅(qū)動(dòng)電路及光耦隔離電路,所述光耦隔離電路,用于避免外界的干擾,其中15路di輸入電路使用普通光耦隔離,8路hdi輸入電路和16路hdo輸出電路使用高速光耦隔離,限流濾波電路,用于避免信號(hào)的毛刺干擾,所述光耦隔離電路分別與fpga芯片相連,用于運(yùn)動(dòng)控制信號(hào)的處理,所述jtag電路分別與fpga芯片及arm芯片相連,jtag電路用于控制器程序下載和調(diào)試,arm芯片進(jìn)行運(yùn)動(dòng)控制數(shù)據(jù)的運(yùn)算和配置,通過(guò)fsmc通信接口與fpga芯片通信,在fpga芯片內(nèi)部系統(tǒng)執(zhí)行相應(yīng)的功能,所述電源分別與晶振、arm芯片及fpga芯片相連,晶振還與fpga芯片相連,為fpga芯片提供時(shí)鐘,在fpga內(nèi)部將時(shí)鐘進(jìn)行分頻處理,分別為外部的arm芯片和以太網(wǎng)提供時(shí)鐘;所述fpga芯片包括時(shí)鐘模塊、通信接口模塊、中斷模塊、計(jì)數(shù)測(cè)頻模塊、數(shù)據(jù)緩存控制模塊、pls模塊、脈沖輸出模塊、信號(hào)輸出選擇模塊、使能位控制模塊、使能位選擇模塊及di濾波處理模塊和hdi濾波處理模塊,其中,通信接口模塊與數(shù)據(jù)緩存控制模塊相連,通信接口模塊用于arm芯片與fpga芯片的數(shù)據(jù)交互,數(shù)據(jù)緩存控制模塊用于數(shù)據(jù)緩存,并將相應(yīng)的數(shù)據(jù)配置到各個(gè)子模塊端口,執(zhí)行相應(yīng)的功能,所述di濾波處理模塊和hdi濾波處理模塊分別通過(guò)中斷模塊與數(shù)據(jù)緩存控制模塊相連,用于將15路di信號(hào)、8路hdi信號(hào)通過(guò)di濾波處理模塊和hdi濾波處理模塊再次濾波后得到的15路di信號(hào)、8路hdi信號(hào)通過(guò)中斷模塊后得到的15路di中斷信號(hào)、8路hdi中斷信號(hào)直接輸出到arm芯片,得到的中斷通道值分別傳送至數(shù)據(jù)緩存控制模塊,所述hdi濾波處理模塊還通過(guò)計(jì)數(shù)測(cè)頻模塊與數(shù)據(jù)緩存控制模塊相連,用于將8路hdi信號(hào)通過(guò)hdi濾波處理模塊再次濾波后得到的8路hdi信號(hào)通過(guò)計(jì)數(shù)測(cè)頻模塊進(jìn)行測(cè)頻計(jì)數(shù),并將計(jì)數(shù)測(cè)頻數(shù)據(jù)實(shí)時(shí)傳送至數(shù)據(jù)緩存控制模塊;所述di濾波處理模塊和hdi濾波處理模塊分別與數(shù)據(jù)緩存控制模塊直接相連,在沒(méi)有中斷時(shí),濾波后的信號(hào)直接輸出到數(shù)據(jù)緩存控制模塊;所述數(shù)據(jù)緩存控制模塊通過(guò)使能位控制模塊、使能位選擇模塊、脈沖輸出模塊與信號(hào)輸出選擇模塊依次相連,其中,所述使能位選擇模塊,對(duì)脈沖輸出模塊進(jìn)行選擇,將脈沖輸出模塊綁定到固定的使能位,然后通過(guò)配置使能位控制模塊,使能信號(hào)經(jīng)過(guò)使能位選擇模塊對(duì)所選擇的脈沖輸出模塊進(jìn)行使能,通過(guò)使能位選擇模塊及使能位控制模塊聯(lián)合使用實(shí)現(xiàn)單獨(dú)控制電機(jī)軸和多電機(jī)軸的同步聯(lián)動(dòng);所述脈沖輸出模塊,采用fifo作為數(shù)據(jù)緩存機(jī)制,同時(shí)對(duì)8個(gè)電機(jī)軸運(yùn)動(dòng)進(jìn)行控制;所述信號(hào)輸出選擇模塊通過(guò)pls模塊與數(shù)據(jù)緩存控制模塊相連,信號(hào)輸出選擇模塊還與16路hdo信號(hào)輸出端口相連。
本發(fā)明有益效果是:一種基于fpga的多軸運(yùn)動(dòng)控制系統(tǒng),包括電源、晶振、jtag電路、arm芯片、fpga芯片、15路di輸入電路、8路hdi輸入電路及16路hdo輸出電路,所述的15路di輸入電路和8路hdi輸入電路,分別包括輸入保護(hù)電路并與其依次相連的限流濾波電路及光耦隔離電路,所述16路hdo輸出電路,包括輸出保護(hù)電路并與其依次相連的輸出驅(qū)動(dòng)電路及光耦隔離電路,所述光耦隔離電路分別與fpga芯片相連,用于運(yùn)動(dòng)控制信號(hào)的處理,jtag電路分別與fpga芯片及arm芯片相連,jtag電路用于控制器程序下載和調(diào)試,arm芯片進(jìn)行運(yùn)動(dòng)控制數(shù)據(jù)的運(yùn)算和配置,通過(guò)fsmc通信接口與fpga芯片通信,在fpga芯片內(nèi)部系統(tǒng)執(zhí)行相應(yīng)的功能,所述電源分別與晶振、arm芯片及fpga芯片相連,晶振還與fpga芯片相連,為fpga芯片提供時(shí)鐘。與已有技術(shù)相比,本發(fā)明使用arm芯片作為運(yùn)動(dòng)控制的控制器,fpga芯片作為運(yùn)動(dòng)控制的數(shù)據(jù)處理器,不僅滿足了較高的控制需求,而且擁有精度較高、速度較快的數(shù)據(jù)處理能力。解決了目前市場(chǎng)存在的控制器,處理速度慢,精度不高,不可重復(fù)編程,擴(kuò)展性差,通用性不好的缺點(diǎn),具有開(kāi)放性、互換性、可擴(kuò)展性以及可移植性等優(yōu)點(diǎn)。
附圖說(shuō)明
圖1是本發(fā)明原理框圖。
圖2是本發(fā)明中的fpga芯片原理框圖。
圖3是fpga芯片中的脈沖輸出模塊的脈沖輸出流程圖。
圖4是fpga芯片中的脈沖輸出模塊的方向輸出流程圖。
圖5是fpga芯片中的使能位控制模塊與使能位選擇模塊聯(lián)合工作示意圖。
圖6是fpga芯片中的pls模塊的脈沖輸出流程圖。
圖7是fpga芯片中的計(jì)數(shù)測(cè)頻模塊的高速計(jì)數(shù)流程圖。
圖8是fpga芯片中的計(jì)數(shù)測(cè)頻模塊的高速測(cè)頻流程圖。
圖9是fpga芯片中的di中斷和hdi中斷的流程圖。
圖10是fpga芯片中的高速計(jì)數(shù)中斷流程圖。
圖11是fpga芯片中的濾波處理模塊流程圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
如圖1、2所示,一種基于fpga的多軸運(yùn)動(dòng)控制系統(tǒng),包括電源、晶振、jtag電路、arm芯片、fpga芯片、15路di輸入電路、8路hdi輸入電路及16路hdo輸出電路,所述的15路di輸入電路和8路hdi輸入電路,分別包括輸入保護(hù)電路并與其依次相連的限流濾波電路及光耦隔離電路,所述16路hdo輸出電路,包括輸出保護(hù)電路并與其依次相連的輸出驅(qū)動(dòng)電路及光耦隔離電路,所述光耦隔離電路,用于避免外界的干擾,其中15路di輸入電路使用普通光耦隔離,8路hdi輸入電路和16路hdo輸出電路使用高速光耦隔離,限流濾波電路,用于避免信號(hào)的毛刺干擾,所述光耦隔離電路分別與fpga芯片相連,用于運(yùn)動(dòng)控制信號(hào)的處理,所述jtag電路分別與fpga芯片及arm芯片相連,jtag電路用于控制器程序下載和調(diào)試,arm芯片進(jìn)行運(yùn)動(dòng)控制數(shù)據(jù)的運(yùn)算和配置,通過(guò)fsmc通信接口與fpga芯片通信,在fpga芯片內(nèi)部系統(tǒng)執(zhí)行相應(yīng)的功能,所述電源分別與晶振、arm芯片及fpga芯片相連,晶振還與fpga芯片相連,為fpga芯片提供時(shí)鐘,在fpga內(nèi)部將時(shí)鐘進(jìn)行分頻處理,分別為外部的arm芯片和以太網(wǎng)提供時(shí)鐘;所述fpga芯片包括時(shí)鐘模塊、通信接口模塊、中斷模塊、計(jì)數(shù)測(cè)頻模塊、數(shù)據(jù)緩存控制模塊、pls模塊、脈沖輸出模塊、信號(hào)輸出選擇模塊、使能位控制模塊、使能位選擇模塊及di濾波處理模塊和hdi濾波處理模塊,其中,通信接口模塊與數(shù)據(jù)緩存控制模塊相連,通信接口模塊用于arm芯片與fpga芯片的數(shù)據(jù)交互,數(shù)據(jù)緩存控制模塊用于數(shù)據(jù)緩存,并將相應(yīng)的數(shù)據(jù)配置到各個(gè)子模塊端口,執(zhí)行相應(yīng)的功能,所述di濾波處理模塊和hdi濾波處理模塊分別通過(guò)中斷模塊與數(shù)據(jù)緩存控制模塊相連,用于將15路di信號(hào)、8路hdi信號(hào)通過(guò)di濾波處理模塊和hdi濾波處理模塊再次濾波后得到的15路di信號(hào)、8路hdi信號(hào)通過(guò)中斷模塊后得到的15路di中斷信號(hào)、8路hdi中斷信號(hào)直接輸出到arm芯片,得到的中斷通道值分別傳送至數(shù)據(jù)緩存控制模塊,所述hdi濾波處理模塊還通過(guò)計(jì)數(shù)測(cè)頻模塊與數(shù)據(jù)緩存控制模塊相連,用于將8路hdi信號(hào)通過(guò)hdi濾波處理模塊再次濾波后得到的8路hdi信號(hào)通過(guò)計(jì)數(shù)測(cè)頻模塊進(jìn)行測(cè)頻計(jì)數(shù),并將計(jì)數(shù)測(cè)頻數(shù)據(jù)實(shí)時(shí)傳送至數(shù)據(jù)緩存控制模塊;所述di濾波處理模塊和hdi濾波處理模塊分別與數(shù)據(jù)緩存控制模塊直接相連,在沒(méi)有中斷時(shí),濾波后的信號(hào)直接輸出到數(shù)據(jù)緩存控制模塊;所述數(shù)據(jù)緩存控制模塊通過(guò)使能位控制模塊、使能位選擇模塊、脈沖輸出模塊與信號(hào)輸出選擇模塊依次相連,其中,所述使能位選擇模塊,對(duì)脈沖輸出模塊進(jìn)行選擇,將脈沖輸出模塊綁定到固定的使能位,然后通過(guò)配置使能位控制模塊,使能信號(hào)經(jīng)過(guò)使能位選擇模塊對(duì)所選擇的脈沖輸出模塊進(jìn)行使能,通過(guò)使能位選擇模塊及使能位控制模塊聯(lián)合使用實(shí)現(xiàn)單獨(dú)控制電機(jī)軸和多電機(jī)軸的同步聯(lián)動(dòng);所述脈沖輸出模塊,采用fifo作為數(shù)據(jù)緩存機(jī)制,同時(shí)對(duì)8個(gè)電機(jī)軸運(yùn)動(dòng)進(jìn)行控制;所述信號(hào)輸出選擇模塊通過(guò)pls模塊與數(shù)據(jù)緩存控制模塊相連,信號(hào)輸出選擇模塊還與16路hdo信號(hào)輸出端口相連。
如圖3所示,本發(fā)明為了保證脈沖連續(xù)穩(wěn)定的輸出,以及加減速和插補(bǔ)點(diǎn)數(shù)的控制,采用fifo進(jìn)行數(shù)據(jù)緩存;脈沖輸出的前提是fifo非空,因?yàn)閒ifo為脈沖輸出模塊提供唯一數(shù)據(jù)配置。所述的arm為fifo寫(xiě)入數(shù)據(jù),當(dāng)使能信號(hào)給定后,首先進(jìn)行數(shù)據(jù)的裝載,判斷是否有換向延時(shí),如果有換向,需要等待換向延時(shí)的時(shí)間后才能輸出脈沖;全過(guò)程判斷fifo是否非空,若非空則執(zhí)行以上的循環(huán),若fifo空則停止運(yùn)行,脈沖輸出停止。當(dāng)禁能信號(hào)有效時(shí),需要將本次所有脈沖輸出完畢后,脈沖輸出停止。急停信號(hào),當(dāng)急停有效時(shí),脈沖輸出立刻停止,暫存當(dāng)前脈沖計(jì)數(shù)的個(gè)數(shù),反饋到arm。
如圖4所示,本發(fā)明所述的脈沖輸出模塊的方向輸出單獨(dú)設(shè)計(jì),當(dāng)脈沖輸出模塊運(yùn)行的開(kāi)始,需要對(duì)電機(jī)當(dāng)前方向檢測(cè),此時(shí)檢測(cè)狀態(tài)保持。如果新的方向與上次方向相同,則不需要換向,此時(shí)換向狀態(tài)不必保持,重新加載換向延時(shí)值,當(dāng)再有換向延時(shí)時(shí),等待本次脈沖輸出結(jié)束,對(duì)結(jié)束時(shí)的方向檢測(cè);如果新方向與上次方向不同,首先輸出新方向,保持方向檢測(cè),進(jìn)行換向延遲。
如圖5所示,首先選擇0-n號(hào)使能位選擇模塊,與此對(duì)應(yīng)選擇了0-n號(hào)的脈沖輸出模塊,再將選擇好的脈沖輸出模塊綁定到固定的使能位,然后通過(guò)配置使能位控制模塊,使能信號(hào)經(jīng)過(guò)使能位選擇模塊對(duì)所選擇的脈沖輸出模塊進(jìn)行使能,通過(guò)使能位選擇模塊及使能位控制模塊聯(lián)合使用實(shí)現(xiàn)單獨(dú)控制電機(jī)軸和多電機(jī)軸的同步聯(lián)動(dòng)。
如圖6所示,該模塊只能一次性輸出脈沖,當(dāng)輸出的脈沖按照一定的頻率輸出到達(dá)設(shè)定值時(shí),停止脈沖輸出,此過(guò)程無(wú)加減速,但是該模塊可以以恒定的速度輸出脈沖。
如圖7、8所示,hdi濾波處理模塊將高速信號(hào)濾波后,信號(hào)傳輸?shù)接?jì)數(shù)測(cè)頻模塊,根據(jù)技術(shù)模式的選擇,檢測(cè)到脈沖信號(hào)則開(kāi)始計(jì)數(shù)測(cè)頻,計(jì)數(shù)器產(chǎn)生的計(jì)數(shù)值實(shí)時(shí)通過(guò)通信接口模塊反饋到arm芯片。
如圖9、10所示,中斷模塊分為兩部分,一部分如圖9所示的di中斷和hdi中斷;另一部分如圖10所示的高速計(jì)數(shù)中斷。di中斷與hdi中斷的產(chǎn)生原理相同,中斷模式有三種,即上升沿中斷、下降沿中斷或上升沿、下降沿中斷。當(dāng)中斷模式配置后,對(duì)di信號(hào)沿檢測(cè),一旦有中斷信號(hào),立即發(fā)出中斷請(qǐng)求,與此同時(shí)將中斷通道反饋給arm芯片。高速計(jì)數(shù)中斷模塊,主要實(shí)現(xiàn)對(duì)外部輸入脈沖計(jì)數(shù),當(dāng)計(jì)數(shù)值到達(dá)設(shè)定值時(shí),產(chǎn)生中斷信號(hào)。另外,中斷設(shè)定值由用戶實(shí)時(shí)設(shè)定,可滿足用戶對(duì)于計(jì)數(shù)的多次中斷需求,該中斷模式與di中斷模式統(tǒng)一配置,產(chǎn)生的計(jì)數(shù)中斷請(qǐng)求信號(hào)與di中斷請(qǐng)求信號(hào)公用同一線路。
如圖11所示,數(shù)字信號(hào)通過(guò)輸入電路后,首先經(jīng)過(guò)濾波處理模塊再次濾波,主要完成對(duì)高頻窄波的濾除。設(shè)定脈沖周期的一半周期時(shí)間對(duì)輸入信號(hào)采樣,因此當(dāng)輸入信號(hào)的半周期大于等于設(shè)定時(shí)間時(shí),可以采樣,輸入正常;一旦輸入的脈沖半周期小于設(shè)定時(shí)間,即輸入脈沖頻率過(guò)高,則無(wú)法正確的采樣半周期信號(hào)。