描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787121198748
本书系统性强,实验项目丰富,具有较强的实用性。全书将DSP芯片原理、结构和系统设计、实验融为一体,既方便读者掌握DSP的基础知识,也有利于读者进行DSP系统的项目开发。
DSP芯片已成为现代信息处理技术的重要器件。本书以TMS320F2812为例介绍DSP的基本特点、硬件结构、中断系统和指令系统;详细介绍CCS开发环境和C语言在DSP芯片的编写特点和方法,以及芯片的外设接口模块。本书还介绍了DSP实验系统的电路设计,对10个应用实例进行详细分析,给出硬件设计电路图和C语言程序代码,并标有详细的程序说明,为读者快速应用DSP的知识进行应用开发和教学实验提供方便。本书系统性强,实验项目丰富,具有较强的实用性。全书将DSP芯片原理、结构和系统设计、实验融为一体,既方便读者掌握DSP的基础知识,也有利于读者进行DSP系统的项目开发。本书可以作为高等学校电类各专业的本科生和研究生的教材,同时也可作为DSP开发应用人员的参考书。本书免费提供C语言程序代码,读者可登录华信教育资源网()下载使用。
第1章 绪论
1.1 DSP的特点
1.2 DSP芯片分类
1.2.1 按基础特性分类
1.2.2 按用途分类
1.2.3 按数据格式分类
1.3 DSP的性能指标及选型
1.3.1 DSP的性能指标
1.3.2 DSP的选型
1.4 TI及其他公司的DSP
1.5 DSP开发方案的设计与选择
1.5.1 DSP的功能需求分析
1.5.2 算法的验证与模拟
1.5.3 DSP芯片及其开发工具的选择
1.5.4 DSP系统的软/硬件设计
1.5.5 系统的软/硬件调试
1.6 DSP软件开发的流程
1.7 DSP的应用和前景
第2章 TMS320F2812内部结构
2.1 TMS320F2812中央处理单元
2.1.1 TMS320F2812 CPU内部结构
2.1.2 TMS320F2812 CPU内部寄存器
2.1.3 TMS320F2812总线结构
2.2 TMS320F2812的存储器配置
2.2.1 TMS320F2812存储器的类型及映射空间
2.2.2 TMS320F2812的片内存储器配置
2.2.3 TMS320F2812外部存储器扩展及其接口
2.2.4 TMS320F2812 FLASH存储器
2.3 TMS320F2812的引导加载方式
2.3.1 Boot ROM基本原理
2.3.2 引导加载程序BootLoader的工作原理
2.4 TMS320F2812的时钟及系统控制
2.4.1 TMS320F2812系统时钟寄存器组
2.4.2 TMS320F2812晶体振荡器OSC与锁相环PLL时钟模块
2.4.3 TMS320F2812 CPU定时器
2.4.4 TMS320F2812看门狗定时器模块及其应用
2.4.5 TMS320F2812的低功耗模式
第3章 TMS320F2812中断系统
3.1 TMS320F2812中断的基本原理与结构
3.2 PIE中断扩展
3.3 中断向量表
3.3.1 中断向量的分配
3.3.2 中断向量表的映射
3.4 可屏蔽中断
3.5 非屏蔽中断
3.6 中断服务程序
第4章 TMS320F2812指令系统与汇编程序设计
4.1 寻址方式
4.1.1 寻址方式选择位(AMODE)
4.1.2 立即寻址方式
4.1.3 寄存器寻址方式
4.1.4 直接寻址方式
4.1.5 间接寻址方式
4.1.6 堆栈寻址方式
4.1.7 其他寻址方式
4.2 指令系统
4.2.1 指令系统概述
4.2.2 TMS320F2812指令系统
4.2.3 指令系统列表
4.2.4 TMS320F2812指令集中部分指令简介
4.3 汇编语言
4.3.1 汇编语言格式
4.3.2 伪指令
4.3.3 通用目标文件格式
4.3.4 链接器与链接命令文件
第5章 C语言程序编写基础
5.1 C编译器概述
5.1.1 C语言的主要特征
5.1.2 C编译器输出文件
5.1.3 C编译器接口
5.1.4 C编译器操作
5.1.5 C编译器工具
5.2 C语言编程基础
5.2.1 C语言数据类型
5.2.2 C语言关键词
5.2.3 TMS320F2812伪指令
5.2.4 使用C语言编写DSP程序的注意事项
5.2.5 C语言开发中工程模板文件
5.2.6 传统的#define方法
5.3 C语言和汇编语言的混合编程方法
5.3.1 混合编程概述
5.3.2 C/C++语言与汇编混合编程
5.4 C程序举例
第6章 DSP系统开发环境CCS
6.1 CCS的安装与配置
6.1.1 CCS 3.3系统的安装
6.1.2 系统配置
6.2 初识CCS
6.2.1 CCS的组成
6.2.2 CCS的集成开发环境功能说明
6.2.3 CCS的常用工具
6.2.4 简单程序开发流程
6.3 CCS的C语言程序调试实例
第7章 通用输入/输出及事件管理模块
7.1 通用输入/输出(GPIO)多路复用器
7.1.1 GPIO多路复用器工作原理
7.1.2 GPIO多路复用器的寄存器
7.2 事件管理器(EV)模块
7.2.1 通用定时器(GPT)
7.2.2 全比较单元和脉宽调制电路(PWM)
7.2.3 捕获单元
7.2.4 正交编码脉冲(QEP)电路
7.2.5 事件管理器(EV)模块的中断
第8章 模/数转换模块与串行接口模块
8.1 模/数转换器(ADC)
8.1.1 ADC模块的结构特征
8.1.2 自动排序器的工作原理
8.1.3 ADC模块的工作方式
8.1.4 ADC模块中的寄存器
8.2 串行通信接口(SCI)模块
8.2.1 SCI模块的结构特征
8.2.2 多处理器和异步通信模式
8.2.3 SCI的传输方式
8.2.4 SCI中断
8.2.5 SCI波特率计算
8.2.6 SCI的FIFO
8.2.7 SCI模块寄存器
8.3 串行外设接口(SPI)模块
8.3.1 串行外设接口(SPI)的结构和特点
8.3.2 SPI的操作
8.3.3 SPI的中断
8.3.4 SPI的配置
8.3.5 SPI FIFO说明
8.3.6 SPI的初始化
8.3.7 SPI模块的寄存器
第9章 eCAN总线及F2812的eCAN模块
9.1 F2812的eCAN模块结构特点
9.2 F2812的eCAN模块消息邮箱的结构
9.3 F2812的eCAN模块的初始化
9.4 F2812的eCAN模块的中断
9.5 F2812的eCAN模块的寄存器
第10章 DSP实验开发系统设计及实验指导
10.1 DSP实验开发系统设计
10.1.1 DSP小系统板设计
10.1.2 SCI串行通信模块设计
10.1.3 CAN总线接口
10.1.4 语音模块设计
10.1.5 电机控制模块设计
10.1.6 模拟信号产生模块设计
10.1.7 D/A转换模块设计
10.1.8 键盘-显示模块设计
10.1.9 DSP实验系统使用说明
10.2 实验一 DSP实验装置和CCS的使用实验
10.3 实验二 I/O(输入/输出)端口实验
10.4 实验三 事件捕获实验
10.5 实验四 PWM电路控制步进电机转动
10.6 实验五 A/D-D/A转换实验
10.7 实验六 定时器触发ADC转换实验
10.8 实验七 SCI异步串行通信实验
10.9 实验八 SPI串行同步模块双机通信实验
10.10 实验九 语音信号传输实验
10.11 实验十 eCAN邮箱自收发模式通信实验
附录A
附录B
参考文献
前 言
TI2000系列DSP不仅具有高速数字信号处理功能,又具有实时性强、低功耗、高集成度等嵌入式微计算机的特点,因此在通信、航空航天、工业控制、医疗、国防、汽车等应用领域得到很好的应用。
为了适应DSP技术的发展,满足教学和信息技术发展需求,让更多的本科生、研究生和工程技术人员能尽快学习并掌握DSP应用技术,促进我国DSP技术水平的不断提高,在广泛听取学生和同行意见的基础上,作者依据近几年为本科生和研究生开设“DSP原理及应用”课程的积累,参考国内外的教材和文献资料,在《TMS320C2000系列DSP原理及实用技术》一书的基础上,撰写了本书。
TMS320C28x系列芯片具有很好的性能价格比,以及所具有的低成本、低功耗、高性能和高外设集成度、高A/D转换速度,在工业控制系统中具有很好的应用前景。TMS320F2812数字信号处理器是TI公司推出的C2000系列中性能优良且广泛应用的芯片之一,几乎覆盖了该系列DSP的所有特点。全书共分10章:首先介绍业界广泛使用的DSP的性能特点、采用的先进技术、性能指标、发展趋势和使用前景等,然后对TMS320F2812进行重点讲述,内容包括F2812的原理和结构、存储器配置、中断系统结构及PIE外设中断扩展的管理机制;对汇编语言指令系统进行简要介绍,重点介绍CCS开发环境和C语言在DSP芯片的编写特点和方法、F2812的外设接口模块原理及应用方法,并在此基础上通过对大量应用实例的设计,深入浅出地给出实验指导以及难点分析、硬件设计电路图和程序源代码,源代码标有详细的程序说明。实验难度由浅入深,使读者能够结合实际应用尽快掌握DSP的原理和应用系统的设计方法。
书中所介绍的DSP实验系统,是作者2004年研制并连续使用了8年,期间对小系统板(基于TMS320LF2407芯片)进行了升级和更换(基于TMS320F2812芯片)。实验系统采用核心处理板可插拔、整体结构模块化的设计,充分对DSP芯片可寻址存储器空间和外设模块进行了扩展,扩展的模块接口采用插孔引出方式,小系统核心板和外围电路可分离;各模块之间独立工作且互不影响;开放的硬件接口以插孔形式提供给使用者,使其能够自行设计硬件电路,以组成各种应用系统;书中提供的程序代码均在此实验开发系统上调试通过。
本书对电类专业的大学生将是一本理论和实践教学为一体的完整的教材;对从事DSP应用设计的工程师将是一本从入门到软/硬件设计的系统的参考书。
本书由何苏勤主编,并编写了第7、8、10章;韩阳编写了第2、3、4、5、9章,张杰编写了第1、6章。詹明静、单惠喻、赵越、王小庆参加了书稿的录入、图表制作以及程序的调试工作,并参与了DSP实验开发系统的设计工作;霍玲军参加了书稿的录入和图表制作工作。本书得到北京化工大学和美国德州仪器公司大学计划项目的支持。在此一并向他们表示衷心的感谢。本书在编写的过程中参考了许多优秀的DSP技术书籍,在此向这些书籍的作者表示真诚的谢意。
本书免费提供C语言程序代码,读者可登录华信教育资源网(www.hxedu.com.cn)下载使用。
由于DSP芯片发展迅速及编者水平和掌握的资料有限,书中不当和错误之处在所难免,恳请广大读者批评指正。
2.1 TMS320F2812中央处理单元
2.1.1 TMS320F2812CPU内部结构
TMS320F2812中包含一个高性能低功耗的32位定点CPU内核,它主要负责DSP内部指令的控制和数据的处理,主要由CPU内部寄存器、总线及相应控制逻辑组成:
(1)32位中央算术逻辑单元(CALU)。
(2)32位累加器(ACC)。
(3)能进行16bit×16bit或32bit×32bit定点乘法运算的硬件乘法器(MUL)。
(4)桶形移位器。
(5)辅助寄存器算术单元(ARAU)及地址产生逻辑。
(6)程序地址产生器及控制逻辑。
除以上几个主要部分外,该控制器还包含如指令队列、指令译码逻辑、中断处理逻辑等控制单元。
TMS320F2812CPU主要包括以下主要部分:
1.乘法器部分
TMS320F2812乘法器部分的组成:
(1)乘法器,它将临时寄存器的值与来自程序存储器或数据存储器的被乘数相乘。
(2)32位的临时寄存器(TREG),其中存放一个乘数。
(3)64位的乘积存储器(PREG),存放乘法运算的结果。
(4)乘积移位器,使乘积寄存器的值在送到中央算术逻辑单元或数据存储器前进行移位定标。
乘法器可以接收以下两个32位的数据输入:
(1)数据存储器或程序存储器提供一个数据输入(被乘数)。
(2)临时寄存器TREG提供另一个输入(乘数),在乘法之前把读数据总线的数据值加载到临时寄存器。
乘积移位器提供四种形式的移位方式,由状态寄存器ST1中的乘积移位模式位(PM)确定,乘积移位器将乘积结果送到中央算术逻辑单元或由指令SPH(SPL)将乘积移位器的高字位(低字位)送到数据存储器。
2.中央算术逻辑部分
中央算术逻辑部分的两个输入包括:
(1)累加器ACC(所有的加/减法指令都隐含累加器作为一个操作数)。
(2)输入来自输入移位器的输出或乘积移位器的输出。
32位中央算术逻辑部分完成算术和逻辑运算,主要包括:
(1)32位中央算术逻辑单元(CALU)。实现算术、逻辑运算。
(2)32位累加器(ACC)。接收来自CALU的输出,并且可以根据进位位(C)的值来实现移位,ACCH和ACCL分别是累加器的高字位和低字位。
与累加器相关的状态位位于状态寄存器ST0、ST1中,主要有:
(1)进位位C。
(2)溢出方式位OVM。
(3)溢出标志位OV。
(4)测试/控制标志位TC。
3.输出移位器
输出移位器将累加器的高位字和低位字在输入数据存储器之前进行移位。其基本原理是输出移位器将累加器的内容复制过来,并可对其高字位或低字位进行移位操作,然后送到16位的数据写总线上,写入数据存储器中。输出移位器可以左移0~7位,移位时数据高位丢失,低位补0,然后经指令SACH或SACL将移位器中的高位字或低位字保存到数据存储器,而累加器的内容保持不变。
4.辅助寄存器算术单元(ARAU)
TMS320F2812的中央处理单元(CPU)中还有一个与中央算术逻辑单元(CALU)无关的辅助寄存器算术单元(ARAU),其主要功能是与中央算术逻辑单元(CALU)中进行的操作并行地实现对辅助寄存器的算术运算。TMS320F2812CPU一共提供8个32位的辅助寄存器:XAR0~XAR7,可以作为辅助寄存器使用,作为地址指针指向TMS320F2812存储器。
辅助寄存器XAR0~XAR7的低16位AR0~AR7可用作16位比较的通用目的寄存器或循环控制寄存器,而在访问低16位时其高16位是否改变将取决于所使用的指令。高16位只能作为辅助寄存器XAR0~XAR7的一部分进行访问而不能单独访问。
辅助寄存器XAR0~XAR7除了被用作数据存储器地址外,还可以用作其他用途:
(1)将辅助寄存器作为数据暂存单元。
(2)可以根据需要将辅助寄存器的内容加或减。
(3)使用CMPR指令,利用辅助寄存器支持条件转移、调用和返回。CMPR指令可将AR0的内容和当前AR的内容进行比较,并将比较结果存至状态寄存器ST1中的测试/控制位TC。
综上所述,TMS320F2812的辅助寄存器算术单元(ARAU)可以完成以下运算:
(1)将辅助寄存器的内容增/减1,或者增/减一个变址量(取决于间接寻址的指令)。
(2)将辅助寄存器的内容增/减一常数(如ADRK、SBRK指令),该常数值通常是指令字的低8位。
(3)将AR0的内容与当前AR的内容进行比较(如CMPR指令),并把结果经数据写数据总线(DWDB)存入到状态寄存器ST1的测试/控制位(TC)。
辅助寄存器算术单元一般在流水线的译码阶段进行它的算术运算,这样能在下条指令译码之前产生地址。但是在处理NORM指令时,是在流水线的执行阶段修改辅助寄存器或辅助寄存器指针的。
2.1.2TMS320F2812CPU内部寄存器
TMS320F2812CPU内部的核心单元包含乘法部分、中央算术逻辑部分、移位部分、辅助寄存器算术单元等。其中,寄存器又成为它们的重要组成元素。寄存器既可以暂存算术、逻辑运算操作数,也可以存放运算结果;此外,还可以作为地址指针等特殊功能使用。本节主要介绍TMS320F2812内部主要寄存器及其主要功能。
1.累加器(ACC)
功能:除了部分直接对寄存器和存储器单元操作外,累加器用于存放ALU的操作结果,其结果送往结果总线。累加器支持32位的数据传送运算、算术运算、比较运算,同时可以存放32位乘法运算的结果。
累加器除了能保存运算结果,还可以作为一个独立的CPU内32位寄存器使用,它的32位可以同时分解为2个逻辑独立的16位寄存器AH(高16位)和AL(低16位),这两个寄存器可以独立访问。
累加器(ACC)的独立访问寄存器结构如图2.2所示。
图2.2累加器(ACC)的独立访问寄存器结构
与累加器相关联的的状态位有溢出模式位、溢出标志位、溢出计数位、进位标志位、符号扩展模式位、零标志位、负标志位、测试/控制标志位。
例2.1累加器操作指令
ABSACC;对累加器中的数据求值并返回
ADDAL,DAT1;DAT1为一个16位存储单元,将其数据与16位寄存器AL相加
2.乘法单元被乘数寄存器XT和结果寄存器P
功能:乘法单元被乘数寄存器XT用于存放乘法运算的操作数;结果寄存器P用于存放乘法运算的结果。
TMS320F2812中的硬件乘法器(MUL)能进行16bit×16bit或32bit×32bit定点乘法运算。其中,XT是一个32位的被乘数寄存器,它可以分解成2个16位的逻辑独立的寄存器TL和T来单独访问(T:TL),其中高16位寄存器T和低16位寄存器TL,用于硬件乘法器进行16bit×16bit的乘法运算。其中,寄存器T存放16位的被乘数。
另外,P是一个32位的乘积结果寄存器,也可以分解为2个16位独立的寄存器单独访问(PH:PL),其中高16位寄存器PH和低16位寄存器PL,可以分别作为16位的数据寄存器使用。乘法单元被乘数寄存器XT和结果寄存器P的结构分别如图2.3和图2.4所示。
……
评论
还没有评论。