你了解嵌入式系統(tǒng)的組成結(jié)構(gòu)嗎?
嵌入式系統(tǒng)的核心計算系統(tǒng)可以抽象出一個典型的組成模型:硬件層、中間層、軟件層和功能層。那么我們來一一看下這些結(jié)構(gòu)有哪些特點吧。
1.硬件層
硬件層中包含嵌入式微處理器、存儲器(如 SDRAM、ROM、 Flash等)、通用設備接口和I/O接口(如A/D、D/A、I/O等)。在一片嵌入式處理器基礎上添加電源電路、時鐘電路和存儲器電路,就構(gòu)成了一個嵌入式核心控制模塊。其中,操作系統(tǒng)和應用程序都可以固化在ROM中。
(1)嵌入式微處理器
嵌入式系統(tǒng)硬件層的核心是嵌入式微處理器,嵌入式微處理器與通用CPU的不同在于嵌入式微處理器大多工作在為特定用戶群所專門設計的系統(tǒng)中,它將通用CPU許多由板卡完成的任務集成在芯片內(nèi)部,從而有利于嵌入式系統(tǒng)在設計時趨于小型化,同時還具有很高的效率和可靠性。
嵌入式微處理器有各種不同的體系,即使在同一體系中也可能具有不同的時鐘頻率和數(shù)據(jù)總線寬度,或集成了不同的外設和接口。據(jù)不完全統(tǒng)計,目前全世界嵌入式微處理器已經(jīng)超過1000多種,體系結(jié)構(gòu)有30多個系列,其中主流的體系有ARM、MIPS( Microprocessor without Interlocked Piped Stages,無互鎖流水級的微處理器)/Power PC、X86、SH等。
(2)存儲器
嵌入式系統(tǒng)需要存儲器來存放可執(zhí)行代碼和數(shù)據(jù)。嵌入式系統(tǒng)的存儲器包含Cache、內(nèi)存和外存。
① Cache: Cache是一種容量小、速度快的存儲器陣列,它位于內(nèi)存和嵌入式微處理器內(nèi)核之間,存放的是近一段時間微處理器使用多的程序代碼和數(shù)據(jù)。在嵌入式系統(tǒng)中,Cache全部集成在嵌入式微處理器內(nèi),可分為數(shù)據(jù)Cache、指令Cache和混合Cache, Cache的大小依不同處理器而定。
②內(nèi)存:位于微處理器的內(nèi)部,用來存放系統(tǒng)和用戶的程序及數(shù)據(jù)。片內(nèi)存儲器容量小、速度快。
③外存:外存用來存放大數(shù)據(jù)量的程序代碼或信息,它的容量大,但讀取速度與內(nèi)存相比慢很多,用來長期保存用戶的信息。
嵌入式系統(tǒng)中常用的外存有硬盤、NAND Flash、CF卡、MMC、SD卡等。
(3)通用設備接口和I/O接口
嵌入式系統(tǒng)和外界交互需要一定形式的通用設備接口,如A/D、D/A、I/O等,外設通過和片外其他設備或傳感器的連接來實現(xiàn)微處理器的輸入/輸出功能。每個外設通常都只有單一的功能,它可以在芯片外也可以內(nèi)置芯片中。外設的種類很多,可從一個簡單的串行通信設備到非常復雜的802.11無線設備。
目前,嵌入式系統(tǒng)中常用的通用設備接口有A/D(模/數(shù)轉(zhuǎn)換接口)、D/A(數(shù)/模轉(zhuǎn)換接口),I/O接口有RS-232接口(串行通信接口)、Ethernet(以太網(wǎng)接口)、USB(通用串行總線接口)、音頻接口、VGA視頻輸出接口、I2C(現(xiàn)場總線)、SPI(串行外圍設備接口)、IrDA(紅外線接口)等
2.中間層
硬件層與軟件層之間為中間層,也稱為硬件抽象層( Hardware Abstract Layer,HAL)或板級支持包( Board support Package,BSP),它將系統(tǒng)上層軟件與底層硬件分離開來,使系統(tǒng)的底層驅(qū)動程序與硬件無關,上層軟件開發(fā)人員無須關心底層硬件的具體情況,根據(jù)BSP層提供的接口即可進行開發(fā)。該層一般包含相關底層硬件的初始化、數(shù)據(jù)的輸入/輸出操作和硬件設備的配置功能。
實際上,BSP是一個介于操作系統(tǒng)和底層硬件之間的軟件層次,包括了系統(tǒng)中大部分與硬件聯(lián)系緊密的軟件模塊。設計一個完整的BSP需要完成兩部分工作:嵌入式系統(tǒng)的硬件初始化以及BSP功能,設計硬件相關的設備驅(qū)動。
3.軟件層
軟件層由嵌入式操作系統(tǒng)( Embedded Operation System,EOS)、文件系統(tǒng)、圖形用戶接口( Graphic User Interface,GUI)、網(wǎng)絡系統(tǒng)及通用組件模塊組成。EOS是嵌入式應用軟件的基礎和開發(fā)平臺。以下先介紹前三種。
(1)嵌入式操作系統(tǒng)
不同功能的嵌入式系統(tǒng)的復雜程度有很大不同。簡單的嵌入式系統(tǒng)僅僅具有單一的功能,存儲器中的程序就是為了這一功能設計的,其系統(tǒng)處理核心也是單一任務處理器。復雜的嵌入式系統(tǒng)不僅功能強大,往往還配有嵌入式操作系統(tǒng),如功能強大的智能手機等,幾乎具有與微型計算機一樣的功能。
嵌入式操作系統(tǒng)( Embedded OperaTIon System,BOS)是一種用途廣泛的系統(tǒng)軟件,過去它主要應用于工業(yè)控制和國防系統(tǒng)領域。EOS負責嵌入系統(tǒng)的全部軟、硬件資源的分配、任務調(diào)度,控制、協(xié)調(diào)并發(fā)活動。它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達到系統(tǒng)所要求的功能。目前,已推出一些應用比較成功的EOS產(chǎn)品系列。隨著 Internet技術的發(fā)展、信息家電的普及應用及EOS的微型化和專業(yè)化,EOS開始從單一的弱功能向高專業(yè)化的強功能方向發(fā)展。嵌入式操作系統(tǒng)在系統(tǒng)實時高效性、硬件的相關依賴性、軟件固化、應用的專用性等方面具有較為突出的特點。
(2)文件系統(tǒng)
嵌入式文件系統(tǒng)比較簡單,主要提供文件存儲、檢索、更新等功能,一般不提供保護、加密等安全機制。它以系統(tǒng)調(diào)用和命令方式提供文件的各種操作,主要有設置、修改對文件和目錄的存取權(quán)限,提供建立、修改、改變和刪除目錄等服務,提供創(chuàng)建、打開、讀寫、關閉和撤銷文件等服務。
(3)圖形用戶接口
圖形用戶接口(GUI)的廣泛應用是當今計算機發(fā)展的重大成就之一,它極大地方便了非專業(yè)用戶的使用,人們從此不再需要死記硬背大量的命令,取而代之的是通過窗口、菜單、按鍵等方式來方便地進行操作。而嵌入式GUI具有下面幾個方面的基本要求:輕型、占用資源少、高性能、高可靠性、便于移植、可配置等特點。
4.功能層
功能層也稱為應用軟件層,應用軟件是由基于實時系統(tǒng)開發(fā)的應用程序組成,運行在嵌入式操作系統(tǒng)之上,一般情況下與操作系統(tǒng)是分開的。應用軟件用來實現(xiàn)對被控制對象的控制功能。功能層是要面對被控對象和用戶,為方便用戶操作,往往需要提供一個友好的人機界面。