1、引言:
隨著計算機技術和微電子技術的迅速發展,嵌入式系統應用領域越來越廣泛。當今,嵌入式系統已成為一個時髦的名詞,就像當初的計算機熱潮,似乎比當初的計算機熱潮涉及的領域更廣泛,應用技術人員更多,相關國民經濟產值也更龐大。報紙、雜志、網絡都把嵌入式系統當作討論的熱門話題。
嵌入式系統一般指非PC系統,有計算機功能但又不稱之為計算機的設備或器材。它是以應用為中心,軟硬件可裁減的,適應應用系統對功能、可靠性、成本、體積、功耗等綜合性嚴格要求的專用計算機系統。
嵌入式系統主要由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶的應用程序等4個部分組成,它是集軟硬件于一體的可獨立工作的"器件"。
嵌入式系統的軟件部分包括操作系統軟件(要求實時和多任務操作)和應用程序編程。操作系統控制著應用程序編程與硬件的交互作用,而應用程序控制著系統的運作和行為。
2、嵌入式系統軟件:
(1)嵌入式操作系統:
嵌入式操作系統是一種支持嵌入式系統應用的操作系統軟件,它是嵌入式系統(包括硬、軟件系統)極為重要的組成部分,通常包括與硬件相關的底層驅動軟件、系統內核、設備驅動接口、通信協議、圖形界面、標準化瀏覽器等Browser。
嵌入式操作系統具有通用操作系統的基本特點,如能夠有效管理越來越復雜的系統資源;能夠把硬件虛擬化,使得開發人員從繁忙的驅動程序移植和維護中解脫出來;能夠提供庫函數、驅動程序、工具集以及應用程序。與通用操作系統相比較,嵌入式操作系統在系統實時高效性、硬件的相關依賴性、軟件固態化以及應用的專用性等方面具有較為突出的特點。
(2)嵌入式操作系統的發展狀況:
國外嵌入式操作系統已經從簡單走向成熟,主要有Vxwork、QNX、PalmOS、Windows CE、嵌入式Linux等。
國內的嵌入式操作系統研究開發有2種類型,一類是基于國外操作系統2次開發完成的,如海信的基于Windows CE的機頂盒系統;另一類是中國自主開發的嵌入式操作系統,如凱思集團公司自主研制開發的嵌入式操作系統Hopen OS(“女媧計劃”)等。
Windows CE內核較小,能作為一種嵌入式操作系統應用到工業控制等領域。其優點在于便攜性、提供對微處理器的選擇以及非強行的電源管理功能。內置的標準通信能力使 Windows CE能夠訪問Internet并收發E-mail或瀏覽Web。除此之外,Windows CE特有的與Windows類似的用戶界面使最終用戶易于使用。
Windows CE的缺點是速度慢、效率低、價格偏高、開發應用程序相對較難。
3Com公司的Palm OS在掌上電腦和PDA市場上獨占其霸主地位,它有開放的操作系統應用程序接口(API),開發商可根據需要自行開發所需的應用程序。
QNX是由加拿大QSSL公司開發的分布式實時操作系統,它由微內核和一組共操作的進程組成,具有高度的伸縮性,可靈活地剪裁,最小配置只占用幾十KB內存。因此,可以廣泛地嵌入到智能機器、智能儀器儀表、機頂盒、通訊設備、PDA等應用中去。
Hopen OS是凱思集團自主研制開發的嵌入式操作系統,由一個體積很小的內核及一些可以根據需要進行定制的系統模塊組成。其核心Hopen Kernel一般為10KB左右大小,占用空間小,并具有實時、多任務、多線程的系統特征。
在眾多的實時操作系統和嵌入式操作系統產品中,WindRiver公司的VxWorks是較為有特色的一種實時操作系統。VxWorks支持各種工業標準,包括POSIX、ANSI C 和TCP/IP網絡協議。VxWorks運行系統的核心是一個高效率的微內核,該微內核支持各種實時功能,包括快速多任務處理、中斷支持、搶占式和輪轉式調度。目前在全世界裝有VxWorks系統的智能設備數以百萬計,其應用范圍遍及互聯網、電信和數據通信等眾多領域。
而作為一種嵌入式操作系統,嵌入式Linux以其特別和引人注目的優勢正極大地吸引電子設計工程師從自己編寫的或專用的RTOS轉移到 Linux。據VDC Data的數據顯示,整個Linux的增長從2000年的1%到2003年的14%,再到2010年猛增到67%。Even Data數據顯示,在嵌入式市場,嵌入式Linux從2001年11%增到2002年27%,而同期Vxwork只是從16%到18%,WIN CE從9%到14%。在嵌入式Linux的各種應用市場中,語音和數據通信名列第一,2000年的銷售額是1300萬美元,而預計2005年達到1 .26 億美元(VDC Data數據),可以說嵌入式Linux將成為主流的通用嵌入式操作系統。
(3)嵌入式Linux操作系統:
選擇操作系統時,要根據自己的嵌入式要求和實時性要求,選擇適合自己的嵌入式Linux,如果可能,盡量選擇使用普遍的嵌入式Linux系統。概括說來,將Linux應用于嵌入式系統的開發有如下一些優點:
1)Linux自身具備一整套工具鏈,容易自行建立嵌入式系統的開發環境和交叉運行環境,并且可以跨越在嵌入式系統開發中仿真工具(ICE)的障礙。
2)內核的完全開放,使得可以自己設計和開發出真正的硬實時系統;對于軟實時系統,在Linux中也容易得到實現。
3)強大的網絡支持,使得可以利用Linux的網絡協議棧將其開發成為嵌入式的TCP/IP網絡協議棧。
在嵌入式系統中使用Linux有2種途徑:
1)是用戶自己裝配(稱為DIY內核),可以在www.kernel.org和GNU的網站找到全部Linux代碼,然后再編譯生成你需要版本的工具鏈和應用程序庫,這個過程比較耗時和困難。還需要指出,這種DIY內核的配置,添加應用和驅動程序也是不標準的和復雜的,這是嵌入式系統的特殊性所在,比如說,有的應用是網絡上的小型互連設備,它需要多個以太網、USB主機、小型的NOR Flash文件系統,而一個手持終端,它關心的是LCD的觸屏、紅外或藍牙的接口、USB用戶端、快速的啟動,動態的電源管理和NADA FLASH,這樣就需要在數十家Linux相關網站下載各種補丁、應用和工具,把它們和內核進行反復的編譯和調試,確信它們之間以及它們在硬件評估板上是穩定可靠工作的,這個過程是在沒有任何技術支持下完成的。
2)選擇一個商業的嵌入式Linux操作系統平臺。商業化的嵌入式Linux版本是針對嵌入式處理器所優化設計的,已經支持了各種半導體廠家的評估板和主要的設備驅動,商業化的嵌入式Linux包含了文件系統、應用、實時性擴展和技術支持培訓服務。
現今國外著名的商業化嵌入式Linux產品有:MontaVista Linux, Bluecat Linux, Timesys Linux, Metrowork Linux(原Lineo), Vlinux(韓國)和Redhat Linux等,國內也有紅旗、中軟等嵌入式Linux。
(4)嵌入式Windows操作系統:
微軟公司從1996年開始以其Windows CE 1.0版本涉足小型嵌入式系統。Windows CE 1.0是一種從頭做起的代碼庫,面向具有圖形界面的手持設備,在外觀和感覺上像Windows 95。同樣,臺式Windows的組件化版本于1999年面世,其一個工具組和大約250個組件均來自Windows NT。
就嵌入式操作系統而言,Windows 是一種很有吸引力的選擇,因為它有大家熟悉的API,可以找到熟練的程序員和廉價的部件,而且還可以利用臺式PC許多強大的功能。微軟公司最新嵌入式產品,即Windows XP 嵌入式操作系統和Windows CE.Net操作系統,都為開發人員帶來了新的特性和功能。
微軟公司的Windows XP嵌入式操作系統與其臺式XP操作系統專業版一樣都基于相同的二進制代碼,而且XP嵌入式操作系統是Windows NT 4.0嵌入式操作系統的后繼版本。嵌入式版本包括含有臺式版本所有的安全功能、多媒體功能、Web瀏覽功能、電源管理功能和設備支持功能,只是將臺式版本分解為10000多個組件,所以開發人員可以選擇某些單元來構建一個定制的占用內存容量小的操作系統。Windows XP嵌入式操作系統及最新的服務包都有很多新的通信選購件、文件系統選購件和開發工具選購件,這些選購件可使設計小組在以后的項目中選用這一操作系統。
Windows CE.NET建立在不同于臺式操作系統的體系結構上。其設計目標包括廣泛的無線連接性、實時功能和與設備無關的Web服務。與 Windows XP Embedded不同, Windows CE.NET支持 ARM、 MIPS、 SHx和 x86等系列處理器,從而使其適用于各種各樣嵌入式產品。Windows CE.NET包含了.NET Compact Framework,這是微軟公司的智能設備開發平臺,可在任何時候、任何地點和在任何設備上為消費者提供Web服務。為支持NET Compact Framework,Windows CE.NET包括一套集成的端到端工具和幾種定制開發語言,如Visual Basic.NET、Visual C++.NET和Visual C#.NET。
3、嵌入式系統高級編程語言:
目前,在嵌入式系統開發過程中使用的語言種類很多,但僅有少數幾種語言得到了比較廣泛的應用,主要為Ada、C/C++、Modula-2等幾種。
Ada語言是20世紀70年代美國國防部開發并投入使用的功能強大的通用系統開發語言,最初為Ada83。它支持模塊化、獨立編譯、協處理等功能,其可靠性、可維護性、可讀性都是相當好的。后來,為了更好地支持OOP(Object-Oriented Programming),對其進行了改進,形成了目前廣泛使用的Ada95。使用Ada語言可以大大改善系統的清晰性、可靠性、可維護性等性能指標。它是美國國防部指定的唯一一種可用于軍用系統開發的語言。
C語言是由Dennis Richie于1972年在AT & Bell實驗室研究成功并投入使用的系統編程語言,其設計目標是使C既具有匯編語言的效率,又具有高級語言的易編程性,其最具代表性的應用是UNIX操作系統。從20世紀80年代中期C語言涉足實時系統后,受到了普遍歡迎。目前是使用最廣泛的嵌入式系統編程語言。C++是由Bjarne Stroustrup于1995年在Bell實驗室研制成功并投入使用的。C++在支持現代軟件工程、OOP、結構化等方面對C進行了卓有成效的改進,但在程序代碼容量、執行速度、程序復雜程度等方面比C語言程序性能差一些。
Modula-2是由Nicklans Wirth在70年代后期根據Pascal和Modula開發的系統設計語言,其主要目標是在模塊化、系統編程、協同處理等方面對Pascal 進行改進。Modula-2具有很強的類型檢查能力和豐富的低級功能支持。因此,可用它設計一個完整的實時程序而不用匯編語言的支持。Modula-3是 1988年由DEC (Digital Equipment Company)和ORC(Olivetti Research Center)根據Modula-2開發研制并投入使用的系統開發語言。目標是設計一個功能強大但結構簡單的通用編程語言,它在協同處理、OOP、自動垃圾收集以及對C語言和UNIX的支持等方面對 Modula-2進行了改進。
4、結束語:
信息時代、數字時代使得嵌入式產品獲得了巨大的發展機遇,也為嵌入式市場展現了美好的前景,同時也對嵌入式系統的開發者提出了新的挑戰。
評論
查看更多