第1章 绪论 1
1.1 数字信号处理技术的发展 1
1.2 数字信号处理系统简介 3
1.2.1 基本的数字信号处理系统 4
1.2.2 典型的数字信号处理系统 5
1.3 DSP 的应用 6
1.4 本章小结 6
第2章 数字信号处理器基础 7
2.1 数字信号处理器的硬件结构 7
2.1.1 总线结构 7
2.1.2 存储器配置 9
2.1.3 CPU 结构 10
2.1.4 片上外设 11
2.2 数字信号处理器的软件特征 12
2.2.1 复杂指令集(CISC) 12
2.2.2 精简指令集(RISC) 14
2.2.3 DSP 指令及编程 15
2.3 数字信号处理器的发展 16
2.3.1 DSP 的历史 16
2.3.2 DSP 性能和发展趋势 19
2.4 本章小结 20
第3章 数字信号处理器系统结构 21
3.1 DSP 的总体结构 21
3.1.1 总线结构 21
3.1.2 存储器的组织 23
3.1.3 中央处理单元(CPU) 24
3.1.4 片上外设 24
3.2 DSP 的存储器结构 25
3.2.1 存储器空间 25
3.2.2 程序空间 27
3.2.3 数据存储器 28
3.2.4 I/O 空间 29
3.2.5 程序和数据安全保护 29
3.3 中央处理单元(CPU) 30
3.3.1 CPU 状态和控制寄存器 30
3.3.2 算术逻辑单元(ALU) 35
3.3.4 桶形移位器 37
3.3.3 累加器 37
3.3.5 乘加器 39
3.3.6 比较选择和存储单元(CSSU) 41
3.3.7 指数编码器 42
3.4 DSP 的数据寻址方式 43
3.4.1 立即寻址 43
3.4.2 绝对寻址 44
3.4.3 累加器寻址 45
3.4.4 直接寻址 45
3.4.5 间接寻址 46
3.4.6 存储器映射寄存器寻址 51
3.4.7 堆栈寻址 52
3.5.1 程序地址的产生 53
3.5 DSP 的程序寻址方式 53
3.5.2 跳转 55
3.5.3 调用 56
3.5.4 返回 57
3.5.5 条件操作 58
3.5.6 单指令的重复执行 60
3.5.7 指令块的重复执行 60
3.5.8 硬件复位 61
3.5.9 中断 62
3.5.10 省电模式 65
3.6 流水线 67
3.6.1 流水线工作原理 68
3.6.2 典型的指令与流水线 70
3.7 本章小结 77
第4章 TMS320C54x 编程基础 78
4.1 TMS320C54x 汇编指令集 78
4.1.1 指令系统的符号与缩写 78
4.1.2 指令的分类 82
4.1.3 单指令的重复执行 90
4.2 软件开发工具 92
4.2.1 DSP 代码的组织结构 94
4.2.2 编译器 98
4.2.3 连接器 99
4.2.4 归档器 100
4.2.5 代码转换器 101
4.3.1 数据的表示形式 102
4.3 DSP 定点算法设计 102
4.3.2 数据的定标方法 104
4.3.3 定点算法设计实例 107
4.4 简单 DSP 程序设计 109
4.5 DSP 汇编程序的优化 115
4.5.1 合理选择汇编指令 115
4.5.2 循环结构的嵌套和延迟选项的使用 118
4.5.3 双寻址语句和并行语句 119
4.5.4 特殊语句的运用 121
4.5.5 循环缓存的利用 122
4.6 本章小结 123
5.1 通用 I/O 引脚 124
第5章 TMS320C54x 的片上外围设备 124
5.2 定时器 125
5.3 时钟产生逻辑 127
5.4 多通道缓冲串行口 McBSP 130
5.4.1 McBSP 的结构 130
5.4.2 McBSP 的控制寄存器 133
5.4.3 McBSP 数据发送和接收 138
5.4.4 μ-LAW/A-LAW 的压扩硬件处理 141
5.4.5 可编程移位时钟和帧同步 142
5.4.6 多通道操作 145
5.4.7 SPI 操作 147
5.5.1 DMA 寄存器的寻址 149
5.4.8 McBSP 管脚作为通用 I/O 脚 149
5.5 直接存储器访问 DMA 149
5.5.2 寄存器设置 151
5.6 主机接口 HPI 157
5.6.1 HPI-8的连接 158
5.6.2 HPI-8的操作 160
5.6.3 HPI-8数据线作为通用 I/O 164
5.7 外部总线 165
5.7.1 外部总线接口 165
5.7.2 外部总线控制 166
5.7.3 外部总线时序举例 169
5.8 本章小结 170
6.1 DSP 与 ADC、DAC 的接口 172
第6章 DSP 与外围设备的接口 172
6.1.1 TLC320AD50C 芯片及其与 DSP 的接口 173
6.1.2 CS5331A 芯片及其与 DSP 的接口 184
6.1.3 McBSP 和 DMA 的结合 186
6.2 DSP 与外部存储器的接口 191
6.2.1 DSP 与 EEPROM 的接口 192
6.2.2 DSP 与 FlashROM 的接口 197
6.2.3 DSP 与 SRAM 的接口 202
6.2.4 DSF 与 FIFO 的接口 204
6.3 DSP 与串口通信的接口 211
6.3.1 DSP 与 RS232的接口 212
6.3.2 DSP 与 USB 的接口 213
6.4.1 PCI 总线协议简介 220
6.4 DSP 与 PCI 总线的接口 220
6.4.2 PCI2040接口芯片介绍 221
6.4.3 PCI2040与 DSP 的接口 226
6.5 本章小结 227
第7章 DSP 软件设计 228
7.1 汇编和高级语言的混合编程 228
7.1.1 混合编程的变量和函数命名规则 228
7.1.2 混合编程函数调用规则 229
7.1.3 混合编程中堆栈的使用 231
7.1.4 混合编程的文件同构 234
7.2 XDAIS 介绍 235
7.2.1 XDAIS 的基本概念 235
7.2.2 XDAIS 编程规范 237
7.3 常见的算法实现 245
7.3.1 除法的实现 245
7.3.2 扩展精度的实现 246
7.3.3 函数的产生 248
7.3.4 FIR 滤波器的实现 250
7.3.5 IIR 滤波器的实现 253
7.3.6 FFT 的实现 254
7.4 本章小结 258
第8章 DSP 系统设计 259
8.1 DSP 系统的电源、复位和时钟电路 259
8.1.1 DSP 系统的电源 259
8.1.2 DSP 系统的复位和监控电路 261
8.1.3 DSP 系统的时钟电路 265
8.2 DSP 系统的自举 266
8.2.1 概述 266
8.2.2 HPI 自举方式 271
8.2.3 串行 EEPROM 自举 272
8.2.4 并行自举 273
8.2.5 标准串行自举 275
8.2.6 I/O 自举 277
8.2.7 自举表的生成 278
8.3 DSP 系统设计 279
8.3.1 系统设计概述 279
8.3.2 设计举例 282
8.3.3 DSP 资源的利用 285
8.4 本章小结 285
第9章 其他类型 DSP 介绍 287
9.1 Agere 公司的 DSP1600系列 287
9.1.1 DSP1600概述 287
9.1.2 DSP1600的特点 290
9.2 基于超长指令字结构的 DSPTMS320C6000系列 294
9.2.1 TMS320C6000系列概述 294
9.2.2 TMS320C6200的 CPU 结构 295
9.2.3 TMS320C6200的软件特点 297
9.3 多处理器的 DSP StarPro 302
9.3.2 StarPro 的整体结构 303
9.3.1 StarPro 概述 303
9.3.3 StarPro 汇编代码示例 306
9.4 ADI 公司的 ADSP2100系列 307
9.5 本章小结 308
第10章 ARM 架构在数字信号处理中的应用 309
10.1 ARM 处理器概述 309
10.1.1 ARM 处理器系列 309
10.1.2 ARM 指令集版本 311
10.1.3 ARM 开发工具 312
10.2 ARM 处理器系统结构 313
10.2.1 3级流水线 ARM 结构 313
10.2.2 5级流水线 ARM 结构 314
10.2.3 寄存器组织 315
10.3 ARM 汇编语言编程 318
10.3.1 数据处理指令 318
10.3.2 数据传送指令 320
10.3.3 控制流指令 322
10.3.4 一个简单的汇编语言程序 325
10.4 ARM 在数字信号处理中的应用 325
10.4.1 DSP 与实时操作系统 RTOS 326
10.4.2 Tri-Core 结构的 DSP 327
10.4.3 TI 的 OMAP 328
10.5 本章小结 330
附录 英文缩略语对照表 331
参考文献 333