定 價:88 元
叢書名:物聯(lián)網(wǎng)與人工智能應(yīng)用開發(fā)叢書
- 作者:工業(yè)和信息化部人才交流中心
- 出版時間:2018/5/1
- ISBN:9787121340499
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP332.3
- 頁碼:440
- 紙張:
- 版次:01
- 開本:16開
本書圍繞SDK的開發(fā)展開,通過分析MCU內(nèi)核與外設(shè)工作原理,結(jié)合API介紹各個外設(shè)的編程和應(yīng)用。希望通過本書,使傳統(tǒng)單片機(jī)工程師面向寄存器的開發(fā)思維得到一些轉(zhuǎn)變,能夠嘗試運(yùn)用成熟的軟件框架來高效地完成應(yīng)用開發(fā)。本書可供具有一定C語言知識和硬件基礎(chǔ)的嵌入式系統(tǒng)工程師使用,同時也可以作為高等院校電子信息工程相關(guān)專業(yè)的教學(xué)參考書。
工業(yè)和信息化部人才交流中心(以下簡稱中心)創(chuàng)建于1985年1月,1992年10月成為獨(dú)立事業(yè)法人單位,工業(yè)和信息化部所屬的黨政機(jī)關(guān)一類事業(yè)單位(正局級),是經(jīng)中央機(jī)構(gòu)編制委員會辦公室批準(zhǔn),國家事業(yè)單位登記管理局注冊登記,是工業(yè)和信息化部在人才培養(yǎng)、人才交流、智力引進(jìn)、國際交流、會議展覽等方面的支撐機(jī)構(gòu);也是人力資源和社會保障部、工業(yè)和信息化部“全國信息專業(yè)技術(shù)人才知識更新工程”及“信息化工程師”項(xiàng)目實(shí)施承辦單位。
目錄
第1章 微控制器開發(fā)基礎(chǔ) 001
1.1 微控制器的發(fā)展與趨勢 002
1.2 ARM Cortex-M微控制器內(nèi)核 006
1.2.1 ARM與Cortex處理器的發(fā)展 006
1.2.2 Cortex-M家族成員 007
1.2.3 Cortex-M內(nèi)核技術(shù)特點(diǎn)與優(yōu)勢 010
1.3 CMSIS微控制器外設(shè)庫 014
1.4 Cortex-M集成開發(fā)環(huán)境和調(diào)試工具 018
1.4.1 集成開發(fā)環(huán)境 018
1.4.2 調(diào)試工具 019
1.5 恩智浦LPC5411X系列低功耗通用微控制器 021
1.5.1 家族成員與功能概要 021
1.5.2 系統(tǒng)框圖與內(nèi)存映射 023
1.5.3 評估板與擴(kuò)展板介紹 024
1.6 小結(jié) 025
第2章 MCUXpresso軟件與工具開發(fā)套件 027
2.1 MCUXpresso IDE集成開發(fā)環(huán)境 028
2.1.1 MCUXpresso IDE的主要特性 029
2.1.2 安裝MCUXpresso IDE 029
2.1.3 初識MCUXpresso IDE 031
2.2 MCUXpresso Config Tools配置工具 033
2.2.1 SDK生成器工具 033
2.2.2 Pins Tool引腳分配工具 036
2.2.3 Clocks Tool時鐘配置工具 037
2.3 MCUXpresso SDK軟件開發(fā)套件 038
2.3.1 架構(gòu)分析 038
2.3.2 文件目錄 040
2.3.3 外設(shè)驅(qū)動命名與依賴 041
2.3.4 外設(shè)驅(qū)動API 043
2.4 實(shí)例:Hello world 052
2.5 小結(jié) 058
第3章 微控制器的啟動過程 059
3.1 上電啟動后硬件自動執(zhí)行的操作序列 061
3.2 從復(fù)位中斷向量進(jìn)入C程序的世界 062
3.2.1 復(fù)位中斷函數(shù)概述 062
3.2.2 詳解LPC54114的啟動代碼 064
3.3 LPC54114的BootLoader 075
3.3.1 BootLoader概述 075
3.3.2 BootLoader在LPC54114上的應(yīng)用 076
3.4 小結(jié) 081
第4章 時鐘子系統(tǒng)與管理 083
4.1 LPC54114的片上時鐘系統(tǒng) 084
4.1.1 時鐘源 085
4.1.2 上電后默認(rèn)情況下的時鐘系統(tǒng) 086
4.1.3 使用PLL獲取更高頻率的時鐘信號 087
4.2 MCUXpresso SDK時鐘管理API 090
4.2.1 常用時鐘管理API 090
4.2.2 MCUXpresso SDK應(yīng)用程序中配置時鐘的典型框架 094
4.3 MCUXpresso時鐘配置工具Clock Tool簡介 095
4.3.1 概述 095
4.3.2 在Clock Tool中創(chuàng)建LPC54114Xpresso板配置工程 097
4.4 實(shí)例:使用PLL倍頻輸出產(chǎn)生系統(tǒng)時鐘 102
4.5 小結(jié) 106
第5章 IO子系統(tǒng)與中斷 107
5.1 IO子系統(tǒng)的相關(guān)硬件模塊 108
5.1.1 IOCON IO引腳配置模塊 108
5.1.2 GPIO通用輸入/輸出模塊 109
5.1.3 PINT 引腳中斷模塊 110
5.1.4 INPUT MUX 輸入復(fù)用器 110
5.2 MCUXpresso SDK中的GPIO與PINT驅(qū)動 111
5.2.1 GPIO驅(qū)動API 112
5.2.2 PINT驅(qū)動API 113
5.3 MCUXpresso時鐘配置工具Pin Tool應(yīng)用 116
5.3.1 概述 116
5.3.2 在MCUXpresso SDK工程中用Pin Tool分配引腳功能 117
5.4 實(shí)例:通過按鍵控制LED 121
5.5 小結(jié) 125
第6章 DMA原理與應(yīng)用 127
6.1 DMA控制器概述 128
6.2 DMA特性和內(nèi)部框圖 128
6.2.1 LPC5411x DMA特性 128
6.2.2 DMA內(nèi)部框圖 129
6.3 DMA 外部引腳描述 130
6.4 DMA的幾個概念和功能說明 131
6.4.1 DMA的工作原理 131
6.4.2 DMA請求和觸發(fā) 131
6.4.3 DMA傳輸描述符 134
6.4.4 DMA傳輸模式 136
6.4.5 DMA低功耗模式 139
6.5 DMA模塊的SDK驅(qū)動介紹 140
6.6 實(shí)例:從DMA Memory到Memory的數(shù)據(jù)傳輸 144
6.6.1 環(huán)境準(zhǔn)備 145
6.6.2 代碼分析 145
6.6.3 實(shí)驗(yàn)現(xiàn)象 148
6.7 小結(jié) 149
第7章 ADC數(shù)模轉(zhuǎn)換器原理與應(yīng)用 151
7.1 逐次逼近型ADC工作原理和過程 153
7.2 ADC數(shù)模轉(zhuǎn)換器常用性能指標(biāo) 154
7.3 ADC特性和內(nèi)部框圖 155
7.3.1 ADC特性 155
7.3.2 ADC內(nèi)部框圖 156
7.4 ADC外部引腳描述 156
7.5 ADC功能說明 157
7.5.1 ADC時鐘 157
7.5.2 轉(zhuǎn)換序列 158
7.5.3 觸發(fā)轉(zhuǎn)換 159
7.5.4 轉(zhuǎn)換模式 159
7.5.5 轉(zhuǎn)換輸出 160
7.5.6 偏移誤差校準(zhǔn) 161
7.6 ADC模塊的SDK驅(qū)動介紹 161
7.7 實(shí)例:使用ADC測量內(nèi)部溫度 164
7.7.1 環(huán)境準(zhǔn)備 164
7.7.2 代碼分析 165
7.7.3 現(xiàn)象描述 170
7.8 小結(jié) 171
第8章 USART異步串行通信接口原理與應(yīng)用 173
8.1 USART控制器概述 174
8.2 USART模塊特性和內(nèi)部框圖 175
8.2.1 LPC5411x USART特性 175
8.2.2 LPC5411x USART內(nèi)部框圖 176
8.3 Flexcomm接口概述 176
8.3.1 Flexcomm功能說明 177
8.3.2 Flexcomm內(nèi)部框圖 177
8.4 USART外部引腳描述 178
8.4.1 USART模塊引腳功能定義 178
8.4.2 USART引腳配置說明 179
8.5 USART基本功能說明 179
8.5.1 USART模塊初始化 180
8.5.2 USART的時鐘源與波特率配置 180
8.5.3 收發(fā)控制 182
8.5.4 低功耗模式下USART的喚醒 182
8.6 USART模塊的SDK驅(qū)動介紹 183
8.7 USART數(shù)據(jù)收發(fā) 189
8.7.1 環(huán)境準(zhǔn)備 190
8.7.2 代碼分析 191
8.7.3 現(xiàn)象描述 195
8.8 小結(jié) 195
第9章 SPI同步串行通信接口原理與應(yīng)用 197
9.1 SPI控制器概述 198
9.2 SPI特性和內(nèi)部框圖 198
9.2.1 LPC5411x SPI特性 198
9.2.2 SPI內(nèi)部框圖 199
9.3 SPI 外部引腳描述 200
9.4 SPI功能說明 201
9.4.1 SPI工作模式 201
9.4.2 SPI時鐘源和數(shù)據(jù)傳輸速率 203
9.4.3 超出16位的數(shù)據(jù)傳輸 204
9.4.4 低功耗模式下SPI喚醒 205
9.4.5 SPI數(shù)據(jù)幀延遲 205
9.5 SPI模塊的SDK驅(qū)動介紹 208
9.6 實(shí)例:SPI讀/寫外部Flash 214
9.6.1 實(shí)驗(yàn)?zāi)康暮铜h(huán)境準(zhǔn)備 215
9.6.2 代碼分析 216
9.6.3 實(shí)驗(yàn)現(xiàn)象 224
9.7 小結(jié) 225
第10章 I2C總線接口與應(yīng)用 227
10.1 I2C控制器概述 228
10.2 I2C特性和內(nèi)部框圖 229
10.2.1 LPC5411x I2C特性 229
10.2.2 I2C內(nèi)部框圖 229
10.3 I2C外部引腳描述 230
10.4 I2C功能說明 232
10.4.1 I2C協(xié)議簡介 232
10.4.2 I2C總線速率和時鐘延伸 233
10.4.3 I2C的尋址方式和低功耗喚醒 235
10.4.4 I2C的死鎖和超時機(jī)制 238
10.5 I2C模塊的SDK驅(qū)動 241
10.6 實(shí)例:I2C中斷方式實(shí)現(xiàn)數(shù)據(jù)收發(fā) 249
10.6.1 實(shí)驗(yàn)?zāi)康暮陀布娐吩O(shè)計 249
10.6.2 實(shí)例軟件設(shè)計 250
10.6.3 main文件 251
10.6.4 現(xiàn)象描述 255
10.7 小結(jié) 255
第11章 I2S總線協(xié)議與應(yīng)用 257
11.1 I2S總線協(xié)議簡介 258
11.2 I2S特性和內(nèi)部框圖 260
11.2.1 I2S特性 260
11.2.2 I2S內(nèi)部框圖 261
11.3 I2S外部引腳描述 262
11.4 I2S功能說明 262
11.4.1 I2S時鐘 263
11.4.2 數(shù)據(jù)速率 263
11.4.3 數(shù)據(jù)幀格式和模式 264
11.4.4 FIFO緩沖區(qū)的使用方法 266
11.5 I2S模塊的SDK驅(qū)動介紹 267
11.6 實(shí)例:使用I2S中斷方式傳輸播放音頻 271
11.6.1 環(huán)境準(zhǔn)備 271
11.6.2 代碼分析 272
11.6.3 現(xiàn)象描述 276
11.7 小結(jié) 277
第12章 FlashlAP在應(yīng)用編程模塊的應(yīng)用 279
12.1 IAP在應(yīng)用編程的通用基礎(chǔ)知識 280
12.2 IAP命令執(zhí)行詳解 280
12.3 IAP模塊的SDK驅(qū)動介紹 283
12.4 使用IAP驅(qū)動讀/寫內(nèi)部Flash 284
12.4.1 環(huán)境準(zhǔn)備 284
12.4.2 代碼分析 284
12.4.3 現(xiàn)象描述 287
12.5 小結(jié) 287
第13章 FreeRTOS實(shí)時多任務(wù)操作系統(tǒng)原理與應(yīng)用 289
13.1 嵌入式操作系統(tǒng)綜述 290
13.1.1 裸跑與使用操作系統(tǒng)的對比 290
13.1.2 嵌入式操作系統(tǒng)基本概念 291
13.2 FreeRTOS實(shí)時多任務(wù)操作系統(tǒng)介紹 294
13.2.1 FreeRTOS實(shí)時多任務(wù)操作系統(tǒng)特色 294
13.2.2 FreeRTOS基本功能解讀 295
13.2.3 FreeRTOS的軟件授權(quán) 298
13.3 FreeRTOS的底層結(jié)構(gòu)與ARM平臺的移植 298
13.3.1 FreeRTOS源碼結(jié)構(gòu)分析 299
13.3.2 內(nèi)核配置頭文件 301
13.3.3 移植宏定義文件 302
13.3.4 ARM平臺的移植實(shí)現(xiàn) 304
13.3.5 tick定時器——fsl_tickless相關(guān)內(nèi)容說明 308
13.3.6 portasm.s匯編 310
13.4 MCUXpresso SDK中基于FreeRTOS的外設(shè)驅(qū)動 310
13.4.1 具有操作系統(tǒng)功能的驅(qū)動介紹 310
13.4.2 FreeRTOS下的USART發(fā)送與接收 312
13.5 LPC5411x SDK中的FreeRTOS例程分析 315
13.5.1 環(huán)境準(zhǔn)備 315
13.5.2 Main函數(shù)分析 315
13.5.3 FreeRTOS的多任務(wù)代碼分析 317
13.5.4 操作系統(tǒng)環(huán)境的調(diào)試與實(shí)驗(yàn)說明 320
13.6 小結(jié) 321
第14章 異構(gòu)雙核處理器框架與應(yīng)用 323
14.1 多處理器計算 324
14.2 異構(gòu)雙核 325
14.2.1 雙核總線架構(gòu) 325
14.2.2 內(nèi)核管理 326
14.2.3 內(nèi)核間通信 327
14.2.4 雙核程序布局 327
14.3 雙核應(yīng)用分析 329
14.3.1 基于雙核的安全啟動 329
14.3.2 運(yùn)用雙核進(jìn)行顯示后處理 330
14.4 多處理器系統(tǒng)服務(wù)框架 331
14.4.1 多核管理模塊(mcmgr) 331
14.4.2 輕型遠(yuǎn)端處理器通信框架(RPMsg-Lite) 335
14.4.3 嵌入式遠(yuǎn)程過程調(diào)用(eRPC) 337
14.5 雙核應(yīng)用開發(fā) 339
14.5.1 工程配置 339
14.5.2 預(yù)定義宏 340
14.5.3 雙核啟動 341
14.6 實(shí)例:雙核遠(yuǎn)程過程調(diào)用 346
14.6.1 環(huán)境準(zhǔn)備 346
14.6.2 代碼分析 347
14.6.3 實(shí)驗(yàn)結(jié)果 349
14.7 小結(jié) 351
第15章 微控制器低功耗設(shè)計 353
15.1 系統(tǒng)能耗分析 355
15.1.1 動態(tài)功耗分析 356
15.1.2 動態(tài)功耗指標(biāo) 357
15.1.3 靜態(tài)功耗分析 360
15.1.4 靜態(tài)功耗指標(biāo) 362
15.1.5 休眠和喚醒 363
15.1.6 系統(tǒng)能耗估算 363
15.2 微控制器低功耗特性 365
15.2.1 系統(tǒng)模塊電壓調(diào)節(jié) 365
15.2.2 數(shù)字外設(shè)時鐘控制 366
15.3 微控制器低功耗應(yīng)用設(shè)計方法 366
15.3.1 硬件設(shè)計 366
15.3.2 軟件設(shè)計 367
15.4 MCUXPRESSO SDK功耗管理庫 374
15.5 小結(jié) 376
第16章 基于LPC54114和SDK的可穿戴設(shè)備原型設(shè)計 379
16.1 硬件介紹 380
16.1.1 硬件框圖 381
16.1.2 主要元器件 381
16.2 固件與應(yīng)用設(shè)計 383
16.2.1 軟件架構(gòu) 383
16.2.2 主流程 384
16.2.3 傳感器模塊 387
16.2.4 人機(jī)交互模塊 391
16.2.5 用戶輸入模塊 400
16.3 功能演示 402
16.4 小結(jié) 404