电子信息类精品教材 DSP芯片的原理与开发应用 第5版
作者:张雄伟 等编著
出版时间:2016年版
内容简介
本书由浅入深、全面系统地介绍了DSP芯片的基本原理、开发和应用。首先介绍了DSP芯片的基本结构和特征,以及定点和浮点DSP处理的运算基础;其次介绍了DSP芯片的开发工具,重点介绍了目前广泛应用的CCS集成开发环境及其使用方法;接着,介绍了基于C语言和汇编语言的开发方法以及DSP芯片的存储资源管理,较为详细地介绍了DSP系统的软硬件设计方法;最后,通过应用实例介绍了DSP系统开发过程和DSP系统实现方法。
目录
第1章 概述 1
1.1 引言 1
1.2 DSP系统 2
1.2.1 DSP系统的基本构成 2
1.2.2 DSP系统的特点 2
1.2.3 DSP系统的设计与开发 3
1.2.4 DSP系统的开发工具 4
1.2.5 实时DSP系统 5
1.3 DSP芯片概述 6
1.3.1 DSP芯片的定义 6
1.3.2 DSP芯片的特点 6
1.3.3 DSP芯片的发展 7
1.3.4 DSP芯片的分类 8
1.3.5 DSP芯片的选择 9
1.3.6 DSP系统的运算量 12
1.3.7 DSP芯片的应用 13
1.4 常用的DSP芯片 14
1.4.1 TI公司DSP芯片 14
1.4.2 ADI公司DSP芯片 19
1.5 内容组织与常用术语 20
1.5.1 内容组织结构 20
1.5.2 常用术语 21
本章小结 21
习题与思考题 22
第2章 DSP芯片的基本结构和特征 23
2.1 引言 23
2.2 DSP芯片的基本结构 23
2.2.1 概述 23
2.2.2 总线结构 23
2.2.3 流水线 25
2.3 中央处理单元(CPU) 25
2.3.1 算术逻辑单元(ALU) 26
2.3.2 累加器 27
2.3.3 桶形移位寄存器 27
2.3.4 乘累加单元 28
2.3.5 寻址单元 29
2.4 存储单元 30
2.4.1 片内存储器 30
2.4.2 存储器映射寄存器 31
2.4.3 Cache 31
2.4.4 外部扩展存储器 32
2.5 集成外设与接口 32
2.5.1 通用类外设 33
2.5.2 通信类外设 34
2.5.3 存储类接口 35
2.5.4 DMA控制器 35
2.5.5 专用外设与接口 36
2.6 中断 36
2.6.1 中断源 37
2.6.2 中断优先级 37
2.6.3 中断处理过程 39
2.6.4 中断矢量表 39
本章小结 40
习题与思考题 40
第3章 DSP芯片的开发环境 41
3.1 引言 41
3.2 软件开发流程 41
3.3 软件开发环境 43
3.3.1 基本概念 44
3.3.2 CCS开发环境 46
3.3.3 软件开发功能 51
3.3.4 DSP/BIOS 62
3.4 硬件开发流程 67
3.5 硬件开发环境 67
3.5.1 DSP仿真器 68
3.5.2 仿真器接口 68
3.5.3 TI公司仿真器 70
本章小结 70
习题与思考题 71
第4章 DSP的数值运算基础 72
4.1 引言 72
4.2 定点的基本概念 72
4.2.1 数的定标 72
4.2.2 数的转换 73
4.2.3 溢出保护 75
4.2.4 符号扩展 76
4.2.5 舍入与截尾 76
4.3 定点运算实现的基本原理 77
4.3.1 加法/减法运算的C语言定点模拟 77
4.3.2 乘法运算的C语言定点模拟 79
4.3.3 除法运算的C语言定点模拟 80
4.3.4 程序变量的Q值确定 80
4.3.5 浮点至定点变换的C程序举例 81
4.4 DSP定点算术运算实现的基本原理 83
4.4.1 定点乘法 83
4.4.2 定点加法 84
4.4.3 定点除法 85
4.5 非线性运算定点实现方法 87
4.5.1 级数展开法 87
4.5.2 查表法 87
4.5.3 混合法 89
4.6 浮点数的表示格式 91
4.6.1 IEEE浮点数格式 91
4.6.2 TMS320C3x浮点数格式 92
4.7 基本的浮点运算 94
4.7.1 浮点乘法和加减法 94
4.7.2 浮点除法 94
4.8 非线性浮点运算的快速实现 95
本章小结 97
习题与思考题 97
第5章 DSP芯片的存储资源管理 98
5.1 引言 98
5.2 TMS320C54x的存储区组织 98
5.2.1 程序空间 98
5.2.2 数据空间 99
5.2.3 I/O空间 99
5.2.4 存储器映射寄存器 100
5.2.5 TMS320VC5416的存储资源 100
5.3 TMS320C55x的存储区组织 101
5.3.1 存储空间组织 102
5.3.2 TMS320VC5509A的存储资源 102
5.3.3 程序空间 103
5.3.4 数据空间 104
5.3.5 I/O空间 105
5.4 程序结构与COFF目标文件格式 105
5.4.1 块(section) 106
5.4.2 汇编器对块的处理 106
5.4.3 链接器对块的处理 108
5.4.4 程序重定位 108
5.4.5 COFF文件中的符号 109
5.4.6 COFF文件格式编程示例 109
5.5 存储区分配与CMD文件 111
5.5.1 文件链接方法 111
5.5.2 链接命令文件 112
5.5.3 TMS320 VC5509A的 CMD文件 112
本章小结 115
习题与思考题 115
第6章 基于C语言的DSP芯片开发 116
6.1 引言 116
6.2 TMS320C55x的C语言 116
6.2.1 变量和常数 118
6.2.2 函数 121
6.2.3 预处理 123
6.2.4 asm语句 125
6.3 C语言程序代码的优化 125
6.3.1 C语言程序代码编译分析 125
6.3.2 C语言程序的优化方法 131
本章小结 141
习题与思考题 141
第7章 基于TMS320C55x的汇编语言开发 142
7.1 汇编语言源程序格式 142
7.2 汇编源程序中常见符号和伪指令 144
7.3 汇编指令系统 147
7.4 寻址方式 150
7.4.1 绝对寻址方式 150
7.4.2 直接寻址方式 151
7.4.3 间接寻址方式 153
7.5 汇编代码的优化 162
7.6 汇编语言和C的混合编程方法 162
7.6.1 独立的C和汇编模块接口 163
7.6.2 从C程序中访问汇编程序变量 164
7.6.3 在汇编程序中访问C程序变量 165
7.6.4 在C程序中直接嵌入汇编语句 166
7.6.5 TMS320C55x混合编程举例 166
本章小结 167
习题与思考题 167
第8章 DSP算法软件开发实例 168
8.1 引言 168
8.2 基于FFT的单音检测算法原理 168
8.2.1 单音检测算法概述 168
8.2.2 DFT的基本原理 169
8.2.3 FFT算法的导出 169
8.3 基于MATLAB的DSP算法仿真 174
8.3.1 MATLAB简介 174
8.3.2 单音检测算法的MATLAB仿真 175
8.4 单音检测算法的浮点C语言实现 177
8.5 单音检测算法的定点C语言实现 181
8.5.1 FFT运算溢出及避免方法 182
8.5.2 单音检测算法的定点C语言实现 183
8.6 单音检测算法的定点DSP芯片实现 188
本章小结 190
习题与思考题 190
第9章 DSP系统的硬件设计 191
9.1 引言 191
9.2 DSP系统硬件设计的基本步骤 191
9.3 最小DSP系统的硬件设计 192
9.3.1 电源电路 192
9.3.2 复位电路 195
9.3.3 时钟电路 196
9.3.4 JTAG电路 197
9.3.5 引脚的电平转换与处理 198
9.3.6 硬件系统的可靠性设计 200
9.4 外部存储器接口设计 203
9.4.1 TMS320C54x存储器接口设计 204
9.4.2 TMS320C55x存储器接口设计 208
9.5 模数接口电路的设计 209
9.5.1 TLV320AIC23B接口的设计 209
9.5.2 MC145483接口的设计 212
9.6 通信接口的设计 213
9.6.1 通信接口 213
9.6.2 同步通信接口电路设计 214
9.6.3 异步通信接口电路设计 215
9.7 主从式系统的设计 215
9.7.1 共享存储器实现双机通信 216
9.7.2 利用HPI实现双机通信 217
本章小结 218
习题与思考题 218
第10章 DSP芯片外设驱动程序的开发 219
10.1 引言 219
10.2 基于CSL的外设程序设计 220
10.2.1 CSL简介 220
10.2.2 CSL的特点 222
10.2.3 CSL程序开发基本步骤 224
10.3 中断控制程序的开发 233
10.3.1 中断初始化 234
10.3.2 中断服务程序的开发 237
10.3.3 中断控制程序实例 238
10.4 典型接口功能的控制程序开发 241
10.4.1 外部存储的控制程序 241
10.4.2 串行A/D和D/A功能的控制程序 244
10.4.3 外部主机通信功能的控制程序 249
10.5 DMA的控制程序开发 250
10.5.1 DSP芯片的DMA数据传输模式 251
10.5.2 DSP芯片的DMA传输地址 252
10.5.3 DSP芯片的DMA事件和中断 252
10.5.4 DMA控制程序举例 254
本章小结 257
习题与思考题 257
第11章 DSP脱机系统的开发 258
11.1 联机系统和脱机系统 258
11.2 DSP芯片的BOOT 260
11.2.1 BOOT简介 260
11.2.2 BOOT过程 261
11.2.3 BOOT表 266
11.3 DSP脱机系统实现 267
11.3.1 硬件设计 267
11.3.2 软件代码准备与烧录 268
11.4 DSP脱机系统软件开发实例 271
11.4.1 并口FLASH脱机系统的软件开发 271
11.4.2 串口FLASH脱机系统的软件开发 273
本章小结 276
习题与思考题 277
第12章 DSP系统的开发实例 278
12.1 引言 278
12.2 基于TMS320VC5509A的DSP应用系统实例 278
12.2.1 系统简介 278
12.2.2 系统架构 279
12.3 系统的硬件开发 280
12.3.1 器件选型 280
12.3.2 接口设计 282
12.3.3 电路设计 283
12.3.4 电路调试 286
12.4 系统的软件开发 287
12.4.1 算法仿真程序编写和测试 287
12.4.2 接口控制程序编写和调试 289
12.5 系统的软硬件集成 297
本章小结 307
习题与思考题 308
附录A 缩略词的中英文对照 309
附录B TMS320VC5509A PGE LQFP引脚图及定义 313
附录C TMS320C55x 指令集 315
附录D CSL库函数 332
附录E 代码实例 346
附录F CCS V5.5的安装 365
附录G 8位?律PCM/16位线性转换的C语言程序 369
附录H ?律PCM到线性变换表 371
参考文献 372