文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)11-0026-03
0 引言
隨著計(jì)算機(jī)技術(shù)的飛快發(fā)展,,如今的開(kāi)放式數(shù)控系統(tǒng)主要是基于 PC 的開(kāi)放式數(shù)控系統(tǒng)[1],此類(lèi)型的數(shù)控系統(tǒng)一般采用通用操作系統(tǒng),,存在CPU結(jié)構(gòu)復(fù)雜,、功耗大、硬件冗余不可裁剪且可靠性不高等諸多不足,很難滿足數(shù)控系統(tǒng)對(duì)強(qiáng)實(shí)時(shí)性和穩(wěn)定性的要求,。近年來(lái)逐漸發(fā)展起來(lái)的嵌入式技術(shù)在工業(yè)領(lǐng)域得到了越來(lái)越廣泛的應(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ī)床控制器之間采用無(wú)線通信代替?zhèn)鹘y(tǒng)的線纜通信,。數(shù)控系統(tǒng)中,,F(xiàn)PGA接受ARM以及外部RAM發(fā)送來(lái)的控制指令和數(shù)據(jù)信息并執(zhí)行插補(bǔ)運(yùn)算,產(chǎn)生控制步進(jìn)電機(jī)運(yùn)轉(zhuǎn)的脈沖序列,,然后通過(guò)接口將脈沖序列送到步進(jìn)電機(jī)驅(qū)動(dòng)器,,實(shí)現(xiàn)對(duì)電機(jī)的控制[3]。嵌入式數(shù)控系統(tǒng)的操作系統(tǒng),,采用微軟的最新一代嵌入式操作系統(tǒng)Windows Embedded Compact7(WinCE7),,并根據(jù)數(shù)控系統(tǒng)的功能要求對(duì)內(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,、串口、無(wú)線通信和 USB 接口的處理及運(yùn)行嵌入式 WinCE7 操作系統(tǒng),,實(shí)現(xiàn)譯碼,、文件系統(tǒng)、無(wú)線網(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)專(zhuān)用集成電路靈活性差,、成本高的缺點(diǎn),。CPLD模塊主要負(fù)責(zé)系統(tǒng)操作面板、鍵盤(pán),、LED等信號(hào)的處理,。
2.1 系統(tǒng)無(wú)線通信的實(shí)現(xiàn)
設(shè)計(jì)選用低功耗、易組網(wǎng),、在工業(yè)領(lǐng)域得到越來(lái)越廣泛應(yīng)用的ZigBee無(wú)線網(wǎng)絡(luò)技術(shù),。要實(shí)現(xiàn)數(shù)控系統(tǒng)的無(wú)線通信,ZigBee驅(qū)動(dòng)的開(kāi)發(fā)就顯得尤為重要,。
嵌入式操作系統(tǒng)中本機(jī)設(shè)備驅(qū)動(dòng)程序適合于集成到WinCE平臺(tái)上的設(shè)備,,如LED和電源,WinCE以定制接口的方式來(lái)支持本機(jī)設(shè)備驅(qū)動(dòng),,開(kāi)發(fā)人員無(wú)需編寫(xiě)設(shè)備驅(qū)動(dòng)程序,。流接口驅(qū)動(dòng)程序是為連接到WinCE平臺(tái)的外圍設(shè)備而設(shè)計(jì)的驅(qū)動(dòng)程序[5]。因此ZigBee驅(qū)動(dòng)采用流接口驅(qū)動(dòng)模式編寫(xiě),,該驅(qū)動(dòng)的主要作用是實(shí)現(xiàn)ZigBee模塊數(shù)據(jù)的收發(fā),、組網(wǎng)、入網(wǎng),、獲取RSSI值等,。下面對(duì)基于流驅(qū)動(dòng)開(kāi)發(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ù)的功能是完成物理地址的申請(qǐng),虛擬地址到物理地址的映射和波特率設(shè)置,。CC2531init()通過(guò)調(diào)用系統(tǒng)串口發(fā)送函數(shù)的方式來(lái)設(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)對(duì)此函數(shù)的調(diào)用,。參數(shù)dwCode用來(lái)告知驅(qū)動(dòng)程序要執(zhí)行的操作。驅(qū)動(dòng)設(shè)計(jì)中,,定義了較簡(jiǎn)單的幾個(gè)命令,,如G代碼、嵌入式數(shù)控系統(tǒng)參數(shù),、刀補(bǔ)參數(shù),、RSSI值,其值分別為1,、2,、3、4,。當(dāng)CC2531收到應(yīng)用程序與這幾個(gè)命令相關(guān)時(shí),,無(wú)線模塊就在網(wǎng)絡(luò)中收集與之相關(guān)的數(shù)據(jù),然后發(fā)送給與機(jī)床相連無(wú)線模塊,。
2.2 FPGA與ARM通信及配置接口設(shè)計(jì)
ARM微處理器系統(tǒng)與FPGA系統(tǒng)之間的通信接口包括串行與并行兩種,,其中串行方式通過(guò)它們自身配置的接口實(shí)現(xiàn),并行接口則根據(jù)提供的總線模式進(jìn)行設(shè)計(jì),。FPGA與AM335X CortexA8之間數(shù)據(jù)和控制命令的傳輸通過(guò)地址總線和數(shù)據(jù)總線方式完成,,其接口示意圖如圖3所示,其中GPMC_A[11:0]為的12位地址總線,;GPMC_D[l5:0]為16位數(shù)據(jù)總線,;GPMC_WEn實(shí)現(xiàn)FPGA的寫(xiě)使能傳輸且低電平有效;GPMC_OEn傳輸FPGA的輸出使能信號(hào)且為低電平有效,;GPMC_CSn是傳輸FPGA的片選信號(hào)低電平有效,;RESET傳輸給FPGA復(fù)位信號(hào),高電平有效,;INTO為FPGA傳輸給AM335X的中斷信號(hào)且低電平有效,。
要實(shí)現(xiàn)基于FPGA的邏輯功能,必須首先完成對(duì)FPGA的配置,。FPGA主要有專(zhuān)用配置芯片,,被動(dòng)串行配置,被動(dòng)并行同步配置,,被動(dòng)并行異步配置和JTAG配置五種配置方式,。設(shè)計(jì)采用微處理器的被動(dòng)串行配置方案,,配置簡(jiǎn)化電路圖如圖4所示。
3 系統(tǒng)軟件平臺(tái)搭建
Windows Embedded Compact7(WinCE7)不僅支持X86和MIPS,,同時(shí)支持最新的ARMv7架構(gòu)和多核處理器并能在Visual Studio 2008中無(wú)縫集成Platform Builder 2008,,可以為開(kāi)發(fā)者提供更高效的、流暢的開(kāi)發(fā)體驗(yàn)[6],。設(shè)計(jì)選擇Windows Embedded CE系列最新一代操作系統(tǒng) Windows Embedded Compact 7來(lái)進(jìn)行軟件系統(tǒng)的開(kāi)發(fā),。
為了節(jié)約PC的磁盤(pán)空間和保證運(yùn)行速率,首先,,對(duì)操作系統(tǒng)進(jìn)行裁剪,,添加必要的特性,配置各個(gè)組件進(jìn)行平臺(tái)設(shè)置,。結(jié)合設(shè)計(jì)的需要,,安裝VS2008時(shí)由于開(kāi)發(fā)用到的語(yǔ)言是VC++語(yǔ)言其他開(kāi)發(fā)語(yǔ)言無(wú)需安裝;在搭建Platform Builder時(shí)由于Cortex-A8微處理器的平臺(tái)遵從ARMv7架構(gòu)規(guī)范,,安裝時(shí)只選“ARMv7 Architecture”即可,。下面是Windows Embedded Compact7開(kāi)發(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,。接下來(lái)開(kāi)發(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)測(cè)試和實(shí)驗(yàn)結(jié)果
為了測(cè)試所設(shè)計(jì)數(shù)控系統(tǒng)的FPGA在線配置性能,,實(shí)驗(yàn)用開(kāi)發(fā)軟件生成兩種具有不同邏輯功能的RBF文件。待數(shù)控系統(tǒng)完成正常啟動(dòng)后,,測(cè)試程序能否實(shí)現(xiàn)兩種不同邏輯功能文件的配置,,測(cè)試結(jié)果如圖5所示。
實(shí)驗(yàn)機(jī)床選擇南京華訊機(jī)械制造有限公司HPI-3047數(shù)控轉(zhuǎn)塔沖床,,實(shí)驗(yàn)環(huán)境為生產(chǎn)車(chē)間工作環(huán)境,。利用 Packet Sniffer 軟件抓取數(shù)控系統(tǒng)無(wú)線通信數(shù)據(jù)包如圖6所示。
實(shí)驗(yàn)結(jié)果表明,,設(shè)計(jì)的數(shù)控系統(tǒng)FPGA模塊能夠?qū)崿F(xiàn)在線配置及功能升級(jí),。ZigBee無(wú)線通信模塊能夠?qū)崿F(xiàn)上位機(jī)與機(jī)床嵌入式控制器之間的數(shù)據(jù)收發(fā),無(wú)線模塊通信性能穩(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í)性加工的要求,。把無(wú)線通信技術(shù)運(yùn)用到數(shù)控系統(tǒng)通信中取代傳統(tǒng)的線纜通信,有利于降低企業(yè)對(duì)通信方面的人力財(cái)力投資,。運(yùn)用運(yùn)算速度快,、設(shè)計(jì)靈活、可靠性高的FPGA作為硬件插補(bǔ)器,,提高了系統(tǒng)插補(bǔ)速度,。設(shè)計(jì)順應(yīng)了低功耗、低成本,、實(shí)時(shí)性好和機(jī)床通信無(wú)線化的發(fā)展趨勢(shì),。
參考文獻(xiàn)
[1] 曹遂軍,王會(huì)良.國(guó)內(nèi)外開(kāi)放式數(shù)控系統(tǒng)的研究與現(xiàn)狀[J].機(jī)電工程技術(shù),,2003,,32(5):20-22.
[2] 湯陽(yáng).基于WindowsCE的開(kāi)放式數(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開(kāi)發(fā)實(shí)戰(zhàn)詳解[M].北京:人民郵電出版社,2012.