DSP技术完全攻略 基于TI系列的DSP设计与开发
作者: 钟睿 主编
出版时间:2015年版
内容简介
本书采用通俗易懂、轻松灵活的语言绍了DSP的设计与开发攻略,循序渐进地介绍了TI公司C2000、C5000、C6000三大主流DSP的基本结构、开发步骤以及应用实例。全书共分为三部分:基础原理部分介绍了DSP的基本概念以及主流DSP芯片的常用硬件资源;DSP软件资源部分介绍了指令系统与CCS集成开发环境;实例部分重点讨论了DSP开发中最常见、最有特色的例程。同时还总结了一些非常有用,但有时容易忽略的知识点。本书内容实用,且系统性强、理论联系实际,能够使读者快速、全面地掌握DSP系统设计与开发技巧。本书适合DSP技术初学者、从事DSP系统设计与开发的工程技术人员阅读使用,也可用作高等院校的电子、自动化、计算机等相关专业的参考书
目录
第1章 新手入门
1.1信号2
1.2数字信号处理3
1.3初识DSP4
1.3.1DSP概述4
1.3.2为什么DSP能算这么快5
1.3.3DSP芯片的现状与发展趋势7
1.4DSP的主流与非主流9
1.4.1N多种DSP9
1.4.2你会选择谁10
1.4.3TI公司主流DSP12
1.5DSP和其他微芯片的比较13
1.5.1DSP和单片机的比较13
1.5.2DSP和ARM的比较13
1.6如何玩转DSP14
1.6.1DSP技术知识点准备14
1.6.2DSP参考资料14
1.6.3DSP开发流程15
1.6.4DSP软件、硬件开发16
1.7要点与思考16
第2章 数字控制利器——TMS320C24X系列
2.1TMS320C24x系列CPU简介18
2.2CPU结构和内核19
2.3系统总线20
2.4CPU内核21
2.4.1输入定标移位器21
2.4.2乘法器22
2.4.3中央算术逻辑单元23
2.4.4累加器(ACC)24
2.4.5输出数据定标移位器25
2.4.6辅助寄存器算术单元25
2.4.7状态寄存器26
2.5存储器与I/O空间28
2.5.1片内存储器28
2.5.2程序存储器29
2.5.3数据存储器30
2.5.4I/O空间32
2.5.5外部存储器接口34
2.6寻址方式35
2.7系统配置寄存器36
2.7.1系统控制和状态寄存器1(SCSR1)36
2.7.2系统控制和状态寄存器2(SCSR2)38
2.7.3器件标识号寄存器(DINR)38
2.8中断39
2.8.1中断优先级和中断向量表39
2.8.2外设中断扩展控制器42
2.8.3中断向量表43
2.8.4全局中断使能44
2.8.5中断响应过程44
2.8.6中断响应延迟处理45
2.8.7中断寄存器46
2.8.8外设中断寄存器46
2.8.9复位与无效地址检测51
2.8.10外部中断控制寄存器51
2.9程序控制52
2.9.1程序地址的产生52
2.9.2流水线操作54
2.9.3无条件转移、调用和返回55
2.9.4有条件转移、调用和返回55
2.9.5重复指令56
2.10看门狗(Watch Dog,简称WD)57
2.11TMS320x240x的片上外设58
2.11.1通用I/O模块(GPIO)58
2.11.2事件管理器(EV)60
2.11.3捕获单元69
2.11.4正交编码脉冲(QEP)电路72
2.11.5模数转换模块(ADC)73
2.11.6SCI串行通信接口模块79
2.11.7SPI串行外设接口模块80
2.11.8CAN控制器模块80
2.12要点与思考82
第3章 适合便携终端的低功耗产品——TMS320C54X系列
3.1TMS320C54x系列CPU简介83
3.2总线结构85
3.3CPU内核86
3.3.1算术逻辑运算单元ALU87
3.3.2累加器88
3.3.3桶形移位寄存器89
3.3.4乘法加法累加单元(MAC)90
3.3.5比较、选择和存储单元CSSU91
3.3.6指数编码器92
3.3.7CPU寄存器92
3.4存储器94
3.4.1存储器结构95
3.4.2程序存储器96
3.4.3数据存储器98
3.4.4I/O存储器空间100
3.5中断系统100
3.5.1中断寄存器100
3.5.2中断控制101
3.6片内外设105
3.6.1通用I/O引脚105
3.6.2定时器105
3.6.3时钟发生器106
3.6.4主机接口(HPI)108
3.6.5串行口109
3.7要点与思考112
第4章 高性能的代表——TMS320C6000系列
4.1TMS320C6000系列简介113
4.2CPU结构114
4.2.1程序执行机构115
4.2.2控制寄存器组119
4.2.3控制状态寄存器119
4.3存储器120
4.3.1程序存储器及其控制器121
4.3.2数据存储器及其控制器122
4.4中断124
4.4.1中断类型和优先级124
4.4.2中断源124
4.4.3中断寄存器126
4.5片内集成外设126
4.5.1外部存储器接口(EMIF)127
4.5.2扩展总线xBus130
4.6要点与思考133
第5章 开发好帮手——CCS集成开发环境
5.1CCS概述135
5.2CCS的安装与配置137
5.3CCS文件类型138
5.4CCS基本界面139
5.4.1主界面139
5.4.2主菜单139
5.5CCS开发入门140
5.5.1创建工程140
5.5.2项目文件操作141
5.5.3工程配置142
5.5.4工程从属关系142
5.5.5编译和运行程序143
5.6基础调试144
5.6.1调试设置145
5.6.2运行与单步调试145
5.6.3断点147
5.6.4探针点147
5.6.5观察窗口149
5.6.6内存窗口150
5.6.7寄存器窗口152
5.6.8反汇编模式/混合模式152
5.7基础软件153
5.8要点与思考154
第6章 指挥工作靠软件——指令和C语言程序设计
6.1概述155
6.2C2000指令系统155
6.2.1C2000寻址方式155
6.2.2C2000常用指令集156
6.2.3C2000常用伪指令157
6.3C5000指令系统157
6.3.1C5000寻址方式157
6.3.2C5000常用指令集158
6.3.3C5000常用伪指令159
6.4C6000指令结构160
6.4.1C6000系列的基本寻址方式160
6.4.2C6000常用指令集160
6.5详细指令集161
6.6DSP的C语言开发171
6.6.1简介171
6.6.2DSP C语言数据类型172
6.6.3寄存器变量172
6.6.4pragma伪指令172
6.6.5ASM语句173
6.6.6I/O空间访问173
6.6.7数据空间访问173
6.6.8中断服务函数173
6.6.9初始化系统174
6.7DSP汇编语言/C语言混合编程174
6.7.1混合编程环境设置174
6.7.2内嵌汇编语句177
6.7.3C语言访问汇编程序变量177
6.8要点与思考178
应用实例篇
第7章 实施工作靠硬件——基本DSP硬件平台搭建
7.1概述180
7.2DSP最小系统181
7.2.1电源电路设计181
7.2.2复位和时钟电路设计184
7.2.3JTAG接口电路设计186
7.3C6x DSP与Flash存储器的接口187
7.3.1C6x EMIF接口187
7.3.2EMIF与Flash存储器接口191
7.3.3Flash编程示例195
7.4C6x DSP与SDRAM存储器的接口199
7.4.1C6x兼容的SDRAM类型199
7.4.2C6x EMIF与SDRAM接口特点及其接口信号201
7.4.3C6x EMIF的SDRAM控制寄存器203
7.4.4EMIF支持的SDRAM命令及其时序参数206
7.4.5C6713B与MT48LC4M32B2 SDRAM的接口212
7.5要点与思考214
第8章 最常见DSP硬件资源配置与应用
8.1概述215
8.2芯片支持库简介216
8.2.1CSL架构216
8.2.2CSL的命名规则和数据类型219
8.2.3CSL函数220
8.2.4CSL宏221
8.2.5CSL的资源管理222
8.2.6芯片支持库的使用223
8.3定时器和中断应用程序设计224
8.3.1C6x中断控制器224
8.3.2芯片支持库的中断模块IRQ230
8.3.3定时器233
8.3.4芯片支持库的定时器模块TIMER235
8.3.5定时器和中断应用实例238
8.4DMA和McBSP应用程序设计242
8.4.1C54xx的DMA控制器243
8.4.2芯片支持库的直接存储器访问模块DMA249
8.4.3C54xx的多通道缓冲串口McBSP252
8.4.4芯片支持库的多通道串口模块McBSP262
8.4.5DMA和McBSP应用实例265
8.5要点与思考276
第9章 让程序自己跑起来——DSP程序的引导
9.1概述278
9.2LF240x DSP程序的引导279
9.2.1引导硬件配置279
9.2.2SPI同步传输协议和数据格式281
9.2.3SCI异步传输协议和数据格式281
9.3C54x DSP程序的引导282
9.3.1引导模式选择283
9.3.2HPI引导284
9.3.3串行EEPROM引导286
9.3.4并行引导288
9.3.5标准串行引导290
9.3.6I/O 引导291
9.3.7产生引导表292
9.4C6x DSP程序的引导297
9.4.1引导控制逻辑297
9.4.2两级引导过程299
9.4.3创建二级引导应用程序300
9.4.4编写用户引导程序302
9.4.5C6x程序的烧录305
9.4.6关于用户引导程序的进一步讨论308
9.5要点与思考313
第10章 回归重点——DSP在信号处理上的应用
10.1概述315
10.2基于DSP的信号源设计316
10.2.1信号的生成与输出316
10.2.2正弦信号的产生318
10.2.3调幅信号的产生326
10.3FIR滤波器329
10.3.1FIR滤波器程序设计考虑329
10.3.2FIR滤波器在C54x DSP上的实现331
10.4IIR滤波器337
10.4.1IIR滤波器程序设计考虑337
10.4.2IIR滤波器在C67x上的实现339
10.5快速傅里叶变换(FFT)343
10.5.1FFT算法原理简介343
10.5.2FFT算法的编程考虑343
10.5.3FFT算法在C67x上的实现346
10.6要点与思考352
第11章 也许有一天你就会遇到——DSP覆盖(Overlay)程序设计
11.1概述353
11.2链接命令文件354
11.2.1MEMORY指令355
11.2.2SECTIONS指令357
11.3Overlay源程序设计363
11.3.1程序功能划分的考虑363
11.3.2设计实例364
11.3.3Overlay模块的动态加载377
11.4Overlay程序的调试和运行377
11.4.1加载Overlay代码模块到外部内存378
11.4.2Overlay代码的跟踪调试378
11.5要点与思考382
第12章 给自己的程序打个分——DSP实时数据交换技术(RTDX)
12.1概述383
12.2RTDX详解384
12.2.1RTDX的工作原理384
12.2.2RTDX用户接口385
12.2.3RTDX的COM接口387
12.2.4主机RTDX配置393
12.2.5RTDX目标库缓冲区的配置395
12.3使用RTDX工具397
12.3.1RTDX监视工具397
12.3.2RTDX诊断工具397
12.3.3日志文件查阅工具401
12.4RTDX工程实例401
12.4.1目标应用程序402
12.4.2主机客户程序405
12.4.3RTDX程序的调试409
12.4.4RTDX程序的性能考虑411
12.5RTDX应用实例412
12.5.1目标应用程序413
12.5.2主机客户程序421
12.6要点与思考424