第1章 DSP概述 1
1.1 引言 1
1.2 初步认识DSP 2
1.2.1 DSP的定义 2
1.2.2 数字信号处理运算概述 2
1.3 DSP的优势 4
1.4 DSP芯片的应用 8
第2章 DSP系统开发入门 10
2.1 DSP系统的基本组成 10
2.2 DSP系统设计开发流程 11
2.2.1 如何着手DSP系统开发 11
2.2.2 算法可视化仿真开发工具 12
2.2.3 DSP芯片的选择 12
2.2.4 DSP系列产品 16
2.2.5 DSP开发工具 24
第3章 C54x DSP系统硬件结构 30
3.1 C54x DSP的基本架构 30
3.1.1 C54x DSP的基本结构图 30
3.1.2 C54xDSP的主要特征 30
3.2 总线结构 34
3.3 存储器结构 35
3.3.1 DSP存储器空间的划分 35
3.3.2 程序存储器 38
3.3.3 数据存储器 41
3.3.4 I/O空间 45
3.4 中央处理器 46
3.4.1 状态和控制寄存器 46
3.4.2 算术逻辑单元 48
3.4.3 累加器 49
3.4.4 桶式移位器 51
3.4.5 乘加器 52
3.4.6 比较、选择和存储单元 54
3.4.7 指数编码器 55
3.5 地址产生单元 55
3.5.1 程序地址生成器 55
3.5.2 数据地址发生器 57
3.6 C54x的流水线 57
3.6.1 C54x中的流水线结构 58
3.6.2 指令执行时的流水线图 59
3.6.3 存储器的流水线操作 61
3.6.4 流水线冲突及解决方法 63
3.7 DSP的中断系统 68
3.7.1 C54x DSP中断系统结构 68
3.7.2 中断流程 73
3.7.3 中断向量表的编程 74
3.8 C54x DSP外部总线 76
3.8.1 外部总线的组成 76
3.8.2 外部总线控制性能 78
3.8.3 外部总线接口时序图 81
第4章 DSP指令系统 85
4.1 C54x DSP的指令表示方法 85
4.2 DSP数据寻址方式 86
4.2.1 立即寻址 86
4.2.2 绝对寻址 87
4.2.3 直接寻址 88
4.2.4 间接寻址 92
4.2.5 累加器寻址 98
4.2.6 存储器映射寄存器寻址 98
4.2.7 堆栈寻址 99
4.3 DSP的程序控制 100
4.3.1 分支转移 100
4.3.2 调用 101
4.3.3 返回 103
4.3.4 重复操作指令 104
4.3.5 条件操作 107
4.4 DSP指令系统概述 109
4.4.1 指令系统分类 113
4.4.2 算术运算类指令 115
4.4.3 逻辑操作指令 121
4.4.4 程序控制指令 123
4.4.5 加载和存储指令 126
第5章 DSP程序设计 129
5.1 DSP系统开发过程 129
5.1.1 DSP系统开发过程 129
5.1.2 软件开发流程 130
5.2 汇编语言编写方法 132
5.2.1 DSP汇编语言语句 132
5.2.2 DSP汇编语言的数据形式、标识符及运算符 134
5.3 COFF文件 136
5.3.1 段 136
5.3.2 汇编器对段的处理 137
5.3.3 链接器对段的处理 137
5.3.4 COFF文件中的符号 138
5.4 常用汇编伪指令 138
5.4.1 段定义伪指令 139
5.4.2 常数初始化伪指令 139
5.4.3 段程序计数器定位伪指令 140
5.4.4 输出列表格式伪指令 141
5.4.5 文件引用伪指令 142
5.4.6 条件汇编伪指令 142
5.4.7 符号定义伪指令 143
5.4.8 宏及宏的使用 143
5.5 链接器命令文件的编写与使用 145
5.5.1 链接器命令文件常用指令 145
5.5.2 MEMORY伪指令 146
5.5.3 SECTIONS伪指令 146
5.5.4 汇编源程序的编辑、汇编和链接 148
5.6 TMS320C54xC语言编程 156
5.6.1 C54xC/C++编译器支持的数据类型 157
5.6.2 C语言的数据访问方法 157
5.6.3 存储器模式 159
5.6.4 中断函数 162
5.6.5 其他注意事项 163
5.7 用C语言和汇编语言混合编程 163
5.7.1 独立的C语言模块和汇编模块接口 163
5.7.2 直接在C程序中嵌入汇编语句 165
5.8 DSP程序设计实例 165
第6章 C54x DSP片内外设及应用 173
6.1 通用I/O引脚 173
6.2 C54xDSP的定时器 174
6.2.1 定时器结构和工作原理 174
6.2.2 定时器编程 176
6.2.3 定时器应用实例 177
6.3 C54x的主机接口 179
6.3.1 标准HPI接口结构框图 179
6.3.2 标准HPI的两种工作模式 180
6.3.3 HPI控制寄存器 181
6.3.4 HPI与主机的接口设计 182
6.3.5 HPI应用实例 187
6.4 C54x的串行口 192
6.4.1 标准同步串行口 193
6.4.2 缓冲同步串行口 197
6.4.3 时分复用串行口TDM 202
6.4.4 多通道缓冲串行口(McBSP) 204
第7章 DSP工程开发实例 220
7.1 DSP最小系统设计 220
7.1.1 复位电路 220
7.1.2 时钟电路 222
7.1.3 电源与省电模式设计 227
7.1.4 仿真接口 230
7.1.5 外扩存储器 231
7.2 DSP数据采集系统设计 237
7.2.1 前向通道——AD输入 237
7.2.2 ADS7864芯片简介 238
7.2.3 ADS7864与TMS320VC5416的接口设计 243
7.2.4 A/D转换程序设计 246
7.3 D/A转换器与DSP的接口设计 248
7.3.1 DAC7625芯片简介 249
7.3.2 DAC7625与TMS320VC5416的接口设计 252
7.3.3 D/A转换程序设计 254
7.4 语音系统的DSP实现 255
7.4.1 系统组成 256
7.4.2 硬件接口设计 257
7.4.3 程序流程及部分代码 261
7.5 指纹系统的DSP实现 269
7.5.1 引言 269
7.5.2 硬件接口设计 271
7.5.3 程序流程及部分代码 272
第8章 DSP应用实验指导 277
8.1 CCS入门实验 277
8.1.1 CCS的安装及设置 277
8.1.2 CCS程序开发步骤 279
8.1.3 C/ASM程序举例 285
8.2 I/O扩展实验 288
8.2.1 TMS320VC5416与键盘的连接 288
8.2.2 TMS320VC5416与液晶显示器的连接 289
8.2.3 软件编程 292
8.3 DSP定时器中断实验 300
8.3.1 硬件设计 300
8.3.2 程序设计 301
8.4 异步串口通信实验 304
8.4.1 硬件设计 304
8.4.2 软件编程 309
参考文献 314