内容简介
手把手教你学DSP-基于TMS320F28335(第2版)
本书详细地阐述了TMS320F28335处理器内部各功能模块的硬件结构、工作原理、资源分配、 功能特点以及应用等内容,同时每个模块都配了实验教程,方便学生掌握提高。本书是再版书,相 比第1版,本书增加了DSP编程开发环境一章,并对各章节的部分内容进行了修订,使内容更加 充实。 本书配套资料包括:书中所有实例例程、烧写软件工具、配套PPT、配套视频以及常用的调试工 具软件,读者可以在研旭电气提供的交流论坛( www. a rmd s p. n e t)相关版块或www. f 28335. c om 网站免费获取。
本书可作为DSP开发应用的入门级教材,也可作为其他层次DSP开发应用人员的参考手册。
目录
第1章 初识DSP
1.1 DSP前世今生
1.1.1 混沌之初——硅谷之父肖克莱
1.1.2 硅谷摇篮——仙童沉浮“硅谷8叛逆”
1.1.3 硅谷之外——德州仪器杰克·基尔比
1.2 DSP的发展与应用
1.3 如何成为一名优秀的DSP工程师
第2章 DSP编程开发环境
2.1 CCS集成开发环境与开发流程
2.2 CCS集成开发环境搭建主要步骤
2.2.1 CCS6.1 安装
2.2.2 仿真器驱动识别
2.2.3 CCS6.1 建立目标板配置文件
2.2.4 目标板连接
2.3 CCS的基本操作
2.3.1 CCS中常用文件名和应用界面
2.3.2 导人工程
2.3.3 工程编译
2.3.4 下载并运行程序
2.3.5 常用断点设置
2.3.6 显示图形
2.4 TMS320X28xx的c/c编程
2.4.1 传统的宏定义方法
2.4.2 位定义和寄存器文件结构方法
2.4.3 COFF文件格式与模块化编程
2.4.4 链接命令文件CMD编写
第3章 芯片资源
3.1 封装信息
3.2 F28335内核主要特点
3.3 与F2812的性能对比
3.4 引脚分布及引脚功能
第4章 时钟电路及系统控制
4.1 时钟源与锁相环电路
4.2 系统控制及外设时钟
4.3 看门狗电路
4.4 时钟单元相关寄存器
4.5 手把手教你应用看门狗
第5章 存储器及其地址分配
5.1 存储空间的配置
5.2 存储器特点
5.3 代码安全模块CSM
5.4 外部存储器接口XINTF
5.5 手把手教你访问F28335外部SRAM
5.6 手把手教你访问F28335片外FLASH
第6章 中断系统及应用
6.1 概述
6.2 3级中断机制
6.3 中断向量
6.4 中断操作
6.5 中断相关寄存器
6.6 手把手教你应用定时器中断
6.7 手把手教你应用按钮触发外部中断
第7章 通用数字量输入/输出GPl0
7.1 GPl0工作原理
7.2 GPl0寄存器以及编程
7.3 手把手教你实现基于F28335GPl0的跑马灯实验
第8章 增强型脉宽调制模块ePWM
8.1 PwM控制基本原理
8.2 PWM结构及组成单元
8.3 时基模块TB
8.4 计数比较模块CC
8.5 动作模块AC
8.6 死区产生模块DB
8.7 斩波模块PC
8.8 错误联防模块TZ
8.9 事件触发模块
8.10 PWM模块寄存器
8.11 手把手教你实现PWM输出
8.12 高精度脉宽调制模块HRPWM
第9章 增强型脉冲捕获模块eCAP
9.1 脉冲捕获基本原理
9.2 增强型CAP
9.3 捕获单元的APWM操作模式
9.4 捕获操作模式
9.5 CAP寄存器
9.6 手把手教你实现cAP捕获信号发生器信号边沿
9.7 手把手教你实现CAP捕获PwM信号边沿
第10章 增强型正交编码模块eQEP
10.1 正交编码器QEP概述
10.2 增强型正交编码模块eQEP概述
10.3 正交解码单元QDU
10.4 位置计数和控制单元PccU
10.5 位置比较单元
10.6 边沿捕获单元
10.7 看门狗电路
10.8 定时器基准单元
10.9 中断结构
10.10 寄存器
10.11 手把手教你实现基于eQEP的电机测速
第11章 ADC转换单元
11.1 A/D转换基本原理
11.2 ADC转换模块
11.3 ADc的排序器操作
11.4 ADC的时钟控制
11.5 ADC电气特性
11.6 ADC单元寄存器
11.7 手把手教你实现片内A/D数据采集
第12章 直接存储器访问模块DMA
12.1 DMA模块概述
12.2 F28335的DMA模块
12.3 F28335的DMA模块的寄存器
12.4 手把手教你实现DMA传输数据
第13章 串行通信SCI
13.1 串行通信基础知识
13.2 F28335的SCI模块
13.3 F28335的SCI相关寄存器
13.4 手把手教你实现SCI数据收发
第14章 高速同步串行输入/输出端口SPI
14.1 SPI概述
14.2 F28335的SPI模块
14.3 SPI寄存器
14.4 手把手教你实现SPI数据自发自收
第15章 串行通信I2C
15.1 I2C总线概述
15.2 F28335的I2C总线
15.3 F28335的I2C总线操作
15.4 F28335的I2C寄存器
15.5 手把手教你实现I2C数据传送
第16章 引导模式和程序BOOTROM
16.1 BOOTROM简介
16.2 DSP的引导过程
16.3 FLASH引导及应用
第17章 基于F28335的uC/OS~II移植
17.1 嵌入式实时操作系统的基本概念
17.2 uC/OS-II概述
17.3 uC/OS-II在F28335上移植及应用
17.4 手把手教你实现uC/OS-II在F28335上的应用
第18章 基于F28335的无刷直流电机控制应用
18.1 无刷直流电机及其控制器概述
18.2 无刷直流电机控制基本原理
18.3 无刷直流电机驱动电路设计
18.4 程序演示
参考文献
数字信号处理理论与实践:深入解析TMS320F28335微控制器 本书旨在为读者提供一个全面而深入的数字信号处理(DSP)理论与实践的学习平台,特别聚焦于德州仪器(TI)公司高性能的TMS320F28335浮点数字信号处理器。本书的编写宗旨是,在理论知识扎实的基础上,充分结合具体的硬件平台,让读者能够真正理解DSP的核心概念,并熟练掌握在TMS320F28335上实现各种DSP算法的能力。 第一部分:数字信号处理基础理论 在开始深入到具体的微控制器应用之前,本书首先会系统地回顾和阐述数字信号处理的基础理论。这一部分将为读者打下坚实的理论基础,确保读者在后续的实践环节能够游刃有余。 1. 信号与系统的基本概念: 连续时间信号与离散时间信号: 详细介绍模拟信号和数字信号的特性,以及它们之间的转换过程(采样与量化)。 卷积与系统响应: 深入讲解卷积在LTI(线性时不变)系统分析中的核心作用,理解系统如何响应不同的输入信号。 系统稳定性与因果性: 探讨判断系统稳定性和因果性的方法,以及它们在实际应用中的重要性。 2. 傅里叶变换及其应用: 连续时间傅里叶变换(CTFT): 介绍信号在频率域的表示,理解信号的频谱特性。 离散时间傅里叶变换(DTFT): 探讨离散时间信号的频率域表示,为后续的DFT铺平道路。 离散傅里叶变换(DFT): 详细讲解DFT的原理、计算方法以及其在信号分析中的广泛应用,例如频谱分析、滤波设计等。 快速傅里叶变换(FFT): 介绍FFT算法的原理和优势,以及如何高效地计算DFT,这是DSP应用中的一个关键算法。 傅里叶变换的性质: 梳理傅里叶变换的线性、时移、频移、卷积等重要性质,理解它们在信号处理中的应用。 3. Z变换与系统分析: Z变换的定义与性质: 介绍Z变换作为DTFT的推广,在分析离散时间系统时的强大能力,以及其收敛域的概念。 系统函数(传递函数): 讲解如何通过Z变换得到系统的系统函数,并利用它分析系统的特性,如频率响应、稳定性等。 零极点分析: 深入理解系统函数中的零点和极点对系统性能的影响,以及如何通过零极点图来直观地分析系统。 4. 数字滤波器的设计与实现: 滤波器的基本概念: 区分低通、高通、带通、带阻滤波器,以及它们的理想特性。 无限冲激响应(IIR)滤波器: 介绍IIR滤波器的结构、设计方法(如巴特沃斯、切比雪夫、椭圆滤波器),以及它们在实现特定频率响应时的优势。 有限冲激响应(FIR)滤波器: 介绍FIR滤波器的结构、设计方法(如窗函数法、频率采样法、最优逼近法),以及它们在实现线性相位时的优势。 滤波器性能指标: 讲解通带纹波、阻带衰减、过渡带宽度等关键性能指标,以及如何根据应用需求选择合适的滤波器设计。 5. 采样定理与重建: 奈奎斯特-香农采样定理: 详细阐述该定理,理解信号采样频率与信号最高频率之间的关系,以及过采样和欠采样的后果。 信号重建: 介绍采样后如何通过插值等方法将离散信号恢复为连续信号,并讨论重建过程中的失真问题。 第二部分:TMS320F28335微控制器硬件与开发环境 在掌握了DSP的基础理论后,本书将重点转向TMS320F28335微控制器。我们将深入了解其架构、特性以及相应的开发工具链。 1. TMS320F28335概述: 架构特点: 介绍TMS320F28335的C2000系列核心,包括其32位浮点CPU、Harvard架构、高速时钟、DMA控制器、中断系统等关键组成部分。 主要特性: 重点突出其在DSP应用中的优势,如高性能的浮点运算能力、丰富的片上外设(ADC、DAC、PWM、SCI、SPI、I2C、CAN等)、以及低功耗特性。 存储器组织: 讲解片内RAM、ROM、Flash的结构和访问方式,为程序编写和数据存储提供指导。 2. 开发工具链介绍: Code Composer Studio (CCS): 详细介绍TI官方的集成开发环境CCS,包括其安装、项目创建、代码编辑、编译、下载、调试等功能。 C/C++语言在DSP中的应用: 阐述如何使用C/C++语言进行DSP算法的编写,并重点介绍针对TMS320F28335的编译器优化选项和特殊库函数。 汇编语言的辅助应用: 讨论在性能要求极高的场合,如何结合汇编语言对关键算法进行优化。 仿真工具: 介绍CCS集成的仿真器,以及如何利用仿真器进行代码调试、性能分析和硬件交互验证。 3. TMS320F28335片上外设详解: 模数转换器(ADC): 深入讲解ADC的采样速率、分辨率、工作模式(单次转换、连续转换、触发转换等),以及如何配置ADC进行高效的数据采集。 数模转换器(DAC): 介绍DAC的功能和配置,以及如何利用DAC输出模拟信号。 脉冲宽度调制器(PWM): 详细讲解PWM的生成原理、工作模式(ePWM模块)、死区时间设置、触发ADC等,在电机控制、电源管理等领域是核心模块。 通信接口(SCI, SPI, I2C): 介绍这些串行通信接口的工作原理、协议和配置,以及如何与外部设备进行数据交换。 通用输入输出(GPIO): 讲解GPIO的配置和使用,如何作为数字输入输出端口,以及其复用功能。 定时器: 介绍片上定时器的工作模式和应用,用于精确的时间控制和事件触发。 DMA控制器: 讲解DMA(直接内存访问)的原理和配置,如何实现CPU与外设之间的高速数据传输,减轻CPU负担。 中断系统: 详细阐述TMS320F28335的中断向量表、中断控制器、中断服务程序的编写和管理。 第三部分:TMS320F28335上的DSP算法实现 在理论和硬件平台都准备就绪后,本书将带领读者动手实践,将DSP算法移植到TMS320F28335上,实现各种实际应用。 1. DSP基础运算的硬件加速: 乘累加(MAC)操作: 讲解TMS320F28335的硬件MAC单元如何高效执行乘累加运算,这是DSP算法的核心。 指令集与汇编优化: 探讨如何利用TMS320F28335的特有指令集,对关键的DSP运算进行底层优化,达到更高的执行效率。 2. FFT算法在TMS320F28335上的实现: FFT算法原理回顾: 简要回顾FFT的原理,特别是蝶形运算。 定点与浮点FFT: 讨论在TMS320F28335上实现FFT时,选择定点运算还是浮点运算的考量,以及各自的优缺点。 FFT程序设计: 提供TMS320F28335上FFT算法的C语言实现示例,并结合其硬件特性进行讲解。 性能分析与优化: 如何分析FFT算法在TMS320F28335上的执行时间和资源占用,并进行进一步优化。 3. 数字滤波器在TMS320F28335上的实现: IIR滤波器实现: 演示如何将IIR滤波器的差分方程转化为TMS320F28335上的C语言代码,并处理好定点运算中的量化和溢出问题。 FIR滤波器实现: 讲解FIR滤波器的卷积运算如何在TMS320F28335上高效执行,并展示示例代码。 滤波器性能与实时性: 探讨滤波器在TMS320F28335上的实时性问题,以及如何根据采样率和滤波器阶数进行设计。 4. TMS320F28335在典型DSP应用中的实践: 音频信号处理: 音频采样与播放: 利用ADC采集音频信号,通过DAC输出,或将处理后的音频数据存储到外部存储器。 简单的音频效果: 实现混响、均衡器等基础音频效果。 FFT在音频分析中的应用: 例如,分析音频的频谱特性,实现音调识别等。 电机控制: PWM生成与控制: 详细讲解如何利用TMS320F28335的ePWM模块实现各种电机控制(如SPWM、FOC等)。 ADC采样与反馈: 利用ADC采集电流、电压等反馈信息,实现闭环控制。 DSP算法在电机控制中的作用: 例如,使用DSP算法实现精确的转速、位置控制。 通信系统: 基于SPI/SCI/I2C的通信: 实现与其他微控制器或传感器之间的数据通信。 简单的调制解调: 介绍在DSP上实现简单的数字调制解调技术。 传感器数据处理: 传感器数据采集与滤波: 利用ADC和数字滤波器处理来自各种传感器(如加速度计、陀螺仪、温度传感器等)的噪声数据。 传感器融合: 结合多个传感器的数据,通过DSP算法提取更可靠的信息。 5. DSP系统的优化与移植: 实时性保障: 如何设计高效的程序,保证DSP算法在规定的时间内完成,满足实时性要求。 功耗优化: 探讨在TMS320F28335上进行低功耗设计的方法。 代码移植: 针对不同应用场景,如何对现有DSP代码进行修改和移植。 附录 TMS320F28335指令集速查表 常用DSP算法的C语言代码片段 相关硬件模块的典型接线图 参考文献 本书内容丰富,理论与实践相结合,旨在帮助读者从零开始,逐步掌握数字信号处理的关键技术,并能熟练运用TMS320F28335微控制器进行实际的DSP系统开发。通过本书的学习,读者将能够自信地应对各种复杂的DSP挑战,并将理论知识转化为实际的工程应用。