汪 越
(中國衛(wèi)星海上測(cè)控部,江蘇江陰 214400)
基于ARM9的多功能機(jī)床數(shù)控系統(tǒng)軟件設(shè)計(jì)
汪 越
(中國衛(wèi)星海上測(cè)控部,江蘇江陰 214400)
在深入研究嵌入式系統(tǒng)、多功能數(shù)控機(jī)床的基礎(chǔ)上,系統(tǒng)采用“雙CPU架構(gòu)”的設(shè)計(jì)思想,以微處理器S3C2440A為主CPU,單片機(jī)ATmega88為從CPU。其中,主CPU主要完成數(shù)控程序的輸入、LCD顯示、程序的解釋、粗插補(bǔ)等主要功能;從CPU完成精插補(bǔ)功能;系統(tǒng)外圍擴(kuò)展人機(jī)交互模塊、通訊模塊、伺服模塊、輸入輸出模塊,實(shí)現(xiàn)人機(jī)交互、數(shù)據(jù)通訊、電機(jī)控制等功能。調(diào)試結(jié)果表明,該系統(tǒng)響應(yīng)速度快、可靠性高、成本低,并且具有良好的可裁剪性和可移植性,能夠根據(jù)實(shí)際需求進(jìn)行功能的擴(kuò)展和裁剪,在要求快速移動(dòng)和加工速度適中的經(jīng)濟(jì)型數(shù)控機(jī)床領(lǐng)域具有廣闊的應(yīng)用前景。
ARM9;機(jī)床;數(shù)控;系統(tǒng)軟件;設(shè)計(jì)
20世紀(jì)80年代,奧地利的林茨機(jī)床公司(WFL)率先提出全工序加工的新概念,即在一次裝卡中,完成工件的所有車、銑、鉆、鏜等工序[1]。這種復(fù)合加工概念的實(shí)現(xiàn),需要一種集成各種加工方法于一體的高柔性設(shè)備,因此促成了多功能數(shù)控機(jī)床的產(chǎn)生。實(shí)驗(yàn)室擬在原數(shù)控機(jī)床的基礎(chǔ)上,設(shè)計(jì)一種全新的數(shù)控系統(tǒng),從而完成上述功能。
通過分析數(shù)控系統(tǒng)設(shè)計(jì)方案,并結(jié)合多功能機(jī)床的實(shí)際情況,本文設(shè)計(jì)了一種基于ARM9微處理器的控制系統(tǒng),工作原理如下:微型計(jì)算機(jī)內(nèi)生成的加工信息,通過USB接口或者其他數(shù)據(jù)接口(如RS232、RS485等)將刀具路徑數(shù)據(jù)傳輸給嵌入式控制板,控制板上的微處理器用特定的算法將輸入的路徑信息轉(zhuǎn)化為數(shù)控信息,并生成脈沖驅(qū)動(dòng)伺服電機(jī),控制主軸以及X,Y,Z各坐標(biāo)軸的運(yùn)動(dòng),實(shí)現(xiàn)零件加工中的控制。同時(shí)加工過程中加工點(diǎn)的坐標(biāo)位置等加工信息可在LCD液晶顯示器上顯示。
系統(tǒng)采用三星S3C2440A芯片作為主CPU,該芯片的突出特點(diǎn)是其處理器核心是一個(gè)16/32位的、具有ARM920T的RISC處理器,處理速度滿足設(shè)計(jì)需求。該芯片還具有獨(dú)立的16KB指令高速緩存和16KB數(shù)據(jù)高速緩存,電壓為1.3V時(shí)工作頻率可達(dá)400MHz。從CPU采用AVR公司生產(chǎn)的ATmega88,存儲(chǔ)器工作電壓為3.3V,具有8K系統(tǒng)內(nèi)可編程FLASH,工作頻率可滿足精插補(bǔ)需求。開發(fā)軟件采用 ADS1.2(ARM Developer Suite)。ADS1.2包括了4個(gè)模塊:SIMULATOR、C編譯器、實(shí)時(shí)調(diào)試器和應(yīng)用函數(shù)庫。ADS1.2提供了完整的Windows界面開發(fā)環(huán)境,C編譯器效率極高,支持C及C++,方便使用C語言進(jìn)行開發(fā)[2]。有了以上部件,即可完成ARM系列的RISC處理器的軟件編寫和調(diào)試應(yīng)用等工作。
在ARM處理器平臺(tái)上進(jìn)行軟件開發(fā),通常采用2種方式,一種是基于操作系統(tǒng)的軟件設(shè)計(jì),另一種是脫離操作系統(tǒng)的裸機(jī)軟件設(shè)計(jì),此種方法與以往8位機(jī)和16位機(jī)上常用的開發(fā)方式類似[3]。
本文研究和設(shè)計(jì)的多功能機(jī)床數(shù)控系統(tǒng),只需完成車、銑、鉆等功能,相對(duì)簡(jiǎn)單而且獨(dú)立,因此系統(tǒng)可采用“裸機(jī)”的形式,利用微處理器較高的工作頻率,實(shí)現(xiàn)加工控制。系統(tǒng)軟件部分需完成的功能包括加工信息的預(yù)處理及傳輸、交流伺服電機(jī)的聯(lián)動(dòng)、主軸變頻電機(jī)的旋轉(zhuǎn),以及加工過程中加工信息的實(shí)時(shí)顯示等。其軟件總體設(shè)計(jì)如圖1所示。
圖1 嵌入式系統(tǒng)結(jié)構(gòu)框圖
3.1.1 加工代碼概述
根據(jù)加工代碼的特點(diǎn),可將G代碼和M代碼按各自的功能屬性分組,每組代碼只需設(shè)置一個(gè)獨(dú)立的存儲(chǔ)單元,并以特征字來區(qū)分本組中的不同代碼。這樣不僅可以極大地壓縮譯碼的存儲(chǔ)規(guī)模,保證譯碼的效率,還方便診斷程序段中的有關(guān)邏輯錯(cuò)誤。
X功能代碼、Y功能代碼、I功能代碼、J功能代碼、F功能代碼等在一個(gè)程序段中只會(huì)出現(xiàn)一次,因此這些功能代碼在緩沖器中存儲(chǔ)只需占用一個(gè)固定的存儲(chǔ)單元。另外,F(xiàn)功能代碼的數(shù)值只能是一個(gè)整數(shù),因此該代碼的存儲(chǔ)單元數(shù)據(jù)類型應(yīng)該是整型;X、Y、I、J功能代碼值表示一個(gè)坐標(biāo)值,有可能是整數(shù),也有可能是小數(shù),因此此類代碼采用雙精度實(shí)型的數(shù)據(jù)類型。系統(tǒng)譯碼結(jié)果在緩沖器中的存儲(chǔ)格式見表1。
表1 譯碼結(jié)構(gòu)存儲(chǔ)格式
3.1.2 譯碼方式選擇
所謂譯碼就是對(duì)零件的加工程序進(jìn)行處理,使其按一定的語法規(guī)則翻譯成計(jì)算機(jī)能夠識(shí)別的數(shù)據(jù)形式,并以一定的數(shù)據(jù)格式存放到指定的內(nèi)存當(dāng)中[4]。按照編譯原理譯碼主要分為解釋方式和編譯方式,2種譯碼方式的比較如圖2所示。
考慮上述2種編譯方式的特點(diǎn)以及系統(tǒng)的硬件構(gòu)成,系統(tǒng)采用解釋方式,其速度較慢的缺點(diǎn)已經(jīng)被更高速的硬件彌補(bǔ),系統(tǒng)主CPU工作頻率可達(dá)400MHz,性能上完全滿足解釋譯碼方式對(duì)系統(tǒng)的要求,在加工時(shí),能保證解釋代碼的實(shí)時(shí)性。
圖2 譯碼方式的比較
3.1.3 譯碼過程
譯碼過程一般分為3個(gè)步驟:程序載入、程序語法檢查和程序解釋[5]?;镜慕忉屗悸肥?把一段G代碼看成一個(gè)字符串,對(duì)它進(jìn)行掃描,每判斷出一句程序段,便轉(zhuǎn)入解釋,作相應(yīng)的處理,然后繼續(xù)掃描,判斷出程序段再轉(zhuǎn)入解釋,直到所有字符都掃描完為止。若是程序段,則段數(shù)加1,否則繼續(xù)讀下一個(gè)字符,直到讀到程序結(jié)束符(字符串為M02或M30)不再往下讀。譯碼流程如圖3所示。
圖3 譯碼流程圖
系統(tǒng)之所以選擇S3C2440A為控制核心,很重要的一個(gè)因素是因?yàn)镾3C2440A的定時(shí)器具有PWM功能,通過對(duì)定時(shí)器一些功能寄存器的配置,可定義占空比的大小和改變輸出頻率,此功能可實(shí)現(xiàn)對(duì)電機(jī)的控制。
系統(tǒng)采用定時(shí)中斷的方式實(shí)現(xiàn)對(duì)PWM定時(shí)器的控制,流程如圖4所示,具體操作步驟如下:首先,進(jìn)行中斷初始化,包括中斷模式寄存器以及中斷控制寄存器的設(shè)置;其次,設(shè)置定時(shí)器,確定其工作頻率以及工作方式、除法器值;再次,打開定時(shí)中斷,調(diào)用插補(bǔ)程序,獲取各軸接收脈沖數(shù)以及確定各自運(yùn)動(dòng)方向,根據(jù)脈沖的數(shù)量對(duì)定時(shí)器相關(guān)寄存器進(jìn)行設(shè)置;最后,在下次定時(shí)中斷到來時(shí)進(jìn)行相同的操作。以此方式即可連續(xù)均勻地發(fā)出系統(tǒng)所需脈沖。
圖4 定時(shí)器操作流程
3.3.1 控制器初始化
系統(tǒng)選用群創(chuàng)(INNOLUX)公司生產(chǎn)的TFT型液晶屏 AT080TN52,分辨率為 800×600,采用16bpp無調(diào)色板模式,因此液晶顯示初始化主要工作包括:初始化控制器LCDCON1~5,設(shè)置顯示模式和顏色數(shù)及分配LCD顯示緩沖區(qū)。
具體設(shè)置如下:
3.3.2 LCD 接口函數(shù)
要實(shí)現(xiàn)LCD接口函數(shù),最重要的是了解液晶的顯示原理和物理屏與顯示緩沖區(qū)的對(duì)應(yīng)關(guān)系。系統(tǒng)采用16bpp顯示模式,可理解為液晶屏上的一個(gè)像素點(diǎn)用16個(gè)二進(jìn)制位來表示,每個(gè)像素的16位分成5位紅、6位綠、5位藍(lán),因此系統(tǒng)初始化時(shí)需在SDRAM存儲(chǔ)器中開辟一塊INT16U LCD_Buffer[800×600]大小的顯示緩沖區(qū)。新開設(shè)的緩沖區(qū)與液晶屏是一種映射關(guān)系,即LCD屏上的某一像素點(diǎn)(x,y)與顯示緩沖區(qū)LCD_Buffer[y×800+x]相對(duì)應(yīng),對(duì)液晶屏的顯示操作就是對(duì)顯示緩沖區(qū)中對(duì)應(yīng)的位置寫入數(shù)據(jù)。LCD初始化后,可以通過直接修改顯示緩沖區(qū)實(shí)現(xiàn)顯示。如下代碼為在LCD的(x,y)位置處以顏色c打一個(gè)點(diǎn)。
有了打點(diǎn)函數(shù)后,要顯示圖片和字符就變得相對(duì)簡(jiǎn)單了,只需要在相應(yīng)的顯示函數(shù)中調(diào)用打點(diǎn)函數(shù)就可以完成了。繪圖函數(shù)包括畫線、畫矩形。文字顯示函數(shù)包括英文字母、漢字、數(shù)字等。它們都由特定的點(diǎn)陣數(shù)據(jù)組成,即都是通過打點(diǎn)函數(shù)的組合來顯示。例如:
3.3.3 漢字庫的嵌入
系統(tǒng)中字符都是由特定格式的點(diǎn)陣數(shù)據(jù)組成,因此可利用字模提取工具按照指定格式獲取對(duì)應(yīng)的點(diǎn)陣數(shù)據(jù),然后將點(diǎn)陣數(shù)據(jù)由CPU發(fā)送至液晶顯示控制器。以點(diǎn)陣為16×16的漢字為例,字符點(diǎn)陣數(shù)據(jù)在CPU的存儲(chǔ)方式為:
系統(tǒng)根據(jù)數(shù)組行號(hào)找到字符的字模數(shù)據(jù),從而實(shí)現(xiàn)所需字符的顯示。本系統(tǒng)中,文字的字體高度與寬度(以像素為單位)都設(shè)定為8的整數(shù)倍,點(diǎn)陣數(shù)據(jù)以十六進(jìn)制的形式存放于數(shù)組中。英文字母的格式為8×16;漢字格式為16×16;數(shù)字的格式有8×16和16×32兩種,其中16×32格式的數(shù)字用于加工過程中各坐標(biāo)值的顯示。
軟件設(shè)計(jì)完成后,即可對(duì)系統(tǒng)軟件進(jìn)行綜合調(diào)試。主要方法是:加工用刀具、進(jìn)給速率以及主軸轉(zhuǎn)速可在LCD液晶顯示器上顯示;同時(shí)程序每讀一行,系統(tǒng)X,Y,Z軸坐標(biāo)值也可在LCD上顯示;當(dāng)系統(tǒng)執(zhí)行完G00功能后,繼續(xù)按照程序走完G01功能,如圖5所示。
圖5 系統(tǒng)聯(lián)調(diào)LCD顯示圖像
研究與調(diào)試結(jié)果表明,基于微處理器S 3C2440A和ATmega88的雙CPU嵌入式數(shù)控系統(tǒng),能夠完成車、銑、鉆等加工功能,加工信息可以實(shí)時(shí)顯示,并且具有響應(yīng)速度快、可靠性高、成本低的特點(diǎn)。在要求快速移動(dòng)和加工速度適中的經(jīng)濟(jì)型數(shù)控機(jī)床領(lǐng)域具有廣闊的應(yīng)用前景。
[1]王禮健.車銑復(fù)合加工技術(shù)[J].航空制造技術(shù),2004,8(4):48-49.
[2]張風(fēng)仙.嵌入式控制系統(tǒng)設(shè)計(jì)課程的特點(diǎn)和教學(xué)方法研究[J].科技創(chuàng)新導(dǎo)報(bào),2010,10(2):174.
[3]魏忠,蔡勇,雷紅衛(wèi).嵌入式開發(fā)詳解[M].北京:電子工業(yè)出版社,2003.
[4]孟健.數(shù)控系統(tǒng)中譯碼模塊的研究[D].阜新:遼寧工程技術(shù)大學(xué),2006.
[5]陳秀珍.基于Windows的經(jīng)濟(jì)型CNC系統(tǒng)譯碼模塊設(shè)計(jì)[J].數(shù)控機(jī)床市場(chǎng),2008,2(3):102-103 .
Development of Multi-function Machine Tool Numerical Control System Based on ARM9
WANG Yue
(Chinese Satellite Sea Measurement and Control Department,Jiangsu Jiangyin,214400,China)
Based on the embedded system and multi- function numerical control machine tool,it establishes the double CPU architecture,uses microprocessor S3C2440A as primarily CPU and takes SCM ATmega88 as auxiliary CPU,develops the multi-function machine tool numerical control system.The primarily CPU completes the CNC program input,LCD display,program interpretation,coarse interpolation and main function.The auxiliary CPU executives fine interpolation function.There are human -computer interaction module,communication module,servo module,input/output module in the system.Testing results show that the system has high response speed,reliability,low cost,can expand and cut according to the actual needs of function.This system has the broad application prospect in economical NC machine tools.
ARM9;Machine Tool;Numerical Control;Software System;Design
TG273
A
2095-509X(2013)05-0035-05
10.3969/j.issn.2095 -509X.2013.05.009
2012-07-08
汪越(1988—),男,江蘇江陰人,中國衛(wèi)星海上測(cè)控部工程師,碩士,主要從事機(jī)械制造及其自動(dòng)化方面的研究工作。