簡介
嵌入式計算機在套用數量上遠遠超過了各種通用計算機,一台通用計算機的外部設備中就包含了5-10個嵌入式微處理器,鍵盤、滑鼠、軟碟機、硬碟、顯示卡、顯示器、Modem、網卡、音效卡、印表機、掃瞄器、數字相機、USB集線器等均是由嵌入式處理器控制的。在製造工業、過程控制、通訊、儀器、儀表、汽車、船舶、航空、航天、軍事裝備、消費類產品等方面均是嵌入式計算機的套用領域。嵌入式系統是將先進的計算機技術、半導體技術和電子技術和各個行業的具體套用相結合後的產物,這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統。
概念
一、嵌入式系統的概念主要從三個方面上來理解。
1、從硬體嵌入式計算機(,將基於CPU的外圍器件,整合到CPU晶片內部,比如早期基於X86體系結構下的計算機,CPU只是有運算器和累加器的功能,一切晶片要造外部橋路來擴展實現,象串口之類的都是靠外部的16C550/2的串口控制器晶片實現,而目前的這種串口控制器晶片早已集成到CPU內部,還有PC機有顯示卡,而多數嵌入式處理器都帶有LCD控制器,但其種意義上就相當於顯示卡。比較高端的ARM類IntelXscale架構下的IXP網路處理器CPU內部集成PCI控制器(可配成支持4個PCI從設備或配成自身為CPI從設備);還集成3個NPE網路處理器引擎,其中兩個對應於兩個MAC地址,可用於網關交換用,而另外一個NPE網路處理器引擎支持DSL,只要外面再加個PHY晶片即可以實現DSL上網功能。IXP系列最高主頻可以達到1.8G,支持2G記憶體,1G×10或10G×1的乙太網口或Febrechannel的光通道。IXP系列應該是目標基於ARM體系統結構下由intel進行整合後成Xscale核心的最高的處理器了。
2、從軟體上前,就是在定製作業系統核心里將套用一併選入,編譯後將核心下載到ROM中。而在定製作業系統核心時所選擇的應用程式組件就是完成了軟體的“嵌入”,比如WinCE在核心定製時,會有相應選擇,其中就是Wordpad,PDF,MediaPlay等等選擇,如果我們選擇了,在CE啟動後,就可以在界面中找到這些東西,如果是以前PC上將的windows作業系統,多半的東西都需要我們得新再裝。
3、把軟體核心或套用檔案系統等東西燒到嵌入式系統硬體平台中的ROM中就實現了一個真正的“嵌入”。
以上的定義是我在6、7年前給嵌入式系統下自話側重於理解型的定義,書上的定義也有很多,但在這個領域範圍內,誰都不敢說自己的定義是十分確切的,包括那些專家學者們,歷為畢竟嵌入式系統是計算機範疇下的一門綜合性學科。
系統
1.什麼是嵌入式系統
嵌入式系統一般指非 pc 系統,有計算機功能但又不稱之為計算機的設備或器材。它是以套用為中心,軟硬體可裁減的,適應套用系統對功能、可靠性、成本、體積、功耗等綜合性嚴格要求的專用計算機系統。簡單地說,嵌入式系統集系統的套用軟體與硬體於一體,類似於 pc 中 bios 的工作方式,具有軟體代碼小、高度自動化、回響速度快等特點,特別適合於要求實時和多任務的體系。嵌入式系統主要由嵌入式處理器、相關支撐硬體、嵌入式作業系統及套用軟體系統等組成,它是可獨立工作的“器件”。
嵌入式系統幾乎包括了生活中的所有電器設備,如掌上pda、移動計算設備、電視機頂盒、手機上網、數位電視、多媒體、汽車、微波爐、數字相機、家庭自動化系統、電梯、空調、安全系統、自動售貨機、蜂窩式電話、消費電子設備、工業自動化儀表與醫療儀器等。
嵌入式系統的硬體部分,包括處理器 / 微處理器、存儲器及外設器件和 i/o 連線埠、圖形控制器等。嵌入式系統有別於一般的計算機處理系統,它不具備像硬碟那樣大容量的存儲介質,而大多使用 eprom 、 eeprom 或快閃記憶體 (flash memory) 作為存儲介質。軟體部分包括作業系統軟體 ( 要求實時和多任務操作 ) 和應用程式編程。應用程式控制著系統的運作和行為;而作業系統控制著應用程式編程與硬體的互動作用。
二 嵌入式處理器
嵌入式系統的核心是嵌入式微處理器。嵌入式微處理器一般具備 4 個特點: (1) 對實時和多任務有很強的支持能力,能完成多任務並且有較短的中斷回響時間,從而使內部的代碼和實時作業系統的執行時間減少到最低限度; (2) 具有功能很強的存儲區保護功能,這是由於嵌入式系統的軟體結構已模組化,而為了避免在軟體模組之間出現錯誤的交叉作用,需要設計強大的存儲區保護功能,同時也有利於軟體診斷; (3) 可擴展的處理器結構,以能迅速地擴展出滿足套用的高性能的嵌入式微處理器; (4) 嵌入式微處理器的功耗必須很低,尤其是用於攜帶型的無線及移動的計算和通信設備中靠電池供電的嵌入式系統更是如此,功耗只能為 mw 甚至μ w 級。
據不完全統計,目前全世界嵌入式處理器的品種總量已經超過 1000 種,流行的體系結構有 30 多個系列。其中 8051 體系占多半,生產這種單片機的半導體廠家有 20 多個,共 350 多種衍生產品,僅 philips 就有近 100 種。現在幾乎每個半導體製造商都生產嵌入式處理器,越來越多的公司有自己的處理器設計部門。嵌入式處理器的定址空間一般從 64kb 到 16mb ,處理速度為 0.1~2000mips ,常用封裝 8~144 個引腳。
三嵌入式作業系統
嵌入式作業系統是一種支持嵌入式系統套用的作業系統軟體,它是嵌入式系統(包括硬、軟體系統)極為重要的組成部分,通常包括與硬體相關的底層驅動軟體、系統核心、設備驅動接口、通信協定、圖形界面、標準化瀏覽器等Browser。嵌入式作業系統具有通用作業系統的基本特點,如能夠有效管理越來越複雜的系統資源;能夠把硬體虛擬化,使得開發人員從繁忙的驅動程式移植和維護中解脫出來;能夠提供庫函式、驅動程式、工具集以及應用程式。與通用作業系統相比較,嵌入式作業系統在系統實時高效性、硬體的相關依賴性、軟體固態化以及套用的專用性等方面具有較為突出的特點。
四嵌入式系統的方向
嵌入式系統無疑是當前最熱門最有發展前途的IT套用領域之一。嵌入式系統用在一些特定專用設備上,通常這些設備的硬體資源(如處理器、存儲器等)非常有限,並且對成本很敏感,有時對實時回響要求很高等。嵌入式系統是軟硬結合的東西,搞嵌入式開發的人有兩類。
一類是學電子工程、通信工程等偏硬體專業出身的人,他們主要是搞硬體設計,有時要開發一些與硬體關係最密切的最底層軟體,如BootLoader、BoardSupportPackage(像PC的BIOS一樣,往下驅動硬體,往上支持作業系統),最初級的硬體驅動程式等。他們的優勢是對硬體原理非常清楚,不足是他們更擅長定義各種硬體接口,但對複雜軟體系統往往力不從心(例如嵌入式作業系統原理和複雜套用軟體等)。
另一類是學軟體、計算機專業出身的人,主要從事嵌入式作業系統和套用軟體的開發。如果我們學軟體的人對硬體原理和接口有較好的掌握,我們完全也可寫BSP和硬體驅動程式。嵌入式硬體設計完後,各種功能就全靠軟體來實現了,嵌入式設備的增值很大程度上取決於嵌入式軟體,這占了嵌入式系統的最主要工作(目前有很多公司將硬體設計包給了專門的硬體公司,稍複雜的硬體都交給台灣或國外公司設計,國內的硬體設計力量很弱,很多嵌入式公司自己只負責開發軟體,因為公司都知道,嵌入式產品的差異很大程度在軟體上,在軟體方面是最有“花頭“可做的),所以我們搞軟體的人完全不用擔心我們在嵌入式市場上的用武之地,越是智慧型設備越是複雜系統,軟體越起關鍵作用,而且這是目前的趨勢。
分類
嵌入式系統分為4層,硬體層、驅動層、作業系統層和套用層。
1、硬體層,是整個嵌入式系統的根本,如果現在單片機及接口這塊很熟悉,並且能用C和彙編語言來編程的話,從嵌入式系統的硬體層走起來相對容易,硬體層也是驅動層的基礎,一個優秀的驅動工程師是要能夠看懂硬體的電路圖和自行完成CPLD的邏輯設計的,同時還要對作業系統核心及其調度性相當的熟悉的。但硬體平台是基礎,增值還要靠軟體。
硬體層比較適合於,電子、通信、自動化、機電一體、信息工程類專業的人來搞,需要掌握的專業基礎知識有,單片機原理及接口技術、微機原理及接口技術、C語言。
2、驅動層,這部分比較難,驅動工程師不僅要能看懂電路圖還要能對作業系統核心十分的精通,以便其所寫的驅動程式在系統調用時,不會獨占作業系統時間片,而導至其它任務不能動行,不懂作業系統核心架構和實時調度性,沒有良好的驅動編寫風格,按大多數書上所說添加的驅動的方式,很多人都能做到,但可能連個初級的驅動工程師的水平都達不到,這樣所寫的驅動在套用調用時就如同windows下我們打開一個程式運行後,再打開一個程式時,要不就是中斷以前的程式,要不就是等上一會才能運行後來打開的程式。想做個好的驅動人員沒有三、四年功底,作業系統核心不研究上幾編,不是太容易成功的,但其工資在嵌入式系統四層中可是最高的。
驅動層比較適合於電子、通信、自動化、機電一體、信息工程類專業尤其是計算機偏體系結構類專業的人來搞,除硬體層所具備的基礎學科外,還要對數據結構與算法、作業系統原理、編譯原理都要十分精通了解。
3、作業系統層,對於作業系統層目前可能只能說是簡單的移植,而很少有人來自已寫作業系統,或者寫出缺胳膊少腿的作業系統來,這部分工作大都由驅動工程師來完成。作業系統是負責系統任務的調試、磁碟和檔案的管理,而嵌入式系統的實時性十分重要。據說,XP作業系統是微軟投入300人用兩年時間才搞定的,總時工時是600人年,中科院軟體所自己的女媧Hopen作業系統估計也得花遇幾百人年才能搞定。因此這部分工作相對來講沒有太大意義。
4、套用層,相對來講較為容易的,如果會在windows下如何進行編程接口函式調用,到作業系統下只是編譯和開發環境有相應的變化而已。如果涉及Jave方面的編程也是如此的。嵌入式系統中涉及算法的由專業算法的人來處理的,不必歸結到嵌入式系統範疇內。但如果涉及嵌入式系統下面嵌入式資料庫、基於嵌入式系統的網路編程和基於某此套用層面的協定套用開發(比如基於SIP、H.323、Astrisk)方面又較為複雜,並且有難度了。
套用
手機
電視機頂盒
psp都有作業系統的
電視機
汽車
遙控電風扇
電子顯示屏等等
特點
嵌入式系統的主要特點
(一)系統核心小。由於嵌入式系統一般是套用於小型電子裝置的,系統資源相對有限,所以核心較之傳統的作業系統要小得多。比如Enea公司的OSE分散式系統,核心只有5K,而Windows的核心?簡直沒有可比性。
(二)專用性強。嵌入式系統的個性化很強,其中的軟體系統和硬體的結合非常緊密,一般要針對硬體進行系統的移植,即使在同一品牌、同一系列的產品中也需要根據系統硬體的變化和增減不斷進行修改。同時針對不同的任務,往往需要對系統進行較大更改,程式的編譯下載要和系統相結合,這種修改和通用軟體的“升級”是完全兩個概念。
(三)系統精簡。嵌入式系統一般沒有系統軟體和套用軟體的明顯區分,不要求其功能設計及實現上過於複雜,這樣一方面利於控制系統成本,同時也利於實現系統安全。
(四)高實時性的系統軟體(OS)是嵌入式軟體的基本要求。而且軟體要求固態存儲,以提高速度;軟體代碼要求高質量和高可靠性。
(五)嵌入式軟體開發要想走向標準化,就必須使用多任務的作業系統。嵌入式系統的應用程式可以沒有作業系統直接在晶片上運行;但是為了合理地調度多任務、利用系統資源、系統函式以及和專家庫函式接口,用戶必須自行選配RTOS(Real-TimeOperatingSystem)開發平台,這樣才能保證程式執行的實時性、可靠性,並減少開發時間,保障軟體質量。
三、嵌入式系統的關鍵技術
隨著後電腦時代的來臨,消費電子成為市場的主要驅動力;而在消費電子中,32位嵌入式CPU占了主導地位。針對不同的消費產品,消費者的要求也不盡相同。例如:汽車電子產品的穩定和安全性非常重要,而對藍牙產品可能更關心價格。當然,對於功耗問題的關注卻是幾乎涵蓋所有消費產品的要求。對於開發者而言,ARM架構以及相關軟體的前後兼容性對於他們加快開發周期、縮短產品上市時間是非常重要的。並且,對於消費電子產品而言,傳統的“摩爾定律”已經不是特別重要的,更重要的是在提供性能的同時,能夠有效地降低功耗和晶片面積。
為了滿足市場對消費電子產品的種種需求,ARM也不斷開發和完善技術,推出了一系列有針對性的創新技術。例如:智慧型能源管理(IEM)技術能夠有效地降低嵌入式系統的功耗;TrustZone技術能夠為系統提供硬體級的安全保護,滿足了用戶、內容提供商以及運營商對內容安全性的要求;Thumb2指令集有效地降低了代碼密度,節省了系統記憶體使用,從而降低了系統成本;Jazelle技術提供了在硬體中執行Java加速功能,為系統提供了更好的多媒體性能。
設計
1.需求分析:確定設計任務和目標,並制定說明規格文檔,作為下一步設計的指導和驗收標準。需求分析往往要與用戶反覆交流,以明確係統功能需求,性能需求,環境、可靠性、成本、功耗、資源等需求。
2.體系結構設計:體系結構設計是嵌入式系統的總體設計,它需要確定嵌入式系統的總體構架,從功能上對軟硬體進行劃分。在此基礎上,確定嵌入式系統的硬體選型(主要是處理器選型),作業系統的選擇和開發環境的選擇。
3.硬體的設計、製作及測試:在這一階段要確定硬體部分的各功能模組及模組之間的關聯,並在此基礎上完成元器件的選擇、原理圖繪製、印刷電路板(PCB)設計、硬體的裝配與測試、目標硬體最終的確定和測試。
4.軟體的設計、實現及測試:這部分工作與硬體開發並行、互動進行。軟體設計主要完成引導程式的編制、作業系統的移植、驅動程式的開發、套用軟體的編寫等工作。設計完成後,軟體開發進入實現階段。這一階段主要是嵌入式軟體的生成(編譯、連結),調試和固化運行,最後完成軟體的測試。
5.系統集成:將測試完成的軟體系統裝入製作好的硬體系統中,進行系統綜合測試,驗證系統功能是否能夠正確無誤地實現,最後將正確的軟體固化在目標硬體中。本階段的工作是整個開發過程中最複雜、最費時的,特別需要相應的輔助工具支持。
6.系統性能測試及可靠性測試:測試最終完成的系統性能是否滿足設計任務書的各項性能指標和要求。若滿足,則可將正確無誤的軟體固化在目標硬體中;若不能滿足,在最壞的情況下,則需要回到設計的初始階段重新進行設計方案的制定。
發展現狀
隨著信息化,智慧型化,網路化的發展,嵌入式系統技術也將獲得廣闊的發展空間。2008年達到53000億美元,預計2009年,銷售額將達68000億美元。進入20世紀90年代,嵌入式技術全面展開,目前已成為通信和消費類產品的共同發展方向。在通信領域,數位技術正在全面取代模擬技術。在廣播電視領域,美國已開始由模擬電視向數位電視轉變,歐洲的DVB(數位電視廣播)技術已在全球大多數國家推廣。數字音頻廣播(DAB)也已進入商品化試播階段。而軟體、積體電路和新型元器件在產業發展中的作用日益重要。所有上述產品中,都離不開嵌入式系統技術。象前途無可計量的維納斯計畫生產機頂盒,核心技術就是採用32位以上晶片級的嵌入式技術。在個人領域中,嵌入式產品將主要是個人商用,作為個人移動的數據處理和通訊軟體。由於嵌入式設備具有自然的人機互動界面,GUI螢幕為中心的多媒體界面給人很大的親和力。手寫文字輸入、語音撥接、收發電子郵件以及彩色圖形、圖像已取得初步成效。
未來影響
1:嵌入式系統促使計算機的形態和性能更加小型化,多功能,低功耗.
2:嵌入式系統使計算機由以往的諾曼尼結構發展成為多處理器並行計算,大大提高運行效率及穩定性!
3:嵌入式系統已成為計算機技術的一個主要分支!
4:嵌入式系統的發展已成為當今計算機技術發展的一個重要標誌
5:改變傳統小型機與微型機的概念,使嵌入式系統不再成為計算機硬體控制技術的代名詞.某些嵌入系統的性能已經能夠超越微型機的性能 !