关于我们
![]() ![]() |
嵌入式DSP的原理与应用基于TMS320F28335
本书以TMS320F28335(简称F28335)的工程应用为主线,从电力电子产品的嵌入式应用角度出发,介绍了其软硬件的开发方法;例程内容力求涵盖电力电子技术中所有的控制、算法、逻辑等操作.本书以提高读者的DSP应用水平为目的,本着循序渐进的原则,前半部分基础简单,后半部分难度较高,详细介绍了浮点算法开发、程序固化、FLASH 片上升级优化、用户自定义BootLoader等内容.本书例程不仅调试通过而且其基本思想均应用于目前主流电力电子产品中,具有很高的参考和实用价值.
随着电力电子技术及相关控制理论的快速发展,高性能、高精度、高集成度的电力电子产品目前已经成为市场主流,这也对控制器性能的要求越来越高.TMS320F2833x(简称F2833x)属于TI公司TMS320C2000(简称C2000)系列DSP产品,具有强大的数字信号处理功能.
2004年我第一次接触的DSP是2812,遗憾的是只应用了其中的某几个模块.后来加入到全球知名的某电力电子公司从事嵌入式开发工作,系统地在TI公司开发的2812、2803x、28016等Piccolo系列DSP、F2833x系列Delfino以及TMS320F2837xD双核系列DSP的基础上进行了产品开发.如果说实验室的工作只是在DSP的基础上做一些理论研究,分散、独立地使用DSP的各个模块,那么工作中尤其是对于产品的设计,我们会尽可能地去挖掘DSP的功能,甚至觉得原本丰富的资源都变得如此紧张了.我在参观TI公司总部时与其工程师的交谈更加明确了这一点:C2000系列并非只是功能强大的“单片机”,而是各个模块内部相互强化,应用在电力电子控制领域的数字信号处理器. 本书是在严格参考TI数据手册的基础上结合作者多年的DSP开发经验整理、归纳而成的,旨在达到理论与实践的结合、知识与案例的统一,注重培养读者运用知识创新能力和解决实际问题的工程能力. 全书共分为12章.第1~8章为F2833x的基本应用,内容涵盖F28335几乎所有模块,对比了2812、2808等DSP与F2833x系列的不同点,旨在希望读者快速掌握不同系列的特点.每章的应用实例不仅调试通过且其思想均已应用在市场主流电力电子产品中,具有很高的应用和参考价值.第9~12章属于DSP的高级应用,难度较高但工程实用性很强.第9章系统地分析了FPU 模块,归纳总结了浮点指令及库函数应用,其中加入了大量的例程也是希望读者能够掌握其指令特点.第10章和第11章系统、详尽地分析了API的使用,BootLoader和目前常见的片上FLASH 升级方案.其中如何自行建立Boot使其具有远程FLASH 升级功能有相当高的工程应用价值.第12章为电力电子技术的应用,采用电力电子技术基本理论与DSP应用相结合,其中所包含的内容均代表了当下电力电子控制领域核心、常用、流行的元素,书中所给出的程序及其思想也为读者扩展思维提供了帮助. 本书由哈尔滨理工大学的马骏杰编写并统稿,张思艳老师参与编写了第4章和第6章.感谢李全利教授、王旭东教授和王哈力教授对本书出版的关心,感谢那些年陪伴我在电力电子科研道路上奋斗过的小伙伴们,感谢TI深圳办事处的工程师对本书编写提出的宝贵意见,还要感谢我的父母、岳父母、妻子给我的关爱和支持,并将此书献给我即将出生的宝贝“子越”. 此外,本书还得到了汽车电子驱动控制与系统集成教育部工程研究中心、国家自然科学基金(51177031)、黑龙江省科技攻关项目(GB08A306)的大力支持,在此对相关的老师与同学表示衷心感谢! 由于作者水平有限,书中不妥之处在所难免,敬请读者提出宝贵意见和建议. 作 者2015年9月13日
第1章 绪 论………………………………………………………………………… 1
1.1 数字信号处理………………………………………………………………… 1 1.1.1 模拟和数字信号的处理方式…………………………………………… 1 1.1.2 数字信号处理的优缺点………………………………………………… 2 1.2 DSP的发展及特点…………………………………………………………… 3 1.3 DSP产品简介………………………………………………………………… 5 1.3.1 TI公司的DSP产品…………………………………………………… 5 1.3.2 TMS320C28x产品简介………………………………………………… 6 第2章 F28335的结构原理………………………………………………………… 8 2.1 F28335的内部结构…………………………………………………………… 8 2.2 F28335的CPU ……………………………………………………………… 10 2.2.1 CPU 运算单元………………………………………………………… 10 2.2.2 CPU 寄存器组………………………………………………………… 12 2.2.3 辅助寄存器算术单元ARAU ………………………………………… 14 2.2.4 FPU 浮点运算单元…………………………………………………… 15 2.3 F28335的存储器及应用…………………………………………………… 15 2.3.1 SARAM 存储器………………………………………………………… 17 2.3.2 FLASH 及使用详解…………………………………………………… 17 2.3.3 BootROM ……………………………………………………………… 22 2.3.4 CSM 代码安全模块及使用详解……………………………………… 24 2.3.5 OTP存储器…………………………………………………………… 31 2.3.6 外设帧…………………………………………………………………… 31 2.3.7 外部存储器接口………………………………………………………… 32 2.4 外设及引脚功能……………………………………………………………… 33 2.5 F28335的时钟及控制……………………………………………………… 36 2.5.1 系统时钟的产生………………………………………………………… 36 2.5.2 系统时钟的分配………………………………………………………… 37 2.5.3 F28335的低功耗模式及相关寄存器………………………………… 42 2.5.4 F28335的看门狗模块………………………………………………… 44 2.6 F28335的CPU 定时器……………………………………………………… 47 2.6.1 定时器结构……………………………………………………………… 47 2.6.2 定时器中断申请………………………………………………………… 48 2.6.3 定时器寄存器及位域结构体定义……………………………………… 48 2.6.4 定时器应用例程———如何记录函数的运行时间……………………… 51 第3章 集成开发环境及程序开发语言…………………………………………… 53 3.1 CCS集成开发环境………………………………………………………… 53 3.1.1 CCS集成的工具软件………………………………………………… 53 3.1.2 CCSv5.4安装及基本配置…………………………………………… 55 3.1.3 ControlSuite简介……………………………………………………… 59 3.1.4 在CCSv5.4下运行工程项目………………………………………… 59 3.1.5 CCSv3.3到CCSv5.4的项目迁移…………………………………… 66 3.1.6 在CCSv5.4下新建一个工程文件…………………………………… 68 3.2 F28335汇编语言概述……………………………………………………… 74 3.2.1 F28335汇编指令描述………………………………………………… 75 3.2.2 寻址方式及常用汇编指令……………………………………………… 76 3.2.3 CMD文件及汇编程序示例…………………………………………… 80 3.2.4 汇编语言应用例程……………………………………………………… 82 3.3 F28335的C语言编程基础………………………………………………… 83 3.3.1 F28335的C语言数据类型…………………………………………… 84 3.3.2 C语言的重要关键字…………………………………………………… 85 3.3.3 C语言CMD文件的编写……………………………………………… 86 第4章 F28335的通用I/O 口…………………………………………………… 90 4.1 GPIO的功能结构…………………………………………………………… 90 4.2 GPIO寄存器及传统定义方法示例………………………………………… 92 4.2.1 GPIO控制类寄存器…………………………………………………… 92 4.2.2 GPIO数据类寄存器…………………………………………………… 94 4.2.3 传统寄存器定义方法示例……………………………………………… 95 4.3 寄存器的位域结构方法示例………………………………………………… 96 4.3.1 GPIO寄存器组类型定义……………………………………………… 96 4.3.2 定义存放寄存器组的存储器段……………………………………… 101 4.3.3 寄存器组的存储器段地址定位……………………………………… 102 4.3.4 寄存器位结构定义的使用…………………………………………… 102 4.4 GPIO应用例程…………………………………………………………… 103 第5章 F28335的中断系统……………………………………………………… 104 5.1 中断系统的结构…………………………………………………………… 104 5.1.1 中断管理机制………………………………………………………… 104 5.1.2 中断处理及响应过程………………………………………………… 106 5.1.3 CPU 中断向量………………………………………………………… 106 5.1.4 CPU 级中断相关寄存器……………………………………………… 108 5.2 PIE外设中断扩展模块…………………………………………………… 109 5.2.1 PIE模块的结构……………………………………………………… 109 5.2.2 PIE中断向量表映射………………………………………………… 110 5.2.3 PIE模块相关寄存器………………………………………………… 117 5.2.4 PIE模块寄存器的程序操作………………………………………… 119 5.3 非屏蔽中断………………………………………………………………… 123 5.3.1 软件中断……………………………………………………………… 123 5.3.2 非法指令中断………………………………………………………… 124 5.3.3 硬件NMI中断……………………………………………………… 124 5.3.4 硬件复位中断XRS…………………………………………………… 125 5.4 中断应用实例———如何创建中断嵌套服务程序………………………… 125 第6章 模/数转换单元ADC …………………………………………………… 127 6.1 ADC模块概述……………………………………………………………… 127 6.1.1 ADC模块构成及原理………………………………………………… 127 6.1.2 时钟及采样频率……………………………………………………… 130 6.1.3 ADC采样工作方式…………………………………………………… 131 6.2 ADC模块校准功能及使用详解…………………………………………… 134 6.3 ADC模块寄存器…………………………………………………………… 136 6.4 ADC性能实验分析………………………………………………………… 143 6.5 ADC模块的应用———如何进行数据处理及程序校准…………………… 146 第7章 F28335片上控制外设…………………………………………………… 148 7.1 增强型脉宽调制模块ePWM ……………………………………………… 148 7.1.1 时间基准子模块TB原理及应用…………………………………… 150 7.1.2 计数器比较子模块CC原理及应用………………………………… 155 7.1.3 动作限定子模块AQ 原理及应用…………………………………… 157 7.1.4 死区控制子模块DB原理及应用…………………………………… 163 7.1.5 错误控制子模块TZ原理及应用…………………………………… 165 7.1.6 事件触发子模块ET原理及应用…………………………………… 169 7.2 增强型捕获模块eCAP …………………………………………………… 174 7.2.1 eCAP工作模式……………………………………………………… 174 7.2.2 捕获模块寄存器……………………………………………………… 177 7.2.3 eCAP程序例程———如何捕获外部脉冲信号……………………… 183 第8章 F28335的片上串行通信单元…………………………………………… 185 8.1 串行通信的基本概念……………………………………………………… 185 8.1.1 异步通信和同步通信………………………………………………… 185 8.1.2 串行通信的传输方向………………………………………………… 186 8.1.3 串行通信的错误校验………………………………………………… 186 8.2 SCI通信模块及应用……………………………………………………… 187 8.2.1 SCI通信模块简介…………………………………………………… 187 8.2.2 SCI工作原理………………………………………………………… 188 8.2.3 SCI基本数据格式…………………………………………………… 188 8.2.4 多处理器通信方式…………………………………………………… 190 8.2.5 SCI相关寄存器……………………………………………………… 191 8.2.6 SCI应用实例———如何实现异步通信数据的收发………………… 194 8.3 SPI通信模块及应用……………………………………………………… 195 8.3.1 SPI模块简介………………………………………………………… 195 8.3.2 SPI工作原理………………………………………………………… 196 8.3.3 SPI的时钟与波特率………………………………………………… 198 8.3.4 SPI相关寄存器……………………………………………………… 198 8.3.5 SPI模块应用实例———如何建立有效的全双工数据通信………… 202 8.4 McBSP模块及应用………………………………………………………… 203 8.4.1 McBSP数据收发原理………………………………………………… 204 8.4.2 数据的压缩和扩展…………………………………………………… 205 8.4.3 McBSP数据帧………………………………………………………… 205 8.4.4 时钟及采样率发生器………………………………………………… 207 8.4.5 McBSP工作模式简介………………………………………………… 210 8.4.6 McBSP相关寄存器…………………………………………………… 210 8.4.7 McBSP的应用———如何实现在SPI模式下的数据收发…………… 218 8.5 I2C通信模块及应用……………………………………………………… 220 8.5.1 I2C总线基础………………………………………………………… 220 8.5.2 I2C相关寄存器……………………………………………………… 223 8.5.3 I2C应用实例———EEPROM 数据的读/写………………………… 227 8.5.4 I2C真实波形数据格式分析………………………………………… 229 8.6 CAN 通信模块……………………………………………………………… 232 8.6.1 CAN 模块简介………………………………………………………… 232 8.6.2 CAN 相应寄存器……………………………………………………… 233 8.6.3 CAN 应用注意事项及数据收发程序详解…………………………… 239 第9章 浮点运算单元……………………………………………………………… 245 9.1 浮点单元简介……………………………………………………………… 245 9.1.1 C28x+FPU 的特点…………………………………………………… 245 9.1.2 浮点指令流水线结构………………………………………………… 246 9.1.3 IEEE754单精度浮点格式…………………………………………… 247 9.2 FPU 的寄存器……………………………………………………………… 248 9.3 浮点汇编指令详解………………………………………………………… 250 9.3.1 移动指令……………………………………………………………… 251 9.3.2 浮点算术运算指令…………………………………………………… 259 9.3.3 寄存器数据传递指令………………………………………………… 272 9.3.4 特殊运算指令………………………………………………………… 275 9.3.5 寄存器清0指令……………………………………………………… 276 9.4 F28335库函数使用详解…………………………………………………… 277 9.4.1 FPUFastRTS库简介……………………………………………… 278 9.4.2 FPUFastRTS库使用方法………………………………………… 279 9.4.3 FPUFastRTS库软件优化………………………………………… 280 9.4.4 FPU 软件应用实例…………………………………………………… 281 第10章 BootLoader原理及应用………………………………………………… 283 10.1 BootLoader基本工作流程……………………………………………… 283 10.1.1 F2833x片内引导过程……………………………………………… 284 10.1.2 基本工作流程代码解析……………………………………………… 285 10.2 BootLoader基本数据传输协议………………………………………… 289 10.2.1 16位数据流结构…………………………………………………… 289 10.2.2 8位数据流结构……………………………………………………… 290 10.2.3 数据引导装载过程…………………………………………………… 291 10.2.4 数据格式转换………………………………………………………… 292 10.3 引导模式之跳转模式……………………………………………………… 294 10.3.1 FLASH 上电复位跳转模式及代码解析…………………………… 294 10.3.2 片上其他跳转模式…………………………………………………… 296 10.4 引导模式之加载模式……………………………………………………… 297 第11章 打开FLASH 升级的“潘多拉”盒子…………………………………… 299 11.1 F2833xFLASH 烧录基础……………………………………………… 299 11.1.1 FLASH 烧录的一般要求…………………………………………… 299 11.1.2 FLASH 烧录步骤…………………………………………………… 300 11.2 CCS插件升级方式……………………………………………………… 300 11.2.1 CCSv3.3版本下的FLASH 升级………………………………… 300 11.2.2 CCSv5.4版本下的FLASH 升级………………………………… 301 11.3 SDFLASH 插件操作方式………………………………………………… 305 11.3.1 SDFLASH 的串行升级基本操作…………………………………… 305 11.3.2 如何更改串行升级文件……………………………………………… 310 11.4 用户自定义升级方式……………………………………………………… 311 11.4.1 FLASH API的应用解析…………………………………………… 311 11.4.2 基于SCI总线的远程FLASH 加载方案………………………… 315 第12章 基于F28335的电力电子应用案例分析……………………………… 323 附录A CRC数据表……………………………………………………………… 402 附录B SCIBoot参考代码………………………………………………………… 404 参考文献……………………………………………………………………………… 407
你还可能感兴趣
我要评论
|