第1章DSP的结构和功能
1.1 ADI公司DSP的特点 1
1.2 SHARC系列DSP的分类 1
1.3 ADSP 2106x并行浮点DSP处理器结构和功能 3
1.3.1 运算单元 4
1.3.2 控制单元 5
1.3.3 地址产生器和总线 6
1.3.4 中断 6
1.3.5 寄存器组成 6
1.3.6 存储器 7
1.3.7 DMA 10
1.3.8 链路口和串口 10
1.4 ADSP 2106x的硬件接口设计 10
1.5 思考题 12
第2章 DSP与存储器接口
2.1 存储器种类 13
2.2 等待模式 14
2.2.1 软等待访问模式 15
2.2.2 硬等待访问模式 16
2.2.3 软等待和硬等待 16
2.3 译码和片选 18
2.4 DSP与SRAM接口 19
2.5 DSP与EPROM接口 22
2.5.1 DSP的EPROM引导流程 22
2.5.2 DSP访问引导EPROM的方法 24
2.6 DSP与Flash接口 24
2.6.1 用8位Flash作引导存储器 25
2.6.2 用48位Flash作程序存储器 32
2.6.3 用大容量Flash 35
2.7 DSP与多端口存储器接口 39
2.7.1 DSP与FIFO的接口 39
2.7.2 DSP与双口RAM的接口 41
2.8 DSP与SDRAM接口 42
2.9 DSP与同步突发SRAM(SBSRAM)的接口 48
2.10 思考题 51
第3章DMA应用
3.1 总线DMA 52
3.1.1 主机方式 53
3.1.2 握手方式和其他方式 55
3.1.3 链式DMA 59
3.1.4 共享总线下的DMA 61
3.2 链路DMA 63
3.3 二维DMA 65
3.4 串口DMA 66
3.5 思考题 67
第4章A/D和D/A电路设计
4.1 A/D和D/A转换器 68
4.1.1 采样速度 68
4.1.2 量化位数 70
4.1.3 量化位数和采样速度的转换 70
4.1.4 其他因素 71
4.2 总线与A/D接口 72
4.3 串口与串行A/D相连 76
4.4 DSP与D/A接口 78
4.5 思考题 79
第5章 扩展的DSP接口
5.1 扩展的异步串口 80
5.1.1 8251接口 81
5.1.2 16650接口 85
5.2 数据/地址总线复用接口 95
5.2.1 DSP与时钟芯片的接口 95
5.2.2 DSP与CAN总线的接口 98
5.3 扩展DSP的I/O和中断 99
5.4 DSP主机与CPCI/PCI总线的连接 100
5.4.1 WB]基于CPCI总线的DSP紧耦合系统 101
5.4.2 桥接芯片PCI 9054 108
5.4.3 DSP的主机接口 116
5.4.4 PCI总线 120
5.4.5 Compact PCI 125
5.5 思考题 129
第6章 电路设计
6.1 电源设计 130
6.1.1 DC/DC变换 130
6.1.2 多电源工作 132
6.1.3 电源和地的去耦 133
6.2 时钟电路与复位电路 133
6.3 驱动与隔离 134
6.4 电平转换器 136
6.5 DSP的仿真接口 138
6.6 DSP与FPGA的结合 139
6.7 测试和自检功能 140
6.7.1 信号测试 140
6.7.2 电路的自检功能 141
6.8 DSP的电路板设计 142
6.8.1 信号完整性 142
6.8.2 电磁兼容性设计 145
6.8.3 高速模数混合系统的接地 148
6.8.4 印制电路板的层分布 152
6.8.5 DSP电路设计要点 156
6.9 系统设计的考虑 161
6.9.1 系统结构 161
6.9.2 调试和加载 162
6.9.3 功耗和散热 163
6.10 DSP的程序保护 163
6.11 抗干扰设计 165
6.11.1 看门狗方法 165
6.11.2 软件代码设计 167
6.12 电路初调 169
6.13 思考题 171
第7章DSP的软件开发
7.1 DSP的软件开发流程 172
7.2 开发工具VisualDSP++概述 173
7.3 集成开发环境 174
7.3.1 创建一个新的工程文件 175
7.3.2 设置工程选项 175
7.3.3 添加或编辑工程源文件 181
7.3.4 生成一个调试版的工程 182
7.3.5 调试一个工程 183
7.3.6 一个正式版的工程 183
7.4 选择合适的调试平台 183
7.4.1 安装仿真器驱动软件 183
7.4.2 选择调试平台 186
7.4.3 多处理器调试 189
7.5 程序调试操作 191
7.6 程序性能分析操作 191
7.6.1 Trace操作 192
7.6.2 Profile操作 192
7.6.3 Statisca Profiling操作 193
7.7 设置观察点和断点 193
7.8 模仿硬件环境 194
7.9 寄存器窗口操作 195
7.10 存储器窗口操作 195
7.11 其他窗口操作 197
7.12 编写链接描述文件 198
7.13 编程练习 202
7.13.1 DFT汇编例子 202
7.13.2 C代码例子 203
7.13.3 C和汇编代码 207
7.13.4 数据绘图(Plotting) 210
7.13.5 统计评估 212
7.14 编程分析 214
7.14.1 离散傅里叶变换(DFT) 214
7.14.2 FIR有限冲激响应滤波器 217
7.14.3 矩阵相加 218
7.15 编程举例 220
7.15.1 编程方法 220
7.15.2 中断的用法 225
7.15.3 算法子程序 226
7.16 数据格式 234
7.17 与早期编程方法的区别 236
7.18 ADSP 2106x指令集 238
7.18.1 指令总表 239
7.18.2 指令简述 242
7.18.3 条件码 245
7.18.4 ALU运算 247
7.18.5 移位器操作 250
7.18.6 乘法器操作 252
7.18.7 多运算指令 255
7.19 思考题 256
第8章ADSP 2116x系列DSP的应用
8.1 ADSP 21160与早期SHARC DSP的区别 258
8.1.1 总体功能上的区别 258
8.1.2 第二套运算核(PEy) 260
8.1.3 两套运算部件 261
8.1.4 单指令多数据(SIMD) 261
8.1.5 循环缓冲模式 264
8.1.6 寄存器的广播式加载模式 265
8.1.7 内部存储器长字(64位)访问 265
8.1.8 程序的引导 266
8.1.9 标志数值寄存器(FLAGS) 267
8.1.10 同步突发模式 268
8.2 ADSP 21161与其他SHARC的区别 268
8.2.1 ADSP 21161的链路接口 269
8.2.2 ADSP 21161的串行外设接口SPI 269
8.3 双电压启动流程 274
8.4 ADSP 2116X的PCB板布线 275
8.5 思考题 276
参考文献 277