第1章 DSP概述 1
1.1 引言 1
1.2 DSP系统 2
1.2.1 DSP系统构成 2
1.2.2 DSP系统的特点 3
1.2.3 DSP系统的设计过程 3
1.3 可编程DSP芯片 4
1.3.1 什么是DSP芯片 4
1.3.2 DSP芯片的基本结构 5
1.3.3 DSP芯片的发展 8
1.3.4 DSP芯片的分类 11
1.3.5 DSP芯片的运算速度和DSP应用系统的运算量 11
1.3.6 DSP芯片的选择 14
1.3.7 浮点DSP的特点 19
1.3.8 DSP的系统设计、监控和仿真调试 21
第2章 TMS320VC33浮点DSP处理器 29
2.1 TMS320VC33概述 29
2.2 TMS320VC33引脚描述 30
2.3 CPU寄存器管理 33
2.3.2 辅助寄存器(AR7—AR0) 34
2.3.3 数据页指针(DP) 34
2.3.1 扩展精度寄存器(R7—R0) 34
2.3.4 索引寄存器(IR0,IR1) 35
2.3.5 块大小寄存器(BK) 35
2.3.6 系统堆栈指针(SP) 35
2.3.7 状态寄存器(ST) 35
2.3.8 CPU/DMA中断使能寄存器(IE) 36
2.3.9 CPU中断标志寄存器(IF) 37
2.3.10 I/O标志寄存器(IOF) 38
2.3.11 重复计数器(RC)和块重复寄存器(RS,RE) 38
2.4.2 存储器映射 39
2.4.1 存储器 39
2.4 存储器管理 39
2.3.12 其他寄存器 39
2.4.3 外围总线的存储器映射 40
2.4.4 复位/中断/陷阱向量映射 41
2.4.5 指令缓存 42
2.5 总线管理 43
2.5.1 主总线接口信号 43
2.5.2 主总线接口控制寄存器 44
2.5.3 可编程的等待状态 45
2.6 中断管理 46
2.6.1 TMS320VC33中断向量表 46
2.6.4 中断标志寄存器(IF)描述 48
2.6.3 CPU中断控制位 48
2.6.2 中断优先级 48
2.6.5 中断处理过程 49
2.6.6 CPU中断响应时间 50
2.6.7 外部中断 51
2.7 片内外设 52
2.7.1 定时器 52
2.7.2 同步串行通信口 61
2.7.3 DMA控制器 78
2.8 其他浮点DSP处理器 83
2.8.1 TMS320C32 83
2.8.2 TMS320C67xx 86
第3章 TMS320C3x的数据格式与浮点运算 89
3.1 数据格式 89
3.1.1 整型格式 89
3.1.2 IEEE浮点数格式 90
3.1.3 TMS320C3x浮点数格式 91
3.2 数据格式转换 94
3.2.1 整型数和浮点数格式的转换 94
3.2.2 IEEE浮点格式与TMS320浮点格式的转换 95
3.3 浮点运算 99
3.3.1 浮点加减法 99
3.3.3 浮点除法 100
3.3.2 浮点乘法 100
3.4 非线性浮点运算的快速实现 101
第4章 TMS320C3x寻址系统 104
4.1 七类寻址类型 104
4.1.1 寄存器寻址 104
4.1.2 直接寻址 104
4.1.3 立即数寻址 104
4.1.4 PC相对寻址 105
4.1.5 循环寻址 105
4.1.6 间接寻址 107
4.1.7 位翻转寻址 108
4.2.2 三操作数寻址方式 109
4.2 五组寻址方式 109
4.2.1 普通寻址方式 109
4.2.3 并行寻址方式 110
4.2.4 长立即寻址方式 110
4.2.5 条件转移寻址方式 111
4.3 系统堆栈和用户堆栈管理 111
4.3.1 用户堆栈 111
4.3.2 队列和双向队列 112
第5章 TMS320C3x汇编语言及程序设计 114
5.1 汇编语言例子 114
5.2.2 命令(CMD)文件 116
5.2.1 汇编语言源程序格式 116
5.2 TMS320C3x汇编语言描述及命令文件 116
5.2.3 汇编器 118
5.2.4 链接器 119
5.3 COFF格式 119
5.3.1 COFF的一般概念 119
5.3.2 汇编器对段的处理 120
5.3.3 链接器对段的处理 121
5.4 汇编伪指令 123
5.5 汇编指令解释 125
5.5.1 TMS320C3x指令集 125
5.5.2 条件码和条件标记 128
5.5.3 指令集解释及程序设计 130
5.6 初始化程序设计 147
5.6.1 DP,SP,ST寄存器和主总线初始化 147
5.6.2 定时中断初始化 147
5.7 串行通信程序设计 148
5.8 中断服务程序设计 156
5.8.1 软件堆栈 156
5.8.2 中断服务程序设计 156
6.2.2 程序装入方式的选择 159
6.2 TMS320VC33 Boot Loader 159
6.2.1 脱机运行方式的启动 159
第6章 TMS320VC33的脱机运行 159
6.1 概述 159
6.2.3 引导程序Boot Loader的工作流程 160
6.2.4 引导数据结构 163
6.2.5 脱机运行方式的中断与陷阱向量映射 164
6.2.6 Boot Loader使用的注意事项 165
6.3 HEX格式转换工具 165
第7章 Code Composer集成开发环境的使用 167
7.1 CC的基本功能与安装设置 167
7.1.1 概述 167
7.1.2 CC软件的安装 169
7.2 CC集成开发环境 170
7.1.3 CC软件设置 170
7.2.1 主界面 171
7.2.2 菜单 172
7.2.3 工具栏 178
7.3 使用CC设计DSP应用程序 180
7.3.1 一个简单DSP程序的设计与调试 181
7.3.2 一个从文件中读取数据的DSP程序的设计与调试 190
第8章 典型的DSP算法的实现 200
8.1 FIR滤波 200
8.2 IIR滤波 201
8.3.1 离散傅里叶变换的概念 208
8.3 快速傅里叶变换(FFT)及逆变换(IFFT) 208
8.3.2 改善DFT运算效率的基本途径 209
8.3.3 FFT算法与直接算法运算量的比较 210
8.3.4 基2时间抽取FFT算法流图 210
8.3.5 基2频率抽取FFT算法 211
8.3.6 复数基2 FFT的程序 213
8.3.7 复数基2实用FFT、IFFT子程序 216
8.3.8 MATLAB的DSP函数 222
8.3.9 FSK信号的时域波形和频谱结构 222
8.4.4 栅栏效应 224
8.4.3 泄漏 224
8.4.2 时域截断 224
8.4.1 混叠 224
8.4 频谱分析中相关的算法 224
8.4.5 窗函数 225
8.4.6 抗混叠技术 230
8.4.7 频域抽取ZFFT 234
第9章 基于TMS320VC33的浮点DSP实验系统 238
9.1 实验系统简介 238
9.2 主要硬件原理 239
9.2.1 系统存储器电路 239
9.2.2 DDS信号发生电路 242
9.2.3 A/D采样转换电路 248
9.2.4 D/A转换电路 256
9.2.5 RS-232、USB通信电路 257
9.2.6 CPLD逻辑控制电路 258
9.3 硬件资源分配 258
9.4 系统功能介绍 261
9.4.1 发送各种信号 261
9.4.2 通信功能 261
9.4.3 信号的实时分析 261
9.5 典型示例 262
10.2 实验一——实验系统的硬件连接、程序仿真和简单的LED控制 263
10.1 实验注意事项 263
第10章 实验 263
10.3 实验二——采样及循环取数程序设计 267
10.4 实验三——卷积运算和FIR数字滤波器的设计与实现 277
10.5 实验四——DDS的使用和信号发生 286
10.6 实验五——FFT的实现与使用 295
10.7 选做实验一——串行A/D的使用 308
10.8 选做实验二——利用D/A实现信号产生与发送 309
10.9 选做实验三——功率谱排序及ZFFT 310
10.10 选做实验四——脱机运行 310
附录A TMS320VC33浮点实验系统电路原理图 312
参考文献 315