DSP原理与应用课件.ppt
《DSP原理与应用课件.ppt》由会员分享,可在线阅读,更多相关《DSP原理与应用课件.ppt(179页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章 概述1、DSP数字信号处理系统 低通滤波:将连续信号x(t)中的一些次要成分滤出。平滑滤波:滤出多余的高频分量,对时间域模拟信号起平滑作用。低通滤波ADCDSP平滑滤波DACx(t)y(t)2、DSP的发展和分类 发展: 1978年,AMI第一片DSP器件 1979年,Intel的Intel 2920是第一块脱离了通用型微处理器结构的DSP芯片。 1980年,NEC的 PD7720是第一个具有硬件乘法器的商用DSP芯片。 1982年,Hitachi推出浮点DSP。 1982年,TI推出第一代DSP芯片TMS32010及其系列产品。 1986年,Motorola推出MC56001定点DS
2、P芯片;1990年推出与IEEE浮点格式兼容的浮点DSP芯片。 分类 按DSP芯片处理的数据格式:定点、浮点 按DSP芯片的用途: 通用型:TI公司的系列DSP 专用型:数字滤波、FFT等 主要生产厂家 TI:43.5% Agere(Lucent):16.1% Motorola:12.0% ADI:8.2%3、DSP的性能及特点哈佛结构、普通微处理器的冯诺伊曼结构:内部地址总线内部数据总线共享的程序和数据存储器CPU控制ALU、DSP的哈佛结构:地址发生单元数据地址总线程序地址总线程序存储器数据存储器DSP控制ALU数据总线程序总线指令流水线、非流水线操作时钟周期123456789取指令NN+
3、1N+2译码 NN+1N+2执行NN+1N+2指令周期1指令周期2指令周期3、流水线操作:时钟周期123456789取指令NN+1 N+2 N+3 N+4 N+5 译码NN+1 N+2 N+3 N+4 N+5 执行NN+1 N+2 N+3 N+4 N+5 指令周期1指令周期4开始指令周期2开始指令周期5开始指令周期3开始指令周期6开始硬件乘法器 在数字信号处理的算法中(如FFT),需要做大量的乘法和加法。显然,乘法速度越快,数据处理能力就越强。而在一般的微处理器中,根本就没有乘法指令,即使有乘法指令的处理器,其乘法指令的执行时间也较长。DSP器件一般都有一个硬件乘法器,而且一次乘累加最少可在一
4、个时钟周期内完成。特殊DSP指令 DSP芯片采用了特殊的寻址方式和指令。例如TMS320系列的位反转寻址方式及其他一些特殊的指令。采用这些适合于数字信号处理的寻址方式和指令,能进一步减小数字信号处理的时间。4、DSP的应用 数字信号处理数字信号处理,如滤波、FFT、卷积等; 通信通信,如调制解调、纠错编码、传真、可视电话等; 语音处理语音处理,如语音编码、语音合成、识别、语音存储等; 图形图形/图像处理图像处理,如模式识别、图像压缩与传输、动画、机器人视觉等; 仪器仪表仪器仪表,如数据采集、函数/波形产生等; 军事军事,如保密通信、全球定位、雷达与声纳信号处理、导航与制导等; 医疗医疗,如核磁
5、共振、自动治疗仪等。第二章 DSP运算基础1、数的定标TMS320C/F240的字长为16。数的定标:是设定小数点在不同位置,来表示不同大小和不同精度的小数。Q表示法: 将16位二进制数由最低有效位(LSB)到最高有效位(MSB)的位置依次排列为015,则Qi表示小数点在数据第i位之后。 例如: Q0:表示小数点在数据第0位之后,即为一个整数。 Q15:表示小数点在数据第15位之后。 Q表示法及其十进制数值范围: Q表示法十进制数值范围Q15-1x 0.9999695Q14-2 x 1.9999390Q13-4 x 3.9998779Q12-8 x 7.9997559Q7-256 x 255.
6、9921875Q3-4096 x 4095.875Q2-8192 x 8191.75Q1-16384 x 16383.5Q0-32768 x 32767例如:对Q15而言,其能表示的最小负值为: 1000 0000 0000 0000(补) 1111 1111 1111 1111(反) 1,0000 0000 0000 0000(原) = -1其能表示的最大正值为: 0111 1111 1111 1111 = 2-1 +2-2 +2-3 +2-4 +2-5 +2-6 +2-7 +2-8 +2-9+2-10 +2-11 +2-12 +2-13 +2-14 +2-15 = 1- 2-15 = 0.
7、9999 6948 2421 875对Q0同样如此.2、IEEE 754浮点数表示法例如: 1 0 1 0 0 1 0 0 120.6 = 24(20 +2-1 + 2-2 + 2-3 + 2-4 + 2-5 + 2-6 + 2-7 + + 2-23 )其指数 = 4 + 127 = 131 小数 = 01001001 S = 02-16 小数 2-232-8 小数 2-15202-1 小数 2-7S27 指数 213、定点数与浮点数的转换关系转换公式: 浮点数(x)转换为定点数(xd): xd = int x 2Q 定点数(xd)转换为浮点数(x):x = float xd 2-Q 举例:浮
8、点数x = 0.4,定标Q=15,则对应的定点数为: xd = int x 2Q= int 0.4 215=13107反之,一个Q15表示的定点数13107对应的浮点数为: x = float xd 2-Q = float 13107 2-15 = 0.3999939Q数值的确定: 设系统中变量表示的数据最大绝对值为|max|,而且|max|小于或等于32767,由下式: 2n-1 |max| 2n 可得:Q=15-n举例:某变量取值范围为-7到15,则变量的|max| =15,n=4,则Q=15-4=11。 4、定点数的算术运算加减法:注意: 、必须保证两个操作数的定标值一样。 、若两个数据
9、的Q值不同,在保证数据准确性的前提下调整Q值使数据精度最高,即尽量将Q值小的数调整为与另一个数的Q值一样大。 、注意对溢出的判断和处理。举例: x = 0.4,y = 0.2,计算x + y 根据分析,采用Q15表示两个数据可以得到最高精度的运算, x 、 y的Q15定点表示分别为: xd = 13107, yd = 6553。 xd + yd = 13107+6553 = 19660结果转化为浮点数为:19960 2-15 = 0.5999756 0.6 定点数的乘法 分三种情况:、小数乘小数(数用Q15表示) Q15Q15=Q30,32位的乘积结果有两个符号位,利用移位操作得到乘积结果的Q
10、31表示。举例:0.50.5 = 0.25操作数用Q15表示为: 0.5 215 =16384=0100 0000 0000 0000B 0.100 0000 0000 0000 0.100 0000 0000 0000 = 00.01 0000 0000 0000 0000 0000 0000 0000将结果左移一位得到乘积结果的Q31表示为: 0.01 0000 0000 0000 0000 0000 0000 0000 0 = 20000000H表示的浮点数即为:0.25、整数乘整数(数用Q0表示) Q0Q0=Q0举例:135 = 65 操作数用Q0表示为: 13 = 0000 0000
11、 0000 1101B 5 = 0000 0000 0000 0101B 0000 0000 0000 1101 0000 0000 0000 0101 = 0000 0000 0000 0000 0000 0000 0100 0001 = 00000041H表示的浮点数即为:65、混合表示法 在对精度和数据范围要求都比较高的情况下,两个数可以采用介于Q15与Q0之间的不同的Q表示法。 举例: 设参与运算的两个数x和y的数值范围分别不超过 1和 4,两个数的Q值分别为Q15和Q13,为了保证数据范围,应该采用Q13。例如: x = 0.4 y = 3.2 ,计算x + y 因为 xd = 32
12、76, yd = 26214,则 xd + yd = 3276 + 26214 = 29490 转换为浮点数为:29490 2-13 3.59985 定点数的除法注意:DSP没有专门的除法指令,利用条件减法指令编写 子程序实现。、十进制的除法 在计算之前要保证分子不能大于分母的十倍,否则必须进行如下的处理:将分母乘上10(100或1000)后再按下面的计算过程进行除法运算,得到结果后再把该结果乘以10 (100或1000)即可得到最终的正确结果。 计算过程(子程序): i = 0 STEP1:重复的用分子减去分母(若分子小于分母,则余数即为分子;否则,余数=分子-分母),直到结果为小于分母的数
13、或0。得到执行的减法次数 = Ni 及余数。 STEP2: i = i +1,余数10作为分子,返回STEP1。 STEP3:结果 = N0 100 + Ni 10-i,i = 1,2,3, 举例1:求40/3 = ? step1:310 = 30; step2:40-30=10 30,70-30=4030,4030=1030,70-30=4030,4030=1030, 次数=3,余数=10; step6:根据要求的精度结束计算 step7:结果=1 100 +3 10-1 + 310-2 +3 10-3 + =1.3333 step8:最终结果= 1.333310=13.333 举例2:求3
14、/40= ? step1:3 40 ,次数=0,余数=3 ; step2:310 = 30,30 40;300 - 40=260,执行第1次减法;260 - 40=220,执行第2次减法; 220 - 40=180,执行第3次减法;180 - 40=140,执行第4次减法;140 - 40=100,执行第5次减法;100 - 40=60,执行第6次减法;60 - 40=20,执行第7次减法;次数=7,余数=20; step4: 2010=200,200 40; 200 - 40=160,执行第1次减法;160 - 40=120,执行第2次减法;120 - 40=80,执行第3次减法; 80 -
15、 40=40,执行第4次减法; 40 - 40=0,执行第5次减法;次数=5,余数=0; step5:结果=0 100 +0 10-1 + 710-2 +5 10-3 = 0.075、二进制的除法注意:在计算之前要保证分子小于分母的2倍。 计算过程同十进制的除法,下面仅举例。 计算40 / 3 = ? step1:分母左移3位(即乘以8),得分母=24; step2:00101000 ( =40) - 00011000 ( =24) =00010000 ( =16) 次数=1,余数=16 24; step3: 00100000 ( =32) (余数16左移一位) - 00011000 ( =2
16、4) =00001000 ( =8) 次数=1,余数=8 24; step4: 余数=16 (余数8左移一位) 24 次数=0; step5: 00100000 ( =32) (余数16左移一位) - 00011000 ( =24) =00001000 ( =8) 次数=1,余数=8 24; step6: 余数=16 (余数8左移一位) 24 次数=0; step7: 00100000 ( =32) (余数16左移一位) - 00011000 ( =24) =00001000 ( =8) 次数=1,余数=8 24; step8: 余数=16 (余数8左移一位) 24 次数=0; step9:
17、00100000 ( =32) (余数16左移一位) - 00011000 ( =24) =00001000 ( =8) 次数=1,余数=8 Vi,位7=000100 00002.5V0Vi,位6=1640110 00003.75V0Vi,位5=164+32=960111 00004.375V0Vi,位4=164+32+16=1120111 10004.69V0Vi,位2=064+32+16+8=1200111 10104.76V0Vi,位1=164+32+16+8+2=1220111 10114.80V0=Vi,位0=164+32+16+8+2+1=123模/数转换器的技术指标: 转换精度:
18、指对于一个给定的数字量,其实际的模拟电压值 与理论输入电压值之差。分辨率:指A/D转换器所能分辨的最小量化信号能力,通常用 A/D转换器的位数来表示。如对于12位A/D芯片,其 分辨率为12位。有时,分辨率也用最大容许模拟输 入值/2N来表示。例如,8位A/D芯片,其满量程为5V, 则分辨率为5V/ 28 =19.6mV。当模拟输入低于19.6mV 时,A/D转换器分辨不出来,均不转换。转换时间和转换率:转换时间是指转换启动到结束所需的时间, 转换率是转换时间的倒数。例如,转换时 间为 200ns,转换率为5MHz。C24DSP中ADC的特点: 内部集成了两个10位的A/D转换器,并带有内部采
19、样保持电路,共有16路模拟输入通道。ADC的转换结果保存到两级先进先出(FIFO)寄存器。ADC的预定标功能 作用:每个ADC在1个时钟周期内完成输入的采样,在5个时钟周期内完成模/数转换,所以每个采样/转换需要6个ADC时钟周期(大约需要6s )。对于不同的系统时钟频率,为了保证采样/转换时间大于等于6s ,ADC提供了一个预定标功能,来保证无论DSP时钟如何变化都可以确保ADC保持最优性能。 预定标值的确定: SYSCLK时钟周期TSYSCLK * 预定标值 * 6 6s 预定标值由ADC的控制寄存器ADCTRL2的其中三位决定,其对应关系见下表:例如: 系统时钟周期TSYSCLK=1/1
20、0MHz,根据上式可以计算得预定标值应大于等于10。ADCTRL2的ADCPSCALE预定标值BIT1 BIT2 BIT30 0 040 0 160 1 080 1 1101 0 0121 0 1161 1 0201 1 132ADC模块中的寄存器、ADC控制寄存器1(ADCTRL1)地址7032H:其中: 位15:仅用于仿真期间。 = 0 :当位14 = 0时,立即停止; = 1:仿真器停止之前,完成本次转换。 位14:仅用于仿真期间。 = 0 :操作由位15 确定; = 1:仿真器停止时,ADC继续运行。15141312111098SoftFreeADCIMSTARTADC2ENADC1E
21、NADCCONRUNADCINTENADCINTFLAG76543210ADCEOCADC2CHSELADC1CHSELADCSOC位13:ADC立即开始转换。 = 0 /1:无动作/立即启动转换。位12:ADC2的禁止/使能位,可以在转换过程中写入,不影 响本次转换,写入本位的信息在下一次转换时才生效。 = 0 /1: ADC2禁止/ ADC2被使能。位11:ADC1的禁止/使能位,同ADC2。位10:ADC连续转换设置位。 = 0 /1:无操作/连续转换。位9:ADC中断允许位。若被置位,则当ADCINTFLAG=1时, 将产生一次中断。位8:ADC中断标志位。若该位为1,表示有中断发生。
22、位7:转换结束标志。= 0 /1:转换结束/转换正在进行。位6位4:ADC2通道选择。 = 000111:依次选择通道8通道15。位3位1:ADC1通道选择。 = 000111:依次选择通道0通道7。位0:转换启动位。= 0 /1:无动作/启动转换。、ADC控制寄存器2(ADCTRL2)地址7034H:其中:位10:事件管理模块启动转换使能位,可以在任何时候写入,不影响本 次转换,写入本位的信息在下一次转换时才生效。 = 0 /1: 禁止/ 允许事件管理模块启动转换。位9:外部信号(即ADCSOC)启动转换使能位。 = 0 /1: 禁止/ 允许ADCSOC启动转换。位7位6:表明ADC1数据寄
23、存器FIFO的状态。 = 00 :FIFO空 01: FIFO 有一个数据。 10: FIFO 有两个数据。 11: FIFO 有两个数据,而且之前的数据至少丢失一个。位4位3:表明ADC2数据寄存器FIFO的状态。同ADCFIFO1。位2位0:A/D转换输入时钟预定标因子,见前表。15111098RservedADCEVSOCADCEXTSOCRserved7654320ADCFIFO1RservedADCFIFO2ADCPSCALE、A/D转换数字输出寄存器: 每个ADC包含一个2级FIFO数字输出寄存器。该寄存器包含一个模拟输入转换后的10位数字结果,存放在寄存器的高10位,即10位A/
24、D转换结果D9 D0 ,依次存放在FIFO的高10位D15 D6 中,读FIFO时,低6位D5 D0始终为0。 ADCFIFO1地址为7036H。 ADCFIFO2地址为7038H。ADC初始化编程举例:ADCTRL1 .set 07032h;ADC控制寄存器1的地址ADCTRL2 .set 07034h; ADC控制寄存器2的地址LDP #224;数据页=224(即0E0H)SPLK #1000100100000000B,ADCTRL1; 设置ADCTRL1SPLK #0000000000000101B, ADCTRL2;设置ADCTRL19、串行通信接口(SCI)功能:实现DSP与其他计算
25、机或设备之间的异步串行通行,可 以实现半双工或全双工及多机之间的通信。特点:该模块是一个8位片内外设,通过DSP的16位外部数据 总线的低8位与外部设备通信,读高8位的值不确定, 写高8位无效。SCI的内部控制寄存器也均为8位。SCI的主要结构模块:发送器:由三部分组成 一个发送数据引脚 SCITXD; 一个发送缓冲寄存器(SCITXBUF) 包含要发送的数据; 一个发送移位寄存器(TXSHF) 将SCITXBUF中的数据移位后经由 SCITXD串行输出。接收器:由三部分组成 一个接收数据输入引脚 SCIRXD; 一个接收缓冲寄存器(SCIRXBUF) 包含接收到的并行数据; 一个接收移位寄存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 原理 应用 课件
限制150内