数字信号处理器(DSP)是专为数字信号处理而设计的大规税佑成芯 片,是一种尚速、实时、可编程的嵌人式微处理器。《DSP原理与应用教程(第二版)/普通高等教育“十二五”规划教材》以T1公司的TMS320C54x系列DSP为例,洋细介绍DSP的硬件结构和软件设计,包 括总线结构、UMJ、流水线操作、存储器映像、片内外鬧设铬、指令系统 及公共目标文件格式等内荇;详细讨论用汇编语言和C 语言进行软件设 计的方法;从应用角度出发,对CCS集成开发环境进行介绍;详细分析DSP综合应用系统的设计过程.给出典型的DSP硬件设计及接口技术,并对在DSP系统设计中出观的主要问题和解决方法进行讨论;最后,通过一个综合应用系统的设计实例,介绍DSP的开发设计全过程。此外, 还对TMS320C55xDSP进行了简要介绍。
第二版前言
第一版前言
第1章 DSP技术概要
1.1 DSP系统和芯片的结构特点
1.2 DSP的发展概况和趋势
1.3 DSP芯片的分类、性能、命名规则及其应用
思考题与习题
第2章 TMS320CS4X硬件结构及原理
2.1 芯片内部结构及特点
2.2 C54x的内部多总线结构
2.3 C54x的中央处理单元(CPU)
2.4 C54x的存储器结构
2.5 复位操作及省电方式
2.6 中断系统
2.7 流水线
2.8 引脚及其功能
思考题与习题
第3章 汇编语言指令系统
3.1 C54x汇编语言指令集介绍
3.2 寻址方式
3.3 C54x系列DSP的指令系统
思考题与习题
第4章 汇编语言程序设计
4.1 C54x的软件开发过程
4.2 公共目标文件格式COFF
4.3 汇编器的伪指令
4.4 C54x汇编语言的有关知识
4.5 汇编语言程序设计
思考题与习题
第5章 CS4x高级C语言程序设计
5.1 C54xC语言介绍
5.2 C54xC语言编程
5.3 C54xC代码优化
思考题与习题
第6章 eXpressDSP实时软件开发技术及CC"应用
6.1 eXpressDSP 技术简介
6.2 DSP开发流程
6.3 CCS安装及目标和主机设置
6.4 DSP使用举例
思考题与习题
第7章 TMS320CS4X片内外设及其应用
7.1 通用 I/O 引脚(GPIO)
7.2 定时器
7.3 主机接口
7.4 直接存储器访问DMA
7.5 多通道缓冲串行口
思考题与习题
第8章 TMS320CS4X硬件设计及接口技术
8.1 基于C54x的DSP最小系统设计
8.2 C54x外部总线结构
8.3 存储器扩展
8.4 A/D、D/A与DSP的接口技术
8.5 Bootloader功能的实现
思考题与习题
第9章 CS4x综合应用系统设计
9.1 数字信号处理算法的DSP实现
9.2 C54x应用系统设计实例
9.3 DSP系统的调试与抗干扰措施
思考题与习题
第10章 TMS320CSSX系列DSP简介
10.1 C55x与C54x的主要区别
10.2 TMS320C5000应用领域及发展方向
思考题与习题
参考文献
附录
附录A TMS320C54x系列DSP芯片汇总表
附录B TMS320C54xDSP的寄存器符号、名称及地址
附录C TMS320VC5402头文件
附录D 部分思考题与习题答案
《DSP原理与应用教程(第二版)/普通高等教育“十二五”规划教材》:
第1章 DSP技术概要
随着计算机、信息技术和大规模集成电路的飞速发展,数字信号处理技术已经形成一门独立的学科系统,并且在理论和实现技术两个方面都获得了高速的发展。数字信号处理①igital Signal Processing,DSR是采用数值计算的方法对信号进行处理的一门学科。它研究的是怎样对模拟信号进行采样,将其转换为数字序列,然后对其进行变换、滤波、增强、压缩及识别等加工处理,从而提取有用信息并进行应用的理论和算法。而数字信号处理器①igital Signal Processors,DSR则是一种用于数字信号处理的可编程微处理器,它的诞生与快速发展,使各种数字信号处理算法得以实时实现,为数字信号处理的研究和应用打开了新局面,提供了低成本的实际工作环境和应用平台,推动了新的理论和应用领域的发展。目前,DSP技术在通信、航空、航天、雷达、工业控制、医疗、网络及家用电器等各个领域都得到了广泛应用。
1.1 DSP系统和芯片的结构特点
数字信号处理围绕着理论、实现和应用这三个方面得到了迅速发展。在理论上,数字信号处理是把经典理论(如数学、信号与系统分析等)作为基础,将快速算法和各类滤波技术等应用于各个研究领域,包括图像处理、语音处理和音频处理、信息的编解码、信号的调制和解调、移动通信及各种智能控制等。在实现上是将信号处理的理论应用于某一具体的任务中。一般根据任务的不同可分为软件实现和硬件实现,软件实现是指在通用的计算机上用软件来仿真和研究某个算法,这种方法速度较慢,无法实时实现;硬件实现是指采用专用DSP芯片、通用DSP芯片或者其他微处理器构成的应用系统去高速实时地完成数字信号处理的任务。
1.1.1 DSP系统的基本结构
DSP系统的基本结构如图1-1所示。通过传感器将非电物理量转换为模拟电信号。预处理一般包括放大器和滤波器两部分,信号经过放大器的放大变为具有一定幅值的模拟输入信号,而滤波器(低通或带通)的作用则是滤除输入模拟信号中的无用频率成分和噪声,避免采样后发生频谱混叠失真。A/D转换器的任务是在满足奈奎斯特采样定理的条件下,将模拟信号转换为数字信号。DSP负责对输入数字信号进行某些算法,如卷积、相关、滤波或快速傅里叶变换(FFT)等。经过处理之后的数字信号再进行D/A 转换,由于转换输出的模拟信号中含有许多高频成分,因此要通过重建滤波器滤除这些高频信号,以获得平滑的模拟输出信号。
实际上,为了完成数字信号处理的任务,除了图1-1所示的DSP基本结构之外,还必须在DSP系统中配置人机接口、存储器、通信接口、测试接口和电源设备等。
1.1.2 DSP芯片的结构特点
什么是数字信号处理器(DSP)? DSP是专为实时数字信号处理而设计的大规模集成可编程微处理器。那么,DSP究竟有哪些结构特点特别适合于数字信号处理呢?为了搞清楚这个问题,我们先来分析下面列出的数字信号处理的典型运算类型。
(1)求两序列信号的卷积。
(2)求两序列信号的相关函数。
(3)求序列的能量。
(4)数字滤波器的数学表达式为
(5)对长度为N的输人序列进行快速傅里叶变换的公式为
通过这些典型算法可以看出,数字信号处理的基本运算类型是乘法-累加(MAC)运算,且在运算过程中存在着大量的循环重复操作。因此,要提高数字信号处理的速度,达到实时应用的要求,关键在于提高MAC算法及循环重复操作的速度。这就要求有一个硬件平台及软件开发环境,通过它可以快速、高效、实时地完成数字信号处理任务。而数字信号处理器就是这样一个专用的实时处理平台。它具有下列一些特别适合于数字信号处理的结构特点。
1.采用改进型哈佛结构
计算机的总线结构分为:冯?诺依曼(von Neumann)结构和哈佛(Harvard)结构。
多数微处理器和单片机采用冯?诺依曼结构,如图1-2所示。在这种结构中只含一条内部地址总线和数据总线,CPU只能使用同一条地址总线去分时传送程序地址和数
据地址,使用同一条数据总线去分别读取程序代码或进行数据的读写访问,因此,对总线是分时使用,对指令的执行也只能串行进行,而不能并行进行,因而处理速度慢,数据吞吐量低。
哈佛总线结构如图1-3(a)所示,程序存储器和数据存储器是分开的,有多条独立的程序总线和数据总线,其中PAB、PDB和PCB分别是程序地址总线、程序数据总线和程序控制总线,DAB、DDB和DCB分别是数据地址总线、数据数据总线和数据控制总线,它们可同时对程序和数据进行寻址及读写,因此,使指令的执行和对数据的访问能够并行进行,使CPU的运行速度和处理能力都得以大幅度提高。
DSP采用的是改进型哈佛总线结构,如图1-3(b)所示。其改进之处是:在数据总线和程序总线之间有局部的交叉连接,也就是说,在程序空间和数据空间之间有相互访问的能力,从而增加了存储器访问的灵活性,提高了 DSP的运行效率。DSP的哈佛总线改进之处主要体现在下列3点。
(1)片内RAM可以映象至数据空间,也可以映象至程序空间。当片内RAM被映象至程序空间时,意味着可以利用程序总线来访问数据。
(2)片内ROM可以映象至程序空间,也可以映象至数据空间。当片内ROM被映象至数据空间时,就可利用数据总线去读取程序空间。
(3)具有根装载(bootloader)功能,允许将片外的指令代码调至片内数据存储器,供OG零等待运行。
以TI公司的TMS320C2000系列DSP为例,其内部总线如图1-4所示。CPU内含6个16位的内部总线,它们是相互独立的程序读写地址总线(PAB)、程序读数据总线(PRDB)、数据读地址总线(DRAB)、数据写地址总线(DWAB)、数据读数据总线(DRDB)和数据写(或程序写)数据总线(DWEB),CPU可在同一机器周期内使用这6个总线同时完成指令代码的读取和数存的读、写访问。另外,C2000的片内DARAM和 SARAM可以映象至数据/程序空间,片内Flash也可映象至程序/数据空间,体现了改进型哈佛总线结构的特点。
2.流水线操作
CPU执行一条指令通常分为4个阶段。
⑴ F:取指(fetch)。
⑵ D:译码(decode)。
(3)O:取操作数(operand)。
(4)X:执行(execute)。
图1:表示了冯?诺依曼结构的CPU执行指令的过程。显然,CPU是在完成一条指令的全部4个操作阶段后再去执行另一条指令的,从时间上看是一种串行执行的过程,因此需要花费较多的CPU时钟周期。
下面讨论DSP所采用的流水线操作。
所谓流水线操作就是将一条指令的不同阶段分配在连续的几个周期上,通过不同的硬件去完成指令的不同执行阶段(称为级)。例如,当取指硬件已经完成了取指任务,并将指令N送入了译码硬件后,它就可以去取下一条指令N+1,而译码硬件则同时对指令N进行译码。
一个4级流水线的示意图如图1-6所示。假设指令1的4个操作阶段分别是F1^ D1!01和E1;指令2的4个操作阶段分别是F2! D2!02和E2;依次类推。那么,从图1-6中可以看到,在时钟周期1,指令1取指(F1);在时钟周期2,指令1译码(D1),而指令2取指(F2) 在时钟周期4,流水线中就会有4条指令处于4个不同阶段,其中,指令1已进入执行阶段E1,指令2在取操作数阶段02,指令3处于译码阶段D3,而指令4刚进入取指操作F4。可见,虽然就一条指令而言,似乎要用4个时钟周期才能完成全部操作,但从多条指令的角度看,则可认为每条指令的运行时间是单周期。这样,就使指令的运行速度得到了很大提高。当然,这样做所付出的代价是:必须有相应的硬件支持这种多级流水线操作,且流水线的级数越高,对硬件的要求也越高。
在TI的TMS320系列DSP中,TMS320F24x系列采用4级流水线;TMS320F28x 系列采用8级流水线;TMS320C54x系列采用6级流水线;TMS320C6000系列定点芯片采用11级流水线,浮点芯片则采用16级流水线。
3.片内集成有硬件乘法器和乘加单元
一般微处理器中没有硬件乘法器,在做乘法运算时,需要调用内部运算序列去执行一系列相加和移位运算才能完成,所以要花费多个时钟周期。例如,MCS-51系列单片机完成一次乘法操作需要4个机器周期,是其指令集里执行时间最长的指令之一。而 DSP为了适应大批量乘法运算的需要,在其CPU内部集成了硬件乘法器和乘加单元,从硬件结构上为高速完成卷积、相关、FFT及数字滤波等信号处理算法提供了基础。例如,TMS320C54x系列片内集成有一个17位X 17位的硬件乘法器和40位的加法器,可以高速完成乘法-累加运算(MAC) TMS320C6000系列片内有2个硬件乘法器,支持在单周期内完成16位X 16位、16位X32位的乘法,并支持双16位X 16位和4个8位 X 8位的乘法运算。
4.功能强大的CPU结构
除了上面提到的硬件乘法器和乘加单元,DSP的CPU —般还包括:算术逻辑运算单元(ALU)、累加器、加法器、桶型移位器、程序地址产生和数据地址产生等部分。
DSP的累加器有很强的操作能力,一般会配置多个累加器,或是集成有超长字结构的寄存器组。例如,TMS320C54x的累加器为40位,并且有2个累加器ACCA和 ACCB。TMS320C64x有64个32位的通用寄存器,每一个寄存器都可作为累加器来使用,并可被配置成寄存器对,用来进行64位数据的访问。
桶型移位器用来实现数据的移位,包括算术左移、右移和逻辑左移、右移等。通过它能够方便地进行定点定标或其他的移位操作。
DSP的CPU通常含有一套独立的程序地址产生逻辑和2套数据地址产生逻辑,可以同时产生一个程序取指地址和2个数据访问地址,极大地提高了 CPU的寻址能力。例如,TMS320C54x有2个辅助算术逻辑单元ARAUO和ARAU1及8个辅助寄存器 ARO?AR7,可同时产生两个数据地址供CPU使用。
TMS320C6000系列DSP的CPU与其他微处理器有很大不同,它采用了双数据通道和8个功能单元的结构,如图1-7所示。这种特殊结构支持CPU在单周期内最多可同时执行8条指令,具有强大的超长指令字(VLIW)操作能力。
5.硬件循环重复机制
许多DSP芯片具有重复操作指令和支持重复操作的专用硬件,通过它们可以自动地重复执行单条指令或一段指令。例如,TMS320C54x中有重复计数器(RPTC)和重复指令(RPT),当执行指令RPTN时,CPU会将重复次数N赋给RPTC,则紧接RPTN后面的那条指令将被重复执行NQ1次。每重复执行一次,RPTC的数据会自动减1,直至减至零为止。这样,就可以通过硬件自动完成循环操作的过程。而且,进入重复机制的指令会自动变为单周期执行,大大减少了执行时间。
……