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