官术网_书友最值得收藏!

1.1.1 什么是嵌入式系統

什么是嵌入式系統呢?目前對嵌入式系統的定義主要有兩種。

第一種定義是傳統的定義:嵌入其他設備中,起智能控制作用的專用計算機系統。也可以說,它是任意包含可編程計算機的設備,但是這個設備不是作為通用個人計算機而設計的。一臺通用個人計算機不能被稱為嵌入式系統,盡管有時會把它嵌入某些設備中。而一臺嵌入數控機床里的控制器可以算作嵌入式系統。

第二種定義是目前比較流行的:以應用為中心,以計算機技術為基礎,并且軟硬件可裁減、軟件固化的專用計算機系統。例如:數碼相機、GPS(Global Positioning System,全球定位系統)導航儀就體現了這種特點,因此它們能被稱為嵌入式系統;而筆記本計算機沒有體現這種特點,因此它不能被稱為嵌入式系統。

無論采用哪種定義來描述嵌入式系統,可以確定的是,嵌入式系統本質上是計算機系統。它是計算機系統的一種體現形式,因為它的硬件由微處理器、存儲器、I/O部件組成,并且是由存儲的指令來控制任務的執行,只不過它與應用目標緊密結合,硬件結構中的組成部件需要根據應用目標來定制,同時軟件結構中的軟件功能模塊也需要定制。

我們可以把嵌入式系統的特征歸納如下。

(1)嵌入式系統與應用目標緊密結合,硬件組件需要定制(或稱硬件裁減)。也就是說,設計者需要根據自己所設計的嵌入式系統的功能要求,自行設計硬件電路。除設計通用的電路,如微處理器與存儲器的接口電路、時鐘電路(或稱晶振電路)、復位電路等之外,還需要設計一些專用部件的電路,如在設計、開發GPS導航儀時,設計者需要設計能夠接收衛星定位信號的GPS模塊的接口電路。

(2)嵌入式系統的軟件組件也需要定制(或稱軟件裁減)。也就是說,設計者需要根據應用的功能要求,確定所設計的嵌入式系統是否需要操作系統作為軟件平臺,并設計專用的軟件功能模塊。通常情況下,如果嵌入式系統的應用軟件可以設計成單任務形式,并且不需要具有圖形化人機交互界面、以太網通信等復雜功能,那么設計應用軟件時無須將操作系統作為軟件平臺。但如果嵌入式系統應用功能要求復雜,如需要處理多媒體信息、需要以太網通信功能等,那么其應用軟件的開發通常需要基于某個操作系統(如Linux)來進行,這樣可以縮短嵌入式系統的開發周期。若需要將操作系統作為軟件平臺,設計者還需要結合所設計的硬件結構,完成操作系統的移植和裁減,使操作系統能在該硬件環境下有效地運行。

(3)嵌入式系統的所有軟件組件均需要存儲在非易失性存儲器中。把運行代碼寫入非易失性存儲器中的過程叫作“軟件固化”,這樣可保證程序代碼及數據在嵌入式系統斷電以后不會丟失,從而保證嵌入式系統再次開機時能夠正常運行。由于嵌入式系統中通常不用磁盤,而采用存儲器作為系統的程序代碼及數據的存儲介質,因此嵌入式系統中軟件固化是必需的。

(4)相對于通用個人計算機來說,嵌入式系統的硬件、軟件資源受限。因為嵌入式系統通常對某些非功能性指標,如成本、體積、功耗等,有比較嚴格的要求,甚至到了苛求的地步,所以嵌入式系統的硬件、軟件資源通常只要能滿足應用需求即可,而沒有更多的冗余。

由于與通用個人計算機比較而言,嵌入式系統有上述的幾點特征,因此,嵌入式系統的設計、開發方法與通用個人計算機的應用系統的設計、開發方法相比,有以下幾點不同。

(1)需要軟硬件一體的設計理念。在嵌入式系統設計階段,設計者需要根據應用功能需求,結合成本、體積、功耗等非功能性需求,綜合考慮哪些功能由硬件完成、哪些功能由軟件完成,并在開發實施階段,根據硬件結構的具體情況,設計適用于該硬件結構的軟件。

(2)需要系統軟件與應用軟件融合設計。系統軟件通常是指管理及控制系統資源的軟件,而應用軟件是指具體實現用戶所需功能的軟件。嵌入式系統設計時,設計者往往需要完成系統軟件和應用軟件兩部分的設計工作。例如:若嵌入式系統無操作系統,那么設計者除了要設計應用軟件外,還要設計監控、管理硬件資源的軟件,這兩部分軟件的代碼通常融合在一個循環結構中;若嵌入式系統需要操作系統,那么設計者即使不設計操作系統,也需要完成操作系統的移植和裁減,并在完成應用軟件的設計時,完成一些非標準的硬件接口驅動程序設計。

(3)需要建立交叉開發環境。嵌入式系統由于受到資源的限制,通常軟件的開發環境與運行環境是不同的。也就是說,嵌入式系統開發時,需要借助通用個人計算機(稱為宿主機)來完成嵌入式系統的軟件編輯、編譯、鏈接等工作,生成可執行文件;而運行時,必須把可執行文件下載到嵌入式系統(稱為目標機)上,在宿主機上是不能直接運行的。這種宿主機-目標機的開發架構被稱為交叉開發環境。

綜上所述,嵌入式系統的設計與通用個人計算機應用系統設計的主要差別體現在設計手段和設計者需具備的技能上。嵌入式系統的設計者更需具備軟硬件一體的綜合設計技能。

主站蜘蛛池模板: 峨山| 延庆县| 柏乡县| 北川| 太白县| 江安县| 台湾省| 毕节市| 红桥区| 高青县| 遵义县| 龙海市| 贵德县| 扎兰屯市| 抚远县| 凤庆县| 抚顺县| 余干县| 嵩明县| 澄江县| 潞西市| 许昌县| 长寿区| 惠来县| 沙田区| 永靖县| 阿拉尔市| 乐陵市| 桦南县| 辽源市| 灌南县| 安图县| 张家口市| 天津市| 隆尧县| 双江| 濉溪县| 英德市| 平潭县| 浦城县| 闻喜县|