圖書內容
本書以工程實踐和套用設計作為主線,以工業領域常用的32位ARM Cortex-M3處理器STM32F103系列為核心,重點闡述了嵌入式系統設計過程中的共性方法和共性關鍵技術。在講解嵌入式系統設計方法和原理的過程中,融入了作者在嵌入系統設計方面的科研成果和開發經驗,具有理論與實踐、軟體與硬體、科研與教學的有機結合併協同互動之特色。便於讀者通過具體的工程實踐案例,輕鬆掌握枯燥的理論知識、複雜的設計方法,在實踐中全面掌握嵌入式系統的基本原理、設計方法和接口技術,以建立和提高對複雜嵌入式系統的抽象能力。
目 錄
第1章 緒 論 1
1.1 嵌入式系統概述 1
1.1.1 嵌入式系統的概述 1
1.1.2 嵌入式系統的特徵 2
1.1.3 嵌入式系統的組成 5
1.1.4 嵌入式系統的現狀及發展趨勢 6
1.2 嵌入式處理器 8
1.2.1 哈佛結構和馮諾依曼結構 8
1.2.2 CISC指令集與RISC指令集 9
1.2.3 x86指令集和ARM指令集 11
1.2.4 通用處理器(x86)與嵌入式處理器(ARM)小結 12
1.2.5 嵌入式處理器的分類 13
1.3 嵌入式作業系統 16
1.3.1 嵌入式作業系統的概述 16
1.3.2 常見的嵌入式作業系統 16
第2章 嵌入式系統工程設計概述 20
2.1 嵌入式系統設計的基本流程 20
2.1.1 需求分析 20
2.1.2 詳細說明 21
2.1.3 結構設計 21
2.1.4 組件設計 24
2.1.5 系統集成 25
2.2 嵌入式系統設計的流程模型 26
2.2.1 瀑布模型 26
2.2.2 逐步求精模型 27
2.2.3 螺旋模型 27
2.3 嵌入式系統的開發模式 28
2.3.1 面向硬體的開發模式 29
2.3.2 面向軟體的開發模式 29
2.3.3 兩種開發模式的區別與聯繫 29
第3章 ARM嵌入式處理器 31
3.1 ARM嵌入式處理器簡介 31
3.1.1 ARM處理器的特點 32
3.1.2 ARM體系結構的版本及系列 32
3.1.3 ARM處理器核系列 34
3.1.4 綜述 40
3.2 ARM Cortex-M3處理器簡介 41
3.2.1 概述 41
3.2.2 暫存器組 42
3.2.3 操作模式和特權級別 44
3.2.4 向量中斷控制器 45
3.2.5 存儲器映射 46
3.2.6 匯流排接口 46
3.2.7 存儲器保護單元 47
3.2.8 指令集 47
3.2.9 中斷和異常 48
3.2.10 調試支持 49
3.3 Cortex-M3指令系統與彙編語言基礎 49
3.3.1 彙編語言基礎 49
3.3.2 指令集 52
3.3.3 彙編語言初步套用 56
第4章 嵌入式系統的開發環境 66
4.1 嵌入式集成開發環境 67
4.1.1 嵌入式集成開發環境概述 67
4.1.2 嵌入式系統集成開發環境的組成 69
4.2 常見的嵌入式開發環境 70
4.2.1 Keil 70
4.2.2 IAR Embedded Workbench 71
4.2.3 TKStudio 73
4.2.4 GCC 80
4.2.5 其他開發環境 80
4.3 ARM嵌入式集成開發環境的對比與選擇 82
4.3.1 主要ARM嵌入式集成開發環境的對比 82
4.3.2 ARM嵌入式集成開發環境的選擇 85
4.4 開發調試工具 85
4.4.1 JTAG仿真器 85
4.4.2 其他開發調試工具 89
第5章 STM32系列微控制器開發基礎 90
5.1 STM32系列微控制器概述 90
5.1.1 STM32系列微控制器概述 90
5.1.2 STM32系列微控制器的優勢 91
5.1.3 STM32系列微控制器的套用 91
5.2 STM32F103系列微控制器 92
5.2.1 主要特點 92
5.2.2 總體結構 94
5.2.3 功能概述 97
5.2.4 片上外設概述 99
5.3 基於標準外設庫的軟體開發 103
5.3.1 STM32標準外設庫概述 103
5.3.2 使用標準外設庫開發的優勢 104
5.3.3 STM32F10xxx標準外設庫結構與檔案描述
104
5.3.4 STM32F10xxx標準外設庫的使用 108
5.4 使用Keil MDK以及標準外設庫創建STM32工
程 116
5.4.1 開發工具與開發環境 117
5.4.2 MDK的操作與設定 118
5.4.3 使用Keil MDK運行第一個STM32F10x程式
125
第6章 STM32系列微控制器 存儲器與外設 137
6.1 存儲器和匯流排結構 137
6.1.1 系統結構 137
6.1.2 存儲器組織 139
6.1.3 存儲器映射 139
6.1.4 啟動配置 140
6.2 電源控制 141
6.2.1 電源 141
6.2.2 電源管理 143
6.2.3 低功耗模式 144
6.2.4 睡眠模式 145
6.2.5 停止模式 146
6.2.6 待機模式 147
6.2.7 低功耗模式下的自動喚醒(AWU) 148
6.3 復位和時鐘 149
6.3.1 復位 149
6.3.2 時鐘 150
6.4 GPIO 155
6.4.1 GPIO簡介 155
6.4.2 GPIO功能描述 156
6.4.3 GPIO配置 157
6.5 中斷和事件 158
6.5.1 嵌套向量中斷控制器 158
6.5.2 外部中斷/事件控制器 161
6.6 DMA控制器 166
6.6.1 簡介 166
6.6.2 功能描述 167
6.6.3 DMA套用實例 171
第7章 嵌入式系統接口套用基礎 173
7.1 嵌入式系統的接口類型 173
7.2 嵌入式系統的電平匹配 174
7.2.1 電平匹配概述 174
7.2.2 接口相關電路及概念 177
7.2.3 電平匹配的電路設計 180
7.3 嵌入式系統通信形式的匹配 184
7.4 嵌入式系統的電氣隔離 185
7.4.1 電氣隔離概述 185
7.4.2 供電系統的隔離 186
7.4.3 數位訊號的隔離 187
7.4.4 模擬信號的隔離 193
7.4.5 嵌入式系統的電氣隔離設計 198
7.5 嵌入式系統接口的保護 199
7.5.1 嵌入式系統接口的電源保護 199
7.5.2 靜電保護 201
7.6 嵌入式系統接口的控制方式 202
7.6.1 程式輪詢方式 202
7.6.2 中斷處理方式 202
7.6.3 直接存儲器存取DMA傳送方式 202
第8章 基於STM32系列微控制器的接口套用實踐 204
8.1 USART串列接口及其套用 204
8.1.1 USART串列接口簡介 204
8.1.2 STM32F10x系列USART功能描述 206
8.1.3 STM32 USART接口套用實例 214
8.2 SPI串列接口及其套用 218
8.2.1 SPI串列接口簡介 218
8.2.2 STM32 SPI功能描述 222
8.2.3 STM32 SPI匯流排套用實例 223
8.3 I2C匯流排及其套用 225
8.3.1 I2C匯流排簡介 225
8.3.2 STM32 I2C簡介 228
8.3.3 STM32 I2C功能描述 229
8.3.4 STM32 I2C匯流排套用實例 233
8.4 CAN匯流排及其套用 240
8.4.1 CAN匯流排簡介 240
8.4.2 CAN匯流排的系統結構及數據傳輸 241
8.5 STM32 bxCAN 244
8.5.1 功能特點 244
8.5.2 bxCAN總體描述 245
8.5.3 bxCAN工作模式 246
8.5.4 測試模式 247
8.5.5 bxCAN功能描述 248
8.6 FSMC接口及其套用 254
8.6.1 STM32 FSMC 254
8.6.2 STM32 FSMC外部設備地址映像 256
8.6.3 FSMC套用實例 257
8.7 USB串列接口及其套用 264
8.7.1 USB匯流排概述 264
8.7.2 USB匯流排數據傳輸 266
8.7.3 USB OTG 266
8.7.4 USB接口器件 267
8.7.5 STM32 USB功能描述 267
8.8 1-Wire單匯流排及其套用 269
8.8.1 1-Wire單匯流排及其連線 269
8.8.2 1-Wire單匯流排器件DS18B20的套用 271
8.8.3 基於STM32的DS18B20操作實例 275
8.9 數據採集接口及其套用設計 279
8.9.1 數據採集概述 279
8.9.2 數據採集系統的結構 280
8.9.3 A/D轉換器的量化與編碼 286
8.9.4 STM32F10x 系列內置ADC簡介 288
8.9.5 STM32F10x 系列內置ADC功能描述 289
8.10 常用人機互動接口及其套用設計 293
8.10.1 常用鍵盤接口設計 293
8.10.2 LED顯示器件及接口設計 297
8.10.3 串口屏 300
第9章 嵌入式系統工程開發實戰 302
9.1 需求分析 302
9.1.1 需求背景 302
9.1.2 主要功能 303
9.2 詳細說明 303
9.3 結構設計 304
9.3.1 系統架構設計 304
9.3.2 主要元器件與開發平台的選擇 305
9.3.3 主要功能模組的連線 307
9.3.4 控制器最終結構 308
9.4 組件設計 308
9.4.1 硬體電路的設計 308
9.4.2 主要軟體部分的設計 318
9.4.3 控制器的PCB設計 327
9.5 系統集成 328
9.5.1 子功能模組之間的集成 328
9.5.2 系統的集成測試 328
參考文獻 329