摘 要:從系統(tǒng)結(jié)構(gòu)、硬件要求、設(shè)計開發(fā)和應(yīng)用領(lǐng)域等方面詳細介紹了美國微軟公司最新的32位Windows CE操作系統(tǒng)。
關(guān)鍵詞:操作系統(tǒng) 嵌入式系統(tǒng) 模塊化設(shè)計
1 Windows CE系統(tǒng)簡介
Windows CE(以下簡稱CE)是美國微軟公司專門為各種移動和便攜電子設(shè)備、個人信息產(chǎn)品、消費類電子產(chǎn)品、嵌入式應(yīng)用系統(tǒng)等非臺式或筆記本電腦領(lǐng)域設(shè)計的一種32位高性能操作系統(tǒng)。它具有一個簡捷、高效的完全搶先式多任務(wù)操作核心,支持強大的通信和圖形顯示功能,能夠適應(yīng)廣泛的系統(tǒng)需求。CE操作系統(tǒng)的主要特點包括:
·兼容于微軟公司的視窗(Windows)PC電腦操作系統(tǒng),支持超過1000個常用的32位視窗應(yīng)用程序接口函數(shù)(Win32API),支持高分辨率真彩色顯示,為應(yīng)用軟件提供了強大的運行平臺。
·對硬件沒有任何特殊要求,允許系統(tǒng)設(shè)計者根據(jù)所開發(fā)產(chǎn)品的要求自由選擇硬件,同時提供最廣泛的硬件設(shè)備支持,包括通信接口、顯示和打印設(shè)備、輸入輸出設(shè)備、音頻設(shè)備、網(wǎng)絡(luò)和存儲設(shè)備等。
·支持多達數(shù)十種不同的32位微處理器芯片,包括Intel和AMD公司的X86系列、摩托羅拉公司的PowerPC、日立公司的SH3系列、東芝公司的MIPS系列以及PHILIPS、NEC公司的處理器產(chǎn)品等。
·采用模塊化結(jié)構(gòu),配置靈活,運行時僅需很少的存儲器(RAM)資源,并且是目前唯一的可以從ROM(只讀存儲器)中直接啟動的32位操作系統(tǒng),能夠滿足具有嚴(yán)格硬件資源限制的系統(tǒng)要求。
由于其本身具有的出色性能,CE系統(tǒng)自1996年底面世之后,迅速在國外最新一代的工業(yè)和家用電子設(shè)備中得到了廣泛應(yīng)用。在美國,僅基于CE系統(tǒng)的掌上電腦產(chǎn)品銷量就已超過了200萬臺。本文將從系統(tǒng)結(jié)構(gòu)、硬件要求、設(shè)計開發(fā)和應(yīng)用領(lǐng)域等4個方面對CE系統(tǒng)作全面的介紹。
2 Windows CE的系統(tǒng)結(jié)構(gòu)
CE操作系統(tǒng)由一些獨立的模塊組成,每一個模塊提供特定的系統(tǒng)功能,大的模塊又可以分成為幾個組件。這種組件式結(jié)構(gòu)能使CE系統(tǒng)變得非常緊湊,僅需使用很少的硬件資源就可運行。最主要的系統(tǒng)模塊有四個,它們是:
· 內(nèi)核
內(nèi)核是整個操作系統(tǒng)的核心部分,它負責(zé)最基本的操作系統(tǒng)功能,包括內(nèi)存管理,進程管理和必需的文件管理。CE系統(tǒng)的內(nèi)核繼承了微軟公司視窗操作系統(tǒng)的大部分出色性能,能夠提供虛擬內(nèi)存管理、進程調(diào)度、多任務(wù)管理、多線程管理以及中斷處理、異常處理等系統(tǒng)級服務(wù)。CE系統(tǒng)強大的搶先式多任務(wù)處理機制允許多達32個獨立的應(yīng)用程序(即所謂進程)同時運行,而多線程機制又支持每個進程擁有自己下屬的多個運行分支(即所謂線程)。此外,CE系統(tǒng)還允許每個進程擁有不同的優(yōu)先級,優(yōu)先級高的進程可以比優(yōu)先級低的進程擁有更高的系統(tǒng)資源使用權(quán)限。這種多任務(wù)特性使CE系統(tǒng)非常適用于需要實時處理功能的嵌入式系統(tǒng),它使應(yīng)用程序能夠同時運行幾個分支以處理不同的突發(fā)任務(wù)。
· 持久性存儲模塊
持久性存儲模塊通過對CE系統(tǒng)中對象存儲(object store)功能的支持,為用戶和應(yīng)用程序提供數(shù)據(jù)存儲服務(wù)。對象存儲包含三種類型:文件系統(tǒng)、CE數(shù)據(jù)庫和系統(tǒng)注冊表。文件系統(tǒng)使用文件分配表(FAT)來管理用戶安裝或創(chuàng)建的可執(zhí)行程序或數(shù)據(jù)文件,最多支持9個FAT分區(qū),并具有鏡像處理和安全功能,能預(yù)防在掉電或其他緊急情況下丟失數(shù)據(jù)。數(shù)據(jù)庫提供結(jié)構(gòu)化的數(shù)據(jù)存儲和訪問功能。系統(tǒng)注冊表用于存儲應(yīng)用程序需要快速訪問的系統(tǒng)配置數(shù)據(jù)以及其它信息。
· 繪圖、窗口、事件子系統(tǒng)(簡稱GWES)
GWES是用戶、應(yīng)用程序和操作系統(tǒng)之間的圖形化操作界面,負責(zé)提供系統(tǒng)與用戶之間的人機交互接口。GWES處理輸入的方式是將按鍵、手寫式輸入裝置的移動、菜單或按鈕等控件的選擇等用戶輸入事件轉(zhuǎn)換為消息,然后再傳遞給應(yīng)用程序;處理輸出的方式是在顯示設(shè)備或打印機上顯示或打印窗口、圖形、文本等信息。GWES的核心是窗口,所有的應(yīng)用程序都需要通過窗口從操作系統(tǒng)中接收信息,而所有的輸入事件都要經(jīng)操作系統(tǒng)翻譯為消息后通過窗口傳遞給應(yīng)用程序。圖1為GWES的結(jié)構(gòu)。
· 通信模塊
通信模塊為運行CE系統(tǒng)的設(shè)備提供對多種通信硬件和數(shù)據(jù)傳輸協(xié)議的支持,包括串/并行數(shù)據(jù)端口、紅外數(shù)據(jù)端口、電話應(yīng)用程序接口(TAPI)以及網(wǎng)絡(luò)通信協(xié)議。CE系統(tǒng)的網(wǎng)絡(luò)功能十分強大,支持局域網(wǎng)(LAN)、傳輸控制協(xié)議/Internet協(xié)議(TCP/IP)、遠程訪問服務(wù)(RAS)、網(wǎng)間控制報文協(xié)議(ICMP)、超文本傳輸協(xié)議(HTTP)、文件傳輸協(xié)議(FTP)等所有流行的網(wǎng)絡(luò)協(xié)議。
以上介紹的4個模塊提供了最主要的操作系統(tǒng)功能。除此之外,CE系統(tǒng)還有其它一些可選擇的模塊,包括:設(shè)備管理器和可安裝型設(shè)備驅(qū)動模塊、多媒體(聲音)支持模塊、組件對象模型(COM)支持模塊、系統(tǒng)外殼(Shell)等。對于CE系統(tǒng)而言,每一個模塊都提供一種完整的功能。在最終的應(yīng)用系統(tǒng)中,這些功能不一定都會被使用。CE系統(tǒng)不要求用戶包含所有的功能,如果某項功能不需要的話,整個模塊就可以被省略。
這種基于模塊和組件的結(jié)構(gòu)使CE系統(tǒng)具有了高度的可伸縮性,它允許用戶在設(shè)計自己的操作系統(tǒng)時自由選擇需要的模塊或組件。這樣,系統(tǒng)開發(fā)者就能夠方便地根據(jù)具體的硬件要求定制出合適的操作系統(tǒng),使其中僅包含設(shè)備運行所必須的功能模塊,從而不必為支持其它不需要的硬件或功能付出額外代價。通過采用這種方式,CE系統(tǒng)在支持目前市場上絕大多數(shù)硬件設(shè)備及接口標(biāo)準(zhǔn)的同時又保證了最大的靈活性和系統(tǒng)效率,因此能夠適應(yīng)廣泛的用戶系統(tǒng)的要求。
3 Windows CE系統(tǒng)的硬件要求
CE操作系統(tǒng)不需要任何特定的硬件結(jié)構(gòu),實際的硬件系統(tǒng)完全由用戶根據(jù)需要自由設(shè)計。從理論上說,一臺以CE系統(tǒng)為基礎(chǔ)的設(shè)備必須有一個處理器,有內(nèi)存及內(nèi)部時鐘以便處理進度,除此之外再沒有其他的硬件要求。不過在實際應(yīng)用中,每個系統(tǒng)都需要有周邊設(shè)備才能完成其功能。如前所述,CE系統(tǒng)提供了廣泛的硬件兼容性,支持幾乎所有的外圍設(shè)備、其它設(shè)備和網(wǎng)絡(luò)設(shè)備。為了進一步減少對內(nèi)存資源的需求,CE系統(tǒng)在采用模塊化設(shè)計的同時還大量使用了動態(tài)鏈接庫(Dynamic-Link Library),許多功能函數(shù)都包含在動態(tài)鏈接庫中,僅當(dāng)應(yīng)用程序需要時才調(diào)入內(nèi)存,平時則以文件形式保存在存儲器內(nèi)。
作為一個小而靈活的操作系統(tǒng),以CE為基礎(chǔ)的系統(tǒng)所需內(nèi)存大小完全依賴于系統(tǒng)選用的模塊和組件。表1列出了幾種有代表性的基于CE的操作系統(tǒng)配置以及對存儲器資源的要求。其中,MinInput表示最小輸入采集系統(tǒng),MinGDI表示最小圖形系統(tǒng),MinComm表示最小通信系統(tǒng),H/PCUI表示手持電腦用戶操作系統(tǒng)。表格中,ROM欄表示系統(tǒng)需要的永久存儲空間,RAM欄表示系統(tǒng)運行時占用的系統(tǒng)內(nèi)存,STACK欄表示系統(tǒng)運行時占用的數(shù)據(jù)存儲空間。
可以看出,相對于它強大的功能,CE操作系統(tǒng)對于硬件資源的要求非常低。一個只包含內(nèi)核、通信端口,不需要顯示功能的基本系統(tǒng)僅需不到400K的ROM和30K RAM即可運行,而一個完整配置的掌上電腦操作系統(tǒng)也只需大約2M ROM和1M RAM。當(dāng)然,最終的系統(tǒng)配置還必須考慮應(yīng)用程序運行和用戶數(shù)據(jù)存儲的需要。
4 基于Windows CE的應(yīng)用系統(tǒng)開發(fā)與設(shè)計
設(shè)計一個運行CE的嵌入式系統(tǒng)需要經(jīng)過以下步驟:
(1) 明確設(shè)計目的,確認(rèn)系統(tǒng)功能,選擇合適的微處理器芯片和周邊設(shè)備;
(2) 完成硬件平臺的設(shè)計;
(3) 選擇CE功能模塊,定制操作系統(tǒng),并改編部分代碼使之與硬件平臺相配合;
(4) 編寫應(yīng)用軟件。
典型的基于CE的嵌入式系統(tǒng)結(jié)構(gòu)如圖2所示。其中,設(shè)備管理器提供對可安裝設(shè)備的支持,允許在系統(tǒng)中安裝諸如PC卡存儲器和調(diào)制解調(diào)器之類的設(shè)備以擴充功能;附加技術(shù)模塊指由CE操作系統(tǒng)提供的一些可選擇的專用功能模塊,如JAVA語言(一種網(wǎng)絡(luò)編程語言)支持模塊、手寫筆輸入識別模塊等;外殼模塊為系統(tǒng)提供一個與PC電腦上的視窗操作系統(tǒng)類似的圖形化操作界面。
對于系統(tǒng)設(shè)計者而言,需要自行開發(fā)的是應(yīng)用程序和直接與硬件有關(guān)的部分,包括硬件系統(tǒng)本身、硬件抽象層和設(shè)備驅(qū)動程序。其中,硬件抽象層是指建立在硬件設(shè)備與系統(tǒng)內(nèi)核之間的一層代碼,主要任務(wù)是為內(nèi)核管理具體硬件設(shè)備的時鐘、中斷和實施電源管理提供支持。設(shè)備驅(qū)動程序負責(zé)支持操作系統(tǒng)對目標(biāo)硬件的訪問。硬件抽象層和驅(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ù)來完成,而硬件抽象層和驅(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è)備的獨立性。
微軟公司提供了專門的Windows CE平臺編輯器軟件來幫助開發(fā)者完成定制操作系統(tǒng)和編寫硬件抽象層的工作。該編輯器是一個可以在PC電腦上運行的工具軟件包,其中包含完整的帶有集成開發(fā)工具的Windows CE操作系統(tǒng),并附帶了編程指南、應(yīng)用程序接口(API)參考等資料和設(shè)備驅(qū)動程序工具箱。用戶可以使用其中的操作系統(tǒng)編輯器、匯編編輯器和經(jīng)過優(yōu)化的Visual C++編輯器進行開發(fā),并將最終生成的操作系統(tǒng)編譯為能夠被處理器芯片識別的二進制代碼文件,以便在目標(biāo)系統(tǒng)中使用。除啟動和初始化部分外,CE系統(tǒng)的其他部分可以直接以文件形式存儲。CE平臺編輯器中還帶有遠程調(diào)試工具,只要硬件開發(fā)系統(tǒng)支持并留出調(diào)試端口,就可以將編輯好的操作系統(tǒng)從PC電腦中下載到硬件平臺進行調(diào)試,并在PC電腦上觀察系統(tǒng)的運行狀態(tài)和內(nèi)存資源使用情況等信息。
由于CE操作系統(tǒng)支持1000多個與Windows系統(tǒng)兼容的API函數(shù),使在基于CE的嵌入式系統(tǒng)中運行的程序可以擁有與PC電腦中的程序同樣復(fù)雜和強大的功能。微軟公司提供了專門用于編寫CE程序的Visual C++和Visual Basic附件工具包以及CE平臺模擬器,讓程序員能夠直接利用這兩種熟悉的編程語言在PC電腦上編寫和調(diào)試CE系統(tǒng)中的程序。此外,盡管編寫CE系統(tǒng)的應(yīng)用程序與編寫PC平臺的32位Windows應(yīng)用程序有一些區(qū)別,但其中進程、線程、視窗的概念以及API函數(shù)、資源、控件都與Windows系統(tǒng)非常相似,因此任何具有Windows編程經(jīng)驗的程序員都能夠很容易地掌握CE編程。
5 Windows CE系統(tǒng)的應(yīng)用領(lǐng)域
目前國外已經(jīng)有大量基于Windows CE系統(tǒng)的設(shè)備面市,所涉及的領(lǐng)域包括家用電器、娛樂設(shè)備、專用計算機系統(tǒng)、便攜電腦以及個人通信產(chǎn)品等。微軟公司于1999年3月在中國深圳提出了維納斯計劃,其核心內(nèi)容就是推廣基于Windows CE系統(tǒng)的信息家電產(chǎn)品。目前已經(jīng)有許多符合這一概念的產(chǎn)品面世,如美國國家半導(dǎo)體公司生產(chǎn)的便攜式網(wǎng)絡(luò)終端WebPad,能夠隨時與互聯(lián)網(wǎng)連接,進行網(wǎng)絡(luò)瀏覽和收發(fā)電子郵件。類似的產(chǎn)品還包括網(wǎng)絡(luò)機頂盒和網(wǎng)絡(luò)電話。在家庭娛樂市場方面,日本世嘉公司于1998年底推出了運行CE系統(tǒng)的Dreamcast電視游戲機,其擁有的強大的處理器運算能力和圖形功能甚至超過了桌面電腦產(chǎn)品,除進行游戲之外還能播放DVD、瀏覽互聯(lián)網(wǎng)或運行基于CE系統(tǒng)的應(yīng)用程序。在專用計算機系統(tǒng)方面,使用CE系統(tǒng)的有打包和郵件跟蹤設(shè)備、超市收銀機終端、數(shù)據(jù)采集設(shè)備、車載導(dǎo)航電子設(shè)備以及工業(yè)控制系統(tǒng)等。在便攜電腦市場方面,運行CE系統(tǒng)的設(shè)備包括掌上電腦、個人商務(wù)通產(chǎn)品和車載移動電腦系統(tǒng)。掌上電腦是最近幾年興起的新型便攜信息產(chǎn)品,一般都配備筆輸入裝置,具有文字處理、電子記事和網(wǎng)絡(luò)瀏覽功能,可以與桌面電腦進行對接交換數(shù)據(jù),而重量不到傳統(tǒng)筆記本電腦的一半。在國外,流行的掌上電腦操作系統(tǒng)有Palm OS和Windows CE兩種,而國內(nèi)則主要是中文Windows CE。常見的惠普、聯(lián)想等公司的產(chǎn)品都使用了最新的中文CE2.11版本,其中還引入了漢王筆輸入識別技術(shù)和金山詞霸英漢雙向翻譯系統(tǒng)。在個人通信市場方面,已經(jīng)有大量內(nèi)置CE系統(tǒng)、能夠進行網(wǎng)絡(luò)訪問和收發(fā)電子郵件的移動電話產(chǎn)品出現(xiàn)。
總結(jié)以上介紹可以得出結(jié)論,由于CE操作系統(tǒng)具有強大的功能、廣泛的兼容性、靈活的適用性、最小的硬件資源要求和完善的開發(fā)工具支持,因此是設(shè)計嵌入式系統(tǒng)的理想選擇。21世紀(jì)將是人類社會全面走向網(wǎng)絡(luò)化、信息化的時代,電子產(chǎn)品小型化、智能化、網(wǎng)絡(luò)化的趨勢已不可避免。面對這一浪潮,將先進的操作系統(tǒng)性能和強大的通信能力高度集成在一起的CE系統(tǒng)無疑具有美好的應(yīng)用前景。
參考文獻
1 Franklin Fite Jr.Embedded Development with Microsoft Windows CE 2.0.Microsoft Developer Network Library,1997;9
2 John Murray.Microsoft Windows CE Memory Use. Microsoft Developer Network Library,1997;9
3 Jason Black and Jon christianson. Microsoft Windows CE Display Driver and Hardware. Microsoft Developer Network Library,1997;9
4 Douglas Boling.Programming Windows CE.Microsoft Press, 1998;10