嵌入式系統(tǒng)導(dǎo)論:CPS方法(原書第2版)
定 價:89 元
叢書名:計算機科學(xué)叢書
- 作者:【美】愛德華·阿什福德·李(Edward Ashford Lee, Sanjit Arunkumar Seshia)
- 出版時間:2018/9/1
- ISBN:9787111608110
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP360.21
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書從CPS的視角,圍繞嵌入式系統(tǒng)的建模、設(shè)計和分析三方面,深入淺出地介紹了設(shè)計和實現(xiàn)CPS的整體過程及各個階段的細節(jié),重點是論述系統(tǒng)模型與系統(tǒng)實現(xiàn)的關(guān)系,以及軟件和硬件與物理環(huán)境的相互作用。第2版增加了兩章,第7章覆蓋傳感器和作動器,強調(diào)建模;第17章給出嵌入式系統(tǒng)的安全和隱私方面的基本內(nèi)容。
本書內(nèi)容
計算機及軟件最常見的用途是在人類消費及日常活動中進行信息處理,我們使用它們來撰寫書籍(就像本書)、在互聯(lián)網(wǎng)上查詢信息、通過電子郵件進行通信,以及記錄金融數(shù)據(jù)等。然而,生活中絕大多數(shù)的“計算機”并不可見。它們控制汽車的引擎、剎車、安全帶、安全氣囊以及音頻系統(tǒng);它們將你的聲音進行數(shù)字編碼,進而轉(zhuǎn)換為無線電信號并從你的手機發(fā)送到基站;它們控制著微波爐、冰箱以及洗碗機;它們驅(qū)動從桌面噴墨打印機到工業(yè)大容量打印機等各式打印設(shè)備;它們控制工廠車間的機器人、電廠的發(fā)電機、化學(xué)工廠的生產(chǎn)過程以及城市的交通燈;它們在生物樣本中檢測細菌,構(gòu)建人體內(nèi)部的圖像并評估生命體征;它們從太空的無線電信號中尋找超新星及地外智慧生物;它們給予玩具“生命”,使其可以與人進行觸覺、聽覺的交互;它們控制飛行器及火車,等等。這些“隱蔽”的計算機被稱為嵌入式系統(tǒng)(Embedded System),其中所運行的軟件則被稱為嵌入式軟件(Embedded Software)。
盡管嵌入式系統(tǒng)已廣泛地存在和應(yīng)用,但計算機科學(xué)在其相對較短的發(fā)展歷程中仍以信息處理為核心。直到近些年,嵌入式系統(tǒng)才得到研究者越來越多的關(guān)注。同樣,也是直到近些年,本領(lǐng)域的研究者和機構(gòu)才日益意識到設(shè)計和分析這些系統(tǒng)需要不同的工程技術(shù)。盡管嵌入式系統(tǒng)自20世紀70年代就被應(yīng)用,但這些系統(tǒng)更多時候是被簡單地看作小型計算機系統(tǒng),如何應(yīng)對資源受限(處理能力、能源、存儲空間受限等)是其核心工程問題。由此,設(shè)計優(yōu)化就成為嵌入式系統(tǒng)的工程挑戰(zhàn)。由于所有設(shè)計都會從優(yōu)化過程中受益,因此,嵌入式系統(tǒng)學(xué)科也就與計算機科學(xué)的其他學(xué)科沒什么區(qū)別,只是要求我們更加積極地應(yīng)用這些共性優(yōu)化技術(shù)。
近來,研究者已經(jīng)認識到嵌入式系統(tǒng)的主要挑戰(zhàn)源自于其與物理進程的交互,而并非資源的限制。美國國家科學(xué)基金會(NSF)的項目主管Helen Gill率先提出了“信息物理融合系統(tǒng)”(Cyber-Physical System,CPS)這一概念,以強調(diào)計算進程與物理進程的集成。在信息物理融合系統(tǒng)中,嵌入式計算機與網(wǎng)絡(luò)對物理進程進行監(jiān)測和控制,且物理進程與計算之間存在著相互影響的反饋環(huán)路。為此,該類系統(tǒng)的設(shè)計就需要充分理解計算機、軟件、網(wǎng)絡(luò)以及物理進程之間相互關(guān)聯(lián)的動態(tài)特性。研究關(guān)聯(lián)的動態(tài)特性就使得嵌入式系統(tǒng)有別于其他學(xué)科。
在研究CPS的過程中,所謂的通用計算很少涉及的一些關(guān)鍵問題就開始浮現(xiàn)出來。例如,通用軟件中,任務(wù)執(zhí)行時間是一個性能指標,而不是正確性指標。過長的任務(wù)執(zhí)行時間并不會引入錯誤,僅會導(dǎo)致不太方便,也因此價值較低。但對于CPS而言,任務(wù)執(zhí)行時間可能對整個系統(tǒng)的功能正確性非常關(guān)鍵。這是因為,相對于信息世界,物理世界中的時間流逝是無法挽回的。
而且,CPS中很多事件都是同時發(fā)生的。物理進程通常由這樣一組同時發(fā)生的事件所構(gòu)成,這明顯有別于順序化的軟件執(zhí)行過程。Abelson等(1996)將計算機科學(xué)描述為“程序化認識論”,認為這是關(guān)于程序的知識。相比較而言,物理世界中的進程很少是順序化的,而是由諸多并行進程所構(gòu)成。那么,通過設(shè)計影響這些進程的一組動作來評估和控制其動態(tài)特性就成為嵌入式系統(tǒng)設(shè)計的首要任務(wù)。所以,并發(fā)性才是CPS的本質(zhì),在設(shè)計和分析嵌入式軟件中存在的諸多技術(shù)挑戰(zhàn)也都源自于橋接和彌合固有順序化語義與并發(fā)性物理世界的需要。
寫作動機
軟件與物理世界交互的機制正在發(fā)生著快速變化。今天,整個趨勢正朝著“智能化”傳感器和執(zhí)行器(或作動器)的方向發(fā)展,這些組件搭載了微處理器、網(wǎng)絡(luò)接口以及可以遠程訪問傳感器數(shù)據(jù)并激活執(zhí)行器的軟件。無論現(xiàn)在是被稱作物聯(lián)網(wǎng)(IoT)、工業(yè)4.0、工業(yè)互聯(lián)網(wǎng)、機器通信(M2M),還是萬物互聯(lián)、智慧地球、萬億傳感器(Trillion Sensor)世界、霧計算(Fog,類似于云計算,但更近于地面)等,其發(fā)展前景實際上都是深度連接信息世界與物理世界的技術(shù)。在物聯(lián)網(wǎng)領(lǐng)域中,這些“世界”之間的接口都是從信息技術(shù)特別是網(wǎng)絡(luò)技術(shù)中獲取靈感并演化而來。
物聯(lián)網(wǎng)接口是非常方便的,但仍然不適合這兩個不同世界之間的緊密交互,對于實時控制及安全攸關(guān)系統(tǒng)尤其如此。緊密交互仍然要求綜合且復(fù)雜的底層設(shè)計技術(shù)。嵌入式軟件設(shè)計人員被迫投入更多精力來關(guān)注中斷控制器、內(nèi)存架構(gòu)、匯編級編程(以利用特定指令或者精確地控制時序)、設(shè)備驅(qū)動設(shè)計、網(wǎng)絡(luò)接口以及調(diào)度策略等問題,而不是聚焦于具體想要實現(xiàn)的行為。
這些技術(shù)(無論頂層還是底層)的龐大體系及復(fù)雜度促使我們開設(shè)如何掌握這些技術(shù)的導(dǎo)論性課程。但是,一門更好的導(dǎo)論課程應(yīng)該關(guān)注如何對軟件、網(wǎng)絡(luò)及物理進程的關(guān)聯(lián)動態(tài)特性進行建模和設(shè)計,且該類課程僅介紹現(xiàn)今(而不是早期)達成這一目標的技術(shù)。本書就是我們針對該類課程所撰寫的。
關(guān)于嵌入式系統(tǒng)的技術(shù)資料大部分都關(guān)注使計算機與物理系統(tǒng)實現(xiàn)交互的技術(shù)集合(Barr and Massa, 2006; Berger, 2002; Burns and Wellings, 2001; Kamal, 2008; Noergaard, 2005; Parab et al., 2007; Simon, 2006; Valvano, 2007; Wolf, 2000)。其他一些則關(guān)注采用計算機科學(xué)技術(shù)(如編程語言、操作系統(tǒng)、網(wǎng)絡(luò)等)來處理嵌入式系
愛德華·阿什福德·李(Edward Ashford Lee) 加州大學(xué)伯克利分校電子工程與計算機科學(xué)系(EECS)羅伯特·S.佩珀(Robert S. Pepper)杰出教授;研究興趣集中于嵌入式實時計算系統(tǒng)的設(shè)計、建模與分析,曾任加州大學(xué)伯克利分校電子工程(EE)分部以及電子工程與計算機科學(xué)系主任。1979年獲得耶魯大學(xué)計算機科學(xué)學(xué)士學(xué)位,1981年獲得麻省理工學(xué)院(MIT)電氣工程與計算機科學(xué)碩士學(xué)位,1986年獲得加州大學(xué)伯克利分校電氣工程與計算機科學(xué)博士學(xué)位。1979年至1982年期間,曾在位于新澤西州霍姆德爾的貝爾實驗室任職。他是伯克利設(shè)計技術(shù)股份有限公司(BDTI)的聯(lián)合創(chuàng)始人、IEEE會士(IEEE Fellow)、美國國家科學(xué)基金會總統(tǒng)青年科學(xué)家,并于1997年獲得美國工程教育學(xué)會的弗雷德里克·埃蒙斯·特曼獎。
桑吉特·阿倫庫馬爾·塞希阿(Sanjit Arunkumar Seshia) 加州大學(xué)伯克利分校電子工程與計算機科學(xué)系教授;研究興趣集中于可信計算、計算邏輯和形式化方法及其在嵌入式系統(tǒng)、計算機安全、電子設(shè)計自動化以及合成生物學(xué)等領(lǐng)域問題中的應(yīng)用;于印度理工學(xué)院孟買分校獲得計算機科學(xué)與工程學(xué)士學(xué)位,于卡內(nèi)基-梅隆大學(xué)(CMU)獲得計算機科學(xué)碩士和博士學(xué)位。他曾獲美國青年科學(xué)家與工程師總統(tǒng)獎(PECASE)、艾爾弗雷德·P.斯隆研究獎,以及卡內(nèi)基-梅隆大學(xué)計算機科學(xué)學(xué)院杰出學(xué)位論文獎。
出版者的話
譯者序
前言
第1章 緒論 1
1.1 應(yīng)用 1
1.2 啟發(fā)式示例 4
1.3 設(shè)計過程 5
1.3.1 建模 7
1.3.2 設(shè)計 8
1.3.3 分析 8
1.4 小結(jié) 9
第一部分 動態(tài)行為建模
第2章 連續(xù)動態(tài) 12
2.1 牛頓力學(xué) 12
2.2 參元模型 15
2.3 系統(tǒng)特性 17
2.3.1 因果系統(tǒng) 17
2.3.2 無記憶系統(tǒng) 18
2.3.3 線性與時不變性 18
2.3.4 穩(wěn)定性 19
2.4 反饋控制 19
2.5 小結(jié) 22
習(xí)題 23
第3章 離散動態(tài) 25
3.1 離散系統(tǒng) 25
3.2 狀態(tài)的概念 28
3.3 有限狀態(tài)機 28
3.3.1 遷移 29
3.3.2 響應(yīng) 31
3.3.3 更新函數(shù) 32
3.3.4 確定性與接受性 34
3.4 擴展?fàn)顟B(tài)機 35
3.5 非確定性 37
3.5.1 形式化模型 38
3.5.2 非確定性的用途 39
3.6 行為與軌跡 39
3.7 小結(jié) 41
習(xí)題 41
第4章 混合系統(tǒng) 45
4.1 模態(tài)模型 45
4.1.1 狀態(tài)機的參元模型 45
4.1.2 連續(xù)輸入 45
4.1.3 狀態(tài)精化 46
4.2 混合系統(tǒng)分類 47
4.2.1 時間自動機 47
4.2.2 高階動態(tài)性 49
4.2.3 監(jiān)督控制 53
4.3 小結(jié) 56
習(xí)題 57
第5章 狀態(tài)機組合 61
5.1 并發(fā)組合 62
5.1.1 平行同步組合 63
5.1.2 平行異步組合 64
5.1.3 共享變量 66
5.1.4 級聯(lián)組合 68
5.1.5 通用組合 70
5.2 分層狀態(tài)機 70
5.3 小結(jié) 72
習(xí)題 72
第6章 并發(fā)計算模型 75
6.1 模型的結(jié)構(gòu) 75
6.2 同步響應(yīng)模型 77
6.2.1 反饋模型 78
6.2.2 形式非良好模型與形式良好模型 79
6.2.3 推定一個不動點 80
6.3 數(shù)據(jù)流計算模型 81
6.3.1 數(shù)據(jù)流原理 82
6.3.2 同步數(shù)據(jù)流 84
6.3.3 動態(tài)數(shù)據(jù)流 86
6.3.4 結(jié)構(gòu)化數(shù)據(jù)流 87
6.3.5 進程網(wǎng)絡(luò) 88
6.4 時間計算模型 89
6.4.1 時間觸發(fā)模型 89
6.4.2 離散事件系統(tǒng) 92
6.4.3 時間連續(xù)系統(tǒng) 93
6.5 小結(jié) 95
習(xí)題 95
第二部分 嵌入式系統(tǒng)設(shè)計
第7章 傳感器與執(zhí)行器 100
7.1 傳感器與執(zhí)行器模型 101
7.1.1 線性與仿射模型 101
7.1.2 量程 101
7.1.3 動態(tài)量程 102
7.1.4 量化 102
7.1.5 噪聲 104
7.1.6 采樣 105
7.1.7 諧波失真 107
7.1.8 信號調(diào)理 108
7.2 一些常用傳感器 109
7.2.1 測量傾斜度與加速度 109
7.2.2 測量位置和速度 110
7.2.3 測量旋轉(zhuǎn) 111
7.2.4 測量聲音 111
7.2.5 其他傳感器 111
7.3 執(zhí)行器 112
7.3.1 發(fā)光二極管 112
7.3.2 電機控制 112
7.4 小結(jié) 115
習(xí)題 115
第8章 嵌入式處理器 117
8.1 處理器類型 117
8.1.1 微控制器 117
8.1.2 DSP處理器 119
8.1.3 圖形處理器 123
8.2 并行機制 123
8.2.1 并行與并發(fā) 123
8.2.2 流水線 125
8.2.3 指令級并行 127
8.2.4 多核體系結(jié)構(gòu) 132
8.3 小結(jié) 132
習(xí)題 132
第9章 存儲器體系結(jié)構(gòu) 134
9.1 存儲器技術(shù) 134
9.1.1 RAM 134
9.1.2 非易失性存儲器 135
9.2 存儲器分級體系 135
9.2.1 存儲器映射 136
9.2.2 寄存器文件 137
9.2.3 暫存器與高速緩存 138
9.3 存儲器模型 140
9.3.1 存儲器地址 140
9.3.2 棧 141
9.3.3 存儲器保護單元 142
9.3.4 動態(tài)內(nèi)存分配 142
9.3.5 C程序的存儲模型 143
9.4 小結(jié) 143
習(xí)題 144
第10章 輸入與輸出 146
10.1 I/O硬件 146
10.1.1 脈沖寬度調(diào)制 147
10.1.2 通用數(shù)字I/O 147
10.1.3 串行接口 149
10.1.4 并行接口 151
10.1.5 總線 151
10.2 并發(fā)世界中的順序軟件 152
10.2.1 中斷與異常 152
10.2.2 原子性 154
10.2.3 中斷控制器 155
10.2.4 中斷建模 155
10.3 小結(jié) 158
習(xí)題 158
第11章 多任務(wù)機制 163
11.1 命令式程序 163
11.2 線程 166
11.2.1 創(chuàng)建線程 166
11.2.2 實現(xiàn)線程 168
11.2.3 互斥 169
11.2.4 死鎖 171
11.2.5 內(nèi)存一致性模型 172
11.2.6 多線程機制帶來的問題 173
11.3 進程與消息傳遞 174
11.4 小結(jié) 177
習(xí)題 178
第12章 調(diào)度機制 181
12.1 調(diào)度基礎(chǔ) 181
12.1.1 調(diào)度決策 181
12.1.2 任務(wù)模型 182
12.1.3 調(diào)度器比較 184
12.1.4 調(diào)度器的實現(xiàn) 184
12.2 單調(diào)速率調(diào)度 185
12.3 最早截止期優(yōu)先調(diào)度 187
12.4 調(diào)度與互斥 190
12.4.1 優(yōu)先級翻轉(zhuǎn) 190
12.4.2 優(yōu)先級繼承協(xié)議 191
12.4.3 優(yōu)先級天花板協(xié)議 192
12.5 多處理器調(diào)度 193
12.6 小結(jié) 195
習(xí)題 196
第三部分 分析與驗證
第13章 不變量與時態(tài)邏輯 200
13.1 不變量 200
13.2 線性時態(tài)邏輯 201
13.2.1 命題邏輯公式 202
13.2.2 線性時態(tài)邏輯公式 203
13.2.3 運用線性時態(tài)邏輯公式 205
13.3 小結(jié) 206
習(xí)題 207
第14章 等價與精化 209
14.1 規(guī)格模型 209
14.2 類型等價與精化 209
14.3 語言等價與包含 211
14.4 模擬 215
14.4.1 模擬關(guān)系 216
14.4.2 形式化模型 217
14.4.3 傳遞性 217
14.4.4 模擬關(guān)系的非唯一性 218
14.4.5 模擬與語言包含的對比 218
14.5 互模擬