《TMS320C55x DSP应用系统设计 第3版》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:赵洪亮,卜凡亮,黄鹤松等编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2014
  • ISBN:9787512414747
  • 页数:404 页
图书介绍:本书以TI公司的TMS320C55x系列芯片为对象,系统地介绍了DSP芯片的基础知识和DSP应用系统的开发设计方法。全书共分10章,主要内容是:C55x的硬件结构和指令系统;采用汇编语言、C/C++语言进行C55x软件开发的基础知识和方法,包括CCS在内的软件开发工具的使用方法;典型应用程序设计,包括数据定标与溢出处理,多字整数、小数的加法、减法、乘法和除法,FIR、IIR滤波器,FFT等;常用C55x片上外设,C55x应用系统的硬件扩展方法;典型应用系统设计实例。本书选材新、内容丰富、通俗易懂、实用性强,可作为电气信息类专业及其他相近专业的高年级本科生和研究生学习DSP课程的教材或参考书,也可供从事DSP应用系统开发的科技工作者或工程技术人员参考。

第1章 绪论 1

1.1 DSP的基本概念 1

1.2 DSP芯片简介 2

1.2.1 DSP芯片的发展历史、现状和趋势 2

1.2.2 DSP芯片的特点 5

1.2.3 DSP芯片的分类 5

1.2.4 DSP芯片的应用领域 6

1.2.5 选择DSP芯片考虑的因素 6

1.3 DSP芯片产品简介 7

1.3.1 TI公司的DSP芯片概况 7

1.3.2 其他公司的DSP芯片概况 8

1.3.3 TMS320C5000概况 9

思考题与习题 10

第2章 TMS320C55x的硬件结构 12

2.1 TMS320C55x的总体结构 12

2.1.1 C55x CPU内部总线结构 12

2.1.2 C55x的CPU组成 12

2.1.3 C55x存储器配置 14

2.1.4 C55x外设配置 14

2.2 C55x的封装和引脚功能 15

2.2.1 引脚属性 15

2.2.2 引脚信号定义与描述 16

2.3 C55x的CPU结构 20

2.3.1 存储器接口单元(M单元) 20

2.3.2 指令缓冲单元(I单元) 21

2.3.3 程序流单元(P单元) 22

2.3.4 地址数据流单元(A单元) 22

2.3.5 数据计算单元(D单元) 23

2.3.6 地址总线与数据总线 25

2.3.7 指令流水线 26

2.4 CPU寄存器 28

2.4.1 概况 28

2.4.2 累加器(AC0~AC3) 33

2.4.3 变换寄存器(TRN0、TRN1) 34

2.4.4 T寄存器(T0~T3) 34

2.4.5 用作数据地址空间和I/O空间的寄存器 34

2.4.6 程序流寄存器(PC、RETA、CFCT) 40

2.4.7 中断管理寄存器 41

2.4.8 循环控制寄存器 44

2.4.9 状态寄存器ST0_55 45

2.4.10 状态寄存器ST1_55 48

2.4.11 状态寄存器ST2_55 52

2.4.12 状态寄存器ST3_55 54

2.5 存储空间和I/O空间 57

2.5.1 存储器映射 57

2.5.2 程序空间 59

2.5.3 数据空间 60

2.5.4 I/O空间 61

2.6 堆栈操作 62

2.6.1 数据堆栈和系统堆栈 62

2.6.2 堆栈配置 63

2.6.3 快返回与慢返回 63

2.7 中断和复位操作 64

2.7.1 中断概述 64

2.7.2 中断向量与优先级 65

2.7.3 可屏蔽中断 67

2.7.4 不可屏蔽中断 70

2.7.5 硬件复位 71

2.7.6 软件复位 74

思考题与习题 75

第3章 集成开发环境(CCS5.4) 76

3.1 CCS概述 76

3.1.1 集成开发环境CCS概述 76

3.1.2 CCS5.4软件的安装 77

3.2 汇编语言工程的建立和调试 78

3.2.1 进入CCS主界面 78

3.2.2 汇编语言工程的创建 79

3.2.3 汇编源文件和命令文件的创建 81

3.2.4 工程的构建(Build) 84

3.2.5 构建操作的参数设置 84

3.2.6 汇编工程的调试 86

3.2.7 寄存器的观察和修改 89

3.2.8 存储器的观察和修改 89

3.3 C语言工程的建立和调试 90

3.3.1 进入CCS主界面 90

3.3.2 C语言工程的创建 90

3.3.3 C源文件和命令文件的创建、添加和编辑 91

3.3.4 C语言工程的构建 93

3.3.5 C语言工程的调试 94

3.3.6 寄存器、存储器的观察和修改 95

3.3.7 表达式窗口和变量窗口的使用 95

3.3.8 反汇编窗口的使用 96

3.3.9 图形显示工具 96

思考题与习题 98

第4章 TMS320C55x的指令系统 99

4.1 寻址方式 99

4.1.1 绝对寻址方式 99

4.1.2 直接寻址方式 101

4.1.3 间接寻址方式 104

4.1.4 数据存储器的寻址 112

4.1.5 存储器映射寄存器(MMR)的寻址 114

4.1.6 寄存器位的寻址 114

4.1.7 I/O空间的寻址 115

4.1.8 循环寻址 115

4.2 TMS320C55x的指令系统 117

4.2.1 算术运算指令 120

4.2.2 位操作指令 147

4.2.3 扩展辅助寄存器操作指令 150

4.2.4 逻辑运算指令 151

4.2.5 移动指令 154

4.2.6 程序控制指令 164

思考题与习题 167

第5章 TMS320C55x汇编语言编程 169

5.1 TMS320C55x软件开发流程 169

5.1.1 软件开发流程 169

5.1.2 软件开发工具 169

5.2 TMS320C55x目标文件格式 171

5.2.1 COFF文件的基本单元——段 171

5.2.2 汇编器对段的处理 172

5.2.3 链接器对段的处理 176

5.2.4 链接器对程序的重新定位 177

5.2.5 COFF文件中的符号 178

5.3 TMS320C55x汇编器 179

5.3.1 汇编器概述 179

5.3.2 汇编程序的运行 179

5.3.3 C55x汇编器的特点 181

5.4 TMS320C55x汇编伪指令 183

5.4.1 汇编伪指令 183

5.4.2 宏指令 185

5.5 TMS320C55x汇编语言源文件的书写格式 190

5.5.1 汇编语言源文件格式 190

5.5.2 汇编语言中的常数与字符串 192

5.5.3 汇编源程序中的符号 192

5.5.4 汇编源程序中的表达式 195

5.5.5 内建数学函数 196

5.6 TMS320C55x链接器 197

5.6.1 概述 197

5.6.2 链接器的运行 198

5.6.3 链接器命令文件的编写与使用 200

5.6.4 MEMORY指令 200

5.6.5 SECTIONS指令 201

5.7 一个完整的TMS320C55x汇编程序 202

思考题与习题 204

第6章 C/C++语言程序设计 205

6.1 C55x C/C++语言概述 205

6.1.1 C/C++语言概况 205

6.1.2 C55x C/C++语言概况 205

6.2 C55x C/C++语言编程基础 206

6.2.1 数据类型 206

6.2.2 关键字 207

6.2.3 寄存器变量和参数 208

6.2.4 asm指令 208

6.2.5 Pragma指令 209

6.2.6 标准ANSIC语言模式的改变(-pk、-pr和-ps选项) 210

6.2.7 存储器模式 210

6.2.8 存储器分配 211

6.2.9 中断处理 213

6.2.10 运行时间支持算法及转换程序 214

6.2.11 系统初始化 214

6.3 C55x C/C++编译器的使用 218

6.3.1 编译器外壳程序cl55简介 218

6.3.2 cl55程序的选项 219

6.3.3 编译器和CCS 220

6.4 C55x的C代码优化 220

6.4.1 编译器的优化选项 221

6.4.2 嵌入函数(Inline Function) 222

6.4.3 优化C代码的主要方法 223

6.5 C55x C和汇编语言混合编程 229

6.5.1 C和汇编语言混合编程概述 229

6.5.2 寄存器规则 229

6.5.3 函数结构和调用规则 232

6.5.4 C和汇编语言的接口 235

思考题与习题 238

第7章 应用程序设计 239

7.1 定标与溢出处理 239

7.1.1 数的定标 239

7.1.2 溢出的处理方法 241

7.1.3 常用信号处理算法中的定标方法 242

7.2 基础算术运算 243

7.2.1 加减运算 243

7.2.2 乘法运算 244

7.2.3 除法运算 245

7.2.4 小数乘法 249

7.3 FIR滤波器 250

7.3.1 FIR滤波器的基本结构 250

7.3.2 FIR滤波器的C语言编程实现 251

7.3.3 FIR滤波器的汇编语言编程实现 252

7.4 IIR滤波器 255

7.4.1 二阶IIR滤波器的结构 255

7.4.2 高阶IIR滤波器的结构 257

7.4.3 IIR滤波器的C语言实现 258

7.4.4 IIR滤波器的汇编语言实现 259

7.5 快速傅里叶变换FFT 261

7.5.1 FFT算法原理 261

7.5.2 库利-图基算法 262

7.5.3 FFT算法的实现 264

7.6 DSPLIB的使用 268

7.6.1 DSPLIB简介 268

7.6.2 CCS下DSPLIB的安装 268

7.6.3 DSPLIB的数据类型 268

7.6.4 DSPLIB的参量 269

7.6.5 DSPLIB的函数简介 269

7.6.6 DSPLIB函数的调用 272

思考题与习题 274

第8章 C55x的片上外设 276

8.1 时钟发生器 276

8.1.1 时钟发生器概况 276

8.1.2 时钟工作模式 276

8.1.3 CLKOUT输出 277

8.1.4 使用方法 277

8.2 通用定时器 279

8.2.1 通用定时器概况 279

8.2.2 工作原理 279

8.2.3 定时器使用要点 282

8.2.4 通用定时器应用实例 283

8.3 通用I/O口(GPIO) 285

8.4 外部存储器接口(EMIF) 286

8.4.1 EMIF概况 287

8.4.2 EMIF请求的优先级 289

8.4.3 对存储器的考虑 289

8.4.4 程序和数据访问 290

8.4.5 EMIF中的控制寄存器 294

8.5 多通道缓冲串口McBSP 300

8.5.1 McBSP概述 300

8.5.2 McBSP组成框图 300

8.5.3 采样率发生器 301

8.5.4 多通道模式选择 303

8.5.5 异常处理 304

8.5.6 McBSP寄存器 305

8.6 模/数转换器(ADC) 312

8.6.1 ADC的结构和时序 312

8.6.2 ADC的寄存器 313

8.6.3 实例 315

8.7 看门狗定时器(Watchdog) 315

8.7.1 看门狗定时器概述 315

8.7.2 看门狗定时器的配置 317

8.7.3 看门狗定时器的寄存器 318

8.8 I2C模块 320

8.8.1 I2C模块简介 320

8.8.2 I2C模块工作原理 320

8.8.3 I2C寄存器 324

8.9 片上支持库(CSL) 324

8.9.1 CSL概况 325

8.9.2 CSL的安装和使用 327

8.9.3 PLL模型简介 327

8.9.4 定时器模型简介 329

8.9.5 IRQ模型简介 331

8.9.6 综合实例 335

思考题与习题 342

第9章 C55x的硬件扩展 343

9.1 硬件设计概述 343

9.1.1 C55x DSP系统的组成 343

9.1.2 DSP硬件系统设计流程 344

9.2 DSP系统的基本电路设计 345

9.2.1 JTAG接口 345

9.2.2 电源电路 346

9.2.3 复位电路 349

9.2.4 时钟电路 350

9.3 外部程序存储器的扩展 350

9.3.1 EMIF和异步存储器的连接 350

9.3.2 闪存S29AL008D简介 351

9.3.3 VC5509A与S29AL008D的接口 355

9.4 外部数据存储器的扩展 356

9.4.1 同步动态随机存取存储器(SDRAM) 356

9.4.2 C55x EMIF的SDRAM接口信号 358

9.4.3 C55x EMIF与SDRAM的接口 359

9.5 C55x与A/D和D/A转换器的接口 362

9.5.1 TLV320AIC23B简介 363

9.5.2 AIC23B的控制寄存器 366

9.5.3 AIC23B与C55x的控制接口 370

9.5.4 AIC23B与C55x的数据接口 372

9.5.5 AIC23B的模拟接口 373

思考题与习题 374

第10章 C55x应用系统设计实例 375

10.1 典型DSP板的硬件设计 375

10.1.1 概述 375

10.1.2 基本电路模块 376

10.1.3 FLASH电路模块 377

10.1.4 SDRAM电路模块 377

10.1.5 数/模转换电路 378

10.1.6 SD卡接口电路 378

10.1.7 USB接口电路 380

10.1.8 自启动电路模块 381

10.2 CPLD电路模块设计 382

10.2.1 概述 382

10.2.2 复位逻辑 383

10.2.3 控制寄存器的地址生成 383

10.2.4 用户寄存器 384

10.2.5 FLASH高位地址寄存器 384

10.2.6 控制寄存器数据的输出 385

10.3 DSP板测试程序 385

10.3.1 LED灯和拨码开关测试程序 385

10.3.2 GPIO测试程序 386

10.3.3 SDRAM测试程序 387

10.3.4 FLASH测试程序 388

10.3.5 AIC23B测试程序 388

10.4 综合设计实例1:自适应系统辨识 390

10.4.1 基于LMS算法的自适应滤波器 390

10.4.2 自适应系统辨识算法 390

10.4.3 辨识系统硬件设计 391

10.4.4 辨识系统软件设计 392

10.5 综合设计实例2:数字式有源抗噪声耳罩 395

10.5.1 概述 395

10.5.2 系统工作原理和控制算法 396

10.5.3 硬件设计 398

10.5.4 软件设计 400

参考文献 404