具體描述
內容簡介
本書是一本係統講解嵌入式係統架構的書,講述瞭闆級和FPGA級兩種典型架構。全書分為三部分。第壹部分主要介紹瞭嵌入式係統;第二部分介紹嵌入式係統的硬件開發;第三部分介紹嵌入式係統的軟件開發;第四部分介紹軟硬件協同開發。 目錄
齣版者的話
第1版推薦序
緻謝
關於作者
第一部分 嵌入式係統簡介
第1章 嵌入式係統設計的係統化方法 2
1.1 什麼是嵌入式係統 2
1.2 嵌入式係統的體係結構簡介 3
1.3 嵌入式係統模型 5
1.4 為什麼使用整體化、體係結構化的係統工程方法?黃金法則是什麼 6
1.5 小結 11
習題 11
尾注 13
第2章 瞭解設計標準 14
2.1 編程語言概述及其標準示例 20
2.1.1 影響嵌入式係統體係結構的編程語言示例:腳本語言、Java和.NET 22
2.1.2 垃圾迴收機製 25
2.1.3 處理Java字節碼 27
2.2 標準與網絡 30
2.2.1 互連設備間的距離 30
2.2.2 物理介質 31
2.2.3 網絡架構 33
2.2.4 OSI模型 33
2.3 基於多種標準的設備示例:數字電視(DTV) 43
2.4 小結 55
習題 56
尾注 57
第二部分 嵌入式硬件
第3章 嵌入式硬件的組件和嵌入式係統闆 60
3.1 學習硬件的第一節課:學習讀懂原理圖 60
3.2 嵌入式係統闆和馮·諾依曼模型 63
3.3 給硬件供電 65
3.4 基礎硬件材料:導體、絕緣體和半導體 67
3.5 電路闆上和芯片中常見的無源元件:電阻器、電容器和電感器 70
3.5.1 電阻器 70
3.5.2 電容器 73
3.5.3 電感器 74
3.6 半導體以及處理器和存儲器的有源構建模塊 75
3.6.1 二極管 75
3.6.2 晶體管 76
3.6.3 從基本的門電路構建齣更復雜的電路 80
3.6.4 時序邏輯和時鍾 81
3.7 全部整閤到一起:集成電路 83
3.8 小結 85
習題 85
尾注 89
第4章 嵌入式處理器 90
4.1 ISA體係結構模型 92
4.1.1 功能 92
4.1.2 ISA模型 97
4.2 處理器內部設計 102
4.2.1 中央處理單元 104
4.2.2 片上存儲器 115
4.2.3 處理器I/O 124
4.2.4 處理器總綫 141
4.3 處理器性能 142
4.4 閱讀處理器的數據手冊 144
4.5 小結 153
習題 153
尾注 155
第5章 闆載存儲器 156
5.1 ROM 159
5.2 RAM 162
5.3 輔助存儲器 168
5.4 外部存儲器的存儲管理 171
5.5 闆載存儲器及其性能 172
5.6 小結 173
習題 173
尾注 174
第6章 闆載 I/O 175
6.1 數據管理:串行I/O與並行I/O 177
6.1.1 串行I/O 177
6.1.2 並行I/O 184
6.2 互連I/O組件 191
6.2.1 互連I/O設備和嵌入式係統闆 191
6.2.2 互連I/O控製器和主CPU 193
6.3 I/O與性能 193
6.4 小結 194
習題 194
尾注 197
第7章 闆載總綫 198
7.1 總綫仲裁和時序 199
7.2 將總綫與其他闆載組件集成 206
7.3 總綫性能 207
7.4 小結 207
習題 208
尾注 209
第三部分 嵌入式軟件介紹
第8章 設備驅動程序 213
8.1 示例1:中斷處理的設備驅動程序 216
8.1.1 中斷優先級 218
8.1.2 上下文切換 221
8.1.3 中斷設備驅動程序僞代碼示例 222
8.1.4 中斷處理及其性能 228
8.2 示例2:存儲器設備驅動程序 229
8.3 示例3:闆載總綫設備驅動程序 246
8.4 闆載I/O驅動程序示例 251
8.4.1 示例4:初始化以太網驅動程序 251
8.4.2 示例5:初始化RS-232驅動程序 264
8.5 小結 268
習題 268
尾注 270
第9章 嵌入式操作係統 271
9.1 什麼是進程 274
9.2 多任務和進程管理 276
9.2.1 進程實現 276
9.2.2 進程調度 285
9.2.3 任務間通信和同步 294
9.3 內存管理 299
9.3.1 用戶存儲空間 300
9.3.2 內核存儲空間 308
9.4 I/O和文件係統管理 309
9.5 操作係統標準示例:POSIX 310
9.6 操作係統性能指南 312
9.7 選擇正確的嵌入式操作係統以及BSP 312
9.8 小結 313
習題 314
尾注 316
第10章 中間件和應用軟件 317
10.1 什麼是中間件 317
10.2 什麼是應用程序 319
10.3 中間件示例 319
10.4 應用層軟件示例 345
10.4.1 FTP客戶端應用軟件示例 346
10.4.2 SMTP和電子郵件示例 348
10.4.3HTTP客戶端和服務器示例 352
10.4.4 對應用整閤的簡要說明 354
10.5 小結 358
習題 358
尾注 360
第四部分 係統整閤:設計與開發
第11章 定義係統:創建體係結構和設計文檔化 362
11.1 創建嵌入式係統體係結構 363
11.1.1 階段1:打好堅實的技術基礎 364
11.1.2 階段2:瞭解嵌入式係統的體係結構業務周期 364
11.1.3 階段3:詳細描述體係結構的模式和參考模型 372
11.1.4 階段4:創建體係結構的框架 378
11.1.5 階段5:體係結構的文檔化 380
11.1.6 階段6:對體係結構進行分析和評估 381
11.2 小結 382
習題 383
尾注 384
第12章 嵌入式係統設計的最後階段:實現和測試 385
12.1 設計的實現 385
12.1.1 主要的軟件實用工具:在編輯器或IDE中編寫代碼 386
12.1.2 CAD和硬件 387
12.1.3 翻譯工具:預處理器、解釋器、編譯器和鏈接器 388
12.1.4 調試工具 390
12.1.5 係統啓動 396
12.2 對設計的質量保證和測試 403
12.3
《嵌入式係統:硬件、軟件及軟硬件協同》(原書第2版) 深入探索嵌入式係統的核心技術與前沿實踐 嵌入式係統,作為現代科技的基石,滲透在我們生活的方方麵麵,從智能手機、可穿戴設備到汽車電子、工業自動化,再到航空航天和醫療設備,無處不在。它們是高度集成、功能專用的計算係統,將硬件與軟件緊密結閤,為特定應用提供高效、可靠的服務。理解嵌入式係統的運作原理、設計方法以及軟硬件協同的精髓,對於任何希望在科技領域深入發展或創新的人來說,都至關重要。 本書,《嵌入式係統:硬件、軟件及軟硬件協同》(原書第2版),正是為讀者提供一個全麵、深入且實用的學習平颱。它不僅僅是一本理論書籍,更是一份指導實踐的寶典,旨在幫助讀者係統地掌握嵌入式係統設計和開發的方方麵麵,從而能夠獨立地設計、實現和優化復雜的嵌入式解決方案。 核心內容縱覽: 本書的內容設計兼顧瞭理論深度和實踐廣度,力求為讀者構建一個紮實而全麵的知識體係。主要涵蓋以下幾個關鍵領域: 一、 嵌入式係統基礎與架構 定義與概念: 深入闡述嵌入式係統的定義、特徵(如實時性、可靠性、功耗、體積、成本等)及其與通用計算係統的區彆。理解嵌入式係統在不同應用場景下的多樣化需求。 係統架構: 剖析嵌入式係統的典型架構,包括處理器(CPU/MCU)、內存(RAM, ROM, Flash)、外設接口(GPIO, UART, SPI, I2C, USB, Ethernet等)、傳感器、執行器以及電源管理單元。重點講解不同處理器類型(如ARM, RISC-V, DSP等)的架構特點與選型考量。 硬件組件詳解: 細緻講解構成嵌入式係統的關鍵硬件組件。例如,微控製器(MCU)的核心功能,存儲器的類型與工作原理,不同通信接口的協議細節和應用場景,以及ADC/DAC在數據采集與控製中的作用。 嵌入式硬件設計流程: 介紹從需求分析到原理圖設計、PCB布局布綫、原型製作、調試與驗證的完整硬件設計流程。強調設計中的關鍵考慮因素,如功耗優化、電磁兼容性(EMC)、信號完整性等。 二、 嵌入式軟件開發 編程語言與工具鏈: 詳細介紹嵌入式開發常用的編程語言,如C/C++,以及匯編語言在特定場景下的應用。深入講解嵌入式開發工具鏈,包括交叉編譯器、鏈接器、調試器(如GDB)、仿真器以及集成開發環境(IDE)。 裸機編程與驅動開發: 掌握直接操作硬件的裸機編程技術,理解硬件寄存器的讀寫方法,以及如何編寫設備驅動程序以控製各類外設。這是深入理解硬件工作機製的基礎。 實時操作係統(RTOS): 深入探討實時操作係統在嵌入式係統中的核心作用,包括任務管理、進程間通信(IPC)、中斷處理、內存管理、時間管理等關鍵概念。詳細介紹主流RTOS(如FreeRTOS, RT-Thread, Zephyr等)的設計理念、API接口和應用技巧。學習如何設計和調度多任務係統,以滿足實時性要求。 嵌入式Linux開發: 詳細介紹在嵌入式設備上使用Linux操作係統進行開發的完整流程。包括嵌入式Linux的構建係統(如Buildroot, Yocto Project)、文件係統、內核配置與裁剪、設備樹(Device Tree)的使用、應用程序的開發與部署,以及用戶空間與內核空間的交互。 嵌入式軟件架構設計: 探討不同嵌入式軟件架構模式,如分層架構、麵嚮對象設計等,以及如何根據項目需求選擇閤適的架構。關注代碼的可讀性、可維護性、可重用性和擴展性。 調試與測試技術: 強調嵌入式軟件調試的挑戰與技巧,介紹使用硬件調試器、邏輯分析儀、示波器等工具進行問題定位。講解單元測試、集成測試和係統測試的方法,確保軟件的質量和穩定性。 三、 軟硬件協同設計與優化 係統級建模與仿真: 介紹使用模型驅動設計(MDD)和仿真工具(如MATLAB/Simulink)進行軟硬件協同設計的方法。通過模型在早期階段驗證係統行為,減少實際硬件開發中的迭代次數。 接口與通信協議: 深入研究不同硬件接口(如UART, SPI, I2C, USB, Ethernet, CAN, PCIe等)的通信協議細節,以及軟件層如何與之交互。理解中斷驅動、DMA(直接內存訪問)等高效數據傳輸機製。 中斷與異常處理: 詳解中斷的産生機製、中斷嚮量錶、中斷服務程序(ISR)的設計與優化。理解異常處理的流程,以及如何編寫健壯的代碼來應對硬件異常。 功耗管理: 探討嵌入式係統中的功耗挑戰,介紹各種低功耗設計技術,包括硬件層麵的低功耗模式(如睡眠、待機)、軟件層麵的動態電壓與頻率調整(DVFS)、任務調度優化以及外設電源管理。 實時性保證: 深入分析影響嵌入式係統實時性的因素,如中斷延遲、任務切換開銷、優先級反轉等。介紹實時調度算法、優先級繼承、優先級天花闆等技術,以確保係統在嚴格的時間約束下運行。 性能優化: 學習針對嵌入式資源的性能優化策略,包括代碼優化、算法選擇、緩存利用、內存訪問模式優化等,以在有限的硬件資源下實現最佳性能。 固件更新(OTA): 討論遠程固件更新(Over-The-Air)的設計與實現,包括安全更新機製、版本管理、迴滾策略等,這對於聯網嵌入式設備至關重要。 嵌入式係統安全: 關注嵌入式係統的安全問題,包括硬件安全特性(如安全啓動、加密引擎)、軟件安全防護(如內存保護、輸入驗證)、通信安全以及安全更新機製。 四、 前沿技術與應用實例 物聯網(IoT)與邊緣計算: 探討嵌入式係統在物聯網領域的應用,包括傳感器數據采集、通信協議(MQTT, CoAP)、雲平颱對接以及邊緣計算的概念和實現。 人工智能(AI)與機器學習(ML)在嵌入式係統中的應用: 介紹如何將輕量級的AI/ML模型部署到資源受限的嵌入式設備上,實現智能感知、決策和控製。 嵌入式係統在特定領域的應用: 通過豐富的實際案例,展示嵌入式係統在汽車電子(ADAS, Infotainment)、工業控製(PLC, SCADA)、醫療設備、消費電子、智能傢居等領域的創新應用。 本書的價值與特點: 《嵌入式係統:硬件、軟件及軟硬件協同》(原書第2版) 最大的特點在於其理論與實踐的高度融閤。它不僅僅停留在概念層麵,而是通過深入的原理剖析、詳盡的代碼示例、清晰的流程圖以及典型的應用場景,幫助讀者將知識轉化為實際能力。 係統性與全麵性: 涵蓋瞭從基礎硬件到高級軟件,再到軟硬件協同設計的完整知識鏈條,為讀者提供瞭一個無縫的學習體驗。 深度與廣度並存: 在深入講解核心概念的同時,也廣泛涉獵瞭嵌入式領域的熱點技術和前沿發展。 注重實際操作: 配備瞭大量有助於理解和掌握的實例,鼓勵讀者動手實踐,在實踐中加深理解。 權威性與前沿性: 作為“原書第2版”,它吸收瞭前一版本的精華,並根據當前技術發展進行瞭更新和補充,確保內容的權威性和前沿性。 麵嚮廣泛讀者群體: 無論您是計算機科學、電子工程、自動化等相關專業的學生,還是已經投身於嵌入式開發領域的工程師,亦或是對嵌入式係統充滿好奇的科技愛好者,本書都能為您提供寶貴的學習資源。 掌握嵌入式係統,就是掌握瞭驅動現代智能世界的核心技術。 《嵌入式係統:硬件、軟件及軟硬件協同》(原書第2版),將是您踏上這段精彩旅程的最佳夥伴。通過閱讀本書,您將能夠深刻理解嵌入式係統的運作機製,熟練掌握軟硬件協同設計的精髓,並為未來在這一充滿機遇的領域中施展纔華打下堅實的基礎。