前言
TI公司的2000系列DSP芯片,适合作为控制装置的微控制器,故俗称为DSP控制器。从以TMS320LF2407为代表的24x系列发展到以TMS320F2812为代表的28x系列只经历了短短几年时间,更新速度之快出乎人们的意料。TMS320F28335是目前2833x系列高端DSP控制器芯片之一,与同频TMS320F2812相比,内核采用32位定点CPU加上32位浮点运算单元(FPU),浮点数运算速度提高5~8倍。在ADC、PWM等外设模块性能上都有重大改进,广泛应用于电力保护、逆变电源、交直流电机控制等高速、高精度控制领域。本教材以TMS320F28335为教学模型,介绍其软硬件结构和开发方法。
TI公司推出28x系列DSP芯片后,CCS(代码生成器)集成开发环境下的C编译器和C环境也做出重大改进,通过改变中断向量表存放中断函数入口地址等一系列措施,中断向量表就不像24x系列C编译器那样,存放汇编转移指令表了。这就使28x系列的源程序完全采用C或C++编程,从而迈入全C/C++语言编程的时代。
TI公司为F28335设计出一整套通用源文件模板、通用头文件模板、通用链接器命令文件模板、浮点支持库和所有片上外设模块的实例工程文件模板。用户根据应用程序需要,将启用的各个片上外设模块寄存器组结构体变量初始化源文件合并到一个工程文件中,并设计或修改应用主程序和中断服务程序源文件,就能快速创建应用工程文件。TI公司在28x系列DSP软件设计中,竭力推广软件模块化设计规范和设计方法。设计规范主要包括为每一个片上外设模块设计一个该外设模块的寄存器组结构体类型定义头文件(.h)模板和一个寄存器组结构体变量初始化函数源文件模板(.c)。若DSP应用程序需要使用某个片上外设模块的软硬件功能,就把该外设模块的源文件模板添加到工程文件中。软件模块化设计方法主要采用一个工程文件作为DSP应用程序顶层文件,允许一个工程文件由多个源文件和其他类型文本文件组成。这就能把一个大的DSP应用程序通过功能划分,拆分成多个源文件(即模块),便于用较小的文件单位来编写、编辑和调试代码,使较大的DSP应用程序阅读性、移植性、调试性等指标显著提高,排查代码的逻辑错误更加便捷、高效。
F28335每个片上外设模块的寄存器组结构体类型定义语句把该模块的所有控制寄存器、数据寄存器、状态寄存器结构体类型都作为一个寄存器组结构体类型的成员,所以该外设模块的结构原理、可编程功能均与该模块寄存器组定义的位域功能息息相关。因此,本书不仅详细介绍DSP外设模块结构和外设模块每个寄存器位域变量名称和功能,还详细介绍TI公司提供的外设模块寄存器组结构体类型定义头文件(.h)模板、一个寄存器组结构体类型变量初始化函数源文件模板以及仿真用和烧写用链接器命令文件模板,使读者能很快掌握开发DSP外设功能模块应用程序的方法。详细介绍了FFT的C语言迭代算法和F28335实现程序,这是以往DSP教材所不及的。
随着DSP控制器技术的发展,外设功能模块硬件与软件之间的界限越来越模糊,硬件与软件之间的融合越来越紧密。TI公司为F28335设计出一整套工程文件模板就是一个佐证。用户利用工程文件模板,就能快速搭建应用程序所需的工程文件架构,就能把主要精力放在与实际应用相关的控制算法、数字处理算法、通信算法等主程序编写上。为了适应这种变化,本书重点介绍F28335的CPU架构、系统上电复位后必须初始化的片上外设模块(定义为系统初始化模块)、一些通用的外设模块(如CPU定时器模块、SCI模块、ADC模块等)相关工程文件模板,并通过这些外设模块的应用程序开发,系统介绍DSP应用程序的设计与软件开发工具CCS的使用与调试方法。
本书共8章,概括了TMS320F28335软硬件开发的所有基本内容。
第1章主要介绍DSP的概念、DSP的特点、2833x系列DSP控制器结构与主要性能、二进制定点数与浮点数的数据格式、定点DSP与浮点DSP比较、CCS 3.3安装信息、F28335最小硬件系统的基本设计方法和DSP软件开发流程。
第2章介绍TMS320F28335的硬件结构和基本特性,包括CPU结构、存储器结构、所有片上外设模块的结构。
第3章介绍DSP软件开发基础,包括COFF文件格式、分段技术、F28335的工程文件模板的文件结构、CCS 3.3的所有菜单命令。
第4章介绍系统初始化模块应用程序开发,包括由系统控制模块、GPIO模块、PIE模块组成的系统初始化模块的硬件结构、系统初始化模块的各个寄存器组功能描述以及系统初始化模块应用程序开发实例。
第5章介绍CPU定时器模块应用程序开发,包括CPU定时器模块的结构、寄存器组功能描述以及CPU定时器模块应用程序开发实例。
第6章介绍常用串行接口模块应用程序开发,包括SCI(异步通信接口)的结构、寄存器组描述以及SCI模块应用程序开发实例;SPI(串行外设接口)的结构、寄存器组描述以及SPI模块应用程序开发实例。
第7章介绍增强型ADC(模数转换器)模块应用程序开发,包括ADC的结构、寄存器组功能描述以及ADC模块应用程序开发实例。
第8章介绍FFT的DSP应用程序开发,包括基2 DIT-FFT算法描述、微机迭代算法以及基2 DIT-FFT微机算法DSP应用程序开发实例。
本书是在经过3届电子工程、自动化、计算机应用本科生教学实践基础上逐步完善的。每章都设有习题,在教材最后给出各章习题参考答案,便于学生自学和教学参考。
在本书的编写过程中,尧横、李文杰、张硕、屈霞、王天成提供了非常大的帮助,同时还得到北京闻亭泰科技术发展有限公司上海分公司谭忠泽、常州市瑞隆工业控制装备有限公司王小孟和赵天伟的大力支持,在此一并表示衷心的感谢。在书稿的编写过程中,研究生汤宁、冒智康以及DSP技术及应用课程学习的很多本科生做了大量辅助工作,在此表示诚挚的谢意。
由于编者水平有限,书中难免存在不足之处,恳请读者批评指正。
编者
2018年12月