嵌入式系統(tǒng)是什么
嵌入式系統(tǒng)是以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟、硬件可裁剪,適應(yīng)于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等方面有特殊要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。
嵌入式系統(tǒng)的特點(diǎn)
?。?)嵌入式系統(tǒng)是面向特定應(yīng)用的。嵌入式系統(tǒng)中的CPU是專(zhuān)門(mén)為特定應(yīng)用設(shè)計(jì)的,具有低功耗、體積小、集成度高等特點(diǎn),能夠把通用CPU中許多由板卡完成的任務(wù)集成在芯片內(nèi)部,從而有利于整個(gè)系統(tǒng)設(shè)計(jì)趨于小型化。
?。?)嵌入式系統(tǒng)涉及先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)、電子技術(shù)、通信和軟件等各個(gè)行業(yè)。是一個(gè)技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識(shí)集成系統(tǒng)。
?。?)嵌入式系統(tǒng)的硬件和軟件都必須具備高度可定制性。
?。?)嵌入式系統(tǒng)的生命周期相當(dāng)長(zhǎng)。嵌入式系統(tǒng)和具體應(yīng)用有機(jī)地結(jié)合在一起,其升級(jí)換代也是和具體產(chǎn)品同步進(jìn)行的。
?。?)嵌入式系統(tǒng)本身并不具備在其上進(jìn)行進(jìn)一步開(kāi)發(fā)的能力。在設(shè)計(jì)完成以后,用戶(hù)如果需要修改其中的程序功能,必須借助于一套專(zhuān)門(mén)的開(kāi)發(fā)工具和環(huán)境。
(6)為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲(chǔ)器芯片或單片機(jī)中,而不是存貯于磁盤(pán)等載體中。
嵌入式操作系統(tǒng)簡(jiǎn)介
嵌入式操作系統(tǒng)是一種支持嵌入式系統(tǒng)應(yīng)用的操作系統(tǒng)軟件,它 是嵌入式系統(tǒng)(包括硬、軟件系統(tǒng))極為重要的組成部分,通常包括與硬件相關(guān)的底層驅(qū)動(dòng)軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動(dòng)接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等 Browser。嵌入式操作系統(tǒng)具有通用操作系統(tǒng)的基本特點(diǎn),如能夠有效管理越來(lái)越復(fù)雜的系統(tǒng)資源;能夠把硬件虛擬化,使得開(kāi)發(fā)人員從繁忙的驅(qū)動(dòng)程序移植和維護(hù)中解脫出來(lái);能夠提供庫(kù)函數(shù)、驅(qū)動(dòng)程序、工具集以及應(yīng)用程序 。與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實(shí)時(shí)高效性、硬件的相關(guān)依賴(lài)性、軟件固態(tài)化以及應(yīng)用的專(zhuān)用性等方面具有較為突出的特點(diǎn)。
使用實(shí)時(shí)操作系統(tǒng)的必要性
嵌入式實(shí)時(shí)操作系統(tǒng)在目前的嵌入式應(yīng)用中用得越來(lái)越廣泛,尤其在功能復(fù)雜、系統(tǒng)龐大的應(yīng)用中顯得愈來(lái)愈重要。
·首先,嵌入式實(shí)時(shí)操作系統(tǒng)提高了系統(tǒng)的可靠性。在控制系統(tǒng)中,出于安全方面的考慮,要求系統(tǒng)起碼不能崩潰,而且還要有自愈能力。不僅要求在硬件設(shè)計(jì)方面提高系統(tǒng)的可靠性和抗干擾性,而且也應(yīng)在軟件設(shè)計(jì)方面提高系統(tǒng)的抗干擾性,盡可能地減少安全漏洞和不可靠的隱患。長(zhǎng)期以來(lái)的前后臺(tái)系統(tǒng)軟件設(shè)計(jì)在遇到強(qiáng) 干擾時(shí),使得運(yùn)行的程序產(chǎn)生異常、出錯(cuò)、跑飛,甚至死循環(huán),造成了系統(tǒng)的崩潰。而實(shí)時(shí)操作系統(tǒng)管理的系統(tǒng),這種干擾可能只是引起若干進(jìn)程中的一個(gè)被破壞,可以通過(guò)系統(tǒng)運(yùn)行的系統(tǒng)監(jiān)控進(jìn)程對(duì)其進(jìn)行修復(fù)。通常情況下,這個(gè)系統(tǒng)監(jiān)視進(jìn)程用來(lái)監(jiān)視各進(jìn)程運(yùn)行狀況,遇到異常情況時(shí)采取一些利于系統(tǒng)穩(wěn)定可靠的措施,如 把有問(wèn)題的任務(wù)清除掉。
·其次,提高了開(kāi)發(fā)效率,縮短了開(kāi)發(fā)周期。在嵌入式實(shí)時(shí)操作系統(tǒng)環(huán)境下,開(kāi)發(fā)一個(gè)復(fù)雜的應(yīng)用程序,通??梢园凑哲浖こ讨械慕怦钤瓌t將整個(gè)程序分解為多個(gè)任務(wù)模塊。每個(gè)任務(wù)模塊的調(diào)試、修改幾乎不影響其他模塊。商業(yè)軟件一般都提供了良好的多任務(wù)調(diào)試環(huán)境。
·再次,嵌入式實(shí)時(shí)操作系統(tǒng)充分發(fā)揮了32位CPU的多任務(wù)潛力。32位CPU比8、16位CPU快,另外它本來(lái)是為運(yùn)行多用戶(hù)、多任務(wù)操作系統(tǒng)而設(shè)計(jì)的,特別適于運(yùn)行多任務(wù)實(shí)時(shí)系統(tǒng)。32位CPU采用利于提高系統(tǒng)可靠性和穩(wěn)定性的設(shè)計(jì),使其更容易做到不崩潰。例如, CPU運(yùn)行狀態(tài)分為系統(tǒng)態(tài)和用戶(hù)態(tài)。將系統(tǒng)堆棧和用戶(hù)堆棧分開(kāi),以及實(shí)時(shí)地給出CPU的運(yùn)行狀態(tài)等,允許用戶(hù)在系統(tǒng)設(shè)計(jì)中從硬件和軟件兩方面對(duì)實(shí)時(shí)內(nèi)核的運(yùn)行實(shí)施保護(hù)。如果還是采用以前的前后臺(tái)方式,則無(wú)法發(fā)揮32位CPU的優(yōu)勢(shì)。
從某種意義上說(shuō),沒(méi)有操作系統(tǒng)的計(jì)算機(jī)(裸機(jī))是沒(méi)有用的。在嵌入式應(yīng)用中,只有把CPU嵌入到系統(tǒng)中,同時(shí)又把操作系統(tǒng)嵌入進(jìn)去,才是真正的計(jì)算機(jī)嵌入式應(yīng)用。
嵌入式操作系統(tǒng)有什么優(yōu)勢(shì)
1)專(zhuān)用性很強(qiáng):嵌入式操作系統(tǒng)的優(yōu)勢(shì)在于個(gè)性化很強(qiáng),其中的軟件系統(tǒng)和硬件的結(jié)合非常緊密,一般要針對(duì)硬件進(jìn)行系統(tǒng)的移植,即使在同一品牌、同一系列的產(chǎn)品中也需要根據(jù)系統(tǒng)硬件的變化和增減不斷進(jìn)行修改。同時(shí)針對(duì)不同的任務(wù),往往需要對(duì)系統(tǒng)進(jìn)行較大更改,程序的編譯下載要和系統(tǒng)相結(jié)合。
2)系統(tǒng)內(nèi)核?。簩?duì)于一般應(yīng)用在小型電子裝置來(lái)說(shuō),系統(tǒng)資源有限,而嵌入式操作系統(tǒng)的內(nèi)核要比傳統(tǒng)的操作系統(tǒng)小的多。
3)高實(shí)時(shí)性:EOS實(shí)時(shí)性一般較強(qiáng),可用于各種設(shè)備控制中
4)可裁剪性:支持開(kāi)放性和可伸縮性的體系結(jié)構(gòu)。
5)系統(tǒng)精簡(jiǎn)安全:嵌入式操作系統(tǒng)一般沒(méi)有系統(tǒng)軟件和應(yīng)用軟件的明顯區(qū)分,不要求其功能設(shè)計(jì)及實(shí)現(xiàn)上過(guò)于復(fù)雜,這樣一方面利于控制系統(tǒng)成本,同時(shí)也利于實(shí)現(xiàn)系統(tǒng)安全。
6)統(tǒng)一的接口。提供設(shè)備統(tǒng)一的驅(qū)動(dòng)接口。
7)固化代碼。在嵌入式系統(tǒng)中,嵌入式操作系統(tǒng)和應(yīng)用軟件被固化在嵌入式系統(tǒng)計(jì)算機(jī)的ROM中。
8)生命周期較長(zhǎng):由于嵌入式操作系統(tǒng)是與具體應(yīng)用應(yīng)用有機(jī)結(jié)合在一起,升級(jí)換代也是同步進(jìn)行。
9)強(qiáng)穩(wěn)定性,弱交互性。嵌入式操作系統(tǒng)的優(yōu)勢(shì)在于運(yùn)行開(kāi)始就不需要用戶(hù)過(guò)多的干預(yù),用戶(hù)接口一般不提供操作命令,它通過(guò)系統(tǒng)的調(diào)用命令向用戶(hù)程序提供服務(wù),這就要負(fù)責(zé)系統(tǒng)管理的EOS具有較強(qiáng)的穩(wěn)定性。
10)操作方便、簡(jiǎn)單、提供友好的圖形GUI和圖形界面,提供強(qiáng)大的網(wǎng)絡(luò)功能,支持TCP/IP協(xié)議及其他協(xié)議,提供TCP/UDP/IP/PPP協(xié)議支持及統(tǒng)一的MAC訪問(wèn)層接口,為各種移動(dòng)計(jì)算設(shè)備預(yù)留接口。
11)可滿(mǎn)足便攜虛擬儀器的需要:嵌入式操作系統(tǒng)目前已進(jìn)入后PC時(shí)代,它的小體積、高可靠能夠滿(mǎn)足實(shí)現(xiàn)野戰(zhàn)和惡劣環(huán)境下的便攜虛擬儀器的需要。
12)可靈活定制:相比于通用型計(jì)算機(jī)系統(tǒng),嵌入式系統(tǒng)功耗低、可靠性高;功能強(qiáng)大、性能價(jià)格比高;實(shí)時(shí)性強(qiáng),支持多任務(wù);占用空間小,效率高;面向特定應(yīng)用,可根據(jù)需要靈活定制。
嵌入式操作系統(tǒng)的種類(lèi)
一般情況下,嵌入式操作系統(tǒng)可以分為兩類(lèi),一類(lèi)是面向控制、通信等領(lǐng)域的實(shí)時(shí)操作系統(tǒng),如WindRiver公司的VxWorks、ISI的pSOS、 QNX系統(tǒng)軟件公司的QNX、ATI的Nucleus等;另一類(lèi)是面向消費(fèi)電子產(chǎn)品的非實(shí)時(shí)操作系統(tǒng),這類(lèi)產(chǎn)品包括個(gè)人數(shù)字助理(PDA)、移動(dòng)電話、機(jī)頂盒、電子書(shū)、WebPhone等。
a、非實(shí)時(shí)操作系統(tǒng)
早期的嵌入式系統(tǒng)中沒(méi)有操作系統(tǒng)的 概念,程序員編寫(xiě)嵌入式程序通常直接面對(duì)裸機(jī)及裸設(shè)備。在這種情況下,通常把嵌入式程序分成兩部分,即前臺(tái)程序和后臺(tái)程序。前臺(tái)程序通過(guò)中段來(lái)處理事件,其結(jié)構(gòu)一般為無(wú)限循環(huán);后臺(tái)程序則掌管整個(gè)嵌入式系統(tǒng)軟、硬件資源的分配、管理以及任務(wù)的調(diào)度,是一個(gè)系統(tǒng)管理調(diào)度程序。這就是通常所說(shuō)的前后臺(tái)系統(tǒng)。一 般情況下,后臺(tái)程序也叫任務(wù)級(jí)程序,前臺(tái)程序也叫事件處理級(jí)程序。在程序運(yùn)行時(shí),后臺(tái)程序檢查每個(gè)任務(wù)是否具備運(yùn)行條件,通過(guò)一定的調(diào)度算法來(lái)完成相應(yīng)的操作。對(duì)于實(shí)時(shí)性要求特別嚴(yán)格的操作通常由中斷來(lái)完成,僅在中斷服務(wù)程序中標(biāo)記事件的發(fā)生,不再做任何工作就退出中斷,經(jīng)過(guò)后臺(tái)程序的調(diào)度,轉(zhuǎn)由前臺(tái)程序 完成事件的處理,這樣就不會(huì)造成在中斷服務(wù)程序中處理費(fèi)時(shí)的事件而影響后續(xù)和其他中斷。
實(shí)際上,前后臺(tái)系統(tǒng)的實(shí)時(shí)性比預(yù)計(jì) 的要差。這是因?yàn)榍昂笈_(tái)系統(tǒng)認(rèn)為所有的任務(wù)具有相同的優(yōu)先級(jí)別,即是平等的,而且任務(wù)的執(zhí)行又是通過(guò)FIFO隊(duì)列排隊(duì),因而對(duì)那些實(shí)時(shí)性要求高的任務(wù)不可 能立刻得到處理。另外,由于前臺(tái)程序是一個(gè)無(wú)限循環(huán)的結(jié)構(gòu),一旦在這個(gè)循環(huán)體中正在處理的任務(wù)崩潰,使得整個(gè)任務(wù)隊(duì)列中的其他任務(wù)得不到機(jī)會(huì)被處理,從而造成整個(gè)系統(tǒng)的崩潰。由于這類(lèi)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,幾乎不需要RAM/ROM的額外開(kāi)銷(xiāo),因而在簡(jiǎn)單的嵌入式應(yīng)用被廣泛使用。
b、實(shí)時(shí)操作系統(tǒng)
實(shí)時(shí)系統(tǒng)是指能在確定的時(shí)間內(nèi)執(zhí)行其功能并對(duì)外部的異步事件做出響應(yīng)的計(jì)算機(jī)系統(tǒng)。其操作的正確性不僅依賴(lài)于邏輯設(shè)計(jì)的正確程度,而且與這些操作進(jìn)行的時(shí)間有關(guān)?!霸诖_定的時(shí)間內(nèi)”是該定義的核心。也就是說(shuō),實(shí)時(shí)系統(tǒng)是對(duì)響應(yīng)時(shí)間有嚴(yán)格要求的。
實(shí)時(shí)系統(tǒng)對(duì)邏輯和時(shí)序的要求非常嚴(yán)格,如果邏輯和時(shí)序出現(xiàn)偏差將會(huì)引起嚴(yán)重后果。實(shí)時(shí)系統(tǒng)有兩種類(lèi)型:軟實(shí)時(shí)系統(tǒng)和硬實(shí)時(shí)系統(tǒng)。軟實(shí)時(shí)系統(tǒng)僅要求事件響應(yīng)是實(shí)時(shí)的,并不要求限定某一任務(wù)必須在多長(zhǎng)時(shí)間內(nèi)完成;而在硬實(shí)時(shí)系統(tǒng)中,不僅要求任務(wù)響應(yīng)要實(shí)時(shí),而且要求在規(guī)定的時(shí)間內(nèi)完成事件的處理。通常,大多 數(shù)實(shí)時(shí)系統(tǒng)是兩者的結(jié)合。實(shí)時(shí)應(yīng)用軟件的設(shè)計(jì)一般比非實(shí)時(shí)應(yīng)用軟件的設(shè)計(jì)困難。實(shí)時(shí)系統(tǒng)的技術(shù)關(guān)鍵是如何保證系統(tǒng)的實(shí)時(shí)性。
實(shí)時(shí)多任務(wù)操作系統(tǒng)是指具有實(shí)時(shí)性、能支持實(shí)時(shí)控制系統(tǒng)工作的操作系統(tǒng)。其首要任務(wù)是調(diào)度一切可利用的資源完成實(shí)時(shí)控制任務(wù),其次才著眼于提高計(jì)算機(jī)系統(tǒng)的使用效率,重要特點(diǎn)是要滿(mǎn)足對(duì)時(shí)間的限制和要求。實(shí)時(shí)操作系統(tǒng)具有如下功能:任務(wù)管理(多任務(wù)和基于優(yōu)先級(jí)的任務(wù)調(diào)度)、任務(wù)間同步和通信(信號(hào)量和 郵箱等)、存儲(chǔ)器優(yōu)化管理(含ROM的管理)、實(shí)時(shí)時(shí)鐘服務(wù)、中斷管理服務(wù)。實(shí)時(shí)操作系統(tǒng)具有如下特點(diǎn):規(guī)模小,中斷被屏蔽的時(shí)間很短,中斷處理時(shí)間短,任務(wù)切換很快。
實(shí)時(shí)操作系統(tǒng)可分為可搶占型和不可搶占型兩類(lèi)。對(duì)于基于優(yōu)先級(jí)的系統(tǒng)而言,可搶占型實(shí)時(shí)操作系統(tǒng)是指內(nèi)核可 以搶占正在運(yùn)行任務(wù)的CPU使用權(quán)并將使用權(quán)交給進(jìn)入就緒態(tài)的優(yōu)先級(jí)更高的任務(wù),是內(nèi)核搶了CPU讓別的任務(wù)運(yùn)行。不可搶占型實(shí)時(shí)操作系統(tǒng)使用某種算法并決定讓某個(gè)任務(wù)運(yùn)行后,就把CPU的控制權(quán)完全交給了該任務(wù),直到它主動(dòng)將CPU控制權(quán)還回來(lái)。中斷由中斷服務(wù)程序來(lái)處理,可以激活一個(gè)休眠態(tài)的任務(wù),使之進(jìn)入就緒態(tài);而這個(gè)進(jìn)入就緒態(tài)的任務(wù)還不能運(yùn)行,一直要等到當(dāng)前運(yùn)行的任務(wù)主動(dòng)交出CPU的控制權(quán)。使用這種實(shí)時(shí)操作系統(tǒng)的實(shí)時(shí)性比不使用實(shí)時(shí)操作系統(tǒng)的系統(tǒng)性能好,其實(shí)時(shí)性取決于最長(zhǎng)任務(wù)的執(zhí)行時(shí)間。不可搶占型實(shí)時(shí)操作系統(tǒng)的缺點(diǎn)也恰恰是這一點(diǎn),如果最長(zhǎng)任務(wù)的執(zhí)行時(shí)間不能確定,系統(tǒng)的實(shí)時(shí)性就不能確 定。
可搶占型實(shí)時(shí)操作系統(tǒng)的實(shí)時(shí)性好,優(yōu)先級(jí)高的任務(wù)只要具備了運(yùn)行的條件,或者說(shuō)進(jìn)入了就緒態(tài),就可以立即運(yùn)行。也就是 說(shuō),除了優(yōu)先級(jí)最高的任務(wù),其他任務(wù)在運(yùn)行過(guò)程中都可能隨時(shí)被比它優(yōu)先級(jí)高的任務(wù)中斷,讓后者運(yùn)行。通過(guò)這種方式的任務(wù)調(diào)度保證了系統(tǒng)的實(shí)時(shí)性,但是,如果任務(wù)之間搶占CPU控制權(quán)處理不好,會(huì)產(chǎn)生系統(tǒng)崩潰、死機(jī)等嚴(yán)重后果。
嵌入式操作系統(tǒng)的發(fā)展
嵌入式操作系統(tǒng)伴隨著嵌入式系統(tǒng)的發(fā)展經(jīng)歷了4個(gè)比較明顯的階段。
第一階段是無(wú)操作系統(tǒng)的嵌入算法階段,是以單芯片為核心的可編程控制器形式的系統(tǒng),同時(shí)具有與監(jiān)測(cè)、伺服、指示設(shè)備相配合的功能。這種系統(tǒng)大部分應(yīng)用于一些專(zhuān)業(yè)性極強(qiáng)的工業(yè)控制系統(tǒng)中,一般沒(méi)有操作系統(tǒng)的支持,通過(guò)匯編語(yǔ)言編程對(duì)系統(tǒng)進(jìn)行直接控制,運(yùn)行結(jié)束后清除內(nèi)存。這一階段系統(tǒng)的主要特點(diǎn)是:系統(tǒng) 結(jié)構(gòu)和功能都相對(duì)單一,處理效率較低,存儲(chǔ)容量較小,幾乎沒(méi)有用戶(hù)接口。由于這種嵌入式系統(tǒng)使用簡(jiǎn)便、價(jià)格很低,以前在國(guó)內(nèi)工業(yè)領(lǐng)域應(yīng)用較為普遍,但是已經(jīng)遠(yuǎn)遠(yuǎn)不能適應(yīng)高效的、需要大容量存儲(chǔ)介質(zhì)的現(xiàn)代化工業(yè)控制和新興的信息家電等領(lǐng)域的需求。
第二階段是以嵌入式CPU為 基礎(chǔ)、以簡(jiǎn)單操作系統(tǒng)為核心的嵌入式系統(tǒng)。這一階段系統(tǒng)的主要特點(diǎn)是:CPU種類(lèi)繁多,通用性比較差;系統(tǒng)開(kāi)銷(xiāo)小, 效率高;一般配備系統(tǒng)仿真器,操作系統(tǒng)具有一定的兼容性和擴(kuò)展性;應(yīng)用軟件較專(zhuān)業(yè),用戶(hù)界面不夠友好;系統(tǒng)主要用來(lái)控制系統(tǒng)負(fù)載以及監(jiān)控應(yīng)用程序運(yùn)行。
第三階段是通用的嵌入式實(shí)時(shí)操作系統(tǒng)階段,是以嵌入式操作系統(tǒng)為核心的嵌入式系統(tǒng)。這一階段系統(tǒng)的主要特點(diǎn)是:嵌入式操作系統(tǒng)能運(yùn)行于各種不同類(lèi)型的微處理器上,兼容性好;操作系統(tǒng)內(nèi)核精小、效率高,并且具有高度的模塊化和擴(kuò)展性;具備文件和目錄管理、設(shè)備支持、多任務(wù)、網(wǎng)絡(luò) 支持、圖形窗口以及用戶(hù)界面等功能;具有大量的應(yīng)用程序接口(API),開(kāi)發(fā)應(yīng)用程序簡(jiǎn)單;嵌入式應(yīng)用軟件豐富。
第四階段是以基于Internet為標(biāo)志的嵌入式系統(tǒng),這是一個(gè)正在迅速發(fā)展的階段。目前大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,但隨著Internet的發(fā)展以及Internet技術(shù)與
信息家電、工業(yè)控制技術(shù)等結(jié)合日益密切,嵌入式設(shè)備與Internet的結(jié)合將代表著嵌入式技術(shù)的真正未來(lái)。
評(píng)論
查看更多