《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Windows CE的遠(yuǎn)程數(shù)據(jù)采集與控制系統(tǒng)開發(fā)
基于Windows CE的遠(yuǎn)程數(shù)據(jù)采集與控制系統(tǒng)開發(fā)
來源:微型機(jī)與應(yīng)用2011年第14期
童 超,, 朱俊株,, 高如如
(中國科學(xué)技術(shù)大學(xué) 電子科學(xué)與技術(shù)系,安徽 合肥230026)
摘要: 在傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)基礎(chǔ)上,,引入了基于Windows CE 5.0的嵌入式操作系統(tǒng)平臺(tái),,通過GPRS(通用無線分組業(yè)務(wù))的遠(yuǎn)程控制技術(shù)實(shí)現(xiàn)了一個(gè)遠(yuǎn)程數(shù)據(jù)采集與控制系統(tǒng),。實(shí)驗(yàn)結(jié)果表明,本文方法可以滿足多任務(wù),、大容量,、高實(shí)時(shí)性和高穩(wěn)定性的系統(tǒng)要求,同時(shí)具有遠(yuǎn)程控制方便快捷,、成本低等特點(diǎn),,具有良好的人機(jī)界面,在物聯(lián)網(wǎng)和智能家居控制等領(lǐng)域具有一定的應(yīng)用價(jià)值,。
Abstract:
Key words :

摘  要: 在傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)基礎(chǔ)上,,引入了基于Windows CE 5.0的嵌入式操作系統(tǒng)平臺(tái),通過GPRS(通用無線分組業(yè)務(wù))的遠(yuǎn)程控制技術(shù)實(shí)現(xiàn)了一個(gè)遠(yuǎn)程數(shù)據(jù)采集與控制系統(tǒng),。實(shí)驗(yàn)結(jié)果表明,,本文方法可以滿足多任務(wù)、大容量,、高實(shí)時(shí)性和高穩(wěn)定性的系統(tǒng)要求,,同時(shí)具有遠(yuǎn)程控制方便快捷、成本低等特點(diǎn),,具有良好的人機(jī)界面,,在物聯(lián)網(wǎng)和智能家居控制等領(lǐng)域具有一定的應(yīng)用價(jià)值。
關(guān)鍵詞: 嵌入式系統(tǒng),; 數(shù)據(jù)采集,; Windows CE; GPRS技術(shù),; 遠(yuǎn)程控制

    隨著信息技術(shù)的飛速發(fā)展,,數(shù)據(jù)采集系統(tǒng)在工業(yè)控制、智能儀器以及儀表檢測等領(lǐng)域得到了廣泛的應(yīng)用[1],。傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)一般采用兩種方式完成:(1)使用數(shù)據(jù)采集卡加微機(jī)系統(tǒng),; (2)采用各種單片機(jī)集成數(shù)據(jù)采集系統(tǒng),。前者雖然功能較強(qiáng),但成本高,、功耗大,、普及性差。后者由于自身的資源有限,,無法滿足多任務(wù),、大容量、高實(shí)時(shí)性和高穩(wěn)定性的要求,。而在遠(yuǎn)程控制方面,,工業(yè)上一般使用基于TCP/IP的控制模式,該方法雖然引入了網(wǎng)絡(luò)技術(shù),,可以快速穩(wěn)定地傳輸數(shù)據(jù),,但是成本較高、移動(dòng)性較差且維護(hù)困難,。因此,,本文以Windows CE5.0作為操作系統(tǒng)平臺(tái),基于ARM9內(nèi)核的S3C2440A作為微控制器,,引入GPRS無線技術(shù),,實(shí)現(xiàn)了人機(jī)交互友好、擴(kuò)展性強(qiáng),、實(shí)時(shí)性強(qiáng),、低功耗和低成本的遠(yuǎn)程數(shù)據(jù)采集與控制系統(tǒng)。本系統(tǒng)能對(duì)室內(nèi)的溫度,、濕度等各種物理量進(jìn)行檢測控制,,并按照要求進(jìn)行反饋;對(duì)若干種家用電器進(jìn)行監(jiān)控,,如電器電壓,、熱水器流量等,以便用戶及時(shí)發(fā)現(xiàn)問題(例如很多太陽能熱水器容易出現(xiàn)爆裂等情況),;此外可以加入視頻采集與發(fā)送擴(kuò)展模塊,,通過MMS協(xié)議模塊發(fā)送實(shí)時(shí)圖像數(shù)據(jù)。
1 系統(tǒng)結(jié)構(gòu)
 系統(tǒng)以S3C2440為控制器,,由數(shù)據(jù)采集模塊,,GPRS模塊、遠(yuǎn)程控制模塊,、報(bào)警系統(tǒng)模塊,、視頻采集與發(fā)送模塊以及其他可擴(kuò)展的外圍電路等組成。系統(tǒng)的結(jié)構(gòu)框圖如圖1所示,。

 首先啟動(dòng)系統(tǒng),用戶可以隨時(shí)通過GPRS網(wǎng)絡(luò)向系統(tǒng)發(fā)出遠(yuǎn)程控制指令,例如發(fā)送“開始采集”指令,,則系統(tǒng)開始利用ADC模塊采集電壓、流量,、溫度,、濕度以及觸摸屏坐標(biāo)等模擬量,并且轉(zhuǎn)化為相應(yīng)的數(shù)字量,,然后在人機(jī)界面上顯示出來,。一旦所采集的數(shù)據(jù)超過給定閾值,則系統(tǒng)向用戶發(fā)出報(bào)警信息,,以便于用戶采取進(jìn)一步的控制措施,。
1.1 系統(tǒng)硬件設(shè)計(jì)
 本系統(tǒng)的硬件開發(fā)平臺(tái)以三星S3C2440為核心。S3C2440是以ARM920T為內(nèi)核的32 bit高性能微控制器,、性價(jià)比高,、功耗低、擴(kuò)展功能豐富,,因此應(yīng)用非常廣泛,。其帶有的MMU(存儲(chǔ)管理單元),可以運(yùn)行主流的嵌入式操作系統(tǒng),,如Linux以及WinCE[2]等,。數(shù)據(jù)采集模塊使用8路10 bit的A/D轉(zhuǎn)換器,該轉(zhuǎn)換器有采樣保持功能,可以實(shí)現(xiàn)獨(dú)立轉(zhuǎn)換和觸摸屏位置轉(zhuǎn)換兩種模式,,最高轉(zhuǎn)換速率可達(dá)500 KS/s[3],。A/D模塊的應(yīng)用接口電路如圖2所示。其中8路通道除第5路和第7路用于觸摸屏輸入外其余均可使用,,本文使用4路分別與溫度采集傳感器,、濕度采集傳感器、電阻器以及水流量傳感器相接,,因此可以并行采集4路信號(hào)互不干擾,。

 

 

    GPRS控制模塊是以西門子公司TC35i為核心的GPRS modem。GPRS技術(shù)是基于二代移動(dòng)通信技術(shù)的改進(jìn),,因此也被稱為2.5 G,。相對(duì)于GSM以電路交換數(shù)據(jù)的方式而言,GPRS采用分組交換技術(shù),,在傳輸費(fèi)用,、傳輸速率以及實(shí)時(shí)性上均優(yōu)于前者。即使與最新的第三代移動(dòng)通信技術(shù)相比,,GPRS技術(shù)在成本,、速度以及性價(jià)比等方面,依然具有一定的優(yōu)勢。TC35i提供了標(biāo)準(zhǔn)的9針RS-232接口,,因此需要加入MAX232進(jìn)行電平轉(zhuǎn)換,,與S3C2440的串口進(jìn)行全雙工通信[4]。圖3所示為GPRS硬件接口電路,,其中GSM基帶處理器是TC35i的核心部件,,用來處理串口指令,J1為SIM卡座,。

    外圍報(bào)警設(shè)備通過S3C2440提供的PWM定時(shí)器,,由通用輸入輸出GPIO口來控制。
1.2 系統(tǒng)軟件設(shè)計(jì)
1.2.1 AT指令集

      本系統(tǒng)使用的GPRS模塊采用的是GSM07.05規(guī)范,,它規(guī)定了SMS的DTE-DCE接口標(biāo)準(zhǔn),,即AT指令集。AT(Attention AT)命令集是從TE(Terminal Equipment)或DTE(Data Terminal Equipment)向TA(Terminal Adapter)或DCE(Data Circuit Terminating Equipment)發(fā)送,,并通過TATE 發(fā)送AT 命令來控制MS(Mobile Station)的功能,,實(shí)現(xiàn)與GSM 網(wǎng)絡(luò)業(yè)務(wù)的交互。用戶可以通過AT 命令進(jìn)行控制[4],。本文主要使用短消息相關(guān)的AT命令集,。如發(fā)送AT+CMGF=n,其中n為0,,選擇PDU格式,,n=1,選擇文本方式,。如發(fā)送AT+CSCA=<string>來選擇運(yùn)營商,,string=+8613800270500;即選擇中國移動(dòng),。在文本格式下發(fā)送AT+CMGS=“string”(string)為對(duì)方手機(jī)號(hào)碼,,成功則返回“>”然后輸入要發(fā)送的內(nèi)容以“^Z”結(jié)束。本文的GPRS類都是通過調(diào)用串口驅(qū)動(dòng)來實(shí)現(xiàn)相關(guān)的功能,。
1.2.2 Windows CE下的驅(qū)動(dòng)編寫
 Windows CE是微軟公司推出的嵌入式實(shí)時(shí)操作系統(tǒng),,憑借其簡單易用,功能強(qiáng)大,,在智能手機(jī),、PDA以及汽車電子領(lǐng)域有廣泛的應(yīng)用。本文系統(tǒng)中的驅(qū)動(dòng)編寫是軟件設(shè)計(jì)的核心內(nèi)容,。
 基于Windows CE的2種驅(qū)動(dòng)模型是流接口驅(qū)動(dòng)和本機(jī)驅(qū)動(dòng)模型,本機(jī)驅(qū)動(dòng)模型是操作系統(tǒng)本身的一部分,,例如電源管理,這些驅(qū)動(dòng)是通用的驅(qū)動(dòng)。流驅(qū)動(dòng)則是指一般的驅(qū)動(dòng),,具有可定制的接口和功能,,是專用的驅(qū)動(dòng)。本文所有驅(qū)動(dòng)都是流驅(qū)動(dòng),流驅(qū)動(dòng)將外部設(shè)備當(dāng)作文件進(jìn)行操作,因此應(yīng)用程序可以很方便地使用系統(tǒng)API文件進(jìn)行操作,。流驅(qū)動(dòng)由一組標(biāo)準(zhǔn)的函數(shù)集合來實(shí)現(xiàn),,在Windows CE中定義的流接口函數(shù)有12個(gè),主要包括XXX_Init,、XXX_Deinit,、XXX_Open(由應(yīng)用程序調(diào)用CreateFile()函數(shù)打開驅(qū)動(dòng)),、XXX_ Close(由應(yīng)用程序調(diào)用CloseHandle()函數(shù)關(guān)閉驅(qū)動(dòng)),、XXX_Read(由應(yīng)用程序調(diào)用ReadFile()函數(shù)打開驅(qū)動(dòng))、XXX_Write(由應(yīng)用程序調(diào)用WriteFile( )函數(shù)打開驅(qū)動(dòng)),、XXX_Seek,、 XXX_Power
Up、XXX_Pow-erDown,、XXX_IOControl,。其中,XXX是驅(qū)動(dòng)程序的設(shè)備名稱[5],。
 本文的流驅(qū)動(dòng)需要具備3個(gè)功能:(1)驅(qū)動(dòng)數(shù)據(jù)采集模塊,;(2)驅(qū)動(dòng)報(bào)警器電路;(3)驅(qū)動(dòng)GPRS模塊,。
1.2.3流驅(qū)動(dòng)的實(shí)現(xiàn)
    (1)將驅(qū)動(dòng)取名為RDA(Remote Data Acquisition),。由于要在操作系統(tǒng)層面調(diào)用設(shè)備,因此首先應(yīng)該完成對(duì)硬件,,尤其是寄存器的虛擬地址分配,,在函數(shù)RDA_Init()中實(shí)現(xiàn)。通過調(diào)用Windows CE提供的VirtualAlloc()和VirtualCopy()訪問物理內(nèi)存,,其中前者負(fù)責(zé)保留虛擬內(nèi)存,,后者負(fù)責(zé)綁定物理內(nèi)存和虛擬內(nèi)存。實(shí)際上最終是通過訪問虛擬內(nèi)存來完成訪問物理內(nèi)存的,,主要部分代碼如下:
    v_pAdcPreg=(volatileADCreg*)VirtualAlloc(0,sizeof(ADCreg),MEM_RESERVE,PAGE_NOACCESS);
    …if (!VirtualCopy((PVOID)v_pAdcPreg, (PVOID)(ADC_
BASE_PHY_ADD>>8),sizeof(ADCreg),PAGE_PHYSICAL| PAGE_
READWRITE | PAGE_NOCACHE))
 v_pIOPregs=(volatile IOPreg*)VirtualAlloc(0,sizeof(IOPreg),MEM_RESERVE,PAGE_NOACCESS);…
 接著系統(tǒng)通過v_pAdcPreg和v_pIOPregs來調(diào)用各自的寄存器進(jìn)行初始化,,其中ADC_BASE_PHY_ADD和IOP_BASE_PA是硬件物理地址。
 隨后完成RDA_IOControl(),,這個(gè)函數(shù)負(fù)責(zé)完成修改設(shè)備的功能,,例如本文的數(shù)據(jù)采集模塊有8路通道,因此每次采樣時(shí)都需要轉(zhuǎn)換通道,,同時(shí)采樣頻率也是可以轉(zhuǎn)換的,,所有的控制碼都在頭文件中完成。通過控制碼用戶可以自由選擇通道,,這與本文的要求完全一致,。
  最重要的是讀函數(shù)RDA_Read(),應(yīng)用程序通過讀函數(shù)與底層驅(qū)動(dòng)聯(lián)系,應(yīng)用程序通過ReadFile()函數(shù)讀出ADC寄存器的值,。
    PUBLIC DWORD RDA_Read(DWORD Handle, LPVOID pBuffer, DWORD dwNumBytes)
 最后,,在驅(qū)動(dòng)程序關(guān)閉時(shí),應(yīng)用程序通過CloseHandle( )函數(shù)來調(diào)用RDA_Close ( )關(guān)閉,。
1.2.4應(yīng)用程序的實(shí)現(xiàn)
 在流驅(qū)動(dòng)編寫完成后,,通過PB完成編譯,加入注冊(cè)表信息,,然后定制專有系統(tǒng),,這樣就可以在自己定制的系統(tǒng)中調(diào)用驅(qū)動(dòng)。應(yīng)用程序的編寫步驟如下,,首先利用PB生成所需的SDK,,并且安裝,其次編寫界面利用模擬器進(jìn)行仿真,,最后連接硬件,,打開驅(qū)動(dòng)測試程序。本文的所有程序已經(jīng)在EVC4.0中編寫實(shí)現(xiàn),。
 本系統(tǒng)需要完成觸摸屏的功能,、視頻采集模塊功能以及用戶自定的四路數(shù)據(jù)采集功能,因此窗體主線程中加入了:ADC采集,、觸摸屏控制,、視頻采集以及反饋模塊等4個(gè)子線程。圖4是應(yīng)用程序的基本流程圖,。
2 實(shí)驗(yàn)結(jié)果
 在測試過程中,,系統(tǒng)會(huì)根據(jù)用戶發(fā)送的短信內(nèi)容,實(shí)時(shí)控制與顯示所采集的數(shù)據(jù),。系統(tǒng)采集到的電器電壓,、室內(nèi)溫度、濕度以及熱水器流量與實(shí)際情況完全相符,。而系統(tǒng)的控制功能也很好實(shí)現(xiàn),,當(dāng)系統(tǒng)采集到的數(shù)據(jù)大于閾值時(shí),例如當(dāng)室內(nèi)溫度過高,、濕度過大,、流量過大等異常情況發(fā)生時(shí),報(bào)警信息都會(huì)由遠(yuǎn)程系統(tǒng)實(shí)時(shí)傳遞到用戶的手機(jī),;視頻采集系統(tǒng)主要由主機(jī)控制采集,,用戶可以方便地通過系統(tǒng)進(jìn)行監(jiān)控。因此通過實(shí)際測試,,系統(tǒng)可以實(shí)現(xiàn)所需要的功能且具有良好的人機(jī)交互界面,,實(shí)用性很強(qiáng),。
 本文基于ARM9內(nèi)核以及Windows CE嵌入式操作系統(tǒng),同時(shí)結(jié)合GPRS技術(shù),,提出一種遠(yuǎn)程數(shù)據(jù)采集和控制的方法,。利用嵌入式系統(tǒng)的低功耗、低成本,、多任務(wù)以及高可靠性和高實(shí)時(shí)性等特點(diǎn),,通過設(shè)計(jì)、調(diào)用核心的流驅(qū)動(dòng)函數(shù),,實(shí)現(xiàn)了一個(gè)具有遠(yuǎn)程數(shù)據(jù)采集和控制功能的應(yīng)用系統(tǒng),,擴(kuò)展相應(yīng)的外圍設(shè)備可以將該系統(tǒng)應(yīng)用于更多領(lǐng)域。在后續(xù)的工作中,,將繼續(xù)研究利用另一個(gè)嵌入式系統(tǒng)作為客戶機(jī),通過MMS協(xié)議模塊發(fā)送實(shí)時(shí)圖像數(shù)據(jù),,從而增強(qiáng)系統(tǒng)的功能,進(jìn)一步加深在物聯(lián)網(wǎng)和智能家居控制等領(lǐng)域的應(yīng)用,。
參考文獻(xiàn)
[1] 凌有鑄,徐曉光,潘偉.基于WinCE的嵌入式遠(yuǎn)程實(shí)時(shí)監(jiān)控系統(tǒng)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(2):204-206.
[2] 王黎明,陳雙橋,,閆曉玲,,等.ARM9嵌入式系統(tǒng)開發(fā)與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2008.
[3] Samsung Electronics.S3C2440A User Manual[Z].2004.
[4] TC35i AT Command Set[Z].2006
[5] 劉彥峰,,李崢. Windows CE和桌面Windows 2000/XP設(shè)備驅(qū)動(dòng)開發(fā)的區(qū)別[J].電子技術(shù)應(yīng)用,2010,36(3):127-132.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。