Cortex-M3可编程片上系统原理及应用
《Cortex-M3可编程片上系统原理及应用》系统化、模块化地介绍了Cypress公司的PSoC5内所集成的ARMCortex-M3CPU硬核处理器结构及指令集、PSoC5内各个功能单元的结构以及基于PSoCCreator2.0软件的片上系统的设计流程。主要内容包括:PSoC设计导论,PSoC5 CPU及存储子系统,PSoC5CPU指令系统,PSoC5公共资源,PSoC编程和调试接口功能,基于PSoCCreator的程序设计,定时器、计数器和PWM模块,LCD显示驱动模块,FC总线模块,USB总线模块,通用数字块UDB,模拟前端模块,ADC和DAC模块,电容感应模块,数字滤波器模块和uC-OS/Ⅲ操作系统。本书可作为从事Cypress可编程片上系统设计的设计人员的参考用书,也可作为大学本科生和研究生教材,同时也可作为Cypress公司相关内容的培训教材。第1章 PSoC设计导论 1
1.1微控制器基础 1
1.1.1微控制器的涵义 1
1.1.2微控制器编程语言 2
1.2可编程片上系统PSoC概述 3
1.2.1PSoC发展概述 3
1.2.2PSoC设计方法 5
1.3PSoC5设计流程 7
1.3.1硬件设计流程 8
1.3.2软件设计流程 9
1.4PSoC5的结构及功能 10
1.4.1PSoC5系统结构概述 10
1.4.2数字子系统结构及功能 10
1.4.3模拟子系统结构及功能 13
1.4.4输入/输出引脚功能 14
1.5PSoC5器件概述 15
1.5.1PSoC5引脚分布 15
1.5.2PSoC5器件分类和资源 16
第2章 PSoC5 CPU及存储子系统 19
2.1Cortex-M3内核结构概述 19
2.1.1Cortex-M3内核结构特性 19
2.1.2流水线结构 20
2.1.3寄存器 20
2.1.4操作模式 23
2.1.5SysTick定时器 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.6PSoC5中断特性 31
2.2.7中断控制器和功耗模式 34
2.3高速缓存控制器 35
2.4PHUB和DMA控制器 36
2.4.1PHUB 36
2.4.2DMA控制器 38
2.4.3访问DMAC 44
2.4.4DMAC传输模式 45
2.4.5PHUB和DMAC寄存器列表 46
2.5PSoC5存储器系统 47
2.5.1SRAM存储器结构及功能 47
2.5.2非易失性锁存器结构及功能 48
2.5.3Flash程序存储器结构及功能 49
2.5.4EEPROM存储器结构及功能 50
第3章 PSoC5 CPU指令系统 51
3.1Cortex-M3指令寻址模式 51
3.2Cortex-M3 CPU指令集 53
3.2.1Cortex-M3指令集概述 53
3.2.2CMSIS函数 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.3Cortex-M3 汇编语言编程模型 80
第4章 PSoC5公共资源 82
4.1时钟管理 82
4.1.1内部振荡器 83
4.1.2外部振荡器 84
4.1.3DSI时钟 86
4.1.4相位锁相环 86
4.1.5USB时钟 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.5I/O系统和布线资源 92
4.5.1I/O系统特性 92
4.5.2I/O驱动模式 94
4.5.3DSI控制数字I/O 97
4.5.4模拟I/O引脚 99
4.5.5LCD驱动引脚 100
4.5.6电容感应触摸引脚 100
4.5.7SIO功能和特性 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.2SWD接口规范 104
5.1.3PSoC5 SWD的特性 106
5.2Cortex-M3调试和跟踪 107
5.2.1内核调试 108
5.2.2系统调试 109
5.3非易失性存储器编程 110
第6章 基于PSoC Creator的程序设计 112
6.1PSoC Creator软件功能 112
6.2汇编语言GPIO控制程序的设计 113
6.2.1创建和配置工程 113
6.2.2查看和设置公共资源 114
6.2.3编写GPIO汇编语言控制程序 115
6.3C语言GPIO控制程序的设计 119
6.3.1使用C语言指针对GPIO端口控制 120
6.3.2调用API函数对GPIO端口控制 120
6.3.3PSoC5的SRAM内函数定位 126
6.4中断服务程序的设计 128
6.4.1创建和配置工程 128
6.4.2添加IP核资源到设计 128
6.4.3IP核参数配置和连接 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.3PWM控制LED显示的实现 142
7.3.1创建和配置工程 142
7.3.2编写软件程序 146
7.3.3编程及调试 147
第8章 LCD显示驱动模块 148
8.1LCD的工作原理 148
8.1.1LCD物理结构 148
8.1.2LCD液晶分类 149
8.2LCD驱动特性 154
8.3LCD驱动系统 154
8.4LCD功能描述 155
8.4.1LCD DAC 155
8.4.2LCD配置选项 156
8.4.3LCD驱动模块 156
8.4.4UDB 159
8.4.5DMA 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.1I2C总线模块概述 170
9.2I2C总线实现原理 171
9.2.1I2C总线模块结构 171
9.2.2典型的I2C数据传输 171
9.2.3I2C总线寄存器及操作 172
9.3I2C总线操作模式 173
9.3.1从模式 173
9.3.2主模式 174
9.3.3多主模式 175
9.4I2C模块通信的实现 176
9.4.1系统实现原理 176
9.4.2创建和配置工程 177
9.4.3编写软件程序 181
9.4.4编程及调试 183
第10章 USB总线模块 184
10.1USB总线模块概述 184
10.2USB模块结构 184
10.2.1串行接口引擎SIE 185
10.2.2仲裁器 186
10.3USB模块工作条件 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.5PS/2和CMOS I/O模式 194
10.6USB模块寄存器列表 194
10.7USB人体学输入设备的实现 195
10.7.1人体接口设备的原理 195
10.7.2创建和配置工程 200
10.7.3编写软件程序 204
10.7.4编程及调试 205
第11章 通用数字块UDB 207
11.1通用数字块概述 207
11.2UDB模块结构 208
11.2.1PLD模块结构及宏单元 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.2LUT 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.2SAR ADC模块 242
13.2.1SAR ADC模块概述 242
13.2.2SAR ADC模块的工作原理 242
13.3DAC模块 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.6IDAC值显示的实现 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.2FSM 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.3DMA配置向导 280
15.3.4编写软件程序 282
15.3.5编程及调试 283
第16章 μC-OS/III操作系统 284
16.1μC-OS/III操作系统概述 284
16.1.1操作系统的作用 284
16.1.2μC-OS/III操作系统内核特征 285
16.1.3μC/OS-III操作系统文件的结构 288
16.1.4μC/OS-III操作系统应用程序结构分析 289
16.2μC-OS/III操作系统内核及功能 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.3PSoC5硬件系统的构建 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
页:
[1]