第1章 概述 1
1.1 数字信号处理概述 1
1.2 数字信号处理器的特点 3
1.3 DSP芯片的现状和发展 5
1.3.1 DSP基本概况 5
1.3.2 TMS320系列DSP发展概况 7
1.3.3 其他厂商的DSP 9
第2章 TMS320C5000 DSP的结构及其基本原理 11
2.1 TMS320C54x数字信号处理器 11
2.2 TMS320C54x的主要特性 12
2.3 TMS320C54x结构组成 13
2.3.1 总线结构 13
2.3.2 流水线操作 14
2.4 存储器 15
2.4.1 程序存储器 18
2.4.2 数据存储器 20
2.4.3 I/O存储器 21
2.5 存储器映像寄存器 21
2.6 片上外设 23
2.7 寻址模式 25
2.8 TMS320C55x DSP基本指标和性能 27
2.9 小结 30
第3章 TMS320C54x的片上外设 31
3.1 通用I/O引脚 31
3.2 定时器 31
3.3 时钟发生器 34
3.4 HPI主机接口 37
3.4.1 HPI的连接 38
3.4.2 HPI-8的操作 40
3.4.3 HPI-8数据线作为通用I/O 43
3.5 多通道缓冲串行口 44
3.5.1 多通道缓冲串行口概述 44
3.5.2 McBSP控制寄存器 46
3.5.3 McBSP数据发送和接收过程 51
3.5.4 可编程移位时钟和帧同步 55
3.5.5 μ律/A律的压扩硬件处理 58
3.5.6 多通道操作 59
3.5.7 SPI操作 61
3.5.8 McBSP引脚作为通用I/O 63
3.6 直接存储器访问(DMA)控制器 63
3.6.1 DMA寄存器的寻址 63
3.6.2 DMA寄存器的设置 65
3.7 软件可编程的等待状态发生器 71
3.8 分区转换逻辑 73
3.9 外部总线接口 75
3.9.1 外部总线接口信号 75
3.9.2 外部总线接口定时 76
第4章 SEED-VC5402 DSK实验板 81
4.1 DSK简介 81
4.2 硬件概况 83
4.2.1 TMS320VC5402 DSP 83
4.2.2 外部数据存储器 83
4.2.3 外部程序存储器 84
4.2.4 I/O空间存储器 86
4.2.5 DSP HPI接口 86
4.2.6 麦克风和耳机接口 86
4.2.7 并行口功能描述 87
4.2.8 JTAG仿真 88
4.2.9 JTAG插座 88
4.2.10 存储器扩展接口 89
4.2.11 外设扩展接口 89
4.2.12 用户选项 90
4.2.13 DSK中断 90
4.2.14 DSK连接器 90
4.2.15 DSK控制寄存器 93
4.3 软件概况 95
4.3.1 主机工具概况 95
4.3.2 DSP应用程序加载工具概况 96
4.3.3 Flash工具概况 97
4.3.4 板复位工具 97
4.3.5 板控制工具概况 97
4.3.6 主机API概况 98
4.3.7 板卡库概述 100
4.4 DSK板主要硬件电路 101
4.4.1 SMC34C60并行接口 101
4.4.2 74ACT8990测试总线控制器(TBC) 102
4.4.3 74CBT3257复用/解复用器 104
4.4.4 TPS73HD318双路输出的低压差稳压器 105
4.4.5 CY2071A可编程时钟发生器 105
4.4.6 CY37064VP100高性能CPLD芯片 106
4.4.7 CY7C1021静态RAM 108
4.4.8 SST39VF400A 4M位Flash存储器 108
4.4.9 74LVTH16245 3.3V 16位总线收发器 108
4.4.10 模拟信号输入/输出接口 109
4.4.11 子板接口总线 109
第5章 DSP系统的硬件设计 111
5.1 DSP系统基本硬件电路的设计 111
5.1.1 电源电路 111
5.1.2 时钟电路 113
5.1.3 复位电路 115
5.1.4 JTAG仿真接口 116
5.1.5 3.3V和5V混合逻辑电路设计 116
5.2 DSP系统的存储器接口设计 117
5.2.1 程序存储器的扩展 117
5.2.2 静态数据存储器的扩展 120
5.2.3 DSP与慢速器件的接口设计 123
5.3 DSP系统模数接口电路的设计 126
5.3.1 TLC320AD50C概述 126
5.3.2 AD50的内部结构及引脚 127
5.3.3 AD50模拟输入与输出电路设计 130
5.3.4 AD50与DSP的接口电路设计 132
5.3.5 AD50内部的寄存器 133
5.3.6 AD50的帧同步定时 135
5.3.7 AD50与DSP的串行通信 138
5.3.8 AD50的编程 143
5.4 DSP系统异步通信接口电路的设计 145
5.5 HPI接口电路的设计 148
5.5.1 HPI与主机的接口 148
5.5.2 HPI-8与PC的接口 149
5.5.3 HPI与51单片机的接口 151
5.6 DSP系统的自举设计 155
5.6.1 自举的概念 155
5.6.2 HPI自举模式 161
5.6.3 串行EEPROM自举模式 162
5.6.4 并行自举模式 164
5.6.5 标准串行口自举模式 165
5.6.6 I/O自举模式 167
5.6.7 自举表的生成 169
第6章 DSP系统的软件设计 171
6.1 DSP系统软件设计的一般过程 171
6.2 使用C语言设计DSP程序的特点 173
6.2.1 DSP的C语言编程与通用C语言编程的区别 173
6.2.2 C语言的数据结构 173
6.2.3 存储器映像寄存器(MMR)的定义和访问 177
6.2.4 DSP数据空间的访问 179
6.2.5 DSP I/O空间的访问 180
6.3 CCS中与C54xx相关的库函数和头文件 182
6.3.1 运行时支持库rts.lib及其头文件 182
6.3.2 板卡库drv5402.lib、dsk5402.lib及其头文件 183
6.3.3 DSPLIB通用信号处理程序函数库及其头文件 184
6.4 cmd链接命令文件 186
6.4.1 cmd文件的内容及编写方法 186
6.4.2 DSP的C语言中段的定义 190
6.5 C程序的结构及组成 192
6.6 C语言的中断编程 193
6.6.1 5402 DSP中断寄存器的结构 193
6.6.2 5402 DSP中断的初始化方法 194
6.6.3 中断服务程序的编程及注意事项 195
6.6.4 中断向量表的编写 199
6.6.5 中断向量地址的修改方法 201
6.6.6 一般中断服务程序的编写方法 203
6.7 C54x的混合编程 204
6.7.1 C和汇编模块的接口 204
6.7.2 C程序中访问汇编程序变量 205
6.7.3 C程序中直接嵌入汇编语句 206
第7章 集成开发环境CCS的使用 207
7.1 CCS的主要功能 207
7.1.1 CCS代码产生工具 209
7.1.2 CCS代码调试工具 210
7.2 CCS软件的安装与设置 212
7.3 CCS菜单 214
7.3.1 菜单 214
7.3.2 工具栏 220
7.4 SEED-VC5402DSK安装与配置 224
7.5 SEED-XDS510仿真器安装与配置 225
7.6 利用CCS开发DSP应用程序 227
7.6.1 一个简单DSP程序的设计与调试 227
7.6.2 一个DSP与计算机数据文件双向读写程序的设计与调试 235
第8章 通用扩展语言GEL 245
8.1 GEL语言简介 245
8.2 GEL函数的定义 246
8.3 GEL函数的参数 247
8.4 GEL函数的调用 248
8.5 GEL函数的加载和卸载 249
8.6 将GEL函数添加到GEL菜单中 251
8.7 访问输出窗口 254
8.8 启动CCS时自动执行GEL函数 254
8.9 查看表达式的值 255
8.10 内嵌的GEL函数 255
8.11 GEL语言的应用 266
第9章 DSP实验指导 275
实验一 5402 DSK板的初始化编程实验 275
实验二 定时器与数字I/O实验 286
实验三 定时器中断模式实验 295
实验四 信号发生器实验 305
实验五 编译码器及多通道缓冲串行口实验 316
实验六 利用DSP实现信号实时滤波 334
实验七 利用DSP实现信号频谱动态分析 354
第10章 DSP综合设计应用实例 360
10.1 双音多频信号的产生与检测 360
10.2 DSP与液晶显示器的接口及其程序设计 378
10.2.1 DSP与液晶显示器接口的硬件设计 378
10.2.2 DSP与液晶显示器接口的软件设计 383
10.2.3 LCD程序代码及分析 394
10.2.4 DSP驱动LCD的显示效果 413
10.3 bootloader程序设计 414
10.3.1 bootloader简介 414
10.3.2 在线bootloader 414
10.3.3 并行口bootloader模式的实现 415
10.3.4 SST39VF400芯片简介 419
10.3.5 程序设计 423
附录A TMS320VC5402 DSP的引脚图 428
附录B TMS320VC5402的引脚功能 429
附录C SEED-VC5402 DSK电路原理图 433