嵌入式系統是最近非常火爆的,幾乎所有電子設備都有嵌入式系統,嵌入式系統主要由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶應用軟件等部分組成,其體系結構如下圖所示。
從該圖中可以清楚地看到嵌入式系統體系結構上下層之間的關系。其中,硬件平臺包括嵌入式處理器和外圍設備,它們位于嵌入式系統結構中的底層;嵌入式操作系統與通用操作系統的功能類似,為用戶屏蔽硬件底層的具體細節,提供了一個透明的操作空間;而應用軟件則是位于嵌入式操作系統之上的,當然,用戶也可以直接在嵌入式操作系統之上進行開發。
本文主要來介紹一下嵌入式系統的硬件架構,也就是嵌入式處理器以及外圍設備的相關知識。
1.嵌入式處理器
嵌入式處理器是各嵌入式系統的核心部件,其功耗、體積、成本、可靠性、速度、處理能力、電磁兼容性等方面均受到應用要求的制約,嵌入式處理器包含以下部分:
處理器內核;
地址總線;
數據總線;
控制總線;
處理器本身的輔助支持電路,如時鐘、復位電路等;
片上I/O接口電路。
嵌入式處理器可以分為3類:嵌入式微處理器、嵌入式微控制器和嵌入式DSP(Digital Signal Processor)。
嵌入式微處理器就是和通用計算機的微處理器對應的CPU。在應用中,一般是將微處理器裝配在專門設計的電路板上,母板上只保留與嵌入式相關的功能即可,這樣可以滿足嵌入式系統體積小、功耗低的要求。
嵌入式微控制器又稱單片機,它將CPU、存儲器(少量的RAM、ROM,或兩者都有)和其他外設封裝在同一片集成電路里。
嵌入式DSP專門用來對離散時間信號進行極快的處理計算,提高編譯效率和執行速度。DSP正在大量進入數字濾波、FFT、譜分析、圖像處理等領域。
本書所講的嵌入式處理器主要指嵌入式微處理器。(推薦閱讀:如何選擇嵌入式微處理器)
嵌入式微處理器與通用微處理器既有相似之處,也有不少的區別,其比較如下。
相似點有以下兩項。
對外的接口:各類總線及輔助電路接口。
處理功能:相似的指令功能分類。
不同點有以下幾項。
指令系統中指令的個數:嵌入式微處理器的指令個數與通用處理器有很大的區別,嵌入式微處理器的指令系統往往由于成本等原因而有所精簡,比如有些嵌入式處理器無浮點功能等。
指令的形式:嵌入式微處理器一般都使用精簡指令集(RISC),而通用處理器則使用復雜指令集(CISC)。
處理器的結構設計:嵌入式微處理器與通用處理器在結構設計上有較大的區別,如流水線結構的設計。
處理器的工藝和應用指標:由于嵌入式系統通常應用在特殊的場合,因此,對處理器的工藝及應用指標(如工作的溫度條件等)也有不同的要求。
小知識:
常見的CPU指令集分為CISC和RISC兩種。
CISC(Complex Instruction SetComputer)是“復雜指令集”。自PC機誕生以來,32位以前的處理器都采用CISC指令集方式。這種指令系統的指令不等長,指令的數目非常多,編程和設計處理器時都較為麻煩。但是基于CISC指令架構系統設計的軟件已經非常普遍了,所以包括Intel、AMD在內的眾多廠商至今使用的仍為CISC。
RISC(Reduced InstrucTIon SetCompuTIng)是“精簡指令集”。研究人員在對CISC指令集進行測試時發現,各種指令的使用頻度相當懸殊,其中常使用的是一些比較簡單的指令,它們僅占指令總數的20%,但在程序中出現的頻度卻占80%。RISC正是基于這種思想提出的。采用RISC指令集的微處理器處理能力強,并且采用超標量和超流水線結構,大大增強了并行處理能力。
嵌入式微處理器的種類極為豐富,32位的嵌入式微處理器就有10多種。從下圖可以看出,全球僅有4%的計算機處理芯片用于通用計算機中,而更多的則是用于嵌入式系統中。
嵌入式微處理器內核按體系結構分類,可以分為以下幾個系列。
ARM系列:只設計內核的英國公司(在1.3節會有詳細介紹)。
MIPS系列:只設計內核的美國公司。
PowerPC:為IBM公司和Motorola公司共有的內核。
68K/COLDFIRE:Motorola公司獨有內核,有Motorola 68K等。
各內核的特點及應用如下表所示。
嵌入式處理器內核特點及應用
2.外圍設備
外圍設備是指嵌入式系統中用于完成存儲、通信、調試、顯示等輔助功能的其他部件。目前常用的嵌入式外圍設備按功能可以分為:存儲設備(如RAM、SRAM、Flash等)、通信設備(如RS-232接口、SPI接口、以太網接口等)和顯示設備(如顯示屏等)。
常見的存儲設備有RAM、SRAM、ROM、Flash等,這些存儲設備在嵌入式系統開發過程中是非常重要的。
(1)RAM、SRAM、DRAM。
根據掉電數據是否丟失,存儲器可以分為RAM(隨機存取存儲器)和ROM(只讀存儲器),其中RAM的訪問速度比較快,但掉電后數據會丟失,而ROM掉電后數據不會丟失。人們通常所說的內存即指系統中的RAM。
RAM又可分為SRAM(靜態存儲器)和DRAM(動態存儲器)。
SRAM是利用雙穩態觸發器來保存信息的,只要不掉電,信息是不會丟失的。
DRAM是利用MOS(金屬氧化物半導體)電容存儲電荷來儲存信息的,因此必須通過不停地給電容充電來維持信息。DRAM的成本、集成度、功耗等明顯優于SRAM。
通常人們所說的SDRAM是DRAM的一種,它是同步動態存儲器,利用單一的系統時鐘同步所有的地址數據和控制信號。使用SDRAM不但能提高系統表現,還能簡化設計、提供高速的數據傳輸,在嵌入式系統中經常使用。
(2)ROM、Flash。
Flash是一種非易失閃存技術,由于它具有和ROM一樣掉電數據不會丟失的特性。Flash主要分為NOR Flash和NAND Flash兩種。
NOR Flash的特點是在芯片內執行(Execute In Place),這樣應用程序可以直接在Flash內運行,不必再把代碼讀到系統RAM中。
NAND Flash能提供極高的單元密度,可以達到高存儲密度,NAND讀和寫操作采用512字節的塊,單元尺寸幾乎是NOR器件的一半,同時由于生產過程很簡單,大大降低了生產的成本。NAND Flash中每個塊的大擦寫次數是100萬次,是NOR Flash的10倍,這些都使得NAND Flash越來越受到人們的喜愛。
它們之間的關系如下圖所示。