本書(shū)以項(xiàng)目開(kāi)發(fā)為中心,以嵌入式系統(tǒng)設(shè)計(jì)為主線組織內(nèi)容。本書(shū)首先描述簡(jiǎn)單嵌入式裸機(jī)系統(tǒng)、輪詢(xún)系統(tǒng)、前后臺(tái)系統(tǒng)、多任務(wù)實(shí)時(shí)操作系統(tǒng)的設(shè)計(jì)過(guò)程;然后介紹具備基本飛行功能的四軸飛行器的設(shè)計(jì)過(guò)程;最后基于大疆的四軸飛行器和異構(gòu)高性能嵌入式多核開(kāi)發(fā)平臺(tái),講解復(fù)雜嵌入式系統(tǒng)的設(shè)計(jì)方法與設(shè)計(jì)過(guò)程。本書(shū)各學(xué)科知識(shí)交叉融合,內(nèi)容講解由易到難,旨在培養(yǎng)學(xué)生解決復(fù)雜工程問(wèn)題的能力,為學(xué)生逐步成長(zhǎng)為高層次系統(tǒng)工程人才打下堅(jiān)實(shí)基礎(chǔ)。
本書(shū)可作為高等院校軟件工程、計(jì)算機(jī)科學(xué)與技術(shù)、自動(dòng)化、電子工程等專(zhuān)業(yè)的教材,也可作為項(xiàng)目類(lèi)課程、挑戰(zhàn)性課程、綜合設(shè)計(jì)類(lèi)課程的指導(dǎo)用書(shū),還可供嵌入式系統(tǒng)設(shè)計(jì)或四軸飛行器愛(ài)好者學(xué)習(xí)參考。
1.以項(xiàng)目為中心,開(kāi)展多維教學(xué)
本書(shū)打破課程界限,突破原有專(zhuān)業(yè)課程之間的先后關(guān)系,以項(xiàng)目為中心進(jìn)行布局。所編內(nèi)容與新工科教學(xué)理念相匹配,倡導(dǎo)在課程教學(xué)活動(dòng)中采取學(xué)生自主學(xué)習(xí)、數(shù)字化學(xué)習(xí)、小組學(xué)習(xí)等學(xué)習(xí)方法;同時(shí),本書(shū)還體現(xiàn)了“四性”,即挑戰(zhàn)性、進(jìn)階性、系統(tǒng)性以及完整性。本書(shū)以培養(yǎng)學(xué)生的系統(tǒng)思維能力和“元認(rèn)知”思維能力為目標(biāo),將“興趣牽引、項(xiàng)目驅(qū)動(dòng)、立足系統(tǒng)、理論與實(shí)踐有機(jī)融合”這一思想貫穿項(xiàng)目實(shí)現(xiàn)的全過(guò)程。
2.以系統(tǒng)設(shè)計(jì)為主線,助力培養(yǎng)工程型人才
本書(shū)以系統(tǒng)設(shè)計(jì)為主線,逐步介紹多種嵌入式系統(tǒng)的設(shè)計(jì)過(guò)程,內(nèi)容由淺入深,可幫助學(xué)生逐步建立復(fù)雜工程問(wèn)題解決能力,為其逐步成長(zhǎng)為高層次系統(tǒng)工程型人才打下堅(jiān)實(shí)基礎(chǔ)。
3.理論與實(shí)踐融為一體,注重培養(yǎng)實(shí)戰(zhàn)能力
本書(shū)將高校理論優(yōu)勢(shì)與行業(yè)優(yōu)秀技術(shù)相結(jié)合,促進(jìn)了理論與實(shí)踐的有機(jī)融合,并基于Arm中國(guó)、中國(guó)大疆、意法半導(dǎo)體(STMicroelectronics,ST)等公司的大力支持,優(yōu)化項(xiàng)目設(shè)計(jì),構(gòu)建了相關(guān)實(shí)踐、實(shí)訓(xùn)環(huán)境,可系統(tǒng)培養(yǎng)學(xué)生的嵌入式系統(tǒng)設(shè)計(jì)實(shí)戰(zhàn)能力。
廖勇:博士,電子科技大學(xué)信息與軟件工程學(xué)院教授,學(xué)院教學(xué)指導(dǎo)委員會(huì)主任;長(zhǎng)期從事“嵌入式操作系統(tǒng)”“實(shí)時(shí)計(jì)算”等課程的教學(xué)工作,并受邀(每年)為法國(guó)魯昂高等工程師學(xué)院講授“Embedded Real-Time Operating System”課程;獲首屆全國(guó)高校教師教學(xué)創(chuàng)新大賽全國(guó)決賽二等獎(jiǎng),教學(xué)案例“多旋翼飛行器設(shè)計(jì)”獲首屆全國(guó)軟件工程教學(xué)案例競(jìng)賽一等獎(jiǎng)。
【章名目錄】
第 1章 概論 1
第 一部分 設(shè)計(jì)一個(gè)輪詢(xún)系統(tǒng)
第 2章 輪詢(xún)系統(tǒng) 17
第二部分 設(shè)計(jì)一個(gè)前后臺(tái)系統(tǒng)
第3章 前后臺(tái)系統(tǒng) 41
第三部分 設(shè)計(jì)一個(gè)實(shí)時(shí)操作系統(tǒng)內(nèi)核
第4章 多任務(wù)實(shí)時(shí)操作系統(tǒng) 57
第四部分 設(shè)計(jì)一個(gè)具備基本飛行功能的四軸飛行器
第5章 四軸飛行器飛行基本原理 131
第6章 基于aCoral的四軸飛行器總體設(shè)計(jì) 154
第7章 硬件系統(tǒng)設(shè)計(jì) 161
第8章 軟件系統(tǒng)設(shè)計(jì) 170
第五部分 設(shè)計(jì)一個(gè)避障尋徑四軸飛行器
第9章 避障尋徑四軸飛行器軟件
第 10章 雙目立體視覺(jué) 258
第 11章 雙目立體視覺(jué)子系統(tǒng)移植與優(yōu)化 282
第 12章 避障與路徑規(guī)劃 301
第 13章 三維地圖重建 316
參考文獻(xiàn) 324
【詳細(xì)目錄】
第 1章 概論 1
1.0 綜述 2
1.1 嵌入式系統(tǒng)開(kāi)發(fā)模式 3
1.1.1 產(chǎn)品定義與需求分析 5
1.1.2 系統(tǒng)總體設(shè)計(jì) 5
1.1.3 軟硬件設(shè)計(jì) 5
1.1.4 軟硬件集成 5
1.1.5 系統(tǒng)測(cè)試 5
1.2 嵌入式系統(tǒng)軟件結(jié)構(gòu) 5
1.2.1 輪詢(xún)系統(tǒng) 6
1.2.2 前后臺(tái)系統(tǒng) 6
1.2.3 多任務(wù)系統(tǒng) 6
1.3 多任務(wù)實(shí)時(shí)操作系統(tǒng)aCoral 8
1.4 四軸飛行器簡(jiǎn)介 9
1.4.1 無(wú)人機(jī) 10
1.4.2 四軸飛行器 10
1.4.3 立體視覺(jué) 11
1.4.4 同步定位與地圖構(gòu)建 12
1.4.5 路徑規(guī)劃 13
1.5 從多任務(wù)實(shí)時(shí)操作系統(tǒng)到四軸飛行器設(shè)計(jì) 13
1.6 本書(shū)結(jié)構(gòu) 14
1.7 本章小結(jié) 15
習(xí)題1 15
第 一部分 設(shè)計(jì)一個(gè)輪詢(xún)系統(tǒng)
第 2章 輪詢(xún)系統(tǒng) 17
2.0 綜述 18
2.1 輪詢(xún)系統(tǒng)設(shè)計(jì) 18
2.1.1 程序框架 18
2.1.2 調(diào)度 18
2.1.3 典型系統(tǒng) 20
2.2 搭建開(kāi)發(fā)環(huán)境 20
2.3 啟動(dòng)Mini2440 23
2.3.1 為什么需要啟動(dòng) 23
2.3.2 啟動(dòng)流程 24
2.4 輪詢(xún)的實(shí)現(xiàn) 38
2.5 本章小結(jié) 39
習(xí)題2 39
第二部分 設(shè)計(jì)一個(gè)前后臺(tái)系統(tǒng)
第3章 前后臺(tái)系統(tǒng) 41
3.0 綜述 42
3.1 前后臺(tái)系統(tǒng)簡(jiǎn)介 42
3.1.1 應(yīng)用場(chǎng)景 42
3.1.2 運(yùn)行方式 43
3.1.3 性能評(píng)估指標(biāo) 43
3.1.4 前后臺(tái)交互 44
3.1.5 典型系統(tǒng) 44
3.2 中斷和中斷服務(wù) 45
3.2.1 中斷 45
3.2.2 中斷服務(wù) 46
3.3 Arm的中斷機(jī)制 46
3.4 一個(gè)簡(jiǎn)單的S3C2440A中斷服務(wù) 46
3.4.1 中斷返回 47
3.4.2 中斷注冊(cè) 48
3.4.3 狀態(tài)保存和現(xiàn)場(chǎng)恢復(fù) 50
3.5 前后臺(tái)系統(tǒng)的實(shí)現(xiàn) 51
3.5.1 啟動(dòng)Mini2440 51
3.5.2 后臺(tái)主循環(huán) 51
3.5.3 前臺(tái)中斷處理 53
3.6 本章小結(jié) 55
習(xí)題3 55
第三部分 設(shè)計(jì)一個(gè)實(shí)時(shí)操作系統(tǒng)內(nèi)核
第4章 多任務(wù)實(shí)時(shí)操作系統(tǒng) 57
4.0 綜述 58
4.1 aCoral線程 59
4.1.1 描述線程 60
4.1.2 線程優(yōu)先級(jí) 67
4.2 調(diào)度策略 70
4.2.1 線程調(diào)度分層結(jié)構(gòu) 70
4.2.2 調(diào)度策略分類(lèi) 71
4.2.3 描述調(diào)度策略 71
4.2.4 查找調(diào)度策略 73
4.2.5 注冊(cè)調(diào)度策略 73
4.3 基本調(diào)度機(jī)制 76
4.3.1 創(chuàng)建線程 76
4.3.2 調(diào)度線程 89
4.3.3 線程退出 100
4.3.4 其他基本機(jī)制 103
4.4 事件處理機(jī)制 110
4.4.1 中斷 110
4.4.2 時(shí)鐘管理 125
4.5 本章小結(jié) 128
習(xí)題4 128
第四部分 設(shè)計(jì)一個(gè)具備基本飛行功能的四軸飛行器
第5章 四軸飛行器飛行基本原理 131
5.0 綜述 132
5.1 四軸飛行器機(jī)體結(jié)構(gòu) 132
5.2 四軸飛行器飛行模式 132
5.2.1 懸停、上升、下降 133
5.2.2 俯仰 133
5.2.3 滾轉(zhuǎn) 134
5.2.4 偏航 134
5.2.5 四軸飛行器設(shè)計(jì)的關(guān)鍵點(diǎn) 135
5.3 飛行控制 136
5.3.1 遙控器發(fā)送控制命令 137
5.3.2 姿態(tài)傳感器確定位姿 137
5.3.3 飛行的反饋控制 138
5.4 用數(shù)學(xué)描述飛行器位姿與運(yùn)動(dòng) 139
5.4.1 剛體在三維空間中的運(yùn)動(dòng) 139
5.4.2 向量的旋轉(zhuǎn) 139
5.4.3 用變換矩陣描述三維剛體旋轉(zhuǎn)與位移 140
5.4.4 用旋轉(zhuǎn)向量描述旋轉(zhuǎn)與平移 142
5.4.5 用歐拉角描述旋轉(zhuǎn) 143
5.4.6 用四元數(shù)描述旋轉(zhuǎn) 144
5.4.7 四元數(shù)與歐拉角的相互轉(zhuǎn)換 146
5.5 姿態(tài)解算 148
5.6 穩(wěn)定性控制 150
5.7 本章小結(jié) 153
習(xí)題5 153
第6章 基于aCoral的四軸飛行器總體設(shè)計(jì) 154
6.0 綜述 155
6.1 選定四軸飛行器機(jī)體 155
6.1.1 核心板 155
6.1.2 支臂 156
6.2 選定嵌入式硬件方案 156
6.3 選定嵌入式操作系統(tǒng) 157
6.4 確定軟件總體結(jié)構(gòu) 158
6.5 本章小結(jié) 159
習(xí)題6 160
第7章 硬件系統(tǒng)設(shè)計(jì) 161
7.0 綜述 162
7.1 理解STM32 Nucleo嵌入式評(píng)估板 162
7.2 擴(kuò)展評(píng)估板 164
7.3 設(shè)計(jì)轉(zhuǎn)接板 165
7.3.1 確定輸入輸出設(shè)備數(shù)據(jù) 165
7.3.2 確定評(píng)估板與擴(kuò)展板連接方案 165
7.3.3 生成元件庫(kù) 166
7.3.4 繪制轉(zhuǎn)接板原理圖 166
7.3.5 設(shè)計(jì)與制作轉(zhuǎn)接板PCB圖 166
7.3.6 測(cè)試轉(zhuǎn)接板 168
7.4 設(shè)計(jì)一體化控制主板 169
7.5 本章小結(jié) 169
習(xí)題7 169
第8章 軟件系統(tǒng)設(shè)計(jì) 170
8.0 綜述 171
8.1 移植aCoral 171
8.1.1 硬件抽象層移植 172
8.1.2 項(xiàng)目移植 187
8.2 用DARTS設(shè)計(jì)應(yīng)用系統(tǒng) 191
8.2.1 DARTS 192
8.2.2 系統(tǒng)數(shù)據(jù)流圖 195
8.2.3 任務(wù)劃分 197
8.2.4 定義任務(wù)間接口 201
8.2.5 任務(wù)設(shè)計(jì)與實(shí)現(xiàn) 202
8.2.6 驅(qū)動(dòng)程序?qū)崿F(xiàn) 224
8.2.7 優(yōu)化系統(tǒng)設(shè)計(jì) 231
8.3 本章小結(jié) 246
習(xí)題8 246
第五部分 設(shè)計(jì)一個(gè)避障尋徑四軸飛行器
第9章 避障尋徑四軸飛行器軟件
總體設(shè)計(jì) 248
9.0 綜述 249
9.1 選定開(kāi)發(fā)平臺(tái) 249
9.1.1 經(jīng)緯M100 250
9.1.2 異構(gòu)多核嵌入式平臺(tái) 250
9.1.3 雙目視覺(jué)傳感器 252
9.1.4 平臺(tái)物理結(jié)構(gòu) 252
9.2 軟件總體設(shè)計(jì) 253
9.3 本章小結(jié) 257
習(xí)題9 257
第 10章 雙目立體視覺(jué) 258
10.0 綜述 259
10.1 雙目立體視覺(jué)基本原理 259
10.2 標(biāo)定雙目立體相機(jī) 262
10.2.1 內(nèi)參 262
10.2.2 外參 263
10.2.3 參數(shù)標(biāo)定 264
10.3 評(píng)估雙目立體視覺(jué)算法 268
10.4 實(shí)現(xiàn)基于ELAS的雙目立體視覺(jué)算法 271
10.4.1 立體匹配模型 271
10.4.2 ELAS立體匹配模型的總體流程 273
10.4.3 使用描述符 274
10.4.4 提取支撐點(diǎn) 276
10.4.5 計(jì)算像素點(diǎn)視差 277
10.5 通過(guò)視差圖生成點(diǎn)云圖 279
10.6 本章小結(jié) 280
習(xí)題10 280
第 11章 雙目立體視覺(jué)子系統(tǒng)移植與優(yōu)化 282
11.0 綜述 283
11.1 ELAS算法性能評(píng)估 283
11.2 在TK1嵌入式平臺(tái)上移植與優(yōu)化ELAS算法 283
11.2.1 描述符的移植與優(yōu)化 284
11.2.2 支撐點(diǎn)及視差計(jì)算的移植與優(yōu)化 287
11.2.3 像素點(diǎn)視差計(jì)算的移植與優(yōu)化 289
11.2.4 零復(fù)制與GPU共享內(nèi)存 293
11.2.5 視差到點(diǎn)云圖轉(zhuǎn)換的優(yōu)化 296
11.3 雙目立體視覺(jué)子系統(tǒng)功能與性能測(cè)試 296
11.4 本章小結(jié) 300
習(xí)題11 300
第 12章 避障與路徑規(guī)劃 301
12.0 綜述 302
12.1 從點(diǎn)云圖中提取障礙物 302
12.2 動(dòng)態(tài)窗口法 304
12.2.1 基本原理 304
12.2.2 飛行器運(yùn)動(dòng)模型 305
12.2.3 生成候選軌跡 306
12.2.4 評(píng)價(jià)候選軌跡 308
12.3 超聲波測(cè)距避障 310
12.4 功能與性能測(cè)試 310
12.4.1 障礙物提取測(cè)試 310
12.4.2 路徑規(guī)劃測(cè)試 311
12.4.3 整體避障與路徑規(guī)劃測(cè)試 313
12.5 本章小結(jié) 314
習(xí)題12 315
第 13章 三維地圖重建 316
13.0 綜述 317
13.1 SLAM在本系統(tǒng)的應(yīng)用 317
13.2 LIBVISO框架 319
13.3 特征匹配與運(yùn)動(dòng)估計(jì) 320
13.4 立體匹配與三維重建 321
13.5 SLAM系統(tǒng)功能測(cè)試 322
13.6 本章小結(jié) 323
習(xí)題13 323
參考文獻(xiàn) 324