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.2 微控制器编程语言
1.2 可编程片上系统PSoC概述
1.2.1 PSoC发展概述
1.2.2 PSoC设计方法
1.3 PSoC5设计流程
1.3.1 硬件设计流程
1.3.2 软件设计流程
1.4 PSoC5的结构及功能
1.4.1 PSoC5系统结构概述
1.4.2 数字子系统结构及功能
1.4.3 模拟子系统结构及功能
1.4.4 输入/输出引脚功能
1.5 PSoC5器件概述
1.5.1 PSoC5引脚分布
1.5.2 PSoC5器件分类和资源
第2章 PSoC5 CPU及存储子系统
2.1 Cortex-M3内核结构概述
2.1.1 Cortex-M3内核结构特性
2.1.2 流水线结构
2.1.3 寄存器
2.1.4 操作模式
2.1.5 SysTick定时器
2.1.6 存储器空间映射
2.1.7 异常及处理
2.2 嵌套向量中断控制器
2.2.1 中断控制器的特性
2.2.2 中断使能
2.2.3 中断优先级
2.2.4 电平/脉冲中断
2.2.5 中断的执行
2.2.6 PSoC5中断特性
2.2.7 中断控制器和功耗模式
2.3 高速缓存控制器
2.4 PHUB和DMA控制器
2.4.1 PHUB
2.4.2 DMA控制器
2.4.3 访问DMAC
2.4.4 DMAC传输模式
2.4.5 PHUB和DMAC寄存器列表
2.5 PSoC5存储器系统
2.5.1 SRAM存储器结构及功能
2.5.2 非易失性锁存器结构及功能
2.5.3 Flash程序存储器结构及功能
2.5.4 EEPROM存储器结构及功能
第3章 PSoC5 CPU指令系统
3.1 Cortex-M3指令寻址模式
3.2 Cortex-M3 CPU指令集
3.2.1 Cortex-M3指令集概述
3.2.2 CMSIS函数
3.2.3 存储器访问指令
3.2.4 通用数据处理指令
3.2.5 乘法和除法指令
3.2.6 饱和指令
3.2.7 比特位操作指令
3.2.8 分支和控制指令
3.2.9 杂项操作指令
3.3 Cortex-M3 汇编语言编程模型
第4章 PSoC5公共资源
4.1 时钟管理
4.1.1 内部振荡器
4.1.2 外部振荡器
4.1.3 DSI时钟
4.1.4 相位锁相环
4.1.5 USB时钟
4.2 电源管理
4.2.1 电源模式
4.2.2 电源监控
4.3 看门狗定时器
4.4 复位
4.4.1 复位模块功能介绍
4.4.2 复位源
4.5 I/O系统和布线资源
4.5.1 I/O系统特性
4.5.2 I/O驱动模式
4.5.3 DSI控制数字I/O
4.5.4 模拟I/O引脚
4.5.5 LCD驱动引脚
4.5.6 电容感应触摸引脚
4.5.7 SIO功能和特性
4.5.8 上电时I/O配置
4.5.9 过电压容限
4.5.10 端口中断控制器单元
第5章 PSoC编程和调试接口功能
5.1 测试控制器
5.1.1 测试控制器结构
5.1.2 SWD接口规范
5.1.3 PSoC5 SWD的特性
5.2 Cortex-M3调试和跟踪
5.2.1 内核调试
5.2.2 系统调试
5.3 非易失性存储器编程
第6章 基于PSoC Creator的程序设计
6.1 PSoC Creator软件功能
6.2 汇编语言GPIO控制程序的设计
6.2.1 创建和配置工程
6.2.2 查看和设置公共资源
6.2.3 编写GPIO汇编语言控制程序
6.3 C语言GPIO控制程序的设计
6.3.1 使用C语言指针对GPIO端口控制
6.3.2 调用API函数对GPIO端口控制
6.3.3 PSoC5的SRAM内函数定位
6.4 中断服务程序的设计
6.4.1 创建和配置工程
6.4.2 添加IP核资源到设计
6.4.3 IP核参数配置和连接
6.4.4 中断服务程序的设计
6.4.5 下载并调试工程
第7章 定时器、计数器和PWM模块
7.1 定时器模块特性
7.2 定时器模块结构
7.2.1 时钟选择
7.2.2 使能/禁止模块
7.2.3 输入信号特性
7.2.4 操作模式
7.2.5 中断使能
7.2.6 寄存器列表
7.3 PWM控制LED显示的实现
7.3.1 创建和配置工程
7.3.2 编写软件程序
7.3.3 编程及调试
第8章 LCD显示驱动模块
8.1 LCD的工作原理
8.1.1 LCD物理结构
8.1.2 LCD液晶分类
8.2 LCD驱动特性
8.3 LCD驱动系统
8.4 LCD功能描述
8.4.1 LCD DAC
8.4.2 LCD配置选项
8.4.3 LCD驱动模块
8.4.4 UDB
8.4.5 DMA
8.5 段式LCD显示的实现
8.5.1 段式LCD的功能
8.5.2 段式LCD的参数配置
8.5.3 编写软件程序
8.5.4 编程及调试
第9章 I2C总线模块
9.1 I2C总线模块概述
9.2 I2C总线实现原理
9.2.1 I2C总线模块结构
9.2.2 典型的I2C数据传输
9.2.3 I2C总线寄存器及操作
9.3 I2C总线操作模式
9.3.1 从模式
9.3.2 主模式
9.3.3 多主模式
9.4 I2C模块通信的实现
9.4.1 系统实现原理
9.4.2 创建和配置工程
9.4.3 编写软件程序
9.4.4 编程及调试
第10章 USB总线模块
10.1 USB总线模块概述
10.2 USB模块结构
10.2.1 串行接口引擎SIE
10.2.2 仲裁器
10.3 USB模块工作条件
10.3.1 工作频率
10.3.2 工作电压
10.3.3 收发器
10.3.4 端点
10.3.5 传输类型
10.3.6 中断
10.4 逻辑传输模式
10.4.1 非DMA访问
10.4.2 手工DMA访问
10.4.3 控制端点的逻辑传输
10.5 PS/2和CMOS I/O模式
10.6 USB模块寄存器列表
10.7 USB人体学输入设备的实现
10.7.1 人体接口设备的原理
10.7.2 创建和配置工程
10.7.3 编写软件程序
10.7.4 编程及调试
第11章 通用数字块UDB
11.1 通用数字块概述
11.2 UDB模块结构
11.2.1 PLD模块结构及宏单元
11.2.2 数据通道模块
11.2.3 状态和控制模块
11.3 交通灯控制电路的设计与实现
11.3.1 交通灯设计原理
11.3.2 交通灯控制电路的设计
11.3.3 引脚分配
11.3.4 设计下载与测试
11.4 静态时序分析
第12章 模拟前端模块
12.1 模拟比较器
12.1.1 输入和输出接口
12.1.2 LUT
12.2 运算放大器模块
12.3 可编程SC/CT模块
12.3.1 单纯的放大器
12.3.2 单位增益
12.3.3 可编程增益放大器
12.3.4 互阻放大器
12.3.5 连续时间混频器
12.3.6 采样混频器
12.3.7 Δ-Σ调制器
12.3.8 跟踪和保持放大器
12.4 精密参考源
12.5 基于混频器的精确整流实现
12.5.1 整流器设计原理
12.5.2 创建和配置工程
12.5.3 编写软件程序
12.5.4 编程及调试
第13章 ADC和DAC模块
13.1 Δ-ΣADC模块
13.1.1 Δ-ΣADC模块概述
13.1.2 Δ-ΣADC结构
13.1.3 Δ-Σ ADC操作模式
13.2 SAR ADC模块
13.2.1 SAR ADC模块概述
13.2.2 SAR ADC模块的工作原理
13.3 DAC模块
13.4 基于SAR ADC的数字电压表实现
13.4.1 创建和配置工程
13.4.2 编写软件程序
13.4.3 编程及调试
13.5 基于Δ-Σ ADC的数字电压表实现
13.5.1 创建和配置工程
13.5.2 编写软件程序
13.5.3 编程及调试
13.6 IDAC值显示的实现
13.6.1 创建和配置工程
13.6.2 编写软件程序
13.6.3 编程及调试
第14章 电容感应模块
14.1 电容感应模块的结构
14.2 电容感应Δ-Σ算法
14.3 电容感应触摸的实现
14.3.1 创建和配置工程
14.3.2 编写软件程序
14.3.3 编程及调试
第15章 数字滤波器模块
15.1 数字滤波器模块概述
15.2 数字滤波器模块结构
15.2.1 控制器
15.2.2 FSM RAM
15.2.3 数据通道
15.2.4 地址计算单元
15.2.5 总线接口和寄存器描述
15.3 基于DFB的数字滤波器实现
15.3.1 系统结构概述
15.3.2 元件参数配置
15.3.3 DMA配置向导
15.3.4 编写软件程序
15.3.5 编程及调试
第16章 μC-OS/III操作系统
16.1 μC-OS/III操作系统概述
16.1.1 操作系统的作用
16.1.2 μC-OS/III操作系统内核特征
16.1.3 μC/OS-III操作系统文件的结构
16.1.4 μC/OS-III操作系统应用程序结构分析
16.2 μC-OS/III操作系统内核及功能
16.2.1 单任务和多任务处理
16.2.2 临界区
16.2.3 任务管理
16.2.4 准备列表
16.2.5 调度
16.2.6 上下文切换
16.2.7 中断管理
16.2.8 等待列表
16.2.9 时间管理
16.2.10 定时器管理
16.2.11 资源管理
16.2.12 消息传递
16.2.13 多个对象等待处理
16.2.14 存储器管理
16.3 PSoC5硬件系统的构建
16.4 添加中断代码到ISR中
16.4.1 添加中断代码到ProbeUART_TxISR.c中
16.4.2 添加中断代码到ProbeUART_RxISR.c中
16.5 配置引脚
16.6 运行设计
16.7 启动μC/Probe工具
参考文献
ARM Cortex-M处理器是一系列可向上兼容的高能效、易于使用的处理器,这些处理器旨在帮助开发人员满足嵌入式应用的需要,主要包括以更低的成本提供更多功能、不断增加连接、改善代码重用和提高能效。ARM Cortex-M处理器已成为全球微控制器标准,许可给40个以上的ARM合作伙伴。Cypress公司将ARM的Cortex-M3处理器集成在其PSoC5器件内,为客户提供了基于ARM处理器的单片系统解决方案,这种解决方案提高了设计的可能性,缩短了系统设计周期,降低了设计成本,极大地满足了市场对产品竞争力的要求。通过Cortex-M3强大的处理能力,充分发挥PSoC器件内的数模混合阵列的性能。何宾老师的《Cortex-M3可编程片上系统原理及应用》通过对PSoC5器件相关内容的详细介绍,系统介绍了Cortex-M3 CPU处理器的结构、Cortex-M3 CPU处理器的指令集、Cortex-M3编程和调试接口、Cortex-M3和外设的接口以及基于Cortex-M3的?C-OS Ⅲ操作系统等内容,并且通过相关的设计实例,介绍了基于ARM Cortex-M3 CPU的嵌入式系统的开发流程。相信该书的出版,会对国内从事Cortex-M系统处理器应用的广大读者有所借鉴,并且通过PSoC5这一单片系统设计平台,熟练地掌握基于Cortex-M3的嵌入式系统的设计流程和实现方法。ARM中国区大学计划经理 时昕 2012年7月