数字信号处理的实现DSP硬件系统一、DSP硬件系统概述DSP的含义•DSP(DigitalSignalProcessing)也就是我们常说的数字信号处理,它是利用计算机或专用处理设备,以数字形式对信号进行采集,变换,滤波,估值,增强,压缩,识别等处理,以得到符合人们需要的信号形式。•DSP芯片就是一种特别适合于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。DSP芯片的特点•在一个指令周期内可完成一次乘法和一次加法•程序和数据空间分开,可以同时访问指令和数据(哈佛结构)•片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问•具有低开销或无开销循环及跳转的硬件支持DSP芯片的特点•快速的中断处理和硬件I/O支持•具有在单周期内操作的多个硬件地址产生器•可以并行执行多个操作•支持流水线操作,使取指,译码和执行等操作可以重叠执行抗混叠滤波器(Anti-aliasingfilter):模数转换前将采集的高频信号滤掉模数转换器(Analog-to-DigitalConverter,ADC):模拟信号转换为数字信号数字信号处理器件:可进行DSP处理(通用与专用算法)的MPU数模转换器(Digital-to-AnalogConverter,DAC)数字信号转换为模拟信号抗镜像滤波器(Anti-imagefilter)把AO输出的模拟信号(阶梯状)重构为光滑的模拟信号典型实时数字信号处理的基本部件典型实时数字信号处理系统框图实时数字信号处理技术的发展利用X86处理器完成实时数字信号处理–选择范围较宽–主板及外设资源丰富–多种操作系统可供选择–开发、调试较为方便–数字信号处理能力不强–硬件组成较为复杂–系统体积、重量较大,功耗较高–抗环境影响能力较弱优点缺点实时数字信号处理技术的发展利用通用微处理器(ARM、单片机)完成实时数字信号处理–可选范围广–硬件组成简单系统–功耗低,适应环境能力强–信号处理的效率较低–内部DMA通道较少优点缺点利用可编程逻辑阵列(FPGA)进行实时数字信号处理–适合高速信号处理–具有专用数字信号处理结构–开发需要较深的硬件基础–调试困难实时数字信号处理技术的发展优点缺点利用数字信号处理器(DSP)实时实现数字信号处理(本课程的对象)–适合高速信号处理–具有专用数字信号处理结构–适应实时实时信号处理的场合–开发需要较深的硬件基础–调试困难–器件可选范围稍小实时数字信号处理技术的发展优点缺点基于通用DSP处理器的DSP系统程序寄存器地址发生器程序ROM高速I/O接口(串行、并行、ADC、DAC等)I/O控制器(DMA)程序RAM数据RAM移位器ALU乘法器数据寄存器数据RAM地址发生器程序代码Boot控制程序ROM数据总线RAM数据总线程序ROM地址总线数据RAM地址总线指令Cache指令译码序列发生器通用DSP处理器结构数字信号处理器的主要应用–基本信号处理:滤波器、FFT、窗函数等–通信:调制解调、数据加密、多路复用等–语音:语音编码、合成、识别、增强等–图形图像:图像压缩、视频处理、机器人视觉等–军事:雷达信号处理、导弹制导等–仪器仪表:频谱分析、锁相环等–控制:自动驾驶、磁盘控制等–医疗:助听、超声设备、患者监护等–家用电器:智能玩具、数字电话、数字电视等数字信号处理器的存储结构•处理器的存储结构分为两大类–冯·诺依曼结构(X86、单片机等):三总线(AB、DB和CB)结构,程序空间与数据空间统一–哈佛结构(DSP):程序访问总线和数据访问总线分开,程序存储空间与数据存储空间分开•DSP采用了哈佛结构和多套地址、数据总线双总线存储器结构流水线结构将指令的执行分解为取指、译码、取操作数和执行等几个阶段–TMS320C54xxDSP采用6级流水线–TMS320C6xxxDSP采用8级流水线–TMS320C55xxDSP的流水线分为•指令流水线•执行流水线数字信号处理器的流水线数字信号处理器的其他特点•硬件乘法累加单元独立的硬件乘法单元•零开销循环指循环计数、条件转移等循环机制由专门硬件控制,而处理器不用花费任何时间•特殊的寻址方式DSP支持循环寻址和倒位序寻址•高效的特殊指令FIRSADD指令——对称结构FIR滤波算法LMS指令——LMS算法(最小均方算法)数字信号处理器的其他特点•丰富的片内外设二、DSP系统的开发流程DSP芯片的厂家目前世界上生产DSP芯片的公司主要有TI(德州仪器)公司,AD(美国模拟器件)公司,Technologics(朗讯技术)公司和Motorola(摩托罗拉)公司四大公司,而TI公司则是世界上最大的DSP芯片供应商。TMS320系列产品就是该公司的DSP产品。德州仪器公司的DSP产品•DSP器件的应用对象可以分为三类–工业控制领域–低成本嵌入式应用系统–需要用复杂算法对大量数据进行处理的应用•德州仪器公司的三代DSP产品–TMS320C1x–TMS320C2x、3x、4x–TMS320C5x德州仪器公司的DSP产品•德州仪器公司的现在DSP产品–C24x系列和C28x系列主要用于电机控制领域–C62x系列和C64x系列采用了增强型超长指令字结构,改进了流水线结构,支持32位或64位宽度存储器访问,最高处理能力已经达到9600MIPS–C67x系列和C33浮点数字信号处理器系列–C54x系列和C55x系列低功耗16位定点数字信号处理器DSP芯片的选型•运算速度–指令周期、MIPS、MOPS、MFLOPS、BOPS、MAC时间、FFT执行时间•算法格式和数据宽度–浮点DSP的数据宽度一般为32位–定点DSP的数据宽度可以为16位、20位、24位或32位•存储器–Flash存储器、RAM存储器•功耗–低工作电压、“休眠”或“空闲”模式、可编程时钟分频器、外围控制•开发工具DSP的开发环境基于DSP处理器的开发流程编译软件工具:Compiler,Assembler,LinkerAndDebugger根据DSP模型写汇编程序或C程序基于C的DSP库根据DSP仿真模型和功能要求完成DSP应用系统评估板或测试板的设计根据DSP仿真模型、应用系统的功能以及技术指标,确定DSP处理器的数量和型号MATLAB/SimulinkDSP算法模型建立系统仿真完成DSP实用系统仿真调试DSP总体设计根据需求写出任务说明书根据任务书确定技术指标DSP芯片及外围芯片总体设计确定软硬件分工软件设计说明书硬件设计说明书软件编程与调试硬件(.sch/.pcb)系统集成硬件调试系统测试、样机完成、中试、产品测试与生产DSP软件设计硬件系统设计确定硬件方案器件选型原理图设计PCB图设计硬件调试系统分析系统综合三、DSP与MCU比较DSP与MCU硬件结构比较•DSP作为一种微处理器,其设计的出发点和通用CPU以及MCU等处理器是不同的。DSP是为完成实时数字信号处理任务而设计的,算法的高效实现是DSP器件的设计核心。DSP在体系结构设计方面的很多考虑都可以追溯到算法自身的特点。•哈佛结构,多总线:片内多条数据、地址和控制总线。•两者在不断融合,取其优势差异越来越不是那么明显。冯诺依曼结构哈佛结构多数CPU采用几乎所有DSP单片机哈佛结构:但共用一套AB和DB,由控制信号CS、DS区分冯诺依曼结构与哈佛结构CPU程序/数据存储器CPU数据存储器程序存储器独立IO空间多总线结构•数据、地址和控制总线是微处理器访问各种部件的基础,我们称之为3总线。•MCU无论片内还是片外均为三总线结构,而DSP片内为多总线结构(多条数据、地址和控制总线)片外为三总线结构,有的DSP甚至片外也有多条总线。多总线结构:片内多条数据、地址和控制总线。ROM/FlashSARAMB0DARAMB1,B2DARAMMemory-MappedRegisters外部地址总线外部数据总线ControlBusPABDRABDWABPRDBDRDBDWEBExternalSignalsCPUOn-ChipPeripherals/Registers流水线操作•处理器完成一条指令,一般要有:取指、译码、读操作数和执行等4个步骤。•MCU顺序执行上述4个步骤,所以一个指令周期要由多个机器周期组成。•而DSP并行执行上述4个步骤,所以指令周期等于机器周期。也就是说,上述4步DSP以流水线方式运行,提高了CPU执行速度。•流水线有一个建立的过程,只有在完整的流水线时,才会发挥DSP最高效率,所以在程序中应尽量避免破坏流水线。流水线操作(以4级流水线为例)100指令周期101102103104105106SubMpyStoreF2D2AddF1D1R1E1R2D3F3F4E2R3D4E3R4E4独立执行部件:F-取指D-译码R-读数E-执行完整的流水线顺序执行ADDSUB…C2的CPU运行于4级流水线方式CPUCLK取指令NN+1N+2N+3译码N-1NN+1N+2取操作数N-2N-1NN+1执行N-3N-2N-1N图四级流水线DSP与MCU软件开发比较模块化:按功能模块编程工程化:软/硬人员分离MCU:ORGxxxx,绝对定位优点:简单、容易上手缺点:模块化编程差工程化不支持DSP:Section:相对定位缺点:灵活、上手较难优点:模块编程好工程化编程支持DSP软件开发Section(“段”)概念:一块连续的储存空间,可存放程序或数据在编程时,“段”没有绝对定位,每个“段”都认为是从0地址开始的一块连续的储存空间,而无需关心这些“段”究竟定位在系统的哪些地方。优点:便于程序的模块化编程;便于工程化管理:可将软件开发人员和硬件开发人员基本上分离开。重定位:由于所有的“段”都是从0地址开始,所以程序编译完成后是无法运行的,要让程序正确运行,必须对“段”进行重新定位,这个工作由链接器完成。.cmd文件:MEMORY命令描述系统硬件资源,SECTIONS命令描述软件人员程序中用到的“段”如何定位到恰当的硬件资源上。DSP与MCU开发工具比较MCU:代替方式(仿真头替代MCU)硬件时序为仿真器硬件时序,与目标系统时序有一定差异或多或少占用目标硬件资源仿真头制作较难仿真电缆较短,使用不便不同MCU,工具不同,用户投资加重DSP:接口方式(JTAG)硬件时序即为目标系统时序不占目标系统硬件资源仿真头制作方便仿真电缆较长,使用方便不同的DSP,仿真接口标准JTAG,工具相同,用户投资有保障DSP与MCU开发工具比较MCU:代替方式(仿真头替代MCU)硬件时序为仿真器硬件时序,与目标系统时序有一定差异或多或少占用目标硬件资源仿真头制作较难仿真电缆较短,使用不便不同MCU,工具不同,用户投资加重DSP:接口方式(JTAG)硬件时序即为目标系统时序不占目标系统硬件资源仿真头制作方便仿真电缆较长,使用方便不同的DSP,仿真接口标准JTAG,工具相同,用户投资有保障