嵌入式系統基礎之:嵌入式系統概述
4.1.3嵌入式系統的特點
(1)面向特定應用的特點。從前面圖4.1中也可以看出,嵌入式系統與通用型系統的最大區別就在于嵌入式系統大多工作在為特定用戶群設計的系統中,因此它通常都具有低功耗、體積小、集成度高等特點,并且可以滿足不用應用的特定需求。
(2)嵌入式系統的硬件和軟件都必須進行高效地設計,量體裁衣、去除冗余,力爭在同樣的硅片面積上實現更高的性能,這樣才能在具體應用中對處理器的選擇更具有競爭力。
(3)嵌入式系統是將先進的計算機技術、半導體技術和電子技術與各個行業的具體應用相結合后的產物。這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統,從事嵌入式系統開發的人才也必須是復合型人才。
(4)為了提高執行速度和系統可靠性,嵌入式系統中的軟件一般都固化在存儲器芯片中或單片機本身,而不是存儲于磁盤中。
(5)嵌入式開發的軟件代碼尤其要求高質量、高可靠性,由于嵌入式設備往往是處在無人職守或條件惡劣的情況下,因此,其代碼必須有更高的要求。
(6)嵌入式系統本身不具備二次開發能力,即設計完成后用戶通常不能在該平臺上直接對程序功能進行修改,必須有一套開發工具和環境才能進行再次開發。
4.1.4嵌入式系統的體系結構
嵌入式系統作為一類特殊的計算機系統,一般包括以下3個方面:硬件設備、嵌入式操作系統和應用軟件。它們之間的關系如圖4.2所示。
圖4.2嵌入式體系結構圖
硬件設備包括嵌入式處理器和外圍設備。其中的嵌入式處理器(CPU)是嵌入式系統的核心部分,它與通用處理器最大的區別在于,嵌入式處理器大多工作在為特定用戶群所專門設計的系統中,它將通用處理器中許多由板卡完成的任務集成到芯片內部,從而有利于嵌入式系統在設計時趨于小型化,同時還具有很高的效率和可靠性。如今,全世界嵌入式處理器已經超過1000多種,流行的體系結構有30多個系列,其中以ARM、PowerPC、MC68000、MIPS等使用得最為廣泛。
外圍設備是指嵌入式系統中用于完成存儲、通信、調試、顯示等輔助功能的其他部件。目前常用的嵌入式外圍設備按功能可以分為存儲設備(如RAM、SRAM、Flash等)、通信設備(如RS-232接口、SPI接口、以太網接口、USB接口、無線通信等)和顯示設備(如顯示屏等)3類。
小知識 | 常見存儲器概念辨析:RAM、SRAM、SDRAM、ROM、EPROM、E2PROM、Flash。 存儲器可以分為很多種類,其中根據掉電后數據是否丟失可以分為RAM(隨機存取存儲器)和ROM(只讀存儲器),其中RAM的訪問速度比較快,但掉電后數據會丟失,而ROM掉電后數據不會丟失。人們通常所說的內存即指系統中的RAM。 RAM又可分為SRAM(靜態存儲器)和DRAM(動態存儲器)。SRAM是利用雙穩態觸發器來保存信息的,只要不掉電,信息是不會丟失的。DRAM是利用MOS(金屬氧化物半導體)電容存儲電荷來儲存信息,因此必須通過不停地給電容充電來維持信息,所以DRAM的成本、集成度、功耗等明顯優于SRAM。 而通常人們所說的SDRAM是DRAM的一種,它是同步動態存儲器,利用一個單一的系統時鐘同步所有的地址數據和控制信號。使用SDRAM不但能提高系統表現,還能簡化設計、提供高速的數據傳輸。在嵌入式系統中經常使用。 EPROM、E2PROM都是ROM的一種,分別為可擦除可編程ROM和電可擦除ROM,但使用不是很方便。 Flash也是一種非易失性存儲器(掉電不會丟失),它擦寫方便,訪問速度快,已大大取代了傳統的EPROM的地位。由于它具有和ROM一樣掉電不會丟失的特性,因此很多人稱其為FlashROM。 |
嵌入式操作系統從嵌入式發展的第3階段起開始引入。嵌入式操作系統不僅具有通用操作系統的一般功能,如向上提供對用戶的接口(如圖形界面、庫函數API等),向下提供與硬件設備交互的接口(硬件驅動程序等),管理復雜的系統資源,同時,它還在系統實時性、硬件依賴性、軟件固化性以及應用專用性等方面,具有更加鮮明的特點。
應用軟件是針對特定應用領域,基于某一固定的硬件平臺,用來達到用戶預期目標的計算機軟件。由于嵌入式系統自身的特點,決定了嵌入式應用軟件不僅要求做到準確性、安全性和穩定性等方面需要,而且還要盡可能地進行代碼優化,以減少對系統資源的消耗,降低硬件成本。
4.1.5幾種主流嵌入式操作系統分析
1.嵌入式Linux
嵌入式Linux(EmbeddedLinux)是指對標準Linux經過小型化裁剪處理之后,能夠固化在容量只有幾KB或者幾MB的存儲器芯片或者單片機中,是適合于特定嵌入式應用場合的專用Linux操作系統。在目前已經開發成功的嵌入式系統中,大約有一半使用的是Linux。這與它自身的優良特性是分不開的。
嵌入式Linux同Linux一樣,具有低成本、多種硬件平臺支持、優異的性能和良好的網絡支持等優點。另外,為了更好地適應嵌入式領域的開發,嵌入式Linux還在Linux基礎上做了部分改進,如下所示。
n 改善的內核結構。
Linux內核采用的是整體式結構(Monolithic),整個內核是一個單獨的、非常大的程序,這樣雖然能夠使系統的各個部分直接溝通,提高系統響應速度,但與嵌入式系統存儲容量小、資源有限的特點不相符合。因此,在嵌入式系統經常采用的是另一種稱為微內核(Microkernel)的體系結構,即內核本身只提供一些最基本的操作系統功能,如任務調度、內存管理、中斷處理等,而類似于設備驅動、文件系統和網絡協議等附加功能則可以根據實際需要進行取舍。這樣就大大減小了內核的體積,便于維護和移植。
n 提高的系統實時性。
由于現有的Linux是一個通用的操作系統,雖然它也采用了許多技術來加快系統的運行和響應速度,但從本質上來說并不是一個嵌入式實時操作系統。因此,利用Linux作為底層操作系統,在其上進行實時化改造,從而構建出一個具有實時處理能力的嵌入式系統,如RT-Linux已經成功地應用于航天飛機的空間數據采集、科學儀器測控和電影特技圖像處理等各種領域。
嵌入式Linux同Linux一樣,也有眾多的版本,其中不同的版本分別針對不同的需要在內核等方面加入了特定的機制。嵌入式Linux的主要版本如表4.1所示。
表4.1 嵌入式Linux主要版本
版本 | 簡單介紹 |
mCLinux | 開放源碼的嵌入式Linux的典范之作。它主要是針對目標處理器沒有存儲管理單元MMU,它運行穩定,具有良好的移植性和優秀的網絡功能,對各種文件系統有完備的支持,并提供豐富的API |
RT-Linux | 由美國墨西哥理工學院開發的嵌入式Linux硬實時操作系統。它已有廣泛的應用 |
Embedix | 根據嵌入式應用系統的特點重新設計的Linux發行版本。它提供了超過25種的Linux系統服務,包括Web服務器等。此外還推出了Embedix的開發調試工具包、基于圖形界面的瀏覽器等。可以說,Embedix是一種完整的嵌入式Linux解決方案 |
XLinux | 采用了“超字元集”專利技術,使Linux內核不僅能與標準字符集相容,還涵蓋了12個國家和地區的字符集。因此,XLinux在推廣Linux的國際應用方面有獨特的優勢 |
PoketLinux | 它可以提供跨操作系統并且構造統一的、標準化的和開放的信息通信基礎結構,在此結構上實現端到端方案的完整平臺 |
紅旗嵌入式Linux | 由北京中科院紅旗軟件公司推出的嵌入式Linux,它是國內做得較好的一款嵌入式操作系統。目前,中科院計算機研究所自行開發的開放源碼的嵌入式操作系統——EasyEmbeddedOS(EEOS)也已經開始進入實用階段了 |
Montavistalinux | MontaVistaLinux是MontaVistaSoftware于1999年開始推出的,專門面向嵌入式系統的商業級操作系統,基于Linux內核2.6,采用可搶占內核技術,集合了MontaVista硬實時技術,性能遠遠高于標準2.6內核,具有更短的搶占延遲,反應速度是標準內核的200倍;采用優先級線程實現中斷服務程序的調度。與Linux家族兼容的產品:VxWorks和LynxOS已經有一些嵌入式操作系統產品,并非從Linux裁剪或者改造而來,但是已經基本實現POSIX兼容,在接口級與嵌入式Linux系列產品達成一致。這些產品具有優良的傳統和特定的實時性、可靠性實現,在嵌入式操作系統中具有重要地位。 |
風河linux | 風河公司(著名的實時操作系統VxWorks的廠商)一直致力于嵌入式Linux方面的研究和開發。首個滿足由Linux基金會(LinuxFoundation)制定的電信級Linux(CGL)4.0規范要求的商用化Linux廠商。WindRiverPlatformforNetworkEquipment,LinuxEdition2.0是首個完全遵循最新CGL規范的網絡通信與電信行業Linux平臺產品。 |
為了不失一般性,本書說所用的嵌入式Linux是標準內核裁減的Linux,而不是上表中的任何一種。
評論