第1章 DSP技术概述 1
1.1 DSP系统概述 2
1.2 DSP芯片技术的发展 2
1.3 DSP芯片的分类和应用领域 5
1.3.1 TI公司的DSP芯片 6
1.3.2 AD公司的DSP芯片 9
1.3.3 AT&T公司的DSP芯片 11
1.3.4 Motorola公司的DSP芯片 11
1.4 DSP芯片的运算速度和DSP应用系统的运算量 12
1.4.1 DSP芯片的运算速度 12
1.4.2 DSP应用系统的运算量 13
1.5 DSP系统设计概要 13
本章小结 18
思考题 18
第2章 CCSv4.2集成开发环境 19
2.1 CCS集成开发环境简介 19
2.2 CCSv4.2基本框架 20
2.3 CCSv4.2的安装 22
2.4 CCSv4.2的初始配置 26
2.5 CCSv4.2创建和调用项目方法 31
2.5.1 导入 31
2.5.2 创建项目 34
2.5.3 目标配置文件的设置 37
2.6 软件代码调试 40
2.6.1 代码的两次加载 40
2.6.2 仿真调试 41
2.6.3 变量和寄存器的监控 42
2.6.4 反汇编功能的使用 42
2.6.5 内存查看器 43
2.6.6 断点的设置 44
2.6.7 程序固化 45
2.7 GEL文件 45
2.7.1 定义 45
2.7.2 GEL文件——回调函数 46
2.7.3 GEL文件——存储器映射 47
2.8 利用RTDX实现DSP与Matlab的数据交换 48
2.8.1 RTDX的工作原理 48
2.8.2 RTDX的使用 48
本章小结 50
思考题 50
第3章 DSP汇编语言和C语言程序编写规则 51
3.1 汇编语言的基本指令 51
3.1.1 汇编语言源程序格式 51
3.1.2 术语、符号与缩写 56
3.1.3 伪指令操作 66
3.1.4 宏操作 70
3.2 汇编语言程序编写方法 72
3.3 汇编指令系统的概述 75
3.3.1 C55x指令的并行执行 75
3.3.2 TMS320C55x DSP的汇编指令 78
3.4 C语言程序规则 100
3.4.1 面向DSP的C/C++程序设计原则 100
3.4.2 TMS320C55x C/C++语言的特性 102
3.5 C语言与汇编混合编程 103
3.5.1 混合编程中的参数传递和寄存器使用 103
3.5.2 C语言和汇编语言混合编程实例 106
本章小结 109
思考题 109
第4章 DSP芯片结构与基本例程 110
4.1 TMS320C55x芯片的基本性能 110
4.1.1 TMS320C55x DSP的特性和基本配置 110
4.1.2 C54x与C55x的区别 113
4.2 TMS320C55x芯片的CPU结构 114
4.2.1 算数逻辑运算单元 115
4.2.2 累加器 115
4.2.3 桶形移位器 116
4.2.4 乘加器 116
4.2.5 CPU状态和控制寄存器 116
4.3 TMS320C55x的内部总线结构 126
4.3.1 指令缓冲单元 128
4.3.2 程序流程单元 128
4.3.3 地址流程单元 129
4.3.4 数据计算单元 130
4.4 TMS320C55x芯片的存储器结构 131
4.4.1 改进的哈佛结构 131
4.4.2 存储空间分配 131
4.4.3 实验案例1 138
4.4.4 实验案例2 141
4.5 TMS320C55x芯片的中断 144
4.5.1 中断的定义和类别 144
4.5.2 中断向量及其优先级 145
4.5.3 中断寄存器 147
4.5.4 可屏蔽中断 149
4.5.5 非屏蔽中断 150
4.5.6 DSP复位 151
4.5.7 实验案例 155
4.6 TMS320C55x芯片的在片外围电路 155
4.6.1 通用I/O引脚 155
4.6.2 通用定时器 156
4.6.3 时钟发生器 159
4.7 TMS320C55x芯片的串行口 161
4.7.1 标准串行口 161
4.7.2 缓冲串行口 163
4.7.3 时分多路缓冲串行口 166
4.7.4 多通道缓冲串行口(McBSP) 167
4.7.5 串行口程序案例 180
4.8 TMS320C55x芯片的自举加载 182
4.8.1 DSP bootloader模式电路 182
4.8.2 DSP bootloader烧写步骤 183
4.9 TMS320C55x芯片的引脚 184
本章小结 190
思考题 191
第5章 DSP指令特点 192
5.1 TMS320C55x的寻址方式 192
5.1.1 绝对寻址模式 192
5.1.2 直接寻址模式 195
5.1.3 间接寻址模式 197
5.2 指令流水线 204
5.2.1 C55x的指令流水线的两个阶段 204
5.2.2 C55x指令流水线的自动保护机制 205
5.2.3 流水线的优化 207
本章小结 208
思考题 208
第6章 DSP软件开发过程 210
6.1 DSP软件开发基本流程 210
6.2 汇编过程 211
6.2.1 字节/字寻址 212
6.2.2 并行指令规则 213
6.2.3 可变长度指令大小分辨 213
6.2.4 存储器模式 214
6.2.5 使用MMR寻址的汇编器警告 215
6.3 公用目标文件格式(COFF) 216
6.3.1 段 216
6.3.2 汇编器对段的处理 217
6.3.3 链接器对段的处理 221
6.3.4 COFF文件中的符号 222
6.4 目标文件链接器 223
6.4.1 链接器概述 223
6.4.2 链接器的运行 224
6.4.3 链接器命令文件的编写与使用 227
6.4.4 MEMORY伪指令 227
6.4.5 SECTIONS伪指令 228
本章小结 232
思考题 232
第7章 DSP硬件系统的典型设计 233
7.1 TMS320C5509的最小系统设计 233
7.1.1 复位电路设计 233
7.1.2 时钟电路设计 233
7.1.3 JTAG接口设计 234
7.1.4 电源设计 235
7.2 基于TMS320C5509的电机控制系统设计 237
7.2.1 PWM调压调速原理 237
7.2.2 PWM调速方法 238
7.2.3 控制原理 238
7.2.4 程序编制 239
7.3 基于TMS320C5509的无线蓝牙系统设计 239
7.3.1 ROK101 007蓝牙模块 239
7.3.2 DSP与蓝牙模块UART口通信设计 240
7.3.3 DSP与蓝牙模块USB口通信设计 241
7.3.4 软件设计 242
7.4 基于TMS320C5509的自平衡直立车系统设计 243
7.5 TMS320C55x芯片与外设的接口 248
7.5.1 TMS320C55x系列DSP与SDRAM接口设计 248
7.5.2 外部存储器接口EMIF 248
7.5.3 硬件接口设计 251
本章小结 255
思考题 255
第8章 DSP系统的典型应用程序设计 256
8.1 FFT在DSP中的实现 256
8.1.1 FFT算法原理 256
8.1.2 库利-图基算法 257
8.1.3 FFT算法的DSP实现 260
8.2 IIR滤波器的DSP设计 264
8.2.1 IIR滤波器的基本概念 264
8.2.2 直接形式三阶IIR滤波器 265
8.2.3 IIR滤波器的Matlab设计 265
8.2.4 IIR滤波器的DSP实现 270
8.3 FIR滤波器的DSP设计 274
8.3.1 FIR滤波器的基本概念 274
8.3.2 滤波器的Matlab语言设计 275
8.3.3 从Matlab语言转换成通用语言 277
8.3.4 FIR滤波器的DSP实现 279
8.4 变步长LMS自适应滤波器算法 283
8.4.1 LMS自适应滤波器简介 283
8.4.2 LMS算法的Matlab仿真 284
8.4.3 LMS算法的DSP实现 289
本章小结 297
思考题 297
第9章 OMAP双核处理器 298
9.1 OMAP的体系结构 298
9.1.1 OMAP体系及发展趋势 298
9.1.2 OMAP平台的开放式软硬件架构 303
9.2 OMAP4470处理器 304
9.3 OMAP5430处理器 305
9.4 OMAP5912处理器 308
9.5 OMAP-DM5x协处理器系列芯片 309
9.6 OMAP-Vox平台 311
9.6.1 OMAPV1030处理器 312
9.6.2 OMAPV1035处理器 313
9.6.3 OMAPV2230处理器 314
本章小结 316
思考题 316
参考文献 317