学院 .专业 班级 . 姓名 学号 . --------------------------------------------------------密 ----------------------- 封 ------------------线------------------------------------------------- 广东白云学院2013—2014学年第 二 学期
期末考试《DSP原理及应用》(B卷)参考答案及
评分标准
命题人签名 系(教研室)主任签名 陈立旺 适用专业及方向:电子信息工程、通信工程
院长(部)主任签名 题号 层次: 本 科 年级: 11 级 限时: 120 分
钟
考试形式:闭卷 考场要求:笔试
总分 得分 一、填空题(请将正确答案填写在括号内。每空1分,共20分)
得 分 评卷人 1、DSP定点数值为0xE000,若它是Q15(或S0.15)定标的有符号小数,它的数值是( -0.25 );若是Q0(或S15.0)格式有符号整数,则它的数值是( -8192 )。 2、'C54x芯片在一个机器周期最多可以同时( 1 )次取指、读( 2 )个操作数和写( 1 )个操作数。
3、在’C54x DSP寻址和指令系统中,操作数Smem表示( 数据存储器数据 ),Pmad表示( 程序存储器地址 )。
4、一般COFF目标文件中包含( .text )、( .data )和 .bss三个缺省的段。
5、在堆栈操作中,PC当前地址为4020h,SP当前地址为0033h,则运行单字指令PSHM AR2后,PC内容为( 4021h ), SP内容为( 0032h )。 6、CCS中*.gel和boot.asm文件用于对'C54x系统及DSP进行初始化,而( *.cmd )文件用于段分配和存储器地址配置。
7、AR1=1000H时,执行DLD *AR1,A指令后,AH=地址( 1000H )的内容,AL=地址( 1001H )的内容。
8、指令ADD *AR3+, 8,A执行前ACC的值为00003400H, AR3=0100H, (0100H)=1568H,执行后AR3和ACC的值分别为( 0101H )和( 00159C00H )。
第 1 页 共 11 页
9、 DSP通过( READY )线和插入等待周期,可以满足外部慢速器件的总线接口要求。
10. MMR称为存储器映像寄存器,包含( CPU )寄存器和( 接口功能 )
寄存器,它的物理位置在RAM区的最低端。
11. C54xDSP响应中断后默认( 关闭 )可屏蔽中断,惟除TRAP指令
二、判断题(正确的在括号内画√,错误的在括号内画×。每空1分,共10分) ( √ )1、C5416芯片的时钟工作频率最高可以是外接时钟信号频率的15倍 ( × )2、TMS320C54x系列DSP芯片只能完成定点数的运算
( √ )3、软件可编程等待状态产生器可以将外部总线周期扩展到7个机器周期。 ( √ )4、'C54x内部有2组16位读数据总线,每组都有数据总线和地址总线。 ( × )5、若引脚MP/MC=1则'C54x复位后从片内PM区开始执行指令。 ( √ )6、'C54x 在OVLY=1表示RAM可以映射到PM区。 ( √ )7、WRITA指令可以实现DM区的数据写入PM区 ( × )8、C54X DSP主机接口HPI是16位并行口。 ( × )9、RPTZ #99则下一条指令将执行99次。 ( √ )10、'C54x的CPU供电电压为1.8伏 三、编程题(10分) 得 分 评卷人 编写程序,计算
y??aixii?16。
其中a1=8,a2=1,a3=-4,a4=3,a5=3,a6=-4,
x1=0,x2=5,x3=-5,x4=-1,x5=-16,x6=-10
评分标准:伪指令无误得5分,代码段无误得5分 答案:.title \ .mmregs
第 2 页 共 11 页
.bss a,5 ; .bss x,5 ; .bss y,2 ;
.global start ;可省去此句 .data ; table: .word 8,1,-4,3,3,-4 .word 0,5,-5,-2,-16,-10 .text ; start:RSBX FRCT ; RSBX CPL ; STM #a,AR1 ; RPT #9 ; MVPD table,*AR1+ ; STM #x,AR2 ; STM #a,AR3 ; RPTZ A,#4 ; MAC *AR2+,*AR3+,A ; LD #y,DP STH A,@y STH A,@y+1;
end: B end ; .end
第 3 页 共 11 页
三、回答问题(每题4分,共24分)
得 分 评卷人 1、DSP芯片的主要应用领域有哪些?
答:(1)信号处理,(2)仪器(3)控制,(4)电信
2、从性能和内部结构上看DSP与微机相比有何特点?
答:DSP比微机,是性价比高,DSP是集成度高、可嵌入式、功耗低和价格低的专用芯片
3、举例循环寻址的表达方式及其关键符号的意义?
答:循环寻址如 *AR2+%,其中+代表AR2=AR2+1,%代表AR2地址修正时要进行模运算,模值在BK寄存器中。
4、说明FIR滤波器使用循环缓冲区时编程的方法及步骤
答:循环缓冲区利用.usect伪指令开辟未初始化自定义数据段,再于*.cmd文件中设置自定义段地址从2k边界开始,程序中须设置缓冲区长度BK,循环缓冲区的须采用间接(循环)寻址的方法。
其算法是:利用MAC指令计算输出,更新法是利用循环指令(如*AR1+%),进行最老数据的更新。
5、中断向量的地址如何构成?软件复位后程序分别从什么地址开始执行?
答:中断向量的地址=IPTR(高9位)+K×4(低7位),k位中断序号。软件复位(RESET)后程序从地址IPTR(高9位)+ 0(低7位全0)处开始执行。
6、标准串口SP和缓冲串口BSP的主要区别是什么(功能上的区别)?
答:前者每收发一个字都要在串口与存储器之间用指令传递一次。后者则可以在串口与存储器之间自动传送一批字无需人工指令参与。
第 4 页 共 11 页
四、问答题(26分) 得 分 评卷人
1、阅读程序,回答问题(10分): .title \ .mmrege .bss a1,10 .bss b1,1 .def _c_int00: .data
table .word 11,22,33,44,55,66,77,88,99, .text _c_int00:
STM #a1,AR1 RPT #9 MVPD table,*AR1+ CALL SUM dead_loop:NOP B dead_loop SUM: RSBX cpl STM #a1,AR1 STM #9,AR4 LD #0,A Loop: ADD *AR1+,A
BANZ loop,*AR4- ; STL A,@b1 ret .end
第 5 页 共 11 页
110 填空回答问题(每空1分):
1).def所定义的符号是在( 当前模块 )中定义,并可在( 别的模块 )中使用的符号;
2)@b1的寻址方式为( 直接寻址 ), 3)*AR1的寻址方式为( 间接寻址 )
4)RSBX CPL表示@b1的物理地址由( DP的9 )位加b1的( 低7 )位偏移地址构成。
5)b1内容结果:( 605 )
6)RPT #9表示后一条语句会执行( 10 )次 7)DM区(a1+1)地址的内容是( 22 ) 8)语句ADD *AR1+,A总共执行了( 10 )次
2、阅读程序填写结果。(12分)
..title “IIR2.ASM” ;
.mmregs ; .def start ; x2 .usect “x”,1 ; X1 .usect “x”,1 ; X0 .usect “x”,1 ; COEF .usect “COEF”,5 ; PA0 .set 0 ; PA1 .set 1 ; .data
table: .word 0, 0 ;x1, x2
.word 676*32768/10000,1352*32768/10000;B2,B1 .word 676*32768/10000 ;B0
.word -4142*32768/10000,707*32768/10000 ;A2,A1/2 .text
第 6 页 共 11 页
start: SSBX FRCT ; STM #x2,AR1 ; RPT #1 ; MVPD #table,*AR1+ ; STM #COEF,AR1 ; RPT #4 ; MVPD #table+2,*AR1+ ;
STM #x2,AR3 ;
STM #COEF+4,AR4 ; MVMM AR4,AR1 ; STM #3,BK ; STM #-1,AR0 ; IIR2: PORTR PA1,*AR3 ;
LD *AR3+0%,16,A ;计算反馈通道, MAC *AR3,*AR4,A ; MAC *AR3+0%,*AR4-,A ; MAC *AR3+0%,*AR4-,A ;A= x0 STH A,*AR3 ;保存x0 MPY *AR3+0%,*AR4-,A ;计算前向通道 MAC *AR3+0%,*AR4-,A ;
MAC *AR3,*AR4-,A ;A =y(n) STH A,*AR3 ;保存y(n) MVMM AR1,AR4 ; BD IIR2 ; PORTW *AR3,PA0 ; .end
填空及回答(每空2分)
第 7 页 共 11 页
1)、语句PORTR PA1,*AR3的基本意思是:( 从PA1口读入数据 ) 2)、此程中计算反馈通道的算法表达式是(y中内容等于与) x0=( x(n)+2*A1*x1+A2*x2 )
3)、此程中计算前向通道的算法表达式是(y中内容等于与): y(n)=( B0*x0+B1*x1+B2*x2 ) 4):指出以下指令各个操作数的寻址方式 PORTR PA1,*AR3
( PA1是绝对寻址,*AR3是间接寻址 ) MVPD table,*AR1+
( table绝对寻址(PM区),*AR1+是间接寻址(DM区) ) MAC *AR3+0%,*AR4-,A
( *AR2+%和AR4-都是间接寻址,A是MMR寻址 )
4.已知DSP的三个时钟引脚状态CLKMD1-CLKMD3=110,外部晶振=10MHz,参数设置表: CLKMD1
CLKMD2
CLKMD3
CLKMD复位值 时钟方式
0 0 0 E007H PLL×15 0 0 1 9007H PLL×10 0 1 0 4007H PLL×5 1 0 0 1007H PLL×2 1 1 0 F007H PLL×1 1 1 1 0000H 2分频 1 0 1 F000H 4分频
STM #00H,CLKMD
Status: LDM CLKMD,A AND #01H,A BC Status,ANEQ STM #4087H,CLKMD
问题:(1)DSP复位后,DSP的工作时钟是多少?(2分)
第 8 页 共 11 页
(2)执行上面的程序片段后,DSP的工作时钟是多少?(2分)、
答: (1)10MHz (2)50MHz
五、应用题(10分) 得 分 评卷人 设CLKOUT=4MHz,试阅读下列程序。试回答,引脚XF产生什么波形的信号?若定时器T0改成了T1时,同时定时时间加倍,写出程序的修改方法。
程序:
.title \ .mmregs
K_TCR0 .set 111001101001B STM #0010H,TCR
STM #799,TIM
STM #799,PRD STM #K_TCR0,TCR
STM #0008H,IFR STM #0008H,IMR
RSBX INTM Lop: b lop
t0_flag .usect “vars”,1 time0_rev: PSHM ST0 PSHM ST1
BITF t0_flag,#1 BC xf_out,NTC
SSBX XF ;XF输出高电平 ST #0,t0_flag B next
第 9 页 共 11 页
xf_out: RSBX XF ;XF输出低电平 ST #1,t0_flag next: POPM ST1 POPM ST0 RETE .end
另外:在中断向量表vector文件中,在T0中断向量入口处加上如下三条指令: IV_TINT0: B time0_revr NOP NOP
答案:
XF产生占空比为50%,周期为4ms的方波的程序 原题2ms=(TDDR+1)(PRD+1)ms/4000, (TDDR+1)(PRD+1)=8000;所以:可以使TDDR=9,PRD=799。 现在使PRD=1599即可
定时器T0改成了T1,同时定时时间加倍时程序的修改方法: 1, STM #799,PRD改为 STM #1599,PRD 2,程序中符号TCR/TIM/PRD分别改为TCR1/TIM1/PRD1 3,程序中指令STM #0008H,IFR改为STM #0080H,IFR 4,程序中指令STM #0008H,IMR改为STM #0080H,IMR
第 10 页 共 11 页
表一:常用指令表: 指令类型 格式举例(简例) 注释(略说) 修正指针 MAR *AR3+0B AR3+AR0→AR3,并反向进位 测试指令 BITF x1,#1 x1与1的结果→TC位 条件转移 BC L1,NTC TC位为零则转移到L1 条件转移 BANZ L2,*AR2- AR2减1不为0则转移到L2 条件转移 XC 1,ALT 若A小于0,跳过1条指令执行 传送指令 MVPD table,*AR1 程序区到数据区的传送 传送指令 LTD *AR1 数据→T,同时移位(AR1+1)= *AR1 堆栈指令 PSHM/POPM,PSHD/POPD 对MMR,对数据区 累加指令 ADD *AR2+,A 数据加上A存于A 减法指令 SUB *AR2+,A A减去数据存于A 条件减法 SUBC @den,A 用于除法运算 乘法指令 MPYA @num 数据与AH相乘存于B,数据存于T 乘加指令 MAC *AR2+,A 数据与T相乘,后加A的内容 乘加指令 MAC *AR2+,*AR3+,A 两个数据相乘,后加A的内容 位操作指令 RSBX/SSBX 清0/置1 重复指令 RPTZ A,#4 RPT #4加上A清0 ST1第14位 CPL 直接寻址基址方式位 ST1第11位 INTM 可屏蔽中断总开关 ST1第6位 FRCT 乘法小数方式控制位 表二:定时器和中断控制 定时器参数 内容描述 定时周期 =CLKOUT×(TDDR+1)×(PRD+1) PCR位 15~12:保留 11~10:Soft、free=00/01/1x对应停止/减到0停止/继续运行 9~6:PSC预定标计时器(减法) 5:TRB加载位 4:TSS停止位 3~0:TDDR分频系数 PRD/TIM 16位周期寄存器/16位定时器(减法计数器) IFR/IMR 15~14:保留 13~0:依次为: DMAC5/DMAC4/BXINT1/BRINT1/HPINT/INT3/TINT1/DMAC0/BXINT0/BRINT0/TINT0/INT2/INT1/INT0 注 PCR/PRD/TIM/IFR/IMR都属于MMR
第 11 页 共 11 页