Q:什麼是嵌入式系統?
國際電氣和電子工程師協會(IEEE)對嵌入式系統的定義是這樣的:嵌入式系統是“控制、監視或者輔助設備、機器和車間運行的裝置”(Devices used to control, monitor, or assist the Operation of equipment, Machinery or plants)。
但是這個定義非常的難於理解——句子的主干:“嵌入式系統是裝置”——並且不太會被計算機行業的人士接受,為什麼呢?因為做出這個定義的組織是IEEE,是搞電子的一群人,在他們眼裡,當然是Device比較重要。Google一下,還可以找到另外一個定義,我覺得這個定義是比較不錯的:
嵌入式系統是以應用為中心,以計算機技術為基礎,並且軟硬件是可裁剪的,適用於對功能、可靠性、成本、體積、功耗等有嚴格要求的專用計算機系統。
這樣句子的主干就成了“嵌入式系統是計算機系統”。我們可以通過上面的定義,挖掘嵌入式系統的三個特點:
(1) 嵌入性:由於是嵌入到對象系統中,必須滿足對象系統的環境要求,如物理環境(小型)、電氣/氣氛環境(可靠)、成本(價廉)等要求。通俗一點說,嵌入式系統通常需要與某些特定的應用領域緊密結合。
(2) 專用性:軟、硬件的裁剪性;滿足對象要求的最小軟、硬件配置等。一般而言,當嵌入式系統開發結束之後,它的用途也就被定下來了,一般不會改變。例如,我們不可能用投影儀去聽mp3,雖然投影儀上的硬件足以應付對mp3的處理。
(3) 計算機系統:嵌入式系統必須是能滿足對象系統控制要求的計算機系統。與上兩個特點相呼應,這樣的計算機必須配置有與對象系統相適應的接口電路。
總之,嵌入式系統與我們平時接觸的桌面PC還有企業後台服務器的差別還是比較明顯的。這些差別會隨著大家的學習而越來越深刻的體會到。
隨著互聯網技術和消費類電子產品的高速發展,嵌入式系統近年來也得到了飛速發展,近年流行的一個概念,叫“泛嵌入式系統”。意思是嵌入式系統原本的概念早就被延伸了。隨著PDA,智能手機等新興的設備加入到嵌入式的陣營,為PDA、智能手機開發應用程序從廣泛意義上來說也可以算得上是嵌入式開發,而為此類設備開發應用程序與為桌面設備開發應用程序的差別不大,因此,嵌入式開發與桌面開發之間的界限越來越模糊了。
Q:什麼是Windows CE?
Windows CE是微軟公司開發的一個32位、多任務、多線程的嵌入式操作系統。它可以用在手機、機頂盒、智能手持設備、網關、數字媒體設備、工業控制等多種場合。Windows CE支持X86、ARM、MIPS和SH四種處理器架構。並支持WiFi,USB 2.0等新型設備,並具有強大的多媒體功能。
Windows CE操作系統是模塊化設計的,整個系統被劃分為數百個模塊,嵌入式系統開發人員可以根據系統的需要,來選擇自己需要的模塊,從而達到減小系統體積目的。一個最小的Windows CE可運行內核只需要幾百KB。而一個功能完備的Windows CE映像也不會超過64MB。此外,微軟開放了部分Windows CE的源代碼,並且允許開發人員對這部分源代碼進行修改。
Windows CE自1996年發布了第一個版本,目前最新的版本是5.0。它的6.0版本會在2007年發布。
Q:Windows CE與微軟其他Windows版本之間的關系怎麼樣?
目前,微軟的操作系統基本可以分為三大領域:桌面OS、服務器OS和嵌入式OS。桌面OS也就是我們熟悉的Windows XP,Windows 9x等。服務器OS包括Server系列,像Windows 2000 Server和Windows Server 2003。這裡就不再詳細介紹了。
嵌入式OS也分為兩類,一類是Windows XP Embedded,基本上就是把桌面版本的XP做了組件化。另一類就是Windows CE。Windows CE和Windows XPE統稱Windows Embedded。
Q:什麼是Windows Embedded?什麼是Windows Mobile?什麼是Windows Automotive?
Windows Embedded是基於Windows的嵌入式操作系統的統稱。
目前Windows Embedded家族包含兩款產品:Windows CE和Windows XP Embedded。
Windows Mobile是搭建在Windows CE之上的針對移動領域的家族產品集合。也就是說Windows Mobile的內核還是Windows CE,只不過在Windows CE之上搭建了一些針對這個領域一些特有的行業應用組件,例如手機圖形界面,短信息應用等。目前Windows Mobile包含Pocket PC和Smartphone兩款產品。Pocket PC針對PDA設計。Smartphone針對智能手機設計。
Windows Automotive也是搭建在Windows CE之上的針對汽車電子領域的產品。包含了一些汽車電子上比較常用的組件,例如導航系統。
Q:Windows CE與嵌入式Linux等其他嵌入式操作系統如何比較?
由於嵌入式系統的特點而決定的,在嵌入式領域不可能有一款嵌入式操作系統可以一統嵌入式OS的天下。不同的嵌入式操作系統有不同的優缺點。嵌入式開發人員可以根據應用的具體需要進行選擇。
與其他嵌入式操作系統相比,Windows CE的優點有如下幾點:
學習 / 使用簡單:微軟提供了方便的IDE和開發工具,對於OS的定制、裁減、交叉編譯等都相對簡單。此外,Windows CE的應用程序開發接口也是Win32 API,與桌面Windows的基本一致。這也方便了桌面Windows開發人員向Windows CE嵌入式開發過渡。
圖形界面優秀:這個理由或許是許多人員選用Windows CE的主要原因。Windows CE的圖形和多媒體能力是非常優秀的,可以方便的支持多種視頻音頻格式。此外還支持DirectX多媒體接口,這對於開發多媒體應用(例如電子地圖導航、多媒體播放器等)非常方便。
應用集成度高:Windows CE自帶了很多應用程序,例如Web浏覽器,多媒體播放器,Office文件察看器等。這對於快速的開發一款產品相當有用。此外,互聯網上有數以萬計的為Windows CE開發的應用程序。
與其他嵌入式操作系統相比,Windows CE可能有如下缺點:
對硬件要求高:Windows CE要求硬件必須有32位的CPU和MMU,和數MB的RAM,雖然Windows CE可以裁減到幾百K,但是對於一些小型的設備(例如一些航天設備只有64KB的ROM和幾百KB的RAM),Windows CE依然不適合這類的領域。
實時性和可靠性:雖然Windows CE在實時性上下了非常大的功夫,並且實時性與桌面Windows相比已經有了質的提高,但是在一些實時性和高可靠性的場合,Windows CE可能依然不適合。
授權費用:Windows CE是按照license方式來收錢的,根據用戶選擇的組件不同,每個Windows CE的license可能要到十幾美元左右。
Q:學習Windows CE的方向有哪些?
與桌面操作系統和服務器操作系統下的軟件開發不同,為嵌入式操作系統開發軟件可不只是寫寫應用程序那麼簡單。我們常常要深入到內核,甚至要深入到硬件。根據不同的開發層面,我們把Windows CE 下的嵌入式軟件開發者分為下面三類:
第一類我們稱之為應用程序開發者。此類開發人員與傳統的通用操作系統下的應用開發人員比較相似。他們通常是利用操作系統提供的API(Application Programming Interface,應用程序編寫接口),應用程序庫(例如C 運行時庫,Visual Basic 運行時庫)或應用開發框架(例如J2EE 與.Net Framework)來編寫代碼。他們開發的代碼通常運行在用戶態,無需直接對硬件進行操作。他們所關注的是通常是應用功能和業務邏輯的實現。此外,他們的程序通常是直接與最終用戶打交道的。
第二類是操作系統平台的提供者。此類開發人員的主要職責是針對具體的應用環境,對嵌入式操作系統進行裁減,向第一類開發人員提供應用程序運行的平台。他們通常要對所裁減的操作系統的各個模塊的功能了如指掌,這樣才可以針對具體的應用環境,搭建出合適的平台,使資源達到最節省。例如,一個運行在自動取款機上的嵌入式操作系統應不應該加入MPEG4 播放模塊,管理數碼相機的嵌入式操作系統中“藍牙”網絡協議棧是否必要……。此外,為了滿足應用需求,他們有可能還需要對所裁減的嵌入式操作系統進行一些擴充,增加嵌入式操作系統所不支持的功能,編寫一些比較上層的驅動程序通常是必要的。