<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于Windows CE的嵌入式系統的結構分析

基于Windows CE的嵌入式系統的結構分析

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

引言

本文引用地址:http://dyxdggzs.com/article/151198.htm

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

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

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

  1 Windows CE的嵌入式系統的[2][3]

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

  從圖1 中可以看出,一個(gè)基于Windows CE 的嵌入式系統可分為四個(gè)層次,從底層到上層分別是硬件層、OEM層、操作系統層和應用程序層。

圖1 基于Windows CE的目標平臺及其組件

  硬件層是系統的硬件,包括微處理器和各種周邊設備。OEM層是一個(gè)硬件抽象層,它提供了硬件和操作系統之間的接口,操作系統要訪(fǎng)問(wèn)具體的硬件就可以通過(guò)OEM層提供的API 進(jìn)行訪(fǎng)問(wèn),而不必直接與硬件打交道。操作系統層中有Windows CE 的組件,用戶(hù)可以根據自己的系統的需要進(jìn)行定制,選擇需要的組件,去掉不必要的組件,這樣可以減小內存需求,使系統性能達到最佳。應用程序層是用戶(hù)為特定的嵌入式系統開(kāi)發(fā)的應用程序。

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

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

  Windows CE的網(wǎng)絡(luò )通信基于一個(gè)按層組織的網(wǎng)絡(luò )堆棧[1 ] (network stack) ,如圖2所示。網(wǎng)絡(luò )堆棧實(shí)際上是Windows CE 的一個(gè)組件,它絡(luò )堆棧實(shí)際上是Windows CE 的一個(gè)組件,它負責對網(wǎng)絡(luò )中的數據傳輸進(jìn)行處理,將來(lái)自于應用程序的數據分解成若干小段,并為每小段加上相關(guān)地址和段的分割信息,組成可以存貯轉發(fā)的信息包(packets) ,信息包中的地址確保數據達到最終的目的端點(diǎn)。訪(fǎng)問(wèn)網(wǎng)絡(luò )堆棧有如下三種方式:第一種是WinSock端口套接字方式。這是一個(gè)中間層的傳輸接口協(xié)議,WinSock 負責對建立的信息包的所有頭信息細節進(jìn)行處理, 但可以不管其數據格式。Windows CE 的網(wǎng)絡(luò )通信都直接或間接地使用WinSock。采用IrDA 協(xié)議實(shí)現基于紅外線(xiàn)套接字的客戶(hù)/ 服務(wù)器網(wǎng)絡(luò )通信是Windows CE平臺的一個(gè)特色。第二種為WinInet API 方式。WinInet API是微軟公司基于Win32 平臺的互聯(lián)網(wǎng)函數接口。Windows CE 的WinInet API 對其進(jìn)行了某些限制或擴展,它提供的高級數據協(xié)議除了常見(jiàn)的超文本傳輸協(xié)議HTTP 和文件傳輸協(xié)議FTP 外,還提供了對SSL的支持。API 方式避免了直接使用WinSock 訪(fǎng)問(wèn)網(wǎng)絡(luò )的操作,簡(jiǎn)化了網(wǎng)絡(luò )編程。第三種為CIFS 重定位器方式。Windows CE 通過(guò)對遠程訪(fǎng)問(wèn)服務(wù)RAS 客戶(hù)的支持,允許基于Windows CE的設備與遠程主機建立連接。

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

  3.1 HTTP

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

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

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

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>