新書推薦:
《
实用对联大全
》
售價:NT$
225.0
《
想象欧洲丛书(7册)欧洲史
》
售價:NT$
1880.0
《
没有伞的孩子必须努力奔跑
》
售價:NT$
149.0
《
做最好的班主任(李镇西教育文集版)
》
售價:NT$
230.0
《
数据驱动法律
》
售價:NT$
390.0
《
对话世界一流大学图书馆馆长
》
售價:NT$
995.0
《
揭秘立体翻翻书--我们的国宝
》
售價:NT$
490.0
《
清代贡院史
》
售價:NT$
800.0
|
編輯推薦: |
《嵌入式系统原理与物联网实践》采用了整体系统贯穿与局部深度剖析相结合、共性机理归纳与设计示例分析相呼应的思路,力求系统、生动又深入浅出地阐述嵌入式系统技术涉及的体系结构、技术原理与设计方法,并在突出技术性、新颖性的同时,又注重内容的易读性和实用性。
|
內容簡介: |
本书系统介绍了嵌入式系统的基本原理和物联网应用开发的基础知识。详细讲述了MCU应用相关的各种外设模块的工作原理和编程结构,包括ARM Cortex-M4内核、ARMv7和RISC-V指令系统、MCU系统控制、存储器、通用输入输出、定时器、模拟外设、通信接口等。同时,对嵌入式软件设计方法、RTOS、物联网技术及应用架构等做了阐述。最后介绍了两个基于阿里云IoT平台的物联网应用开发示例,以及低功耗系统设计和电磁兼容性的基础知识。
本书对嵌入式系统的基本原理和技术的描述具有通适性、不特别针对某个MCU。本书配套有完整的教学资源,包括教学课件、实验PPT、MOOC资源,以及基于ST、TI、平头哥等多种MCU开发板的配套实验例程,方便师生选用。
本书可作为高等院校计算机、电子与通信、自动化、仪器仪表等专业嵌入式系统、物联网、微机接口、单片机等课程的教材,也适合广大从事MCU和物联网应用系统开发的工程技术人员作为学习、参考用书。
|
目錄:
|
第 1 章 嵌入式系统与微控制器概述 1
1.1 嵌入式系统概述 1
1.1.1 嵌入式系统的发展 1
1.1.2 嵌入式系统的特点 2
1.1.3 嵌入式系统的组成 3
1.1.4 嵌入式系统的种类 5
1.1.5 嵌入式系统的调试方法 6
1.1.6 嵌入式系统的应用 11
1.2 嵌入式处理器概述 12
1.2.1 嵌入式处理器 12
1.2.2 嵌入式处理器的分类 13
1.2.3 典型 MCU 介绍 18
1.3 本章小结 25
1.4 习题 26
第 2 章 ARM Cortex-M 处理器27
2.1 ARM 处理器概述 27
2.2 ARM 处理器架构 28
2.2.1 ARM 体系结构版本 28
2.2.2 ARM 处理器 30
2.3 Cortex-M 处理器内核及功能介绍 32
2.4 ARM Cortex-M4 编程模型 37
2.4.1 处理器的工作模式和特权级别 37
2.4.2 ARM Cortex-M4 寄存器 38
2.4.3 ARM Cortex-M4 异常处理 41
2.5 本章小结 47
2.6 习题 47
第 3 章 指令系统 48
3.1 ARM 指令格式 48
3.2 条件码 49
3.3 ARM 指令的寻址方式 50
3.4 ARMv7 架构指令集—Thumb-2 指令集 55
3.4.1 存储器访问指令 56
3.4.2 通用数据处理指令 60
3.4.3 乘法和除法指令 65
3.4.4 分支和分支控制指令 67
3.4.5 饱和运算指令 SSAT 和 USAT 69
3.4.6 位段操作指令 70
3.4.7 杂项指令 71
3.5 RISC-V 指令集简介 75
3.5.1 RISC-V 寄存器 75
3.5.2 寻址方式和指令示例 76
3.5.3 RISC-V 标准模块和指令使用 77
3.5.4 RISC-V 和其他指令集的比较 79
3.6 汇编程序设计 80
3.6.1 ARM 汇编语言格式规范 80
3.6.2 ARM 汇编语言编写格式示例 82
3.7 本章小结 82
3.8 习题 83
第 4 章 系统控制 85
4.1 功能组件 85
4.1.1 复位控制 85
4.1.2 时钟控制 89
4.1.3 电源管理 92
4.1.4 嵌套向量中断控制器 93
4.1.5 DMA 控制器 98
4.2 初始化配置 104
4.3 操作实例 107
4.3.1 时钟例程一 107
4.3.2 时钟例程二 112
4.4 本章小结 114
4.5 习题 114
第 5 章 存储器 116
5.1 存储器分类 116
5.1.1 RAM 存储器 116
5.1.2 ROM 存储器 122
5.1.3 Flash 存储器 124
5.1.4 铁电存储器 FRAM 129
5.1.5 存储控制器 132
5.1.6 存储器性能指标 136
5.2 微控制器存储器系统 137
5.2.1 存储器地址映射 137
5.2.2 位带操作 139
5.2.3 存储格式 140
5.3 操作示例 143
5.3.1 变量地址观察例程 143
5.3.2 Flash 擦写例程 145
5.4 本章小结 149
5.5 习题 149
第 6 章 基本外设 151
6.1 通用输入/输出端口(GPIO) 151
6.1.1 GPIO 简介 151
6.1.2 GPIO 示例 154
6.1.3 初始化配置 155
6.1.4 操作实例 155
6.2 通用定时器/计数器 159
6.2.1 通用定时器简介 159
6.2.2 定时器示例 161
6.2.3 初始化配置 163
6.2.4 操作实例 163
6.3 脉冲宽度调制(PWM) 167
6.3.1 PWM 简介. 167
6.3.2 PWM 示例. 169
6.3.3 操作实例 170
6.4 看门狗定时器(WDT) 174
6.4.1 WDT 简介 175
6.4.2 MCU 中的看门狗 175
6.4.3 操作实例 176
6.5 实时时钟(RTC) 179
6.5.1 RTC 简介 179
6.5.2 RTC 示例 180
6.5.3 操作实例 181
6.6 本章小结 186
6.7 习题 187
第 7 章 通信外设 188
7.1 数字通信系统概述 188
7.2 UART 接口 189
7.2.1 UART 简介 189
7.2.2 波特率 193
7.2.3 UART 示例 193
7.2.4 初始化配置 195
7.2.5 操作实例 195
7.3 SPI 接口 198
7.3.1 SPI 简介 198
7.3.2 SPI 示例 200
7.3.3 初始化配置 202
7.3.4 操作实例 202
7.4 I2C 接口 204
7.4.1 I2C 简介 204
7.4.2 I2C 示例 209
7.4.3 初始化配置 210
7.4.4 操作实例 210
7.5 USB 接口 215
7.5.1 USB 接口概述 215
7.5.2 USB 数据传输方式 218
7.6 CAN 总线 220
7.7 本章小结 221
7.8 习题 222
第 8 章 模拟外设 223
8.1 模数转换器(ADC) 223
8.1.1 ADC 简介 223
8.1.2 ADC 性能指标 225
8.1.3 ADC 类型 226
8.1.4 初始化配置 231
8.1.5 ADC 示例 231
8.1.6 操作实例 233
8.2 模拟比较器(AC) 237
8.2.1 模拟比较器简介 238
8.2.2 初始化配置 239
8.2.3 操作实例 240
8.3 数模转换器(DAC) 242
8.3.1 DAC 简介 242
8.3.2 DAC 类型 243
8.3.3 DAC 的技术指标 244
8.3.4 操作实例 244
8.4 本章小结 247
8.5 习题 248
第 9 章 嵌入式实时操作系统. 249
9.1 常用的嵌入式操作系统 249
9.2 RTOS 基础 250
9.2.1 RTOS 的基本概念 251
9.2.2 使用 RTOS 的优势 252
9.2.3 RTOS 的功能组成 254
9.3 FreeRTOS 258
9.3.1 FreeRTOS 的体系结构 259
9.3.2 FreeRTOS 的任务调度机制 259
9.3.3 FreeRTOS 的任务管理 262
9.3.4 FreeRTOS 任务通信机制 264
9.3.5 FreeRTOS 任务同步机制 264
9.3.6 FreeRTOS 移植到微控制器的方法 265
9.3.7 Amazon FreeRTOS 265
9.4 本章小结 265
9.5 习题 266
第 10 章 嵌入式软件设计 267
10.1 嵌入式系统软件组成 267
10.1.1 嵌入式系统软件架构 267
10.1.2 初始化引导程序 BootLoader 268
10.1.3 板级支持包 BSP 269
10.1.4 设备驱动程序 271
10.1.5 库函数 271
10.2. 无 OS 的嵌入式软件设计方法 272
10.2.1 前后台系统 272
10.2.2 中断(事件)驱动系统 272
10.2.3 巡回服务系统 273
10.2.4 基于定时器的巡回服务系统 275
10.3 基于 RTOS 的嵌入式软件设计方法 275
10.3.1 FreeRTOS 的任务创建及删除示例 275
10.3.2 FreeRTOS 的任务通信示例 280
10.3.3 FreeRTOS 的任务同步(二进制信号量)示例 285
10.3.4 FreeRTOS 软件定时器示例 290
10.4 基于 Linux 的嵌入式软件设计方法 292
10.5 本章小结 295
10.6 习题 295
第 11 章 物联网技术 297
11.1 物联网概述 297
11.1.1 技术及应用框架 298
11.1.2 相关技术 299
11.2 无线通信技术 300
11.2.1 NFC 300
11.2.2 ZigBee 301
11.2.3 BLE 302
11.2.4 Wi-Fi 303
11.2.5 LoRa 304
11.2.6 NB-IoT 305
11.2.7 无线通信技术比较 306
11.3 终端技术 306
11.3.1 Android 系统 307
11.3.2 iOS 系统 308
11.3.3 Web 和 HTML 技术 309
11.4 服务器和云计算 310
11.4.1 独立服务器和云主机 310
11.4.2 云计算 311
11.5 开发平台和操作系统 312
11.5.1 IoT 开发平台 312
11.5.2 IoT 操作系统 313
11.6 MQTT 概述 315
11.6.1 MQTT 特点 315
11.6.2 MQTT 协议原理 316
11.7 物联网系统应用开发 317
11.7.1 基于单点服务器的物联网系统 318
11.7.2 基于物联网接入平台的物联网系统 318
11.7.3 基于物联网应用平台的物联网系统 320
11.8 设备联网方式 321
11.9 本章小结 322
11.10 习题 322
第 12 章 物联网开发实践 324
12.1 实验环境 324
12.2 物联网实验一 325
12.2.1 实验流程 327
12.2.2 阿里云物联网平台操作 327
12.2.3 设备端操作 340
12.2.4 实验现象与结果 344
12.2.5 设备端程序流程图 349
12.3 物联网实验二 350
12.3.1 实验流程 351
12.3.2 物联网应用开发平台配置 351
12.3.3 设备端配置 359
12.3.4 应用端操作 362
12.3.5 设备端实验流程图 366
12.4 本章小结 367
12.5 习题 367
第 13 章 低功耗与电磁兼容 368
13.1 低功耗设计方法 368
13.1.1 利用 I/O 引脚为外部器件供电 368
13.1.2 电源管理单元的设计 369
13.1.3 动态改变 CPU 的时钟频率 369
13.1.4 软件系统的低功耗设计 370
13.2 电源设计 372
13.2.1 电池的选择 373
13.2.2 超低静态电流 LDO 376
13.2.3 直流/直流转换器 377
13.3 电磁兼容性 378
13.3.1 电磁干扰的形成 378
13.3.2 电磁兼容常用元器件 380
13.3.3 电磁兼容常用技巧 381
13.4 本章小结 384
13.5 习题 384
参考文献 386
|
內容試閱:
|
嵌入式应用几乎无所不在,物联网给嵌入式系统发展带来巨大机遇。从某种角度上说,物联网应用系统也可看作嵌入式系统的网络应用,因为物联网系统中的“物”,基本上都是指各种嵌入式设备,现在嵌入式系统进入了一个新的高速发展时期。
如今国内高校计算机专业开设的嵌入式系统方面的课程,大多是原来的“微机原理与接口”和“单片机原理与应用”这类课程教学内容的延续和更新。华东师范大学计算机系目前“嵌入式系统原理与实践”这门课程就是原来“微机原理与接口”和“嵌入式系统引论”的延续、升级版。考虑到与计算机专业其他课程(如操作系统、编程语言、计算机网络等)的内容衔接,这门课程的教学内容重点是嵌入式系统硬件接口方面的知识,以及具有嵌入式系统特点的软件设计方法,包括嵌入式处理器、存储器、I/O、RTOS、嵌入式应用编程和物联网应用开发等。
嵌入式系统是一种计算机应用系统。作为本科生专业基础课程,要抽象出一般嵌入式应用共性的知识和原理,这部分内容必须具有基础、普适性,不强依赖于具体的芯片。然后再选择某些有代表性的芯片作为实验载体,加强对原理的理解,且有利于掌握应用设计方法。平衡好这两个方面是嵌入式教学的一个难点,为此我们结合自己 20 多年嵌入式系统教学、科研项目开发经验,逐步抽象出符合本学科专业教学要求的嵌入式系统处理器、存储器、I/O 等相关基础知识和原理,并以目前流行的 ARM Cortex-M4 开发板作为硬件实验平台。为了能在一块开发板上完成大部分外设实验(包括 ADC、DAC、模拟比较器 AC 等),教材给出的示例代码是基于 STM32F303 和 HAL 库的,实际也适用于其他 STM32 MCU。同时,我们也准备了针对多个芯片公司(TI、ST、Microchip、平头哥等)主流开发板的实验例程供学校选用。
嵌入式系统教学的另一个难点是动手实践。现在学校专业课总课时受限,每周 2 课时的实验只能让学生做一些肤浅的验证性实验,无法做一些复杂、系统性的实验。另一方面, 由于互联网应用的兴起,现在 IT 学科的学生普遍喜欢软件类课程和互联网应用开发,因为各种移动互联网应用,如 Web、手机 App 应用开发更方便、有趣。为突破这个难题,提高学生对嵌入式系统的学习兴趣,同时结合物联网应用趋势,把嵌入式系统和移动互联网结合起来,我们开发了嵌入式物联网“口袋”实验系统,可在 Internet 上实现“人-云-物”的互动。该实验系统具有以下特色。
(1)简单。直接使用芯片公司的 MCU 开发板作为主控实验板,自带仿真器和虚拟串口,简单、易购。外设扩展板采用口袋板形式(名片大小),人手一套,学生可在任何时间自行进行实验。
(2)丰富。实验内容丰富,可进行一般嵌入式系统课程要求的所有实验内容。并带有扩展接口和多种外设,可进行创新实验、应用开发。
(3)有趣。扩展板带有多种传感器和 Wi-Fi 模块,可实现物联网教学、应用方案,可用手机 App 远程操控设备。用杜邦线连接传感器、Wi-Fi 模块等,增强动手能力。
(4)真实。实验系统均采用业界主流平台。物联网实验方案采用阿里云 IoT 平台,安全、稳定、易扩展,可用于实际 IoT 产品和项目,所学即所用。
(5)完善。教材、课件 PPT、MOOC、作业、实验例程等配套教学资源完善,拿来即 用,快速进行嵌入式和物联网系统的教学和实验。
随着物联网应用的发展,嵌入式软件日趋复杂,需要针对应用趋势,学习嵌入式、物联网开发技术,包括 RTOS、物联网 OS、IoT 云平台、前后端技术等。对于一般嵌入式开发,本书介绍了 FreeRTOS;对于物联网应用开发,本书简单介绍了 AliOS Things 和阿里云 IoT 平台,并介绍了两个物联网应用开发示例。
考虑到书稿内容的完整性、不同学校教学的差异性以及读者学习参考的便利,本书还补充了指令系统、嵌入式软件设计方法、物联网技术以及低功耗设计和电磁兼容性方面的基础知识,尽量构建一个比较完整、基础、容易入门的嵌入式系统原理和物联网实践教材,学校老师可以根据各自学科专业课设置的具体情况,选择合适的内容、章节进行教学和实验。
华东师范大学计算机系嵌入式系统实验室长期重视产学研结合,与多家全球著名的半导体厂商(如 TI、Microchip、ST 等)和互联网企业(如阿里云 IoT、微软 Azure 等)合作,在 MCU 和物联网系统开发、推广应用方面积累了丰富的经验。本书内容也是在我们实验室出版的前几本嵌入式系统教材的基础上修改完善,结合我们多年课程教学以及 MCU 和物联网应用开发的积累和经验,并经过了 3 届学生的试用编写整理而成的。
本书的出版,得到了华东师范大学教材基金、阿里云产学协同项目和清华大学出版社的支持。参与本书编写和资料整理、代码验证等工作的,还有华东师范大学计算机学院的张皓焱、王胜志、刘长箭、李晓敏、李奕霖、穆永超、曹强、李昌龙等。在此一并向上述单位、个人表示衷心的感谢。
由于时间仓促和水平所限,本书有些内容还不尽完善,不足之处也在所难免,恳请读者批评指正,以便我们及时修正。
编 者
|
|