微信扫一扫,移动浏览光盘
简介
本书以TI公司的TMS320C55x系列芯片为对象,系统地介绍了DSP芯片的基础知识和DSP应用系统的开发设计方法。全书共分9章,首先介绍了C55x的硬件结构和指令系统;其次介绍了采用汇编语言和C/C++语言进行C55x软件开发的基础知识和方法,包括CCS在内的软件开发工具的使用方法;然后,通过大量实例介绍了典型应用程序的设计,包括数据定标与溢出处理,多字整数、小数的加法、减法、乘法和除法,FIR、IIR滤波器和FFT等;最后介绍了常用C55x片上外设和C55x应用系统的硬件扩展和设计,并给出了一个完整的应用系统设计实例:数字有源抗噪声耳罩。
本书选材新颖,内容丰富,通俗易懂,实用性强,可作为电气信息类专业及其他相近专业的高年级本科生和研究生学习DSP课程的教材或参考书,也可供从事DSP应用系统开发的科技工作者或工程技术人员参考。
目录
第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芯片考虑的因素7
1.3 DSP芯片产品简介8
1.3.1 TI公司的DSP芯片概况8
1.3.2 其他公司的DSP芯片概况8
1.3.3 TMS320C5000概况9
思考题与习题10
第2章 TMS320C55x的硬件结构
2.1 TMS320C55x的总体结构11
2.1.1 C55x CPU内部总线结构11
2.1.2 C55x的CPU组成11
2.1.3 C55x存储器配置13
2.1.4 C55x外设配置13
2.2 C55x的封装和引脚功能14
2.2.1 引脚属性15
2.2.2 引脚信号定义与描述16
2.3 C55x的CPU结构20
2.3.1 存储器接口单元(M单元)21
2.3.2 指令缓冲单元(I单元)21
2.3.3 程序流单元(P单元)21
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)33
2.4.4 T寄存器(T0~T3)34
2.4.5 用作数据地址空间和I/O空间的寄存器34
2.4.6 程序流寄存器(PC、RETA、CFCT)39
2.4.7 中断管理寄存器41
2.4.8 循环控制寄存器44
2.4.9 状态寄存器ST0_5545
2.4.10 状态寄存器ST1_5548
2.4.11 状态寄存器ST2_5552
2.4.12 状态寄存器ST3_5554
2.5 存储空间和I/O空间57
2.5.1 存储器映射57
2.5.2 程序空间60
2.5.3 数据空间61
2.5.4 I/O空间62
2.6 堆栈操作62
2.6.1 数据堆栈和系统堆栈62
2.6.2 堆栈配置63
2.6.3 快返回与慢返回64
2.7 中断和复位操作65
2.7.1 中断概述65
2.7.2 中断向量与优先级66
2.7.3 可屏蔽中断68
2.7.4 不可屏蔽中断71
2.7.5 硬件复位71
2.7.6 软件复位74
思考题与习题75
第3章 TMS320C55x的指令系统
3.1 寻址方式77
3.1.1 绝对寻址方式77
3.1.2 直接寻址方式79
3.1.3 间接寻址方式82
3.1.4 数据存储器的寻址90
3.1.5 存储器映射寄存器(MMR)的寻址92
3.1.6 寄存器位的寻址92
3.1.7 I/O空间的寻址93
3.1.8 循环寻址93
3.2 TMS320C55x的指令系统95
3.2.1 算术运算指令98
3.2.2 位操作指令124
3.2.3 扩展辅助寄存器操作指令128
3.2.4 逻辑运算指令129
3.2.5 移动指令132
3.2.6 程序控制指令141
思考题 与习题145
第4章 TMS320C55x汇编语言编程
4.1 TMS320C55x软件开发流程147
4.1.1 软件开发流程147
4.1.2 软件开发工具147
4.2 TMS320C55x目标文件格式149
4.2.1 COFF文件的基本单元——段149
4.2.2 汇编器对段的处理150
4.2.3 链接器对段的处理154
4.2.4 链接器对程序的重新定位155
4.2.5 COFF文件中的符号 156
4.3 TMS320C55x汇编器157
4.3.1 汇编器概述157
4.3.2 汇编程序的运行 157
4.3.3 C55x汇编器的特点159
4.4 TMS320C55x汇编伪指令161
4.4.1 汇编伪指令161
4.4.2 宏指令163
4.5 TMS320C55x汇编语言源文件的书写格式168
4.5.1 汇编语言源文件格式 169
4.5.2 汇编语言中的常数与字符串 170
4.5.3 汇编源程序中的符号 171
4.5.4 汇编源程序中的表达式174
4.5.5 内建数学函数175
4.6 TMS320C55x链接器176
4.6.1 概述176
4.6.2 链接器的运行177
4.6.3 链接器命令文件的编写与使用 179
4.6.4 MEMORY指令 179
4.6.5 SECTIONS指令180
4.7 一个完整的TMS320C55x汇编程序182
思考题与习题183
第5章 集成开发环境(CCS)
5.1 CCS概述184
5.1.1 集成开发环境CCS概述184
5.1.2 CCS软件的安装185
5.1.3 配置CCS186
5.2 CCS的基本操作187
5.2.1 进入CCS主界面187
5.2.2 源文件的建立、打开、关闭与编辑191
5.2.3 工程项目的创建、关闭和打开195
5.2.4 工程中文件的添加或删除196
5.2.5 工程的构建(编译、链接)197
5.3 工程项目的调试199
5.3.1 程序的运行控制 200
5.3.2 断点 202
5.3.3 反汇编窗口的使用202
5.3.4 存储器窗口的使用 204
5.3.5 寄存器窗口的使用.. 206
5.3.6 观察窗口的使用 206
5.3.7 图形显示工具207
5.3.8 探测点208
5.3.9 软件仿真器分析(Simulator Analysis)212
5.3.10 符号浏览器213
思考题与习题214
第6章 C/C++语言程序设计
6.1 C55x C/C++语言概述215
6.1.1 C/C++语言概况215
6.1.2 C55x C/C++语言概况215
6.2 C55x C/C++语言编程基础216
6.2.1 数据类型216
6.2.2 关键字217
6.2.3 寄存器变量和参数218
6.2.4 asm指令218
6.2.5 Pragma指令219
6.2.6 标准ANSIC语言模式的改变(-pk、-pr和-ps选项)220
6.2.7 存储器模式220
6.2.8 存储器分配221
6.2.9 中断处理223
6.2.10 运行时间支持算法及转换程序224
6.2.11 系统初始化224
6.3 C55x C/C++编译器的使用228
6.3.1 编译器外壳程序cl55简介228
6.3.2 cl55程序的选项229
6.3.3 编译器和CCS230
6.4 C55x的C代码优化231
6.4.1 编译器的优化选项231
6.4.2 嵌入函数(Inline Function)232
6.4.3 优化C代码的主要方法233
6.5 C55x C和汇编语言混合编程239
6.5.1 C和汇编语言混合编程概述239
6.5.2 寄存器规则240
6.5.3 函数结构和调用规则242
6.5.4 C和汇编语言的接口246
思考题与习题248
第7章 应用程序设计
7.1 定标与溢出处理250
7.1.1 数的定标250
7.1.2 溢出的处理方法252
7.1.3 常用信号处理算法中的定标方法253
7.2 基础算术运算254
7.2.1 加减运算254
7.2.2 乘法运算256
7.2.3 除法运算257
7.2.4 小数乘法263
7.3 FIR滤波器264
7.3.1 FIR滤波器的基本结构265
7.3.2 FIR滤波器的C语言编程实现265
7.3.3 FIR滤波器的汇编语言编程实现267
7.4 IIR滤波器270
7.4.1 二阶IIR滤波器的结构270
7.4.2 高阶IIR滤波器的结构271
7.4.3 IIR滤波器的C语言实现273
7.4.4 IIR滤波器的汇编语言实现274
7.5 快速傅里叶变换FFT277
7.5.1 FFT算法原理277
7.5.2 库利图基算法277
7.5.3 FFT算法的实现279
思考题与习题283
第8章 C55x的片上外设
8.1 时钟发生器286
8.1.1 时钟发生器概况286
8.1.2 时钟工作模式286
8.1.3 CLKOUT输出287
8.1.4 使用方法287
8.2 通用定时器289
8.2.1 通用定时器概况289
8.2.2 工作原理289
8.2.3 定时器使用要点292
8.2.4 通用定时器应用实例292
8.3 通用I/O口(GPIO)295
8.4 外部存储器接口(EMIF)295
8.4.1 EMIF概况296
8.4.2 EMIF请求的优先级298
8.4.3 对存储器的考虑298
8.4.4 程序和数据访问299
8.4.5 EMIF中的控制寄存器303
8.5 多通道缓冲串口McBSP309
8.5.1 McBSP概述309
8.5.2 McBSP组成框图310
8.5.3 采样率发生器311
8.5.4 多通道模式选择313
8.5.5 异常处理314
8.5.6 McBSP寄存器315
8.6 模/数转换器(ADC)322
8.6.1 ADC的结构和时序322
8.6.2 ADC的寄存器323
8.6.3 实例325
8.7 看门狗定时器(Watchdog)325
8.7.1 看门狗定时器概述325
8.7.2 看门狗定时器的配置327
8.7.3 看门狗定时器的寄存器328
8.8 I2C模块330
8.8.1 I2C模块简介330
8.8.2 I2C模块工作原理330
8.8.3 I2C寄存器334
思考题与习题335
第9章 C55x应用系统的硬件设计
9.1 硬件设计概述 336
9.2 DSP系统的基本电路设计338
9.2.1 JTAG接口338
9.2.2 电源电路339
9.2.3 复位电路342
9.2.4 时钟电路343
9.3 外部存储器扩展343
9.3.1 异步存储器343
9.3.2 SBSRAM(同步突发SRAM)344
9.3.3 同步动态随机存取存储器(SDRAM)345
9.4 C55x与A/D和D/A转换器的接口348
9.4.1 TLV320AIC23B简介 349
9.4.2 AIC23B的控制寄存器352
9.4.3 AIC23B与C55x的控制接口357
9.4.4 AIC23B与C55x的数据接口358
9.4.5 AIC23B的模拟接口359
9.5 电路的抗干扰技术360
9.5.1 干扰的来源和后果361
9.5.2 系统电源抗干扰设计361
9.5.3 硬件抗干扰设计361
9.5.4 软件抗干扰设计362
9.5.5 输入输出信号抗干扰362
9.6 综合设计实例——数字式有源抗噪声耳罩363
9.6.1 概述363
9.6.2 系统工作原理和控制算法363
9.6.3 硬件设计365
9.6.4 软件设计370
思考题与习题372
参考文献...374
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芯片考虑的因素7
1.3 DSP芯片产品简介8
1.3.1 TI公司的DSP芯片概况8
1.3.2 其他公司的DSP芯片概况8
1.3.3 TMS320C5000概况9
思考题与习题10
第2章 TMS320C55x的硬件结构
2.1 TMS320C55x的总体结构11
2.1.1 C55x CPU内部总线结构11
2.1.2 C55x的CPU组成11
2.1.3 C55x存储器配置13
2.1.4 C55x外设配置13
2.2 C55x的封装和引脚功能14
2.2.1 引脚属性15
2.2.2 引脚信号定义与描述16
2.3 C55x的CPU结构20
2.3.1 存储器接口单元(M单元)21
2.3.2 指令缓冲单元(I单元)21
2.3.3 程序流单元(P单元)21
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)33
2.4.4 T寄存器(T0~T3)34
2.4.5 用作数据地址空间和I/O空间的寄存器34
2.4.6 程序流寄存器(PC、RETA、CFCT)39
2.4.7 中断管理寄存器41
2.4.8 循环控制寄存器44
2.4.9 状态寄存器ST0_5545
2.4.10 状态寄存器ST1_5548
2.4.11 状态寄存器ST2_5552
2.4.12 状态寄存器ST3_5554
2.5 存储空间和I/O空间57
2.5.1 存储器映射57
2.5.2 程序空间60
2.5.3 数据空间61
2.5.4 I/O空间62
2.6 堆栈操作62
2.6.1 数据堆栈和系统堆栈62
2.6.2 堆栈配置63
2.6.3 快返回与慢返回64
2.7 中断和复位操作65
2.7.1 中断概述65
2.7.2 中断向量与优先级66
2.7.3 可屏蔽中断68
2.7.4 不可屏蔽中断71
2.7.5 硬件复位71
2.7.6 软件复位74
思考题与习题75
第3章 TMS320C55x的指令系统
3.1 寻址方式77
3.1.1 绝对寻址方式77
3.1.2 直接寻址方式79
3.1.3 间接寻址方式82
3.1.4 数据存储器的寻址90
3.1.5 存储器映射寄存器(MMR)的寻址92
3.1.6 寄存器位的寻址92
3.1.7 I/O空间的寻址93
3.1.8 循环寻址93
3.2 TMS320C55x的指令系统95
3.2.1 算术运算指令98
3.2.2 位操作指令124
3.2.3 扩展辅助寄存器操作指令128
3.2.4 逻辑运算指令129
3.2.5 移动指令132
3.2.6 程序控制指令141
思考题 与习题145
第4章 TMS320C55x汇编语言编程
4.1 TMS320C55x软件开发流程147
4.1.1 软件开发流程147
4.1.2 软件开发工具147
4.2 TMS320C55x目标文件格式149
4.2.1 COFF文件的基本单元——段149
4.2.2 汇编器对段的处理150
4.2.3 链接器对段的处理154
4.2.4 链接器对程序的重新定位155
4.2.5 COFF文件中的符号 156
4.3 TMS320C55x汇编器157
4.3.1 汇编器概述157
4.3.2 汇编程序的运行 157
4.3.3 C55x汇编器的特点159
4.4 TMS320C55x汇编伪指令161
4.4.1 汇编伪指令161
4.4.2 宏指令163
4.5 TMS320C55x汇编语言源文件的书写格式168
4.5.1 汇编语言源文件格式 169
4.5.2 汇编语言中的常数与字符串 170
4.5.3 汇编源程序中的符号 171
4.5.4 汇编源程序中的表达式174
4.5.5 内建数学函数175
4.6 TMS320C55x链接器176
4.6.1 概述176
4.6.2 链接器的运行177
4.6.3 链接器命令文件的编写与使用 179
4.6.4 MEMORY指令 179
4.6.5 SECTIONS指令180
4.7 一个完整的TMS320C55x汇编程序182
思考题与习题183
第5章 集成开发环境(CCS)
5.1 CCS概述184
5.1.1 集成开发环境CCS概述184
5.1.2 CCS软件的安装185
5.1.3 配置CCS186
5.2 CCS的基本操作187
5.2.1 进入CCS主界面187
5.2.2 源文件的建立、打开、关闭与编辑191
5.2.3 工程项目的创建、关闭和打开195
5.2.4 工程中文件的添加或删除196
5.2.5 工程的构建(编译、链接)197
5.3 工程项目的调试199
5.3.1 程序的运行控制 200
5.3.2 断点 202
5.3.3 反汇编窗口的使用202
5.3.4 存储器窗口的使用 204
5.3.5 寄存器窗口的使用.. 206
5.3.6 观察窗口的使用 206
5.3.7 图形显示工具207
5.3.8 探测点208
5.3.9 软件仿真器分析(Simulator Analysis)212
5.3.10 符号浏览器213
思考题与习题214
第6章 C/C++语言程序设计
6.1 C55x C/C++语言概述215
6.1.1 C/C++语言概况215
6.1.2 C55x C/C++语言概况215
6.2 C55x C/C++语言编程基础216
6.2.1 数据类型216
6.2.2 关键字217
6.2.3 寄存器变量和参数218
6.2.4 asm指令218
6.2.5 Pragma指令219
6.2.6 标准ANSIC语言模式的改变(-pk、-pr和-ps选项)220
6.2.7 存储器模式220
6.2.8 存储器分配221
6.2.9 中断处理223
6.2.10 运行时间支持算法及转换程序224
6.2.11 系统初始化224
6.3 C55x C/C++编译器的使用228
6.3.1 编译器外壳程序cl55简介228
6.3.2 cl55程序的选项229
6.3.3 编译器和CCS230
6.4 C55x的C代码优化231
6.4.1 编译器的优化选项231
6.4.2 嵌入函数(Inline Function)232
6.4.3 优化C代码的主要方法233
6.5 C55x C和汇编语言混合编程239
6.5.1 C和汇编语言混合编程概述239
6.5.2 寄存器规则240
6.5.3 函数结构和调用规则242
6.5.4 C和汇编语言的接口246
思考题与习题248
第7章 应用程序设计
7.1 定标与溢出处理250
7.1.1 数的定标250
7.1.2 溢出的处理方法252
7.1.3 常用信号处理算法中的定标方法253
7.2 基础算术运算254
7.2.1 加减运算254
7.2.2 乘法运算256
7.2.3 除法运算257
7.2.4 小数乘法263
7.3 FIR滤波器264
7.3.1 FIR滤波器的基本结构265
7.3.2 FIR滤波器的C语言编程实现265
7.3.3 FIR滤波器的汇编语言编程实现267
7.4 IIR滤波器270
7.4.1 二阶IIR滤波器的结构270
7.4.2 高阶IIR滤波器的结构271
7.4.3 IIR滤波器的C语言实现273
7.4.4 IIR滤波器的汇编语言实现274
7.5 快速傅里叶变换FFT277
7.5.1 FFT算法原理277
7.5.2 库利图基算法277
7.5.3 FFT算法的实现279
思考题与习题283
第8章 C55x的片上外设
8.1 时钟发生器286
8.1.1 时钟发生器概况286
8.1.2 时钟工作模式286
8.1.3 CLKOUT输出287
8.1.4 使用方法287
8.2 通用定时器289
8.2.1 通用定时器概况289
8.2.2 工作原理289
8.2.3 定时器使用要点292
8.2.4 通用定时器应用实例292
8.3 通用I/O口(GPIO)295
8.4 外部存储器接口(EMIF)295
8.4.1 EMIF概况296
8.4.2 EMIF请求的优先级298
8.4.3 对存储器的考虑298
8.4.4 程序和数据访问299
8.4.5 EMIF中的控制寄存器303
8.5 多通道缓冲串口McBSP309
8.5.1 McBSP概述309
8.5.2 McBSP组成框图310
8.5.3 采样率发生器311
8.5.4 多通道模式选择313
8.5.5 异常处理314
8.5.6 McBSP寄存器315
8.6 模/数转换器(ADC)322
8.6.1 ADC的结构和时序322
8.6.2 ADC的寄存器323
8.6.3 实例325
8.7 看门狗定时器(Watchdog)325
8.7.1 看门狗定时器概述325
8.7.2 看门狗定时器的配置327
8.7.3 看门狗定时器的寄存器328
8.8 I2C模块330
8.8.1 I2C模块简介330
8.8.2 I2C模块工作原理330
8.8.3 I2C寄存器334
思考题与习题335
第9章 C55x应用系统的硬件设计
9.1 硬件设计概述 336
9.2 DSP系统的基本电路设计338
9.2.1 JTAG接口338
9.2.2 电源电路339
9.2.3 复位电路342
9.2.4 时钟电路343
9.3 外部存储器扩展343
9.3.1 异步存储器343
9.3.2 SBSRAM(同步突发SRAM)344
9.3.3 同步动态随机存取存储器(SDRAM)345
9.4 C55x与A/D和D/A转换器的接口348
9.4.1 TLV320AIC23B简介 349
9.4.2 AIC23B的控制寄存器352
9.4.3 AIC23B与C55x的控制接口357
9.4.4 AIC23B与C55x的数据接口358
9.4.5 AIC23B的模拟接口359
9.5 电路的抗干扰技术360
9.5.1 干扰的来源和后果361
9.5.2 系统电源抗干扰设计361
9.5.3 硬件抗干扰设计361
9.5.4 软件抗干扰设计362
9.5.5 输入输出信号抗干扰362
9.6 综合设计实例——数字式有源抗噪声耳罩363
9.6.1 概述363
9.6.2 系统工作原理和控制算法363
9.6.3 硬件设计365
9.6.4 软件设计370
思考题与习题372
参考文献...374
编著还有:卜凡亮、黄鹤松、张仁彦
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×