Windows CE在嵌入式系統(tǒng)結(jié)構(gòu)的設計
出處:stycx 發(fā)布于:2011-09-01 21:53:43
根據(jù)IEEE(電氣和電子工程師協(xié)會)的定義,嵌入式系統(tǒng)是"控制、監(jiān)視或者輔助裝置、機器和設備運行的裝置"(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。從中可看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機械等附屬裝置。嵌入式系統(tǒng)是與應用緊密結(jié)合的,具有很強專用性,必須結(jié)合實際系統(tǒng)需求進行合理的裁減利用。國內(nèi)一個普遍被認同的定義是:以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。近年來,隨著電子技術的不斷進步,嵌入式系統(tǒng)開發(fā)己成為熱點,Windows CE 是Microsoft 公司專門針對嵌入式產(chǎn)品領域開發(fā)的嵌入式操作系統(tǒng),該系統(tǒng)是一種緊湊、高效、可伸縮的32 位的操作系統(tǒng),主要面向各種嵌入式系統(tǒng)和產(chǎn)品。它所具有的多線程、多任務、完全搶占式的特點是專為各種有很嚴格資源限制的硬件系統(tǒng)所設計的。它的模塊化設計使嵌入式系統(tǒng)和應用程序開發(fā)者能夠方便地加以定制以適應一系列產(chǎn)品,例如:消費類電子設備、專用工業(yè)控制器和嵌入式通信設備等的需要。
WindowsCE是微軟公司嵌入式、移動計算平臺的基礎,它是一個開放的、可升級的32位嵌入式操作系統(tǒng),是基于掌上型電腦類的電子設備操作系統(tǒng),它是精簡的Windows 95,Windows CE的圖形用戶界面相當出色。Windows CE作業(yè)系統(tǒng)是Windows家族中的成員,專門設計給掌上型電腦(HPCs)所使用的電腦環(huán)境。這樣的作業(yè)系統(tǒng)可使完整的可攜式技術與現(xiàn)有的Windows桌面技術整合工作。
1 基于Windows CE的嵌入式系統(tǒng)的結(jié)構(gòu)
要進行嵌入式系統(tǒng)的應用開發(fā),必須先建立一個開發(fā)平臺。一個基于Windows CE 的平臺由Windows CE 操作系統(tǒng)核組件、OEM 適配層(OEM Adaptation Layer ,OAL) 和設備驅(qū)動程序以及組成系統(tǒng)的硬件設備組成,圖1為基于Windows CE平臺的層次結(jié)構(gòu)。
從圖1 中可以看出,一個基于Windows CE 的嵌入式系統(tǒng)可分為四個層次,從底層到上層分別是硬件層、OEM層、操作系統(tǒng)層和應用程序?qū)印?/P>

圖1 基于Windows CE的目標平臺及其組件
硬件層是系統(tǒng)的硬件,包括微處理器和各種周邊設備。OEM層是一個硬件抽象層,它提供了硬件和操作系統(tǒng)之間的接口,操作系統(tǒng)要訪問具體的硬件就可以通過OEM層提供的API 進行訪問,而不必直接與硬件打交道。操作系統(tǒng)層中有Windows CE 的組件,用戶可以根據(jù)自己的系統(tǒng)的需要進行定制,選擇需要的組件,去掉不必要的組件,這樣可以減小內(nèi)存需求,使系統(tǒng)性能達到。應用程序?qū)邮怯脩魹樘囟ǖ那度胧较到y(tǒng)開發(fā)的應用程序。
在操作系統(tǒng)層中,設備管理器提供對可安裝設備的支持,允許在系統(tǒng)中安裝諸如PC 卡存儲器和調(diào)制解調(diào)器之類的設備已擴充功能,內(nèi)核提供基本的操作系統(tǒng)功能,例如進程調(diào)度、內(nèi)存管理、進程通信等。圖形、窗口事件處理模塊將用戶的擊鍵、鼠標移動和控件選擇轉(zhuǎn)換為消息,傳送給應用程序和操作系統(tǒng)來處理用戶的輸入。對象存儲、文件系統(tǒng)、數(shù)據(jù)庫和注理用戶的輸入。對象存儲、文件系統(tǒng)、數(shù)據(jù)庫和注冊表提供存儲數(shù)據(jù)的能力。附加技術模塊指由CE操作系統(tǒng)提供的一些可選擇的專用功能模塊,如Java語言支持模塊、手寫體輸入識別模塊等。用戶界面模塊為系統(tǒng)提供一個與PC 電腦上的視窗操作系統(tǒng)類似的圖形化操作界面。對系統(tǒng)設計者而言,需要自行開發(fā)的是應用程序和直接與硬件有關的部分,包括硬件系統(tǒng)本身、OAL 、設備驅(qū)動程序。其中,OAL(OEM 適配層,OEM Adaptation Layer),用來引導系統(tǒng)映像和初始化、管理硬件。它是BSP驅(qū)動的一部分。BSP板級支持包(board support package),是介于主板硬件和操作系統(tǒng)中驅(qū)動層程序之間的一層,一般認為它屬于操作系統(tǒng)一部分,主要是實現(xiàn)對操作系統(tǒng)的支持,為上層的驅(qū)動程序提供訪問硬件設備寄存器的函數(shù)包,使之能夠更好的運行與硬件主板。在嵌入式系統(tǒng)軟件的組成中,就有BSP. 一般硬件設備制造商會為設備提供驅(qū)動軟件支持,如果有專門為CE 系統(tǒng)編寫的驅(qū)動程序,只需將其加入到操作系統(tǒng)的相應模塊中就可用了。如果沒有,則應根據(jù)廠商提供的驅(qū)動程序開發(fā)包編寫。通常這些開發(fā)包總已經(jīng)包含了完成各種硬件操作的標準代碼,開發(fā)者的工作只是將其與相應的CE 系統(tǒng)API函數(shù)對應起來。在CE 系統(tǒng)中,所有涉及硬件的操作都通過調(diào)用相應的API 接口函數(shù)來完成,而OAL 和驅(qū)動程序就是要為這些API 函數(shù)提供支持,將其翻譯為直接對目標硬件進行底層操作。
2 Windows CE 中的網(wǎng)絡通信協(xié)議
Windows CE的網(wǎng)絡通信基于一個按層組織的網(wǎng)絡堆棧(network stack),如圖2所示。網(wǎng)絡堆棧實際上是Windows CE 的一個組件,它絡堆棧實際上是Windows CE 的一個組件,它負責對網(wǎng)絡中的數(shù)據(jù)傳輸進行處理,將來自于應用程序的數(shù)據(jù)分解成若干小段,并為每小段加上相關地址和段的分割信息,組成可以存貯轉(zhuǎn)發(fā)的信息包(packets) ,信息包中的地址確保數(shù)據(jù)達到終的目的端點。訪問網(wǎng)絡堆棧有如下三種方式:種是WinSock端口套接字方式。這是一個中間層的傳輸接口協(xié)議,WinSock 負責對建立的信息包的所有頭信息細節(jié)進行處理, 但可以不管其數(shù)據(jù)格式。Windows CE 的網(wǎng)絡通信都直接或間接地使用WinSock.采用IrDA 協(xié)議實現(xiàn)基于紅外線套接字的客戶/ 服務器網(wǎng)絡通信是Windows CE平臺的一個特色。第二種為WinInet API 方式。WinInet API是微軟公司基于Win32 平臺的互聯(lián)網(wǎng)函數(shù)接口。Windows CE 的WinInet API 對其進行了某些限制或擴展,它提供的數(shù)據(jù)協(xié)議除了常見的超文本傳輸協(xié)議HTTP 和文件傳輸協(xié)議FTP 外,還提供了對SSL的支持。API 方式避免了直接使用WinSock 訪問網(wǎng)絡的操作,簡化了網(wǎng)絡編程。第三種為CIFS 重定位器方式。Windows CE 通過對遠程訪問服務RAS 客戶的支持,允許基于Windows CE的設備與遠程主機建立連接。
3 Windows CE 中網(wǎng)絡通信協(xié)議使用實例
3.1 HTTP
HTTP是一個客戶端和服務器端請求和應答的標準(TCP)。客戶端是終端用戶,服務器端是網(wǎng)站。通過使用Web瀏覽器、網(wǎng)絡爬蟲或者其它的工具,客戶端發(fā)起一個到服務器上指定端口(默認端口為80)的HTTP請求。(我們稱這個客戶端)叫用戶代理(user agent)。應答的服務器上存儲著(一些)資源,比如HTML文件和圖像。(我們稱)這個應答服務器為源服務器(origin server)。在用戶代理和源服務器中間可能存在多個中間層,比如代理,網(wǎng)關,或者隧道(tunnels)。
Windows CE提供了一個開發(fā)Internet 客戶應用程序的工具集WinInet,與使用Socket 建立網(wǎng)絡連接的方法相比,它簡化了訪問互聯(lián)網(wǎng)絡的操作細節(jié)。利用WinInet可連接到遠程站點,訪問HTML 頁面,通過FTP 上傳、文件或獲取文件目錄清單等。WinInet 的Windows CE版本類似于桌面平臺上的WinInet ,但有兩個重要的區(qū)別:一是在Windows CE 中,大多數(shù)callback 函數(shù)以同步方式處理,只有InternetReadFile和InternetQueryDataAvailable 具有同步和異步兩種操作方式;二是Windows CE 默認支持Unicode 碼,所有WinInet 函數(shù)都要求寬字符變量[4].
通過WinInet 實現(xiàn)網(wǎng)絡通信常見的例子是利用HTTP 協(xié)議訪問Internet 站點上的HTTP 頁面。其處理過程與桌面平臺上的情況一致:
1) 調(diào)用InternetOpen ,獲取Internet 句柄;
2) 調(diào)用InternetConnect ,為給定站點建立一個會話句柄;
3) 調(diào)用HttpOpenRequest ,打開一個HTTP 請求句柄;
4) 調(diào)用HttpSendRequest ,發(fā)送一個指定的請求到HTTP 服務器;
5) 調(diào)用InternetReadFile ,從被HttpOpenRequest 所打開的句柄中讀數(shù),信息;
6) 調(diào)用InternetCloseHandle ,關閉Internet 句柄。
3.2 遠程訪問服務RAS
RAS簡稱Remote Access Service,意為:遠程訪問服務,主要用來配置企業(yè)的遠程用戶對企業(yè)內(nèi)部網(wǎng)絡訪問,包括撥號訪問和vpn方式。RAS技術是為了使遠程用戶能夠連接到 Windows NT 操作系統(tǒng)上而設計的。RAS 應用程序常在設備端上執(zhí)行,并通過PPP/ SLIP 與服務器連接。WindowsCE對RAS 客戶提供了支持。盡管有許多標準的Win32 RAS 函數(shù),但這里僅允許通過串行電纜或撥號Modem 建立點對點的連接。在Windows CE 環(huán)境下,RAS 電話簿項目中包含有建立RAS 連接的必要信息,Windows CE 將其存貯在注冊表中。RAS 電話簿信息包括:撥打的電話號碼(含國家和地區(qū)代碼) 、當前連接的IP 地址、網(wǎng)絡協(xié)議、用于建立連接的設備類型。用RAS 建立連接的步驟如下[4]:
1)確定呼叫的電話號碼;如果該號碼不在電話簿中, 則需要調(diào)用RasEnumEntries 函數(shù)查找。
2)RasDial 建立連接;
DWORD RasDial (LPCTSTR lpszPhonebook ,
/ / 電話簿文件的路徑和文件名指針
DWORD dwNotifierType ,
/ / RasDial 事件的句柄類型
LPVOID lpvNotifier ,
/ / RasDial 事件的句柄
LPHRASCONN lphRasConn
/ / 指向連接句柄類型變量) ;該函數(shù)的參數(shù)設置與桌面平臺上的設置不同,要求將lpszPhonebook 設置為NULL ,dwNotifierType 設置為0xFFFFFFFF.
3)當會話結(jié)束時,用RasHangUp 終止連接。
DWORD RasHangUp ( HRASCONN hrasconn ) ;
3.3 WAP應用
WAP(Wireless Application Protocol) 為無線應用協(xié)議,是一項性的網(wǎng)絡通信協(xié)議。WAP使移動Internet 有了一個通行的標準,其目標是將Internet的豐富信息及先進的業(yè)務引入到移動電話等無線終端之中。WAP定義可通用的平臺,把目前Internet網(wǎng)上HTML語言的信息轉(zhuǎn)換成用WML(Wireless Markup Language)描述的信息,顯示在移動電話的顯示屏上。WAP只要求移動電話和WAP代理服務器的支持,而不要求現(xiàn)有的移動通信網(wǎng)絡協(xié)議做任何的改動,因而可以廣泛地應用于GSM、CDMA、TDMA、3G等多種網(wǎng)絡。
在開發(fā)移動通信產(chǎn)品時候,需要用WAP協(xié)議,Windows CE提供了一個WAP的解決方案,開發(fā)起來非常方便。該協(xié)議棧可以支持任何標準的無線協(xié)議,包括GSM、UDP、GPRS等,協(xié)議棧包括WAE、WSP、WTP、WTLS、WDP等[3].見圖3.

圖3 WAP應用
此外,Windows CE還支持藍牙協(xié)議、RFCOMM協(xié)議、SDP協(xié)議、L2CAP協(xié)議等。
4 基于Windows CE嵌入式平臺創(chuàng)建
在硬件設計成功后,就需要創(chuàng)建一個基于Windows CE 的嵌入式平臺,有了平臺,用戶就可以利用Windows CE 的開發(fā)工具在該平臺上進行應用程序的開發(fā)。為了創(chuàng)建一個基于Windows CE 的平臺,首先需要選擇一個Windows CE OS 配置,安裝或創(chuàng)建一個OAL 和設備驅(qū)動程序,創(chuàng)建一個基于用戶配置的OS映像文件,并開發(fā)一個將映像文件傳輸?shù)侥繕嗽O備的引導程序[1][2][3].
首先,選擇一個Windows CE OS 配置,然后加入一個OAL 和設備驅(qū)動程序。可以創(chuàng)建自己的OAL ,使用一個預先配置好的BSP(Board Support Package)或者創(chuàng)建自己的BSP.一個BSP 包含一個OAL 、設備驅(qū)動程序和定制的硬件缺省的組件列表。
Windows CE Platform Builder3. 0 中包含有CEPC (CE-base PC) 的BSP 和HitachiD9000 硬件開發(fā)平臺(ODO) ,系統(tǒng)開發(fā)者也可以根據(jù)需要開發(fā)自己的BSP 或者利用第三方開發(fā)好的BSP.
5 結(jié)束語
在嵌入式系統(tǒng)中,網(wǎng)絡通信應用越來越廣泛。選擇一個合適的實時操作系統(tǒng)是開發(fā)嵌入式系統(tǒng)的關鍵。本文研究了Windows CE在網(wǎng)絡通信方面的開發(fā)工作,今后還有許多問題值得研究,包括在基于ARM的嵌入式應用中如何移植Windows CE中的應用程序,Windows CE的調(diào)試工具如何和dsp、MUC的調(diào)試工具配合使用等。
版權(quán)與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://hbjingang.com,違反者本網(wǎng)將追究相關法律責任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關權(quán)利。
- ARM技術架構(gòu)與應用開發(fā)實踐指南2026/1/6 10:40:19
- 嵌入式實時操作系統(tǒng)(RTOS)選型與移植技術指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術選型與抗干擾設計實踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎知識2025/7/14 16:59:04









