- 物聯(lián)網(wǎng)與嵌入式系統(tǒng)開發(fā)
- 劉連浩編著
- 3664字
- 2018-12-30 20:48:49
1.2 嵌入式系統(tǒng)的組成
嵌入式計算機系統(tǒng)可以抽象成一個典型的組成模型:硬件層、中間層、軟件層和功能層,如圖1-1所示。

圖1-1 嵌入式系統(tǒng)組成結(jié)構(gòu)
1.硬件層
硬件層中包含嵌入式微處理器、存儲器(如 SDRAM、ROM、Flash 等)、通用設(shè)備接口和I/O接口(如A/D、D/A、I/O等)。在一片嵌入式處理器基礎(chǔ)上添加電源電路、時鐘電路和存儲器電路,就可構(gòu)成一個嵌入式核心控制模塊。其中操作系統(tǒng)和應(yīng)用程序都可以固化在ROM中。嵌入式系統(tǒng)硬件如圖1-2所示。

圖1-2 嵌入式系統(tǒng)硬件組成
1)嵌入式微處理器
嵌入式系統(tǒng)硬件層的核心是嵌入式微處理器,嵌入式微處理器與通用CPU最大的不同在于嵌入式微處理器大多工作在為特定用戶群所專用設(shè)計的系統(tǒng)中,它將通用CPU許多由板卡完成的任務(wù)集成在芯片內(nèi)部,從而有利于嵌入式系統(tǒng)在設(shè)計時趨于小型化,同時還具有很高的效率和可靠性。
嵌入式微處理器的體系結(jié)構(gòu)可以采用馮?諾依曼體系或哈佛體系結(jié)構(gòu);指令系統(tǒng)可以選用精簡指令系統(tǒng)(Reduced Instruction Set Computer,RISC)和復(fù)雜指令系統(tǒng)(Complex Instruction Set Computer,CISC)。RISC計算機在通道中只包含最有用的指令,確保數(shù)據(jù)通道快速執(zhí)行每一條指令,從而提高了執(zhí)行效率并使CPU硬件結(jié)構(gòu)設(shè)計變得更為簡單。
嵌入式微處理器有各種不同的體系,即使在同一體系中也可能具有不同的時鐘頻率和數(shù)據(jù)總線寬度,或集成了不同的外設(shè)和接口。據(jù)不完全統(tǒng)計,目前全世界嵌入式微處理器已經(jīng)超過1 000多種,體系結(jié)構(gòu)有30多個系列,其中主流的體系有ARM、MIPS、PowerPC、X86和SH等。但與全球PC市場不同的是,沒有一種嵌入式微處理器可以主導(dǎo)市場,僅以32位的產(chǎn)品而言,就有100種以上的嵌入式微處理器。嵌入式微處理器的選擇是根據(jù)具體的應(yīng)用而決定的。
2)存儲器
嵌入式系統(tǒng)需要存儲器來存放和執(zhí)行代碼。嵌入式系統(tǒng)的存儲器包含Cache、主存和輔助存儲器。
Cache:Cache 是一種容量小、速度快的存儲器陣列,它位于主存和嵌入式微處理器內(nèi)核之間,存放的是最近一段時間微處理器使用最多的程序代碼和數(shù)據(jù)。在需要進行數(shù)據(jù)讀取操作時,微處理器盡可能地從 Cache 中讀取數(shù)據(jù),而不是從主存中讀取,這樣就可大大改善系統(tǒng)的性能,提高微處理器和主存之間的數(shù)據(jù)傳輸速率。Cache的主要目標(biāo)是:減小存儲器(如主存和輔助存儲器)給微處理器內(nèi)核造成的存儲器訪問瓶頸,使處理速度更快,實時性更強。在嵌入式系統(tǒng)中,Cache全部集成在嵌入式微處理器內(nèi),可分為數(shù)據(jù)Cache、指令Cache或混合Cache,Cache的大小依不同處理器而定。一般中高檔的嵌入式微處理器才會把Cache集成進去。
主存:主存是嵌入式微處理器能直接訪問的寄存器,用來存放系統(tǒng)和用戶的程序及數(shù)據(jù)。它可以位于微處理器的內(nèi)部或外部,其容量一般為 256KB~1GB,根據(jù)具體的應(yīng)用而定,一般片內(nèi)存儲器容量小、速度快,片外存儲器容量大。常用于主存的存儲器有
● ROM類:NOR Flash、EPROM和PROM等;
● RAM類:SRAM、DRAM和SDRAM等。
其中NOR Flash 憑借其可擦寫次數(shù)多、存儲速度快、存儲容量大、價格便宜等優(yōu)點,在嵌入式領(lǐng)域內(nèi)得到了廣泛的應(yīng)用。
輔助存儲器(即外存):輔助存儲器用來存放大數(shù)據(jù)量的程序代碼或信息,它的容量大、但讀取速度與主存相比就慢很多,用來長期保存用戶的信息。嵌入式系統(tǒng)中常用的外存有硬盤、NAND Flash、CF卡、MMC和SD卡等。
3)通用設(shè)備接口和I/O接口
嵌入式系統(tǒng)和外界交互需要一定形式的通用設(shè)備接口,如A/D、D/A、I/O等,外設(shè)通過和片外其他設(shè)備或傳感器的連接來實現(xiàn)微處理器的輸入/輸出功能。每個外設(shè)通常都只有單一的功能,它可以在芯片外也可以內(nèi)置芯片中。外設(shè)的種類很多,可從一個簡單的串行通信設(shè)備到非常復(fù)雜的802.11無線設(shè)備。
目前嵌入式系統(tǒng)中常用的通用設(shè)備接口有 A/D(模/數(shù))轉(zhuǎn)換接口、D/A(數(shù)/模)轉(zhuǎn)換接口,I/O接口有RS-232C接口(串行通信接口)、Ethernet(以太網(wǎng)接口)、USB(通用串行總線接口)、音頻接口、VGA視頻輸出接口、IIC總線、IIS總線、SD卡接口、現(xiàn)場總線、SPI(串行外圍設(shè)備接口)和IrDA(紅外線接口)等。
2.中間層
硬件層與軟件層之間為中間層,也稱為硬件抽象層(Hardware Abstract Layer,HAL)或板級支持包(Board Support Package,BSP),它將系統(tǒng)上層軟件與底層硬件分離開來,使系統(tǒng)的底層驅(qū)動程序與硬件無關(guān),上層軟件開發(fā)人員無須關(guān)心底層硬件的具體情況,根據(jù)BSP 層提供的接口即可進行開發(fā)。該層一般包含相關(guān)底層硬件的初始化、數(shù)據(jù)的輸入/輸出操作和硬件設(shè)備的配置功能。BSP具有以下兩個特點。
● 硬件相關(guān)性,因為嵌入式實時系統(tǒng)的硬件環(huán)境具有應(yīng)用相關(guān)性,而作為上層軟件與硬件平臺之間的接口,BSP需要為操作系統(tǒng)提供操作和控制具體硬件的方法;
● 操作系統(tǒng)相關(guān)性,不同的操作系統(tǒng)具有各自的軟件層次結(jié)構(gòu),因此,不同的操作系統(tǒng)具有特定的硬件接口形式。
實際上,BSP 是一個介于操作系統(tǒng)和底層硬件之間的軟件層次,包括了系統(tǒng)中大部分與硬件聯(lián)系緊密的軟件模塊。設(shè)計一個完整的BSP需要完成兩部分工作:嵌入式系統(tǒng)的硬件初始化以及BSP功能,設(shè)計硬件相關(guān)的設(shè)備驅(qū)動。
1)嵌入式系統(tǒng)硬件初始化
系統(tǒng)初始化過程可以分為3個主要環(huán)節(jié),按照自底向上、從硬件到軟件的次序依次為:片級初始化、板級初始化和系統(tǒng)級初始化。
(1)片級初始化:完成嵌入式微處理器的初始化,包括設(shè)置嵌入式微處理器的核心寄存器和控制寄存器、嵌入式微處理器核心工作模式和嵌入式微處理器的局部總線模式等。片級初始化把嵌入式微處理器從上電時的默認狀態(tài)逐步設(shè)置成系統(tǒng)所要求的工作狀態(tài)。這是一個純硬件的初始化過程。
(2)板級初始化:完成嵌入式微處理器以外的其他硬件設(shè)備的初始化。另外,還需設(shè)置某些軟件的數(shù)據(jù)結(jié)構(gòu)和參數(shù),為隨后的系統(tǒng)級初始化和應(yīng)用程序的運行建立硬件和軟件環(huán)境。這是一個同時包含軟/硬件兩部分在內(nèi)的初始化過程。
(3)系統(tǒng)初始化:該初始化過程以軟件初始化為主,主要進行操作系統(tǒng)的初始化。BSP將對嵌入式微處理器的控制權(quán)轉(zhuǎn)交給嵌入式操作系統(tǒng),由操作系統(tǒng)完成余下的初始化操作,包含加載和初始化與硬件無關(guān)的設(shè)備驅(qū)動程序,建立系統(tǒng)內(nèi)存區(qū),加載并初始化其他系統(tǒng)軟件模塊,如網(wǎng)絡(luò)系統(tǒng)、文件系統(tǒng)等。最后,操作系統(tǒng)創(chuàng)建應(yīng)用程序環(huán)境,并將控制權(quán)交給應(yīng)用程序的入口。
2)硬件相關(guān)的設(shè)備驅(qū)動程序
BSP 的另一個主要功能是硬件相關(guān)的設(shè)備驅(qū)動。硬件相關(guān)的設(shè)備驅(qū)動程序的初始化通常是一個從高到低的過程。盡管BSP中包含硬件相關(guān)的設(shè)備驅(qū)動程序,但是這些設(shè)備驅(qū)動程序通常不直接由BSP使用,而是在系統(tǒng)初始化過程中由BSP將它們與操作系統(tǒng)中通用的設(shè)備驅(qū)動程序關(guān)聯(lián)起來,并在隨后的應(yīng)用中由通用的設(shè)備驅(qū)動程序調(diào)用,實現(xiàn)對硬件設(shè)備的操作。與硬件相關(guān)的驅(qū)動程序是BSP設(shè)計與開發(fā)中另一個非常關(guān)鍵的環(huán)節(jié)。
3.軟件層
系統(tǒng)軟件層由實時多任務(wù)操作系統(tǒng)(Real-Time Operation System,RTOS)、文件系統(tǒng)、圖形用戶接口(Graphic User Interface,GUI)、網(wǎng)絡(luò)系統(tǒng)及通用組件模塊組成。RTOS是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺。
1)嵌入式操作系統(tǒng)
嵌入式操作系統(tǒng)(Embedded Operation System,EOS)是一種用途廣泛的系統(tǒng)軟件,過去它主要應(yīng)用于工業(yè)控制和國防系統(tǒng)領(lǐng)域。EOS負責(zé)嵌入系統(tǒng)的全部軟/硬件資源的分配、任務(wù)調(diào)度、控制、協(xié)調(diào)并發(fā)活動。它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達到系統(tǒng)所要求的功能。目前,已推出了一些應(yīng)用比較成功的EOS產(chǎn)品系列。隨著Internet技術(shù)的發(fā)展、信息家電的普及應(yīng)用及EOS的微型化和專業(yè)化,EOS開始從單一的弱功能向高專業(yè)化的強功能方向發(fā)展。嵌入式操作系統(tǒng)在系統(tǒng)實時高效性、硬件的相關(guān)依賴性、軟件固化以及應(yīng)用的專用性等方面具有較為突出的特點。EOS是相對于一般操作系統(tǒng)而言的,它具有一般操作系統(tǒng)最基本的功能,如任務(wù)調(diào)度、同步機制、中斷處理、文件處理等。
2)嵌入式文件系統(tǒng)
嵌入式文件系統(tǒng)比較簡單,主要提供文件存儲、檢索和更新等功能,一般不提供保護和加密等安全機制。它以系統(tǒng)調(diào)用和命令方式提供文件的各種操作,主要有設(shè)置、修改對文件和目錄的存取權(quán)限;提供建立、修改、改變和刪除目錄等服務(wù);提供創(chuàng)建、打開、讀寫、關(guān)閉和撤銷文件等服務(wù)。
此外嵌入式文件系統(tǒng)還具有以下特點。
(1)兼容性。嵌入式文件系統(tǒng)通常可以支持多種標(biāo)準(zhǔn)的文件系統(tǒng),如FAT32、JFFS2、YAFFS等。
(2)實時文件系統(tǒng)。除支持標(biāo)準(zhǔn)的文件系統(tǒng)外,為提高實時性,有些嵌入式文件系統(tǒng)還支持自定義的實時文件系統(tǒng),這些文件系統(tǒng)一般采用連續(xù)的方式存儲文件。
(3)可裁剪、可配置。根據(jù)嵌入式系統(tǒng)的要求選擇所需的文件系統(tǒng),選擇所需的存儲介質(zhì),配置可同時打開的最大文件數(shù)等。
(4)支持多種存儲設(shè)備。嵌入式系統(tǒng)的外存形式多樣,嵌入式文件系統(tǒng)需方便地掛接不同存儲設(shè)備的驅(qū)動程序,具有靈活的設(shè)備管理能力。同時根據(jù)不同外部存儲器的特點,嵌入式文件系統(tǒng)還需要考慮其性能、壽命等因素,發(fā)揮不同外存的優(yōu)勢,提高存儲設(shè)備的可靠性和使用壽命。
3)嵌入式圖形用戶接口
圖形用戶界面或圖形用戶接口(Graphical User Interface,GUI)的廣泛應(yīng)用是當(dāng)今計算機發(fā)展的重大成就之一,它極大地方便了非專業(yè)用戶的使用,人們從此不再需要死記硬背大量的命令,取而代之的是通過窗口、菜單、按鍵等方式來方便地進行操作。而嵌入式GUI具有下面幾個方面的基本要求:輕型、占用資源少、高性能、高可靠性、便于移植、可配置等特點。
嵌入式系統(tǒng)中的圖形界面,一般使用以下幾種方法實現(xiàn)。
● 針對特定的圖形設(shè)備輸出接口,自行開發(fā)相關(guān)的功能函數(shù);
● 購買針對特定嵌入式系統(tǒng)的圖形中間軟件包;
● 采用源碼開放的嵌入式GUI系統(tǒng);
● 使用獨立軟件開發(fā)商提供的嵌入式GUI產(chǎn)品。
- 微商之道
- 物聯(lián)網(wǎng)短距離無線通信技術(shù)應(yīng)用與開發(fā)
- Twilio Cookbook
- 5G承載網(wǎng)網(wǎng)絡(luò)規(guī)劃與組網(wǎng)設(shè)計
- 走進物聯(lián)網(wǎng)
- 智慧城市中的移動互聯(lián)網(wǎng)技術(shù)
- 網(wǎng)絡(luò)安全技術(shù)與解決方案(修訂版)
- 世界互聯(lián)網(wǎng)發(fā)展報告·2019
- 中國互聯(lián)網(wǎng)發(fā)展報告2018
- 紅藍攻防:構(gòu)建實戰(zhàn)化網(wǎng)絡(luò)安全防御體系
- 從實踐中學(xué)習(xí)手機抓包與數(shù)據(jù)分析
- Hands-On Microservices with Node.js
- 一本書讀懂物聯(lián)網(wǎng)
- Implementing NetScaler VPX?
- 數(shù)據(jù)血緣分析原理與實踐