第1章 TMS320C54x系列DSP概述 1
1.1 DSP概述 1
1.2 TMS320系列DSP简介 3
1.3 TMS320C54x系列DSP的结构和特点 4
1.3.1 TMS320C54x系列DSP概述 4
1.3.2 TMS320C54x系列DSP的特点 5
1.3.3 TMS320VC5410A的引脚结构 7
1.3.4 TMS320C54xDSP的内部硬件结构 15
1.4 总线结构 17
第2章 存储器和I/O空间 18
2.1 TMS320C54xDSP存储器概述 18
2.2 存储器空间 18
2.3 程序存储器 26
2.3.1 程序存储器的可配置性 26
2.3.2 片内ROM的组织 26
2.3.3 程序存储器地址映射和片内ROM的内容 27
2.3.4 片内ROM的代码内容和映射 27
2.3.5 扩展程序存储器 28
2.4 数据存储器 30
2.4.1 数据存储器的可配置性 30
2.4.2 片内RAM的组织 30
2.4.3 存储器映射寄存器 32
2.5 I/0空间 33
第3章 中央处理单元(CPU) 35
3.1 CPU状态和控制寄存器 35
3.1.1 状态寄存器STO和STI 35
3.1.2 处理器工作模式状态(PMST)寄存器 38
3.2 算术逻辑单元(ALU) 40
3.2.1 ALU的输入 41
3.2.2 溢出处理 42
3.2.3 进位位 42
3.2.4 双16位模式 43
3.3 累加器A和B 43
3.3.1 保存累加器的内容 43
3.3.2 累加器移位和循环操作 44
3.3.3 饱和处理累加器内容 44
3.3.4 专用指令 45
3.4 桶式移位器 45
3.5 乘法器/加法器单元 46
3.5.1 乘法器的输入源 47
3.5.2 乘法/累加(MAC)指令 48
3.5.3 MAC和MAS乘法运算的饱和处理 48
3.6 比较、选择和存储单元 49
3.7 指数编码器 50
第4章 数据寻址 52
4.1 立即寻址 52
4.2 绝对寻址 54
4.2.1 数据存储器地址(dmad)寻址 54
4.2.2 程序存储器地址(pmad)寻址 54
4.2.3 端口地址(PA)寻址 54
4.2.4 *(IK)寻址 55
4.3 累加器寻址 55
4.4 直接寻址 55
4.4.1 基于DP的直接寻址 57
4.4.2 基于SP的直接寻址 58
4.5 间接寻址 58
4.5.1 单操作数寻址 58
4.5.2 ARAU和地址产生操作 59
4.5.3 单操作数地址的修改 59
4.5.4 双操作数寻址 64
4.5.5 修正(ARP)模式 67
4.6 存储器映射寄存器寻址 68
4.7 堆栈寻址 69
4.8 数据类型 70
第5章 程序存储器寻址及中断处理 71
5.1 程序存储器地址的产生 71
5.2 程序计数器(PC) 72
5.3 分支转移 73
5.3.1 无条件分支转移 73
5.3.2 条件分支转移 74
5.3.3 远分支转移 74
5.4 调用 75
5.4.1 无条件调用 75
5.4.2 条件调用 75
5.4.3 远调用 76
5.5 返回 76
5.5.1 无条件返回 76
5.5.2 条件返回 77
5.5.3 远返回 78
5.6 条件操作 78
5.6.1 使用多个条件 79
5.6.2 条件执行(XC)指令 79
5.6.3 条件存储指令 80
5.7 重复单条指令 80
5.8 重复一个指令块 81
5.9 复位操作 82
5.10 节电模式 83
5.10.1 IDLEI模式 84
5.10.2 IDLE2模式 84
5.10.3 IDLE3模式 84
5.10.4 保持(Hold)模式 85
5.10.5 其他节电性能 85
5.11 TMS320C54xDSP的中断系统 85
5.11.1 TMS320C54xDSP中断系统概述 85
5.11.2 中断标志寄存器(IFR) 86
5.11.3 中断屏蔽寄存器(IMR) 88
5.11.4 接收中断请求 89
5.11.5 应答中断 90
5.11.6 执行中断服务程序(ISR) 90
5.11.7 保存中断上下文 91
5.11.8 中断等待时间 91
5.11.9 中断操作流程 92
5.11.10 重新映射中断向量地址 93
5.11.11 中断和中断向量表 94
第6章 流水线 99
6.1 流水线操作 99
6.1.1 流水线的分支转移指令 101
6.1.2 流水线中的调用指令 103
6.1.3 流水线中的返回指令 104
6.1.4 流水线中的条件执行 106
6.1.5 流水线中的条件调用和分支转移 107
6.2 中断和流水线 108
6.3 双访问存储器和流水线 109
6.3.1 解决取指和读操作数之间的冲突 111
6.3.2 解决写操作数和读双操作数之间的冲突 111
6.3.3 解决写操作数、写操作数和读双操作数之间的冲突 112
6.4 单访问存储器和流水线 113
6.5 流水线等待 114
6.5.1 访问存储器映射寄存器的推荐指令 114
6.5.2 更新ARx、BK或SP——解决冲突 115
第7章 TMS320C54xDSP的片内外设 117
7.1 片内外设映射寄存器 117
7.2 通用I/O 120
7.2.1 分支转移控制输入引脚(?) 121
7.2.2 外部标志输出引脚(XF) 121
7.3 定时器 121
7.3.1 定时器寄存器 121
7.3.2 定时器操作 123
7.4 时钟发生器 124
7.4.1 时钟发生器的硬件连接 124
7.4.2 硬件可配置的PLL 125
7.4.3 软件可配置的PLL 126
7.5 主机接口(HPI) 131
7.5.1 主机接口的基本功能描述 133
7.5.2 HPI接口操作 134
7.5.3 HPI控制寄存器(HPIC) 136
7.5.4 主机对HPI的读/写访问 138
7.5.5 DSPINT和HINT功能操作 139
7.5.6 CPU处于IDLE2/3状态下的HPI存储器的访问 140
7.5.7 复位时HPI存储器的访问 141
7.6 增强的8位HPI(HPI-8) 142
7.6.1 增强的8位HPI(HPI-8) 142
7.6.2 HPI-8数据引脚配置为通用目标1/0引脚 149
7.7 增强的16位HPI(HPI-16) 150
7.7.1 HPI-16操作概述 150
7.7.2 多路复用模式 153
7.7.3 非多路复用模式 156
7.7.4 HPI-16存储器映射 158
7.7.5 HPI-16和DMA的相互关系 159
7.7.6 复位时的HPI-16操作 160
7.7.7 在IDLEn模式下的HPI-16操作 160
7.7.8 改变时钟模式时的HPI-16访问 160
第8章 串行接口 161
8.1 串行接口概述 161
8.2 标准串行接口 161
8.2.1 串行接口寄存器 161
8.2.2 串行接口操作 162
8.2.3 配置串行接口 163
8.2.4 脉冲串模式发送和接收操作 166
8.2.5 连续模式的串行接口的发送和接收操作 171
8.2.6 串行接口操作注意事项 172
8.2.7 串行接口操作实例 175
8.3 带缓冲的串行接口(BSP) 176
8.3.1 BSP概述 176
8.3.2 标准模式的BSP操作 177
8.3.3 自动缓冲单元(ABU)操作 180
8.3.4 BSP操作注意事项 185
8.3.5 BSP节电操作模式 187
8.4 时分复用(TDM)串行接口 187
8.4.1 基本的时分复用操作 188
8.4.2 TDM串行接口寄存器 188
8.4.3 TDM串行接口的操作 189
8.4.4 TDM串行接口的发送和接收操作 191
8.4.5 TDM串行接口操作注意事项 192
8.4.6 TDM串行接口操作实例 192
8.5 多通道带缓冲串行接口(McBSP) 195
8.5.1 McBSP的特性 195
8.5.2 McBSP的内部结构和工作原理 196
8.5.3 McBSP的配置 198
8.5.4 接收和发送控制寄存器RCR[1,2]和XCR[1,2] 202
8.5.5 数据发送和接收的操作流程 206
8.5.6 μ律/A压缩扩展硬件操作 212
8.5.7 可编程的时钟和帧 213
8.5.8 McBSP多通道选择配置 218
第9章 外部总线及其扩展 223
9.1 外部总线接口 223
9.2 外部总线操作的优先级 224
9.3 外部总线控制 225
9.3.1 等待状态发生器 225
9.3.2 分区转换逻辑 227
9.4 外部总线接口时序 229
9.4.1 存储器访问时序 229
9.4.2 I/0访问时序 231
9.4.3 存储器和I/O访问时序 232
9.5 复位和节电模式的时序 234
9.5.1 复位时序 234
9.5.2 IDEL3节电模式唤醒时序 235
9.6 保持模式 236
9.7 程序存储器的扩展应用 240
9.7.1 TMS320C54xDSP与Flash ROM的接口 240
9.7.2 TMS320C54xDSP与SRAM的接口 242
9.7.3 TMS320C54xDSP与28F400B3的接口及软件读写操作 243
第10章 直接存储器访问(DMA)控制器 249
10.1 DMA概述 249
10.2 DMA的操作和配置 250
10.2.1 寄存器子寻址 250
10.2.2 DMA通道优先级和使能控制寄存器(DMPREC) 253
10.2.3 通道上下文寄存器 255
10.3 扩展寻址 265
10.4 DMA存储器映射 265
10.4.1 TMS320C5402DNA存储器映射 266
10.4.2 TMS320C5410DMA存储器映射 266
10.4.3 TMS320C5420DMA存储器映射 267
10.5 DMA传输延迟 269
10.6 节电模式下的DMA操作 271
10.7 DMA应用编程实例 271
第11章 TMS320C54xDSP硬件接口设计 277
11.1 TMS320C54xDSP的电源设计 277
11.1.1 DSP供电电源设计 277
11.1.2 3.3V和5V混合逻辑设计 278
11.2 DSP系统的硬件复位电路 279
11.3 TMS320C5410与TLC320AC01的连接及软件处理 281
11.3.1 TLC320ACO1简介 281
11.3.2 TLC320ACO1与TMS320C54xDSP的串行接口 282
11.3.3 使用TLC320ACO1的声音回送的程序实例 284
11.4 TMS320C5410与TLV320AIC1O的连接 286
11.4.1 TLV320AIC1O简介 286
11.4.2 TMS320C54xDSP与TLV320AIC1O的连接 288
11.4.3 软件实现 288
11.5 TMS320C5402与PCI总线的接口设计 290
11.6 TMS320C54xDSP与PC并行接口的接口设计 292
第12章 TMS320C54xDSP的应用板硬件系统 301
12.1 TMS320C54xDSP应用板的特性 301
12.1.1 TMS320C54xDSP应用板简介 301
12.1.2 TMS320C54xDSP应用板的关键特性 301
12.1.3 TMS320C54xDSP应用板的功能框图 302
12.2 TMS320C54xDSP应用板说明 302
12.2.1 电源接口 303
12.2.2 存储器接口 303
12.2.3 晶体振荡器的选择 305
12.2.4 模拟接口 305
12.2.5 总线扩展 305
12.2.6 JTAG接口 310
12.2.7 串行接口 311
12.2.8 与音频编解码器(TLC320AD50)的接口 311
12.2.9 自举加载 312
12.2.10 跳线端子 314
12.2.11 信号灯(LED) 318
12.2.12 复位 318
12.3 GAL逻辑程序 318
12.3.1 TMS320C5402的存储器译码GAL逻辑程序 318
12.3.2 TMS320C548/C549/C5410的存储器译码GAL逻辑程序 320
12.3.3 TMS320C5416的存储器译码GAL逻辑程序 322
12.3.4 I/0控制GAL逻辑程序 323
12.4 TMS320C54xDSP应用板的电路图 325
第13章 TMS320C54xDSP的软件设计 337
13.1 TMS320C54xDSP的软件开发工具 337
13.2 集成开发环境(CCS) 339
13.3 FIR滤波器的设计 341
13.4 IIR滤波器的设计 346
13.5 CODEC应用程序的实现 349
13.6 TMS320C54xDSP的自举加载 352
13.6.1 8位或16位并行EPROM模式自举加载 353
13.6.2 I/0自举加载 355
13.6.3 串行(SP)自举加载 356
13.6.4 热自举加载 358
13.6.5 HPI自举加载 358
13.7 软件编程时需注意的几个问题 362
附录 TMS320C54xDSP的片内外设映射寄存器 364
参考文献 373