畢 龍
(上海新僑職業(yè)技術(shù)學(xué)院,上海 200237)
基于嵌入式平臺的全軟件數(shù)控系統(tǒng)設(shè)計(jì)方案是一種新的數(shù)控系統(tǒng)設(shè)計(jì)方案,與傳統(tǒng)的數(shù)控系統(tǒng)體系結(jié)構(gòu)有很大的區(qū)別。本章詳細(xì)介紹基于嵌入式實(shí)時(shí)操作系統(tǒng)的全軟件數(shù)控系統(tǒng)結(jié)構(gòu)體系,指出該方案是一種可靠性高、經(jīng)濟(jì)性好、易于開發(fā)與維護(hù)的數(shù)控系統(tǒng)設(shè)計(jì)方案[1,2]。然后結(jié)合機(jī)床對象以及基于嵌入式平臺的全軟件數(shù)控系統(tǒng)設(shè)計(jì)方案的一般思路,討論數(shù)控系統(tǒng)的軟硬總體框架設(shè)計(jì)。
基于嵌入式實(shí)時(shí)操作系統(tǒng)的全軟件數(shù)控系統(tǒng)是一種全新的數(shù)控系統(tǒng)實(shí)現(xiàn)方案,它建立在嵌入式計(jì)算機(jī)系統(tǒng)軟硬件最新發(fā)展成果的基礎(chǔ)上。全軟件數(shù)控中的“全軟件”指的是將數(shù)控系統(tǒng)中原來必須由專用芯片完成的插補(bǔ)、PLC功能轉(zhuǎn)變?yōu)榫哂懈邇?yōu)先級的軟件任務(wù),同時(shí),將譯碼、通信、報(bào)警等功能模塊任務(wù)化,依靠嵌入式實(shí)時(shí)操作系統(tǒng)支持,根據(jù)數(shù)控系統(tǒng)內(nèi)部信息流、物質(zhì)流與能量流的要求,設(shè)計(jì)出基于嵌入式實(shí)時(shí)操作系統(tǒng)的滿足特定設(shè)計(jì)要求的全軟件數(shù)控系統(tǒng)[3]。
如同基于PC平臺與通用操作系統(tǒng)的全軟件數(shù)控一樣,基于嵌入式平臺的全軟件數(shù)控系統(tǒng)必須建立在嵌入式硬件與嵌入式實(shí)時(shí)操作系統(tǒng)軟件平臺上。基于嵌入式平臺的全軟件數(shù)控系統(tǒng)分為四層。第一層為硬件層,第二層為板級支持包層(Board Sμpport Package),第三層為API功能層,第四層為應(yīng)用程序?qū)印?/p>
硬件層主要是以嵌入式微處理器為核心的嵌入式硬件平臺。全軟件數(shù)控系統(tǒng)的重要特點(diǎn)就是硬件模塊軟件化,如插補(bǔ)、PLC等。因而,要求嵌入式微處理器必須具有豐富的片內(nèi)外設(shè)功能,如用于發(fā)送控制脈沖的定時(shí)器、可用作開關(guān)量輸入/輸出的GPIO、顯示模塊、ΜART通訊模塊等;板級支持包(BSP)層主要包括啟動代碼Bootloader、硬件驅(qū)動和RTOS移植。該層主要用于初始化硬件系統(tǒng)、設(shè)計(jì)硬件驅(qū)動和RTOS移植。其中BootLoader在硬件通電后自動執(zhí)行,用于初始化CPΜ、開發(fā)板上其他硬件;硬件驅(qū)動用于抽象嵌入式微處理器的片內(nèi)外設(shè),為文件系統(tǒng)、網(wǎng)絡(luò)、GΜI提供硬件操作封裝;RTOS移植則將RTOS移植到特定的嵌入式微處理器上,從而為RTOS內(nèi)核服務(wù)的正常運(yùn)行提供保障。
API功能層主要是提供應(yīng)用程序?qū)覣PI函數(shù)。其中RTOS、文件系統(tǒng)、網(wǎng)絡(luò)、GΜI均以API的形式提供給應(yīng)用程序?qū)印TOS包括了所有的內(nèi)核服務(wù)功能,IHOS為多任務(wù)系統(tǒng)的同步、通訊、調(diào)度等功能提供完善的內(nèi)核服務(wù)支持;文件系統(tǒng)則負(fù)責(zé)提供數(shù)控系統(tǒng)的文件管理功能;網(wǎng)絡(luò)功能則方便數(shù)控系統(tǒng)與上位機(jī)進(jìn)行網(wǎng)絡(luò)通訊;GΜI提供給應(yīng)用程序設(shè)計(jì)人機(jī)界面的基本繪圖工具。
應(yīng)用程序?qū)犹幱诨谇度胧狡脚_的全軟件數(shù)控系統(tǒng)體系結(jié)構(gòu)的頂層,用于實(shí)現(xiàn)特定應(yīng)用系統(tǒng)功能。由于數(shù)控系統(tǒng)是一個(gè)非常復(fù)雜的控制系統(tǒng),為了方便系統(tǒng)開發(fā)以及增加系統(tǒng)軟件可靠性、可維護(hù)性,將數(shù)控系統(tǒng)劃分為主要的幾個(gè)任務(wù),利用RTOS完善的任務(wù)管理功能實(shí)現(xiàn)數(shù)控系統(tǒng)功能。
基于嵌入式實(shí)時(shí)操作系統(tǒng)的全軟件數(shù)控系統(tǒng)是一種特殊結(jié)構(gòu)的數(shù)控系統(tǒng)實(shí)現(xiàn)形式,其主要的特點(diǎn)如下:1) 全軟件:即數(shù)控系統(tǒng)主要功能模塊全部用軟件實(shí)現(xiàn),如插補(bǔ)、PLC等;2) 單CPΜ結(jié)構(gòu):即無需使用價(jià)格昂貴的專用芯片如插補(bǔ)芯片、PLC等,只需利用嵌入式微控制器的高速計(jì)算能力和豐富的片內(nèi)外設(shè),即可為軟數(shù)控提供必要的硬件支持;3) 嵌入式實(shí)時(shí)操作系統(tǒng)的支持:相比利用通用桌面操作系統(tǒng)及其實(shí)時(shí)性補(bǔ)丁,嵌入式實(shí)時(shí)操作系統(tǒng)的高可靠性、完善的任務(wù)通信機(jī)制等為數(shù)控系統(tǒng)任務(wù)調(diào)度提供了有力的、安全的、實(shí)時(shí)的軟件開發(fā)平臺。
μC/OS-II也是一個(gè)微型的嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng),可以將μC/OS-II的核心程序直接添加到嵌入式集成開發(fā)環(huán)境中,作為整個(gè)工程的一部分;由于本數(shù)控系統(tǒng)不需要復(fù)雜的聯(lián)網(wǎng)與文件系統(tǒng)功能,從節(jié)約嵌入式實(shí)時(shí)操作系統(tǒng)的使用成本以及獲取開發(fā)支持文檔考慮,選擇μC/OS-II是再合適不過的[4]。綜上所述,使用計(jì)算速度快、片內(nèi)外設(shè)豐富的ARM微處理器硬件平臺,以及內(nèi)核服務(wù)完善、可移植性好的μC/OS-II嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)的軟件平臺,可以很好地解決基于嵌入式實(shí)時(shí)操作系統(tǒng)的全軟件數(shù)控系統(tǒng)設(shè)計(jì)方案的軟硬平臺選擇問題。
本數(shù)控系統(tǒng)選擇了三星公司的ARM7系列處理器—S3C44Box作為嵌入式系統(tǒng)的硬件電路的CPΜ。Samsμng S3C44BOX微處理器是三星公司專為手持設(shè)備和一般工業(yè)應(yīng)用提供的高性價(jià)比和高性能的微控制器解決方案,它使用ARM7TDMI核,工作在66Mhz,為了降低系統(tǒng)總成本和減少外圍器件,這款芯片中還集成了下列部件:8KB cache、存儲器控制器、LCD控制器、4個(gè)DEg,通道、2個(gè)ΜART通道、1個(gè)多主IIC總線控制器、1個(gè)IIS總線控制器、5個(gè)PWM定時(shí)器和一個(gè)內(nèi)部定時(shí)器、71個(gè)通用I/O口、8個(gè)外部中斷源、實(shí)時(shí)時(shí)鐘、8個(gè)12位ADC通道。
選擇了嵌入式ARM開發(fā)板。該開發(fā)板選擇嵌入式微處理器S3C44BOX主芯片,具有豐富的外設(shè),選擇廣州微嵌科技的嵌入式ARM開發(fā)板,是因?yàn)殚_發(fā)板具有如下優(yōu)點(diǎn):1)大容量的存儲系統(tǒng)。首先,用來存放數(shù)控系統(tǒng)應(yīng)用程序的NorFlash多達(dá)2M,可以輕松地存放復(fù)雜的全軟件數(shù)控系統(tǒng)編譯后的二進(jìn)制文件;其次,基于NandFlash可以設(shè)計(jì)文件系統(tǒng),用來存放和管理數(shù)控系統(tǒng)加工文件;最后,由于有大容量RAM的支持,可以將存放在Flash的數(shù)控系統(tǒng)應(yīng)用程序轉(zhuǎn)移到RAM中,以提高執(zhí)行速度;2)LCD接口和256色8英寸LCD顯示器。可以利用LCD顯示器,顯示一些實(shí)時(shí)數(shù)據(jù)、加工軌跡、系統(tǒng)信息等等;3)豐富的通訊接口。開發(fā)板上不儀提供了常用的RS232串口,還集成了網(wǎng)絡(luò)接口、MSB接口、IIC接口,這不僅大大方便了數(shù)控系統(tǒng)開發(fā),還為將來系統(tǒng)升級打下基礎(chǔ)。其中,串口可以用來作為與上位機(jī)控制軟件的通訊接口,下載上位機(jī)中的加工文件、控制命令、系統(tǒng)參數(shù)等等。通過IIC接口,可以方便地將一些數(shù)控系統(tǒng)參數(shù)保存到EEPROM中。將來,為了加快文件傳輸速度以及聯(lián)網(wǎng)的需求,可以利用IOM的網(wǎng)絡(luò)接口與上位機(jī)通訊,通過ΜSB可以方便存取加工文件等等;4)多達(dá)5路的PWM脈沖輸出端口。根據(jù)計(jì)算出來的插補(bǔ)位置點(diǎn),可以利用PWM脈沖輸出功能輸出X、Y、Z軸的進(jìn)給脈沖;5)豐富的GPIO口。有了大量GPIO口的保證,可以方便地解決機(jī)床電氣與數(shù)控系統(tǒng)之間的接口問題;但開發(fā)板也有其不足的地方,一般情況下開發(fā)板只提供一些基本的外設(shè)電路,如與機(jī)床電氣系統(tǒng)的接口部分以及通用輸入設(shè)備——鍵盤則需要根據(jù)具體的應(yīng)用而具體設(shè)計(jì)。為了解決這兩個(gè)問題,除了選擇基本開發(fā)板之外,還設(shè)計(jì)了數(shù)控系統(tǒng)機(jī)床電氣接口板和可以利用PS/2鍵盤的基于PC的數(shù)控操作程序。
依據(jù)銑床功能分析,基于μC/OS-II的全軟件數(shù)控系統(tǒng)軟件結(jié)構(gòu)主要有以下結(jié)構(gòu)組成。由于數(shù)控系統(tǒng)基本上是由人機(jī)接口、譯碼、軟PLC、刀
任務(wù)是功能模塊的抽象化形式,嵌入式實(shí)時(shí)操作系統(tǒng)的管理對象。全軟件數(shù)控系統(tǒng)具有的功能模塊有:串口通訊、譯碼、預(yù)插補(bǔ)、插補(bǔ)、軟PLC、調(diào)式。因此,分別定義了串口通訊任務(wù):Mart_Task、譯碼任務(wù):DeCode_Task、預(yù)插補(bǔ)任務(wù):PreInterpolate_Task、插補(bǔ)任務(wù):Interpolate_Task、軟PLC任務(wù):SoftPLC_Task、調(diào)式模塊任務(wù):Debμg_Task。根據(jù)各個(gè)任務(wù)的實(shí)時(shí)性不同,任務(wù)優(yōu)先級也不同,且每個(gè)任務(wù)的優(yōu)先級是唯一的,實(shí)時(shí)性越強(qiáng)的任務(wù)優(yōu)先級也越高。此外,為了集中管理所有任務(wù),設(shè)計(jì)了主任務(wù):Main Task PRIO。該任務(wù)總是不斷地等待其他任務(wù)發(fā)來事件標(biāo)志,從而依據(jù)任務(wù)狀態(tài)機(jī)作出相應(yīng)反應(yīng)。
全軟件數(shù)控系統(tǒng)的軟件部分包括了全軟件數(shù)控系統(tǒng)的第二、三、四層。板級支持包層是基于嵌入式平臺的全軟件數(shù)控系統(tǒng)實(shí)現(xiàn)的基礎(chǔ)和前提;嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II在全軟件數(shù)控系統(tǒng)的軟件結(jié)構(gòu)中處于核心地位。它不僅直接管理數(shù)控系統(tǒng)的各軟件任務(wù)的建立、運(yùn)行、掛起、中斷、睡眠等狀態(tài)的切換,而且還提供了如消息、郵箱、時(shí)間標(biāo)志組、隊(duì)列等機(jī)制,大大方便了任務(wù)之間通訊、同步等功能的實(shí)現(xiàn):應(yīng)用程序?qū)影ǎ捍谕ㄓ嵢蝿?wù)、譯碼任務(wù)、預(yù)插補(bǔ)任務(wù)、插補(bǔ)任務(wù)、軟PLC任務(wù)、主任務(wù)。
只有充分利用各種先進(jìn)的、現(xiàn)成的技術(shù),不局限于國外數(shù)控機(jī)床廠商的技術(shù)途徑,才能為我國的數(shù)控系統(tǒng)的發(fā)展打開一番新天地。本文提出的基于嵌入式平臺的全軟件數(shù)控系統(tǒng)體系結(jié)構(gòu)是一種新型數(shù)控系統(tǒng)體系結(jié)構(gòu),它建立在RISC結(jié)構(gòu)的嵌入式ARM處理器硬件平臺和μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng)軟件軟件平臺上,對于今后數(shù)控機(jī)床發(fā)展具有一定作用。
[1] 王悅善, 陳曾漢. 嵌入式PC的數(shù)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)械設(shè)計(jì)與制造, 2010, (4).
[2] 劉清建, 王太勇, 王濤, 等. 嵌入式數(shù)控系統(tǒng)的結(jié)構(gòu)可靠性分析[J]. 天津大學(xué)學(xué)報(bào), 2010, 43(2).
[3] 邵明, 李光煬, 楊惠靈. 基于FPGA的嵌入式數(shù)控系統(tǒng)功能模塊設(shè)計(jì)[J]. 機(jī)床與液壓, 2010, 38(16).
[4] 王田苗, 陳友東, 孫愷, 等. 基于μc/os-Ⅱ嵌入式數(shù)控系統(tǒng)研制[J]. 北京航空航天大學(xué)學(xué)報(bào), 2006, 32(4).