资源描述
数字信号处理方法与实现,贺知明 副教授,电子科技大学 四川成都,DSP结构特点、分类、发展及应用,实时数字信号处理系统: 采集系统 + DSP芯片 非实时系统: PC机上进行处理系统的模拟与仿真 或 仿真库 + DSP芯片,两个方面促进了DSP的发展,大规模集成电路技术的发展 算法革命 例:以FFT快速算法为代表的新算法的提出。,DSP、MPU、MCU的比较,DSP(数字信号处理器):面向高性能、重复性、数值运算密集型的实时处理; MPU(通用微处理器,含CPU):大量应用于计算机; MCU(微控制器):适用于以控制为主的处理过程。,MPU与DSP结构上的对比,MPU:采用冯诺依曼结构,即程序指令和数据共用一个存储空间和单一的地址和数据总线;,MPU与DSP结构上的对比,DSP:为提高运算速度,满足实时算法要求,当前DSP采用哈佛结构,即将程序指令和数据的存储空间分开,各有自己的地址和数据总线,使得处理指令和数据可同时进行,大大提高处理效率。即可流水处理(取指、译码、访问数据、执行等各指令周期重叠起来)。,MPU与DSP结构上的对比,DSP结构相对单一,一般采用汇编语言编程,其任务完成时间的可预测性相对于结构和指令复杂,并严重依赖于编译系统的MPU具有优势。 基于DSP的优势,新推出的高性能MPU片内已融入了DSP功能。,MPU与DSP结构上的对比,通常,在相同的指令周期和片内指令缓存条件下,DSP是MPU运算速度的4倍以上。 实时数字信号处理技术的核心和标志是数字信号处理器(DSP)。,DSP的结构特点(1),普遍采用数据总线和程序总线分离的哈佛及改进哈佛结构(超级哈佛结构)。 与严格意义上的哈佛结构的区别在于:它允许数据在程序存储空间和数据存储空间之间传输,从而提高运行的速度和编程灵活性,没有必要设置专门的系数ROM,给系统设计带来方便。,DSP的结构特点(2),采用流水技术。 每条指令都由片内多个功能单元分别完成,在不提高时钟频率的条件下,减少每条指令的执行时间。,DSP的结构特点(3),片内多条总线可以同时进行取指令和多个数据存取操作,并有辅助寄存器用于寻址。,DSP的结构特点(4),大多配有独立的硬件乘法器和加法器。 主要针对滤波、相关、矩阵运算等处理过程需要大量乘法累加运算的特点,使得同一时钟周期内可以完成乘及累加两个运算,也大大加快了FFT的蝶形运算速度。,DSP的结构特点(5),带有DMA通道控制器及串行通信口等,配合片内多总线结构,数据块传输速度大大提高。,DSP的结构特点(6、7),配有中断处理器和定时控制器,可以方便地构成一个小规模系统。 具有软硬件等待功能,能与各种外部存储器接口。,DSP的分类,数字信号处理器的采用是为了达到实时信号的高速处理,为适应各种不同的实际应用,产生了多种类型、不同档次的DSP器件。,DSP按用途分类,专用DSP:硬件直接实现。 一般只针对一种应用,只能通过加载数据,控制参数或在管脚上加控制信号来使其具有有限的可编程能力。 几乎都采用定点数据格式。 通用DSP:用软件实现。,专用DSP,针对某种具体应用而设计,常见的有: 卷积/相关器A100、 PDSP16256、HSP43168,FFT专用DSP PDSP16510、A41102,复乘加器组PDSP16116和PDSP16318,复数乘法器GA3806,求模/相角器PDSP16330等。,卷积/相关器A100,A100是由INMOS公司生产的32位可变系数字长的横向滤波器。,卷积/相关器A100,4种可变系数字长,固定阶数,采用定点数据格式,为保证精度和防止溢出,其片内运算单元采用较宽字长,并有移位控制功能可选择合适的输出字段,如:W=12bit,工作频率为5MHz,采用多个功能操作一致的乘加器组,易流水实现。 可多片级联使用,以增加滤波器长度。 A100曾广泛应用,但处理能力相对落后,已由PDSP16256取代。,卷积/相关器A100,卷积/相关器PDSP16256,PLESSY GEC公司产品,固定系数字长(12bit),可变阶数的横向滤波器。 内部为两个可分/可级联的8阶横向滤波器,全速(40MHz)工作时,相当于16阶。 若按2的幂次复用各阶乘法器,则可以在工作速率倍减的同时,获得阶数的倍增。,卷积/相关器PDSP16256,也采用转置型横向滤波器结构(可级联),与A100不同的是它的每个抽头都对应很多个系数,当系数循环切换,而数据暂时不更新时,相当于对同一输入数据乘以多组权系数,等效于系数字长加长。,卷积/相关器PDSP16256,可见,处理能力有了较大提高。 缺点是系数字长固定为12bit,精度受限。,m=0、1、2、3,最大16*23=128 阶,对应工作速率5MHz,FFT专用DSPPDSP16510,PLESSY GEC公司产品,40MHz主频,256点与1024点两种工作模式,可提供1024点复数FFT所需工作空间, 1024点FFT需要在前端加上数据缓存器,并有无重合、1/4重合、1/2重合和3/4重合等多个选项。,FFT专用DSPPDSP16510,FFT专用DSPPDSP16510,在40MHz系统时钟条件下,单片完成1024点复数FFT(基-4)的片内处理时间为98us,并在2*25.6us内完成数据的输入和输出。,1024/ 40MHz= 25.6us,FFT专用DSPPDSP16510,无重合时,相当于6.8MHz的数据吞吐率。 1/4重合时,相当于5.1MHz的数据吞吐率。,1024 /(98+ 2*25.6)us = 6.8MHz,768 /(98+ 2*25.6)us = 5.1MHz,FFT专用DSPPDSP16510,可以看出,当系统采用1/4重合的最小重叠模式时,系统采用低于5.1MHz的采样时钟是可行的,但当采样率大于5.1MHz时,无法满足系统的实时性要求。 专用DSP设置的不灵活(如固定的重叠模式)的缺点,及芯片本身性能的限制很大程度上制约了它的应用。,EPLD/FPGA实现专用DSP功能,随着EPLD/FPGA集成度、速度的不断提高,可按照用户的要求设计出相应的专用DSP,专用性更强。 相对于ASIC技术设计的专用DSP, EPLD/FPGA技术实现的DSP在集成度和速度上略有差距,但具有方便、快捷、灵活和低成本的特点。,通用DSP,早期: S2811(1978)、2920(1979), 二者均无单周期乘法器; PD7720是第一块具有专门硬件乘法器的商用DSP芯片。,通用DSP,当前通用DSP最有影响的厂商: TI(TMS320系列)、ADI( ADSP SHARC系列),产品系列最全,市场占有率最高。 另,Motorola(PowerPC系列),TMS320系列家族的发展,ADSP SHARC(TigerSHARC)系列家族的发展,ADSP21160TMS320C6701性能比较,ADSP21160与ADSP21060的比较,ADSP21160的主频(100MHz)是ADSP21060 (40MHz)的2.5倍,且有两个并行的处理内核(SIMD结构),所以运算速度是后者的5倍; DMA通道数由10个增加为14个; 链路口位宽由4bit增加为8bit。,当前最先进的通用DSP,2003年6月,ADI在召开的嵌入式处理器论坛上发布,推出新一代TigerSHARC处理器产品ADSPTS201/202/203。 2004年7月,TI公司宣布通过采用新型数字信号处理器TMS320C6711,基于 DSP 的系统设计人员不仅能提高系统性能还可以显著降低 DSP 成本。 ADSPTS201和TMS320C6711D是目前浮点DSP中性能最高,速度最快的两款浮点DSP。TMS320C6414T-1000是目前最快的定点DSP。,比较结果,TigerSHARC处理器更适合构成多处理器系统。 TigerSHARC处理器提供两种类型的接口,这两种接口直接支持可扩展的多处理器系统,而无需价格很高的外部逻辑电路。簇总线接口可支持连接高达8个TigerSHARC处理器,一个共享公共总线的外部存储器和一个全局存储器映射,从而形成一种非常简单的多处理器编程模式。链路口是一个带宽很宽的接口,他提供TigerSHARC处理器之间或TigerSHARC处理器与其他器件之间点对点通信。这些接口的总带宽超过5Gbps,该性能远远超过所有同类的处理器。,比较结果,TigerSHARC处理器做定点和浮点处理都可以,比TI的更具灵活性。 TigerSHARC处理器内核在高性能信号处理器中之所以独特,因为它直接支持定点和浮点两种数据类型,同时它还具有一种专门针对通信和图象应用的独特指令集。,比较结果,TigerSHARC处理器处理速度远大于TMS320C6711D。 TigerSHARC处理器编程相对TMS320C6711容易。 TigerSHARC处理器的价格比TI的产品贵。 同系列的DSP芯片TS202与TS201相比,主频500MHz,内部存储器为12Mbit,价格降低了一半;TS203的内部存储器为4Mbit,售价更低。,通用DSP的发展趋势,集成度及性能加速增长,低功耗,更加密集的封装形式(如BGA) 软件化(如软件无线电概念) 模块化设计(采用标准化总线接口) 多芯片组装技术(MCM) 与可编程器件结合(FPGADSP),DSP的应用,DSP芯片的确定 存储器(类型、容量、速度)确定 I/O设计 主控设计 DSP软件设计 DSP开发工具,DSP芯片的确定,根据实际应用要求的处理速度,内存需求,是否需要多处理系统以及开发成本等因素,选择合适的DSP来构成实际的DSP系统。具体可考虑以下因素: 运算速度、硬件资源、运算精度、功耗、开发工具、成本价格、封装形式,运算速度,指令周期 MAC FFT执行时间 MIPS MOPS MFLOPS,硬件资源,包括片内RAM、ROM的容量,外部可扩展的程序和数据空间,总线接口,I/O接口等。,运算精度,定点DSP:精度较低,功耗较低,价格低 浮点DSP:精度较高,功耗较高,价格高,芯片功耗,某些DSP应用场合,如便携式、机载、空间应用等,需要低功耗芯片。 这也是DSP的发展趋势之一。,成本价格,民用产品的成本限制 开发周期的价格规律,DIP、PGA、PLCC、QFP、BGA 越来越密集的封装形式 商用级、工业级或军品级芯片,封装形式,DSP软件设计,通过编程进行算法实现,并使程序效率满足实时性要求。 汇编:代码效率高,复杂 高级语言(C):可读性强,易维护,代码效率不高 混合编程:通常以C代码为主体,调用汇编代码函数(算法核心,占用大部分运行时间,达95%),DSP软件设计过程,了解编程规范 进行软件组织 控制程序+初始化程序+I/O程序+核心算法程序 其中,存储器配置很重要,文档管理(修改记录、程序注释)也必不可少 注意:模块化设计,易于调试,DSP开发工具,软硬件配合调试,需要硬件仿真器(Emulator)和软件模拟器(Simulator),它们都属于DSP开发工具。 选择开发工具是选择DSP的重要参考指标。,开发环境构成,主机 (微机或工作站),+,目标机(装有目标DSP的硬件系统或由软件模拟的目标处理器),通讯采用串口、并口、微机总线(PCI、ISA)、或专用仿真接口(JTAG),基本开发工具,代码产生工具和调试工具,对源代码编译,生成可在DSP上运行的可执行代码,并进行链接。 Compiler + linker,观察工作状态,控制代码执行,并显示结果,用于调试及性能测试。Debugger、Simulator(软件模拟器)、EVM(评估模块,带目标DSP、存储器及接口)、Emulator(硬件仿真器)等,常用开发工具,不同DSP厂商有自己特有的开发工具(软件集成环境): TI:CCS(Code Composer Studio) ADI:VisualDSP (含C compiler、Assembler、Linker、Simulator、 Debugger),
展开阅读全文