摘 要:基于DSP和FPGA的特性,,設(shè)計(jì)了以DSP,、FPGA為核心器件的激光數(shù)控加工" title="數(shù)控加工">數(shù)控加工系統(tǒng)及相關(guān)軟件,。系統(tǒng)采用了加,、減速區(qū)分析算法和雙存儲(chǔ)器組交替加工等技術(shù),使其在加工非規(guī)則圖形時(shí)也可以達(dá)到很快的加工速度,,并且從根本上解決了加工中的停頓問(wèn)題,。
關(guān)鍵詞:FPGA? 數(shù)控加工? 激光? DSP? 單片機(jī)
?
??? 激光切割和雕刻以其精度高、視覺(jué)效果好等特性,被廣泛運(yùn)用于廣告業(yè)和航模制造業(yè),。在大尺寸" title="大尺寸">大尺寸激光加工" title="激光加工">激光加工系統(tǒng)的開(kāi)發(fā)過(guò)程中,,加工速度與加工精度是首先要解決的問(wèn)題。解決速度問(wèn)題的一般方法是在電機(jī)每次運(yùn)動(dòng)前,、后設(shè)置加,、減速區(qū),但這會(huì)使加工數(shù)據(jù)總量成倍增加,。除此之外,,龐大的數(shù)據(jù)計(jì)算量也需要一個(gè)專門的高性能處理器來(lái)實(shí)現(xiàn)。
??? FPGA(現(xiàn)場(chǎng)可編程門陣列)在并行信號(hào)處理方面具有極大的優(yōu)勢(shì),。本系統(tǒng)采用FPGA作為加工數(shù)據(jù)的執(zhí)行器件,。這種解決方案突出的特點(diǎn)是讓運(yùn)動(dòng)控制的處理部分以獨(dú)立的,、硬件性方式展開(kāi),,增加系統(tǒng)的性能和可靠性,從而有效地解決了用單純的MCU或DSP系統(tǒng)處理的帶寬限制,,以及用戶系統(tǒng)軟件和運(yùn)動(dòng)控制軟件混雜性的問(wèn)題,。
??? 當(dāng)今國(guó)內(nèi)外市場(chǎng)上已經(jīng)陸續(xù)出現(xiàn)類似的FPGA產(chǎn)品,這些產(chǎn)品大多使用FPGA完成從原始數(shù)據(jù)處理到執(zhí)行的全部工作,。此種結(jié)構(gòu)雖然可以簡(jiǎn)化FPGA外部的電路設(shè)計(jì),,但是由于FPGA做復(fù)雜數(shù)學(xué)計(jì)算的能力有限,不能對(duì)復(fù)雜圖形尤其是不規(guī)則圖形做出全面的分析,,導(dǎo)致加工速度無(wú)法進(jìn)一步提升,。除此之外,這些產(chǎn)品大多采用寫入一條數(shù)據(jù),、執(zhí)行一條數(shù)據(jù)的工作方式" title="工作方式">工作方式,,造成了執(zhí)行相鄰兩條數(shù)據(jù)間的加工停頓,破壞了加工的流暢性,,在加工復(fù)雜圖形時(shí)還會(huì)明顯地影響加工速度,。
??? 本系統(tǒng)使用數(shù)字信號(hào)處理器DSP完成復(fù)雜的圖形分析計(jì)算,這樣既可以對(duì)復(fù)雜圖形做出全面的分析又不會(huì)喪失系統(tǒng)性能,。除此之外,,本系統(tǒng)還在FPGA內(nèi)部采用了雙存儲(chǔ)器交替加工的結(jié)構(gòu),從根本上消除了相鄰數(shù)據(jù)間的加工停頓,。
1 系統(tǒng)設(shè)計(jì)
??? 激光加工系統(tǒng)主要是以切割,、雕刻等工藝完成對(duì)金屬、非金屬的加工,。切割是指系統(tǒng)在控制工作頭做矢量運(yùn)動(dòng)的同時(shí),,配合激光在被加工物體上切割出不同的線條;雕刻是指系統(tǒng)控制激光頭在一定區(qū)域內(nèi)進(jìn)行往復(fù)掃描,以類似打印機(jī)的方式在被加工物體上刻出深淺不一的圖案,。本系統(tǒng)采用由計(jì)算機(jī)獲得圖形并傳輸至下位機(jī),,由下位機(jī)保存圖形并脫機(jī)加工的結(jié)構(gòu)。
??? 圖1為系統(tǒng)的結(jié)構(gòu)示意圖,。在數(shù)據(jù)傳輸階段,,加工數(shù)據(jù)由計(jì)算機(jī)通過(guò)以太網(wǎng)或并口,以圖名,、圖號(hào)為標(biāo)志傳入DSP(TMS320VC33),,DSP將數(shù)據(jù)按協(xié)議解析后存入FLASH(K9F1G08U0A)存儲(chǔ)器。在脫機(jī)加工階段,,DSP將數(shù)據(jù)從FLASH存儲(chǔ)器重新讀出并進(jìn)行處理,、計(jì)算,并將最終的加工數(shù)據(jù)輸入FPGA(EP1C6T144C8)內(nèi)部的加工模塊,,控制FPGA輸出加工信號(hào),。在系統(tǒng)運(yùn)轉(zhuǎn)的整個(gè)過(guò)程中,DSP還要通過(guò)建于FPGA內(nèi)部的通訊模塊和單片機(jī)交換數(shù)據(jù),,獲取有關(guān)人機(jī)界面和諸如限位開(kāi)關(guān),、激光器散熱水泵等保護(hù)器件的工作狀態(tài)。
?
??? 加工信號(hào)預(yù)處理電路主要由數(shù)模轉(zhuǎn)換器和光電隔離器組成,。它負(fù)責(zé)將FPGA輸出的加工信號(hào)進(jìn)行處理后驅(qū)動(dòng)步進(jìn)電機(jī)" title="步進(jìn)電機(jī)">步進(jìn)電機(jī)和激光器,。
2 DSP的軟件設(shè)計(jì)
2.1 加減速區(qū)的分析及計(jì)算
??? 在待機(jī)階段,DSP將從計(jì)算機(jī)取得原始數(shù)據(jù),。在加工階段,,DSP將對(duì)這些數(shù)據(jù)進(jìn)行分析并合理分配加、減速區(qū)域,。圖2為加,、減速區(qū)示意圖。加減速區(qū)是用多段幅值較小的速度變化代替一次較大的速度變化,。對(duì)于大尺寸或高速運(yùn)動(dòng)平臺(tái)來(lái)說(shuō),,電機(jī)的加、減速過(guò)程必不可少,。由原理可知,,兩圖所圍面積大小相等,即工作頭移動(dòng)距離相等,。
??? 在以往的步進(jìn)電機(jī)驅(qū)動(dòng)算法的設(shè)計(jì)中,,大多采用簡(jiǎn)單的二次曲線進(jìn)行速度擬合。此種擬合方式雖然簡(jiǎn)單,,但在大型運(yùn)動(dòng)平臺(tái)上并不能夠充分考慮到機(jī)械部件間的靜摩擦力和旋轉(zhuǎn)部件的轉(zhuǎn)動(dòng)慣量等因素,,其運(yùn)行效果并不理想,。
??? 本系統(tǒng)在加、減速區(qū)的計(jì)算過(guò)程中,,通過(guò)將速度和加速時(shí)間的關(guān)系與“S”形曲線進(jìn)行擬合來(lái)得到加速區(qū)速度,,通過(guò)將速度和減速時(shí)間的關(guān)系與反“S”形曲線進(jìn)行擬合得到減速區(qū)速度。圖3為加,、減速區(qū)速度-時(shí)間擬合曲線,,曲線的斜率代表工作頭移動(dòng)的加速度。從圖3可見(jiàn),,加,、減速區(qū)所使用的擬合曲線并不相同,減速區(qū)曲線更為“陡峭”,。這是由于減速過(guò)程中受機(jī)械系統(tǒng)摩擦力等因素的影響,,電機(jī)負(fù)荷較小,可以承受更快的減速過(guò)程,。使用“S”形曲線進(jìn)行擬合的優(yōu)點(diǎn)主要有:
??? (1)電機(jī)從靜止?fàn)顟B(tài)過(guò)渡到行進(jìn)狀態(tài)的過(guò)程中,,由于各機(jī)械部件之間存在靜摩擦力,可使電機(jī)較為平緩地啟動(dòng),,避免了撞擊或丟步現(xiàn)象的發(fā)生,。
??? (2)電機(jī)進(jìn)入平穩(wěn)運(yùn)行階段時(shí),,可以使用較大的加速度進(jìn)行速度提升,。但是,隨著速度的增加,,電機(jī)的剩余功率將不斷減小,,此時(shí)應(yīng)不斷減緩加速進(jìn)程。
??? (3)電機(jī)從行進(jìn)狀態(tài)過(guò)渡到靜止?fàn)顟B(tài)的減速過(guò)程中,,此種擬合方法可以使電機(jī)平穩(wěn)過(guò)渡,,避免發(fā)生撞擊。
?
2.2 復(fù)雜圖形的分析
??? 在一幅復(fù)雜圖形中往往存在很多不連續(xù),、不規(guī)則的矢量,,如果每條矢量的末尾都減速到零,勢(shì)必會(huì)影響加工速度,。所以,,在分析此類圖形時(shí)要連帶分析當(dāng)前矢量的前、后圖形情況,,計(jì)算出各矢量的夾角以確定加工此矢量的初始速度及終止速度,。表1為工作頭進(jìn)行不同角度轉(zhuǎn)彎時(shí)的極限速度。
?
3 FPGA的內(nèi)部邏輯設(shè)計(jì)
??? 從DSP的角度看,,F(xiàn)PGA加工模塊類似于一個(gè)存儲(chǔ)器,,DSP只需將計(jì)算結(jié)果寫入此存儲(chǔ)器中,以后的工作將全部由FPGA來(lái)完成。在FPGA加工模塊中主要采用了不同類別數(shù)據(jù)并行讀取和雙存儲(chǔ)器組交替工作的技術(shù),。
3.1數(shù)據(jù)并行讀取
??? 傳統(tǒng)的數(shù)據(jù)存儲(chǔ)器受限于處理器的單任務(wù)特性,,通常采用單片大容量存儲(chǔ)單元,這種結(jié)構(gòu)使得系統(tǒng)需要耗費(fèi)多個(gè)讀取周期才能得到一組完整的數(shù)據(jù),。而FPGA的并行工作特性可以突破這種傳統(tǒng)的設(shè)計(jì)形式,,將不同類別數(shù)據(jù)存放于獨(dú)立的存儲(chǔ)單元中。只要在定義數(shù)據(jù)時(shí)將地址對(duì)齊就可以在一個(gè)讀取周期中獲得全部數(shù)據(jù),。運(yùn)用這種方式可以在讀數(shù)時(shí)間最小化的同時(shí)簡(jiǎn)化編程,,也可以使整體程序的結(jié)構(gòu)更加明了。
3.2 雙存儲(chǔ)器交替工作
??? 市場(chǎng)上已有的同類FPGA產(chǎn)品大多采用寫入1條數(shù)據(jù),、執(zhí)行1條數(shù)據(jù)的工作方式,,這將在數(shù)據(jù)傳輸時(shí)產(chǎn)生停頓。本系統(tǒng)雖然采用了存儲(chǔ)器作為加工數(shù)據(jù)的緩存,,但僅僅依靠這種方式仍然不能解決問(wèn)題,,在DSP寫入數(shù)據(jù)時(shí)依然會(huì)造成加工停頓。
??? 圖4為雙存儲(chǔ)器組結(jié)構(gòu)示意圖,,當(dāng)系統(tǒng)在執(zhí)行其中一組存儲(chǔ)器中的數(shù)據(jù)時(shí),,DSP可將計(jì)算結(jié)果寫入另一組存儲(chǔ)器。由于DSP的運(yùn)算速度遠(yuǎn)遠(yuǎn)高于加工速度,,所以雙存儲(chǔ)器架構(gòu)可以保證加工不被間斷,。
??? 圖5為FPGA加工程序流程圖??梢?jiàn),,在地址對(duì)齊的前提下更換存儲(chǔ)器組需要改變存儲(chǔ)器組選擇信號(hào)并將地址計(jì)數(shù)器清零。此時(shí),,F(xiàn)PGA還將用中斷的形式通知DSP,,使得DSP可以填充新的數(shù)據(jù)。
4 實(shí)驗(yàn)結(jié)論
????實(shí)驗(yàn)中使用幅面為1.2m×1m的二維工作臺(tái),,X,、Y軸步進(jìn)電機(jī)采用雷塞公司的57HS22并配以M860驅(qū)動(dòng)器。57HS22的步距角為1.8度,,額定電流為4A,,保持轉(zhuǎn)矩為2.2N.m,定位轉(zhuǎn)矩為700g.cm,,電機(jī)接法采用并聯(lián)形式以突出高速性能,。電機(jī)轉(zhuǎn)子的轉(zhuǎn)動(dòng)經(jīng)減速后由齒形帶帶動(dòng)工作頭做直線運(yùn)動(dòng),轉(zhuǎn)子每旋轉(zhuǎn)一周使工作頭移動(dòng)24mm,。
??? 在實(shí)驗(yàn)中分別對(duì)PLT文件,、DXF文件以及BMP文件作了大量測(cè)試,,其中PLT文件和DXF文件用于切割測(cè)試,BMP文件用于雕刻測(cè)試,。
??? 圖形文件由PC機(jī)軟件傳送至本系統(tǒng),,隨后脫機(jī)加工,在切割模式下,,長(zhǎng)矢量的加工速度可以平穩(wěn)超過(guò)20000mm/min,,在雕刻模式下加工速度可以超過(guò)30000mm/min。在對(duì)一幅含有超過(guò)13萬(wàn)條矢量的復(fù)雜圖形連續(xù)加工5次后,,無(wú)肉眼可分辨的位置偏差,。
??? 由于本系統(tǒng)采用了DSP進(jìn)行圖形分析,使得系統(tǒng)對(duì)復(fù)雜圖形的處理能力得到了很大的提高,。同時(shí),,F(xiàn)PGA內(nèi)部雙存儲(chǔ)器交替工作的結(jié)構(gòu)也從根本上解決了數(shù)據(jù)傳輸過(guò)程中加工停頓的問(wèn)題。實(shí)驗(yàn)表明,,本系統(tǒng)擁有加工速度快,、圖形處理能力強(qiáng)、使用簡(jiǎn)便可靠等優(yōu)點(diǎn),。
參考文獻(xiàn)
[1] TMS320C3x User′s Guide.Texas Instruments Incorporated,,USA,1998.
[2] Cyclone Device Handbook.Altera Corporation,,USA,,2005.
[3] Implementing Multipliers in FPGA Devices.Altera Corporation,USA,,2004.
[4] 周凱.基于PC平臺(tái)的激光加工數(shù)控系統(tǒng).制造技術(shù)與機(jī)床,,2002,,(12).