DSP原理与应用课件2014_第1页
DSP原理与应用课件2014_第2页
DSP原理与应用课件2014_第3页
DSP原理与应用课件2014_第4页
DSP原理与应用课件2014_第5页
已阅读5页,还剩231页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DSP原理与应用第1章概述第2章TMS320LF240x系列DSP内部资源介绍第3章DSP寻址方式及指令系统第4、5、6、7章〔DSP设计开发平台〕第8章数字量I/O模块第9章事件管理器模块第10章A/D转换模块第11章串行外设接口模块第12章串行通信接口模块第13章CAN控制器模块第一章TMS320LF240xDSP概述一、DSP的开展及特点1.数字信号处理系统结构

低通滤波:将连续信号x〔t〕中的一些次要成分滤出。平滑滤波:滤出多余的高频分量,对时间域模拟信号起平滑作用。低通滤波ADCDSP平滑滤波DACx(t)y(t)2、DSP的开展和分类1〕开展:1978年,AMI第一片DSP器件1979年,Intel的Intel2920是第一块脱离了通用型微处理器结构的DSP芯片。1980年,NEC的μPD7720是第一个具有硬件乘法器的商用DSP芯片。1982年,Hitachi推出浮点DSP。1982年,TI推出第一代DSP芯片TMS32010及其系列产品。1986年,Motorola推出MC56001定点DSP芯片;1990年推出与IEEE浮点格式兼容的浮点DSP芯片。2〕分类按DSP芯片处理的数据格式:定点DSP、浮点DSP按DSP芯片的用途:通用型:TI公司的系列DSP专用型:数字滤波、FFT等2002年全球DSP厂商排名及市场份额统计(ForwardConcepts公司)TI:43.2%Agere(Lucent):13.9%Motorola:14.1%ADI:8.9%其它:19.9%总计:48.55亿美元(销售额增长率14.1%)DSP芯片已经在广泛的领域包括通信、计算机、电子数据处理、交通、消费等领域获得应用。2004年中国DSP市场规模为157.3亿元,无线通信仍是DSP应用的第一大领域,占60.2%。2006年全球数字信号处理DSP销售达90亿美元,2009年到达141亿美元。3、DSP的性能及特点1〕哈佛总线结构〔1〕普通微处理器的冯·诺伊曼结构:内部地址总线内部数据总线共享的程序和数据存储器CPU控制器ALU〔2〕DSP的哈佛总线结构:地址发生单元数据地址总线程序地址总线程序存储器数据存储器DSP控制ALU数据总线程序总线2)、指令流水线技术〔1〕非流水线操作时钟周期123456789取指令NN+1N+2译码NN+1N+2执行NN+1N+2指令周期1指令周期2指令周期3〔2〕流水线操作(三级流水线)〔四级流水线见P56〕时钟周期123456789取指令NN+1N+2N+3N+4N+5…译码N-1NN+1N+2N+3N+4N+5…执行N-2N-1NN+1N+2N+3N+4N+5…指令周期1指令周期4开始…指令周期2开始指令周期5开始…指令周期3开始指令周期6开始…3〕硬件乘法器在数字信号处理的算法中〔如FFT〕,需要做大量的乘法和加法。显然,乘法速度越快,数据处理能力就越强。而在一般的微处理器中,根本就没有乘法指令,即使有乘法指令的处理器,其乘法指令的执行时间也较长。DSP器件一般都有一个硬件乘法器,而且一次乘累加操作最少可在一个时钟周期内完成。4〕特殊DSP指令DSP芯片采用了特殊的寻址方式和指令。例如TMS320系列的位反转寻址方式及其他一些特殊的指令。采用这些适合于数字信号处理的寻址方式和指令,能进一步减小数字信号处理的时间。4、DSP的应用●数字信号处理,如滤波、FFT、卷积等;●通信,如调制解调、纠错编码、、可视等;●语音处理,如语音编码、语音合成、识别、语音存储等;●图形/图像处理,如模式识别、图像压缩与传输、动画、机器人视觉等;●仪器仪表,如数据采集、函数/波形产生等;●军事,如保密通信、全球定位、雷达与声纳信号处理、导航与制导等;●医疗,如核磁共振、自动治疗仪等。●自动控制,如运动控制等。二、TMS320LF240x概述TMS320系列DSP:定点TMS320C2000、TMS320C5000系列,局部TMS320C6000,浮点TMS320C6000TMS320同一系列产品具有相同的CPU结构,区别是片内的存储器和片上外设的配置不同,以满足不同领域的需要。1、定点数和浮点数介绍1〕定点数及其定标TMS320LF240x的字长为16。〔1〕何谓数的定标?设定小数点在不同位置,来表示不同大小和不同精度的小数。〔2〕定点数的Qi表示法:将16位二进制数由最低有效位〔LSB〕到最高有效位〔MSB〕的位置依次排列为0~15,那么Qi表示小数点在数据第i位之后。例如:Q0:表示小数点在数据第0位之后,即为一个整数。Q15:表示小数点在数据第15位之后。〔最高位为符号位,即为纯小数。〕〔3〕Q表示法的16位二进制数的范围:补码表示Q表示法十进制数值范围Q15-1≤x≤0.9999695(1-2-15(0.000030517578125))Q14-2≤x≤1.9999390(2-2-14(0.00006103515625))Q13-4≤x≤3.9998779(4-2-13(0.0001220703125))Q12-8≤x≤7.9997559(8-2-12(0.000244140625))Q7-256≤x≤255.9921875(256-2-7(0.0078125))Q3-4096≤x≤4095.875(4096-0.125)Q2-8192≤x≤8191.75(8192-0.25)Q1-16384≤x≤16383.5(16384-0.5)Q0-32768≤x≤32767例如:对Q15而言,其能表示的最小负值为:1.000000000000000(补)=-1其能表示的最大正值为:0.111111111111111=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.999969482421875=0.9999695(8位有效数据)2〕浮点数采用多个字节表示,提高精度。浮点数的表示方法很多。这里介绍标准IEEE754浮点数表示法.IEEE(美国电子电气工程师协会)在1985年提出的浮点数存放格式标准.IEEE754浮点数格式标准有两种,即单精度格式和双精度格式,此外还支持两种浮点数的扩展格式。单精度格式采用32位二进制表示,双精度格式采用64位二进制表示.〔采用科学计数法〕浮点数是将特定长度的连续字节的所有二进制位分割为特定宽度的符号域、指数域和尾数域三个域,其中保存的值分别用于表示给定二进制浮点数中的符号,指数和尾数。下面是IEEE754定义的单精度浮点数格式.

其中,S为符号位〔最高位〕占用1位〔0---正数,1---负数〕,指数位为经过偏置后的7位二进制数〔偏置值127〕,小数为规格化后的小数,且小数点前面的1隐含〔故小数实际位数为24位〕2-16小数

2-232-8小数

2-15指数202-1小数

2-7S27指数

21例如:将20.625转换位IEEE754浮点数格式.20.625=10100.101B=1.0100101×24B其指数=4+127=131=10000011B小数=0100101〔后面补0〕,符号=0,故20.625在内存中存放的格式为00H00HA5H41H(高位在后〕

其它浮点数格式IEEE754在标识符点数时,指数局部E和尾数局部M浮点数可采用以下四种根本格式:(1)单精度格式(32位):E=8位,M=23位,指数偏移值127。(2)扩展单精度格式:E≥11位,M≥23位。(3)双精度格式(64)位:E=10位,M=53位。指数偏移值1023(4)扩展双精度格式E≥15位,M≥63位。3〕定点数与浮点数的转换关系〔1〕转换公式:浮点数〔x〕转换为定点数〔xd〕:xd=int[x×2Q]定点数〔xd〕转换为浮点数〔x〕:x=float[xd×2-Q]举例:浮点数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.3999939〔2〕Q数值确实定:设系统中变量表示的数据最大绝对值为|max|,而且|max|小于或等于32767,由下式:2n-1≤|max|≤2n可得:Q=15-n举例:某变量取值范围为-7到15,那么变量的|max|=15,n=4,那么Q=15-4=11。

2、TMS320LF240x系列芯片概述CMOS技术〔3.3伏电压供电,降低了功耗〕指令执行速度到达30MIPS(30MHZ),实时性提高片内有32K字的FLASH程序存储器,1.5K字的数据/程序RAM,544字的双口RAM(DARAM)和2K字的单口RAM(SARAM)两个事件管理器模块〔EVA和EVB〕每个EV模块包含2个16位通用定时器,3个比较单元,3个捕获单元〔其中2个具有正交编码输入电路〕。可扩展总共192K字的程序存储器、数据存储器和I/O空间。看门狗定时器模块串行通信接口模块SCI串行外设接口模块SPI〔16位〕控制器局域网模块〔CAN2.0B〕基于锁相环〔PLL〕的时钟发生器模块40个可单独编程或复用的通用I/O引脚16通道的10位A/D转换器5个外部中断引脚〔复位、两个电机保护、两个外中断〕3种低功耗工作模式第1次完第二章:TMS320LF240x资源介绍TMS320LF240x系统结构图图1.4一、LF240x系列DSP的功能框图〔参见图1.4〕

DARAM(B1)(256字)DARAM(B0)(256字)CPU内核基于PLL的时钟模块(锁相环)10位ADC串行通信接口(SCI)串行外设接口(SPI)事件管理器(EVA、EVB)FLASH(4K+12K+12K+4K)数字I/O(与其它引脚共享)标准测试接口(JTAG)DARAM(B2)(32字)看门狗定时器外部存储器接口(EMI)CAN总线接口SARAM(2K字)TMS320LF2407引脚功能1〕引脚介绍

地址线:A15~A0,数据线:D15~D0/DS(P87):数据存储器选通信号/PS(P84):程序存储器选通信号/IS(P82):I/O端口选通信号/READY(P120):数据准备好信号R//W〔P92):读/写信号W//R/IOPC0(P19):R//W的反逻辑信号,可作为通用I/O使用/RD:读使能信号/WE:写使能信号/STRB(P96):外部存储器选通信号A/D转换器信号:ADCIN00~ADCIN15:16路模拟量输入通道VREFHI(P115):ADC参考电压高端输入VREFLO〔P114〕:ADC参考电压低端输入XINT2/ADCSOC/IOPD0(P21):ADC启动信号/输入输出端口D0定时器输出:T1PWM/T1CMP/IOPB4(P16):EVA通用定时器1比较输出或通用I/OT2PWM/T2CMP/IOPB5(P18):EVA通用定时器2比较输出或通用I/OT3PWM/T3CMP/IOPF2(P8):EVB通用定时器3比较输出或通用I/OT4PWM/T4CMP/IOPF3(P6):EVB通用定时器4比较输出或通用I/O比较器输出信号:PWM1/IOPA6(P56):EVA的比较/PWM输出引脚#1或通用I/OPWM2/IOPA7(P54):EVA的比较/PWM输出引脚#2或通用I/OPWM3/IOPB0(P52):EVA的比较/PWM输出引脚#3或通用I/OPWM4/IOPB1(P47):EVA的比较/PWM输出引脚#4或通用I/OPWM5/IOPB2(P44):EVA的比较/PWM输出引脚#5或通用I/OPWM6/IOPB3(P40):EVA的比较/PWM输出引脚#6或通用I/OPWM7/IOPE1(P65):EVB的比较/PWM输出引脚#1或通用I/OPWM8/IOPE2(P62):EVB的比较/PWM输出引脚#2或通用I/OPWM9/IOPE3(P59):EVB的比较/PWM输出引脚#3或通用I/OPWM10/IOPE4(P55):EVB的比较/PWM输出引脚#4或通用I/OPWM11/IOPE5(P46):EVB的比较/PWM输出引脚#5或通用I/OPWM12/IOPE6(P38):EVB的比较/PWM输出引脚#6或通用I/O捕获单元引脚CAP1/QEP1/IOPA3(P83):EVA捕捉逻辑1/正交编码1或通用I/OCAP2/QEP2/IOPA4(P79):EVA捕捉逻辑2/正交编码2或通用I/OCAP3/IOPA5(P75):EVA捕捉逻辑3或通用I/OCAP4/QEP3/IOPE7(P88):EVB捕捉逻辑4/正交编码3或通用I/OCAP5/QEP4/IOPF0(P81):EVB捕捉逻辑5/正交编码4或通用I/OCAP6/IOPF1(P69):EVB捕捉逻辑6或通用I/OSPI端口控制线:SPISIMO/IOPC2(P30):SPI从输入、主输出引脚或通用IOSPISOMI/IOPC3(P32):SPI从输出、主输入引脚或通用IOSPICLK/IOPC4(P35):SPI时钟信号或通用I/O/SPISTE/IOPC5(P33):SPI从设备发送使能信号或通用I/OSCI模块信号:SCITXD/IOPA0(P25):异步串行口发送端或通用I/OSCIRXD/IOPA1(P26):异步串行口接收端或通用I/OCAN总线信号CANRXD/IOPC7(P70):CAN接受数据信号或通用I/OCANTXD/IOPC6(P72):CAN发送数据信号或通用I/O中断信号:/RS(P133):复位输入XINT1/IOPA2(P23):外中断1请求信号或通用I/OXINT2/ADCSOC/IOPD0(P21):外中断2请求信号或A/D启动或通用I/O/PDPINTA(P7):EVA的可屏蔽的电源保护中断/PDPINTB(P137):EVB的可屏蔽的电源保护中断时钟信号:XTAL2(P124):PLL振荡器输出XTAL1/CLKIN(P123):PLL振荡器输入CLKOUT/IOPE0(P73):时钟输出信号或通用I/OJTAG仿真接口测试信号TCK(P135):测试时钟TDI(P139):测试数据输入端TDO(P142):测试数据输出端TMS(P144):测试模式选择TMS2(P36):测试模式选择2/TRST(P1):JTAG测试复位端EMU0(P90):仿真器引脚0EMU1//OFF(P91):仿真器引脚1计数器控制信号:TDIRA/IOPB6(P14):EVA定时器计数方向选择或通用I/OTCLKINA/IOPB7(P37):EVA定时器的计数时钟信号或通用I/OTDIRB/IOPF4(P2):EVB定时器计数方向选择或通用I/OTCLKINB/IOPF5(P126):EVB定时器的计数时钟信号或通用I/OMP//MC(P37):微处理器/微控制器模式选择逻辑1----外存储器,逻辑0-------内存储器其它信号:电源和地:CPU内核数字电源:VDD、VSS,IO数字电源:VDDO、VSSO,ADC模拟电源:VCCA、VSSAPLL电压:PLLVCCAVCCP〔5v〕:FLASH编程电压输入引脚IOPF6:通用I/OTP1(FLASH):FLASH阵列测试引脚TP2(FLASH):FLASH阵列测试引脚/BIO/IOPC1(P119):分支控制引脚〔BCNDPma,BIO指令)PLLF1(P11):锁相环外接滤波器输入1PLLF2(P10):锁相环外接滤波器输入2/BOON_EN/XF(P121):引导ROM使能2、LF240xCPU结构中央算术逻辑单元(CALU)累加器(ACC(ACCH,ACCL)CALU的输入数据定标移位器和输出数据定标移位器乘法器乘积结果寄存器PREG乘积定标移位器辅助寄存器运算单元(ARAU)状态寄存器暂存器(TREG)辅助寄存器CPU结构图〔图2.1〕1〕ACC介绍:32位存放器,接受CALU的运算结果,输出送CALU或数据总线2〕CALU介绍:完成累加器中数据和来自数据存储器或乘积存放器的数据之间的算术运算、逻辑运算和移位操作,32位运算结果送ACC。3〕乘法器介绍:实现两个16位数据的乘积,结果是32位。乘数或被乘数之一在TREG中,另外一个来自数据总线或程序总线。4〕输入数据定标移位器(ISCALE)CALU输入数据定标移位器〔输入移位器〕:将输入的16位的数据左移〔0-16位〕,作为CALU的32位输入数据。〔移位量由指令给出或由TREG给出〕。左移时对符号位要进行扩展,由SXM(符号扩展位〕决定。5〕输出数据定标移位器(OSCALE)将累加器里的结果输出到数据存储器之前左移〔0-7)位,累加器里的数据保持不变。6〕乘积定标移位器〔PSCALE〕:将乘积存放器的数据在输出到CALU或数据总线之前进行移位。PREG的内容不变。移位方式由ST1(状态存放器1〕中的PM〔乘积移位方式位〕指定。00---不移位01---左移1位10---左移4位11---右移6位7〕辅助存放器算术单元〔ARAU〕和辅助存放器ARAU独立于CALU。用于产生数据存储器的地址〔间接寻址的指令中〕。内有8个辅助存放器〔AR0、AR1、AR2、AR3、AR4、AR5、AR6、AR7〕,由ARP(ST0中的3位〕确定8个辅助存放器中之一来提供数据单元的地址。〔加1,减1,加AR0,减AR0,加常量〔ADRK),减常量〔SBRK〕〕8〕状态存放器ST0和ST1〔1〕特点:可以被保存到数据存储器〔采用指令——存储状态存放器指令SST#n〕,也可以从数据存储器加载〔采用指令——装载状态寄存器指令LST#n〕。也可以用其他指令设置ST0和ST1:如:SETC指令〔置位存放器指定的位〕CLRC指令〔去除存放器中指定的位〕〔2〕作用:可以用于子程序中保存和恢复机器的状态。辅助算术单元ARAU(图2.3〕〔3〕ST0介绍〔16位〕D15~D13D12D11D10D9D8~D0其中:ARP——辅助存放器指针,用于选择作为间接寻址的辅助存放器〔ARn〕,采用二进制编码。OV——溢出标志位,用于表示CALU是否有溢出产生。OVM——溢出方式位,决定如何处理CALU中的溢出。=0:累加器中结果正常溢出;=1:溢出时,累加器被置为最大正数或最小负数。INTM——中断允许位,使能〔=0〕或禁止〔=1〕所有的可屏蔽中断。(注:该位不受LST#n的影响〕DP——数据存储器页指针。当使用直接寻址时,DP存放存储器的数据页〔即存储器地址的高9位〕,DP与指令代码的最低7位构成16位存储器地址。ARPOVOVM1INTMDP〔4〕ST1介绍〔16位〕其中:ARB——辅助存放器指针缓冲器〔当改变ST0时,用于储存原ARP值〕CNF——片内DARAM配置位。该位决定将DARAMB0映射至数据空间或程序空间。CNF=0,B0映射到数据区CNF=1,B0映射到程序区TC——测试/控制标志位。〔受BIT,BITT,CMPR,LST和NORM指令影响〕SXM—符号扩展方式位。〔为1时,符号扩展,为0时,符号不扩展〕C——进位标志位。〔有借位时为0〕XF——XF引脚状态位。可通过SETCXF或CLRCXF指令对引脚XF置位或清零〕PM——乘积移位方式。决定乘积移位存放器的移位情况。

D15~D13D12D11D10D9D8~D5D4D3~D2D1~0ARBCNFTCSXMC1111XF11PM3、LF240x的存储器1〕LF240x的片内总线结构:〔1〕特点:●独立的数据读地址总线和数据写地址总线使得CPU可以在同一个机器周期内进行读和写操作。●独立的程序和数据地址总线允许同时访问程序指令和数据。〔2〕片内总线的种类:●PAB——程序地址总线:提供访问程序存储区的地址。●DRAB——数据读地址总线:提供从数据存储区所要读取数据的地址。●DWAB——数据写地址总线:提供写数据存储区的地址。●PRDB——程序读总线:它载有从程序存储器读取的指令代码以及表格等信息,并送到CPU。●DRDB——数据读总线:它将数据从数据存储器载送到中心运算逻辑单元〔CALU〕和辅助存放器算术单元〔ARAU〕。●DWEB——数据写总线:将数据送数据存储器。

外部地址总线CPU系统模块FLASH/ROMB0DARAMB1,B2DARAM外部数据总线PABDRABDWABPRDBDRDBDWEB存储器映像寄存器第2次完二、存储器的分配情况:LF240x系列DSP的设计基于增强的哈佛结构。通过三组并行总线访问多个存储空间。PAB-----程序地址总线DRAB---数据读地址总线DWAB--数据写地址总线由于总线是独立的,可以在一个给定的机器周期内,CALU可执行多达3次的并行存储器操作。LF240x系列DSP的地址影像〔3个可独立选择的空间〕●64K字的程序存储器空间●64K字的数据存储器空间●64K字的I/O空间1、程序存储器空间1〕作用:保存程序代码以及数据表信息和常量。包括片内双口RAM〔DARAM〕和片内FLASH/EEPROM/ROM或外部程序存储器。访问外部程序存储器时,提供选通信号/PS.2〕程序存储器的映射图。影响程序存储器配置的因素:〔1〕CNF标志位:决定B0存储器的性质〔数据存储器或程序存储器〕,CNF=0时,B0被映射为数据存储器空间;CNF=1时,B0被映射为程序存储器空间。〔2〕MP//MC引脚:决定控制器的工作模式〔微处理器方式/微计算机方式〕。MP//MC=0时,为微计算机方式,访问片内ROM或FLASH。MP//MC=1时,为微处理器方式,访问外部程序存储器。无论何种工作模式,CPU复位时,都是从存储器的0000H单元读取复位向量。〔跳转指令BLABEL)3〕程序存储空间介绍中断向量区〔0000~003FH〕、用户程序存储器0040~7FFFH(0FDFFH外部)和B0的影射区〔0FF00~FFFFH,此时CNF=1)。F2407的程序存储器映射图2、数据存储器空间1〕64K字数据存储器影像图2〕数据存储空间的访问整个数据存储器空间划分为512个数据页〔每个数据页的容量为128个字〕,编号为:0、1、--、511。CPU将要访问的数据空间所在的数据页称为当前数据页,由ST0中的DP指针指定。数据页DP指针7位偏移量数据存储器地址空间0000000000000000…1111111第0页:0000h–007Fh000000001同上第1页:0080h–00FFh000000010同上第2页:0100h–017Fh000000011同上第3页:0180h–01FFh000000100同上第4页:0200h–027Fh………111111110同上第510页:0FF00h–0FF7Fh111111111同上第511页:0FF80h–0FFFFh3〕数据存储空间介绍64K字数据空间:存储器影像存放器区:0000~005FH片上B0〔可编程〕、B1和B2快。片上外设帧区:PF1:除EVA\EVB之外的片上资源存放器影像区〔7000~73FFH〕PF2:片上EVA存放器影像区〔7400~743FH)PF3:片上EVB存放器影像区(7500~753FH)外部数据存储器空间〔8000~0FFFFH〕3、I/O空间可用于外部I/O扩展三、系统配置和中断1、系统配置存放器1〕系统控制和状态存放器1〔SCSR1〕〔7018H〕D14:CLKSRCCLKOUT引脚源选择位0--------CLKOUT引脚输出CPU时钟1--------CLKOUT引脚输出WDCLK时钟D13~D12:LPM(1:0)低功耗模式选择位执行指令IDLE时进入何种低功耗模式00CPU进入IDLE1〔LPM0)模式01CPU进入IDLE2〔LPM1)模式1xCPU进入HALT〔LPM2)模式D15D14D13D12D11D10D9D8RESCLKSRCLPM1LPM0CLKPS2CLKPS1CLKPS0RESD7D6D5D4D3D2D1D0ADCCLKENSCICLKENSPICLKENCANCLKENEVBCLKENEVACLKENRESILLADRD11~D9:CLKPS(2:0)PLL时钟预定标选择位。D7~D2:对应ADC、SCI、SPI、CAN、EVB和EVA的时钟使能位。0-----关闭对应模块,1------使能对应模块的时钟D0:ILLADR无效地址检测位1------发生CPU访问非法地址CLKPS2CLKPS1CLKPS0系统时钟频率CLKPS2CLKPS1CLKPS0系统时钟频率0004fin1000.8fin0012fin1010.66fin0101.33fin1100.57fin011fin1110.5fin2〕系统控制和状态存放器2〔SCSR2〕〔7019H〕D6:I/PQUAL输入时钟限定器。针对CAP1~CAP6、XINT1~XINT2、ADCSOC以及PDPINTA/B引脚信号锁存时钟周期〔CLKOUT〕的宽度。0-------锁存脉冲至少5个时钟周期1-------锁存脉冲至少11个时钟周期D5:WDOVERRIDEWD保护位〔复位时为1〕。0------用户不能通过软件来禁止WD。〔不能通过软件置1,写1时清零〕1------使用户能够通过软件禁止WD工作。因而复位时,可以通过向WDCR〔看门狗控制存放器〕的WDDIS位置1,来禁止WD工作。D15~D8RESD7D6D5D4D3D2D1D0RESI/PQUALWDOVERRIDEXMIFHI-Z/BOOTENMP//MCDONPOND4:XMIFHI_ZXMIF高阻控制位。控制外部存储器接口信号〔XMIF〕。0----所有XMIF信号处于正常驱动模式;1----所有XMIF信号处于高阻态。D3:/BOOTENBOOT使能脚状态位。〔复位时引脚状态,可软件改变〕0----使能引导ROM。地址空间0000H~00FFH被片内引导ROM快占用。此时禁止使用FLASH存储器。1----禁止引导ROM。D2:MP//MC微处理器/微控制器选择位。〔复位时引脚MP//MC的状态,可通过软件改变〕0--------微控制器方式,程序地址范围0000H~07FFFH被影射到片内存储器。1--------微处理器方式,程序地址范围0000H~07FFFH被影射到片外存储器。D1~D0:SARAM程序/数据空间选择位。DONPONSARAM状态00地址空间不被影射,该空间被分配到外部存储器01SARAM被映射到片内程序空间10SARAM被映射到片内数据空间11SARAM既被映射到片内程序空间,又被映射到片内数据空间2、中断优先级和中断向量表F240x系列DSP利用CPU支持的6个可屏蔽中断,采用中断扩展设计来满足大量的外设中断需求。表2.5为F240xA器件的中断优先级和中断入口地址向量表1)CPU管理的6个可屏蔽中断INT1~INT6的外设中断和外部逻辑中断。(1〕INT1对应的中断源〔cpu中断向量表地址0002H〕:共9个PDPINTA(0020H)EVA功率驱动保护中断PDPINTB(0019H)EVB功率驱动保护中断ADCINT(0004H)ADC高优先级中断XINT1(0001H)外中断1高优先级中断XINT2(0011H)外中断2高优先级中断SPIINT(0005H)SPI高优先级中断〔同时接收和发送〕RXINT(0006H)SCI接收高优先级中断TXINT(0007H)SCI发送高优先级中断CANMBINT(0040H)CAN邮箱的高优先级中断(2〕INT2对应的中断源〔cpu中断向量表地址0004H〕:共15个CANERINT(0041H)CAN错误的高优先级中断CMP1INT(0021H)EVA的比较单元1中断CMP2INT(0022H)EVA的比较单元2中断CMP3INT(0023H)EVA的比较单元3中断T1PINT(0027H)EVA的定时器1周期中断T1CINT(0028H)EVA的定时器1比较中断T1UFINT(0029H)EVA的定时器1下溢中断T1OFINT(002AH)EVA的定时器1上溢中断CMP4INT(0024H)EVB的比较单元4中断CMP5INT(0025H)EVB的比较单元5中断CMP6INT(0026H)EVB的比较单元6中断T3PINT(002FH)EVB的定时器3周期中断T3CINT(0030H)EVB的定时器3比较中断T3UFINT(0031H)EVB的定时器3下溢中断T3OFINT(0032H)EVB的定时器3上溢中断(3〕INT3对应的中断源〔cpu中断向量表地址0006H〕:共6个T2PINT(002BH)EVA的定时器2周期中断T2CINT(002CH)EVA的定时器2比较中断T2UFINT(002DH)EVA的定时器2下溢中断T2OFINT(002EH)EVA的定时器2上溢中T4PINT(0039H)EVB的定时器4周期中断T4CINT(003AH)EVB的定时器4比较中断(4〕INT4对应的中断源〔cpu中断向量表地址0008H〕:共8个T4UFINT(003BH)EVB的定时器4下溢中断T4OFINT(003CH)EVB的定时器4上溢中断CAP1INT(0033H)EVA的捕获单元1中断CAP2INT(0034H)EVA的捕获单元2中断CAP3INT(0035H)EVA的捕获单元3中断CAP4INT(0036H)EVB的捕获单元4中断CAP5INT(0037H)EVB的捕获单元5中断CAP6INT(0038H)EVB的捕获单元6中断(5〕INT5对应的中断源〔cpu中断向量表地址000AH〕:共5个SPIINT(0005H)SPI低优先级中断RXINT(0006H)SCI接收低优先级中断TXINT(0007H)SCI发送低优先级中断CANMBINT(0040H)CAN邮箱的低优先级中断CANERINT(0041H)CAN错误的低优先级中断(6〕INT6对应的中断源〔cpu中断向量表地址000CH〕:共3个ADCINT(0004H)ADC低优先级中断XINT1(0001H)外中断1低优先级中断XINT2(0011H)外中断2低优先级中断2)CPU直接管理的中断源RESET复位中断〔含WD溢出中断〕〔中断向量地址0000H〕保存中断〔中断向量地址0026H〕用于仿真NMI中断〔中断向量地址0024H〕软件不可屏蔽中断保存中断〔中断向量地址000EH〕分析中断〔厂家〕TRAP中断〔中断向量地址0022H〕TRAP指令中断假中断〔外设中断向量地址0000H〕假中断向量INT8~INT16(中断向量地址0010H~0020H)软件中断INT20~INT31(中断向量地址0028H~003fH)软件中断3、外设中断扩展控制器F240x内核通过6个可屏蔽中断管理多个外设中断请求,外设中断扩展控制器〔PIE〕模块如图2.8所示。F240x系列DSP通过两级中断层次来响应外设中断。在底层中断,外设中断请求〔PIRQ〕在中断控制器处相或产生一个到CPU的中断请求〔INTn)。每个外设都有各自独立的中断使能位和中断标志位。当外设中断使能时,假设外设中断事件发生,将产生一个从外设到中断控制器的中断请求。在高层中断,设置中断屏蔽存放器IMR,用来使能可屏蔽中断〔INTn)。当外设中断请求产生时,触发中断标志存放器IFR,从而向CPU发出中断请求,假设CPU开中断,那么CPU响应外设中断,在对应中断向量表中获得中断向量,转去执行中断效劳程序。4、外设中断向量由于每个可屏蔽中断〔INTn〕对应多个外设,为识别请求中断的外设,每个外设都设置了一个外设中断向量,CPU响应中断时,外设自动将外设中断向量送到外设中断向量存放器〔PIVR〕中。故有两个中断向量表,CPU中断向量表用用来得到相应CPU中断的一级通用中断效劳程序GISR,外设向量表用来得到响应某一特定外设事件的特定中断效劳子程序SIRS。具体方法是在GIRS中读取PIVR,根据PIVR值转去执行SIRS.LDP#0E0HLACLPIVR,1ADD#PVECTORS;PVECTORS为特定中断效劳子程序的入口地址BACC5、假中断向量假〔phantom)中断向量是保持中断系统完整性的一个特例。当CPU响应外设中断时,假设外设没有将外设中断向量装入PIVR,那么假中断向量0000H被装入PIVR,这种缺省设置保证了系统按照可控的方式处理。6、CPU中断存放器1〕CPU中断标志存放器〔IFR〕〔0006H〕D5~D0:INT6flag~INT1falg中断标志位0------未发生中断1------产生中断〔中断悬挂〕读取IFR可以识别悬挂的中断,而向IFR写1将去除已挂起的中断。去除IFR的方法:LACLIFRSACLIFRCPU响应中断时或复位都将IFR标志去除。〔外设中断标志位不能中断去除,需要软件去除〕D15~D6D5D4D3D2D1D0RESINT6flagINT5flagINT4flagINT3flagINT2flagINT1flag2〕CPU中断屏蔽存放器IMR〔0004H〕D5~D0:INT6mask~INT1maskINTn中断屏蔽位0--------禁止中断1--------使能中断7、外设中断存放器1〕外设中断向量存放器〔PIVR〕〔701EH〕存放最近一次应答的外设中断向量。2〕外设中断请求存放器0〔PIRQR0)(7010H)D15~D6D5D4D3D2D1D0RESINT6maskINT5maskINT4maskINT3maskINT2maskINT1maskD15D14D13D12D11D10D9D8IRQ0.15IRQ0.14IRQ0.13IRQ0.12IRQ0.11IRQ0.10IRQ0.9IRQ0.8D7D6D5D4D3D2D1D0IRQ0.7IRQ0.6IRQ0.5IRQ0.4IRQ0.3IRQ0.2IRQ0.9IRQ0.83〕外设中断请求存放器1〔PIRQR1)(7011H)4〕外设中断请求存放器2〔PIRQR2)(7012H)IRQn.x外设中断请求位0------相应的中断请求未被悬挂1------悬挂中断请求〔可读写,写1会发出一个中断请求到CPU内核〕〔见表2.6、表2.7和表2.8〕D15D14D13D12D11D10D9D8RESIRQ2.14IRQ2.13IRQ2.12IRQ2.11IRQ2.10IRQ2.9IRQ2.8D7D6D5D4D3D2D1D0IRQ2.7IRQ2.6IRQ2.5IRQ2.4IRQ2.3IRQ2.2IRQ2.9IRQ2.8D15D14D13D12D11D10D9D8RESIRQ1.14IRQ1.13IRQ1.12IRQ1.11IRQ1.10IRQ1.9IRQ1.8D7D6D5D4D3D2D1D0IRQ1.7IRQ1.6IRQ1.5IRQ1.4IRQ1.3IRQ1.2IRQ19IRQ1.85〕外设中断应答存放器0〔PIACKR0)(7014H)6〕外设中断应答存放器1〔PIACKR1)(7015H)7〕外设中断应答存放器2〔PIACKR2)(7016H)D15D14D13D12D11D10D9D8RESIAK1.14IAK1.13IAK1.12IAK1.11IAK1.10IAK1.9IAK1.8D7D6D5D4D3D2D1D0IAK1.7IAK1.6IAK1.5IAK1.4IAK1.3IAK1.2IAK1.1IAK1.0D15D14D13D12D11D10D9D8IAK0.15IAK0.14IAK0.13IAK0.12IAK0.11IAK0.10IAK0.9IAK0.8D7D6D5D4D3D2D1D0IAK0.7IAK0.6IAK0.5IAK0.4IAK0.3IAK0.2IAK0.1IAK0.0D15D14D13D12D11D10D9D8RESIAK2.14IAK2.13IAK2.12IAK2.11IAK2.10IAK2.9IAK2.8D7D6D5D4D3D2D1D0IAK2.7IAK2.6IAK2.5IAK2.4IAK2.3IAK2.2IAK2.1IAK2.0IAKn.x外设中断应答位〔见表2.9、表2.10和表2.11〕写入1引起相应的外设中断应答被插入,从而将相应的外设中断请求位清零。8、外部中断控制存放器F240x系列DSP有两个外部中断引脚:XINT1和XINT2.XINT1和XINT2的有效低电平为6个〔或12个〕CLKOUT周期。1〕外部中断1控制存放器〔XINT1CR)(7070H)D15:XINT1flag外中断1标志位。当检测到引脚上有所选的跳变,将置位该位。当相应的中断被应答时,该位自动清0。D2:XINT1polarity外中断1极性控制位。0------下降沿产生中断1------上升沿产生中断D1:XINT1priority外中断1优先级控制位。0---高优先级,1----低优先级D0:XINT1enable外中断1使能位。0----屏蔽中断,1-----使能中断D15D14~D3D2D1D0XINT1flagRESXINT1polarityXINT1priorityXINT1enable2〕外部中断2控制存放器〔XINT2CR)(7071H)各位定义与INT1CR相同。D15D14~D3D2D1D0XINT2flagRESXINT2polarityXINT2priorityXINT2enable第3次完第三章寻址方式与指令系统一、DSP寻址方式介绍1、寻址方式的定义:CPU获取操作数的方式2、寻址方式分类1〕立即寻址:操作数在指令代码中直接以常数给出,包括短立即数寻址〔8,9,13〕和长立即数寻址〔16位〕。下面两种寻址方式仅针对数据存储器。2〕直接寻址:将指令代码中的7位偏移地址与数据存储器页指针〔DP〕的9位组合起来形成16位数据存储器地址。3〕间接寻址:通过8个16位辅助存放器访问数据存储器。3、立即寻址介绍1〕短立即数寻址操作数前加’#’,操作数可以采用多种数制表示。特点:指令代码中用一个8位、9位或13位的常数作为操作数,指令均为单字指令。举例:RPT#63H;将紧跟其后的指令重复执行100次指令格式:D15…D8D7D01011101101100011RPT指令操作码8位立即数63HLDP#0E0H;对9位数据页指针赋值2〕长立即数寻址特点:指令代码中用一个16位的常数(可以是绝对值常数或是二进制补码)作为操作数。指令为双字指令。举例:ADD#0A000H,2;将立即数A000H左移2位后与累加器内容相加,结果存累加器中。第一个字:1011111110010010ADD指令操作码移位次数第二个字:101000000000000016位长立即数=0A000H4、直接寻址介绍当操作数位于数据存储器中时,可以采用直接寻址和间接寻址,指令代码中有一位标识。要求指令执行前,必须指定数据页指针DP〔LDP,LST指令)1〕指令格式

D15D14D8D7D6D5…D1D0

高8位(MSB)0低7位(LSB)指令操作码偏移量(地址低7位)页内数据存储器地址偏移量数据页(地址高9位)DP中9位值(由ST0决定当前页)直接寻址标志形成16位数据存储器地址:2〕直接寻址要求应首先为页指针存放器DP装入一个适当的9位二进制数〔LDP#k;k为0~511(000H~1FFH〕注意:●DSP复位时并没有初始化DP内容,因此程序中要访问数据存储器之前应该用LDP指令确定当前数据页。●如果程序需要访问不同的数据页,那么每当访问新的数据存储器前,必须先修改DP值,以确保访问正确的数据页。举例:LDP#0E0H;DP指向0E0H(0/1110/0000B)数据页,地址为7000H~707FH:〔0111/0000/0000/0000B~0111/0000/0111/1111B〕ADD9H,4;该指令将数据存储器7009H单元的内容左移4位后与ACC相加,结果存ACC

指令代码及地址形成过程如下:D15D14

…D8D7D6

…D1D0ADD操作码0010010000001001数据存储器地址偏移量(9)移位次数(4)直接寻址标志011100000DP=0E0H

000010010111000016位数据存储器地址=7009H5、间接寻址方式介绍1〕特点:用8个16位辅助存放器ARn〔但每次寻址只能使用其中一个〕内容作为间接的地址,可以访问64K数据存储空间中的任一单元,不受当前数据页的限制。2〕辅助存放器的选择:将一个0~7的值装入状态存放器ST0中的辅助存放器指针ARP,ARP所指向的辅助存放器称为当前辅助存放器,当前AR中的内容就是要访问的数据存储器的地址。〔采用MAR指令、LST指令或采用变址寻址的指令中指定新的当前辅助存放器〕3〕间接寻址方式中辅助存放器的变址方式在间接寻址方式中,指令执行完后,对当前辅助存放器的内容有4类〔7种〕不同的处理方法〔变址方式〕:〔1〕*--------辅助存放器不变〔当前AR内容不变〕:例如:MAR*,AR2;选择AR2作为当前辅助存放器,即ARP=2(010B),假设执行指令前ARP=1,那么AR1的值不变。〔2〕*+或*---------辅助存放器内容加1或减1指令使用当前辅助存放器的内容作为数据存储器地址,指令执行后,将当前辅助存放器的值加1或减1。例如:ADD*+,8;将当前辅助存放器的内容对应地址的数据存储单元的内容左移8位后加到ACC,并将当前辅助存放器的值加1〔3〕*0+或*0-------增加或减去一个指定的量(在辅助存放器AR0中)辅助存放器AR0存指定的量。指令将当前辅助存放器的值作为数据存储器地址,指令执行之后,将当前辅助存放器的值增加或减去AR0的内容,即指定量。例如:ADD*0+,AR1;将当前辅助存放器的对应地址的数据存储器的内容加到ACC,并将AR0的值加给当前AR,该指令结束后指定AR1为当前AR。〔4〕*BR0+或*BR0--------逆向进位加或减去一个指定的量辅助存放器AR0存指定的量。当前辅助存放器的值作为数据存储器地址使用之后,当前辅助存放器的值增加或减去AR0保存的指定量。但该加法或减法是逆向进位〔主要用于FFT〕,即加减法是从高位开始运算,向低位进位或借位。例如:ADD*BR0+,AR5;将当前辅助存放器对应地址的数据存储器的内容加到ACC,并将AR0的值按反向进位加给当前AR,该指令结束后指定AR5为当前AR。间接寻址时,必须采用上边的7种形式之一,同时可以指定新的当前辅助存放器。4〕间接寻址的指令代码格式指令码1ARUNNARD15D14D8D7D6D5D4D3D2D1D0间接寻址当前辅助存放器变址方式代码更新当前辅助存放器标志新的当前辅助存放器代码注意:〔1〕指令码中包含操作数的移位信息〔2〕更新当前辅助存放器标识N=0ARP内容不变N=1ARP内容改变〔3〕ARU代码和NAR代码含义见下页ARU(D6~D4)变址方式000*001*-010*+011保留100*BR0-101*0-110*0+111*BR0+NAR(D2~D0)新指定当前辅助寄存器000AR0001AR1010AR2011AR3100AR4101AR5110AR6111AR7二、指令集介绍1、指令类型〔按功能〕累加器、算术与逻辑指令〔见表3.3〕辅助存放器和数据页指针指令〔见表3.4〕暂时存放器〔TREG〕、乘积存放器〔PREG)和乘法指令〔见表3.5〕转移指令〔见表3.6〕控制指令〔见表3.7〕I/O和存储器操作〔见表3.8〕1〕累加器、算术与逻辑指令〔表3.3〕ABSACC绝对值ADDACC加移位后的存储器内容或立即数,送ACCADDC带进位加法(无立即数寻址)ADDS带符号抑制的加法ADDTTREG指定移位的加法ANDACC逻辑与移位后的存储器内容或长立即数,送ACCCMPLACC取反(按位取反)LACC移位后的存储器内容或立即数加载ACCLACL存储器内容或短立即数加载ACC的低段(无移位操作,符号不扩展)LACTTREG指定移位的ACC加载NEGACC取负(*-1)NORMACC内容规格化(仅间接寻址)ORACC逻辑或移位后的存储器内容或长立即数,送ACCROLACC带进位循环左移一位RORACC带进位循环右移一位SACH存ACC高段(ACC内容左移0~7位)SACL存ACC低段(ACC内容左移0~7位)SFLACC左移一位(无进位位)SFRACC右移一位(无进位位)SUBACC减移位后的存储器内容或立即数,送ACCSUBB带借位的减法SUBC条件减法(用于除法子程序)SUBS带符号抑制的减法SUBTTREG指定移位减法XORACC逻辑异或移位后的存储器内容或长立即数,送ACCZALR加载ACC高段,低段置入8000H(仅存储器操作数)〔表3.3续〕2〕辅助存放器指令集〔表3.4〕ADRK常数(8位短立即数)加给当前辅助寄存器BANZ当前AR非零跳转CMPR当前AR与AR0比较,结果送TC标志位(CM(0,1,2,3)值指定比较内容)LAR加载指定的AR(存储器\短立即数\长立即数)MAR修改当前ARSAR存指定的AR至存储器SBRK当前AR减常数(8位短立即数)指令格式CMPRCMCM=00AR=AR0CM=01AR<AR0CM=10AR>AR0CM=11AR≠AR03〕暂存器、乘积存放器和乘法指令集〔表3.5〕APACACC加移位后的PREG内容,并送ACC(移位方式由PM决定)LPH加载PREG高段(PREG低段不变)LT加载TREGLTA加载TREG,同时ACC加前次PREG移位后内容。(LT+APAC)LTD加载TREG,同时ACC加前次乘积。并且数据存储器单元内容复制到下一个数据存储单元。(仅限于非存储器影像的片内存储器)LTP加载TREG,同时将PREG移位后内容送ACCLTS加载TREG,同时ACC减PREG移位后内容。MAC数据存储器内容(送TREG)与程序存储器中内容乘,结果送PREGMACD数据存储器内容与程序存储器中内容乘,且数据存储器内容复制到下一个单元MPY乘法(TREG乘数据存储器(或13位短立即数))MPYAACC加移位后的PREG内容,并实现乘法运算(无立即寻址)MPYSACC减移位后的PREG内容,并实现乘法运算(无立即寻址)PACPREG移位后内容送ACCSPACACC减移位后的PREG内容SPH存PREG高段到数据存储器SPL存PREG低段到数据存储器SPM设置PM(乘积移位方式)SQRAACC加移位后的PREG内容,存储器内容平方,结果送PREGSQRSACC减移位后的PREG内容,存储器内容平方,结果送PREG4)转移指令集〔表3.6〕B无条件转移BACC转移至ACC低段指定的地址BANZ当前辅助寄存器非零转移BCND条件转移CALA调用ACC低段指定的子程序(涉及压栈操作)CALL调用指定的子程序(涉及压栈操作)CC条件调用(涉及压栈操作)INTR软中断(不受INTM位影响)(中断向量号0~31)(涉及压栈操作)NMI不可禁止的中断(软件中断)(中断向量号24H)(涉及压栈操作)RET子程序或中断程序返回(涉及出栈操作)RETC条件返回(涉及出栈操作)TRAP软件中断(中断向量号22H)(涉及压栈操作)5〕控制指令集〔表3.7〕BIT位测试指令,将数据存储单元指定位的内容送TCBITT同BIT指令,但测试TREG指定的位CLRC位清除(C、CNF、INTM、OVM、SXM、TC、XF)SETC置位(C、CNF、INTM、OVM、SXM、TC、XF)IDLECPU进入低功耗模式指令。由中断或复位唤醒。退出低功耗时,对可屏蔽中断来说,视INTM位不同执行不同的程序。(允许中断,转到中断服务程序)LDP加载DP(数据存储器的低9位或9位短立即数)LST将数据存储器的内容加载到状态寄存器(ST0,ST1)(LST#m----)SST存状态寄存器内容存到零页数据存储器单元(SST#m----)POP将栈顶弹出至ACC低段,ACC高端置零,堆栈上弹一级POPD将栈顶弹出至数据存储单元,堆栈上弹一级。PSHD将数据存储单元内容压入堆栈顶部,堆栈下压一级PUSH将ACC低段压入堆栈顶部,堆栈下压一级RPT重复执行N次下一条指令。(三种寻址方式)NOP空操作6〕I/O和存储器指令集〔表3.8〕BLDD数据快从数据存储器搬移至数据存储器(源数据和目的数据地址之一必须是长立即数,仅限于非寄存器影像的内部数据存储器)BLPD数据快从程序存储器搬移至数据存储器(程序存储器地址采用长立即数,目的存储器地址采用直接或间接地址)DMOV数据存储器内容复制到下一个数据存储器单元。(仅限于片内数据RAM)IN从I/O端口输入数据至数据存储器(端口地址送数据地址总线)OUT输出数据到I/O端口(端口地址送数据地址总线)SPLK存长立即数至数据存储器TBLR读数据表(读程序存储器(由ACCL指定)中内容到指定的数据存储器中)TBLW写数据表(读数据存储器的内容到由ACCL指定的程序存储器中)〔第4次完〕三、指令介绍1、算术运算指令1〕加法指令〔1〕不带进位加法指令格式:ADDdma[,shift]ADDdma,16ADDind[,shift[,ARn]]单字指令ADDind,16[,ARn]ADD#kADD#lk[,shift]双字指令注:dma直接寻址时7位页内偏移地址ind间接寻址时变址方式,可以由用户根据需要选择*,*+,*-,*0+,*0-,*BR0+和*BR0-七种之一。shift移位次数〔0~15〕k短立即数lk长立即数[]为保存的,可有可无操作码的格式:

151211…876…0dma00010shiftdma00110000110010shift101100001101110008位立即数k101111111001shift

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论