您好,欢迎访问三七文档
使用说明:1以下内容以老师给的为准2由于个人能力有限,内容难免有错3以下内容若令你成绩过低,与文件制作人无关4仅供参考DSP复习要点一、基础知识概念题:1、给出一个典型的DSP系统的组成框图。X(t)y(t)2、简述C54xDSP的总线结构?答:TMS320C54x的结构是围绕8组16bit总线建立的。(1)、一组程序总线(PB)(2)、三组数据总线(CB,DB和EB)(3)、四组地址总线(PAB,CAB,DAB和EAB)3.简述冯•诺依曼结构、哈佛结构的特点?答:①冯•诺依曼结构中不独立区分程序和数据空间,且程序和数据空间共用地址和数据线;②哈佛结构中程序空间和数据空间是独立的,具有各自独立的地址线和数据线。x(n)y(n)数字信号处理器A/D转换器抗混叠滤波器D/A转换器低通滤波器4、C54xDSP的CPU包括哪些单元?答:'C54X芯片的CPU包括:(1)、40bit的算术逻辑单元(2)、累加器A和B(3)、桶形移位寄存器(4)、乘法器/加法器单元(5)、比较选择和存储单元(6)、指数编码器(7)、CPU状态和控制寄存器(8)、寻址单元。6、C54x的三个独立存储器空间分别是什么?答:(1)、64K字的程序存储空间(2)、64K字的数据空间(3)、64K字的I/O空间,7、简述TMS320C54xDSP的流水线分为几个操作阶段答:分为6个阶段1、预取指2、取指3、译码4、寻址5、读数6、执行8、简述C54x有哪些数据寻址方式?答:1、立即寻址2、绝对寻址3、累加器寻址4、直接寻址5、间接寻址6、存储器映像寄存器寻址7、堆栈寻址10、68页表3.1.1缩略语要记住。缩略语含义Smem单数据存储器操作数Xmem双数据存储器操作数,从DB数据总线上读取Ymem双数据存储器操作数,从CB数据总线上读取dmad数据存储器地址pmad程序存储器地址PAI/O口地址src源累加器dst目的累加器1k16位长立即数11、定时器的初始化STM#0010H,TCR;关闭定时器,TSS=1定时器不工作STM#4999,PRD;定时周期寄存器为4999,当TIM减至0时重新装载STM#0669,TCR;重新设置定时的工作参数,TRB=1允许装载,TSS=0定时器开始工作。Free/Soft=10,定时器在中断到来后继续工作STM#0008H,IFR;往中断寄存器中写1,实际上为清零,在IFR的第四位为定时器中断器0即INT0的标志位STM#0008H,IMR;对中断屏蔽寄存器IMR的第四位写1,开放定时器中断0,但要注意中断方式位INTM=0,IMR的第四位为定时中断0的屏蔽位RSBXINTM;定时器的初始化后,开放总中断TCR的位功能15~1211109~6543~0保留SoftFreePSCTRBTSSTDDR直接置0两位结合控制定时器状态预定计数器一般赋值时与TDDR相同定时器重新加载位,‘1’时可加载。一般置‘1’‘0’时定时器启动工作,‘1’停止工作分频系数,按要求设置。其决定PSC的值定时长度计算公式T=t×(TDDR+1)×(PRD+1)t为时钟周期11、中断向量的地址如何形成。中断向量地址是由(处理器工作方式状态寄存器)PMST寄存器的IPTR(中断向量指针,9位)和左移后的中断向量序号(中断向量序号为0—31,左移2位后变为7位)所组成,指向存储器的某一地址。注意:定时器中断0的序号为:16,IPTR复位后全为1,即IPTR=1FFH。12、给出时钟由倍频模式切换到分频模式的设置代码。按题目为倍频模式到分频模式,可直接进行切换,只需检测到模式已经变换假设DSP芯片工作在10MHz(1倍频),变为5MHz(2分频)。程序如下STM#0,CLKMD;设置为2分频DIV:LDMCLKMD,AAND#0001H,ABCDIV,ANEQ;检测PLLSTATUS位,为‘0’时证明已经切换为分频模式。若涉及倍频数的切换题目为5MHZ到50MHZ,即由1倍频变为10倍频,STM#0,CLKMD;设置为2分频DIV:LDMCLKMD,AAND#0001H,ABCDIV,ANEQSTM#90E7H,CLKMDPLL10:LDMCLKMD,AAND#0001H,ABCPLL10,AEQ;检测PLLSTATUS位,为‘1’时证明已经切换为倍频模式。CLKMD的位功能表15~121110~3210PLLMULPLLDIVPLLCOUNTPLLON/OFFPLLNDIVPLLSTATUSPLL乘数,PLL除数PLL计数值,用于锁定频率的时间,一般通过查表决定其数值PLL通/关位PLL时钟电路选择位。‘0’为分频‘1’为倍频PLL的状态位‘0’对应分频;‘1’对应倍频PLLNDIV与PLLON/OFF决定PLL部件是否工作PLLNDIV与PLLMUL与PLLDIV决定PLL乘系数13、定点数与十进制数的转换。(Q15转换为十进制数)Q15为纯小数,Q越大,可以表示的数的范围越小,但精度越高。小数在存储器中以补码的形式存放。所以要将Q15转换为十进制小数,要转换为原码。注意,正负的转换不一样。正数,原码补码一样,负数,反码加1变补码。得到原码后,安不同位的权值计算。14、状态寄存器ST0、ST1、PMST中的常用状态位要掌握。必须掌握的状态位ST0118~0C(进位位标志)DP(数据存储器页指针)加法有进位,则c=1减法有借位,则c=0除了带16位移位的加法或减法外,加法无进位,c=0减法无借位,c=1与CPL结合可以为直接寻址,CPL=0时ST1141186CPL(直接寻址编辑方式位)INTM(中断方式位)SXM(符号位扩展方式位)FRCT(小数方式位)‘0’,选用数据页指针寻址;‘1’,选用堆栈指针寻址‘0’,开放所有可屏蔽中断;‘1’,关闭所有可屏蔽中断置位指令SSBX则INTM=1RSBX则INTM=0‘0’,禁止扩展‘1’,允许扩展具体扩展方式见P26书本有小数运算的程序中,该位要置为‘1’用的指令:SSBXFRCTPMST15~76IPTR(中断向量指针)MP/MC(MC上有——)决定中断程序的地址,注意‘0’微计算机方式不要定义在第一页,因为第一页映像寄存器部分。复位后全置1。‘1’微处理器方式15、数字频率与模拟频率的关系(数字频率=模拟频率*采样周期)数字频率=模拟频率*采样周期数字频率的范围为0~π理解见最后16、低通、带通、高通、带阻滤波器的作用要理解。17、滤波器的指标要理解。滤波器的阶数,滤波器的截止频率二、指令题将*AR3指向的内容左移14位后与累加器A相加,AR3的值加1。无进位位,则C为0。由于0100h的内容不是负数,符号位扩展后仍为0。0001010100000000B左移14位0000000000000101010000000000000000000000B与A相加则变为0005401200H把*AR1指向的内容的值装载到累加器A中,SXM=1,则扩展符号位.0200H中为负数,扩展的符号位全为1,即变为FFFFFFFEDC由于DP值为004,则STH为将A中的高位(31~16)存放到DP与dmad组成的地址。020AH的数变为8765B的值右移8位后,将高位放进*AR7所指向的内容,AR7的值加1存储累加器BCC值和装入累加器ACC并行执行STB*AR2-B的内容右移20(ASM-16=-4-16=-20)位,存储到*AR2指向的内容,AR2的值减一,所以01FFh为F842.注意ASM是以2的补码存储的。同样,LD*AR4+,A*AR2指向的内容左移16(16与ASM无关)位,加载到A中,AR2的值加一,所以A为FF80010000.三、程序设计相关题1、DSP的存储器配置图如下图,写出其对应的链接器命令程序文件。MEMORY{PAGE0:EPROM:org=0E000H,len=200HPAGE1:SPRAM:org=0060H,len=20HDARAM:org=0080H,len=200H}SECTIONS{.text:EPROMPAGE0.data:EPROMPAGE0.bss:SPRAMPAGE1STACK:DARAMPAGE1}2、计算y=a1*x1+a2*x2+a3*x3+a4*x4。(a1=1,a2=2,a3=3,a4=4,x1=8,x2=6,x3=4,x4=2)答:程序如下:.title“example.asm”;设置文件标题.mmregs;为存储器映像寄存器定义符号名stack.usect“STACK”,10h;定义堆栈长度.bssa,4;定义变量a,占四个字长,未初始化.bssx,4;定义变量x,占四个字长,未初始化.bssy,1;定义变量y,占一个字长,未初始化.defstart;识别定义在当前模块使用的“start”符号,.data;已初始化的数据table:.word1,2,3,4;该数据的首地址为“table”.word8,6,4,2.textstart:STM#stack+10h,SP;设置堆栈指针STM#a,AR1;将a的地址值赋给AR1RPT#7;下面的一条指令重复8次MVPDtable,*AR1+;数据搬移CALLSUM;调用子程序end:Bend;设置死循环,防止程序跑飞SUM:STM#a,AR3;a的值已经确定,因为上面的数据搬移STM#x,AR4;x也确定,因为x的地址与a相邻,数据移动八次,x能被赋值RPTZA,#3;首先对累加器A清零,并对下面的指令重复执行4次MAC*AR3+,*AR4+,A;*AR3与*AR4指向的内容相乘再加到累加器A中STLA,@y;存储累加器A中的低位(15~0位)到变量y中RET;子程序返回.end;程序结束3、除法程序100除以6求商说明:由于硬件除法器的成本很高,所以在一般的DSP芯片中都没有硬件除法器,也没有专门的除法指令;同样在TMS320C54xDSPs芯片中也没有一条单周期的16位除法指令。所以一般用减法做除法具体想理解,除法原理在该文档最后的附录2,否则只能背下来.titlechufa.asm.mmregs.defstartSTACK:.usectstack,10H.bssnum,1.bssden,1.bssquot,1.datatable:.word100.word6.textstart:STM#STACK+10H,SPSTM#num,AR1RPT#1MVPDtable,*AR1+LD@den,16,AMPYA@numABSASTHA,@denLD@num,AABSARPT#15SUBC@den,AXC1,BLTNEGASTLA,@quotend:Bend.end4、延时子程序要掌握Delay:STM#999,AR1;循环次数1000LOOP1:STM#4999,AR2;循环次数5000LOOP2:BANZLOOP2,*AR2-;如果AR2不等于0,AR2减1,再判断BANZLOOP1,*AR1-;如果AR1不等于0,AR1减1,跳转到LOOP1RET.end注意这种延时方法并不精确,需要精确定时必须用定时器。按此法延时的近似公式为:4×(AR2+1)×(AR1+1)×时钟周期当DSP工作在50MHz(时钟周期20ns),AR1=999,AR2=4999时延时约为400ms,则LED闪烁的周期为800ms,频率1.25Hz5、常用伪指令.bss保留存储空间,可用来定义变量,未初始化,通常定位在RAM中.data定义数据段,为已初始化的数据,如数据表,常数等,通常定位在ROM中.usect与.bss相同,但.usect可进行以段的形式进行定义,未初始化.text文本段的定义,.text后的内容一般为代码指令,通常定位在ROM中,已初始化.sect行以段的形式进行定义,已初始化.word初始化一个或多个16为整数.def识别定义在当前模块中,但可以被其他模块使用的符号.ref识别在当前模块中使用的但在其他模块中定义的符号,如在中断向量标表使用.mmregs为存储器映像寄存器定义符号名.end程序结束标志程序
本文标题:DSP复习要点
链接地址:https://www.777doc.com/doc-6107334 .html