0 前言
隨著計(jì)算機(jī)技術(shù)與現(xiàn)代通訊技術(shù)的高速發(fā)展,現(xiàn)代高性能電子產(chǎn)品層出不窮,對(duì)電子產(chǎn)品提出了“輕、薄、短、小”的要求。超大規(guī)模集成電路的發(fā)展,使PCB(印刷電路板PrinCed Circuit Beard)制作工藝朝著高密度、多層化等方向發(fā)展,對(duì)PCB的加工工藝及其數(shù)控系統(tǒng)提出了越來越高的要求。對(duì)此,國(guó)內(nèi)外開發(fā)了各種功能的數(shù)控系統(tǒng),其中有功能強(qiáng)大、系統(tǒng)復(fù)雜且適合于網(wǎng)絡(luò)化加工的計(jì)算機(jī)數(shù)控系統(tǒng),以及基干單片機(jī)的簡(jiǎn)易數(shù)控系統(tǒng)等。計(jì)算機(jī)數(shù)控系統(tǒng)成本高,只適合于大規(guī)模的PCB生產(chǎn)。單片機(jī)數(shù)控系統(tǒng)過于簡(jiǎn)單,性能單一,應(yīng)用范圍窄。針對(duì)上述情況,本文提出開發(fā)基于嵌入式系統(tǒng)的開放式數(shù)控系統(tǒng)。對(duì)數(shù)控技術(shù)進(jìn)行攻關(guān),取得突破與經(jīng)驗(yàn),可以提高我國(guó)CNC鉆銑床技術(shù)的水平,推動(dòng)電子工業(yè)的發(fā)展和技術(shù)進(jìn)步,振興我國(guó)的PCB工業(yè)。
1 基于ARM的數(shù)控系統(tǒng)的總體設(shè)計(jì)
1.1 系統(tǒng)功能要求
本系統(tǒng)是基子ARM砰臺(tái)、uClinu讀時(shí)操作系統(tǒng)設(shè)計(jì)而成的一個(gè)開放式數(shù)控系統(tǒng)。系統(tǒng)設(shè)計(jì)目的是對(duì)PCB11A工過程進(jìn)行實(shí)時(shí)的數(shù)字控制,因此該系統(tǒng)必須滿足以下幾點(diǎn)要求:具有強(qiáng)實(shí)時(shí)性;具有簡(jiǎn)單友好的操作界面;具有高度的模塊化結(jié)構(gòu),易干更換或添加新功能:刀具庫(kù)功能支持;數(shù)控代碼的編輯、譯碼與仿真功能;PCB加工文件的編輯、管理:各種機(jī)器參數(shù)的管理、設(shè)置;加工過程的圖形實(shí)時(shí)顯示:加工過程中出錯(cuò)信息的顯示、報(bào)警;直觀、快捷的對(duì)板、找原點(diǎn)功能;加工過程控制命令,如起停、復(fù)位等。
1.2 系統(tǒng)總體設(shè)計(jì)及分析
嵌入式控制器采用32位ARM7微處理器,用干平臺(tái)上層管理CPU;SM5004用于實(shí)現(xiàn)運(yùn)動(dòng)控制功能,與ARM--起形成一個(gè)完整的應(yīng)用平臺(tái):RS232作為通信口和上位機(jī)通訊;IIC接口用于連接ZLG729(鍵盤和存儲(chǔ)系統(tǒng)參數(shù)及刀具參數(shù)的EEPROM;CF卡用于加工文件的讀取;顯示接口用于驅(qū)動(dòng)LCD掖晶顯示器;4MFLASH(SST39VP3201)用作程序存儲(chǔ)空間,包含ARM對(duì)周邊器件端口的驅(qū)動(dòng)和操作,當(dāng)AF位后,從此FLASFH中讀取指令執(zhí)行:16M的SRAM (IS61LV51216)用于程序的運(yùn)行空間;以太網(wǎng)口用于網(wǎng)絡(luò)通訊。
系統(tǒng)的軟件將根據(jù)對(duì)實(shí)時(shí)性要求的不同分為非實(shí)時(shí)域軟件和實(shí)時(shí)域軟件。這樣,整個(gè)系統(tǒng)就由非實(shí)時(shí)任務(wù)部分、實(shí)時(shí)任務(wù)部分和硬件部分組成,箭頭表示由系統(tǒng)進(jìn)程間通訊和實(shí)時(shí)通訊機(jī)制實(shí)現(xiàn)的軟件數(shù)據(jù)流。非實(shí)時(shí)任務(wù)部分由圖形用戶界面模塊、網(wǎng)絡(luò)模塊、譯碼模塊等組成,這些任務(wù)具有較低的優(yōu)先級(jí),運(yùn)行在系統(tǒng)的用戶空間。實(shí)時(shí)任務(wù)部分由插補(bǔ)模塊、刀補(bǔ)模塊、故障診斷模塊、速度控制模塊、位置控制模塊等組成。這部分任務(wù)要求較高的優(yōu)先級(jí)。運(yùn)行在實(shí)時(shí)內(nèi)核空間。
2 基子ARM的數(shù)控系統(tǒng)的硬件設(shè)計(jì)
在上面建立的基于ARM的PCB工數(shù)控系統(tǒng)的總體設(shè)計(jì)的基礎(chǔ)上,下面介紹主要的系統(tǒng)硬件部分的元器件、設(shè)備等的選型與設(shè)計(jì)。
2.1 ARM處理器的選擇
基于ARM體系結(jié)構(gòu)的3啦系統(tǒng)占領(lǐng)了2位嵌入式系統(tǒng)的大部分。但長(zhǎng)期以來,基于ARhr體系結(jié)構(gòu)的32位系統(tǒng)僅在嵌入式系統(tǒng)的高端等場(chǎng)合使用,要么以專用芯片的面貌出現(xiàn),要么以微處理器的面貌出現(xiàn),并沒有出現(xiàn)性價(jià)比高的通用微控制器。本文采用性價(jià)比高的LPC2210芯片。
2.2 運(yùn)動(dòng)控制器與ARM的連接
SNf5004是以單一芯片而可控制毖嫩的脈沖序列輸入之伺服馬達(dá)、步進(jìn)馬達(dá)的運(yùn)動(dòng)控制芯片,可以進(jìn)行各軸獨(dú)立的定位控制、速度控制,另一方面亦可在4軸中任意的選擇2軸或是3軸來進(jìn)行圓弧、直線、位方式插補(bǔ)。
SM5004云動(dòng)控制芯片能與8/16位立數(shù)據(jù)總線接口,通過命令、數(shù)據(jù)和狀態(tài)等寄存器實(shí)現(xiàn)4軸3聯(lián)動(dòng)的位置、速度、加速度等的運(yùn)動(dòng)控制和實(shí)時(shí)監(jiān)控,實(shí)現(xiàn)直線、圓弧、位元琳模式的軌跡插補(bǔ),輸出脈沖頻率達(dá)4MHZ。每軸都有伺服反饋輸入端、4個(gè)輸入點(diǎn)和8個(gè)輸出點(diǎn),能獨(dú)立地設(shè)置為恒速、線性、非對(duì)稱S曲線加/減控制、非對(duì)稱梯形加/減速控制方式,并有2個(gè)32位的邏輯、實(shí)際位置計(jì)數(shù)器和狀態(tài)比較寄存器,實(shí)現(xiàn)位置的閉環(huán)控制口在同等的性能指標(biāo)下SM5004的價(jià)格遠(yuǎn)低干同類產(chǎn)品,因此本課題選用SM5004實(shí)現(xiàn)運(yùn)動(dòng)控制功能。
2.3 FLASH與ARM的連接
根據(jù)系統(tǒng)的功能要求,uClinux和應(yīng)用程序編譯后的內(nèi)核大約為3.1M左右,因此選擇4M的SST39VF640型FLASH。
2.4 ARM與EEPROM的接口
EEPROM是非易失性存儲(chǔ)器,所以系統(tǒng)用它來存儲(chǔ)一些斷電需要保護(hù)的參數(shù)以及刀具尺寸、壽命、刀號(hào)、刀具進(jìn)刀率等參數(shù)。系統(tǒng)采用ATMEL公司的IIC妾口的EEPROM。
2.5 以太網(wǎng)接口與ARM的連接
SMS9113同時(shí)具備MAC層和PHY物理接口功能芯片,它使用中斷通知LPC22l嗽據(jù)的發(fā)送和接收。LPC2210是使用nGCSI和數(shù)據(jù)地址線訪問SMSC911拍勺內(nèi)部寄存器和緩沖區(qū)。TS6121是隔離變壓器,板上的LED和LED指示燈分別表示100Mb/s鏈路正常和網(wǎng)絡(luò)接收發(fā)送。
3 基干ARM的數(shù)控系統(tǒng)的應(yīng)用軟件設(shè)計(jì)
3.1 圖形用戶界面模塊設(shè)計(jì)
圖形用戶界面(GUI)是用戶和數(shù)控機(jī)床進(jìn)行交互的媒介,因此一個(gè)好的數(shù)控系統(tǒng)必須提供良好的人性化的圖形用戶界面,MINIGUI是為了滿足一個(gè)工業(yè)控制系統(tǒng)的需求而設(shè)計(jì)和開發(fā)的。在設(shè)計(jì)之初就考慮到了小巧、高性能和高效率口因此,MINIGUI是一個(gè)非常適合于工業(yè)控制實(shí)時(shí)系統(tǒng)以及嵌入式系統(tǒng)的可定制的、小巧的圖形用戶界面支持系統(tǒng)口本文在設(shè)計(jì)基干ARM動(dòng)開放式數(shù)控系統(tǒng)時(shí)采用MINIGUI開發(fā)系統(tǒng)的人機(jī)交互界面。
3.2 基干MINIGUI的數(shù)控系統(tǒng)GUI設(shè)計(jì)
3.2.1創(chuàng)建窗口
MiniGUI窗口的建立過程與Windaw程序基本類似,不過也有一些差別。在Windows程序中,在建立一個(gè)主窗口之前,程序首先要注冊(cè)一個(gè)窗口類,然后創(chuàng)建一個(gè)屬于該窗口類的主窗口。MiniGUI卻口沒有在主窗口中使用窗口類的概念。在MiniGUI程序中,調(diào)用CreaCeMainWindow 0函數(shù)建立主窗口,建立主窗口之后,程序?qū)⑦M(jìn)入消息循環(huán)。
3.2.2 創(chuàng)建控件
MiniGUI提供了常用的預(yù)定義控件類,包括按鈕、靜態(tài)框、列表框、進(jìn)度條、滑塊、編輯框等。也可以定制自已的控件類,注冊(cè)后再創(chuàng)建對(duì)應(yīng)的實(shí)例??丶膭?chuàng)建有兩種方式:一種是在對(duì)話框模板中指定控件,這樣,當(dāng)應(yīng)用程序啟動(dòng)該對(duì)話框時(shí),系統(tǒng)自動(dòng)創(chuàng)建指定控件:另一種方式是調(diào)用Crea Lewindow 0函數(shù)來創(chuàng)建控件,通過指定要生成的控件的窗口類型來生成所需控件。
3.2.3 創(chuàng)建對(duì)話框
在MiniGUI中,對(duì)話框是一類特殊的主窗口,這種窗口一般只關(guān)注與用戶的交互。對(duì)話框可以分為模態(tài)對(duì)話框和非模態(tài)對(duì)話框,模態(tài)對(duì)話框顯示之后,用戶就不能再切換到其他主窗口進(jìn)行工作,而非模態(tài)對(duì)話框就沒有這樣的限制。
3.3 插補(bǔ)模塊設(shè)計(jì)
插補(bǔ)是整個(gè)數(shù)控系統(tǒng)軟件的核心任務(wù)。插補(bǔ)是指根據(jù)給定的數(shù)學(xué)函數(shù),如線性、二次或高次函數(shù),在理想軌跡或輪廓上的己知點(diǎn)之間確定一些中間點(diǎn)的方法。
對(duì)于數(shù)控系統(tǒng)而言,插補(bǔ)概念“確定中間點(diǎn)”的體現(xiàn)就是用簡(jiǎn)單幾何段對(duì)工件輪廓進(jìn)行逼近。被加工工件的輪廓形狀千差萬別,各式各樣,而由于機(jī)床結(jié)構(gòu)和伺服裝置特性的限制,只能控制刀具走簡(jiǎn)單線段,所以必須用多個(gè)簡(jiǎn)單線段去逼近工件的實(shí)際輪廓口數(shù)控系統(tǒng)中的插補(bǔ),就是根據(jù)輸入的有限坐標(biāo)點(diǎn),運(yùn)用一定的算法,在有限坐標(biāo)點(diǎn)之間生成一系列的插補(bǔ)點(diǎn),使得插補(bǔ)點(diǎn)之間為可以控制實(shí)現(xiàn)的簡(jiǎn)單線段口這樣,數(shù)控系統(tǒng)通過控制實(shí)現(xiàn)一系列簡(jiǎn)單線段的進(jìn)給,完成對(duì)于工件輪廓的逼近。顯然,“逼近”的程度是由甸個(gè)進(jìn)給段的長(zhǎng)度決定的,進(jìn)給段的長(zhǎng)度越小,逼近程度越高,加工誤差就越小。
3.4 實(shí)時(shí)軟件部分設(shè)計(jì)
uClinux是為嵌入式應(yīng)用設(shè)計(jì)的,它本身并沒有更多地關(guān)注實(shí)時(shí)問題。uClinux經(jīng)過小型化改造,形成了一個(gè)高度優(yōu)化、代碼緊湊的嵌入式Linux,并保留了Linux大多數(shù)的優(yōu)點(diǎn)。它專門針對(duì)無MMU的CPU,去除了普通Linux內(nèi)核中的虛擬內(nèi)存管理部分??紤]到開放式數(shù)控系統(tǒng)的實(shí)時(shí)性要求,在系統(tǒng)設(shè)計(jì)時(shí)將RTA環(huán)uClinux相目結(jié)合,采用雙內(nèi)核的設(shè)計(jì)方案,既滿足了嵌入式應(yīng)用的需求,又保證了系統(tǒng)的硬實(shí)時(shí)性。
系統(tǒng)的實(shí)現(xiàn)基礎(chǔ)是硬件抽象層,通過硬件抽象層進(jìn)行硬件管理,把基本內(nèi)核和實(shí)時(shí)內(nèi)核結(jié)合在一起,其中一個(gè)內(nèi)核的改變,不會(huì)影響另一個(gè)內(nèi)核的執(zhí)行口基本內(nèi)核和實(shí)時(shí)內(nèi)核(RTAI)分別處理非實(shí)時(shí)和實(shí)時(shí)任務(wù)的調(diào)度和執(zhí)行,而實(shí)時(shí)任務(wù)和非實(shí)時(shí)任務(wù)之間信息的交換要通過管道(FIFO)或共享內(nèi)存(MBUFF)來實(shí)現(xiàn)口
3.5 故障診斷模塊設(shè)計(jì)
數(shù)控設(shè)備的結(jié)構(gòu)復(fù)雜,所以一旦發(fā)生故障,原因很難確定,結(jié)果難以及時(shí)排除故障,往往造成嚴(yán)重的經(jīng)濟(jì)損失。為了盡量減少故障發(fā)生,通常在鉆銑加工前,要對(duì)機(jī)床及其附屬設(shè)備的性能進(jìn)行檢測(cè)口在系統(tǒng)軟件的設(shè)計(jì)中,設(shè)計(jì)了一個(gè)輔助管理菜單,里面包含了機(jī)器自檢、斷電保護(hù)、機(jī)器部件測(cè)試、主軸轉(zhuǎn)速自檢等功能。這些功能有效的保障了系統(tǒng)的正常運(yùn)行,提高了系統(tǒng)的工作效率,節(jié)約了加工成本口
3.6 網(wǎng)絡(luò)模塊設(shè)計(jì)
本系統(tǒng)憑借uClinux的網(wǎng)絡(luò)功能支持,可以實(shí)現(xiàn)數(shù)控系統(tǒng)的網(wǎng)絡(luò)功能。整個(gè)系統(tǒng)包括三個(gè)層次:①車間內(nèi)設(shè)備的集成、②制造企業(yè)內(nèi)計(jì)算機(jī)通訊和資源的共享、③基于WWW的企業(yè)乃至全球范圍內(nèi)的信息集成與共享。車間內(nèi)網(wǎng)絡(luò)數(shù)控系統(tǒng)用網(wǎng)線和集線器連接,它們之間關(guān)系平等,可以共享多種信息和各種軟、硬件資源,通過車間服務(wù)器有效地調(diào)動(dòng)它們,使制造過程最優(yōu)化。企業(yè)通過專門的服務(wù)器在Internet上發(fā)布相關(guān)的網(wǎng)頁(yè),給遠(yuǎn)程用戶提供CAD/CAPP等技術(shù)支持,也可以對(duì)遠(yuǎn)程伙伴的網(wǎng)絡(luò)數(shù)控系統(tǒng)分配任務(wù),在網(wǎng)上動(dòng)態(tài)地進(jìn)行加工任務(wù)的協(xié)調(diào)。
4 結(jié)束語
本文采用LPC2210和SMS5004構(gòu)造的開放式數(shù)控系統(tǒng),建立了一種新型的模塊化、可靠性高、成本低、便攜的數(shù)控系統(tǒng);采用了開放源碼的uClinux操作系統(tǒng),其開發(fā)資源豐富,為后繼的系統(tǒng)功能擴(kuò)展奠定了較好的基礎(chǔ)。本系統(tǒng)的研究成果和方法能成功的推廣應(yīng)用到其他數(shù)控領(lǐng)域,具有很好的應(yīng)用前景和杜會(huì)經(jīng)濟(jì)價(jià)值。
(審核編輯: 智匯張瑜)
分享