cf手游m4a1s觉醒材料 » 技術支持 » 正文

cf手游ak青花瓷哪里买:嵌入式操作系統Windows CE研究

來源:零零電子  作者:零零電子  時間:2008-08-23 15:50:27  閱讀:815

cf手游m4a1s觉醒材料 www.ynnnm.icu 引言

嵌入式系統被定義為:以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。嵌入式操作系統是支持嵌入式系統應用的操作系統軟件,它是嵌入式系統極為重要的組成部分,通常包括與硬件相關的底層驅動軟件、系統內核、設備驅動接口、通信協議、圖形界面、標準化瀏覽器等。與通用操作系統相比較,嵌入式操作系統在系統實時高效性、硬件的依賴性、軟件固態化以及應用的專用性等方面具有較為突出的特點。嵌入式操作系統的出現,大大提高了嵌入式系統開發的效率,在嵌入式操作系統之上開發嵌入系統將減少系統開發的工作量,增強嵌入式應用軟件的可移植性,使嵌入式系統的開發方法更具科學性。近年來,隨著電子技術的不斷進步,嵌入式系統開發己成為熱點,

Windows CE 是Microsoft 公司專門針對嵌入式產品領域開發的嵌入式操作系統,該系統是一種緊湊、高效、可伸縮的32 位的操作系統,主要面向各種嵌入式系統和產品。它所具有的多線程、多任務、完全搶占式的特點是專為各種有很嚴格資源限制的硬件系統所設計的。它的??榛杓剖骨度朧較低澈陀τ貿絳蚩⒄吣芄環獎愕丶右遠ㄖ埔允視σ幌盜脅?,例如:消費類電子設備、專用工業控制器和嵌入式通信設備等的需要[1]。

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

1 基于Windows CE的嵌入式系統的結構[2][3]

要進行嵌入式系統的應用開發,必須先建立一個開發平臺。一個基于Windows CE 的平臺由Windows CE 操作系統核組件、OEM 適配層(OEM Adaptation Layer ,OAL) 和設備驅動程序以及組成系統的硬件設備組成,圖1為基于Windows CE平臺的層次結構。

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


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

在操作系統層中,設備管理器提供對可安裝設備的支持,允許在系統中安裝諸如PC 卡存儲器和調制解調器之類的設備已擴充功能,內核提供最基本的操作系統功能,例如進程調度、內存管理、進程通信等。圖形、窗口事件處理??榻沒У幕骷?、鼠標移動和控件選擇轉換為消息,傳送給應用程序和操作系統來處理用戶的輸入。對象存儲、文件系統、數據庫和注理用戶的輸入。對象存儲、文件系統、數據庫和注冊表提供存儲數據的能力。附加技術??櫓贛蒀E操作系統提供的一些可選擇的專用功能???,如Java語言支持???、手寫體輸入識別??櫚?。用戶界面??槲低程峁┮桓鲇隤C 電腦上的視窗操作系統類似的圖形化操作界面。對系統設計者而言,需要自行開發的是應用程序和直接與硬件有關的部分,包括硬件系統本身、OAL 、設備驅動程序。其中,OAL 是指建立在硬件設備與系統內核之間的一層代碼,主要任務是為內核管理具體的硬件設備時鐘、中斷和實施電源管理提供支持。設備驅動程序負責支持操作系統對目標硬件的訪問。OAL 和驅動程序都要針對具體的硬件設備編寫。

一般硬件設備制造商會為設備提供驅動軟件支持,如果有專門為CE 系統編寫的驅動程序,只需將其加入到操作系統的相應??櫓芯涂捎昧?。如果沒有,則應根據廠商提供的驅動程序開發包編寫。通常這些開發包總已經包含了完成各種硬件操作的標準代碼,開發者的工作只是將其與相應的CE 系統API函數對應起來。在CE 系統中,所有涉及硬件的操作都通過調用相應的API 接口函數來完成,而OAL 和驅動程序就是要為這些API 函數提供支持,將其翻譯為直接對目標硬件進行底層操作。通過這種方式,CE 系統將應用程序與具體的硬件設備進行了隔離,應用程序只需調用API 函數就可以實現對硬件的訪問。這樣,程序員在開發應用程序時就沒有必要編寫任何直接針對硬件的代碼,因此不必考慮具體的硬件特性,而應用程序也具有了不依賴于具體硬件設備的獨立性。

2 Windows CE 中的網絡通信協議

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

3 Windows CE 中網絡通信協議使用實例

3.1 HTTP

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

通過WinInet 實現網絡通信最常見的例子是利用HTTP 協議訪問Internet 站點上的HTTP 頁面。其處理過程與桌面平臺上的情況一致:

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

3.2 遠程訪問服務RAS

RAS 是一個用于連接遠端設備的基于軟件的多協議路由器,也稱為RAS 客戶,對于桌面主機,則稱為RAS 服務器。RAS 應用程序常在設備端上執行,并通過PPP/ SLIP 與服務器連接。WindowsCE對RAS 客戶提供了支持。盡管有許多標準的Win32 RAS 函數,但這里僅允許通過串行電纜或撥號Modem 建立點對點的連接。在Windows CE 環境下,RAS 電話簿項目中包含有建立RAS 連接的必要信息,Windows CE 將其存貯在注冊表中。RAS 電話簿信息包括:撥打的電話號碼(含國家和地區代碼) 、當前連接的IP 地址、網絡協議、用于建立連接的設備類型。用RAS 建立連接的步驟如下[4]:

1)確定呼叫的電話號碼;如果該號碼不在電話簿中, 則需要調用RasEnumEntries 函數查找。

2)RasDial 建立連接;

DWORD RasDial (LPCTSTR lpszPhonebook ,
/ / 電話簿文件的路徑和文件名指針
DWORD dwNotifierType ,
/ / RasDial 事件的句柄類型
LPVOID lpvNotifier ,
/ / RasDial 事件的句柄
LPHRASCONN lphRasConn
/ / 指向連接句柄類型變量) ;該函數的參數設置與桌面平臺上的設置不同,要求將lpszPhonebook 設置為NULL ,dwNotifierType 設置為0xFFFFFFFF。

3) 當會話結束時,用RasHangUp 終止連接。

DWORD RasHangUp ( HRASCONN hrasconn ) ;

3.3 WAP應用

通常,Web Server需要在目標機中置入文件系統,但是,嵌入式系統往往會面臨有限的存儲資源問題,文件系統會增加系統負擔。Windows CE的Web Server設計了一個Web頁的格式編輯器,可以將Java,GIF,JPEG,PDF,TIFF,HTML,ASCII轉換成標準C源文件,可以與其他的應用程序鏈接,Web Server就在一個虛擬的文件系統下訪問這些文件。

在開發移動通信產品時候,需要用WAP協議,Windows CE提供了一個WAP的解決方案,開發起來非常方便。該協議棧可以支持任何標準的無線協議,包括GSM、UDP、GPRS等,協議棧包括WAE、WSP、WTP、WTLS、WDP等[3]。
此外,Windows CE還支持藍牙協議、RFCOMM協議、SDP協議、L2CAP協議等。

4 基于Windows CE嵌入式平臺創建

在硬件設計成功后,就需要創建一個基于Windows CE 的嵌入式平臺,有了平臺,用戶就可以利用Windows CE 的開發工具在該平臺上進行應用程序的開發。為了創建一個基于Windows CE 的平臺,首先需要選擇一個Windows CE OS 配置,安裝或創建一個OAL 和設備驅動程序,創建一個基于用戶配置的OS映像文件,并開發一個將映像文件傳輸到目標設備的引導程序[1][2][3]。

首先,選擇一個Windows CE OS 配置,然后加入一個OAL 和設備驅動程序??梢源唇ㄗ約旱腛AL ,使用一個預先配置好的BSP(Board Support Package)或者創建自己的BSP。一個BSP 包含一個OAL 、設備驅動程序和定制的硬件缺省的組件列表。

Windows CE Platform Builder3. 0 中包含有CEPC (CE-base PC) 的BSP 和HitachiD9000 硬件開發平臺(ODO) ,系統開發者也可以根據需要開發自己的BSP 或者利用第三方開發好的BSP。

5 結束語

在嵌入式系統中,網絡通信應用越來越廣泛。選擇一個合適的實時操作系統是開發嵌入式系統的關鍵。本文研究了Windows CE在網絡通信方面的開發工作,今后還有許多問題值得研究,包括在基于ARM的嵌入式應用中如何移植Windows CE中的應用程序,Windows CE的調試工具如何和DSP、MUC的調試工具配合使用等。

      
  相關信息
 · 嵌入式操作系統Windows CE研究  2008-08-23 15:50:27
更多   
    客戶服務電話:0551-63525828
    技術交流電話:0551-66109061
    客戶服務 QQ:289135388
    MSN:[email protected]
    傳真服務號碼:0551-63525828
    地址:合肥市政務區潛山路綠地藍海國際大廈A樓1609-1610室
關于我們 | 服務條款 | 銷售咨詢 | cf手游m4a1s觉醒材料 | 聯系我們 版權所有(C)合肥零零電子科技有限公司 2005-2019 皖ICP備08104870號