本书以TMS320C55x系列DSP为核心,详细介绍了数字信号处理器的背景知识,以及该系列芯片的CPU内部结构、存储器空间结构、汇编指令系统和片内外设,并且对应用程序开发流程、C语言编程方法和集成开发环境CCS进行了系统的阐述。本书以TMS320C55x系列DSP为核心,详细介绍了数字信号处理器的背景知识,以及该系列芯片的CPU内部结构、存储器空间结构、汇编指令系统和片内外设,并且对应用程序开发流程、C语言编程方法和集成开发环境CCS进行了系统的阐述。
本书在语言描述上保证严谨性,同时尽量做到通俗易懂;内容组织上注意由浅入深、循序渐进,结合具体实例进行辅助说明,让读者对所讲内容理解得更透彻。本书既可作为本专科院校电子信息类专业学生的教材,也可作为工程技术人员学习DSP应用技术的入门参考资料。
信息技术的发展对数字信息处理能力的要求越来越高。DSP芯片以其强大的数字运算能力、超低功耗、体积小等特点,已广泛应用于通信、工业控制、医学成像和交通监控等领域。
从美国德州仪器公司(TI公司)1982年研制出第一代DSP处理芯片开始,数字处理器的发展十分迅猛。目前市场上的DSP产品主要有TI公司的TMS320系列、AD公司的ADSP系列、Motorola公司的DSP56xx系列和DSP96xx系列等器件。其中,美国TI公司的产品占据市场份额的60%左右。TI公司从第一代TMS320C1x DSP发展到目前的TMS320C6x DSP,其性能得到了极大提升。其中,TMS320C55x DSP是5000系列DSP中具备16位定点数据处理的高性价比DSP芯片。55x DSP在拥有自己的指令系统的同时,兼容54x DSP指令,具有低功耗、速度快、运算能力强等特点,被广泛应用于人们的生产和生活当中。
目前为初学者介绍55x系列DSP的相关书籍和教材较少。为了使学习者较容易地学习DSP的入门知识,编者结合多年的教学经验和体会编写了这本书。本书具有以下特点。
(1) 作为一本入门教材,书中介绍有关55x DSP所必须掌握的知识点,不求大而全,对涉及的知识点尽量讲述清晰、透彻。
(2) 每章开始都概括介绍本章知识要点,使学习者对本章的学习任务和要求一目了然。每章最后有思考题,使学习者加深对知识点的理解和巩固。
(3) 讲述基本原理时尽可能结合插图和实例进行,使学习者能够轻松理解并掌握。书中引用了许多插图和实例讲述DSP的基本结构、指令、汇编语言和C语言基本编程方法以及片内外设的应用。
(4) 在教材内容编写上,力求由浅入深、循序渐进、突出重点。语言描述上强调条理清楚,用词准确。
本书介绍了TMS320C55x DSP的原理及应用。全书分为7章,第1章介绍DSP的基本知识。第2章和第3章详细介绍55x DSP的硬件体系结构和汇编指令系统,包括DSP内部总线结构、CPU结构、存储空间配置以及汇编指令系统的符号定义、寻址方式及指令系统。第4章系统地介绍55x DSP软件开发过程,包括汇编语言编程方法、COFF文件、汇编器和链接器使用、C语言编程方法、55x DSP库函数的使用以及C语言编程实例等。第5章全面介绍55x DSP片内外设的基本结构和工作原理。第6章介绍DSP相关外围电路的工作原理。第7章介绍在集成开发环境CCS下应用程序的设计和调试方法。附录部分介绍5509 DSP引脚信号说明、55x DSP汇编指令集、55x DSP CPU内部寄存器和55x DSP外设寄存器。
课程学习建议40课时。其中,第1章2课时,第2章6课时,第3章8课时,第4章6课时,第5章10课时,第6章6课时,第7章2课时。实际授课时,请教师根据课时情况酌情增减,有些内容可以让学生通过自学和实践来完成。
本书由蔺鹏、胡玫担任主编,蔺鹏负责编写第3~5章;胡玫负责编写第1章、第2章、第6章、第7章和附录部分。编者在编写过程中参阅了大量TI公司公开资料以及国内相关书籍,结合多年DSP教学经验完成。本书出版得到清华大学出版社的大力支持,在此表示衷心的感谢!
由于编者的经验和水平有限,书中难免存在不足之处,恳请广大读者批评、指正。
编者2015年4月
第1章绪论1 1.1数字信号处理技术1
1.1.1概述1
1.1.2DSP芯片的特点4
1.1.3DSP产品简介5
1.2TMS320系列DSP芯片概述6
1.2.1DSP芯片的发展6
1.2.2TMS320系列的典型应用7
1.2.3TMS320C55x系列8
1.3数据运算格式8
1.3.1定点格式8
1.3.2浮点格式11
1.4DSP的性能参数指标11
第2章TMS320C55x DSP的硬件体系结构14
2.1概述14
2.1.1TMS320C55x芯片引脚功能介绍14
2.1.2TMS320C55x基本结构及主要特性18
2.2总线结构及存储器接口单元20
2.2.1总线结构20
2.2.2存储器接口单元22
2.3中央处理器CPU结构22
2.3.1指令缓冲单元(I)22
2.3.2程序流程单元(P)23
2.3.3数据地址流程单元(A)25
2.3.4数据计算单元(D)27〖3〗[4]2.3.5指令流水线28
2.4存储空间配置31
2.4.1存储器映射31
2.4.2程序空间31
2.4.3数据空间32
2.4.4I/O空间34
2.5片内外设介绍34
第3章TMS320C55x DSP汇编指令系统36
3.1术语、符号与缩写36
3.1.1指令集术语、符号和缩写36
3.1.2指令集条件字段38
3.1.3状态位的影响40
3.1.4指令集注释和规则41
3.1.5并行特征和规则44
3.2数据寻址方式46
3.2.1寻址方式概述46
3.2.2绝对寻址方式47
3.2.3直接寻址方式48
3.2.4间接寻址方式49
3.3TMS320C55x的指令系统58
第4章TMS320C55x应用程序开发131
4.1TMS320C55x软件开发流程和开发工具131
4.2汇编语言编程方法133
4.2.1汇编伪指令133
4.2.2汇编语言程序编写方法135
4.3公共目标文件格式(COFF)137
4.3.1COFF文件的基本概念137
4.3.2COFF文件中的符号137
4.4汇编器和链接器138
4.4.1汇编器的作用138
4.4.2汇编器对段的处理138
4.4.3链接器的作用1394.4.4链接器对段的处理140
4.4.5链接命令文件140
4.5C语言编程方法143
4.5.155x DSP C语言概述143
4.5.2关键字145
4.5.3C语言和汇编语言混合编程148
4.5.4C编译器的存储器模式150
4.5.5C语言代码优化152
4.5.6中断处理153
4.5.7C语言的数据访问方法154
4.6C55x库函数和C语言编程实例155
4.6.1C55x库函数访问155
4.6.2C语言编程实例156
第5章TMS320C55x DSP片内外设159
5.1时钟发生器159
5.1.1时钟发生器输入输出电路159
5.1.2时钟发生器工作流程160
5.2中断系统162
5.2.1DSP中断介绍162
5.2.2中断矢量和优先级163
5.2.3可屏蔽中断164
5.2.4不可屏蔽中断166
5.3通用定时器和Watchdog定时器166
5.3.1通用定时器结构166
5.3.2定时器引脚166
5.3.3定时器中断168
5.3.4初始化定时器168
5.3.5定时器的寄存器169
5.3.6定时器初始化举例172
5.3.7Watchdog定时器175
5.4A/D转换器180
5.4.1转换时间181
5.4.2ADC初始化和转换监控1815.4.3ADC寄存器182
5.5DMA控制器185
5.5.1DMA控制器通道和端口存取方式186
5.5.2DMA通道自动初始化187
5.5.3DMA数据传送单元188
5.5.4通道起始地址配置188
5.5.5通道地址更新189
5.5.6数据猝发190
5.5.7同步通道活动190
5.5.8DMA控制寄存器192
5.6主机接口(HPI)201
5.6.1DSP存储器通过HPI存取202
5.6.2HPI与DMA交互操作202
5.6.3HPI信号203
5.6.4非多元(Nonmultiplexed)模式204
5.6.5多元(Multiplexed)模式204
5.6.6HPI寄存器205
5.7外部存储器接口(EMIF)205
5.7.1EMIF信号206
5.7.2EMIF请求208
5.7.3CE信号对应的外部存储器映射空间208
5.7.4CE信号对应的外部存储器映射空间209
5.7.5保持(HOLD)请求,共享外部存储器209
5.7.6写发布(Write Posting),对外部存储器缓冲写210
5.7.7CPU指令流水线210
5.7.8EMIF访问外部异步存储器211
5.7.9EMIF访问SDRAM212
5.7.10EMIF寄存器215
5.8实时时钟(RTC)外设217
5.8.1实时时钟电源供电218
5.8.2实时时钟时间和日期寄存器219
5.8.3实时时钟时间和日历告警(闹钟)220
5.8.4实时时钟中断请求222
5.8.5实时时钟寄存器2235.9通用输入输出端口GPIO概述230
5.10I2C模块230
5.10.1I2C模块介绍230
5.10.2I2C模块内部结构231
5.10.3时钟发生电路232
5.10.4I2C模块操作233
5.10.5I2C模块中断请求和DMA事件233
5.10.6I2C模块寄存器234
5.11USB模块234
5.11.1USB模块介绍235
5.11.2USB模块时钟发生237
5.11.3USB缓冲管理器(UBM)240
第6章DSP系统电路242
6.1DSP系统电平转换电路242
6.1.1各种电平的转换标准242
6.1.23.3V与5V电平转换的形式243
6.1.3DSP与外围器件的接口243
6.1.4JTAG仿真接口电路246
6.2DSP存储器和I/O的扩展246
6.2.1程序存储器扩展246
6.2.2数据存储器的扩展248
6.2.3I/O扩展应用249
6.3A/D和D/A接口250
6.3.1TMS320C55x DSP与A/D接口251
6.3.2TMS320C55x DSP与D/A接口257
6.4DSP系统自举258
6.4.1DSP系统自举概述258
6.4.2自举启动表的建立及引导装载的过程259
第7章CCS集成开发环境高级应用267
7.1CCS系统安装及界面介绍267
7.1.1CCS功能简介267
7.1.2CCS 3.3的安装与设置2687.1.3CCS 3.3界面介绍270
7.2应用程序的开发277
7.2.1编译器、汇编器和链接器设置277
7.2.2项目管理器284
7.2.3代码编辑器288
7.3程序调试工具291
7.3.1单步运行及扩展291
7.3.2断点294
7.3.3探针点297
7.3.4图形显示298
7.3.5观察窗303
7.3.6符号浏览器304
7.3.7GEL工具305
7.4代码执行时间测算308
附录1TMS320C5509 DSP引脚信号说明311
附录2TMS320C55x DSP汇编指令集317
附录3TMS320C55x DSP CPU内部寄存器336
附录4TMS320C55x DSP外设寄存器339
参考文献353