《TMS320C54系列DSP原理与应用》由浅入深,全面而又系统地介绍了基于c/c++语言的ti公司tms320c54x系列定点dsp芯片的基本原理、开发和应用。首先介绍了dsp芯片在不同领域的广泛应用,以及定点和浮点dsp处理中的一些关键问题;其次详细介绍了tms320c54x dsp的硬件结构、工作原理、汇编指令、c/c++语言、集成开发工具ccs(code composer studio),以及各种硬件接口电路设计开发实例;最后,以瑞泰公司tms320vc5416为核心的通用dsp实验系统(icetek-vc5416 a-s60)为例,给出它在c/c++语言基础上实现fir和iir滤波器、fft等应用中的编程使用方法和步骤,为开发dsp系统奠定了使用基础。
《TMS320C54系列DSP原理与应用》内容全面、实例丰富,既可作为高等院校电子信息工程、通信工程、自动化等专业的研究生和高年级本科生学习的教材和参考书,也可供从事dsp芯片开发与应用的广大工程技术人员参考。
随着计算机和信息技术的发展,当今社会已经进入一个数字化的时代,数字信号处理技术已经渗透到生活的每一个角落。如数码相机、虚拟现实系统、数字无绳电话、VCD/DVD、数字高清电视、无线网络等。无数的产品都采用了数字信号处理器(Digital Signal Processor,DSP),它由于采用了改进的哈佛结构(Harvard),具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,从而为数字信号处理的实际应用开辟了一条简便而高效的途径。因此,开发和应用DSP越来越成为当今科学和社会发展的需要。
目前DSP芯片的主要供应商包括美国的得州仪器(TI)公司、AD公司、Motorola公司等,其中,TI公司的DSP芯片已经占据了世界DSP芯片市场的近50%,在国内也被广泛采用,因此,本书在开发应用部分主要以TI公司的TMS320C54x DSP为例进行介绍。
本书共分8章,第1章是DSP芯片基础,首先对数字信号处理的系统组成和实现的方法以及它的特点作了概述,然后对DSP芯片的分类、特点、发展和应用作了详细介绍,最后介绍了定点DSP数据处理中的定标和运算问题。第2章对DSP芯片的代码调试器(Code Composer Studio, CCS)集成开发环境的基本原理和使用方法作了详细介绍,并给出了具体实例。第3章重点介绍了TMS320C54x系列DSP芯片的硬件结构。第4章和第5章详细介绍了该系列芯片的寻址方式和汇编语言程序设计,并给出了具体实例。第6章对DSP芯片的C/C++语言开发进行了详细的介绍,第7章介绍了DSP芯片的最小硬件系统设计,对常用的复位电路和时钟电路以及电源电路作了详细介绍,并对外部扩展存储器的接口设计和Flash擦写以及Bootloader的引导进行了讨论。第8章介绍了TMS320C54x DSP芯片的应用设计,以瑞泰公司的ICETEKVC5416 AS60实验箱为硬件平台,以基于C/C++开发语言的完整程序实例详细地说明了定时器、FIR、IIR、交通灯在TMS320VC5416 DSP芯片中的应用。为了对每一章的学习作一个自我测试,每章后面都有习题,这些习题既是强调本章内容的重要知识点,也是对本章内容的升华和提高。
该书的特色体现在以下几点。
(1) 强调理论与实例相结合。通过完整的应用实例学习,学生能由浅入深地掌握TMS320C54x系列DSP的基本原理、系统组成和软、硬件开发过程。
(2) 加强了C/C++程序设计的内容介绍。同类教材中一般只有汇编语言部分的详细介绍,而在实例中却往往采用C/C++语言来实现,使得学生前面学汇编,后面的实例中却只能用C/C++,前后有点脱节。
(3) 作为一本高校教材,为了配合DSP实验教学的同步进行,解决实验教师和任课教师的教学冲突,特将程序调试环境的介绍提到了前面,并加大了这部分内容的详细介绍,避免出现和同类教材中一样先介绍芯片内部资源,再介绍指令系统,然后再介绍开发环境的弊端,省去了任课教师不得不调整教学内容顺序、重新修改教学日历等诸多麻烦。
该教材实例丰富完整,可以避免出现学习者在将书中的实例照搬到实验中时出现仍然调试不出来的尴尬情况。
第1~2章、第6~8章及附录部分由张永祥编写,第3~5章由宋宇编写。在编写的过程中,本科生魏晨等帮助进行资料的搜集整理工作,研究生卢言和栾中完成了书中DSP语言程序的编译和调试工作。编者在编写本书的过程中参考了不少专家和学者的著作和文章,得到了首都师范大学信息工程学院关永院长及院领导给予的大力支持,以及北京瑞泰创新科技有限责任公司、清华大学出版社梁颖的积极帮助,在此深表谢意。
本书是编者在DSP实践教学过程中的一个小小总结,若读者也对DSP芯片的开发和应用感兴趣,可以通过Email(zhang000413@163.com)与作者交流。
由于编者水平有限,书中难免有误,请读者不吝指正。
编者
2011年11月
第1章 绪论
1.1 数字信号处理概述
1.1.1 数字信号处理系统的组成
1.1.2 数字信号处理的实现
1.1.3 数字信号处理的特点
1.2 数字信号处理器概述
1.2.1 dsp芯片的分类
1.2.2 dsp芯片的特点
1.2.3 dsp芯片的发展
1.2.4 dsp芯片的应用
1.3 dsp芯片运算基础
1.3.1 数的定标
1.3.2 数的运算
1.4 小结
习题1
第2章 ccs集成开发环境的特征及应用
2.1 ccs概述
2.1.1 ccs的发展
2.1.2 代码生成工具
2.1.3 实时数据交换和硬件仿真
2.2 ccs软件安装与设置
2.2.1 ccs软件安装
2.2.2 ccs软件设置
2.2.3 icetek-vc5416 a-s60的配置和使用
2.3 ccs集成开发环境的使用
2.3.1 主要菜单及功能介绍
2.3.2 工作窗口区介绍
2.4 gel语言的使用
2.4.1 gel函数的定义
2.4.2 调用gel函数
2.4.3 将gel函数添加到gel菜单中
2.5 开发一个简单的dsp应用程序
2.5.1 创建一个新的工程
2.5.2 将文件添到该工程中
2.5.3 编译链接和运行程序
2.5.4 调试程序
2.6 小结
习题2
第3章 tms320c54x系列dsp硬件结构
3.1 tms320c54x dsp的特点与基本结构
3.1.1 tms320c54x dsp的基本结构
3.1.2 tms320c54x dsp的主要特点
3.2 tms320c54x dsp的总线结构
3.3 tms320c54x dsp的cpu结构
3.3.1 算术逻辑运算单元
3.3.2 累加器
3.3.3 移位寄存器
3.3.4 乘累加单元
3.3.5 比较选择存储单元
3.3.6 指数编码器
3.3.7 cpu状态控制寄存器
3.3.8 寻址单元
3.4 tms320c54x dsp的存储器结构
3.4.1 存储器空间
3.4.2 程序存储器
3.4.3 数据存储器
3.4.4 i/o存储器
3.5 tms320c54x dsp的片内外设
3.5.1 中断系统
3.5.2 定时器
3.5.3 主机接口
3.5.4 串行口
3.5.5 外部总线结构
3.6 小结
习题3
第4章 tms320c54x的数据寻址方式
4.1 立即寻址
4.2 绝对寻址
4.2.1 数据存储器寻址
4.2.2 程序存储器寻址
4.2.3 端口地址寻址
4.2.4 长立即数寻址
4.3 累加器寻址
4.4 直接寻址
4.5 间接寻址
4.5.1 单操作数寻址
4.5.2 双操作数寻址
4.6 存储器映射寄存器寻址
4.7 堆栈寻址
4.8 小结
习题4
第5章 tms320c54x dsp的汇编语言程序设计
5.1 汇编语言程序编写方法
5.1.1 汇编语言源程序格式
5.1.2 汇编语言中的常数和字符串
5.1.3 汇编源程序中的符号
5.2 汇编语言的指令系统
5.2.1 指令系统中的符号和缩写
5.2.2 算术运算指令
5.2.3 逻辑运算指令
5.2.4 程序控制指令
5.2.5 加载和存储指令
5.3 tms320c54x dsp汇编语言的编辑、汇编与链接过程
5.4 汇编器
5.4.1 公共目标文件格式——coff
5.4.2 coff文件中的符号
5.4.3 常用汇编伪指令
5.4.4 汇编器对段的处理
5.5 链接器
5.5.1 链接器对段的处理
5.5.2 链接器命令文件的编写与使用
5.5.3 程序重定位
5.6 小结
习题5
第6章 tms320c54x dsp的c/c++程序设计
6.1 c/c++程序设计基础
6.1.1 面向dsp的程序设计原则
6.1.2 c/c++语言数据类型
6.1.3 c/c++语言程序结构
6.1.4 c/c++语言函数
6.1.5 c/c++的dsp访问规则
6.2 程序设计示例
6.2.1 电路设计与功能
6.2.2 代码分析
6.2.3 程序源代码
6.3 c语言和汇编语言混合编程
6.3.1 独立的c模块和汇编模块接口
6.3.2 从c程序中访问汇编程序变量
6.3.3 在c程序中直接嵌入汇编语句
6.4 小结
习题6
第7章 tms320c54x dsp芯片最小硬件系统设计
7.1 tms320c54x dsp系统的基本硬件设计
7.1.1 复位电路
7.1.2 时钟电路
7.1.3 电源电路
7.2 存储器接口设计
7.2.1 ram接口设计
7.2.2 flash接口设计
7.3 flash擦写
7.4 bootloader设计
7.4.1 bootloader的过程
7.4.2 bootloader的实现
7.5 小结
习题7
第8章 tms320c54x dsp芯片应用设计
8.1 定时器在icetek-vc5416 a-s60上的设计实例
8.2 fir在icetek-vc5416 a-s60 dsp上的设计实例
8.3 iir在icetek-vc5416 a-s60上的设计实例
8.4 交通灯在icetek-vc5416 a-s60上的设计实例
8.4.1 系统构成
8.4.2 系统软硬件设计
8.4.3 系统调试
8.5 小结
习题8
附录a
参考文献