




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1章嵌入式系統(tǒng)導(dǎo)論1.1嵌入式系統(tǒng)概述1.2嵌入式系統(tǒng)的組成結(jié)構(gòu)1.3嵌入式系統(tǒng)的基本設(shè)計方法
1.4嵌入式操作系統(tǒng)概述1.5μC/OS-Ⅱ操作系統(tǒng)概述習(xí)題
1.1嵌入式系統(tǒng)概述
1.1.1嵌入式系統(tǒng)的發(fā)展概況[1]
1.嵌入式應(yīng)用的起源
從歷史的角度來看,計算機的發(fā)展主要經(jīng)歷了機械計算機(1614—1937)、繼電器計算機(1937—1946)、電子管計算機(1946—1959)、晶體管計算機(1959—1964)、集成電路計算機(1964—1971)、大規(guī)模和超大集成電路計算機(1971—今)等六個階段,具有明顯的時代特征。每一次重大的技術(shù)革命都催生了一類新的計算技術(shù);反之,計算技術(shù)的每一次重大飛躍都極大地促進(jìn)了技術(shù)領(lǐng)域更加持久、深刻的變革。早在1614年,蘇格蘭人JohnNapier就發(fā)表論文公布他發(fā)明了一種可以進(jìn)行四則運算和方根運算的精巧裝置。1848年,英國數(shù)學(xué)家GeorgeBoole創(chuàng)立二進(jìn)制代數(shù)學(xué),為現(xiàn)代二進(jìn)制計算技術(shù)的發(fā)展鋪平了道路。1937年,Bell試驗室的GeorgeStibitz展示了用繼電器表示二進(jìn)制的裝置,盡管它是個展品,但卻是世界上的第一臺二進(jìn)制電子計算機。1946年2月15日,名為ENIAC的計算機在美國誕生了,這是第一臺現(xiàn)代意義上的數(shù)字計算機,它的誕生具有劃時代的意義,表明了現(xiàn)代數(shù)字計算機時代的到來。在隨后的近三十年里,計算機一直為少數(shù)精英所掌握,主要用于實驗室里的數(shù)值求解。直到1971年Intel公司推出了第一顆商用集成電路微處理器Intel4004以后,許多廠商紛紛推出8位、16位微處理器。以微處理器為核心的微型計算機以其體積小、價格低、性能可靠等特點,迅速走出機房,廣泛地應(yīng)用于儀器儀表、家用電器、醫(yī)療設(shè)備等領(lǐng)域。這個時期也被人們稱為PC時代。隨著計算機運算速度的飛速提高,微型機所表現(xiàn)出來的智能能力引起了控制領(lǐng)域工程人員的廣泛關(guān)注。將微型機嵌入到應(yīng)用系統(tǒng)中,實現(xiàn)應(yīng)用系統(tǒng)的智能化控制的設(shè)想和實踐應(yīng)運而生。計算機廠家開始大量地以插件方式向用戶提供OEM產(chǎn)品,再由用戶根據(jù)自己的需要選擇一套適合的CPU板、存儲器板以及各種I/O插件板,并將它們嵌入到自己的系統(tǒng)設(shè)備中,從而導(dǎo)致了嵌入式計算機系統(tǒng)的誕生。例如,將微機配置好專用軟件、外部接口電路,并經(jīng)機械、電氣加固后,安裝到飛機、大型艦船、大型電話交換機中,構(gòu)成自動控制系統(tǒng)或狀態(tài)監(jiān)測系統(tǒng)等。出于兼容性和靈活性的考慮,系列化、模塊化的單板機也問世了,其典型代表是Intel公司的iSBC系列單板機、Zilog公司的MCB單板機等。從此人們可以不必從選擇芯片開始,而是只要選擇各功能模塊,就能夠組建一臺專用計算機系統(tǒng)。用戶和開發(fā)者都希望從不同的廠家選購最適合的OEM產(chǎn)品,插入外購或自制的機箱中就能形成新的系統(tǒng),這就要求插件是互相兼容的,從而導(dǎo)致了工業(yè)控制微機系統(tǒng)總線的誕生。1976年Intel公司推出了Multibus,1983年擴展為帶寬達(dá)40Mb/s的MultibusⅡ。1978年,由Prolog設(shè)計出了簡單STD總線并被廣泛應(yīng)用。
20世紀(jì)90年代,在分布控制、柔性制造、數(shù)字化通信和信息家電等巨大需求的牽引下,嵌入式應(yīng)用進(jìn)一步加速發(fā)展。面向?qū)崟r信號處理算法的DSP產(chǎn)品向著高速、高精度、低功耗發(fā)展。Texas推出的第三代DSP芯片TMS320C30,引導(dǎo)著微控制器向32位高速智能化發(fā)展。在應(yīng)用方面,掌上電腦、手持PC機、機頂盒技術(shù)相對成熟,發(fā)展也較為迅速。特別是掌上電腦,1997年在美國市場上不過四五個品牌,而1998年底,各式各樣的掌上電腦如雨后春筍般紛紛涌現(xiàn)出來。隨著人類進(jìn)入網(wǎng)絡(luò)時代,將嵌入式計算機系統(tǒng)應(yīng)用到各類網(wǎng)絡(luò)中已成為嵌入式系統(tǒng)發(fā)展的重要方向。在發(fā)展?jié)摿薮蟮男畔⒓译娭?,人們非常關(guān)注的網(wǎng)絡(luò)電話設(shè)備,即IP電話,就是一個代表。計算機被嵌入到應(yīng)用系統(tǒng)中后,原來通用計算機的標(biāo)準(zhǔn)形態(tài)便不再復(fù)現(xiàn)了,人機交互模式、處理模式、功耗模式也各不相同。為了把實現(xiàn)嵌入式應(yīng)用的計算機與通用計算機系統(tǒng)區(qū)別開來,就把這種以嵌入為手段、以控制為目的的專用計算機稱做嵌入式計算機系統(tǒng)。因此,嵌入式系統(tǒng)起源于微型機時代,嵌入式系統(tǒng)的嵌入性是它的一個根本特點,其本質(zhì)是將計算機嵌入到應(yīng)用系統(tǒng)中去。
2.計算機技術(shù)的分化
從產(chǎn)生的背景來看,嵌入式計算機系統(tǒng)與通用計算機系統(tǒng)有著完全不同的技術(shù)要求、技術(shù)發(fā)展方向和應(yīng)用目標(biāo)。通用計算機系統(tǒng)的技術(shù)要求是高速、海量的數(shù)值計算;技術(shù)發(fā)展方向是總線速度的無限提升,存儲容量的無限擴大;應(yīng)用目標(biāo)是多樣化,通過軟件的配置完成多種計算。而嵌入式計算機系統(tǒng)的技術(shù)要求是可靠、可裁減,能滿足應(yīng)用對其體積、功耗等的嚴(yán)格要求;技術(shù)發(fā)展方向是追求與應(yīng)用系統(tǒng)密切相關(guān)的嵌入性、專用性、智能性和可靠性的提升;應(yīng)用目標(biāo)是實現(xiàn)應(yīng)用系統(tǒng)的智能化控制。在早期,由于嵌入式應(yīng)用范圍比較狹窄,大多用于工業(yè)控制領(lǐng)域,人們還可以勉強將通用計算機通過改裝、加固、定制專業(yè)軟件等方法,嵌入到大型系統(tǒng)中去實現(xiàn)嵌入式應(yīng)用。但隨著經(jīng)濟(jì)、技術(shù)的高速發(fā)展,嵌入式應(yīng)用越來越廣泛,已經(jīng)深入到我們生活中的方方面面,小到彩電、空調(diào)、洗衣機、手機,大到飛機、導(dǎo)彈、汽車等,嵌入式應(yīng)用對計算機的功能、體積、功耗、價格、重量、可靠性等方面的要求也越來越苛刻,通過改造通用計算機的傳統(tǒng)方法已遠(yuǎn)遠(yuǎn)不能勝任。因此,嵌入式計算機不得不脫離通用計算機系統(tǒng),走上獨立發(fā)展的道路。這就形成了現(xiàn)代計算機兩大分支并行發(fā)展的時期。
3.兩大分支的發(fā)展方向
由于嵌入式計算機系統(tǒng)與通用計算機系統(tǒng)的專業(yè)分工和獨立發(fā)展,導(dǎo)致了當(dāng)今計算機技術(shù)的飛速發(fā)展。通用計算機領(lǐng)域致力于發(fā)展其專用的軟、硬件技術(shù),不必兼顧嵌入式應(yīng)用的要求。CPU已經(jīng)從單核發(fā)展到雙核、四核,微機的處理速度已經(jīng)遠(yuǎn)遠(yuǎn)超過了當(dāng)年的小中型計算機,超級計算機1秒鐘已經(jīng)能運算幾百萬億條指令。操作系統(tǒng)的發(fā)展使計算機在具備了高速處理海量數(shù)據(jù)能力的同時,應(yīng)用也越來越方便。
嵌入式計算機系統(tǒng)則走上了另一條發(fā)展之路——單芯片化。如果說微機開創(chuàng)了嵌入式計算機系統(tǒng)的應(yīng)用,那么單片機則開創(chuàng)了嵌入式計算機系統(tǒng)獨立發(fā)展的道路。在單片機的發(fā)展道路上,曾出現(xiàn)過兩種探索模式,即Σ模式和創(chuàng)新模式。Σ模式本質(zhì)上是將通用計算機系統(tǒng)中的基本單元進(jìn)行裁剪后,直接芯片化,構(gòu)成單片微型計算機;創(chuàng)新模式則完全按嵌入式應(yīng)用的要求,以全新的方式設(shè)計能滿足嵌入式應(yīng)用要求的體系結(jié)構(gòu)、指令系統(tǒng)、總線方式、管理模式、外設(shè)接口等的單片微型計算機。1976年Intel公司開發(fā)的MCS-48和隨后開發(fā)的MCS-51就是按照創(chuàng)新模式發(fā)展起來的單片形態(tài)嵌入式系統(tǒng)。歷史證明,創(chuàng)新模式是嵌入式系統(tǒng)獨立發(fā)展的正確道路,MCS-51的體系結(jié)構(gòu)也因此成為單片嵌入式系統(tǒng)的典型體系結(jié)構(gòu)。1.1.2嵌入式系統(tǒng)的定義
嵌入式計算機系統(tǒng)簡稱嵌入式系統(tǒng),它的應(yīng)用發(fā)源于微機,發(fā)展于單片機。那么,究竟什么是嵌入式系統(tǒng)呢?嵌入式系統(tǒng)的定義是怎樣的呢?
依據(jù)IEEE(國際電氣和電子工程師協(xié)會)的定義:“Deviceusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants”,即嵌入式系統(tǒng)為控制、監(jiān)視或輔助設(shè)備、機器甚至工廠運作的裝置。它是一種計算機軟件和硬件的綜合體,特別強調(diào)“量身定制”的原則,也就是基于某種特殊的用途,設(shè)計者就會根據(jù)這些用途設(shè)計出一種截然不同的系統(tǒng)來。
WayneWolf在其所著的嵌入式系統(tǒng)設(shè)計教科書上對嵌入式系統(tǒng)的定義是:“Looselydefined,itisanydevicethatincludesaprogrammablecomputerbutisnotitselfageneral-purposecomputer”,即不嚴(yán)格地定義,嵌入式系統(tǒng)是包含可編程計算機的任意設(shè)備,而它本身并不是被作為通用計算機而設(shè)計的。書中他還說:“一臺個人電腦不能稱之為嵌入式計算系統(tǒng),盡管它常常被用于搭建嵌入式系統(tǒng)。”我國微機學(xué)會的定義是:嵌入式系統(tǒng)是以嵌入式應(yīng)用為目的的計算機系統(tǒng)。并且還將其分為系統(tǒng)級、板級和片級。系統(tǒng)級包括各類工控設(shè)備、PC104模塊等;板級包括各類CPU主板和OEM產(chǎn)品;片級包括各種以單片機、DSP、微處理器為核心的設(shè)備。
目前在我國流行得比較廣泛的定義是:嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁減,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積和功耗等嚴(yán)格要求的專用計算機系統(tǒng)。也有人認(rèn)為以上觀點不確切,致使嵌入式系統(tǒng)的定義沒有脫離計算機系統(tǒng)范疇,認(rèn)為嵌入式系統(tǒng)首先是非PC,否則仍然是計算機系統(tǒng),所以將嵌入式系統(tǒng)描述為下列公式:
ES=3C(Computer+Communication+
Consumerelectronics)+Internet+WAP+GBS+UPS
+Sensors+IP+Other→ESOC(嵌入式片上系統(tǒng))
由上述公式表達(dá)的嵌入式系統(tǒng)定義可概括如下:嵌入式系統(tǒng)是現(xiàn)代科學(xué)多學(xué)科互相融合,以應(yīng)用技術(shù)產(chǎn)品為核心,以計算機技術(shù)為基礎(chǔ),以通信技術(shù)為載體,以消費類產(chǎn)品為對象,引入各類傳感器,進(jìn)入Internet網(wǎng)絡(luò)技術(shù)連接,適應(yīng)應(yīng)用環(huán)境的產(chǎn)品。嵌入式系統(tǒng)是無多余軟件,并且以固化態(tài)出現(xiàn),硬件亦無多余存儲器,可靠性高、成本低、體積小、功耗少的非計算機系統(tǒng)。因此它包含了十分廣泛的、各種不同類型的設(shè)備。嵌入式系統(tǒng)又是知識密集,投資規(guī)模大,產(chǎn)品更新?lián)Q代快,且具有不斷創(chuàng)新才能不斷發(fā)展的系統(tǒng)。系統(tǒng)中采用片上系統(tǒng)(SOC,亦稱系統(tǒng)芯片)將是其發(fā)展趨勢。人們從不同的角度出發(fā),得出了不同的嵌入式系統(tǒng)定義,但是如果從嵌入式系統(tǒng)的起源、發(fā)展、本質(zhì)等方面出發(fā)來探討嵌入式系統(tǒng)的定義的話,本書認(rèn)為如下定義更準(zhǔn)確、更具普遍性,即嵌入式系統(tǒng)是嵌入到對象體系中的專用計算機系統(tǒng)。嵌入性、專用性與計算機系統(tǒng)是嵌入式系統(tǒng)的三個基本要素,對象體系則是指所嵌入的應(yīng)用系統(tǒng)。按照定義,只要滿足嵌入式系統(tǒng)三要素的,都可以稱為嵌入式系統(tǒng)。因此,嵌入式系統(tǒng)根據(jù)其形態(tài)和規(guī)模的不同可分為:
(1)系統(tǒng)級,包括工控機、嵌入到應(yīng)用系統(tǒng)中的通用計算機等;
(2)板級,包括各種CPU主板;
(3)芯片級,如CPU、MCU、SOC、DSP、MPU等。在理解嵌入式系統(tǒng)的定義的時候,要分清嵌入式系統(tǒng)與嵌入式應(yīng)用系統(tǒng)的區(qū)別。嵌入式應(yīng)用系統(tǒng)是指內(nèi)部含有嵌入式系統(tǒng)的設(shè)備、裝置或者系統(tǒng),例如手機、數(shù)字彩電、空調(diào)、工控單元、PDA、汽車、導(dǎo)彈等。這種區(qū)別就好像我們常說的單片機系統(tǒng)與單片機應(yīng)用系統(tǒng)的區(qū)別一樣。盡管人們常常在不嚴(yán)格的場合將單片機系統(tǒng)和單片機應(yīng)用系統(tǒng)混稱,但是概念上的差別是很明顯的。1.1.3嵌入式系統(tǒng)的特點
嵌入式系統(tǒng)的本質(zhì)是專用的計算機系統(tǒng),與通用計算機系統(tǒng)相比,不同的嵌入式系統(tǒng)的特點會有所差異,但基本特點是一樣的,其主要表現(xiàn)如下:
(1)系統(tǒng)內(nèi)核小、實時高效。嵌入式系統(tǒng)大多應(yīng)用于小型電子設(shè)備,系統(tǒng)資源有限。例如,一般MCS-51系列單片機只有幾KB的內(nèi)部RAM、幾十KB的ROM,經(jīng)擴展后也不過64KB,要在這樣有限的資源上運行實時內(nèi)核,就對內(nèi)核的尺寸提出了嚴(yán)格的限制,大的通用操作系統(tǒng)肯定是無法運行起來的,一般只能運行嵌入式操作系統(tǒng),如μC/OS-Ⅱ的內(nèi)核最小可裁剪到2KB。嵌入式系統(tǒng)往往應(yīng)用于各種實時場合,例如導(dǎo)彈控制、機載設(shè)備、工業(yè)測控、安全氣囊等,這就要求嵌入式系統(tǒng)具有與之相應(yīng)的實時性和可靠性,否則后果嚴(yán)重。
(2)專用性強。嵌入式系統(tǒng)與通用計算機系統(tǒng)的最大不同就是嵌入式系統(tǒng)大多是為特定用戶群設(shè)計的,產(chǎn)品的個性化很強。它通常都具有低功耗、體積小、集成度高等特點,軟件和硬件的結(jié)合非常緊密,即使在同一品牌、同一系列的產(chǎn)品中也需要根據(jù)應(yīng)用的需求變化,對系統(tǒng)軟件和硬件的配置作較大的更改。同時,程序的編譯下載也要和系統(tǒng)相結(jié)合。
(3)系統(tǒng)精簡。嵌入式系統(tǒng)的硬件和軟件都必須高效率地設(shè)計,量體裁衣、去除冗余,不要求其功能設(shè)計及實現(xiàn)上過于復(fù)雜,力爭在同樣的硅片面積上實現(xiàn)更高的性能。這樣一方面利于控制系統(tǒng)成本,同時也利于實現(xiàn)系統(tǒng)安全,使產(chǎn)品更具競爭力。
(4)軟件固化。為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片或單片機本身中,而不是存儲于磁盤等載體中。軟件固化是嵌入式軟件的基本要求,同時要求軟件代碼具有高質(zhì)量、高可靠性和高實時性。
(5)開發(fā)工具和環(huán)境。嵌入式系統(tǒng)本身不具備自主開發(fā)能力,即使設(shè)計完成以后,用戶通常也不能對其中的程序和電路進(jìn)行修改,必須有一套開發(fā)工具和環(huán)境才能進(jìn)行開發(fā)。這些工具和環(huán)境一般是通用計算機、專用的嵌入式開發(fā)系統(tǒng)以及各種邏輯分析儀、示波器、信號源等。開發(fā)時往往有主機和目標(biāo)機的概念,主機用于程序的開發(fā),目標(biāo)機作為最后的執(zhí)行機,開發(fā)時需要交替結(jié)合進(jìn)行。 1.2嵌入式系統(tǒng)的組成結(jié)構(gòu)
嵌入式系統(tǒng)是一種特殊的專用計算機系統(tǒng),早期嵌入式系統(tǒng)自底向上主要由硬件環(huán)境、嵌入式操作系統(tǒng)和應(yīng)用程序等三層組成。硬件環(huán)境層是整個嵌入式操作系統(tǒng)和應(yīng)用程序運行的基礎(chǔ),通常,不同的應(yīng)用對應(yīng)不同的硬件環(huán)境。為了便于操作系統(tǒng)在不同結(jié)構(gòu)的硬件上移植,微軟提出了將操作系統(tǒng)底層與硬件相關(guān)的部分單獨抽象出來,設(shè)計成單獨的硬件抽象層(HardwareAbstractionLayer,HAL)的思想。它通過硬件抽象層接口設(shè)計,向操作系統(tǒng)及應(yīng)用程序提供對硬件進(jìn)行抽象后的服務(wù)。硬件抽象層這個中間層的引入,屏蔽了底層硬件的多樣性,操作系統(tǒng)不再直接面對具體的硬件環(huán)境,而是面向由這個中間層次所代表的、邏輯上的硬件環(huán)境,實現(xiàn)嵌入式操作系統(tǒng)的可移植性和跨平臺性。目前,在嵌入式領(lǐng)域中,HAL通常是以板級支持包(BoardSupportPackage,BSP)的形式實現(xiàn)的。這樣,原先嵌入式系統(tǒng)的三層結(jié)構(gòu)逐步演化為如圖1.1所示的四層結(jié)構(gòu)。然而,目前BSP形式的硬件抽象層還不能解決大多數(shù)操作系統(tǒng)移植和跨平臺問題。圖1.1嵌入式系統(tǒng)組成結(jié)構(gòu)圖1.2.1硬件層
嵌入式系統(tǒng)的硬件層結(jié)構(gòu)如圖1.2所示,它主要包括嵌入式處理器、存儲器、模擬電路及電源、接口控制器及插件等。圖1.2嵌入式系統(tǒng)硬件層結(jié)構(gòu)圖
1.嵌入式處理器
嵌入式處理器是嵌入式系統(tǒng)的核心,其品種總量已經(jīng)超過1000種,流行的體系結(jié)構(gòu)有30多個系列,其中8051系列占多半。生產(chǎn)8051單片機的半導(dǎo)體廠家有20多個,共350多個衍生產(chǎn)品,僅Philips就有近100種。現(xiàn)在幾乎每個半導(dǎo)體制造商都生產(chǎn)嵌入式處理器,越來越多的公司有自己的處理器設(shè)計部門。
嵌入式處理器的尋址空間一般從64KB到16MB,處理速度從0.1
MIPS到2000
MIPS,常用封裝從8個引腳到144個引腳。嵌入式微處理器一般具備以下四個特點:
(1)對實時多任務(wù)有很強的支持能力,能完成多任務(wù)并且有較短的中斷響應(yīng)時間。
(2)具有功能很強的存儲區(qū)保護(hù)功能。這是由于嵌入式系統(tǒng)的軟件結(jié)構(gòu)已模塊化,而為了避免在軟件模塊之間出現(xiàn)錯誤的交叉作用,需要設(shè)計強大的存儲區(qū)保護(hù)功能,同時也有利于軟件診斷。
(3)可擴展的處理器結(jié)構(gòu),可以滿足快速開發(fā)最高性能的嵌入式系統(tǒng)的要求。
(4)嵌入式微處理器的功耗很低,很多產(chǎn)品的功耗只在毫瓦甚至微瓦級。嵌入式處理器的分類一般有兩種。一是按功能特點分類,可分為嵌入式微控制器(MicroControllerUnit,MCU)、嵌入式微處理器(EmbeddedMicroProcessorUnit,EMPU)、嵌入式DSP處理器(EmbeddedDigitalSignalProcessor,EDSP)和嵌入式片上系統(tǒng)(System
On
Chip,SOC);二是按數(shù)據(jù)總線的位數(shù)分類,可分為4位機、8位機、16位機、32位機和64位機。
1)嵌入式微控制器
嵌入式微控制器又稱單片機,顧名思義,就是將整個計算機系統(tǒng)集成到一塊芯片中。嵌入式微控制器一般以某種微處理器內(nèi)核為核心,芯片內(nèi)部集成ROM/EPROM、RAM、總線、總線邏輯、定時/計數(shù)器、WatchDog、I/O、串行口、脈寬調(diào)制輸出、A/D、D/A、Flash等各種必要的功能和外設(shè)。為適應(yīng)不同的應(yīng)用需求,一般一個系列的單片機具有多種衍生產(chǎn)品,每種衍生產(chǎn)品的處理器內(nèi)核都是一樣的,不同的是存儲器和外設(shè)的配置及封裝。這樣可以使單片機最大限度地和應(yīng)用需求相匹配,從而減少功耗和成本。和嵌入式微處理器相比,微控制器的最大特點是單片化,體積大大減小,從而使功耗和成本下降、可靠性提高。微控制器的片上外設(shè)資源一般比較豐富,適合于控制。微控制器是目前嵌入式系統(tǒng)工業(yè)的主流。嵌入式微控制器目前的品種和數(shù)量最多,比較有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。另外還有許多半通用系列,如支持USB接口的MCU8XC930/931、C540、C541,支持I2C、CAN-Bus、LCD及眾多的專用MCU和兼容系列。目前MCU占嵌入式系統(tǒng)約70%的市場份額。
值得注意的是,近年來提供X86微處理器的著名廠商AMD公司將Am186CC/CH/CU等嵌入式處理器稱之為MicroController;Motorola公司把以PowerPC為基礎(chǔ)的PPC505和PPC555也列入單片機行列;TI公司亦將其TMS320C2XXX系列DSP作為MCU進(jìn)行推廣。
2)嵌入式微處理器
嵌入式微處理器的基礎(chǔ)是通用計算機中的CPU。在應(yīng)用中,將微處理器裝配在專門設(shè)計的電路板上,只保留和嵌入式應(yīng)用有關(guān)的母板功能,這樣可以大幅度減小系統(tǒng)的體積和功耗。為了滿足嵌入式應(yīng)用的特殊要求,嵌入式微處理器雖然在功能上和標(biāo)準(zhǔn)微處理器基本一樣,但在工作溫度、抗電磁干擾、可靠性等方面一般都做了各種增強。和工業(yè)控制計算機相比,嵌入式微處理器具有體積小、重量輕、成本低、可靠性高等優(yōu)點,而且在電路板上必須包括ROM、RAM、總線接口、各種外設(shè)等器件,從而提高了系統(tǒng)的可靠性和技術(shù)保密性。嵌入式微處理器及其存儲器、總線、外設(shè)等安裝在一塊電路板上,稱為單板計算機,如STD-BUS、PC104等。近年來,德國、日本的一些公司又開發(fā)出了類似“火柴盒”式名片大小的嵌入式計算機系列OEM產(chǎn)品。
目前,嵌入式處理器主要有Am186/88、386EX、SC-400、Power
PC、Motorola
68000、MIPS、ARM系列等。在32位嵌入式處理器市場主要有Motorola、ARM、MIPS、TI、Hitachi等公司。有些生產(chǎn)通用微處理器的公司,像Intel、Sun和IBM等,也生產(chǎn)嵌入式微處理器。
3)嵌入式DSP處理器
EDSP處理器對系統(tǒng)結(jié)構(gòu)和指令進(jìn)行了特殊設(shè)計,使其適合于執(zhí)行DSP算法,編譯效率較高,指令執(zhí)行速度也較高。在數(shù)字濾波、FFT、頻譜分析等領(lǐng)域,DSP應(yīng)用正由用通用單片機以普通指令實現(xiàn)DSP功能,過渡到采用嵌入式DSP處理器。嵌入式DSP處理器有兩個發(fā)展來源:一是DSP處理器經(jīng)過單片化、EMC改造、增加片上外設(shè)成為嵌入式DSP處理器,TI的TMS320C2000/C5000等屬于此范疇;二是在通用單片機或SOC中增加DSP處理器,例如Intel的MCS-296和Infineon(Siemens)的TriCore。嵌入式DSP處理器比較有代表性的產(chǎn)品是TI的TMS320系列和Motorola的DSP56000系列。TMS320系列處理器包括用于控制的C2000系列,用于移動通信的C5000系列,以及性能更高的C6000和C8000系列。DSP56000系列目前已經(jīng)發(fā)展成為DSP56000、DSP56100、DSP56200和DSP56300等幾個不同系列的處理器。另外Philips公司也推出了一些新型的嵌入式DSP處理器。
4)嵌入式片上系統(tǒng)
隨著EDA的推廣、VLSI設(shè)計的普及和半導(dǎo)體工藝的迅速發(fā)展,在一個硅片上實現(xiàn)一個更為復(fù)雜系統(tǒng)的時代已來臨,這就是嵌入式片上系統(tǒng)。各種通用處理器內(nèi)核將作為SOC設(shè)計的標(biāo)準(zhǔn)庫,和許多其它嵌入式系統(tǒng)外設(shè)一樣,成為VLSI設(shè)計中一種標(biāo)準(zhǔn)的器件,用標(biāo)準(zhǔn)的VHDL等語言描述,存儲在器件庫中。用戶只需定義出其整個應(yīng)用系統(tǒng),仿真通過后就可以將設(shè)計圖交給半導(dǎo)體工廠制作樣品。這樣除個別無法集成的器件以外,整個嵌入式系統(tǒng)大部分都可集成到一塊或幾塊芯片中去,應(yīng)用系統(tǒng)電路板將變得很簡潔,對于減小體積和功耗、提高可靠性非常有利。
SOC可以分為通用和專用兩類。通用系列包括Infineon的TriCore,Motorola的M-Core,某些ARM系列器件,Echelon和Motorola聯(lián)合研制的Neuron芯片等。專用SOC一般專用于某個或某類系統(tǒng)中,不為一般用戶所知。一個有代表性的產(chǎn)品是Philips的SmartXA,它將XA單片機內(nèi)核和支持超過2048位復(fù)雜RSA算法的CCU單元制作在一塊硅片上,形成一個可加載Java或C語言的專用的SOC,可用于公眾互聯(lián)網(wǎng)如Internet安全方面。
2.存儲器
存儲器是嵌入式系統(tǒng)中的重要組成部件,用于存放程序和數(shù)據(jù)。嵌入式應(yīng)用系統(tǒng)是否“聰明”不僅取決于CPU的性能,
而且在很大程度上還取決于嵌入式系統(tǒng)的存儲容量。一般而言,存儲容量越大,嵌入式系統(tǒng)的性能就越好,反之亦然。
目前的存儲器主要有半導(dǎo)體材料、磁性材料和光介質(zhì)材料三種。存儲器中最小的存儲單位就是一個雙穩(wěn)態(tài)半導(dǎo)體電路或一個CMOS晶體管(也可為磁性材料或光介質(zhì))的存儲元,它可存儲一位二進(jìn)制代碼。由若干個存儲元組成一個存儲單元,然后再由許多存儲單元組成一個存儲器。
嵌入式系統(tǒng)中以半導(dǎo)體存儲器為多。半導(dǎo)體存儲器種類很多,從存、取功能上可以分為只讀存儲器(Read-OnlyMemory,ROM)、隨機存儲器(RandomAccessMemory,RAM)、可編程存儲器(ProgrammableRead-OnlyMemory,PROM)、可擦除的可編程ROM(ErasableProgrammableRead-OnlyMemory,EPROM)、閃存(FlashMemory)、鐵電存儲器(FRAM)等幾種不同類型。
3.常用的接口總線
嵌入式系統(tǒng)中常用的總線主要可分為兩大類,即并行總線和串行總線。常用的并行總線如下:
①?CPU并行總線;
②工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(IndustryStandardArchitecture,ISA)總線;
③外部設(shè)備互連(PeripheralComponentInterconnect,PCI)總線。
常用的串行總線較多,主要有如下幾種:
①通用異步接收與傳輸(UiversalAsynchronousReceiver/Transmitter,UART)總線;②串行通信接口(SerialCommunicationInterface,SCI)總線;
③串行外設(shè)接口(SerialPeripheralInterface,SPI)總線;
④內(nèi)部集成電路(Inter-IC,I2C)總線;
⑤IEEE1394總線、USB總線;
⑥RS-232總線、RS-485總線;
⑦控制器區(qū)域網(wǎng)(ControllerAreaNetwork,CAN)總線;
⑧單總線(1-Wire)和局域互連網(wǎng)絡(luò)(Local
Interconnect
Network,LIN)總線。
這些總線在速度、物理接口要求和通信方法上都有所不同。串行總線與并行總線相比,最大的優(yōu)點在于總線線數(shù)少,這有利于減小系統(tǒng)的復(fù)雜性。
1.2.2軟件結(jié)構(gòu)
嵌入式系統(tǒng)的軟件結(jié)構(gòu)可以分為兩種:一是無操作系統(tǒng)支持的程序結(jié)構(gòu);二是基于RTOS的程序結(jié)構(gòu)。以一個數(shù)據(jù)采集系統(tǒng)為例,假設(shè)要求完成數(shù)據(jù)采集、數(shù)據(jù)處理、鍵盤輸入、LCD顯示、打印等功能的軟件工作。無操作系統(tǒng)支持的系統(tǒng)一般稱之為“前后臺”系統(tǒng),這種系統(tǒng)的程序結(jié)構(gòu)一般可以抽象為如圖1.3(a)所示結(jié)構(gòu)。前臺程序通常是中斷服務(wù)子程序,而后臺通常是一個無限循環(huán)程序,程序中各功能模塊之間的交叉、耦合比較緊密,分解起來比較困難,程序結(jié)構(gòu)很復(fù)雜。這種模式的程序設(shè)計常常是串行的,開發(fā)周期很長,不利于軟件的工程化設(shè)計,但有需求系統(tǒng)資源少、適合小程序設(shè)計等優(yōu)點。基于RTOS支持的系統(tǒng),其程序結(jié)構(gòu)通常如圖1.3(b)所示,程序中的各功能模塊可以很容易地分解為各自獨立的任務(wù),任務(wù)與任務(wù)之間的通信與控制可以通過操作系統(tǒng)來實現(xiàn),程序結(jié)構(gòu)十分簡單。程序設(shè)計可以采用并行開發(fā)模式,非常適合于大規(guī)模、工程化的程序設(shè)計。缺點是操作系統(tǒng)需要占用一部分資源。圖1.3嵌入式系統(tǒng)的兩種程序結(jié)構(gòu)1.2.3硬件抽象層
硬件抽象層隱藏特定平臺的硬件接口細(xì)節(jié),為操作系統(tǒng)提供虛擬硬件平臺,使其具有硬件無關(guān)性,可在多種平臺上進(jìn)行移植。
在嵌入式系統(tǒng)中,硬件抽象層多以BSP(BoardSupportPackage,板級支持包)的形式實現(xiàn),它完成系統(tǒng)上電后最初的硬件和軟件初始化,并對底層硬件進(jìn)行封裝,使得操作系統(tǒng)不再面對具體的操作。BSP包括了系統(tǒng)中大部分與硬件聯(lián)系緊密的軟件模塊,如相關(guān)底層硬件的初始化與配置、數(shù)據(jù)的輸入/輸出操作等功能。關(guān)于BSP還存在幾種不同的理解:
(1)?BSP是操作系統(tǒng)的驅(qū)動程序。最著名例子就是風(fēng)河系統(tǒng)公司,它傾向于這種理解。
(2)一些嵌入式系統(tǒng)的供應(yīng)商提供的驅(qū)動程序也常稱為BSP。
(3)?BSP是板級開發(fā)工具,因為在某些BSP中往往還包括了程序編輯器、編譯連接器、嵌入式操作系統(tǒng)、底層支持庫等。
一般嵌入式操作系統(tǒng)的開發(fā)者常常將BSP理解為HAL,本書采用這樣的理解。在絕大多數(shù)的嵌入式系統(tǒng)中,BSP是一個不可或缺的組成部分,操作系統(tǒng)啟動以前的初始化工作主要由BSP完成。盡管目前沒有統(tǒng)一的定義,但其主要功能一般可以歸納為初始化和設(shè)備驅(qū)動,包括如下內(nèi)容。
(1)片級初始化。片級初始化主要對CPU進(jìn)行初始化,包括設(shè)置CPU的存儲器地址范圍、堆棧指針、程序指針、數(shù)據(jù)寄存器、控制寄存器、端口輸入/輸出模式、時鐘頻率設(shè)置、設(shè)置中斷等。片級初始化的過程就是把CPU從上電時的默認(rèn)狀態(tài)逐步設(shè)置成系統(tǒng)所要求的工作狀態(tài)。這個過程只包含對硬件的初始化。
(2)板級初始化。板級初始化主要對CPU外部其它硬件設(shè)備進(jìn)行初始化,為隨后的操作系統(tǒng)初始化和應(yīng)用程序的運行建立條件,如配置程序的數(shù)據(jù)結(jié)構(gòu)和參數(shù)等。這個過程包含對硬件和軟件的初始化。
(3)操作系統(tǒng)初始化。操作系統(tǒng)初始化主要為軟件系統(tǒng)提供一個實時多任務(wù)的運行環(huán)境。在這個過程中,BSP把嵌入式CPU的控制權(quán)轉(zhuǎn)交給嵌入式操作系統(tǒng),由操作系統(tǒng)完成余下的初始化操作,如加載和初始化與硬件無關(guān)的設(shè)備驅(qū)動程序,建立系統(tǒng)內(nèi)存區(qū),加載并初始化網(wǎng)絡(luò)系統(tǒng)、文件系統(tǒng)等。最后,操作系統(tǒng)創(chuàng)建應(yīng)用程序環(huán)境,并將控制權(quán)交給應(yīng)用程序的入口。操作系統(tǒng)初始化不是BSP的主要工作,而是由BSP發(fā)起的,BSP設(shè)計的關(guān)鍵主要在于片級初始化和板級初始化。
1.3嵌入式系統(tǒng)的基本設(shè)計方法
目前,嵌入式系統(tǒng)設(shè)計流程模型有很多,如瀑布模型、快速原型模型、螺旋模型、噴泉模型、智能模型、混合模型、增量模型、WINWIN模型、并行開發(fā)模型、基于體系結(jié)構(gòu)的開發(fā)模型、基于構(gòu)建的開發(fā)模型和XP方法等等,設(shè)計者可以根據(jù)設(shè)計對象復(fù)雜度和個人愛好,靈活地選擇不同的系統(tǒng)設(shè)計方法。一般地,嵌入式系統(tǒng)可以采用自頂向下的方法,從對系統(tǒng)最抽象的描述開始,一步一步地推進(jìn)到細(xì)節(jié)內(nèi)容;也可以采用自底向上的設(shè)計方法,從系統(tǒng)的各個細(xì)節(jié)內(nèi)容反推,最后將整個系統(tǒng)集成起來。在實際設(shè)計的過程中,自頂向下和自底向上的設(shè)計方法常常交叉使用。本節(jié)將采用自頂向下的設(shè)計方法,以一種數(shù)字兆歐表的設(shè)計為例,詳細(xì)描述嵌入式系統(tǒng)設(shè)計的基本流程。如圖1.4所示,設(shè)計一般可分為四個階段,第一階段是總體設(shè)計階段,第二階段是軟/硬件詳細(xì)設(shè)計階段,第三階段是系統(tǒng)集成階段,最后是系統(tǒng)測試階段。圖1.4基本流程1.3.1總體設(shè)計
總體設(shè)計是系統(tǒng)設(shè)計的第一個階段,是整個設(shè)計的奠基石。其任務(wù)是確定設(shè)計目標(biāo),也就是確定做什么、關(guān)鍵技術(shù)是什么,而不是確定如何做。這一階段的任務(wù)常常通過如下幾個過程來實現(xiàn)。
首先是需求分析,收集系統(tǒng)的非形式描述。系統(tǒng)的需求一般分功能性需求和非功能性需求兩方面。功能性需求是系統(tǒng)的基本功能,如數(shù)據(jù)打印或顯示、輸入/輸出接口、控制方式、操作方式等;非功能性需求包括系統(tǒng)性能、成本、功耗、體積、重量等因素。為了使需求分析的結(jié)果簡潔、直觀、易懂,一般可用表1.1的形式來描述。表1.1數(shù)字兆歐表需求分析其次是規(guī)格說明,它是對需求的提煉,比需求更精確。它應(yīng)該包含系統(tǒng)體系結(jié)構(gòu)設(shè)計所需要的足夠信息,是對需求分析中所涉及問題的進(jìn)一步細(xì)化。規(guī)格說明的主要用途是:①作為整個設(shè)計所必須遵循的指導(dǎo)原則和設(shè)計目標(biāo);②作為測試和驗收的原則。規(guī)格說明應(yīng)力求準(zhǔn)確、完整、全面、明確,不能有歧義。如果在某個特定狀況下的某些行為在規(guī)格說明中不明確,那么設(shè)計者就有可能設(shè)計出錯誤的功能;如果規(guī)格說明的全局特征不正確或者不完整,那么由該規(guī)格說明建造的整個系統(tǒng)體系結(jié)構(gòu)就很難符合現(xiàn)實的要求。例如兆歐表的設(shè)計,需要細(xì)化的規(guī)格如下:
(1)?LCD顯示的具體內(nèi)容,給出開機畫面、開機自檢顯示和測量顯示內(nèi)容等;
(2)測量響應(yīng)時間;
(3)測量精度、分辨率、靈敏度、量程等;
(4)系統(tǒng)量程控制模式,如量程等級劃分方法、量程自動分段等;
(5)系統(tǒng)功率控制模式,如多少時間內(nèi)自動關(guān)機;
(6)系統(tǒng)使用的適用環(huán)境等。通過規(guī)格說明,可以得出更加細(xì)化的系統(tǒng)功能和技術(shù)指標(biāo)如下。
(1)液晶顯示屏:LMS0192,160?×?64點陣;
(2)測量響應(yīng)時間:≤2s;
(3)測量及分段方式:自動、3擋(0~9MΩ、9~99MΩ、99~999MΩ);
(4)測量精度:每擋滿刻度值?×±2%;
(5)分辨率:每段滿刻度值?×1%;
(6)靈敏度:100kΩ;
(7)功率控制模式:30s無測量自動關(guān)機;
(8)適用環(huán)境:工作溫度為-20~45℃,相對濕度為95%。再次是關(guān)鍵技術(shù)分析。關(guān)鍵技術(shù)分析是系統(tǒng)設(shè)計中最重要的一個環(huán)節(jié)。它是從需求分析和規(guī)格說明中提煉出來的,主要描述如何保障實現(xiàn)關(guān)鍵功能指標(biāo)的具體理論方法。例如,對一般的測量系統(tǒng),主要的技術(shù)指標(biāo)是測量精度、分辨率和靈敏度。在本例系統(tǒng)的設(shè)計中,首先查找資料,總結(jié)當(dāng)前電阻測量有哪幾種方法,各種測量方法有何優(yōu)缺點,然后再選擇一種合適的測量方法,最后根據(jù)選定的測量方法從理論上分析計算測量精度、分辨率和靈敏度如何保障。解決關(guān)鍵技術(shù)的一般流程如圖1.5所示。圖1.5解決關(guān)鍵技術(shù)的一般流程最后是體系結(jié)構(gòu)設(shè)計。體系結(jié)構(gòu)是總體設(shè)計中的一個計劃,它根據(jù)需求描述、規(guī)格說明和關(guān)鍵技術(shù)分析,來選定整個系統(tǒng)設(shè)計的基本構(gòu)架及系統(tǒng)基本組件。一般嵌入式系統(tǒng)的結(jié)構(gòu)可分為四層,即硬件環(huán)境層、硬件抽象層、操作系統(tǒng)層和應(yīng)用軟件層。
首先可以從硬件環(huán)境層入手,當(dāng)然設(shè)計硬件環(huán)境時,也必須綜合軟件環(huán)境的因素。硬件方面需要考慮的問題如下:
(1)嵌入式CPU的選擇,選擇CPU的時候應(yīng)該考慮CPU的資源是否能夠滿足系統(tǒng)的需求,如RAM、ROM的容量是否滿足操作系統(tǒng)及應(yīng)用軟件的需求,中斷源、時鐘、外設(shè)、I/O口的數(shù)量等,然后還要考慮CPU的價格、是否容易購買、是否容易開發(fā)、是否比較容易得到技術(shù)支持等;
(2)外圍芯片的選擇;
(3)系統(tǒng)存儲器的配置;
(4)系統(tǒng)內(nèi)部和外部總線的選擇;
(5)模擬器件的選擇;
(6)顯示器件的選擇;
(7)電源的選擇。
然后是確定軟件的配置問題。在軟件方面常需要考慮的問題如下:
(1)操作系統(tǒng)的選擇;
(2)需要編寫哪些軟件模塊;
(3)是否需要數(shù)據(jù)庫的支持。
軟/硬件環(huán)境選擇完畢后,就可以設(shè)計系統(tǒng)的軟/硬件結(jié)構(gòu)框圖了。1.3.2軟/硬件詳細(xì)設(shè)計
當(dāng)上述過程完成以后,就可以根據(jù)所選定的軟/硬件模塊進(jìn)行詳細(xì)設(shè)計了。為了縮短設(shè)計開發(fā)周期,軟件和硬件的詳細(xì)設(shè)計過程可以同時展開。對于初學(xué)者來說,各個軟/硬件模塊可以采用單獨設(shè)計、單獨調(diào)試的方法進(jìn)行,每個模塊都調(diào)試成功后再進(jìn)行系統(tǒng)聯(lián)調(diào)。而對熟練的開發(fā)者來說,就另當(dāng)別論了。1.3.3系統(tǒng)集成
當(dāng)各個軟/硬件組件都設(shè)計完畢后,還要將它們合并到一起,得到一個完整的系統(tǒng),這樣才能運行。當(dāng)然,這個階段并不是僅僅把所有的東西簡單地聯(lián)結(jié)在一起,而是通過系統(tǒng)集成進(jìn)行調(diào)試,進(jìn)而發(fā)現(xiàn)錯誤并及時修改錯誤。這階段的測試與調(diào)試主要是功能性的,即測試電路是否正常工作、軟件是否正常運行。在設(shè)計中,一次就成功的例子是很少的,往往需要反復(fù)多次,特別是開發(fā)設(shè)計大的系統(tǒng)更是這樣。測試的主要方法可以按階段組件架構(gòu)進(jìn)行,這樣可能更容易發(fā)現(xiàn)和識別簡單的錯誤。只有在早期修正這些簡單的錯誤,才能在以后的系統(tǒng)測試中發(fā)現(xiàn)那些只有在系統(tǒng)高負(fù)荷時才能確定的、比較復(fù)雜或是含混的錯誤。必須確保在體系結(jié)構(gòu)和各構(gòu)件設(shè)計階段,盡可能容易地按階段組裝系統(tǒng)和相對獨立地測試系統(tǒng)功能。1.3.4系統(tǒng)測試
一般地,在系統(tǒng)集成階段發(fā)現(xiàn)的錯誤往往都屬于簡單的、單元性的錯誤,系統(tǒng)集成成功表明系統(tǒng)軟/硬件流程是可以正常執(zhí)行的,但并不一定表示能夠完全符合設(shè)計規(guī)格的要求。系統(tǒng)測試階段主要是進(jìn)行詳細(xì)技術(shù)規(guī)格的測試,例如測試兆歐表的精度、分辨率、靈敏度、功耗等。這些指標(biāo)在系統(tǒng)集成階段一般是不測試的,只有系統(tǒng)完善后才能進(jìn)行有效的測試。系統(tǒng)測試前必須做好準(zhǔn)備、寫出詳細(xì)的測試方案,包括測試儀器、測試電路原理、測試的詳細(xì)步驟等。 1.4嵌入式操作系統(tǒng)概述
1.4.1嵌入式操作系統(tǒng)的發(fā)展歷程
嵌入式操作系統(tǒng)是嵌入式系統(tǒng)極為重要的組成部分,通常包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等。嵌入式操作系統(tǒng)具有通用操作系統(tǒng)的基本特點,如能夠有效管理越來越復(fù)雜的系統(tǒng)資源;能夠把硬件虛擬化,使開發(fā)人員從繁忙的驅(qū)動程序移植和維護(hù)中解脫出來;能夠提供庫函數(shù)、驅(qū)動程序、工具集以及應(yīng)用程序。與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實時高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的特點。嵌入式操作系統(tǒng)伴隨著嵌入式系統(tǒng)的發(fā)展經(jīng)歷了四個比較明顯的階段。第一階段:無操作系統(tǒng)的嵌入算法階段,通過匯編語言編程對系統(tǒng)進(jìn)行直接控制,運行結(jié)束后清除內(nèi)存。系統(tǒng)結(jié)構(gòu)和功能都相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶接口,比較適合于各類專用領(lǐng)域。
第二階段:以嵌入式CPU為基礎(chǔ)、簡單操作系統(tǒng)為核心的嵌入式系統(tǒng)。CPU種類繁多,通用性比較差;系統(tǒng)開銷小,效率高;一般配備系統(tǒng)仿真器,操作系統(tǒng)具有一定的兼容性和擴展性;應(yīng)用軟件較專業(yè),用戶界面不夠友好;操作系統(tǒng)主要用來控制系統(tǒng)負(fù)載以及監(jiān)控應(yīng)用程序運行。第三階段:通用的嵌入式實時操作系統(tǒng)階段。以嵌入式操作系統(tǒng)為核心的嵌入式系統(tǒng)能運行于各種類型的微處理器上,兼容性好;內(nèi)核精小、效率高,具有高度的模塊化和擴展性;具備文件和目錄管理、設(shè)備支持、多任務(wù)、網(wǎng)絡(luò)支持、圖形窗口以及用戶界面等功能;具有大量的應(yīng)用程序接口;嵌入式應(yīng)用軟件豐富。第四階段:以Internet為標(biāo)志的嵌入式實時操作系統(tǒng)開始向網(wǎng)絡(luò)操作系統(tǒng)方向發(fā)展,這是一個正在迅速發(fā)展的階段。目前大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,但隨著Internet的發(fā)展以及Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等結(jié)合得日益密切,嵌入式設(shè)備與Internet的結(jié)合將代表著嵌入式技術(shù)的真正未來。1.4.2嵌入式實時操作系統(tǒng)的定義
1.操作系統(tǒng)的定義
操作系統(tǒng)(OperatingSystem,OS)是計算機系統(tǒng)中負(fù)責(zé)支撐應(yīng)用程序運行環(huán)境以及用戶操作環(huán)境的系統(tǒng)軟件,同時也是計算機系統(tǒng)的核心與基石。它的職責(zé)通常是合理地組織計算機工作流程,控制程序的執(zhí)行,對硬件直接進(jìn)行監(jiān)管,實現(xiàn)對各種計算資源(如內(nèi)存、處理器時鐘等)的管理,提供諸如作業(yè)管理之類的面向應(yīng)用程序的服務(wù)等。操作系統(tǒng)的理論是計算機科學(xué)中一個古老而又活躍的分支,而操作系統(tǒng)的設(shè)計與實現(xiàn)則是軟件工業(yè)的基礎(chǔ)與核心。操作系統(tǒng)實際上是一個計算機系統(tǒng)中硬、軟件資源的總指揮部,主要有兩方面的作用:
(1)管理系統(tǒng)中的各種資源,包括硬件資源和軟件資源;
(2)為用戶提供良好的界面。
操作系統(tǒng)位于底層硬件與用戶應(yīng)用程序之間,是兩者溝通的橋梁。用戶可以通過操作系統(tǒng)的用戶界面輸入命令。操作系統(tǒng)則對命令進(jìn)行解釋,驅(qū)動硬件設(shè)備,實現(xiàn)用戶要求。操作系統(tǒng)分為如下四大部分:
(1)驅(qū)動程序:最底層的、直接控制和監(jiān)視各類硬件的部分。其職責(zé)是隱藏硬件的具體細(xì)節(jié),并向其它部分提供一個抽象的、通用的接口。
(2)內(nèi)核:操作系統(tǒng)最核心的部分,通常運行在最高特權(quán)級,負(fù)責(zé)提供基礎(chǔ)性、結(jié)構(gòu)性的功能。
(3)支承庫:也稱“接口庫”,是一系列特殊的程序庫。其職責(zé)在于把系統(tǒng)所提供的基本服務(wù)包裝成應(yīng)用程序所能使用的編程接口。支承庫是最靠近應(yīng)用程序的部分。
(4)外圍:操作系統(tǒng)中除以上三類之外的所有其它部分,通常是用于提供特定高級服務(wù)的部件。例如,微內(nèi)核結(jié)構(gòu)中的大部分系統(tǒng)服務(wù)以及UNIX/Linux中的各種守護(hù)進(jìn)程通常都被劃歸此列。目前,用于通用計算機上的操作系統(tǒng)主要有兩個家族:類UNIX家族和微軟Windows家族。嵌入式系統(tǒng)使用的操作系統(tǒng)多種多樣,并且很多和Windows和UNIX都沒有直接的聯(lián)系。
2.嵌入式實時操作系統(tǒng)的定義
1)實時系統(tǒng)的定義
一般地說,實時系統(tǒng)是指系統(tǒng)在限定的時間內(nèi)能夠提供所需要的服務(wù)水平的系統(tǒng)。實時系統(tǒng)根據(jù)對于實時性要求的不同,可以分為軟實時和硬實時兩種類型。軟實時系統(tǒng)要求各個任務(wù)運行得越快越好,但并不苛求任務(wù)運行的時限。如果系統(tǒng)特定的時序得不到滿足,只會引起性能的嚴(yán)重下降,并不產(chǎn)生嚴(yán)重后果。
硬實時系統(tǒng)不僅要求各個任務(wù)執(zhí)行無誤,而且要求執(zhí)行準(zhǔn)時,如果特定的時序得不到滿足,將會引起災(zāi)難性的后果。
軟實時系統(tǒng)和硬實時系統(tǒng)又分別稱為弱實時系統(tǒng)和強實時系統(tǒng),其特性對比如圖1.6所示。圖1.6兩種實時系統(tǒng)特性對比
2)實時系統(tǒng)的重要特征
在實時系統(tǒng)中,系統(tǒng)的正確性不僅取決于系統(tǒng)計算結(jié)果的正確性,而且還取決于正確結(jié)果產(chǎn)生的時間(在分時系統(tǒng)中,只要滿足前者即可),即時序。如果出現(xiàn)時序和邏輯的偏差,將會引起嚴(yán)重的后果。
高速系統(tǒng)往往能完成實時運算,但高速系統(tǒng)不等于實時系統(tǒng),實時系統(tǒng)強調(diào)的不僅僅是運算速度快,更多的是運算時序和邏輯的準(zhǔn)確、及時。因此,為了滿足運算的準(zhǔn)確和及時,系統(tǒng)行為的可預(yù)測性和可確定性是實時系統(tǒng)的重要特征。大多數(shù)實時系統(tǒng)是軟、硬兩種實時系統(tǒng)的結(jié)合,它們的應(yīng)用涵蓋廣泛的領(lǐng)域,而多數(shù)實時系統(tǒng)又是嵌入式的。這意味著計算機建在系統(tǒng)內(nèi)部,用戶看不到,例如汽車中的安全氣囊、防抱死系統(tǒng)(ABS)、衛(wèi)星系統(tǒng)、噴氣發(fā)動機控制系統(tǒng)、數(shù)字電視、數(shù)碼相機等。
3)嵌入式操作系統(tǒng)的定義
實時操作系統(tǒng)泛指所有具有一定實時資源調(diào)度和通信能力,能支持實時控制系統(tǒng)工作的操作系統(tǒng)。嵌入式操作系統(tǒng)(Real-TimeEmbeddedOperatingSystem,RTOS或EOS)是指支持嵌入式系統(tǒng)工作的操作系統(tǒng)。大多數(shù)嵌入式系統(tǒng)都是實時系統(tǒng),而且多是硬實時多任務(wù)系統(tǒng),這就要求相應(yīng)的嵌入式操作系統(tǒng)也必須是實時操作系統(tǒng)。所以通常認(rèn)為實時操作系統(tǒng)就是嵌入式操作系統(tǒng),有時也統(tǒng)稱為嵌入式實時操作系統(tǒng)。嵌入式操作系統(tǒng)是嵌入式系統(tǒng)極為重要的組成部分,通常包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等。目前,嵌入式操作系統(tǒng)的品種較多,據(jù)統(tǒng)計,僅用于信息電器的嵌入式操作系統(tǒng)就有40種左右,其中較為流行的主要有WindowsCE、PalmOS、Real-TimeLinux、VxWorks、μC/OS-Ⅱ、pSOS、PowerTV以及Microware公司的OS-9等。與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實時高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的特點。實時操作系統(tǒng)作為操作系統(tǒng)的一個重要分支已成為研究的一個熱點,主要探討實時多任務(wù)調(diào)度算法和可調(diào)度性、死鎖解除等問題。
3.嵌入式操作系統(tǒng)的結(jié)構(gòu)與組成
通常嵌入式操作系統(tǒng)由內(nèi)核(Kernel)、文件系統(tǒng)、存儲器管理系統(tǒng)、I/O管理系統(tǒng)、設(shè)備驅(qū)動程序、網(wǎng)絡(luò)協(xié)議棧和標(biāo)準(zhǔn)化瀏覽器等部分組成,如圖1.7所示。圖1.7嵌入式操作系統(tǒng)結(jié)構(gòu)與組成內(nèi)核是多任務(wù)系統(tǒng)中的核心部分,提供多任務(wù),為多任務(wù)分配CPU時間,提供任務(wù)管理與調(diào)度、時間管理、任務(wù)間通信和同步、內(nèi)存管理等重要服務(wù),并作為系統(tǒng)調(diào)用提供給任務(wù)的使用者。內(nèi)核的基本任務(wù)是任務(wù)調(diào)度和任務(wù)間通信。實時內(nèi)核主要有可剝奪型內(nèi)核和不可剝奪型內(nèi)核兩種。內(nèi)核允許將系統(tǒng)分成多個獨立的任務(wù),每個任務(wù)處理程序的一部分,從而簡化系統(tǒng)的設(shè)計過程。一個好的實時內(nèi)核需要具備以下功能和特點:①任務(wù)管理;②任務(wù)間可以進(jìn)行同步和通信;③實時時鐘服務(wù);④中斷管理服務(wù);⑤操作系統(tǒng)的行為是可知的和可預(yù)測的。
操作系統(tǒng)行為的可知性和可預(yù)測性是實時操作系統(tǒng)的本質(zhì)特征。系統(tǒng)的實時性強調(diào)的不是系統(tǒng)運行速率的快和慢,而是強調(diào)能否在規(guī)定的時間內(nèi)完成所需完成的任務(wù)。因此,只有每個行為執(zhí)行的時間都能預(yù)測,才能使系統(tǒng)設(shè)計的實時性指標(biāo)得到可靠的保證。1.4.3評價嵌入式操作系統(tǒng)的幾個重要指標(biāo)
一個實時操作系統(tǒng)的實時性能的主要評測標(biāo)準(zhǔn)和指標(biāo)包括系統(tǒng)響應(yīng)時間、任務(wù)切換時間、中斷延遲、中斷響應(yīng)時間、調(diào)度抖動、調(diào)度延遲等,具體的含義如下:
(1)系統(tǒng)響應(yīng)時間(SystemResponseTime)是系統(tǒng)發(fā)出處理要求到系統(tǒng)給出應(yīng)答信號的時間。這是RTOS一個比較綜合的性能指標(biāo)。
(2)任務(wù)切換時間(Context-SwitchingTime)指運行多任務(wù)時,系統(tǒng)發(fā)生任務(wù)切換、保存和恢復(fù)CPU寄存器內(nèi)容的時間。任務(wù)切換所需要的時間取決于CPU有多少寄存器要出入棧。實時內(nèi)核的性能不應(yīng)該以每秒鐘能做多少次任務(wù)切換來評價。
(3)中斷延遲(InterruptLatency)是從硬件中斷發(fā)生到開始執(zhí)行中斷處理程序第一條指令所用的時間,也就是從中斷發(fā)生到中斷跳轉(zhuǎn)指令執(zhí)行完畢之間的這段時間。
(4)中斷響應(yīng)時間定義為從中斷發(fā)生起到開始執(zhí)行中斷用戶處理程序的第一條指令所用的時間。換句話說,中斷響應(yīng)是從中斷發(fā)生到剛剛開始處理異步事件之間的這段時間,它包括開始處理這個中斷前的全部開銷。
(5)調(diào)度抖動(Jitter)是指一個周期性任務(wù)的周期間隔的變化。通常,實時應(yīng)用以周期性任務(wù)的形式被調(diào)度,并且在硬件定時器產(chǎn)生一個中斷喚醒調(diào)度器時開始執(zhí)行。雖然定時器中斷可能發(fā)生得跟時鐘一樣有規(guī)律,但是許多不確定因素會導(dǎo)致調(diào)度器的運行時間變得不確定,導(dǎo)致接下來的任務(wù)的開始時間就會相應(yīng)地變化,這個影響就叫調(diào)度抖動。抖動跟具體的應(yīng)用緊密相關(guān)。
(6)調(diào)度器延遲是指進(jìn)行任務(wù)調(diào)度時,調(diào)度器所花費的時間。精簡的調(diào)度程序和較短的任務(wù)切換間將會獲得較好的實時性能。1.4.4嵌入式實時操作系統(tǒng)的特點
1.使用嵌入式操作系統(tǒng)的必要性
早期嵌入式系統(tǒng)的硬件設(shè)備一般都很簡單,軟件的編程和調(diào)試工具也很原始,程序大都采用宏匯編語言,調(diào)試起來較為麻煩,應(yīng)用軟件與系統(tǒng)硬件密切相關(guān),一般不講移植,每個系統(tǒng)軟件都要從頭開發(fā)。隨著嵌入式技術(shù)逐步地向深層次發(fā)展,系統(tǒng)越來越復(fù)雜,軟件開發(fā)量越來越大,應(yīng)用軟件從頭開發(fā)、逐行編寫的方式效率太低,已經(jīng)無法滿足高效率開發(fā)的需求。于是,人們提出了大規(guī)模地移植已有程序、軟件開發(fā)工程化的思想,為了實現(xiàn)這種思想,人們想到像使用通用計算機平臺一樣,使應(yīng)用程序從硬件的關(guān)聯(lián)中脫離出來,把硬件驅(qū)動交給專用的程序來完成,同時還需要降低程序間的耦合度、解決程序之間相互通信問題,這些工作都可以由操作系統(tǒng)來完成。
首先,嵌入式操作系統(tǒng)的應(yīng)用提高了系統(tǒng)的可靠性。在一個性能良好的控制系統(tǒng)中,出于安全方面的考慮,要求系統(tǒng)至少不能崩潰,進(jìn)一步地還要求系統(tǒng)具有自愈能力。這不僅對硬件電路的可靠性提出了很高的要求,而且還要求在軟件設(shè)計上盡可能地減少安全漏洞和不可靠的隱患。過去,在前后臺系統(tǒng)模式下,常常采用串行編程的方法設(shè)計軟件,程序模塊之間的耦合度往往較高,一旦系統(tǒng)遇到強干擾,就會使運行的程序產(chǎn)生異常、出錯、跑飛,甚至死循環(huán),致使系統(tǒng)崩潰。而在嵌入式操作系統(tǒng)管理的系統(tǒng)中,任務(wù)與任務(wù)之間的通信和控制都通過內(nèi)核來實現(xiàn),相互之間很少有直接的聯(lián)系,在一般情況下,系統(tǒng)受到干擾后可能只是引起若干任務(wù)中的一個被破壞,而這個被破壞的任務(wù)可以通過專門的系統(tǒng)監(jiān)控任務(wù)對其進(jìn)行修復(fù),如把有問題的任務(wù)刪除掉等。從理論上講,在前后臺系統(tǒng)中也可以設(shè)計專門的系統(tǒng)監(jiān)控任務(wù)來監(jiān)控系統(tǒng),但是這在實現(xiàn)上往往是很困難的,軟件工作量巨大。引入嵌入式操作系統(tǒng)后,這種監(jiān)控程序的編寫就要簡單得多了,因為很多業(yè)務(wù)都可以交給操作系統(tǒng)來管理。其次,提高了開發(fā)效率,縮短了開發(fā)周期。在嵌入式實時操作系統(tǒng)環(huán)境下,開發(fā)一個復(fù)雜的應(yīng)用程序,通常可以按照軟件工程中的解耦原則將整個程序分解為多個任務(wù)模塊。每個任務(wù)模塊的調(diào)試、修改幾乎不影響其他模塊。商業(yè)軟件一般都提供了良好的多任務(wù)調(diào)試環(huán)境。再次,嵌入式實時操作系統(tǒng)為并發(fā)執(zhí)行程序提供了可能,充分挖掘了CPU特別是高性能CPU的潛能。嵌入式操作系統(tǒng)本來就是為運行多用戶、多任務(wù)操作系統(tǒng)而設(shè)計的,特別適于運行多任務(wù)實時系統(tǒng)。一方面多任務(wù)并發(fā)執(zhí)行可以極大地提高系統(tǒng)運行效率,降低整體成本;另一方面,多任務(wù)設(shè)計有利于提高系統(tǒng)的可靠性和穩(wěn)定性,使其更容易做到不崩潰。例如,CPU運行狀態(tài)分為系統(tǒng)態(tài)和用戶態(tài)。將系統(tǒng)堆棧和用戶堆棧分開,以及實時地給出CPU的運行狀態(tài)等,允許用戶在系統(tǒng)設(shè)計中從硬件和軟件兩方面對實時內(nèi)核的運行實施保護(hù)。在前后臺模式環(huán)境下,這是一件不可想象的事情。從某種意義上說,沒有操作系統(tǒng)的計算機(裸機)是沒有用的。在嵌入式應(yīng)用中,只有把CPU嵌入到系統(tǒng)中,同時又把操作系統(tǒng)嵌入進(jìn)去,才是真正的計算機嵌入式應(yīng)用。開發(fā)人員一旦使用操作系統(tǒng),就會對操作系統(tǒng)產(chǎn)生很大的依賴性。
使用嵌入式實時操作系統(tǒng)最大的缺點是增加了額外的ROM/RAM開銷、2%~5%的CPU額外負(fù)荷以及內(nèi)核的費用。
2.嵌入式操作系統(tǒng)的特點
與通用操作系統(tǒng)相比,嵌入式操作系統(tǒng)具有以下一些特點:
(1)體積小。嵌入式系統(tǒng)有別于一般的計算機處理系統(tǒng),它不具備大容量的存儲介質(zhì),而大多使用閃存和RAM作為存儲介質(zhì)。這就要求嵌入式操作系統(tǒng)只能存儲和運行在有限的空間中,不能使用虛擬內(nèi)存,中斷的使用也受到限制。因此,嵌入式操作系統(tǒng)必須結(jié)構(gòu)緊湊,體積微小。
(2)實時性強。大多數(shù)嵌入式操作系統(tǒng)工作在實時性要求很高的場合。比如,用于控制火箭發(fā)動機的嵌入式系統(tǒng),它所發(fā)出的指令不僅要求速度快,而且對多個發(fā)動機之間的時序要求也非常嚴(yán)格,否則就會失之毫厘,謬以千里。而一般的通用操作系統(tǒng)主要用于數(shù)值求解,所接受的指令主要是鍵盤輸入和鼠標(biāo)點擊,沒有很嚴(yán)格的時間性要求。即使我們所開發(fā)的并不是那么生命攸關(guān),或者控制這樣那樣的關(guān)鍵任務(wù)系統(tǒng),例如洗衣機、空調(diào)、電冰箱等消費電子產(chǎn)品,但設(shè)備的高可靠性可以有效地降低維護(hù)成本,軟件運行效率高也會降低對CPU的要求,從而降低硬件成本。對于此類價格十分敏感的產(chǎn)品,實時性、可靠性仍然是非常值得重視的問題。因此,實時性強是嵌入式系統(tǒng)最大的優(yōu)點,在嵌入式軟件中最核心的莫過于嵌入式實時操作系統(tǒng)。
(3)可裁剪。首先,從硬件環(huán)境來看,通用計算機系統(tǒng)具有標(biāo)準(zhǔn)化的CPU存儲和I/O架構(gòu),而嵌入式系統(tǒng)的硬件環(huán)境只有標(biāo)準(zhǔn)化的CPU,沒有標(biāo)準(zhǔn)的存儲、I/O和顯示器單元。
其次,從應(yīng)用環(huán)境來看,通用操作系統(tǒng)面向復(fù)雜多變的應(yīng)用,而嵌入式操作系統(tǒng)面向單一設(shè)備的固定的應(yīng)用。最后,從開發(fā)界面來看,通用操作系統(tǒng)給開發(fā)者提供一個“黑箱”,讓開發(fā)者通過一系列標(biāo)準(zhǔn)的系統(tǒng)調(diào)用來使用操作系統(tǒng)的功能,而嵌入式操作系統(tǒng)試圖為開發(fā)者提供一個“白箱”,讓開發(fā)者可以自主控制系統(tǒng)的所有資源。通用系統(tǒng)研究開發(fā)的目標(biāo)是盡可能在不改變自身的前途下具有廣泛的適應(yīng)性,而應(yīng)用于嵌入式環(huán)境的RTOS,在研發(fā)的時候就必須立足于面向?qū)ο?,改變自身、開放自身,讓開發(fā)者可以根據(jù)硬件環(huán)境和應(yīng)用環(huán)境的不同而對操作系統(tǒng)進(jìn)行靈活的裁剪和配置。由于對于任何一個具體的嵌入式設(shè)備,它的功能是確定的,因此只要從原有操作系統(tǒng)中把這個特定應(yīng)用所需的功能拿來即可??刹眉粜栽谲浖こ屉A段是利用軟件配置方法實現(xiàn)軟件構(gòu)建的“即插即用”。
(4)可靠性高。在大多數(shù)情況下,嵌入式系統(tǒng)一旦開始運行就不需要人的過多干預(yù),這就要求負(fù)責(zé)系統(tǒng)管理的嵌入式操作系統(tǒng)具有較高的穩(wěn)定性和可靠性,而通用操作系統(tǒng)則無需具備這種特點。這導(dǎo)致桌面操作環(huán)境與嵌入式環(huán)境在設(shè)計思路上有重大的不同。
通用計算機的應(yīng)用環(huán)境假定應(yīng)用軟件與操作系統(tǒng)相比而言是不可靠的,而嵌入式環(huán)境假定應(yīng)用軟件與操作系統(tǒng)一樣可靠。這種設(shè)計思路對應(yīng)用開發(fā)人員提出了更高的要求,同時也要求操作系統(tǒng)自身足夠開放。通用操作系統(tǒng)比較龐大復(fù)雜,而嵌入式操作系統(tǒng)提供的資源有限,由于硬件的限制,嵌入式操作系統(tǒng)必須小巧簡捷。對于系統(tǒng)來說,組成越簡單,性能越可靠,組成越復(fù)雜,故障概率越大。局部的不足會導(dǎo)致整體的缺陷,系統(tǒng)中任何部分的不可靠都會導(dǎo)致系統(tǒng)整體的不可靠。
(5)特殊的開發(fā)調(diào)試環(huán)境。一個完整的嵌入式系統(tǒng)的集成開發(fā)環(huán)境一般需要提供的工具是編譯/連接器、內(nèi)核調(diào)試/跟蹤器和集成圖形界面開發(fā)平臺。其中的集成圖形界面開發(fā)平臺包括編輯器、調(diào)試器、軟件仿真器和監(jiān)視器等。1.4.5嵌入式操作系統(tǒng)的分類
目前,嵌入式操作系統(tǒng)總數(shù)超過150個。國外嵌入式操作系統(tǒng)已經(jīng)從簡單走向成熟。國內(nèi)嵌入式操作系統(tǒng)的研究開發(fā)有兩種類型,一類是基于國外操作系統(tǒng)二次開發(fā)完成的,如海信集團(tuán)的基于WindowsCE的機頂盒系統(tǒng);另一類是中國自主開發(fā)的嵌入式操作系統(tǒng),如凱思集團(tuán)公司自主開發(fā)的嵌入式操作系統(tǒng)HopenOS(女媧計劃)、北京科銀京成技術(shù)有限公司開發(fā)的DeltaOS(道系統(tǒng))等。從應(yīng)用面來分類,嵌入式操作系統(tǒng)可分為面向低端設(shè)備的嵌入式操作系統(tǒng)和面向高端設(shè)備的嵌入式操作系統(tǒng)兩類。低端設(shè)備如各種工業(yè)控制系統(tǒng)、計算機外設(shè)、民用消費品的微波爐、洗衣機、冰箱等,其典型的操作系統(tǒng)是μC/OS-Ⅱ。高端設(shè)備如信息化家電、掌上電腦、機頂盒、WAP手機、路由器,常用的操作系統(tǒng)有WindowsCE、Linux等。
從專業(yè)化程度來分類,嵌入式操作系統(tǒng)可分為通用型嵌入式操作系統(tǒng)和專用型嵌入式操作系統(tǒng)兩類。常見的通用型嵌入式操作系統(tǒng)有Linux、VxWorks、WindowsCE、μC/OS-Ⅱ等。常用的專用型嵌入式操作系統(tǒng)有SmartPhone、PocketPC、Symbian等。按實時性要求來分類,嵌入式操作系統(tǒng)可分為強(硬)實時性嵌入式操作系統(tǒng)和弱(軟)實時性嵌入式操作系統(tǒng)兩類。強實時性嵌入式操作系統(tǒng)主要面向控制、通信等領(lǐng)域,如WindRiver公司的VxWorks、ISI的pSOS、QNX系統(tǒng)軟件公司的QNX、ATI的Nucleus等。弱實時性嵌入式操作系統(tǒng)主要面向消費類電子產(chǎn)品(包括PDA、移動電話、機頂盒、電子書、WebPhone等),如微軟面向手機應(yīng)用的SmartPhone操作系統(tǒng)。1.4.6通用操作系統(tǒng)與嵌入式操作系統(tǒng)的區(qū)別
作為操作系統(tǒng)的一個分支,嵌入式操作系統(tǒng)具有通用操作系統(tǒng)的基本特點,但它們的區(qū)別也是很明顯的,主要表現(xiàn)在設(shè)計目標(biāo)不同、調(diào)度原則不同、內(nèi)存管理機制不同、實時性不同、穩(wěn)定性及交互性不同等幾個方面。
(1)設(shè)計目標(biāo)不同。通用操作系統(tǒng)的設(shè)計目標(biāo)是追求最大的吞吐率,強調(diào)系統(tǒng)整體性能最佳。通用操作系統(tǒng)多數(shù)由分時操作系統(tǒng)發(fā)展而來,大部分支持多用戶和多進(jìn)程。而分時操作系統(tǒng)的基本設(shè)計目標(biāo)是:盡量縮短系統(tǒng)平均響應(yīng)時間,提高系統(tǒng)的吞吐率,在單位時間內(nèi)為盡可能多的用戶提供服務(wù)。通用操作系統(tǒng)中采用的很多算法和策略技巧都體現(xiàn)了這種設(shè)計原則,但也因此喪失了系統(tǒng)行為的可確定性和可預(yù)測性。嵌入式操作系統(tǒng)除了要滿足應(yīng)用的功能需求外,更注重的是滿足應(yīng)用的各種實時性要求。而實時性目標(biāo)是采用各種算法和策略,始終保證系統(tǒng)行為的可預(yù)測性??深A(yù)測性是指在系統(tǒng)運行的任何時刻、任何情況下,嵌入式操作系統(tǒng)都能為爭奪資源(包括CPU、內(nèi)存、網(wǎng)絡(luò)帶寬等)的多個實時任務(wù)合理地分配資源,使每個實時任務(wù)的實時性要求都能得到滿足。系統(tǒng)行為的可預(yù)測性是嵌入式操作系統(tǒng)與通用操作系統(tǒng)的根本區(qū)別。
由于通用操作系統(tǒng)和嵌入式操作系統(tǒng)的基本設(shè)計原則不同,導(dǎo)致二者在資源調(diào)度策略的選擇上、操作系統(tǒng)實現(xiàn)的方法上都有較大差異。
(2)調(diào)度原則不同。通用操作系統(tǒng)為了達(dá)到最佳整體性能,其調(diào)度原則是公平法則;而嵌入式操作系統(tǒng)為了保證系統(tǒng)的實時性要求,多數(shù)采用的是基于優(yōu)先級的可剝奪的調(diào)度策略。
(3)內(nèi)存管理機制不同。通用計算機系統(tǒng)為了存儲和運行海量程序,通常具有海量硬盤和大容量的內(nèi)存。為了高效率地運行程序,通用操作系統(tǒng)使用了虛擬內(nèi)存的技術(shù),為用戶提供一個功能強大的虛擬機,但因虛存機制引起的缺頁掉頁現(xiàn)象會給系統(tǒng)帶來不確定性。而嵌入式系統(tǒng)一般沒有硬盤,操作系統(tǒng)和應(yīng)用程序大多一起固化在ROM中,內(nèi)存資源也很有限,因此嵌入式實時操作系統(tǒng)很少或有限地使用虛存技術(shù)。
(4)穩(wěn)定性及交互性不同。從硬件環(huán)境上看,通用操作系統(tǒng)針對的通用計算機系統(tǒng),具有標(biāo)準(zhǔn)化的CPU、存儲和I/O架構(gòu)。為了最大限度地兼容各種軟/硬件產(chǎn)品,通用操作系統(tǒng)一般都要求面面俱到、具有廣泛的適應(yīng)性,而且通用操作系統(tǒng)通過屏蔽底層資源,為開發(fā)者提供了一系列標(biāo)準(zhǔn)系統(tǒng)調(diào)用來使用操作系統(tǒng),所以通用操作系統(tǒng)一般都具有人機友好的開發(fā)界面。嵌入式操作系統(tǒng)的硬件資源則相對比較苛刻,通常沒有標(biāo)準(zhǔn)化的存儲、I/O和顯示器架構(gòu),內(nèi)存容量一般都比較小,能源供給常常也很有限。要在如此緊張的資源下完成復(fù)雜的功能,就要求操作系統(tǒng)必須盡量小巧、高效。而且對于嵌入式系統(tǒng)的開發(fā)者來說,通常都能夠掌握系統(tǒng)的全部資源,具有自主進(jìn)行控制使用全部資源的能力,所以嵌入式操作系統(tǒng)一般不提供、也無需提供開發(fā)界面。即使提供用戶界面,嵌入式操作系統(tǒng)的用戶接口一般也不提供操作命令,它通過系統(tǒng)的調(diào)用命令向用戶程序提供服務(wù),控制邏輯相對固定。嵌入式系統(tǒng)的工作過程是在高度自動化和高度專業(yè)化的前提下完成的,通常很少出現(xiàn)人工干預(yù)的情況,這就要求負(fù)責(zé)系統(tǒng)管理的嵌入式操作系統(tǒng)具有較強的穩(wěn)定性。
(5)實時性不同。通用操作系統(tǒng)一般是根據(jù)用戶利用鍵盤和鼠標(biāo)發(fā)出的命令來進(jìn)行工作的,在時序上并不十分嚴(yán)格。嵌入式操作系統(tǒng)主要是對儀器設(shè)備的動作進(jìn)行監(jiān)測控制,有很大一部分都具有嚴(yán)格的時序要求,特別是在像航空航天器那樣的關(guān)鍵任務(wù)系統(tǒng)中,實時性的要求可能達(dá)到微秒量級。在這樣的應(yīng)用環(huán)境中,非實時的通用操作系統(tǒng)無法勝任。
1.5μC/OS-Ⅱ操作系統(tǒng)概述
μC/OS-Ⅱ是1992年美國人JeanLabrosse編寫的適合于小巧控制器的嵌入式實時操作系統(tǒng),應(yīng)用面覆蓋了諸多領(lǐng)域,如照相機、醫(yī)療器械、音響設(shè)備、發(fā)動機控制、航空器、高速公路電話系統(tǒng)、自動提款機等,其中μ是指Micro,C是指Control。2000年下半年,中國電力出版社購得μC/OS-Ⅱ一書中譯本的版權(quán),譯者是清華大學(xué)教授邵貝貝先生和他的研究生們。μC/OS-Ⅱ一進(jìn)入中國,就受到了中國嵌入式系統(tǒng)工程師、高校師生的極大關(guān)注。
μC/OS-Ⅱ是專門為單片機嵌入式系統(tǒng)應(yīng)用而設(shè)計的,主體代碼用標(biāo)準(zhǔn)的ANSIC語言編寫而成,十分易于移植。目前μC/OS-Ⅱ已經(jīng)成功地移植到了40多種CPU上,涵蓋8位、16位、32位和64位等多種機型,其中還包括了部分DSP芯片。所有的移植范例都能從網(wǎng)站上下載,移植十分容易。有的廠商在推出嵌入式芯片的同時就提供了μC/OS-Ⅱ的移植代碼,如Motorola的16位56800系列單片機。μC/OS-Ⅱ有良好應(yīng)用環(huán)境和相當(dāng)大的應(yīng)用群體,在現(xiàn)在中國的嵌入式領(lǐng)域,幾乎到處都可以見到μC/OS-Ⅱ的影子。1.5.1μC/OS-Ⅱ的特點
μC/OS-Ⅱ主要有一個內(nèi)核,只有任務(wù)管理和任務(wù)調(diào)度,無文件系統(tǒng)、界面系統(tǒng)、外設(shè)管理系統(tǒng)等。其特點是小巧、源代碼公開、注解詳細(xì)、實時性強、可移植性好、多任務(wù)、基于優(yōu)先級的可剝奪型調(diào)度。
(1)源代碼公開。許多商業(yè)實時內(nèi)核的軟件都提供源代碼,但是μC/OS-Ⅱ注解更詳盡,組織更有序,內(nèi)核結(jié)構(gòu)更清晰,工作原理更容易理解,代碼寫得干凈漂亮、和諧一致。
(2)可移植(Portable)。μC/OS-Ⅱ的絕大部分源代碼是用ANSIC編寫的,具有很強的可移植性,只有與微處理器硬件相關(guān)的那部分代碼是用匯編語言寫的,而且已經(jīng)壓到了最低限度。μC/OS-Ⅱ可以在絕大多數(shù)8位、16位、32位以至64位微處理器、微控制器、數(shù)字信號處理器上運行。μC/OS-Ⅱ移植到其它微處理器上只需要改寫很少的代碼,通常移植的全部工作只需要一兩個小時到一兩周的時間即可完成。μC/OS-Ⅱ移植的條件是:CPU必須有堆棧指針、有內(nèi)部寄存器入棧和出棧指令,使用的C編譯器必須支持內(nèi)嵌匯編(InlineAssembly)或者該C語言可擴展、可連接匯編模塊,使得關(guān)中斷、開中斷能在C語言程序中實現(xiàn)。
(3)可固化(ROMable)。μC/OS-Ⅱ是為嵌入式應(yīng)用而設(shè)計的,只要具備合適的系列軟件(C編譯、連接、下載/固化),μC/OS-Ⅱ就可以嵌入到嵌入式計算機系統(tǒng)的ROM中成為其一部分。
(4)可裁剪(Scalable)。μC/OS-Ⅱ的系統(tǒng)服務(wù)函數(shù)定義了條件編譯開關(guān)量,對不需要的服務(wù)可以通過條件編譯予以裁剪,只使用μC/OS-Ⅱ中應(yīng)用程序需要的那些系統(tǒng)服務(wù)。代碼最小可以裁剪到2KB左右,這樣就可以最大限度地減少產(chǎn)品中的μC/OS-Ⅱ所需的存儲空間(RAM和ROM)。
(5)可剝奪(Preemptive)。μC/OS-Ⅱ完全是可剝奪型的實時內(nèi)核,即已經(jīng)準(zhǔn)備就緒的高優(yōu)先級任務(wù)總是可以剝奪正在運行的低優(yōu)先級任務(wù)的CPU使用權(quán)。這種內(nèi)核的實時性比不可剝奪型內(nèi)核要好。大多數(shù)商業(yè)內(nèi)核也是可剝奪型的,μC/OS-Ⅱ在性能上和它們類似。
(6)多任務(wù)。μC/OS-Ⅱ可以管理64個任務(wù),然而目前這一版本(μC/OS-ⅡV2.52)需保留8個給μC/OS-Ⅱ。μC/OS-Ⅱ的應(yīng)用程序最多可以有56個任務(wù),賦予每個任務(wù)的優(yōu)先級必須是不同的,這意味著μC/OS-Ⅱ不支持時間片輪轉(zhuǎn)調(diào)度法(Round-RobinScheduling),該調(diào)度法適用于調(diào)度優(yōu)先級平等的任務(wù)。
(7)可確定性。μC/OS-Ⅱ的絕大部分函數(shù)的執(zhí)行時間具有可確定性,除了函數(shù)OSTimeTick()和某些事件標(biāo)志服務(wù)外,μC/OS-Ⅱ系統(tǒng)服務(wù)的執(zhí)行時間不依賴于應(yīng)用程序任務(wù)數(shù)目的多少,用戶總是能知道μC/OS-Ⅱ的函數(shù)調(diào)用與服務(wù)執(zhí)行了多長時間。
(8)任務(wù)棧。μC/OS-Ⅱ允許每個任務(wù)都有自己單獨的棧,不同的任務(wù)有不同的棧空間,而且每個棧空間的大小可以根據(jù)實際需要單獨定義,以便壓低系統(tǒng)對RAM的需求量。應(yīng)用μC/OS-Ⅱ的堆棧校驗函數(shù),可以確定每個任務(wù)到底需要多少??臻g。
(9)系統(tǒng)服務(wù)。μC/OS-Ⅱ可以提供很多系統(tǒng)服務(wù),例如信號量、互斥性信號量、事件標(biāo)志、消息郵箱、消息隊列、信號量、塊大小固定的內(nèi)存的申請與釋放及時間管理函數(shù)等。
(10)中斷管理。μC/OS-Ⅱ的中斷嵌套層數(shù)可達(dá)255層,中斷可以使正在執(zhí)行的任務(wù)暫時掛起,如果中斷使更高優(yōu)先級的任務(wù)進(jìn)入就緒態(tài),則高優(yōu)先級的任務(wù)在中斷嵌套全部退出后立即執(zhí)行。
(11)穩(wěn)定性與可靠性。μC/OS-Ⅱ是μC/OS的升級版,自1992年以來就已經(jīng)有了好幾百種商業(yè)應(yīng)用。μC/OS-Ⅱ的每一種功能、每一個函數(shù)及每一行代碼都經(jīng)過了考驗與測試。2000年7月,μC/OS-Ⅱ在一個航空項目中得到了美國聯(lián)邦航空管理局(FederalAviationAdministration)對于商用飛機、符合RTCADO-178B標(biāo)準(zhǔn)的認(rèn)證,能用于性命攸關(guān)、安全條件極為苛刻的系統(tǒng)中。1.5.2μC/OS-Ⅱ內(nèi)核文件組成
如圖1.8所示,μC/OS-Ⅱ的內(nèi)核總共有16個文件,其中11個文件與微處理器類型無關(guān),移植后無需修改,可直接使用;3個文件與CPU類型相關(guān),在移植時需要根據(jù)CPU情況進(jìn)行修改;2個文件與具體應(yīng)用有關(guān)。圖1.8μC/OS-Ⅱ內(nèi)核文件組成1.5.3如何學(xué)好μC/OS-Ⅱ
相比其它嵌入式實時操作系統(tǒng),μC/OS-Ⅱ的特點在于源代碼小、源代碼公開、有詳盡的解釋、科研和教學(xué)可免費使用。正因為其小,所以便于學(xué)習(xí)、研究、理解和掌握;也因為其小,所以更便于廣大的低端用戶和小系統(tǒng)使用。那么我們?nèi)绾螌W(xué)好μC/OS-Ⅱ呢?學(xué)習(xí)μC/OS-Ⅱ可以簡單概述為以下幾
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版遺贈撫養(yǎng)協(xié)議
- 山羊分腿騰越教案課程
- 2025年硫代硫酸鹽項目發(fā)展計劃
- 主題班會教案之《交通安全在我心中》主題班會教案
- 蔬菜供應(yīng)方案設(shè)計
- 心理輔導(dǎo)活動計劃方案書
- 租房協(xié)議模板租房合同
- 井蓋勞務(wù)合同標(biāo)準(zhǔn)文本
- 教師個人教學(xué)反思以及整改措施
- 代銷土方合同樣本
- 驅(qū)動橋畢業(yè)設(shè)計
- 2023機關(guān)公文寫作與處理PPT模板
- 基坑支護(hù)、降水及土方開挖專項施工方案
- 幼兒數(shù)字1-100字帖練習(xí)
- 細(xì)胞生物學(xué)-7細(xì)胞信號轉(zhuǎn)導(dǎo)課件
- 攪拌站安全培訓(xùn)試卷
- 茶葉市場營銷講義
- 走進(jìn)中國傳統(tǒng)節(jié)日 詳細(xì)版課件
- API SPEC 5DP-2020鉆桿規(guī)范
- 乙肝兩對半ppt課件
- 鍋爐空氣預(yù)熱器拆除安裝方案
評論
0/150
提交評論