文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)11-0026-03
0 引言
隨著計(jì)算機(jī)技術(shù)的飛快發(fā)展,如今的開放式數(shù)控系統(tǒng)主要是基于 PC 的開放式數(shù)控系統(tǒng)[1],此類型的數(shù)控系統(tǒng)一般采用通用操作系統(tǒng),存在CPU結(jié)構(gòu)復(fù)雜、功耗大、硬件冗余不可裁剪且可靠性不高等諸多不足,很難滿足數(shù)控系統(tǒng)對強(qiáng)實(shí)時(shí)性和穩(wěn)定性的要求。近年來逐漸發(fā)展起來的嵌入式技術(shù)在工業(yè)領(lǐng)域得到了越來越廣泛的應(yīng)用。基于微處理器和嵌入式操作系統(tǒng)的數(shù)控轉(zhuǎn)塔沖床數(shù)控系統(tǒng)具有傳統(tǒng)數(shù)控系統(tǒng)不可比擬的優(yōu)點(diǎn): 嵌入式系統(tǒng)功耗低、可靠性高;功能強(qiáng)大,性能價(jià)格比高;實(shí)時(shí)性強(qiáng),支持多任務(wù);占用空間小,效率高;面向特定應(yīng)用,可根據(jù)需要定制[2]。因此提出基于CORTEXA8微處理器和嵌入式操作系統(tǒng)(WinCE7)的嵌入式數(shù)控系統(tǒng)。
1 系統(tǒng)總體方案
設(shè)計(jì)采用ARM-CORTEXA8微處理器作為主CPU負(fù)責(zé)整個(gè)數(shù)控系統(tǒng)的任務(wù)管理調(diào)度。數(shù)控系統(tǒng)中上位機(jī)與嵌入式機(jī)床控制器之間采用無線通信代替?zhèn)鹘y(tǒng)的線纜通信。數(shù)控系統(tǒng)中,F(xiàn)PGA接受ARM以及外部RAM發(fā)送來的控制指令和數(shù)據(jù)信息并執(zhí)行插補(bǔ)運(yùn)算,產(chǎn)生控制步進(jìn)電機(jī)運(yùn)轉(zhuǎn)的脈沖序列,然后通過接口將脈沖序列送到步進(jìn)電機(jī)驅(qū)動(dòng)器,實(shí)現(xiàn)對電機(jī)的控制[3]。嵌入式數(shù)控系統(tǒng)的操作系統(tǒng),采用微軟的最新一代嵌入式操作系統(tǒng)Windows Embedded Compact7(WinCE7),并根據(jù)數(shù)控系統(tǒng)的功能要求對內(nèi)核進(jìn)行了相應(yīng)裁剪,提高了數(shù)控系統(tǒng)的實(shí)時(shí)性。數(shù)控轉(zhuǎn)塔沖床數(shù)控系統(tǒng)總體結(jié)構(gòu)如圖1所示。
2 系統(tǒng)硬件平臺(tái)設(shè)計(jì)
穩(wěn)定、可靠的硬件系統(tǒng)是軟件系統(tǒng)運(yùn)行的物理基礎(chǔ),關(guān)系著整個(gè)數(shù)控系統(tǒng)性能的好壞。高配置的硬件系統(tǒng)是實(shí)現(xiàn)高性能數(shù)控系統(tǒng)的有力保障。合理的硬件系統(tǒng)結(jié)構(gòu)可優(yōu)化系統(tǒng)資源配置,使系統(tǒng)性能得到更好發(fā)揮。硬件結(jié)構(gòu)如圖2所示,采用TI公司的AM335X CortexA8處理器,運(yùn)行主頻最高可達(dá)1 GHz,集成了1路千兆網(wǎng)口、CAN總線控制器、IIC控制器、LCD控制器、Power VR SGX530圖形處理器,非常適合工業(yè)控制。AM335X CortexA8處理器主要負(fù)責(zé) LCD、串口、無線通信和 USB 接口的處理及運(yùn)行嵌入式 WinCE7 操作系統(tǒng),實(shí)現(xiàn)譯碼、文件系統(tǒng)、無線網(wǎng)絡(luò)、圖形顯示和 PLC編輯功能。FPGA內(nèi)在的并行機(jī)制決定了它的高速處理能力遠(yuǎn)遠(yuǎn)領(lǐng)先于其他串行執(zhí)行架構(gòu)的CPU,將其應(yīng)用在嵌入式數(shù)控系統(tǒng)中將大大提高系統(tǒng)的響應(yīng)速度,進(jìn)而提高數(shù)控機(jī)床的加工精度[4]。FPGA作為精插補(bǔ)器在下位機(jī)系統(tǒng)中實(shí)現(xiàn)數(shù)控系統(tǒng)硬件插補(bǔ)以替代速度較慢的軟件插補(bǔ),克服了傳統(tǒng)專用集成電路靈活性差、成本高的缺點(diǎn)。CPLD模塊主要負(fù)責(zé)系統(tǒng)操作面板、鍵盤、LED等信號(hào)的處理。
2.1 系統(tǒng)無線通信的實(shí)現(xiàn)
設(shè)計(jì)選用低功耗、易組網(wǎng)、在工業(yè)領(lǐng)域得到越來越廣泛應(yīng)用的ZigBee無線網(wǎng)絡(luò)技術(shù)。要實(shí)現(xiàn)數(shù)控系統(tǒng)的無線通信,ZigBee驅(qū)動(dòng)的開發(fā)就顯得尤為重要。
嵌入式操作系統(tǒng)中本機(jī)設(shè)備驅(qū)動(dòng)程序適合于集成到WinCE平臺(tái)上的設(shè)備,如LED和電源,WinCE以定制接口的方式來支持本機(jī)設(shè)備驅(qū)動(dòng),開發(fā)人員無需編寫設(shè)備驅(qū)動(dòng)程序。流接口驅(qū)動(dòng)程序是為連接到WinCE平臺(tái)的外圍設(shè)備而設(shè)計(jì)的驅(qū)動(dòng)程序[5]。因此ZigBee驅(qū)動(dòng)采用流接口驅(qū)動(dòng)模式編寫,該驅(qū)動(dòng)的主要作用是實(shí)現(xiàn)ZigBee模塊數(shù)據(jù)的收發(fā)、組網(wǎng)、入網(wǎng)、獲取RSSI值等。下面對基于流驅(qū)動(dòng)開發(fā)模式下ZigBee驅(qū)動(dòng)實(shí)現(xiàn)的幾個(gè)主要的流接口函數(shù)進(jìn)行介紹。
(1)DWORD CC2531_Init(DWORD dWContext)
{
RETAILMSG(l,(TEXT(“CC2531_Init----\r\n”)));
Serlnit();
CC2531init();
}
此函數(shù)功能是實(shí)現(xiàn)模塊初始化串口寄存器使能和主要參數(shù)的設(shè)定。Serlnit( )函數(shù)的功能是完成物理地址的申請,虛擬地址到物理地址的映射和波特率設(shè)置。CC2531init()通過調(diào)用系統(tǒng)串口發(fā)送函數(shù)的方式來設(shè)置CC2531串口的波特率,停止位以及寄存器使能。
(2)BooL CC2531_IOControl(DWORD hopenContext,DW-
ORD dwCode,PBYTE PBufin,DWORD dwLenln,PBYTE PBu-
fout,DWORD dwLenout,PDWORD PdwActualout)
{
switch(dwCode)
{
case IO_CTL_CC2531_GDAIMA:
SendDate(0x l<< l);
case IO_CTL_CC2531_XITONGCANSHU:
SendDate(0x l<<2);
case IO_CTL_CC2531_DAOBUCANSHU:
SendDate(0xl<<3);
case IO_CTL_CC2531_RSSI:
SendDate(0xl<<4);
case IO_CTL_CC2531_REFNODE_REQUEST_CONFIG:
SendDate(0xl<<23);
……
……
}
}
此函數(shù)用于向設(shè)備發(fā)送命令。DeviceIOControl()函數(shù)實(shí)現(xiàn)操作系統(tǒng)對此函數(shù)的調(diào)用。參數(shù)dwCode用來告知驅(qū)動(dòng)程序要執(zhí)行的操作。驅(qū)動(dòng)設(shè)計(jì)中,定義了較簡單的幾個(gè)命令,如G代碼、嵌入式數(shù)控系統(tǒng)參數(shù)、刀補(bǔ)參數(shù)、RSSI值,其值分別為1、2、3、4。當(dāng)CC2531收到應(yīng)用程序與這幾個(gè)命令相關(guān)時(shí),無線模塊就在網(wǎng)絡(luò)中收集與之相關(guān)的數(shù)據(jù),然后發(fā)送給與機(jī)床相連無線模塊。
2.2 FPGA與ARM通信及配置接口設(shè)計(jì)
ARM微處理器系統(tǒng)與FPGA系統(tǒng)之間的通信接口包括串行與并行兩種,其中串行方式通過它們自身配置的接口實(shí)現(xiàn),并行接口則根據(jù)提供的總線模式進(jìn)行設(shè)計(jì)。FPGA與AM335X CortexA8之間數(shù)據(jù)和控制命令的傳輸通過地址總線和數(shù)據(jù)總線方式完成,其接口示意圖如圖3所示,其中GPMC_A[11:0]為的12位地址總線;GPMC_D[l5:0]為16位數(shù)據(jù)總線;GPMC_WEn實(shí)現(xiàn)FPGA的寫使能傳輸且低電平有效;GPMC_OEn傳輸FPGA的輸出使能信號(hào)且為低電平有效;GPMC_CSn是傳輸FPGA的片選信號(hào)低電平有效;RESET傳輸給FPGA復(fù)位信號(hào),高電平有效;INTO為FPGA傳輸給AM335X的中斷信號(hào)且低電平有效。
要實(shí)現(xiàn)基于FPGA的邏輯功能,必須首先完成對FPGA的配置。FPGA主要有專用配置芯片,被動(dòng)串行配置,被動(dòng)并行同步配置,被動(dòng)并行異步配置和JTAG配置五種配置方式。設(shè)計(jì)采用微處理器的被動(dòng)串行配置方案,配置簡化電路圖如圖4所示。
3 系統(tǒng)軟件平臺(tái)搭建
Windows Embedded Compact7(WinCE7)不僅支持X86和MIPS,同時(shí)支持最新的ARMv7架構(gòu)和多核處理器并能在Visual Studio 2008中無縫集成Platform Builder 2008,可以為開發(fā)者提供更高效的、流暢的開發(fā)體驗(yàn)[6]。設(shè)計(jì)選擇Windows Embedded CE系列最新一代操作系統(tǒng) Windows Embedded Compact 7來進(jìn)行軟件系統(tǒng)的開發(fā)。
為了節(jié)約PC的磁盤空間和保證運(yùn)行速率,首先,對操作系統(tǒng)進(jìn)行裁剪,添加必要的特性,配置各個(gè)組件進(jìn)行平臺(tái)設(shè)置。結(jié)合設(shè)計(jì)的需要,安裝VS2008時(shí)由于開發(fā)用到的語言是VC++語言其他開發(fā)語言無需安裝;在搭建Platform Builder時(shí)由于Cortex-A8微處理器的平臺(tái)遵從ARMv7架構(gòu)規(guī)范,安裝時(shí)只選“ARMv7 Architecture”即可。下面是Windows Embedded Compact7開發(fā)環(huán)境搭建步驟:(1)Visual Studio 2008,(2)MSDN Library for Visual Studio 2008,(3)Visual Studio 2008 SP1,(4)Microsoft Expression Blend,(5)Windows Embedded Compact 7,(6)Microsoft Virtual PC。接下來開發(fā)目標(biāo)設(shè)備驅(qū)動(dòng)程序,建立好定制的WinCE7映像文件,同時(shí)將目標(biāo)文件下載到目標(biāo)設(shè)備上進(jìn)行調(diào)試。最后把定制好的操作系統(tǒng)內(nèi)核,利用 PlatformBuilder導(dǎo)出SDK。
4 系統(tǒng)測試和實(shí)驗(yàn)結(jié)果
為了測試所設(shè)計(jì)數(shù)控系統(tǒng)的FPGA在線配置性能,實(shí)驗(yàn)用開發(fā)軟件生成兩種具有不同邏輯功能的RBF文件。待數(shù)控系統(tǒng)完成正常啟動(dòng)后,測試程序能否實(shí)現(xiàn)兩種不同邏輯功能文件的配置,測試結(jié)果如圖5所示。
實(shí)驗(yàn)機(jī)床選擇南京華訊機(jī)械制造有限公司HPI-3047數(shù)控轉(zhuǎn)塔沖床,實(shí)驗(yàn)環(huán)境為生產(chǎn)車間工作環(huán)境。利用 Packet Sniffer 軟件抓取數(shù)控系統(tǒng)無線通信數(shù)據(jù)包如圖6所示。
實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)的數(shù)控系統(tǒng)FPGA模塊能夠?qū)崿F(xiàn)在線配置及功能升級(jí)。ZigBee無線通信模塊能夠?qū)崿F(xiàn)上位機(jī)與機(jī)床嵌入式控制器之間的數(shù)據(jù)收發(fā),無線模塊通信性能穩(wěn)定可靠,完全能夠取代傳統(tǒng)的線纜通信,降低了企業(yè)成本,提高了機(jī)床執(zhí)行效率。
5 結(jié)論
數(shù)控轉(zhuǎn)塔沖床數(shù)控系統(tǒng)的設(shè)計(jì)采用了實(shí)時(shí)操作系統(tǒng)WinCE7與高性能微處理器CORTEXA8,是嵌入式技術(shù)、微處理器技術(shù)與數(shù)控技術(shù)的完美結(jié)合,系統(tǒng)能夠更好地適應(yīng)高實(shí)時(shí)性加工的要求。把無線通信技術(shù)運(yùn)用到數(shù)控系統(tǒng)通信中取代傳統(tǒng)的線纜通信,有利于降低企業(yè)對通信方面的人力財(cái)力投資。運(yùn)用運(yùn)算速度快、設(shè)計(jì)靈活、可靠性高的FPGA作為硬件插補(bǔ)器,提高了系統(tǒng)插補(bǔ)速度。設(shè)計(jì)順應(yīng)了低功耗、低成本、實(shí)時(shí)性好和機(jī)床通信無線化的發(fā)展趨勢。
參考文獻(xiàn)
[1] 曹遂軍,王會(huì)良.國內(nèi)外開放式數(shù)控系統(tǒng)的研究與現(xiàn)狀[J].機(jī)電工程技術(shù),2003,32(5):20-22.
[2] 湯陽.基于WindowsCE的開放式數(shù)控系統(tǒng)關(guān)鍵技術(shù)研究[D].合肥:合肥工業(yè)大學(xué),2003.
[3] 朱曉潔,舒志兵.基于ARM+FPGA的嵌入式數(shù)控系統(tǒng)[J].機(jī)床與液壓,2008,36(7):311-313.
[4] 邵明,李光煬,楊惠靈.基于FPGA的嵌入式數(shù)控系統(tǒng)功能模塊設(shè)計(jì)[J].機(jī)床與液壓,2010,38(16):68-71.
[5] WILSON Y J.Windows CE device driver development[Z].Dr.Dobb′s Journal of Software Tools for Professional Progra-mmer,1998.
[6] 尹成.Windows CE7開發(fā)實(shí)戰(zhàn)詳解[M].北京:人民郵電出版社,2012.