当前位置:文档之家› DSP复习要点详解

DSP复习要点详解

使用说明:1以下内容以老师给的为准2由于个人能力有限,内容难免有错3以下内容若令你成绩过低,与文件制作人无关4仅供参考DSP复习要点一、基础知识概念题:1、给出一个典型的DSP系统的组成框图。

y(t) 2、简述C54x DSP的总线结构?答: TMS320C54x的结构是围绕8组16bit总线建立的。

(1)、一组程序总线(PB)(2)、三组数据总线(CB,DB和EB)(3)、四组地址总线(PAB,CAB,DAB和EAB)3.简述冯•诺依曼结构、哈佛结构的特点?答:①冯•诺依曼结构中不独立区分程序和数据空间,且程序和数据空间共用地址和数据线;②哈佛结构中程序空间和数据空间是独立的,具有各自独立的地址线和数据线。

4、C54x DSP的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 程序存储器地址PA I/O口地址src 源累加器dst 目的累加器1k 16位长立即数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的屏蔽位RSBX INTM ; 定时器的初始化后,开放总中断TCR的位功能定时长度计算公式T=t×(TDDR+1)×(PRD+1)t为时钟周期11、中断向量的地址如何形成。

中断向量地址是由(处理器工作方式状态寄存器)PMST寄存器的IPTR(中断向量指针,9位)和左移后的中断向量序号(中断向量序号为0—31,左移2位后变为7位)所组成,指向存储器的某一地址。

注意:定时器中断0的序号为: 16,IPTR复位后全为1,即IPTR=1FF H。

12、给出时钟由倍频模式切换到分频模式的设置代码。

按题目为倍频模式到分频模式,可直接进行切换,只需检测到模式已经变换假设DSP芯片工作在10MHz(1倍频),变为5MHz(2分频)。

程序如下STM #0,CLKMD ;设置为2分频DIV: LDM CLKMD,AAND #0001H,ABC DIV,ANEQ ;检测PLLSTATUS位,为‘0’时证明已经切换为分频模式。

若涉及倍频数的切换题目为5MHZ到50MHZ,即由1倍频变为10倍频,STM #0,CLKMD ;设置为2分频DIV: LDM CLKMD,AAND #0001H,ABC DIV,ANEQSTM #90E7H,CLKMDPLL10:LDM CLKMD,AAND #0001H,ABC PLL10,AEQ ;检测PLLSTATUS位,为‘1’时证明已经切换为倍频模式。

CLKMD 的位功能表PLLNDIV与PLLON/OFF决定PLL部件是否工作PLLNDIV与PLLMUL与PLLDIV决定PLL乘系数13、定点数与十进制数的转换。

(Q15转换为十进制数)Q15为纯小数,Q越大,可以表示的数的范围越小,但精度越高。

小数在存储器中以补码的形式存放。

所以要将Q15转换为十进制小数,要转换为原码。

注意,正负的转换不一样。

正数,原码补码一样,负数,反码加1变补码。

得到原码后,安不同位的权值计算。

14、状态寄存器ST0、ST1、PMST中的常用状态位要掌握。

必须掌握的状态位ST0ST1PMST15、数字频率与模拟频率的关系(数字频率=模拟频率*采样周期)数字频率=模拟频率*采样周期数字频率的范围为0~ π理解见最后16、低通、带通、高通、带阻滤波器的作用要理解。

17、滤波器的指标要理解。

滤波器的阶数,滤波器的截止频率二、指令题将*AR3指向的内容左移14位后与累加器A相加,AR3的值加1。

无进位位,则C为0。

由于0100h的内容不是负数,符号位扩展后仍为0。

0001 0101 0000 0000B 左移14位0000 0000 0000 0101 0100 0000 0000 0000 0000 0000B 与A相加则变为00 0540 1200H把*AR1指向的内容的值装载到累加器A中,SXM=1,则扩展符号位.0200H中为负数,扩展的符号位全为1,即变为FF FFFF FEDC由于DP值为004,则STH为将A中的高位(31~16)存放到DP与dmad组成的地址。

020AH的数变为8765B的值右移8位后,将高位放进*AR7所指向的内容,AR7的值加1存储累加器BCC值和装入累加器ACC并行执行ST B*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{ PAGE 0:EPROM : org=0E000H,len=200HPAGE 1:SPRAM : org=0060H,len=20HDARAM : org=0080H,len=200H}SECTIONS{ .text : >EPROM PAGE 0.data : >EPROM PAGE 0.bss : >SPRAM PAGE 1STACK : >DARAM PAGE 1}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 ;定义堆栈长度.bss a,4 ;定义变量a,占四个字长,未初始化.bss x,4 ;定义变量x,占四个字长,未初始化.bss y,1 ;定义变量y,占一个字长,未初始化.def start ;识别定义在当前模块使用的“start”符号,.data ;已初始化的数据table: .word 1,2,3,4 ;该数据的首地址为“table”.word 8,6,4,2.textstart:STM #stack+10h,SP ;设置堆栈指针STM #a,AR1 ;将a的地址值赋给AR1RPT #7 ;下面的一条指令重复8次MVPD table,*AR1+ ;数据搬移CALL SUM ;调用子程序end: B end ;设置死循环,防止程序跑飞SUM: STM #a, AR3 ;a的值已经确定,因为上面的数据搬移STM #x, AR4 ;x也确定,因为x的地址与a相邻,数据移动八次,x能被赋值RPTZ A, #3 ;首先对累加器A清零,并对下面的指令重复执行4次MAC *AR3+,*AR4+,A ;*AR3与*AR4指向的内容相乘再加到累加器A中STL A,@ y ;存储累加器A中的低位(15~0位)到变量y中RET ;子程序返回.end ;程序结束3、除法程序100除以6求商说明:由于硬件除法器的成本很高, 所以在一般的DSP 芯片中都没有硬件除法器, 也没有专门的除法指令;同样在TMS320C54x DSPs 芯片中也没有一条单周期的16 位除法指令。

所以一般用减法做除法具体想理解,除法原理在该文档最后的附录2,否则只能背下来.title "chufa.asm".mmregs.def startSTACK: .usect "stack",10H.bss num,1.bss den,1.bss quot,1.datatable: .word 100.word 6.textstart: STM #STACK+10H,SPSTM #num,AR1RPT #1MVPD table,*AR1+LD @den,16,AMPYA @numABS ASTH A,@denLD @num,AABS ARPT #15SUBC @den,AXC 1,BLTNEG ASTL A,@quotend: B end.end4、延时子程序要掌握Delay:STM #999,AR1 ;循环次数1000LOOP1: STM #4999, AR2 ;循环次数5000LOOP2: BANZ LOOP2,*AR2- ;如果AR2不等于0,AR2减1,再判断BANZ LOOP1,*AR1- ;如果AR1不等于0,AR1减1,跳转到LOOP1 RET .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 程序结束标志程序的使用,自己查表6、编程时用到的指令STMRPTMVPDRPTBLDLDMADDSUBANDBBCSTLSTHSSBXRSBXCALLRPTZMACRET考试题型:选择题(20分10个)分析题(35分7个)简答题(20分4个)程序填空题(10分2题10个空)编程题(15分2个)附录1在数字信号处理的学习中,很多刚入门朋友常常为模拟频率、数字频率及其相互之间的关系所迷惑,甚至是一些已经对数字信号处理有所了解的朋友也为这个问题所困惑。

相关主题