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