《可重构嵌入式系统设计与实现 基于Cypress PSoC4 BLE智能互联平台》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:何宾编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121351044
  • 页数:258 页
图书介绍:本书共分14章。主要介绍了可重构嵌入式系统设计导论、可重构嵌入式系统基本设计流程、Cortex-M0 CPU结构、Cortex-M0指令集、AHB-Lite总线结构分析、Cortex-M0低功耗特性、Cortex-M0汇编语言编程基础、中断系统的构建和实现、C代码设计与优化、电容感应触摸控制模块原理及实现、低功耗蓝牙模块原理及实现、通用数字块原理及设计实现,以及FreeRTOS原理及应用。

第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 SARADC 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