[align=center]基于WinCE嵌入式系統(tǒng)控制臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
汪國(guó)林,余輝
合肥工業(yè)大學(xué)科研處,合肥 230009 ; 中國(guó)電子科技集團(tuán)公司第41研究所,蚌埠233006[/align]
[摘要]:本文介紹了基于Wince嵌入式系統(tǒng)控制臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)??刂婆_(tái)通過(guò)Arcnet網(wǎng)絡(luò)與機(jī)器控制單元進(jìn)行通信,實(shí)現(xiàn)狀態(tài)顯示和參數(shù)設(shè)置。詳細(xì)介紹了軟件部分的界面設(shè)計(jì)、網(wǎng)絡(luò)通信和Wince系統(tǒng)定制。
[關(guān)鍵詞]:Wince Evc Arcnet網(wǎng)絡(luò) 控制臺(tái)
Design and Realization of Controller Based on Wince System
WANG Guo-lin,YU Hui. Department of Science Research , Hefei University of Technology , Hefei 230009 , China. The 41st Institute of China Electronics Technology Group Corporation,Bengbu 233006,China.
[Abstrace]:This paper introduced the Design and Realization of console Based on Wince System. Console communicate with machine control unit by Arcnet network ,then show the status of machine and parameter setting. The paper also intorduced interface design、network communication and Wince systen builder in detail .
[Key words]:Wince Evc Arcnet network Console
操作員控制臺(tái)(以下簡(jiǎn)稱OPC)是煙草包裝機(jī)設(shè)備中的人機(jī)界面,整個(gè)系統(tǒng)基于Wince嵌入式操作系統(tǒng),采用了ARCNET網(wǎng)絡(luò)接口,實(shí)現(xiàn)了與包裝機(jī)設(shè)備控制單元的高速通信,很好地滿足了系統(tǒng)的實(shí)時(shí)性、快速性和可靠性要求。
1、系統(tǒng)簡(jiǎn)介
1.1、系統(tǒng)工作原理
OPC通過(guò)ARCNET網(wǎng)絡(luò)接收來(lái)自包裝機(jī)組控制單元傳送來(lái)的數(shù)據(jù),完成概
圖顯示、故障信息報(bào)警等相應(yīng)功能;接受維護(hù)人員的參數(shù)修改和設(shè)定,并將數(shù)據(jù)發(fā)送到包裝機(jī)組控制單元。
整個(gè)系統(tǒng)有以下幾個(gè)部分組成:控制單元、網(wǎng)絡(luò)接口、人機(jī)界面。
由于該系統(tǒng)數(shù)據(jù)處理量較大,所以整個(gè)系統(tǒng)應(yīng)該具有很高的運(yùn)行速度及集成度,綜合以上考慮采用了速度較快的工業(yè)控制板;網(wǎng)絡(luò)接口采用了自主設(shè)計(jì)的PC104接口的ARCNET網(wǎng)卡;為了方便用戶地使用,人機(jī)接口采用了大屏幕液晶觸控屏。系統(tǒng)工作原理如圖1所示。
圖1 系統(tǒng)工作原理框圖
1.2、ARCNET網(wǎng)絡(luò)
ARCNET(Attached Resource Computer Network)協(xié)議是Datapoint公司于70年代末推出的,其性能特點(diǎn)特別適合于控制需要而得以在工業(yè)自動(dòng)化領(lǐng)域成功應(yīng)用。實(shí)踐證明,ARCNET具有可靠性高、通信速率高、可確定的性能以及遠(yuǎn)距離通信能力等特點(diǎn),是一種理想的現(xiàn)場(chǎng)總線技術(shù)。
首先,現(xiàn)場(chǎng)總線必須能夠在預(yù)先確定的時(shí)間內(nèi)完成消息傳輸。ARCNET所采用的令牌傳遞協(xié)議確保能在時(shí)間上滿足這個(gè)要求。其次現(xiàn)場(chǎng)總線中的消息通常是短消息,ARCNET支持長(zhǎng)度可變的數(shù)據(jù)幀(0-507字節(jié)),額外開(kāi)銷小,再加上其較高的數(shù)據(jù)速率(通常為2.5Mbps),使得ARCNET對(duì)對(duì)短消息具有良好的快速響應(yīng)性能。其主要特點(diǎn)如下:①時(shí)間的可確定性;②邏輯環(huán);③自動(dòng)應(yīng)答;④廣播消息;⑤自動(dòng)重構(gòu)。
2、系統(tǒng)軟件設(shè)計(jì)
Microsoft Windows CE是一個(gè)32位的、緊湊的、高效和可擴(kuò)展的操作系統(tǒng),適用于各種嵌入式系統(tǒng)和產(chǎn)品。它擁有多線程、多任務(wù)、確定性的實(shí)時(shí)、完全搶占式優(yōu)先級(jí)的操作系統(tǒng)環(huán)境,專門面向只有有限資源的硬件系統(tǒng)。同時(shí),它的模塊化設(shè)計(jì)方式使得系統(tǒng)開(kāi)發(fā)人員和應(yīng)用開(kāi)發(fā)人員能夠?yàn)槎喾N多樣的產(chǎn)品來(lái)定制它,可以選擇、組合和配置Windows CE的模塊和組件來(lái)創(chuàng)建用戶版的操作系統(tǒng),例如客戶電子設(shè)備、專用工業(yè)控制器以及嵌入式通信設(shè)備等等。采用EVC來(lái)設(shè)計(jì)控制軟件,最終完成的代碼存儲(chǔ)于CF卡中,可靠性高。
2.1、Wince操作系統(tǒng)的定制
一個(gè)良好的運(yùn)行環(huán)境決定著程序運(yùn)行的穩(wěn)定性,一個(gè)穩(wěn)定的系統(tǒng)也是需要精心定制和裁剪的,微軟公司提供了一整套嵌入式系統(tǒng)解決方案,由于它的模塊化設(shè)計(jì)和多種接口的支持,可以定制滿足需求的最小軟件模塊和組件的嵌入式系統(tǒng)平臺(tái),利用較小的內(nèi)存空間來(lái)完成目標(biāo)系統(tǒng)的功能,可以利用其工具Platform Builder(簡(jiǎn)稱PB)來(lái)實(shí)現(xiàn)。PB是開(kāi)發(fā)基于Windows CE嵌入式操作系統(tǒng)的專用開(kāi)發(fā)工具。本文利用Windows CE.net的Platform Builder 4.2并根據(jù)目標(biāo)平臺(tái)的硬件配置對(duì)WinCE操作系統(tǒng)進(jìn)行定制,刪除在所開(kāi)發(fā)的系統(tǒng)中不需要的功能塊,精簡(jiǎn)組件,添加了觸摸屏驅(qū)動(dòng)程序,生成新建WinCE平臺(tái)的映象文件,使系統(tǒng)占用最少的內(nèi)存,然后將映象文件NK.Bin移植到目標(biāo)設(shè)備的硬件平臺(tái)即可。同時(shí),使用Platform Builder導(dǎo)出在該平臺(tái)上開(kāi)發(fā)應(yīng)用程序所需要的SDK。
定制系統(tǒng)時(shí)需要加入觸摸屏的驅(qū)動(dòng),系統(tǒng)采用USB接口。過(guò)程如下:
(1)在c盤建立一個(gè)CEDB文件夾并把需要的所有文件放入該文件夾;
(2)運(yùn)行PB開(kāi)發(fā)環(huán)境,在project.bib文件中添加:
TouchKit.exe c:\CEDB\TouchKit.exe NK S
DrawTest.exe c:\CEDB\drawtest.exe NK S
Calbration.exe c:\CEDB\calbration.exe NK S
UpdateEEPROM.exe c:\CEDB\UpdateEEPROM.exe NK S
USBTouch.dll c:\CEDB\UsbTouch.dll NK SH
(3)編輯project.reg文件,在文件中添加:
[HKEY_LOCAL_MACHINE\Drivers\TouchKit]
"RBSIZE"=dword:800
"RBTIME"=dword:989680
"FLAGS"=dword:1
"BeepFrequence"=dword:1F4
"BeepTime"=dword:64
"ZFilterThreshold"=dword:800
"ZFilterBound"=dword:00100001
"SoundType"=dword:0
[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\14371_1\0_0_0\255_255_255\USB_TOUCH_Driver]
"DLL"="USBTouch.dll"
[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\14371_2\0_0_0\255_255_255\USB_TOUCH_Driver]
"DLL"="USBTouch.dll"
[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\4660_1\0_0_0\255_255_255\USB_TOUCH_Driver]
"DLL"="USBTouch.dll"
[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\3823_1\0_0_0\255_255_255\USB_TOUCH_Driver]
"DLL"="USBTouch.dll"
[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\3823_2\0_0_0\255_255_255\USB_TOUCH_Driver]
"DLL"="USBTouch.dll"
(4)編譯并生成系統(tǒng)文件。
2.2 應(yīng)用程序設(shè)計(jì)
此界面的應(yīng)用程序是在個(gè)人計(jì)算機(jī)上進(jìn)行的。其開(kāi)發(fā)平臺(tái)是eVC4.0集成開(kāi)發(fā)環(huán)境,在應(yīng)用程序開(kāi)發(fā)之前, 首先利用Platform Builder4.2創(chuàng)建該平臺(tái)上的SDK并導(dǎo)人到eVC4.0中,然后從eVC4.0的環(huán)境列表中選擇所定制的平臺(tái),接下來(lái)就可以進(jìn)行應(yīng)用程序的開(kāi)發(fā)、調(diào)試及運(yùn)行了。
人機(jī)界面的功能模塊主要包括機(jī)器概圖顯示、參數(shù)設(shè)置界面、配置界面、數(shù)據(jù)統(tǒng)計(jì)界面。本系統(tǒng)是采用一個(gè)基于主對(duì)話框的應(yīng)用程序,各個(gè)不同的功能采用子對(duì)話框來(lái)表現(xiàn)。主對(duì)話框主要完成初始化網(wǎng)卡、啟動(dòng)接收數(shù)據(jù)線程和調(diào)用其它子對(duì)話框。工作時(shí),控制臺(tái) (簡(jiǎn)稱上位機(jī))主要接收包裝機(jī)組發(fā)送來(lái)的系統(tǒng)信息并顯示,例如各機(jī)器的工作狀態(tài)、檢測(cè)點(diǎn)故障等。同時(shí),接收用戶對(duì)參數(shù)的修改并向控制單元發(fā)送控制指令信息,這一功能通過(guò)用戶觸摸上位機(jī)的觸摸屏來(lái)完成。上位機(jī)和控制單元之間通過(guò)ARCNET網(wǎng)絡(luò)來(lái)進(jìn)行通訊。系統(tǒng)流程圖如圖2所示。
[align=center]
[/align]
圖2 系統(tǒng)流程圖
2.3 ARCNET網(wǎng)絡(luò)軟件設(shè)計(jì)
由于ARCNET通信協(xié)議是由COM20020的內(nèi)部集成電路完成的,因此通信軟件的開(kāi)發(fā)主要體現(xiàn)在應(yīng)用軟件上,主要包括2部分:芯片的初始化和數(shù)據(jù)包的傳輸。
① 初始化順序。首先決定總線的工作方式,必須在COM20020內(nèi)存空間中的奇位置任意作一些讀寫操作(當(dāng)COM20020上電時(shí),內(nèi)部寄存器可以被讀寫)。在NODE ID寄存器中寫入一個(gè)非零值將會(huì)激活COM20020的核心部件,但是NODE ID寄存器是否能被操作是由Setup寄存器決定的,所有Setup寄存器應(yīng)首先被寫。在Node ID寄存器中寫入一個(gè)非零值后(節(jié)點(diǎn)地址必須是獨(dú)一無(wú)二的網(wǎng)絡(luò)才能正常工作),COM20020的核心部件將會(huì)被激活,然后設(shè)置Configuration寄存器的TX Enable位為1。
② 數(shù)據(jù)包的傳輸。由于COM20020數(shù)據(jù)包結(jié)構(gòu)中的有效數(shù)據(jù)放在數(shù)據(jù)包的最后位置,使用起來(lái)很不方便,本系統(tǒng)中首先按照用戶數(shù)據(jù)包格式打包數(shù)據(jù),然后調(diào)用函數(shù)把用戶數(shù)據(jù)包轉(zhuǎn)換為COM20020數(shù)據(jù)包格式,放入發(fā)送緩沖區(qū)內(nèi)。接受數(shù)據(jù)包時(shí),通過(guò)接收中斷從緩沖區(qū)讀取數(shù)據(jù),并做一個(gè)相反的處理過(guò)程,把COM20020數(shù)據(jù)包轉(zhuǎn)換為用戶格式數(shù)據(jù)包。數(shù)據(jù)包格式轉(zhuǎn)換如圖3所示。
圖3 數(shù)據(jù)包格式轉(zhuǎn)換示意圖
3.結(jié)語(yǔ)
基于Wince嵌入式系統(tǒng)的操作員控制臺(tái)的設(shè)計(jì)開(kāi)發(fā)已成功的應(yīng)用,并很好地完成了整個(gè)包裝機(jī)系統(tǒng)的狀態(tài)顯示和控制。經(jīng)實(shí)驗(yàn),滿足用戶和設(shè)計(jì)要求。
作者簡(jiǎn)介:汪國(guó)林,男,1974年6月出生,重慶市人,漢族,工學(xué)碩士,講師。合肥工業(yè)大學(xué)科研處,安徽省合肥市屯溪路193號(hào),郵編:230009。聯(lián)系電話:0551-2901124,13705601503,EMAIL:hfutwgl@163.com.主要從事:檢測(cè)技術(shù)與自動(dòng)化裝置技術(shù)研究。
參考文獻(xiàn):
[1] COM20020 Data Book[Z], Standard Microsystems Corporation
[2] ARCNET Tutorial[Z],Contemporary Controls Corporation,1999
[3] 張冬泉,譚南林,王雪梅等.《Windows CE實(shí)用開(kāi)發(fā)技術(shù)》[M],電子工業(yè)出版社,2006
[4] 周功業(yè),汪驚奇,王建.ARCNET網(wǎng)絡(luò)下數(shù)據(jù)采集的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2003,29(12)