《嵌入式系統(tǒng)原理》是嵌入式系統(tǒng)的原理性教材,作者根據(jù)多年在嵌入式領(lǐng)域中的實(shí)踐經(jīng)驗(yàn),在書(shū)中嚴(yán)選了一部分比較有代表性的實(shí)例!肚度胧较到y(tǒng)原理》的寫作宗旨是撥開(kāi)嵌入式系統(tǒng)紛繁復(fù)雜的迷霧,提煉其中的精華,系統(tǒng)性地將嵌入式系統(tǒng)的設(shè)計(jì)原理介紹給讀者,而不是聚焦于某一款具體的芯片或某一種特定的操作系統(tǒng)!肚度胧较到y(tǒng)原理》的另一個(gè)特點(diǎn)是從多角度、全方位對(duì)嵌入式系統(tǒng)進(jìn)行審視和剖析,提出并運(yùn)行一種新穎的五層結(jié)構(gòu)模型來(lái)詮釋嵌入式系統(tǒng)的內(nèi)涵和真諦。
《嵌入式系統(tǒng)原理》結(jié)構(gòu)清晰,運(yùn)用了通俗易懂的語(yǔ)言進(jìn)行講解,并輔以生動(dòng)翔實(shí)的例子來(lái)進(jìn)行說(shuō)明,是一本從全新角度來(lái)闡述與理解嵌入式系統(tǒng)的原理性教材。
《嵌入式系統(tǒng)原理》既可作為高等院校相關(guān)專業(yè)的教材,也可作為從事研發(fā)、生產(chǎn)和教學(xué)的廣大科技工作者的自學(xué)用書(shū)。
讀者對(duì)象
《嵌入式系統(tǒng)原理》既可作為高等院校相關(guān)專業(yè)的教材,也可作為從事研發(fā)、生產(chǎn)和教學(xué)的廣大科技工作者的自學(xué)用書(shū)。
厚積薄發(fā),集作者近20年研究、教學(xué)、開(kāi)發(fā)之結(jié)晶,成果得到行業(yè)、學(xué)術(shù)界和學(xué)生認(rèn)可!
語(yǔ)言通俗
深入淺出,注重理論和實(shí)例結(jié)合,文字視圖并舉!簡(jiǎn)化和抽象嵌入式系統(tǒng),過(guò)濾紛繁商業(yè)!
肉涵全面
覆蓋嵌入式系統(tǒng)從設(shè)計(jì)到消亡的全過(guò)程,跨越技術(shù)與時(shí)代!
理論突破結(jié)合中國(guó)傳統(tǒng)陰陽(yáng)邏輯之精髓,打破嵌入式系統(tǒng)無(wú)基礎(chǔ)理論的組合與堆砌狀態(tài),建立完整的系統(tǒng)分類、構(gòu)造、分析和評(píng)價(jià)體系及工程方法!
火星探測(cè)器探索太空的實(shí)現(xiàn),賦予了人類更大的想象空間;高科技戰(zhàn)爭(zhēng)中全球范圍內(nèi)的精確制導(dǎo)攻擊,帶來(lái)了全球性的安全隱患;植入人體的電子起搏器,挽救了無(wú)數(shù)人的生命;成千上萬(wàn)大規(guī)模使用的無(wú)線傳感網(wǎng)絡(luò),在軍事、環(huán)保和建筑測(cè)量等眾多領(lǐng)域發(fā)揮著不可限量的作用。從現(xiàn)實(shí)的角度來(lái)說(shuō),這些都屬于嵌入式系統(tǒng)的范疇。這么多類別,這么多領(lǐng)域,可以用相對(duì)獨(dú)立的理論將它們統(tǒng)一起來(lái)嗎?
人們可以忍受PC死機(jī),但絕不允許家里的電視死機(jī);而汽車的調(diào)速系統(tǒng)和飛行器的制導(dǎo)系統(tǒng)在運(yùn)行中更不能出問(wèn)題,否則后果是災(zāi)難性的。那么嵌入式系統(tǒng)可靠性如何保障?又應(yīng)該如何分類?
學(xué)生們把智能手機(jī)、數(shù)碼音樂(lè)播放器、手持游戲機(jī)、掌上電腦、數(shù)碼相機(jī)和電視機(jī)頂盒等大量消費(fèi)類電子產(chǎn)品當(dāng)作嵌入式系統(tǒng)的全部,甚至經(jīng)常有學(xué)生將PC認(rèn)為是計(jì)算機(jī)的全部和將Windows認(rèn)為是操作系統(tǒng)的全部一樣,這些是誰(shuí)的錯(cuò)?
以上問(wèn)題,通過(guò)本書(shū)可以找到答案。
二、寫作動(dòng)機(jī)
1 學(xué)科整合感受
1998年,從香港做博士后歸來(lái)后,在南開(kāi)大學(xué)建立了“嵌入式系統(tǒng)與信息安全”實(shí)驗(yàn)室,全面開(kāi)始對(duì)嵌入式系統(tǒng)進(jìn)行抽象和針對(duì)性研究。從帶有網(wǎng)絡(luò)控制性質(zhì)的自動(dòng)售貨機(jī),到具有消費(fèi)類電子的基于Linux的手持電子閱讀器,其間主持了兩個(gè)操作系統(tǒng)的設(shè)計(jì)與應(yīng)用,即Wolf miniOS(相當(dāng)于μcOS)和Wolf Linux。加之早年(1986~1996年)在自動(dòng)控制中的實(shí)踐,體會(huì)到了自動(dòng)控制和計(jì)算機(jī)兩個(gè)專業(yè)角度體會(huì)嵌入式系統(tǒng)的不同。想將此種感受紀(jì)錄和抽象出來(lái)是寫作本書(shū)的動(dòng)機(jī)之一。
2 科研、產(chǎn)業(yè)體驗(yàn)總結(jié)
大學(xué)畢業(yè)后二十余年間,前十年(1986~1996年)主要從事自動(dòng)控制方面的教學(xué)和科研工作,后十年(1997年至今)主要從事計(jì)算機(jī)系統(tǒng)方面的教學(xué)、科研和產(chǎn)業(yè)方面的工作。在這種工作跨度中,深深體會(huì)到教育、工業(yè)和商業(yè)方面的區(qū)別。這種感悟和體會(huì)的紀(jì)錄,便是寫作本書(shū)的動(dòng)機(jī)之二。
3 教學(xué)培養(yǎng)壓力
從2003年開(kāi)始,在南開(kāi)大學(xué)為信息學(xué)院的碩士研究生開(kāi)始教授“現(xiàn)代嵌入式系統(tǒng)”已經(jīng)近五年,授課期間感受到很多系統(tǒng)抽象方面的內(nèi)容。然從2004年開(kāi)始為學(xué)院本科主講“嵌入式系統(tǒng)”以來(lái),面對(duì)學(xué)生缺乏基本專業(yè)知識(shí),市面參考書(shū)目良莠不齊,國(guó)外教材與國(guó)內(nèi)難以同步,網(wǎng)絡(luò)資源缺乏權(quán)威和嚴(yán)肅性等狀態(tài),頗受缺乏有效教材的襲擾,由此形成了本人寫作本書(shū)的主要?jiǎng)恿Γ?br> 2004年開(kāi)始規(guī)劃,至今已經(jīng)跨越了四個(gè)年度。
三、主要思想
1 嵌入式系統(tǒng)定義與分類方式
嵌入式系統(tǒng)作為概念并不是新詞,大約二十多年前就已經(jīng)有定義了,而被學(xué)科和人們開(kāi)始重視,應(yīng)該也僅是近十幾年的事情。但從“嵌入式系統(tǒng)”定義的角度,卻發(fā)生了較大的分歧,由此形成對(duì)系統(tǒng)評(píng)判和構(gòu)造的方向性差異,也就是:
應(yīng)用設(shè)備系統(tǒng)(本書(shū)中稱作對(duì)象體系)中含有專用計(jì)算機(jī)系統(tǒng);
將專用計(jì)算機(jī)系統(tǒng)嵌入到應(yīng)用設(shè)備系統(tǒng)中。
這是方向的不同,本書(shū)中強(qiáng)調(diào)后者,即“將專用計(jì)算機(jī)系統(tǒng)嵌入到應(yīng)用設(shè)備系統(tǒng)中”,但也不絕對(duì)否認(rèn)前者,因?yàn)榍罢呤呛芏鄦纹瑱C(jī)系統(tǒng)的構(gòu)造方式,至今依舊是嵌入式系統(tǒng)中的重要組織方式。從這個(gè)角度來(lái)說(shuō),本書(shū)作為教材是兼收并蓄的,而不是學(xué)術(shù)極化。
本書(shū)依據(jù)嵌入式系統(tǒng)的可靠性、實(shí)時(shí)、交換和可信四個(gè)主軸,為現(xiàn)存的嵌入式系統(tǒng)進(jìn)行了全面的分類,因此為學(xué)生建立前面的嵌入式系統(tǒng)概念,建立了全局的基礎(chǔ)。例如,按照本書(shū)的劃分,將WinCE系統(tǒng)劃分為:可崩潰可交換非可信非實(shí)時(shí)系統(tǒng),這樣從類別的角度,可讓學(xué)生清晰的建立全局觀,客觀的審視和評(píng)價(jià)周邊的嵌入式系統(tǒng)。這一點(diǎn)應(yīng)該是本教材的突破,既屏蔽應(yīng)用和商業(yè)帶來(lái)的障礙,又提高了學(xué)習(xí)過(guò)程的感知度和理解度。
2 系統(tǒng)結(jié)構(gòu)層次
五層結(jié)構(gòu)
按照常規(guī)嵌入式系統(tǒng)層次的分法,大都將嵌入式系統(tǒng)分為三層,即硬件+操作系統(tǒng)+應(yīng)用。但本書(shū)將系統(tǒng)細(xì)分為五層,主要思想來(lái)源于PC產(chǎn)業(yè)的細(xì)分。PC中的BIOS(Basic Input Output System,基本輸入/輸出系統(tǒng))將PC的硬件制造和個(gè)人計(jì)算機(jī)系統(tǒng)分離,同時(shí)也將硬件和軟件變化分離,由此可以保證系統(tǒng)的整體可靠性。書(shū)中強(qiáng)化了最小系統(tǒng)和驅(qū)動(dòng)部分,并將操作系統(tǒng)的UI(User interface用戶接口)剝離。
裁減控制
關(guān)于內(nèi)核的描述,書(shū)中引入了層次結(jié)構(gòu)下的模塊式結(jié)構(gòu)和插件式結(jié)構(gòu),明晰和強(qiáng)調(diào)了嵌入式系統(tǒng)的另一大特征——可裁剪性。
控制數(shù)學(xué)模型
在結(jié)構(gòu)性分析的同時(shí),書(shū)中強(qiáng)調(diào)了工程控制論思想,明確了在嵌入式系統(tǒng)土壤中如何構(gòu)造以精確控制為目標(biāo)的控制數(shù)學(xué)模型。
3 評(píng)價(jià)體系
系統(tǒng)與平衡
對(duì)于嵌入式系統(tǒng)的評(píng)價(jià),很難用絕對(duì)的方式進(jìn)行衡量,就像人的健康狀態(tài),極化任何一個(gè)方面,都可能造成誤導(dǎo)。因此,建立嵌入式系統(tǒng)評(píng)價(jià)體系,應(yīng)從系統(tǒng)和平衡的著眼點(diǎn)進(jìn)行考量。
過(guò)程與生存環(huán)境
評(píng)價(jià)應(yīng)該包括嵌入式系統(tǒng)的全過(guò)程,從系統(tǒng)的創(chuàng)建、設(shè)計(jì)、制造,到運(yùn)行/維護(hù)和消亡,也因此形成了設(shè)計(jì)空間、制造空間、運(yùn)維空間和用戶空間的嵌入式系統(tǒng)環(huán)境概念。這是大多數(shù)教材和論著忽略的,但在本書(shū)中相對(duì)強(qiáng)化了該點(diǎn),這些在本書(shū)封面上都有所體現(xiàn)。
系統(tǒng)制約與干擾
嵌入式系統(tǒng)不是孤立的,它與對(duì)象體系既息息相關(guān),又有制約和干擾。表達(dá)方式上,書(shū)中采用了蜘蛛圖進(jìn)行描述,比較形象。整體的評(píng)價(jià)體系充分的吸收了我國(guó)傳統(tǒng)陰陽(yáng)系統(tǒng)二元邏輯,多級(jí)對(duì)稱的精髓,注重在很多方面強(qiáng)調(diào)了兩極互補(bǔ)、互動(dòng)的關(guān)系。例如,硬件與軟件、處理器和存儲(chǔ)、程序與數(shù)據(jù)等?陀^地定位了大多數(shù)人強(qiáng)化嵌入式操作系統(tǒng)和數(shù)據(jù)庫(kù)的觀點(diǎn),將其定位為本書(shū)定義體系下的中間件,即在設(shè)計(jì)中,工程師希望它們?cè)烬嫶笤胶茫谟脩羰褂脮r(shí),則希望其越瘦、越薄為好,否則在性能、可靠性、成本等方面都會(huì)受到影響。
4 工程方法
嵌入式系統(tǒng)的工程方法主要強(qiáng)調(diào)設(shè)計(jì)空間環(huán)節(jié),以及與之密切相關(guān)的制造和維護(hù)空間。
時(shí)間指標(biāo)量化
傳統(tǒng)的控制和儀表系統(tǒng),大都在時(shí)序控制和時(shí)間精細(xì)安排方面有著眾多的原則和理論支撐,但在計(jì)算機(jī)系統(tǒng)中,軟件編程人員往往淡化這一概念。真對(duì)于這一方面,本書(shū)也安排了相關(guān)融合內(nèi)容,來(lái)強(qiáng)調(diào)時(shí)間量化和時(shí)序的重要性。
系統(tǒng)可裁剪
系統(tǒng)配置和條件編譯,無(wú)疑是裁減過(guò)程的重要環(huán)節(jié),但嵌入式系統(tǒng)的可裁剪性應(yīng)該體現(xiàn)在所有的環(huán)節(jié)和模塊中。為此,本書(shū)從軟件封裝到硬件支撐等許多部分都安排了相關(guān)內(nèi)容的講解,來(lái)使讀者了解相關(guān)的設(shè)計(jì)考慮。
系統(tǒng)整合
嵌入式系統(tǒng)整合是從事嵌入式系統(tǒng)設(shè)計(jì)人員必須具備的意識(shí)和能力。例如,Motorola公司發(fā)布的A780手機(jī),是基于嵌入式Linux操作系統(tǒng)的,整體整合了十幾家嵌入式軟件產(chǎn)品,才形成了最終的用戶產(chǎn)品。這意味著整合本身就需要很強(qiáng)的評(píng)判、界定和融合能力。作為裁剪相對(duì)應(yīng)的部分,這一概念也是本書(shū)中強(qiáng)調(diào)的重點(diǎn)之一。
透明可測(cè)性設(shè)計(jì)
復(fù)雜系統(tǒng)性能和可靠性的保障,不完全靠認(rèn)真,或者負(fù)責(zé)任,還必須依靠合理有效的方法去保障,其中每個(gè)環(huán)節(jié)加入透明可測(cè)設(shè)計(jì),是非常有效的。此類方法是故障隔離的前提,盡管在設(shè)計(jì)的初期會(huì)產(chǎn)生性能或用戶體驗(yàn)的下降,但在系統(tǒng)成熟的過(guò)程中,其優(yōu)勢(shì)會(huì)充分體現(xiàn)出來(lái)。
5 發(fā)展與變化
電子和IT領(lǐng)域中有一個(gè)重要的特點(diǎn),就是變化快,思想和感悟難于沉淀,嵌入式系統(tǒng)同樣難以逃離這樣的規(guī)律。本書(shū)試圖將抽象的模型、體系判據(jù)和工程方法與具體的商業(yè)產(chǎn)品分開(kāi),減少變化引起的沖擊。由于書(shū)中主要采用了系統(tǒng)辯證的方法去解釋和闡述,使得該書(shū)作為教材具有較強(qiáng)的適應(yīng)力。盡管如此,也很難以書(shū)面的方式應(yīng)對(duì)所有的問(wèn)題,因此本書(shū)在出版的同時(shí),也在南開(kāi)大學(xué)嵌入式系統(tǒng)與信息安全實(shí)驗(yàn)室的網(wǎng)站上專門開(kāi)辟了《嵌入式系統(tǒng)原理》論壇,歡迎關(guān)注該書(shū)的專家、教師、讀者和同學(xué)多多參與這樣的互動(dòng),發(fā)表您的寶貴意見(jiàn),與我們一起努力,幫助這本教材的成長(zhǎng)。
第1章 嵌入式系統(tǒng)歷史與現(xiàn)代特征
1.1 定義2
1.2 嵌入式系統(tǒng)與相關(guān)領(lǐng)域的歷史3
1.2.1 嵌入式系統(tǒng)的發(fā)展歷史4
1.2.2 計(jì)算與機(jī)器計(jì)算5
1.2.3 自動(dòng)控制的發(fā)展歷程6
1.2.4 計(jì)算機(jī)的發(fā)展歷史8
1.3 危機(jī)與發(fā)展特征15
1.3.1 嵌入式系統(tǒng)的危機(jī)15
1.3.2 嵌入式系統(tǒng)的發(fā)展特征17
本章小結(jié)18
第2章 系統(tǒng)結(jié)構(gòu)與模型
2.1 系統(tǒng)與系統(tǒng)思想20
2.1.1 系統(tǒng)思想20
2.1.2 系統(tǒng)結(jié)構(gòu)的一些概念23
2.2 系統(tǒng)五層結(jié)構(gòu)模型26
2.2.1 物理結(jié)構(gòu)與邏輯結(jié)構(gòu)26
2.2.2 五層結(jié)構(gòu)模型 28
2.2.3 各層的功能及指標(biāo)29
2.2.4 五層模型的應(yīng)用與評(píng)價(jià)34
2.3 模型建立36
2.3.1 嵌入式系統(tǒng)模型定義36
2.3.2 建模原則39
2.3.3 建模方法與步驟40
2.3.4 面向?qū)ο蟮慕_^(guò)程41
2.4 模型使用45
2.4.1 結(jié)構(gòu)化綜合控制模型45
2.4.2 對(duì)象化環(huán)模型47
2.4.3 建模示例49
本章小結(jié)54
習(xí)題55
第3章 系統(tǒng)硬件體系
3.1 硬件體系框架57
3.2 硬件系統(tǒng)元素61
3.2.1 微處理器和指令系統(tǒng)61
3.2.2 存儲(chǔ)器80
3.2.3 輸入/輸出設(shè)備85
3.2.4 通信與擴(kuò)展接口91
3.3 硬件系統(tǒng)要素98
3.3.1 時(shí)鐘與總線99
3.3.2 內(nèi)存管理 108
3.3.3 看門狗技術(shù)111
3.3.4 供電與能耗114
3.4 硬件系統(tǒng)評(píng)價(jià)117
3.4.1 常規(guī)指標(biāo)117
3.4.2 資源分配118
3.4.3 電氣功耗120
3.4.4 可靠性和穩(wěn)定性121
本章小結(jié)121
習(xí)題124
第4章 最小系統(tǒng):引導(dǎo)與驅(qū)動(dòng)
4.1 引導(dǎo)層建立126
4.1.1 引導(dǎo)部分127
4.1.2 驅(qū)動(dòng)部分128
4.1.3 BIOS 128
4.2 引導(dǎo)模式131
4.2.1 非片內(nèi)引導(dǎo)131
4.2.2 片內(nèi)引導(dǎo)133
4.3 中斷、I/O、MMU初始化134
4.3.1 中斷初始化134
4.3.2 I/O初始化137
4.3.3 MMU初始化138
4.4 驅(qū)動(dòng)部分的設(shè)計(jì)140
4.4.1 驅(qū)動(dòng)部分的設(shè)計(jì)開(kāi)發(fā)140
4.4.2 BSP與BIOS 144
4.5 運(yùn)行舉例144
4.5.1 最小系統(tǒng)145
4.5.2 WinCE 146
4.5.3 Linux147
4.5.4 PCDOS150
本章小結(jié)151
習(xí)題152
第5章 中間件: 嵌入式操作系統(tǒng)和數(shù)據(jù)庫(kù)
5.1 嵌入式操作系統(tǒng)154
5.1.1 操作系統(tǒng)體系結(jié)構(gòu)156
5.1.2 實(shí)時(shí)特性172
5.1.3 操作系統(tǒng)裁剪188
5.1.4 嵌入式操作系統(tǒng)評(píng)測(cè)200
5.2 用戶接口203
5.2.1 UI的定義204
5.2.2 UI的發(fā)展歷程204
5.2.3 嵌入式UI的結(jié)構(gòu)特點(diǎn)205
5.2.4 嵌入式UI設(shè)計(jì)原則209
5.3 嵌入式數(shù)據(jù)庫(kù)211
5.3.1 定義212
5.3.2 作用與應(yīng)用特性212
5.3.3 設(shè)計(jì)要求214
5.3.4 嵌入式移動(dòng)數(shù)據(jù)庫(kù)215
5.3.5 嵌入式本地?cái)?shù)據(jù)庫(kù)217
本章小結(jié)219
習(xí)題220
第6章 應(yīng)用編程與數(shù)據(jù)處理
6.1 程序與數(shù)據(jù)評(píng)價(jià)222
6.1.1 程序與數(shù)據(jù)--信息的表現(xiàn)222
6.1.2 開(kāi)放性225
6.1.3 兼容性226
6.2 匯編語(yǔ)言與C語(yǔ)言227
6.2.1 匯編語(yǔ)言227
6.2.2 C語(yǔ)言229
6.2.3 匯編語(yǔ)言與C語(yǔ)言嵌入式編程舉例234
6.3 Java237
6.3.1 Java體系結(jié)構(gòu)237
6.3.2 JVM 239
6.3.3 Java標(biāo)準(zhǔn)與規(guī)范241
6.3.4 Java與 C語(yǔ)言混合編程245
6.3.5 Java嵌入式編程舉例246
6.4 .NET與XML248
6.4.1 .NET戰(zhàn)略249
6.4.2 XML252
6.4.3 NET嵌入式設(shè)計(jì)舉例254
6.5 應(yīng)用編程與數(shù)據(jù)處理255
6.5.1 應(yīng)用編程256
6.5.2 數(shù)據(jù)處理262
6.5.3 電子閱讀器應(yīng)用舉例265
6.6 嵌入式系統(tǒng)測(cè)試267
6.6.1 軟件測(cè)試267
6.6.2 硬件測(cè)試275
6.6.3 綜合測(cè)試舉例286
本章小結(jié)287
習(xí)題288
第7章 指標(biāo)體系與系統(tǒng)類別分析
7.1 內(nèi)在指標(biāo)290
7.1.1 傳統(tǒng)評(píng)價(jià)291
7.1.2 信息評(píng)價(jià)302
7.2 作用指標(biāo)304
7.2.1 干擾度305
7.2.2 智能度306
7.2.3 控制度308
7.2.4 融合度310
7.3 封裝與軟件整合311
7.3.1 封裝311
7.3.2 軟件整合312
7.4 系統(tǒng)安全314
7.4.1 系統(tǒng)安全概述314
7.4.2 嵌入式系統(tǒng)安全315
7.4.3 本質(zhì)安全概述316
7.5 可靠性319
7.5.1 定義及說(shuō)明319
7.5.2 評(píng)價(jià)方法319
7.5.3 優(yōu)化方法320
7.6 裁剪321
7.6.1 硬件裁剪321
7.6.2 軟件裁剪322
7.7 指標(biāo)體系326
7.8 嵌入式系統(tǒng)類別分析330
7.8.1 可崩潰、不可崩潰系統(tǒng)331
7.8.2 實(shí)時(shí)/非實(shí)時(shí)系統(tǒng)332
7.8.3 可交換/不可交換系統(tǒng)334
7.8.4 可信/非可信系統(tǒng)335
本章小結(jié)337
習(xí)題338
參考文獻(xiàn)339