新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Windows CE的嵌入式系統(tǒng)的結(jié)構(gòu)分析

基于Windows CE的嵌入式系統(tǒng)的結(jié)構(gòu)分析

作者: 時間:2010-12-14 來源:網(wǎng)絡(luò) 收藏

引言

本文引用地址:http://m.butianyuan.cn/article/151198.htm

  操作是支持應(yīng)用的操作軟件,它是系統(tǒng)極為重要的組成部分,通常包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等。與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實時高效性、硬件的依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的特點。嵌入式操作系統(tǒng)的出現(xiàn),大大提高了嵌入式系統(tǒng)開發(fā)的效率,在嵌入式操作系統(tǒng)之上開發(fā)嵌入系統(tǒng)將減少系統(tǒng)開發(fā)的工作量,增強嵌入式應(yīng)用軟件的可移植性,使嵌入式系統(tǒng)的開發(fā)方法更具科學(xué)性。近年來,隨著電子技術(shù)的不斷進步,嵌入式系統(tǒng)開發(fā)己成為熱點,

   是Microsoft 公司專門針對嵌入式產(chǎn)品領(lǐng)域開發(fā)的嵌入式操作系統(tǒng),該系統(tǒng)是一種緊湊、高效、可伸縮的32 位的操作系統(tǒng),主要面向各種嵌入式系統(tǒng)和產(chǎn)品。它所具有的多線程、多任務(wù)、完全搶占式的特點是專為各種有很嚴(yán)格資源限制的硬件系統(tǒng)所設(shè)計的。它的模塊化設(shè)計使嵌入式系統(tǒng)和應(yīng)用程序開發(fā)者能夠方便地加以定制以適應(yīng)一系列產(chǎn)品,例如:消費類電子設(shè)備、專用工業(yè)控制器和嵌入式通信設(shè)備等的需要[1]。

   最大的好處在于界面的通用性,用戶容易接收;同時,可以將通用操作系統(tǒng)下的應(yīng)用程序移植到嵌入式應(yīng)用系統(tǒng)中。關(guān)于Windows 的研究文獻有許多,但是缺少從構(gòu)建平臺到網(wǎng)絡(luò)應(yīng)用的系統(tǒng),本文從網(wǎng)絡(luò)應(yīng)用出發(fā),深入研究Windows CE下如何實現(xiàn)TCP/IP協(xié)議,這對嵌入式網(wǎng)絡(luò)應(yīng)用很有意義。

  1 Windows CE的嵌入式系統(tǒng)的[2][3]

  要進行嵌入式系統(tǒng)的應(yīng)用開發(fā),必須先建立一個開發(fā)平臺。一個Windows CE 的平臺由Windows CE 操作系統(tǒng)核組件、OEM 適配層(OEM Adaptation Layer ,OAL) 和設(shè)備驅(qū)動程序以及組成系統(tǒng)的硬件設(shè)備組成,圖1為Windows CE平臺的層次。

  從圖1 中可以看出,一個基于Windows CE 的嵌入式系統(tǒng)可分為四個層次,從底層到上層分別是硬件層、OEM層、操作系統(tǒng)層和應(yīng)用程序?qū)印?/p>

圖1 基于Windows CE的目標(biāo)平臺及其組件

  硬件層是系統(tǒng)的硬件,包括微處理器和各種周邊設(shè)備。OEM層是一個硬件抽象層,它提供了硬件和操作系統(tǒng)之間的接口,操作系統(tǒng)要訪問具體的硬件就可以通過OEM層提供的API 進行訪問,而不必直接與硬件打交道。操作系統(tǒng)層中有Windows CE 的組件,用戶可以根據(jù)自己的系統(tǒng)的需要進行定制,選擇需要的組件,去掉不必要的組件,這樣可以減小內(nèi)存需求,使系統(tǒng)性能達到最佳。應(yīng)用程序?qū)邮怯脩魹樘囟ǖ那度胧较到y(tǒng)開發(fā)的應(yīng)用程序。

  在操作系統(tǒng)層中,設(shè)備管理器提供對可安裝設(shè)備的支持,允許在系統(tǒng)中安裝諸如PC 卡存儲器和調(diào)制解調(diào)器之類的設(shè)備已擴充功能,內(nèi)核提供最基本的操作系統(tǒng)功能,例如進程調(diào)度、內(nèi)存管理、進程通信等。圖形、窗口事件處理模塊將用戶的擊鍵、鼠標(biāo)移動和控件選擇轉(zhuǎn)換為消息,傳送給應(yīng)用程序和操作系統(tǒng)來處理用戶的輸入。對象存儲、文件系統(tǒng)、數(shù)據(jù)庫和注理用戶的輸入。對象存儲、文件系統(tǒng)、數(shù)據(jù)庫和注冊表提供存儲數(shù)據(jù)的能力。附加技術(shù)模塊指由CE操作系統(tǒng)提供的一些可選擇的專用功能模塊,如Java語言支持模塊、手寫體輸入識別模塊等。用戶界面模塊為系統(tǒng)提供一個與PC 電腦上的視窗操作系統(tǒng)類似的圖形化操作界面。對系統(tǒng)設(shè)計者而言,需要自行開發(fā)的是應(yīng)用程序和直接與硬件有關(guān)的部分,包括硬件系統(tǒng)本身、OAL 、設(shè)備驅(qū)動程序。其中,OAL 是指建立在硬件設(shè)備與系統(tǒng)內(nèi)核之間的一層代碼,主要任務(wù)是為內(nèi)核管理具體的硬件設(shè)備時鐘、中斷和實施電源管理提供支持。設(shè)備驅(qū)動程序負(fù)責(zé)支持操作系統(tǒng)對目標(biāo)硬件的訪問。OAL 和驅(qū)動程序都要針對具體的硬件設(shè)備編寫。 一般硬件設(shè)備制造商會為設(shè)備提供驅(qū)動軟件支持,如果有專門為CE 系統(tǒng)編寫的驅(qū)動程序,只需將其加入到操作系統(tǒng)的相應(yīng)模塊中就可用了。如果沒有,則應(yīng)根據(jù)廠商提供的驅(qū)動程序開發(fā)包編寫。通常這些開發(fā)包總已經(jīng)包含了完成各種硬件操作的標(biāo)準(zhǔn)代碼,開發(fā)者的工作只是將其與相應(yīng)的CE 系統(tǒng)API函數(shù)對應(yīng)起來。在CE 系統(tǒng)中,所有涉及硬件的操作都通過調(diào)用相應(yīng)的API 接口函數(shù)來完成,而OAL 和驅(qū)動程序就是要為這些API 函數(shù)提供支持,將其翻譯為直接對目標(biāo)硬件進行底層操作。通過這種方式,CE 系統(tǒng)將應(yīng)用程序與具體的硬件設(shè)備進行了隔離,應(yīng)用程序只需調(diào)用API 函數(shù)就可以實現(xiàn)對硬件的訪問。這樣,程序員在開發(fā)應(yīng)用程序時就沒有必要編寫任何直接針對硬件的代碼,因此不必考慮具體的硬件特性,而應(yīng)用程序也具有了不依賴于具體硬件設(shè)備的獨立性。

  2 Windows CE 中的網(wǎng)絡(luò)通信協(xié)議

  Windows CE的網(wǎng)絡(luò)通信基于一個按層組織的網(wǎng)絡(luò)堆棧[1 ] (network stack) ,如圖2所示。網(wǎng)絡(luò)堆棧實際上是Windows CE 的一個組件,它絡(luò)堆棧實際上是Windows CE 的一個組件,它負(fù)責(zé)對網(wǎng)絡(luò)中的數(shù)據(jù)傳輸進行處理,將來自于應(yīng)用程序的數(shù)據(jù)分解成若干小段,并為每小段加上相關(guān)地址和段的分割信息,組成可以存貯轉(zhuǎn)發(fā)的信息包(packets) ,信息包中的地址確保數(shù)據(jù)達到最終的目的端點。訪問網(wǎng)絡(luò)堆棧有如下三種方式:第一種是WinSock端口套接字方式。這是一個中間層的傳輸接口協(xié)議,WinSock 負(fù)責(zé)對建立的信息包的所有頭信息細(xì)節(jié)進行處理, 但可以不管其數(shù)據(jù)格式。Windows CE 的網(wǎng)絡(luò)通信都直接或間接地使用WinSock。采用IrDA 協(xié)議實現(xiàn)基于紅外線套接字的客戶/ 服務(wù)器網(wǎng)絡(luò)通信是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)絡(luò)的操作,簡化了網(wǎng)絡(luò)編程。第三種為CIFS 重定位器方式。Windows CE 通過對遠程訪問服務(wù)RAS 客戶的支持,允許基于Windows CE的設(shè)備與遠程主機建立連接。

  3 Windows CE 中網(wǎng)絡(luò)通信協(xié)議使用實例

  3.1 HTTP

  Windows CE提供了一個開發(fā)Internet 客戶應(yīng)用程序的工具集WinInet,與使用Socket 建立網(wǎng)絡(luò)連接的方法相比,它簡化了訪問互聯(lián)網(wǎng)絡(luò)的操作細(xì)節(jié)。利用WinInet可連接到遠程站點,訪問HTML 頁面,通過FTP 上傳、下載文件或獲取文件目錄清單等。WinInet 的Windows CE版本類似于桌面平臺上的WinInet ,但有兩個重要的區(qū)別:一是在Windows CE 中,大多數(shù)callback 函數(shù)以同步方式處理,只有InternetReadFile和InternetQueryDataAvailable 具有同步和異步兩種操作方式;二是Windows CE 默認(rèn)支持Unicode 碼,所有WinInet 函數(shù)都要求寬字符變量[4]。

  通過WinInet 實現(xiàn)網(wǎng)絡(luò)通信最常見的例子是利用HTTP 協(xié)議訪問Internet 站點上的HTTP 頁面。其處理過程與桌面平臺上的情況一致:

  1) 調(diào)用InternetOpen ,獲取Internet 句柄;
  2) 調(diào)用InternetConnect ,為給定站點建立一個會話句柄;
  3) 調(diào)用HttpOpenRequest ,打開一個HTTP 請求句柄;
  4) 調(diào)用HttpSendRequest ,發(fā)送一個指定的請求到HTTP 服務(wù)器;
  5) 調(diào)用InternetReadFile ,從被HttpOpenRequest 所打開的句柄中讀數(shù),下載信息;
  6) 調(diào)用InternetCloseHandle ,關(guān)閉Internet 句柄。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉