第1章PSoC设计导论 1
1.1微控制器基础 1
1.1.1微控制器的涵义 1
1.1.2微控制器编程语言 2
1.2可编程片上系统PSoC概述 3
1.2.1 PSoC发展概述 3
1.2.2 PSoC设计方法 5
1.3 PSoC5设计流程 7
1.3.1硬件设计流程 8
1.3.2软件设计流程 9
1.4 PSoC5的结构及功能 10
1.4.1 PSoC5系统结构概述 10
1.4.2数字子系统结构及功能 10
1.4.3模拟子系统结构及功能 13
1.4.4输入/输出引脚功能 14
1.5 PSoC5器件概述 15
1.5.1 PSoC5引脚分布 15
1.5.2 PSoC5器件分类和资源 16
第2章PSoC5 CPU及存储子系统 19
2.1 Cortex-M3内核结构概述 19
2.1.1 Cortex-M3内核结构特性 19
2.1.2流水线结构 20
2.1.3寄存器 20
2.1.4操作模式 23
2.1.5 SysTick定时器 23
2.1.6存储器空间映射 23
2.1.7异常及处理 26
2.2嵌套向量中断控制器 26
2.2.1中断控制器的特性 26
2.2.2中断使能 28
2.2.3中断优先级 29
2.2.4电平/脉冲中断 30
2.2.5中断的执行 30
2.2 6 PSoC5中断特性 31
2.2.7中断控制器和功耗模式 34
2.3高速缓存控制器 35
2.4 PHUB和DMA控制器 36
2.4.1 PHUB 36
2.4.2 DMA控制器 38
2.4.3访问DMAC 44
2.4.4 DMAC传输模式 45
2.4.5 PHUB和DMAC寄存器列表 46
2.5 PSoC5存储器系统 47
2.5.1 SRAM存储器结构及功能 47
2.5.2非易失性锁存器结构及功能 48
2.5.3 Flash程序存储器结构及功能 49
2.5.4 EEPROM存储器结构及功能 50
第3章PSoC5 CPU指令系统 51
3.1 Cortex-M3指令寻址模式 51
3.2 Cortex-M3 CPU指令集 53
3.2.1 Cortex-M3指令集概述 53
3.2.2 CMSIS函数 54
3.2.3存储器访问指令 54
3.2.4通用数据处理指令 61
3.2.5乘法和除法指令 69
3.2.6饱和指令 71
3.2.7比特位操作指令 72
3.2.8分支和控制指令 74
3.2.9杂项操作指令 77
3.3 Cortex-M3汇编语言编程模型 80
第4章PSoC5公共资源 82
4.1时钟管理 82
4.1.1内部振荡器 83
4.1.2外部振荡器 84
4.1.3 DSI时钟 86
4.1.4相位锁相环 86
4.1.5 USB时钟 86
4.2电源管理 87
4.2.1电源模式 87
4.2.2电源监控 89
4.3看门狗定时器 89
4.4复位 90
4.4.1复位模块功能介绍 90
4.4.2复位源 91
4.5 I/O系统和布线资源 92
4.5.1 I/O系统特性 92
4.5.2 I/O驱动模式 94
4.5.3 DSI控制数字I/O 97
4.5.4模拟I/O引脚 99
4.5.5 LCD驱动引脚 100
4.5.6电容感应触摸引脚 100
4.5.7 SIO功能和特性 100
4.5.8上电时I/O配置 101
4.5.9过电压容限 101
4.5.10端口中断控制器单元 102
第5章 PSoC编程和调试接口功能 104
5.1测试控制器 104
5.1.1测试控制器结构 104
5.1.2 SWD接口规范 104
5.1.3 PSoC5 SWD的特性 106
5.2 Cortex-M3调试和跟踪 107
5.2.1内核调试 108
5.2.2系统调试 109
5.3非易失性存储器编程 110
第6章基于PSoC Creator的程序设计 112
6.1 PSoC Creator软件功能 112
6.2汇编语言GPIO控制程序的设计 113
6.2.1创建和配置工程 113
6.2.2查看和设置公共资源 114
6.2.3编写GPIO汇编语言控制程序 115
6.3 C语言GPIO控制程序的设计 119
6.3.1使用C语言指针对GPIO端口控制 120
6.3.2调用API函数对 GPIO端口控制 120
6.3.3 PSoC5的SRAM内函数定位 126
6.4中断服务程序的设计 128
6.4.1创建和配置工程 128
6.4.2添加IP核资源到设计 128
6.4.3 IP核参数配置和连接 129
6.4.4中断服务程序的设计 131
6.4.5下载并调试工程 133
第7章 定时器、计数器和PWM模块 134
7.1定时器模块特性 134
7.2定时器模块结构 134
7.2.1时钟选择 135
7.2.2使能禁止模块 136
7.2.3输入信号特性 136
7.2.4操作模式 137
7.2.5中断使能 141
7.2.6寄存器列表 141
7.3 PWM控制LED显示的实现 142
7.3.1创建和配置工程 142
7.3.2编写软件程序 146
7.3.3编程及调试 147
第8章LCD显示驱动模块 148
8.1 LCD的工作原理 148
8.1.1 LCD物理结构 148
8.1.2 LCD液晶分类 149
8.2 LCD驱动特性 154
8.3 LCD驱动系统 154
8.4 LCD功能描述 155
8.4.1 LCD DAC 155
8.4.2 LCD配置选项 156
8.4.3 LCD驱动模块 156
8.4.4 UDB 159
8.4.5 DMA 159
8.5段式LCD显示的实现 160
8.5.1段式LCD的功能 160
8.5.2段式LCD的参数配置 162
8.5.3编写软件程序 167
8.5.4编程及调试 169
第9章I2C总线模块 170
9.1 I2C总线模块概述 170
9.2 I2C总线实现原理 171
9.2.1 I2C总线模块结构 171
9.2.2典型的I2C数据传输 171
9.2.3 I2C总线寄存器及操作 172
9.3 I2C总线操作模式 173
9.3.1从模式 173
9.3.2主模式 174
9.3.3多主模式 175
9.4 I2C模块通信的实现 176
9.4.1系统实现原理 176
9.4.2创建和配置工程 177
9.4.3编写软件程序 181
9.4.4编程及调试 183
第10章 USB总线模块 184
10.1 USB总线模块概述 184
10.2 USB模块结构 184
10.2.1 串行接口引擎SIE 185
10.2.2仲裁器 186
10.3 USB模块工作条件 187
10.3.1工作频率 187
10.3.2工作电压 188
10.3.3收发器 188
10.3.4端点 188
10.3.5传输类型 188
10.3.6中断 189
10.4逻辑传输模式 189
10.4.1非DMA访问 190
10.4.2手工DMA访问 190
10.4.3控制端点的逻辑传输 193
10.5 PS/2和CMOS I/O模式 194
10.6 USB模块寄存器列表 194
10.7 USB人体学输入设备的实现 195
10.7.1人体接口设备的原理 195
10.7.2创建和配置工程 200
10.7.3编写软件程序 204
10.7.4编程及调试 205
第11章 通用数字块UDB 207
11.1通用数字块概述 207
11.2 UDB模块结构 208
11.2.1 PLD模块结构及宏单元 208
11.2.2数据通道模块 209
11.2.3状态和控制模块 212
11.3交通灯控制电路的设计与实现 213
11.3.1交通灯设计原理 213
11.3.2交通灯控制电路的设计 213
11.3.3引脚分配 218
11.3.4设计下载与测试 218
11.4静态时序分析 218
第12章 模拟前端模块 220
12.1模拟比较器 220
12.1.1输入和输出接口 220
12.1.2 LUT 220
12.2运算放大器模块 221
12.3可编程SC/CT模块 223
12.3.1单纯的放大器 224
12.3.2单位增益 225
12.3.3可编程增益放大器 225
12.3.4互阻放大器 227
12.3.5连续时间混频器 228
12.3.6采样混频器 228
12.3.7 △-Σ调制器 230
12.3.8跟踪和保持放大器 231
12.4精密参考源 231
12.5基于混频器的精确整流实现 233
12.5.1整流器设计原理 233
12.5.2创建和配置工程 233
12.5.3编写软件程序 237
12.5.4编程及调试 237
第13章ADC和DAC模块 238
13.1 △-ΣADC模块 238
13.1.1 △-ΣADC模块概述 238
13.1.2 △-ΣADC结构 239
13.1.3 △-Σ ADC操作模式 241
13.2 SAR ADC模块 242
13.2.1 SAR ADC模块概述 242
13.2.2 SAR ADC模块的工作原理 242
13.3 DAC模块 243
13.4基于SAR ADC的数字电压表实现 246
13.4.1创建和配置工程 246
13.4.2编写软件程序 249
13.4.3编程及调试 250
13.5基于△-Σ ADC的数字电压表实现 251
13.5.1创建和配置工程 251
13.5.2编写软件程序 253
13.5.3编程及调试 254
13.6 IDAC值显示的实现 254
13.6.1创建和配置工程 255
13.6.2编写软件程序 258
13.6.3编程及调试 258
第14章 电容感应模块 259
14.1电容感应模块的结构 259
14.2电容感应△-Σ算法 262
14.3电容感应触摸的实现 263
14.3.1创建和配置工程 263
14.3.2编写软件程序 266
14.3.3编程及调试 267
第15章数字滤波器模块 268
15.1数字滤波器模块概述 268
15.2数字滤波器模块结构 269
15.2.1控制器 269
15.2.2 FSM RAM 270
15.2.3数据通道 272
15.2.4地址计算单元 273
15.2.5总线接口和寄存器描述 274
15.3基于DFB的数字滤波器实现 276
15.3.1系统结构概述 276
15.3.2元件参数配置 276
15.3.3 DMA配置向导 280
15.3.4编写软件程序 282
15.3.5编程及调试 283
第16章μC-OS/Ⅲ操作系统 284
16.1 μC-OS/Ⅲ操作系统概述 284
16.1.1操作系统的作用 284
16.1.2 μC-OS/Ⅲ操作系统内核特征 285
16.1.3 μC/OS-Ⅲ操作系统文件的结构 288
16.1.4μC/OS-Ⅲ操作系统应用程序结构分析 289
16.2μC-OS/Ⅲ操作系统内核及功能 296
16.2.1单任务和多任务处理 296
16.2.2临界区 300
16.2.3任务管理 300
16.2.4准备列表 301
16.2.5调度 301
16.2.6上下文切换 302
16.2.7中断管理 302
16.2.8等待列表 303
16.2.9时间管理 303
16.2.10定时器管理 303
16.2.11资源管理 304
16.2.12消息传递 305
16.2.13多个对象等待处理 307
16.2.14存储器管理 308
16.3 PSoC5硬件系统的构建 309
16.4添加中断代码到ISR中 310
16.4.1添加中断代码到ProbeUART TxISR.c中 310
16.4.2添加中断代码到ProbeUART RxISR.c中 311
16.5配置引脚 311
16.6运行设计 312
16.7启动μC/Probe工具 313
参考文献 316