文档库 最新最全的文档下载
当前位置:文档库 › DSP复习资料

DSP复习资料

一DSP技术及应用

1

DSP技术及应用--- 课程简介

三. 这门课在知识体系中的位置

(横轴:可编程能力纵轴:性能)

ASIs(Application Specific Integrated Circuit):专用集成电路

FPGA(Field-Programmable Gate Array):现场可编程逻辑门阵列

X86processors:通用CPU处理器

2这门课与哪些知识有关

与应用相关的理论:信号与系统、数字信号处理、通信原理、语音信号处理、自动控制原理等

DSP开发环境嵌入式开发方法

DSP指令+汇编指令汇编语言

C语言程序设计

DSP芯片结构原理微机原理

电路设计数电、模电、HDL…

二数字信号处理和DSP系统

1. 实时数字信号处理技术的发展

20世纪60年代以来,随着信息技术的不断进步,数字信号处理技术应运而生并得到迅速发展。80年代以前,由于方法的限制,数字信号处理技术处于理论研究阶段,还得不到广泛的应用。在此阶段,人们

利用通用计算机进行数字滤波、频谱分析等算法的研究,以及数字信号处理系统的模拟和仿真。而将数字信号处理技术推向高峰的则是实时数字信号处理技术的高速发展。

实时数字信号处理对数字信号处理系统的处理能力提出了严格的要求,所有运算、处理都必须小于系统可接受的最大时延。

2

典型实时数字信号处理系统的基本部件包括:抗混叠滤波器(Anti-aliasing filter)、模/数转换器(Analog-to-Digital Converter,ADC)、数字信号处理、数/模转换器(Digital-to-Analog Converter,DAC)和抗镜像滤波器(Anti-image filter),如图所示。其中,抗混叠滤波器将输入的模拟信号中高于奈奎斯特频率的频率成分滤掉;ADC将模拟信号转换成DSP可以处理的并行或串行的数字比特流;数字信号处理部分完成数字号信处理算法;经过处理的数字信号经DAC转换成为模拟样值之后,再由抗镜像滤波器完成模拟波形的重建。

典型信号实时处理系统图如下

数字信号处理系统的构成如下

3 数字信号处理器的优点(1)

数字信号处理器的优点(2)

数字信号处理器的优点(3)

4.存储器结构

微处理器的存储器结构分为两大类:冯·诺伊曼结构和哈佛结构。由于成本的原因,GPP广泛使用冯·诺伊曼存储器结构。典型冯·诺伊曼结构的特点是只有一个存储器空间、一套地址总线和一套数据总线;指令、数据都存放在这个存储器空间中,统一分配地址,所以处理器必须分时访问程序和数据空间。通常,做一次乘法会发生4次存储器访问,用掉至少4个指令周期。

为了提高指令执行速度,DSP采用了程序存储器空间和数据存储器空间分开的哈佛结构和多套地址、数据总线。哈佛结构是并行体系结构,程序和数据存于不同的存储器空间,每个存储器空间独立编址、独立访问。因此,DSP可以同时取指令(来自程序存储器)和取操作数(来自数据存储器);而且,还允许在程序空间和数据空间之间相互传送数据。哈佛读/写结构使DSP很容易实现单周期乘法运算。

哈佛结构

5.流水线(1)

流水线结构将指令的执行分解为取指、译码、取操作数和执行等几个阶段。在程序运行过程中,不同指令的不同阶段在时间上是重叠的,流水线结构提高了指令执行的整体速度,有助于保证数字信号处理的实时性。因此,所有DSP均采用一定级数的流水线,如TMS320C54x DSP 采用6级流水线,而TMS320C6xxx DSP 采用8级流水线。TMS320C55x DSP的流水线则被分为指令流水线和执行流水线两部分,指令流水线完成访问地址产生、等待存储器回应、取指令包、预解码等工作;执行流水线完成译码、读取/修改寄存器、读操作数和输出结果等工作。

流水线(2)

流水线(3)

流水线(5)

流水线(6)

流水线(8)

三CCS 功能简介

目前DSP 开发中工作的80%属于软件开发

Texas Instruments 公司的DSP 集成开发环境CCS (Code Composer Studio )是一个在Windows 操作系统下,为开发TMS320系列DSP 而设计的集成开发环境。CCS 不仅包含代码生成工具,具备基本调试功能,而且具备实时分析能力。它支持整个软件开发过程:从方案设计、代码生成到调试、实时分析等。此外,CCS 还具有可扩展的结构。

CCS 的功能十分强大,它集成了代码的编辑、编译、链接和调试等功能,而且支持C 语言和汇编混合编程,其主要功能如下 :

(1)集成可视化代码编辑界面:可直接编写C 语言、汇编、C 语言和汇编混合、.H 文件和.cmd 文件等; (2) 集成代码生成工具:包括汇编器、优化C 语言编译器、链接器等,将代码的编辑、编译、链接和调

试等功能集成到一个开发环境中;

(3)基本调试工具:可以装入执行代码(.out文件),查看寄存器窗口、存储器窗口、反汇编窗口和变量窗口,并且支持C语言源代码级调试;

(4)断点工具:能在调试程序的过程中,设置软件断点、硬件断点、数据空间读/写断点、条件断点(使用GEL编写表达式)等;

(5)探针调试工具(probe points):可用于算法仿真,数据监视等;

(6) 性能分析工具(profile points):可用于评估代码执行的时钟数;

(7)实时分析和数据可视化工具:例如,数据的图形显示工具,可绘制时域/频域波形、眼图、星座图、图像等,并具有自动刷新功能(使用Animate命令运行);

(8)GEL工具:用户利用GEL扩展语言可以编写自己的控制面板/菜单,设置GEL菜单选项,可方便直观地修改变量,配置参数等;

(9)支持实时数据交换RTDX(Real Time Data Exchange)技术:该技术可在不中断目标系统运行的情况下,实现DSP与其他应用程序(OLE)的数据交换;

(10)提供DSP/BIOS工具:增强对代码的实时分析能力,如分析代码执行的效率、调度程序执行的优先级、方便管理或使用系统资源(代码/数据占用空间,中断服务程序的调用,定时器使用等),从而减少了开发人员对硬件资源熟悉程度的依赖性;

(11)支持多DSP的调试。

(12)开放式的plug-in技术不仅可以支持第三方ActiveX插件,而且通过安装相应的驱动程序就可以支持包括软仿真在内的各种仿真器;

(13)CCS尤为重要的特点是提供了配置、构造、跟踪和分析程序的工具,并在基本代码生成工具的基础上增加了调试和实时分析功能,为使用者提供了方便、实用的开发工具,从而加速了实时、嵌入式信号处理的开发。

四CCS安装与设置

https://www.wendangku.net/doc/c412366677.html,S的系统配置有两种方法:利用系统提供的标准配置文件进行配置;按用户自己建立的配置文件来配置系统结构

2文件名介绍

*.cmd——文件称为“存储器定位文件”,是用于“命令” CCS 如何把各子模块(段)如何在存储器中进行安排的。汇编器与链接器使用。

*.obj ——由源文件编译或汇编后所生成的目标文件;

*.out ——完成编译、汇编、链接后所形成的可执行文件,可在CCS监控下调试和执行;

(*.wks —工作空间文件,可用来记录工作环境的设置信息;

*.cdb —CCS的配置数据库文件,是使用DSP/BIOS API模块所必须的。当保存配置文件时,将产生链接器命令文件(*cfg.cmd)、头文件(*cfg.h54)和汇编语言源文件(*cfg.s54)。)

DSP中目标文件的“程序代码”与“数据”按段存放。

段有两种(1)已经初始化的段。例如:.txt与.data;

(2)未初始化的段。例如:.bss段是未初始化的段,用于为变量保留空间。

汇编器根据汇编伪指令创立这些段、链接器确定这些段存放在目标存储器中的位置,称为重定位。

rts库文件

3.CCS下的DSP实时应用程序开发流程

FIR滤波器的两种实现方法:中断,查询

1.利用X86处理器完成实时数字信号处理

随着CPU技术的不断进步,X86处理器的处理能力不断发展,基于X86处理器的处理系统已经不仅局限于以往的模拟和仿真,也能满足部分数字信号的实时处理要求,而各种便携式或工业标准的推出,如PC104、PC104 Plus结构,以及CPCI总线标准的应用,这些都改善了X86系统的抗恶劣环境的性能,扩展了X86系统的应用范围。

利用X86系统进行实时数字信号处理有下列优点:

(1)处理器选择范围较宽:X86处理器涵盖了从386到奔腾系列,处理速度从100MHz到几GHz,而为了满足工控等各种应用,X86厂商也推出了多款低功耗处理器,其功耗远远小于商用处理器。

(2)主板及外设资源丰富:无论是普通结构,还是基于PC104和PC104 Plus结构,以及CPCI总线标准,都有多种主板及扩展子板可供选择,节省了用户的大量硬件开发时间。

(3)有多种操作系统可供选择:这些操作系统包括Windows、Linux、Win CE等,而针对特殊应用,还可根据需要对操作系统进行剪裁,以适应实时数字信号处理要求。

(4)开发、调试较为方便:X86的开发、调试工具十分成熟,使用者不需要很深的硬件基础,只要能够熟练使用VC、C-Build等开发工具即可进行开发。

X86进行实时信号处理的缺点

(1)数字信号处理能力不强:X86系列处理器没有为数字信号处理提供专用乘法器等资源,寻址方式也没有为数字信号处理进行优化,实时信号处理对中断的响应延迟时间要求十分严格,通用操作系统并不能满足这一要求;

(2)硬件组成较为复杂:即使是采用最小系统,X86数字信号处理系统也要包括主板(包括CPU、总线控制、内存等)、非易失存储器(硬盘或电子硬盘、SD卡或CF卡)和信号输入/输出部分(这部分通常为AD扩展卡和DA扩展卡),如果再包括显示、键盘等设备,系统将更为复杂;

(3)系统体积、重量较大,功耗较高:即使采用紧凑的PC104结构,其尺寸也达到96mm×90mm,而采用各种降低功耗的措施,X86主板的峰值功耗仍不小于5W,高功耗则对供电提出较高要求,则需要便携系统提供容量较大的电池,进一步增大了系统的重量;

(4)抗环境影响能力较弱:便携系统往往要工作于自然环境当中,温度、湿度、振动、电磁干扰等都会给系统正常工作带来影响,而为了克服这些影响,X86系统所需付出的代价将是十分巨大的。

2.利用通用微处理器完成实时数字信号处理

通用微处理器的种类多,包括51系列及其扩展系列,德州仪器公司的MSP430系列,ARM公司的ARM7、ARM9、ARM10系列,等等,利用通用微处理器进行信号处理的优点如下。

(1)可选范围广:通用微处理器种类多,使用者可从速度、片内存储器容量、片内外设资源等各种角度进行选择,许多处理器还为执行数字信号处理专门提供了乘法器等资源。

(2)硬件组成简单:只需要非易失存储器,A/D、D/A即可组成最小系统,这类处理器一般都包括各种串行、并行接口,可以方便地与各种A/D、D/A转换器进行连接。

(3)系统功耗低,适应环境能力强。

利用通用微处理器进行信号处理的缺点如下:

(1)信号处理的效率较低:以一个两个数值乘法为例,处理器需要先用两条指令从存储器当中取值到寄存器中,用一条指令完成两个寄存器的值相乘,再用一条指令将结果存到存储器中,这样,完成一次乘法就花费了4条指令,使信号处理的效率难以提高。

(2)内部DMA通道较少:数字信号处理需要对大量的数据进行搬移,如果这些数据搬移全部通过CPU进行,将极大的浪费CPU资源,但通用处理器往往DMA通道数量较少,甚至没有DMA通道,这也将影响信号处理的效率。

3.利用可编程逻辑阵列(FPGA)进行实时数字信号处理

随着微电子技术的快速发展,FPGA的制作工艺已经进入到45nm时期,这意味在一片集成电路当中可以集成更多的晶体管,芯片运行更快,功耗更低。其主要优点如下。

(1)适合高速信号处理:FPGA采用硬件实现数字信号处理,更加适合实现高速数字信号处理,对于采样率大于100MHz的信号,采用专用芯片或FPGA是适当的选择。

(2)具有专用数字信号处理结构:纵观当前最先进的FPGA,如ALTERA公司的Stratix Ⅱ、Ⅲ系列、Cyclone Ⅱ、Ⅲ系列,Xilinx公司的Virtex-4、Virtex-5系列都为数字信号处理提供了专用的数字信号处理单元,这些单元由专用的乘法累加器组成,所提供的乘法累加器不仅减少了逻辑资源的使用,其结构也更加适合实现数字滤波器、FFT等数字信号处理算法。

使用FPGA的缺点如下:

(1)开发需要较深的硬件基础:无论用VHDL还是Verilog HDL语言实现数字信号处理功能都需要较多的数字电路知识,硬件实现的思想与软件编程有着很大区别,从软件算法转移到FPGA硬件实现存在着很多需要克服的困难。

(2)调试困难:对FPGA进行调试与软件调试存在很大区别,输出的信号需要通过示波器、逻辑分析仪进行分析,或者利用JTAG端口记录波形文件,而很多处理的中间信号量甚至无法引出进行观察,因此FPGA的更多工作是通过软件仿真来进行验证的,这就需要编写全面的测试文件,FPGA的软件测试工作是十分艰巨的。

4.利用数字信号处理器实时实现数字信号处理

数字信号处理器(Digital Signal Processor,DSP)是一种专门为实时、快速实现各种数字信号处理算法而设计的具有特殊结构的微处理器。20世纪80年代初,世界上第一片可编程DSP芯片的诞生为数字信号处理理论的实际应用开辟了道路;随着低成本数字信号处理器的不断推出,更加促进了这一进程。90年代以后,DSP芯片的发展突飞猛进。其功能日益强大,性能价格比不断上升,开发手段不断改进。DSP 芯片已成为集成电路中发展最快的电子产品之一。DSP芯片迅速成为众多电子产品的核心器件,DSP系统也被广泛地应用于当今技术革命的各个领域——通信电子、信号处理、自动控制、雷达、军事、航空航天、医疗、家用电器、电力电子,而且新的应用领域还在不断地被发现、拓展。可以说,基于DSP技术的开发应用正在成为数字时代应用技术领域的潮流。

5.硬件乘法累加单元

由于DSP任务包含大量的乘法—累加操作,所以DSP处理器使用专门的硬件来实现单周期乘法,并使用累加器寄存器来处理多个乘积的累加;而且几乎所有DSP指令集都包含有MAC指令。而GPP通常使用微程序实现乘法。

6.零开销循环

DSP算法的特点之一是主要的处理时间用在程序中的循环结构中,因此多数DSP都有专门支持循环结构的硬件。所谓“零开销”(zero overhead)是指循环计数、条件转移等循环机制由专门硬件控制,而处理器不用花费任何时间。通常GPP的循环控制是用软件来实现的。

7.特殊的寻址方式

除了立即数寻址、直接寻址、间接寻址等常见寻址方式之外,DSP支持一些特殊的寻址方式。例如为了降低卷积、自相关算法和FFT算法的地址计算开销,多数DSP支持循环寻址和位倒序寻址。而GPP 一般不支持这些寻址方式。

8.高效的特殊指令

DSP指令集设计了一些特殊的DSP指令用于专门的数字信号处理操作。这些指令充分利用了DSP的结构特点,提高了指令执行的并行度,从而大大加快了完成这些操作的速度。例如TMS320C55xx中的FIRSADD指令和LMS指令,分别用于对称结构FIR滤波算法和LMS算法。

9.丰富的片内外设

根据应用领域的不同,DSP片内集成了众多类型的硬件设备。例如,定时器、串行口、并行口、主机接口(HPI)、DMA控制器、等待状态产生器、PLL时钟产生器、JTEG标准测试接口、ROM、RAM及Flash等。这些片内外设提高了处理速度和数据吞吐能力,简化了接口设计,同时降低了系统功耗和节约了电路板空间。

10.C67x系列和C33

C67x除了兼容C62x指令集之外,还支持浮点操作。其内核包括4个浮点/定点算术逻辑单元,两个定点算术逻辑单元和两个浮点/定点乘法器,支持单精度和双精度浮点运算。

浮点:数的范围大于定点,最大值和最小值,2e10

不易溢出;浮点处理器的实现简单,32位,影响功耗和速度,成本高

11.DSP芯片的选择

DSP芯片是否符合应用要求,运算速度是非常关键的。常见的运算速度指标有如下几种:

(1)指令周期:执行一条指令所需的最短时间,数值等于主频的倒数;指令周期通常以ns(纳秒)为单位。例如,运行在200MHz的TMS320VC5510的指令周期为5ns

(2)MIPS:每秒百万条指令数。(3)MOPS:每秒百万次操作数。

(4)MFLOPS:每秒百万次浮点操作数(5)BOPS:每秒十亿次操作数。

(6)MAC时间:一次乘法累加操作花费的时间。大部分DSP芯片可在一个指令周期内完成MAC操作。(7)FFT执行时间:完成N点FFT所需的时间。FFT运算是数字信号处理中的典型算法而且应用很广,因此该指标常用于衡量DSP芯片的运算能力。

12.算法格式和数据宽度

DSP算法格式主要分为定点算法和浮点算法两种。一般而言,定点DSP芯片价格较便宜,功耗较低,但运算精度稍低;浮点DSP芯片的优点是运算精度高,但价格稍贵,功耗也较大。

大多数DSP处理器使用定点算法,有些DSP处理器采用浮点算法。浮点算法比较复杂,因而浮点DSP 的成本和功耗要比定点DSP高。但是使用浮点DSP更容易进行高级语言编程,而且一般不用特别解决动态范围、精度的问题。所以,如果产品对成本和功耗的要求较严格,一般选用定点DSP。设计人员需要通过理论分析或软件仿真来确定所需的动态范围和精度。如果要求易于开发、动态范围宽、精度高,可以考虑采用浮点DSP。此外,有些算法在定点DSP中采用“块浮点”方法也可以实现较宽动态范围和较高的处理精度。所谓“块浮点”就是将具有相同指数,而尾数不同的一组数据作为一个数据块进行处理。“块浮点”处理通常用软件来实现。

浮点DSP的数据宽度一般为32位,而定点DSP的数据宽度可以为16位、20位、24位或32位。显然,对于相同算法格式的DSP,数据宽度越大,精度越高。但是,数据宽度与DSP尺寸、引脚数及存储器等有直接关系。数据宽度越宽,DSP尺寸越大,引脚越多,存储器要求也越高。所以,在满足设计要求的前提下,尽量选用数据宽度小的DSP,以降低开发成本。而对少量精度要求高的代码可以采取双精度算法。如果大多数计算对精度要求都很高,那么就需要选用较大数据宽度的处理器。

13存储器

DSP片内都集成一定数量的存储器,并且可以通过外部总线进行存储器扩展。选择DSP时,要根据具体应用对存储空间大小及对外部总线的要求来选择。DSP的内部存储器通常包括Flash存储器、RAM存储器等。Flash存储器通常用来存储程序及重要的数据,Flash存储器是一种非易失存储器,当系统掉电后还能够保留所存储的信息,Flash存储器的缺点是读/写速度较慢,而向Flash存储器写入数据的过程比较烦琐。DSP 中最重要的存储器是RAM存储器,例如在TMS320VC5510处理器中就集成了320KB的RAM存储器。有的DSP片内集成了多存取存储器,允许在一个指令周期内对存储器进行多次访问;也有的DSP片内集成了指令缓存,允许从缓存读取指令,从而将存储器空闲出来进行数据读取。DSP外部总线可以扩展多种存储器,其中既有EPROM、Flash等非易失存储器,又有SRAM、FIFO等可快速访问的存储器,还可以连接SDRAM、DDR SDRAM等大容量存储器,而外部总线的数据宽度也从16位向32位和64位发展。这些特点也是选择DSP时可以参考的依据。

14功耗

由于DSP器件越来越多地应用在便携式产品中,因此功耗是一个重要的考虑因素。下面是一些常见的降低系统功耗的技术。

(1)低工作电压。目前DSP的工作电压有5V,3.3V,2.5V,1.8V等多种。

(2)“休眠”或“空闲”模式。大多数处理器具有关断处理器部分时钟的功能以降低功耗。

(3)可编程时钟分频器。有的DSP可以在运行时动态编程改变处理器时钟频率以降低功耗。

(4)外围控制。一些DSP器件允许程序中止系统暂时不使用的外围电路功能。

15.开发工具

选择DSP芯片时,必须注意其开发工具的支持情况(包括软件开发工具、硬件开发工具)。软件开发工具包括编译器、汇编器、链接器、调试器、代码模拟器、代码库及实时操作系统(Real Time Operation System,RTOS)等,而硬件工具包括评估板和仿真器等。

16.DSP应用系统设计流程

(1)确定系统性能指标。根据应用目标对系统进行任务划分,进行采样率、信号通道数、程序大小的确定。

(2)核心算法模拟和验证。用C语言等高级语言或MATLAB、SystemView等开发工具模拟待选的或拟订的信号处理核心算法(Algorithm),进行功能验证、性能评价和优化,以确定最佳的信号处理方法。(3)选择DSP芯片及其他系统组件。选择一片合适的DSP芯片是至关重要的,因为这不仅关系到系统的性能和成本,而且决定着外部存储器、各种接口、ADC、DAC、电平转换器、电源管理芯片等其他系统组件的选择。

(4)硬件设计和调试。根据选定的主要元器件建立电路原理图、设计制作PCB、器件安装、加电调试。(5)软件设计和测试。用DSP汇编语言或C语言或两者嵌套的方法生成可执行程序。用DSP软件模拟器(Simulator)、或者用DSP仿真器(Emulator)进行程序调试。

(6)系统测试、集成。将软件加载到硬件系统中运行,并通过用DSP仿真器(Emulator)等测试手段检查其运行是否正常、稳定,是否符合实时要求。

17.软硬件调试系统

--- 基于Simulator的软件仿真(与外设等硬件没关系时方便)

--- 基于emulator的硬件仿真

软件环境---软件开发环境(Code Composer Studio : CCS)

18.核心是“实时运算”

19,CCS的系统配置有两种方法:

>利用系统提供的标准配置文件进行配置;

>按用户自己建立的配置文件来配置系统结构。

20,。CCS的窗口和工具条

文件编辑查看工程项目调试性能分析扩展功能选项工具底层支持视窗

21

22.软件断点

软件断点是最常用的断点形式,程序运行过程中如果遇到断点,就会暂时停止运行,回到调试状态。用户可以通过查看变量、图形等方式,发现程序中的错误 。 23.GEL 工具的使用

GEL 是通用扩展语言(General Extension Language )的简称,是一种类似于C 语言的解释性语言。 利用GEL 语言,用户可以访问实际/仿真目标板。设置GEL 菜单选项,特别适于自动测试和自定义工作空间。

相关文档