定点数字信号处理器(DSP)技术与应用.ppt
定点数字信号处理器(DSP)技术与应用,by Zhang Li,2,课程的主要内容和目的,本课程主要介绍 Analog Device公司ADSP-Blackfin系列16位定点DSP的体系结构和软/硬件开发环境,通过几个典型的实验使大家初步掌握DSP系统的硬件构成、软件开发以及系统的综合调试方法。课程的重要性:直接面向应用 IT工程师三大实用技能*PCB设计*DSP应用*FPGA应用,3,第一部分:数字信号处理器(DSP)概述,数字信号处理的特点,特别强调运算处理的实时性(Real-Time Capability),模拟/数字转换A/D Converter,数字信号处理运算,数字/模拟转换,D/A Converter,待处理的信号,处理后的信号,数字信号处理及数字信号处理器(DSP)Digital Signal Processor,4,数字信号处理器(DSP)结构特点,DSP面向高性能、重复性、数值运算密集型的实时处理,它具有适合数字信号处理算法的指令、适合数字信号处理数据结构的存储器结构和寻址机构、并行处理能力和嵌入式性能等。其体系结构一般具有以下特点:采用分离程序总线与数据总线的哈佛结构(CPU:普林斯顿结构),有着较高的指令执行速度,但结构复杂需要两套地址产生电路。采用流水线技术,使取指、译码、取操作数、执指等步骤并行完成,提高了指令的执行速度。除了算数逻辑单元(ALU)外,具有独立的乘加器(MAC),使其能够在一个周期内完成相乘和累加两个操作,加快了各种典型处理算法的处理速度。具有适用于典型处理算法的特殊存储器寻址方式,如循环寻址、位反序寻址等。针对实时处理的专用的数据接口(SRAM、DMA、SPORT,etc.),使数据的存取速度得以提高。专门的指令流控制逻辑,如无附加开销的循环转移指令。集成度高,能够实现单片、低功耗的处理系统。,5,数字信号处理器(DSP)的应用领域,通用数字信号处理(数字滤波、卷积、相关、变换等)通信(高效数字调制/解调、编/解码器、自适应均衡、IP处理、软件无线电等)语音处理(语音识别/合成/压缩/解压缩等)图形/图象处理(图象变换、模式识别、图象压缩/解压缩等)自动控制(高精度、高速度伺服控制)军事/航空/航天(雷达/声呐信号处理、雷达成像、制导/火控系统、导航/定位系统、战场C3I系统等)消费电子(数字高清晰度电视(HDTV)、CD/VCD/DVD编解码器、多媒体信息处理、汽车电子等),6,DSP的典型应用民用领域,7,DSP的典型应用民用领域,8,DSP的典型应用军事应用,9,DSP的典型应用军事应用,10,坦克火控系统,DSP的典型应用军事应用,11,DSP的典型应用军事应用,12,DSP的典型应用军事应用,飞机火控系统,13,DSP的典型应用军事应用,14,DSP的典型应用军事应用,各类导弹弹载数字信号处理机,15,DSP的典型应用军事应用,16,主要分为通用DSP和专用DSP两大类通用DSP:其所要实现的处理算法由软件程序控制实现。应 用灵活性大,通过更改软件程序能够实现不同的 处理算法。产品是各种类型的可编程DSP芯片,应用较广泛 的是:TI公司的TMS320系列 AD公司的ADSP21XX系列专用DSP:针对某种具体应用而设计,所要实现的处理算法 由硬件直接实现。运算处理速度极高,但完成的 算法单一、精度和动态范围有限,需要与外围电 路配合才能构成系统,功耗也较大,因此应用范 围较窄,主要应用于仪器/仪表以及军事等需要 极高处理处理能力的领域。主要产品:FFT专用DSP、卷积/相关器、复乘加 器等。*用ASIC/FPGA实现的DSP,DSP的分类,17,DSP的分类,横向滤波器FFT复乘/累加器求模/相角,嵌入式DSP定点 DSP32bit浮点DSP32bit浮点并行DSP超高性能DSP,16bit 定点DSP24bit 定点DSP,通用DSP,18,数字信号处理器(DSP)的开发与调试,DSP系统的设计分为硬件/软件两个部分。两者可以在各自的开发平台上分别进行前期设计与调试,然后进行系统的联调。硬件设计 DSP选型/系统结构确立 性能/功耗分析 开发周期/成本分析 电路设计/调试调试工具:DSP在线硬件仿真器(Emulator)、DSP开发/评估板(Evaluation Board)、示波器、逻辑分析仪。软件设计 算法确定/程序流程图 软件编制(汇编/C语言)汇编/编译/链接 软件模拟调试工具:汇编/编译/链接程序,软件模拟/调试器(Simulator/Debugger)系统联调对整个系统的软/硬件进行的综合调试。调试工具:硬件仿真器、DSP开发/调试集成环境(IDE/IDDE)、DSP OS,etc.,19,DSP系统的开发流程图系统级设计,系统功能要求,系统性能及算法模拟,处理速度、开发周期、体积、成本,功耗、供货、升级,器件选型:DSP型号、存储器、I/O、FPGA、A/D、D/A,系统设计框图,硬件设计,软件设计,20,DSP系统的开发流程图电路/软件设计,电路原理图设计,生成电路网表,设计印制电路板,印制板制造,器件安装,软件流程图绘制,高级语言程序设计,汇编语言程序设计,汇编算法库,实时运行库,编译,汇编,链接,软件模拟,修正,硬件调试,软/硬件系统联调,示波器逻辑分析仪,21,DSP系统的开发流程图系统联调,系统在线仿真,硬件电路,软件程序,PC机仿真,仿真结果?,有误错,修正,固化程序,嵌入系统设备进行联调,连接外部设备,综合测试,满足系统要求?,否,修正,否,修正,成品制造,示波器逻辑分析仪,22,ADSP-Blackfin在线仿真器,23,ADSP-BF533开发/评估板,24,DSP及其开发的新趋势,片上系统SoC(System-on-Chip)随着VLSI技术的发展,针对一定的应用领域,可以使整个系统以DSP为核心进行设计,并将应用中所涉及的诸如 RAM、I/O、A/D、D/A等附加电路单元全部集成在一片IC芯片中,并且包括处理单元在内的各功能块都具有可重定义特性(Re-Configurable).这样一来,系统以后的功能扩展与升级将非常简单,只需要重新编写软件程序即可。同时系统的功耗会大大的降低,可靠性会大大的提高。而这对便携/移动应用非常重要。模块化设计 DSP及支持芯片/软件生产厂商,均依据一定的标准,设计生产电路板级DSP处理模块,同时为这种模块提供丰富的符合标准的软件开发系统和算法资源库。这样做的好处是降低了硬件设计难度、减少了硬件设计时间,更重要的是模块化设计得到了丰富的软件支持,大大提高了设计效率。,25,二进制代数复习,DSP中的二进制数表示方法,ADSP系列定点数DSP使用2的补码进行操作。若要有效地对该系列DSP进行编程,了解以下概念及定义是非常重要的。1)有符号/无符号数格式2)小数/整数格式3)小数的范围4)16进制到2进制的转换5)2进制到16进制的转换,26,2进制(Binary)-(16进制)Hexadecimal 10进制(Decimal)数据转换表,Decimal,0 123456789101112131415,Hexadecimal,01 23456789ABCDEF,Binary,0000 000100100011010001010110011110001001101010111100110111101111,27,有符号数与无符号数,无符号数,有符号数,0 x00000V(最小负值),0 xFFFF5V(最大正值),0 x8000-5V(最小负值),0 x00000V,0 x7FFF5V(最大正值),S/U,U U U U U U U U U U U U U U U,0,15,2进制表示,实际物理量,28,有符号数(原码)与2的补码,有符号数(原码)的最高位(MSB)为符号位。1表示负数0表示正数*有符号数(原码)“0”有两种表示方法(+/-0)。*有符号数(原码)的运算比较复杂,类似于正负数的笔算,先要比较两个数绝对值的大小,然后确定如何计算,最 后在确定符号位。2的补码Xcmp=2n+X(n-字长位数)*性质:正数的补码与其原码相同。负数的补码仍是负数,它是 将其原码的符号位保持不变而将其数值部分求补得到。“0”在补码中的表示是唯一的。*补码的求法:一个负数的补码等于其原码除符号位保持不变外,其余各位按位求反,再在最低位加1。*补码的运算:符号位与数值位一样参加运算(若符号位有进位 则丢弃)。*溢出的判别:“双高位判别法”Cs:最高位(符号位)的进位情况。若有进位,Cs=1;Cp:数值部分的最高位的进位情况。若有进位,Cp=1;Overflow=Cs xor Cp,29,2的补码表示方法,对于2的补码表示法,一个数符号位的位权值是-(2)(M-1),M是2进制小数点左边的位数。对于一个 4.2 型式的数字,符号位的位权值是-(23).,例子:,0101.01=0*(-8)+1*(4)+0*(2)+1*(1)+0*(1/2)+1*(1/4)=5.25 1101.01=1*(-8)+1*(4)+0*(2)+1*(1)+0*(1/2)+1*(1/4)=-2.75,2进制小数点,符号位,30,小数与整数表示法,1.15型式的小数格式,S F F F F F F F F F F F F F F F,S I I I I I I I I I I I I I I I,小数点,小数点,16.0型式的整数格式,31,DSP是针对小数表示型式进行优化设计的DSP也支持整数表示型式,32,16位二进制数的表示范围,33,不同数制表示实例,+5 V,-5 V,0 V,0 x7FFF,0 x0000,0 x8000,1,2,3,4,5,格式,0 x7FFF,0 x3FFF,0 x0000,0 xCCCD,0 x8000,1),2),3),4),5),16.0,1.15,34,有两种将16进制数转换为10进制数的方法,一种简单,一种较复杂.复杂的方法:先将16进制数转换成2进制数.确定小数点的位置.将每一位的2进制位数值乘以其相应的位权值。例子:将 0 x2A00(以1.15、2的补码格式表示)转换10进制数值0 x2A00=0.010 1010 0000 0000=2-2+2-4+2-6=0.25+0.0625+0.015625=0.328125=0.33=1/3 简单的方法:先将16进制数直接转换成10进制数(整数整数)。再用转换后的10进制数除以2N,N是2进制小数点右边的位数。例子:将 0 x2A00(以1.15、2的补码格式表示)转换10进制数值0 x2A00 10752/215=10752/32768=0.328125,16进制(1.15 格式)到10进制转换,35,有两种将10进制数转换为16进制数的方法,一种简单,一种较复杂.复杂的方法:将10进制数用其2N 的型式表示出来。例子:将0.8125转换成以1.15、2的补码表示的16进制数值简单的方法:将10进制数乘以2N,N是1.15格式小数点右边的位数值。然后再计算16进制数值。例子:将0.8125转换成以1.15、2的补码表示的16进制数值0.8125*215=0.8125*32768=26624 0 x6800,10进制到16进制转换(1.15 格式),0.8125=,2,-2,2,-1,2,0,2,-3,2,-4,2,-5,2,-6,2,-7,1,1/2,1/4,1/8,1/16,1/64,1/32,1/128,0,0,0,0,1,0,1,1,=0 x6800,