1.1 DSP技术概述 1
1.1.1 数字信号处理发展史 1
第1章 DSP概述 1
1.1.2 DSP概述 2
1.2 DSP系统 3
1.2.1 DSP系统的构成 3
1.2.2 DSP系统的特点 4
1.3 DSP应用系统的开发设计流程 5
1.3.1 DSP系统开发准备 6
1.3.2 DSP系统整体开发流程 7
1.4.1 DSP芯片 9
1.4 DSP概述 9
1.4.2 DSP芯片的发展 10
1.4.3 DSP芯片的分类 11
1.4.4 DSP芯片的选择 12
1.5 DSP应用 12
1.6 DSP的发展方向 13
1.6.1 系统级集成DSP是潮流 14
1.6.2 可编程DSP是主导产品 14
1.6.3 追求更高的运算速度 14
1.6.4 定点DSP是主流 15
2.1 C54x DSP体系结构概述 16
第2章 DSP体系结构 16
2.2.1 内部总线结构 18
2.2 C54x DSP的总线结构 18
2.2.2 外部总线结构 19
2.3 C54x DSP存储空间结构 19
2.3.1 存储器空间 22
2.3.2 程序存储器 27
2.3.3 数据存储器 29
2.3.4 I/O存储空间 31
2.4.1 通用I/O引脚 32
2.4.2 定时器 32
2.4 片内外设 32
2.4.3 时钟发生器 35
2.4.4 C54x DSP的主机接口 38
2.4.5 串行接口 42
2.5 特殊寄存器 47
2.5.1 状态及控制寄存器 47
2.5.2 累加器A和B 51
2.5.3 与中断有关的寄存器 53
第3章 DSP程序开发 55
3.1 汇编语言程序设计概述 55
3.1.1 汇编语言源程序格式 55
3.1.2 符号和缩写 57
3.1.3 记号和运算符 60
3.2 寻址方式 61
3.2.1 立即寻址 61
3.2.2 绝对寻址 61
3.2.3 累加器寻址 62
3.2.4 直接寻址 62
3.2.5 间接寻址 64
3.2.6 存储器映射寄存器寻址 67
3.2.7 堆栈寻址 67
3.3 汇编指令系统 67
3.3.1 TMS320C54x指令表 68
3.3.2 TMS320C54x指令集说明 77
3.4 汇编伪指令 117
3.4.1 段定义伪指令 118
3.4.2 常数初始化伪指令 118
3.4.3 段程序计数器定位伪指令 120
3.4.4 输出列表格式伪指令 121
3.4.5 引用其他文件的伪指令 122
3.4.6 条件汇编伪指令 122
3.4.7 汇编时符号定义伪指令 122
3.5.2 宏调用 123
3.5.1 宏定义 123
3.5 汇编宏指令 123
3.4.8 其他汇编伪指令 123
3.5.3 宏扩展 124
3.6 公共目标文件格式 125
3.6.1 块 125
3.6.2 汇编器对块的处理 126
3.6.3 链接器对块的处理 126
3.7 C语言程序设计概述 129
3.8 C语言开发 130
3.8.1 数据类型 130
3.8.2 关键字 131
3.8.3 寄存器变量与全局寄存器变量 132
3.8.4 Pragma伪指令 133
3.9 C代码优化 135
3.9.1 优化器的使用 135
3.9.2 执行文件级优化 136
3.9.3 执行程序级优化 137
3.9.4 控制程序级优化 137
3.10 混合编程 138
3.10.1 独立的C模块和汇编模块接口 138
3.10.2 在C语言程序中使用汇编程序中的变量和常数 139
3.10.3 直接在C语言程序的相应位置嵌入汇编语句 140
4.1 CCS概述 142
第4章 DSP集成开发环境 142
4.2 CCS2的安装和设置 143
4.2.1 CCS2的安装 143
4.2.2 CCS2配置程序的安装 145
4.3 CCS2的基本操作 148
4.3.1 CCS2集成开发环境的特性 148
4.3.2 菜单栏 148
4.3.3 CCS2的基本操作 161
4.4.1 概述 168
4.4.2 DSP/BIOS的功能介绍 168
4.4 DSP/BIOS的原理及应用 168
4.4.3 DSP/BIOS的组成部分 169
4.4.4 DSP/BIOS的配置工具 170
4.4.5 创建具有DSP/BIOS功能的应用程序 174
4.4.6 DSP/BIOS内核 177
4.4.7 DSP/BIOS实时分析工具 182
4.4.8 DSP/BIOS的应用实例 184
4.5 CCS实时数据交换 190
4.5.1 RTDX介绍 190
4.5.2 RTDX数据传送机理 190
4.5.3 RTDX传送模式 191
4.5.4 RTDX工具 191
4.5.5 在不含DSP/BIOS的目标程序中使用RTDX 192
4.5.6 DSP/BIOS的RTDX模块 197
4.5.7 RTDX主机客户程序的开发 205
4.6 软件调试及实例 205
4.6.1 断点 205
4.6.2 观察窗 205
4.6.3 探点 206
4.6.4 文件输入/输出能力 206
4.6.5 图形显示工具 206
4.6.6 符号浏览器 207
4.6.7 命令窗口 207
4.6.8 调试实例 207
5.1.1 DSP硬件系统开发流程 217
第5章 TMS320C54x DSP系统硬件设计 217
5.1 DSP系统开发流程 217
5.1.2 高频DSP系统的PCB设计 219
5.1.3 DSP系统硬件调试技巧 220
5.2 DSP选型 220
5.2.1 TMS320C1x 220
5.2.2 TMS320C2x 222
5.2.3 TMS320C5x 225
5.2.4 TMS320C2xx 227
5.2.5 TMS320C54x 228
5.3 DSP最小系统设计 229
5.2.6 TMS320C62x 229
5.3.1 TMS320C54x芯片简介 230
5.3.2 复位、时钟、电源部分的设计 231
5.3.3 总线缓冲部分的设计 236
5.4 DSP外围电路的设计 237
5.4.1 A/D转换电路的设计 237
5.4.2 D/A转换电路的设计 241
5.4.3 音频信号编解码模块的设计 246
5.4.4 DSP存储扩展的设计 255
5.4.5 DSP异步串口的设计 257
5.4.6 DSP以太网接口的设计 258
5.5.1 CPLD简介 259
5.5 DSP系统中的CPLD的设计 259
5.5.2 CPLD的选择 262
5.5.3 CPLD在DSP中的作用 263
5.5.4 CPLD在DSP系统中的应用实例 263
第6章 TMS320C54x DSP软件开发实例 266
6.1 基础 266
6.1.1 加减运算 266
6.1.2 重复操作 266
6.1.3 乘法运算 268
6.1.4 长字运算 269
6.1.6 小数运算 270
6.1.5 堆栈使用 270
6.1.7 除法运算 273
6.2 FFT 275
6.2.1 FFT算法原理 275
6.2.2 FFT算法实现 276
6.3 FIR 285
6.3.1 FIR滤波器基本结构 285
6.3.2 Matlab辅助FIR滤波器设计 286
6.3.3 FIR滤波器的DSP实现 288
6.4 软件无线电 292
6.4.1 FSK调制解调原理 292
6.4.2 2FSK程序实例 293
6.5 UART模块 300
6.5.1 TL16C550 301
6.5.2 软件编程 302
6.6 CODEC模块 305
6.6.1 TLC320AC01 306
6.6.2 McBSP 306
6.6.3 CODEC软件设计举例 306
6.7 Flash存储器模块 311
6.7.1 硬件连接 311
6.7.2 软件编程 311
参考文献 315