书籍信息
作译者:何宾
出版时间:2018-11千 字 数:435版次:01-01页 数:272
开本:16开装帧:I S B N :9787121351044
换版:
纸质书定价:¥69.0
内容简介
本书基于Cypress公司的PSoC4 BLE嵌入式平台,该平台以ARM Cortex-M0处理器为核心,集成了模拟可程式阵列和数字可程式阵列,并且新集成了低功耗蓝牙模组,使得该平台成为物联网套用的极佳选择。
目 录
第1章 可重构嵌入式系统设计导论 1
1.1 可重构嵌入式系统的背景和优势 1
1.1.1 传统的嵌入式系统构建方法 1
1.1.2 可重构嵌入式系统构建方法 2
1.1.3 PSoC性能比MCU更优越 4
1.2 可重构嵌入式系统的设计重用 5
1.3 PSoC4 BLE的结构及功能 6
1.4 PSoC4 BLE设计流程 9
1.4.1 硬体设计流程 9
1.4.2 软体设计流程 10
1.5 PSoC4 BLE的硬体连线 11
第2章 可重构嵌入式系统基本设计流程 13
2.1 软体的下载和安装 13
2.2 建立新的设计工程 16
2.3 在原理图中添加嵌入式硬体设计 18
2.3.1 在原理图中添加数字输出连线埠 18
2.3.2 在原理图中添加片外外设注解 19
2.3.3 对硬体设计进行处理 24
2.3.4 查看分配的引脚位置 25
2.4 为嵌入式硬体开发软体套用 26
2.5 下载设计到目标系统 27
第3章 Cortex-M0 CPU结构 28
3.1 ARM处理器类型 28
3.2 Cortex-M系列处理器概述 29
3.2.1 Cortex-M系列处理器的特点 29
3.2.2 Cortex-M系列处理器的性能参数 29
3.3 Cortex-M0处理器的性能和结构 30
3.3.1 Cortex-M0处理器的性能 30
3.3.2 Cortex-M0处理器的结构 31
3.4 Cortex-M0处理器的暂存器组 33
3.4.1 通用暂存器 33
3.4.2 堆叠指针 34
3.4.3 程式计数器 34
3.4.4 连结暂存器 34
3.4.5 组合程式状态暂存器 35
3.4.6 中断禁止特殊暂存器 36
3.4.7 特殊暂存器 36
3.5 Cortex-M0存储器空间映射 37
3.6 Cortex-M0程式镜像原理及生成方法 39
3.7 Cortex-M0处理器的端及分配 40
3.8 Cortex-M0处理器异常及处理 41
3.8.1 异常处理 41
3.8.2 异常优先权 41
3.8.3 向量表 42
3.8.4 异常类型 43
3.8.5 PSoC4中断源 44
3.8.6 PSoC4中断触发方式 45
3.8.7 固定功能模组和UDB的中断布线 46
第4章 Cortex-M0指令集 48
4.1 Thumb指令集 48
4.2 Cortex-M0彙编语言格式 49
4.3 暂存器访问指令:MOVE 50
4.4 存储器访问指令:LOAD 51
4.5 存储器访问指令:STORE 54
4.6 多数据访问指令:LDM和STM 55
4.7 堆叠访问指令:PUSH和POP 56
4.8 算术运算指令 57
4.8.1 加法指令 57
4.8.2 减法指令 59
4.8.3 乘法指令 60
4.8.4 比较指令 60
4.9 逻辑操作指令 61
4.10 移位操作指令 62
4.10.1 右移指令 62
4.10.2 左移指令 64
4.11 反序操作指令 65
4.12 扩展操作指令 66
4.13 程式流控制指令 67
4.14 存储器禁止指令 68
4.15 异常相关指令 69
4.16 休眠相关指令 69
4.17 其他指令 69
4.18 数据插入和对齐操作 70
第5章 AHB-Lite汇流排结构分析 71
5.1 汇流排及分类 71
5.1.1 汇流排的概念 71
5.1.2 汇流排的分类 71
5.2 ARM AMBA系统汇流排 72
5.3 AMBA3 AHB-Lite汇流排 73
5.3.1 AHB-Lite概述 73
5.3.2 AHB-Lite汇流排操作 73
5.4 AHB-Lite汇流排结构 74
5.4.1 全局信号 75
5.4.2 AHB-Lite主设备接口 75
5.4.3 AHB-Lite从设备接口 77
5.4.4 地址解码器和多路选择器 78
5.5 AHB-Lite汇流排时序 79
5.5.1 无等待基本读传输 80
5.5.2 有等待基本读传输 80
5.5.3 无等待基本写传输 81
5.5.4 有等待基本写传输 81
5.6 硬体实现 82
第6章 Cortex-M0低功耗特性 83
6.1 低功耗要求 83
6.2 Cortex-M0低功耗特性及优势 83
6.2.1 Cortex-M0低功耗特性概述 83
6.2.2 Cortex-M0低功耗结构 84
6.3 Cortex-M0休眠模式 84
6.4 唤醒中断控制器 86
6.5 降低功耗的其他方法 87
6.6 PSoC4 BLE低功耗特性 87
6.6.1 休眠模式 88
6.6.2 深度休眠模式 89
6.6.3 冬眠模式 90
6.6.4 停止模式 91
6.7 功耗降低技术 91
6.7.1 关闭未使用的组件 92
6.7.2 以较低速度运行组件 92
6.7.3 降低供电电压 92
6.7.4 使用PSoC器件控制电流路径 92
6.7.5 使用DMA传输数据 93
6.8 其他功耗模式中需要注意的事项 93
6.8.1 时钟 93
6.8.2 看门狗定时器 94
6.8.3 GPIO 95
6.8.4 深度休眠模式和冬眠模式下的电压调节器 96
6.8.5 调试接口 96
第7章 Cortex-M0彙编语言编程基础 97
7.1 Keil MDK开发套件 97
7.1.1 下载MDK开发套件 97
7.1.2 安装 MDK开发套件 99
7.1.3 MDK程式处理流程 100
7.2 Cortex-M0彙编语言程式设计 102
7.2.1 建立新设计工程 102
7.2.2 修改编译器设定 102
7.2.3 添加彙编档案 103
7.2.4 彙编语言语法说明 106
7.2.5 添加C设计代码 111
7.3 设计的硬体调试和运行 111
7.4 彙编语言其他常用语法介绍 114
7.4.1 标识符的命名规则 114
7.4.2 变数 114
7.4.3 常数 115
7.4.4 EQU命令 116
7.4.5 IMPORT/EXTERN命令 116
7.4.6 子程式调用 117
7.4.7 宏定义和使用 117
第8章 中断系统的构建和实现 119
8.1 设计定时器中断系统 119
8.1.1 建立新的设计工程 119
8.1.2 构建定时器中断硬体系统 120
8.1.3 配置定时器中断组件 120
8.1.4 设定定时器中断优先权 121
8.1.5 使用自动生成的ISR 121
8.1.6 创建自定义的ISR 123
8.2 设计GPIO中断系统 125
8.2.1 建立新的设计工程 125
8.2.2 构建GPIO中断硬体系统 126
8.2.3 配置GPIO中断组件 126
8.2.4 添加引脚约束 128
8.2.5 编写GPIO 的ISR 128
8.2.6 设计下载 129
8.3 有关中断的高级主题 129
8.3.1 异常事件 129
8.3.2 中断延迟 130
8.3.3 最佳化中断代码 131
8.3.4 带有内置中断的组件 131
8.3.5 强制中断向量编号 131
8.3.6 Systick定时器 133
8.3.7 中断嵌套 134
第9章 C语言代码设计与最佳化方法 135
9.1 全局和本地变数 135
9.1.1 全局变数 135
9.1.2 局部变数 136
9.1.3 静态变数 136
9.2 编译器最佳化设定选项 137
9.3 属性—attribute 139
9.4 LDR和STR指令 139
9.5 函式参数和结果 141
9.6 C语言和彙编混合编程 142
9.6.1 内嵌彙编的语法 142
9.6.2 自动变数 144
9.6.3 全局和静态变数 144
9.6.4 函式参数 146
9.7 特殊功能指令 148
9.8 结构体的对齐处理 148
9.9 编译器库 149
9.9.1 使用标準的C语言库 150
9.9.2 使用MicroLIB库进行编译 151
9.9.3 不使用库进行编译 151
9.10 放置代码和变数 152
9.10.1 连结脚本档案 152
9.10.2 放置程式 156
9.10.3 一般性考虑 157
第10章 电容感应触摸控制模组原理及实现 159
10.1 CapSense基本原理 159
10.2 电容式触摸感应方法 161
10.3 CapSense部件 162
10.3.1 按键(零维) 162
10.3.2 滑条(一维) 163
10.3.3 触控萤幕/触摸板(二维) 163
10.3.4 接近度感测器(三维) 164
10.4 禁止电极和保护感测器 165
10.5 PSoC4中的CSD模组 166
10.5.1 GPIO单元的电容-电流转换器 166
10.5.2 开关时钟发生器 168
10.5.3 电流-数字转换器 168
10.5.4 模拟多路器 169
10.5.5 禁止电极 169
10.5.6 CMOD的预充电 170
10.6 电容感应触摸的设计与实现 171
10.6.1 建立新的设计工程 171
10.6.2 在原理图中添加设计元件 171
10.6.3 配置元件参数 172
10.6.4 配置系统时钟 174
10.6.5 编写软体代码 175
10.6.6 配置引脚约束 177
第11章 低功耗蓝牙模组原理及实现 179
11.1 低功耗蓝牙子系统(BLESS) 179
11.1.1 BLESS特性 179
11.1.2 BLESS框架和构成 180
11.1.3 BLE状态 180
11.2 标準服务与自定义服务 181
11.3 健康温度计硬体系统的设计与实现 182
11.3.1 建立新的设计工程 182
11.3.2 添加并配置BLE组件 183
11.3.3 添加和配置数字引脚组件 187
11.3.4 添加中断组件 188
11.3.5 添加和配置温度测量元件 189
11.3.6 添加引脚约束 193
11.3.7 修改系统时钟频率 193
11.4 健康温度计软体的设计与实现 194
11.4.1 配置固件 194
11.4.2 系统初始化 196
11.4.3 BLE事件处理程式 197
11.4.4 系统的正常操作模式 199
11.4.5 系统的低功耗工作状态 199
11.4.6 感测器仿真 200
11.5 系统硬体配置 200
11.6 编程器件 200
11.7 更新编程器固件 201
11.8 使用CySmart中心仿真工具 201
11.9 CySmart手机套用 204
第12章 通用数字块原理及实现 206
12.1 通用数字块功能及特性 206
12.2 UDB内部功能块 207
12.2.1 PLD模组结构 208
12.2.2 PLD宏单元 209
12.3 数据通道模组 210
12.3.1 工作暂存器 210
12.3.2 动态数据通道配置RAM 211
12.4 状态和控制模组 212
12.5 基于UDB实现3位计数器设计 212
12.5.1 建立新的PSoC工程 213
12.5.2 添加自定义3位计数器IP核 213
12.5.3 调用自定义3位计数器元件 216
12.5.4 配置系统所用元件 217
12.5.5 连线设计中的所有元件 219
12.5.6 配置引脚 221
12.5.7 编程及调试 222
12.5.8 静态时序分析 222
第13章 模拟子系统原理及实现 224
13.1 模拟子系统框架及功能 224
13.1.1 模拟子系统框架 224
13.1.2 高精度参考 224
13.1.3 SAR ADC 225
13.1.4 低功耗比较器 226
13.1.5 微型连续时间模组 226
13.1.6 LCD直接驱动模组 226
13.1.7 温度感测器 228
13.2 同相模拟增益放大器的原理及实现 228
13.2.1 建立新的设计工程 228
13.2.2 在原理图中添加模拟组件 229
13.2.3 修改元件参数 230
13.2.4 连线系统中的所有元件 232
13.2.5 引脚分配 233
13.2.6 添加软体控制代码 235
13.2.7 设计下载与测试 235
第14章 FreeRTOS原理及套用 236
14.1 嵌入式和实时的概念 236
14.2 FreeRTOS架构概述 237
14.2.1 FreeRTOS的功能 237
14.2.2 硬体注意事项 237
14.3 任务调度概述 240
14.3.1 任务优先权和就绪列表 240
14.3.2 系统节拍器(时钟) 241
14.4 任务 242
14.4.1 任务控制块 242
14.4.2 任务设定 244
14.5 列表 245
14.6 伫列 248
14.7 信号灯和互斥 250
14.8 实现 251
14.9 移植FreeRTOS到PSoC4 BLE 252
14.9.1 下载FreeRTOS源码 252
14.9.2 建立一个新的设计工程 252
14.9.3 修改编译器设定 253
14.9.4 添加FreeRTOS源档案到工程 254
14.9.5 在原理图中添加硬体组件 255
14.9.6 添加引脚约束档案 255
14.9.7 在主档案中添加套用代码 256
14.9.8 下载设计到目标器件 256