摘 要:介紹了一種以32位CPU為控制器的嵌入式數(shù)控系統(tǒng)設(shè)計(jì),包括系統(tǒng)硬件設(shè)計(jì)和軟件設(shè)計(jì)。該系統(tǒng)選用三星公司的低功耗S3C4510作為核心,具有數(shù)據(jù)存儲(chǔ)、以太網(wǎng)通訊、LCD顯示等功能。該系統(tǒng)具有低功耗、低價(jià)位、體積小、可集成到數(shù)控機(jī)床操作臺(tái)等特點(diǎn),是未來(lái)經(jīng)濟(jì)型數(shù)控機(jī)床發(fā)展的趨勢(shì)。
關(guān)鍵字:數(shù)控系統(tǒng)、嵌入式、UDP/IP協(xié)議
1、 引言
計(jì)算機(jī)數(shù)控系統(tǒng)是先進(jìn)制造技術(shù)的基礎(chǔ),在國(guó)內(nèi)外得到普遍重視,發(fā)展較快。如今的計(jì)算機(jī)數(shù)控系統(tǒng)多以PC機(jī)為平臺(tái)?;赑C機(jī)的數(shù)控系統(tǒng)雖然功能強(qiáng)大,卻存在以下缺點(diǎn):
?。?) PC - base數(shù)控系統(tǒng)需要工業(yè)計(jì)算機(jī)的捆綁銷售,造成資源浪費(fèi)和成本的提高。
?。?) PC - base數(shù)控系統(tǒng)的硬件結(jié)構(gòu)非常復(fù)雜,從而導(dǎo)致系統(tǒng)的整體可靠性的降低。
(3) PC - base數(shù)控系統(tǒng)的軟件操作系統(tǒng)主要有DOS和Windows兩種方案, DOS操作系統(tǒng)過(guò)于簡(jiǎn)陋,導(dǎo)致許多功能實(shí)現(xiàn)起來(lái)非常困難或者無(wú)法實(shí)現(xiàn),如網(wǎng)絡(luò)和USB功能;而Windows操作系統(tǒng)又過(guò)于龐大和累贅,系統(tǒng)實(shí)時(shí)性極差,并存在微軟公司的版權(quán)問(wèn)題。
(4) PC - base數(shù)控系統(tǒng)需要設(shè)計(jì)基于ISA /PCI總線的I/O控制卡和專用的運(yùn)動(dòng)控制卡。造成硬件結(jié)構(gòu)復(fù)雜化。
隨著嵌入式系統(tǒng)、微計(jì)算機(jī)技術(shù)和集成電路的迅速發(fā)展,高性能的32位CUP開(kāi)始普及,ARM技術(shù)正在逐步滲入到我們生活的各個(gè)方面。它執(zhí)行速度快、功能強(qiáng)大,在中、低檔數(shù)控系統(tǒng)中已經(jīng)完全可以替代PC機(jī),獲得更大的價(jià)格和技術(shù)優(yōu)勢(shì)。本文旨在打破傳統(tǒng)基于PC機(jī)的數(shù)控系統(tǒng),研究并設(shè)計(jì)一種基于ARM的32位嵌入式微機(jī)數(shù)控系統(tǒng)。
該數(shù)控系統(tǒng)的核心處理器采用三星公司生產(chǎn)的S3C4510芯片。該芯片是用在基于以太網(wǎng)系統(tǒng)的高性價(jià)比、高性能的16/32位RISC微控制器,內(nèi)含一個(gè)有A R M 公司設(shè)計(jì)的1 6 / 3 2 位ARM7TDMI RISC 處理器,ARM7TDMI 為低功耗高性能的16/32。網(wǎng)絡(luò)接口芯片采用Realtek公司生產(chǎn)的一種全雙工以太網(wǎng)控制器RTL8201。由于S3C4510B 片內(nèi)已有帶MII 接口的MAC 控制器,而RTL8201 也提供了MII 接口,因此直接將兩者的同名端連接即可。信號(hào)輸出經(jīng)耦合隔離變壓器由RJ45 接頭聯(lián)入集線器。此外該芯片還帶有2個(gè)可編程32 位定時(shí)器,18個(gè)可編程I/O口,2個(gè)DMA通道??捎枚〞r(shí)器產(chǎn)生步進(jìn)電機(jī)的控制脈沖,并由I/O口通過(guò)功率放大后輸出來(lái)控制步進(jìn)電機(jī)。而且大量的G代碼存取過(guò)程中還可以利用DMA技術(shù)提高存取效率,同時(shí)把CPU從繁忙的存取工作中解脫出來(lái)用于處理數(shù)據(jù)和控制電動(dòng)機(jī),這可使該數(shù)控系統(tǒng)的性能和運(yùn)行效率大大提高。
2、 系統(tǒng)功能
系統(tǒng)功能結(jié)構(gòu)框圖如圖1所示。其中計(jì)算機(jī)應(yīng)用CAD軟件產(chǎn)生加工G代碼,通過(guò)網(wǎng)線下載到運(yùn)動(dòng)控制器的海量數(shù)據(jù)存貯器SDRAM中,然后可以在線控制雕刻機(jī)運(yùn)動(dòng)也可以脫機(jī)運(yùn)行。網(wǎng)絡(luò)下載速率可達(dá)100Mbit/s,所以通信速度還是非??斓?。通信協(xié)議采用的是UDP/IP協(xié)議。因?yàn)樵撓到y(tǒng)中數(shù)據(jù)的傳輸遠(yuǎn)不像因特網(wǎng)那樣復(fù)雜,傳輸?shù)臄?shù)據(jù)量相對(duì)較小,即使發(fā)生數(shù)據(jù)錯(cuò)誤或丟失,重傳的代價(jià)也不是很大,所以避開(kāi)繁瑣的TCP/IP協(xié)議采用用戶數(shù)據(jù)報(bào)UDP協(xié)議。這樣做不僅大大簡(jiǎn)化了編程,數(shù)據(jù)傳輸?shù)男室蔡岣吡撕芏唷?
運(yùn)動(dòng)控制器負(fù)責(zé)從數(shù)據(jù)存貯器讀取加工G代碼,并對(duì)加工G代碼進(jìn)行翻譯,通過(guò)運(yùn)動(dòng)控制算法(圓弧插補(bǔ))處理后輸出對(duì)電機(jī)的控制脈沖,控制雕刻過(guò)程中電機(jī)的運(yùn)行,達(dá)到三軸聯(lián)動(dòng)的效果。要注意的是電機(jī)在突然加速或減速運(yùn)行時(shí),容易產(chǎn)生失步現(xiàn)象,影響運(yùn)動(dòng)控制的精度。為避免這種情況的發(fā)生,對(duì)電機(jī)應(yīng)該實(shí)行加速度均勻變化的加減速控制。
3、 系統(tǒng)硬件設(shè)計(jì)
該系統(tǒng)硬件設(shè)計(jì)分為幾個(gè)功能模塊:參數(shù)輸入模塊、參數(shù)輸出模塊、液晶顯示模塊、鍵盤輸入模塊、數(shù)據(jù)通信模塊、數(shù)據(jù)存貯模塊、程序存貯模塊和一個(gè)JTAG調(diào)試接口。
(1)輸入模塊:通過(guò)光電隔離模塊輸入雕刻機(jī)X、Y、Z軸的正反向限位和急停信號(hào)給EPLD邏輯電路,由它輸出控制信號(hào),控制雕刻機(jī)運(yùn)動(dòng)的停止。雕刻機(jī)的零位信號(hào)通過(guò)74LS16244由CPU讀回。
?。?)輸出模塊:輸出電機(jī)轉(zhuǎn)動(dòng)方向和脈沖參數(shù)信號(hào)通過(guò)ULN2803驅(qū)動(dòng)控制電機(jī)運(yùn)轉(zhuǎn)。
?。?)液晶顯示模塊:顯示當(dāng)前刻刀位置和主軸轉(zhuǎn)速等運(yùn)行狀態(tài)。
(4)鍵盤輸入模塊:開(kāi)關(guān)機(jī)、主軸轉(zhuǎn)速和手動(dòng)對(duì)刀時(shí)X、Y、Z軸方向參數(shù)設(shè)定等。
(5)數(shù)據(jù)通信模塊:下載PC機(jī)生成的加工G代碼。
?。?)數(shù)據(jù)存貯模塊:存貯下載的加工G代碼和運(yùn)行過(guò)程中的數(shù)據(jù)。
?。?)程序存貯模塊:存貯運(yùn)行軟件。
(8)JTAG調(diào)試接口:通過(guò)JTAG邊界掃描接口對(duì)程序進(jìn)行交叉調(diào)試。
本系統(tǒng)之所以選用三星公司的S3C4510B芯片來(lái)構(gòu)建,是因?yàn)樗哂幸幌聝蓚€(gè)優(yōu)點(diǎn):一是具有100Mbps 以太網(wǎng)控制器,提供MII接口。這使得它的網(wǎng)絡(luò)接口和編程都變得非常簡(jiǎn)單方便,通信速度也快(傳統(tǒng)的8/16位處理器只能達(dá)到10 Mbps);二是支持大容量的SDRAM(比DRAM便宜很多),這對(duì)降低成本非常有用。
4、 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)軟件采取前/后臺(tái)模式。運(yùn)動(dòng)控制器系統(tǒng)軟件流程圖如圖2所示。即在前臺(tái)循環(huán)運(yùn)行液晶顯示子程序、按鍵處理子程序、G代碼讀取翻譯子程序、控制算法處理子程序等,后臺(tái)的通信子程序和鍵中斷子程序等當(dāng)系統(tǒng)產(chǎn)生相應(yīng)的硬件中斷(如以太網(wǎng)接收中斷、按鍵中斷)時(shí)響應(yīng),執(zhí)行完中斷服務(wù)程序后返回到原來(lái)斷點(diǎn)處繼續(xù)執(zhí)行前臺(tái)程序。設(shè)定通信程序的優(yōu)先級(jí)高于鍵中斷的優(yōu)先級(jí)。
其中插補(bǔ)算法處理子程序是重點(diǎn)。刀具不能嚴(yán)格地沿著要求的曲線運(yùn)動(dòng),只能沿折線逼近所要求加工的曲線。這種由已知工件輪廓的運(yùn)動(dòng)軌跡的七點(diǎn)坐標(biāo)、終點(diǎn)坐標(biāo)和輪廓軌跡的曲線方程,由數(shù)控系統(tǒng)計(jì)算出各個(gè)中間點(diǎn)的坐標(biāo),“插入”、“補(bǔ)上”運(yùn)動(dòng)軌跡中間點(diǎn)的坐標(biāo)值的過(guò)程,稱為“插補(bǔ)”。數(shù)控系統(tǒng)計(jì)算各個(gè)中間點(diǎn)坐標(biāo)的方法就是“插補(bǔ)算法”。
本系統(tǒng)實(shí)現(xiàn)了三軸聯(lián)動(dòng)的數(shù)字積分直線插補(bǔ)和數(shù)字積分圓弧插補(bǔ),并對(duì)插補(bǔ)過(guò)程進(jìn)行加減速控制,以提高插補(bǔ)質(zhì)量和精度。即在插補(bǔ)過(guò)程中不斷地向各個(gè)坐標(biāo)軸發(fā)出進(jìn)給脈沖,驅(qū)動(dòng)各坐標(biāo)軸的電動(dòng)機(jī)轉(zhuǎn)動(dòng)。每發(fā)出一個(gè)脈沖,工作臺(tái)就移動(dòng)一個(gè)基本長(zhǎng)度單位,發(fā)送給各坐標(biāo)軸的脈沖數(shù)目決定了相對(duì)運(yùn)動(dòng)距離,而脈沖的頻率代表了坐標(biāo)軸的速度。實(shí)現(xiàn)加減速控制,即實(shí)現(xiàn)各坐標(biāo)軸脈沖頻率在一個(gè)加工代碼段中由低到高再到低的變化過(guò)程。
5、 小結(jié)
本文作者創(chuàng)新點(diǎn)是突破了傳統(tǒng)數(shù)控機(jī)床的串口通信方式,通過(guò)UDP/IP協(xié)議實(shí)現(xiàn)了上下位機(jī)之間的以太網(wǎng)通信。改變了當(dāng)前多采用PC機(jī)作為平臺(tái)的數(shù)控系統(tǒng)模式,全部控制功能和算法均由32位的下位機(jī)控制器來(lái)完成。既方便了用戶操作,又節(jié)省了投資,是未來(lái)經(jīng)濟(jì)型數(shù)控機(jī)床發(fā)展的趨勢(shì)。
參考文獻(xiàn):
[1] 馬忠梅,馬廣云,徐英慧等. ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ).北京航天航空大學(xué)出版社, 2002.
[2] 楊后川,梁煒編著. 機(jī)床數(shù)控系統(tǒng)及應(yīng)用.北京大學(xué)出版社,2005
[3] 王田苗, 嵌入式系統(tǒng)設(shè)計(jì)與示例開(kāi)發(fā). 清華大學(xué)出版社,2003
[4] 林立志等編著, 基于Windows的TCP/IP編程. 清華大學(xué)出版社,2002
[5] 周立功等編著,ARM微控制器基礎(chǔ)與實(shí)踐. 北京航天航空大學(xué)出版社,2003
[6] 王羲,步進(jìn)電機(jī)轉(zhuǎn)臺(tái)的控制. 微計(jì)算機(jī)信息. 電子工業(yè)出版社,1984