1、第一章1、数字信号处理实现方法一般有几种?答:课本 P2(2.数字信号处理实现)2、简要地叙述 DSP 芯片的发展概况。答:课本 P2(1.2.1 DSP 芯片的发展概况)3、可编程 DSP 芯片有哪些特点?答:课本 P3(1.2.2 DSP 芯片的特点)4、什么是哈佛结构和冯诺依曼结构?他们有什么区别?答:课本 P3-P4(1.采用哈佛结构)5、什么是流水线技术?答:课本 P5(3.采用流水线技术)6、什么是定点 DSP 芯片和浮点 DSP 芯片?它们各有什么优缺点?答:定点 DSP 芯片按照定点的数据格式进行工作,其数据长度通常为 16 位、24 位、32 位。定点 DSP 的特点:体积小
2、、成本低、功耗小、对存储器的要求不高;但数值表示范围较窄,必须使用定点定标的方法,并要防止结果的溢出。浮点 DSP 芯片按照浮点的数据格式进行工作,其数据长度通常为 32 位、40 位。由于浮点数的数据表示动态范围宽,运算中不必顾及小数点的位置,因此开发较容易。但它的硬件结构相对复杂、功耗较大,且比定点 DSP 芯片的价格高。通常,浮点 DSP 芯片使用在对数据动态范围和精度要求较高的系统中。7、DSP 技术发展趋势主要体现在哪些方面?答:课本 P9(3.DSP 发展技术趋势)8、简述 DSP 系统的构成和工作过程。答:课本 P10(1.3.1DSP 系统的构成)9、简述 DSP 系统的设计步
3、骤。答:课本 P12(1.3.3DSP 系统的设计过程)10、DSP 系统有哪些特点?答:课本 P11(1.3.2DSP 系统的特点)11、在进行 DSP 系统设计时,应如何选择合理的 DSP 芯片?答:课本 P13(1.3.4DSP 芯片的选择)12、TMS320VC5416-160 的指令周期是多少毫秒?它的运算速度是多少 MIPS?解:f=160MHz,所以 T=1/160M=6.25ns=0.00000625ms;运算速度=160MIPS第二章1、TMS320C54x 芯片的基本结构都包括哪些部分?答:课本 P17(各个部分功能如下)2、TMS320C54x 芯片的 CPU 主要由几部
4、分组成?答:课本 P18(1.CPU)3、处理器工作方式状态寄存器 PMST 中的 MP/MC、OVLY 和 DROM3 个状态位对C54x 的存储空间结构有何影响? 答:课本 P34(PMST 寄存器各状态位的功能表)4、TMS320C54x 芯片的内外设主要包括哪些电路?答:课本 P40(C54x 的片内外设电路)5、TMS320C54x 芯片的流水线操作共有多少个操作阶段?每个操作阶段执行什么任务?完成一条指令都需要哪些操作周期?答:课本 P45(1.流水线操作的概念)6、TMS320C54x 芯片的流水线冲突是怎样产生的?有哪些方法可以避免流水线冲突?答:由于 CPU 的资源有限,当多
5、于一个流水线上的指令同时访问同一资源时,可能产生时序冲突。解决的办法: 由 CPU 通过延时自动解决; 通过程序解决,如重新安排指令或插入空操作指令。7、TMS320C54x 芯片的串行口有哪几种类型?答:课本 P42(TMS320C54x 芯片的串行口)8、TMS320VC5402 共有多少可屏蔽中断?它们分别是什么?NMI 和 RS 属于哪一类中断源?答:课本 P56(对 VC5402 来说,这 13 个中断的硬件名称为. RS 和 NMI 属于外部硬件中断。)9、试分析下列程序的流水线冲突,画出流水线操作图。如何解决流水线冲突?(解题时参考课本 P52【例 2.7.2】 )声明: 1、本
6、人知识能力有限,只能按自己认识来判断答案的正误来编写本资料;2、本资料为DSP 原理及应用(修订版) 邹彦主编的课后答案,仅作参考作用,不一定代表考试方向。3、请尊重劳动成果,祝大家考试顺利!STLM A,AR0 STM #10,AR1LD *AR1,B解:流水线图如下图:1 2 3 4 5 6 7 8 9预取指 取指 译码 寻址 读数 执行STLM A,AR0 写 AR1预取指 取指 译码 寻址 读数 执行STM #10,AR1(1st Word)写 AR2 写 AR2预取指 取指 译码 寻址 读数 执行STM #10,AR1(2nd Word)预取指 取指 译码 寻址 读数 执行LD *A
7、R1,B 读 AR2解决流水线冲突:最后一条指令(LD *AR1,B)将会产生流水线冲突,在它前面加入一条 NOP 指令可以解决流水线冲突。10、试根据等待周期表,确定下列程序段需要插入几个 NOP 指令。(流水线等待周期表P53)LD GAIN, TSTM #input,AR1MPY *AR1+,A解:本段程序不需要插入 NOP 指令(查等待周期表,对于 T 字段,后面的存储指令需要加入一个等待周期,由于 STM 是一条双字指令,隐含 1 个等待周期,所以不用再插入等待周期)STLM B,AR2STM #input ,AR3MPY *AR2+,*AR3+,A解:本段程序需要在 MPY *AR
8、2+,*AR3+,A 语句前插入 1 条 NOP 指令(在等待周期表,AR2 后面的 STM 指令不用插入等待,但注 2 表面在后面的 STM 指令之前,不能有在执行阶段对,ARx 的写操作,而前面的 STLM 指令正是执行阶段写 AR2,所以应插入 1 个等待周期。 )MAC x, BSTLM B,ST0ADD table, A, B解:本段程序需要在 ADD table, A, B 语句前插入 2 条 NOP 指令第三章1、已知(1030H)=0050H,AR2=1040H,AR3=1060H,AR4=1080H。MVKD 1030H,*AR2 (将地址单元 1030H 中的数据复制到 A
9、R2 寄存器所指向的数据存储单元中去,因为(1030H)=0050H,AR2=1040H ,执行结果( 1040H)=0050H,*AR2=0050H)MVDD *AR2,*AR3(在 AR2 和 AR3 数据存储器内部传送数据,即 AR2 指向的存储单元数据=AR3 指向的存储单元数据,即:AR2=1040H,AR3=1060H,所以执行结果(1040H)=( 1060H)=0050H,*AR3=0050H)MVDM 1060H,AR4(地址 1060H 数据向 AR4 寄存器传送数据。执行结果:(1060H)=AR4=0050H;)运行以上程序后, (1030H) 、 (1040H) 、*
10、AR3 和*AR4 的值分别等于多少?解:运行的结果:(1030H)=0050H,(1040H)=0050H,*AR3=0050H,AR4=0050H2、已知(1080H)=0020H, (1081H )=0030H。STM #1080H,AR0(AR0=#1080H)STM #1081H,AR1(AR1=#1081H)LD *AR0,16,B(把寄存器 AR0 指向的地址单元中数据左移 16 位装入累加器 B,这时(B) =2000H)ADD *AR1,B(把寄存器 AR1 指向地址单元的数据与累加器 B 中数据相加传送给 B,这时(B)=200030H解:运行以上程序后, (B)=2000
11、30H3、阅读以下程序,分别写出运行结果。.bss x,4.data table:.word 4,8,16,32STM #x,AR1RPT #2MVPD table,*AR1+解:数据表 table 中的常量 4 传送到以变量 x 的地址为地址的存储单元中;数据表 table 中的常量 8 传送到以变量 x+1 的地址为地址的存储单元中;数据表 table 中的常量 16 传送到以变量 x+2 的地址为地址的存储单元中;.bss x,4.datatable: .word 4,8,16,32STM #x,AR1RPT #2MVPD table,*+AR2解:数据表 table 中的常量 4 传送
12、到以变量 x+1 的地址为地址的存储单元中;数据表 table中的常量 8 传送到以变量 x+2 的地址为地址的存储单元中;数据表 table 中的常量 16 传送到以变量 x+3 的地址为地址的存储单元中;4、NOP 指令不执行任何操作,它起什么作用?答:延时作用,在指令中加入 NOP 指令可以避免流水线冲突。延时几个周期,避免流水线冲突;需要精确延时程序时,也会用到 NOP 指令。5、TMS320C54x 的数据寻址方式各有什么特点?应该应用在什么场合?答:课本 P89(本章小结)第四章1、软件开发环境有哪几种?在非集成开发环境中,软件开发常采用哪些部分?答:可以在两种开发环境中进行 C5
13、4X 的开发:非集成的开发环境和集成的开发环境。在非集成开发环境中,软件开发常采用:编辑、汇编、链接、调试等部分。2、什么是 COFF 格式?它有什么特点?答:课本 P94(4.3COFF 的一般概念)3、试说明.text 段、.data 段和 .bbs 段分别包含什么内容?答:课本 P94(4.3.1COFF 的一般概念)4、程序员如何定义自己的程序段?5、链接器对段是如何处理的?答:课本 P98(4.3.3 链接器对段的处理)6、什么是程序的重新定位?答:课本 P99(4.3.4 链接器对程序的重新定位)7、宏定义、宏调用和宏展开分别指的是什么?答:课本 P112(4.4.4 宏定义和宏调
14、用)8、链接器能完成什么工作?链接器命令文件中,MEMORY 命令和 SECTIONS 命令的任务是什么?答:课本 P114(4.5 链接器的使用,4.5.4MOMERY 命令,4.5.5SECTIONS 命令)第五章1、能用伪指令(如 data)或运算符(如 ADD)作为标号吗?为什么? (参考课本 P126标号区的格式要求)2、标号和注释有什么差别?它们在程序运行中作用一样吗?答(参考课本 P129 1.标号;注释是程序的人选项。注释可以由 ASCII 码和空格组成。注释在汇编源清单中显示,但不影响汇编。注释在程序中的作用是说明语句的含义,以便对软件进行维护。 )3、两个数相乘,如果结果溢
15、出,DSP 系统会报警吗?答:不会。当发生溢出时,自动将结果设置为最大或最小值。4、伪指令起什么作用?它占用存储空间吗?答:伪指令给程序提供数据和控制汇编过程。答:它多用于代码编译的,硬件并不认识汇编语言,它们只认机器语言,程序的运行涉及由高级语言汇编成汇编语言,再由汇编语言编译成机器语言,最后由硬件执行机器语言。编译过程中,伪指令起作用,但是伪指令不产生目标代码,仅仅是帮助编译器准确的把其他指令编译出来。因此,伪指令在代码编译过程中所起的功能,在程序运行时伪指令已经不存在了,因为代码是编译好后才执行的。伪指令不占用存储空间。5、在堆栈操作中,PC 当前地址为 4020H,SP 当前地址为 0
16、013H,运行 PSHM AR7 后,PC 和 SP 的值分别是多少?(PSHM AR7 是压栈操作(完成后 PC 指针+1,堆栈指针SP-1)答:PC=4021H ,SP=0012H6、试编写 0.25(-0.1)的程序代码。参考程序如下:.title “FracAmp.asm“.mmregs.global _c_int00.bss x,1.bss y,1.bss z,1.dataAmpCoef: .word 25*32768/100.word -1*32768/10.text_c_int00: ssbx FRCTstm #x,ar1rpt #0x1mvpd #AmpCoef,*ar1+st
17、m #x,ar2stm #y,ar3mpy *ar2,*ar3,Asth A,*ar1Wait: b Wait.end7、将定点数 0.00125 用浮点数表示。解:A=28H;T=19H8、试写出以下两条指令的运行结果:EXP AA=FFFD876624 T=0000则以上指令执行后,A、T 的值各是多少?解: A=0xFFFD876624;T=5NORM BB=420D0D0D0D, T=FFF9则以上指令执行后,B、T 的值各是多少?解:B=0x841A1A1A, T=FFF99、阅读以下程序,写出运行结果。 .bss y, 5 table .word 1,2,3,4,5 STM #y,
18、 AR2 RPT #5 MVPD table,*AR2+ LD #0,B LD #81h, AR5 (有误,应改为 STM #81H,AR5)STM #0,A STM #4, BRC STM #y, AR5 RPTB sub-1 ADD *ARM5,B,A STL A,*AR5+ sub: LD #0,B 运行以上程序后, (81H) , ( 82H) , (83H) , (84H)和(85H)的值分别是多少?答:(81H)=0001H , (82H)=0002H, (83H )=0003H, (84H)=0004H, (85H)=0005H。10、CALL 指令调用子程序与循环语句有什么不同
19、?答:CALL 指令调用子程序:课本 P135(子程序调用指令表) ;循环语句:课本P137(5.3.2 循环操作程序)11、多次循环嵌套时,能够从最内一层循环直接跳到最外一层循环吗?若能,则采用什么方式呢?12、在不含循环的程序中,RPTZ#3 语句和其前一句、后一句以及后第二句各运行多少次?答:RPTZ#3 语句和其前一句运行 1 次,后一句运行 3 次,后第二句运行 1 次。第六章1、FIR 和 IIR 数字滤波器都有哪些设计方法?每种设计方法的步骤是什么?(参考课本P179P181)2、与 FIR 滤波器比较,IIR 滤波器有哪些优缺点?(参考课本 P167 6.2 IIR 滤波器的
20、DSP实现)3、二阶 IIR 滤波器,又称为二阶基本节,其结构图可以分为几种类型?各有什么特点?(参考课本 P168 1.二阶 IIR 滤波器)4、略5、FIR 滤波器的算法为 y(n)= a0x(n)+a1x(n-1)+a2x(n-2)+a3x(n-3)+a4x(n-4),试用线性缓冲区和直接寻址的方法实现。 (参考课本 P161P162,只是对课本一些参数稍作修改便是答案)解: .title “FIR1.ASM”.mmregs.def startx .usect “x”,5PA0 .set 0PA1 .set 1.dataCOEF:.word 1*32768/10 ;定义 a4= 0.1.
21、word -3*32768/10 ;定义 a3= -0.3.word 5*32768/10 ;定义 a2=-0.5.word -3*32768/10 ;定义 a1= -0.3.word 1*32768/10 ;定义 a0=-0.1.textstart: SSBX FRCT STM #x+5,AR2STM #4,AR0LD #x+1,DPPORTR PA1,x+1FIR1: RPTZ A,#4MACD *AR2-,COEF,ASTH A,*AR2PORTW *AR2+,PA0BD FIR1PORTR PA1,*AR2+0.end 6、试用线性缓冲区和间接寻址方法实现题 6.5 算法的 FIR 滤
22、波器。 (参考课本P162P163,只是对课本一些参数稍作修改便是答案)解: .title “FIR2.ASM”.mmregs .def start.bss y,1xn .usect “xn”,5b0 .usect “a0”,5PA0 .set 0PA1 .set 1.datatable: .word 1*32768/10 ;定义 a4= 0.1.word -3*32768/10 ;定义 a3= -0.3.word 5*32768/10 ;定义 a2= 0.5.word -3*32768/10 ;定义 a1= -0.3.word 1*32768/10 ;定义 a0= 0.1.text star
23、t: SSBX FRCT STM #b0,AR1RPT #4MVPD table,*AR1+STM #xn+4,AR2STM #b0+4,AR3STM #5,BKSTM #-1,AR0LD #xn,DPPORTR PA1,xnFIR2: RPTZ A,#4MAC *AR2+0%,*AR3+0%,ASTH A,yPORTW y,PA0BD FIR2PORTR PA1,*AR2+0%.end 7、12、略第七章1、试列举主机与 PHI 通信的连接单元?并分别说明它们的功能。 (参考课本 P200 7.1C54x 的主机接口)2、已知 TMS320C54X 的 CLKOUT 频率为 4MHz。在 S
24、AM 工作方式下,主机的时钟频率是多少?解:在 SAM 工作方式下,主机频率可达 3.2MHz 或 2.4MHz。在 HOM 工作方式下,主机的时钟频率与 TMS320C54X 的时钟频率有关吗?答:在 HOM 工作方式下,主机的时钟频率与 TMS320C54X 的时钟频率无关。3、试分别说明下列有关定时器初始化和开放定时中断语句的功能。STM #0040H,IFR(课本有误,此处应为 STM #0080H,IFR)解:清除外部中断 2 标志位。STM #0080H,IMR 解:允许定时器 T1 或 DMAC1 中断(使用哪一种中断由 DMA 通道优先级和使能控制寄存器 DMPREC 控制。在
25、复位以后,中断被配置为定时器 T1 中断) 。RSBX INTM 解:使能所有可屏蔽中断。STM #0279H,TCR 解: 设置定标计数器的值 PSC 为 9; 定时器分频系数为 9; 以 PRD 中的值加载 TIM, 以 TDDR 中的值加载 PSC;定时器停止工作。4、假设时钟频率是 40Mhz,试编写在 XF 端输出一个周期为 2ms 的方波程序段。(参考课本 P207 程序,只要将课本程序中 STM #1599,TIM0 和 STM #1599,PRD0 改为STM #3999,TIM0 和 STM #3999,PRD0 即可。注意计算到的 Tt=1ms(高电平和低电平各1ms,故周
26、期为 2ms) 。定时器基本计算公式在课本 P206)解:(定时半周期=CLKOUT*(TDDR+1)*(PRD+1);1/2T=(1/40M)*(9+1)*(3999+1)=1ms);abc1.asm;定时器 0 寄存器地址TIM0 set 0024HPRD0 set 0025HTCR0 set 0026H;K_TCR0:设置定时器控制寄存器的内容K_TCR0_SOFT .set 0b ;Soft=0K_TCR0_FREE .set 1b ;Free=1K_TCR0_PSC .set 1001b ;PSC=9HK_TCR0_TRB .set 1b ;TRB=1K_TCR0_TSS .set
27、0b ;TSS=0K_TCR0_TDDR .set 1001b ;TDDR=9K_TCR0 .set K_TCR0_SOFT| K_TCR0_FREE| K_TCR0_PSC| K_TCR0_TRB| K_TCR0_TSS| K_TCR0_TDDR ;初始化定时器 0;Tt=25*(9+1)*(3999+1)=1000000(ns)=1(ms)STM #0010H,TCR0STM #3999,TIM0STM #3999,PRD0STM #K_TCR0,TCR0 STM #0080H,IFRSTM #0080H,IMRRSBX INTMRET;定时器 0 的中断服务子程序:通过引脚 XF 给出t
28、0_flag .usect “vars”,1 ;若 t0_flag=1 则 XF=1,若 t0_flag=0 则 XF=0time0_rev: PSHM TRNPSHM TPSHM ST0PSHM ST1BITF t0_flag,#1BC xf_out,NTCSSBX XFST #0,t0_flagB nextxf_out: RSBX XFST #1,t0_flagnext: POPM ST1POPM ST0POPM TPOPM TRN RETE 5、TMS320C54x 的串口有哪几种类型?答:课本 P213(7.3 C54x 的串行口)6、试叙述标准串行接口数据的发送程序。7、试分别说明下
29、列语句的功能。 STM #SPCR10,SPSA0STM #0001H,BSP0解:对串口控制寄存器 SPCR10 赋值。不使用数字循环返回模式,接收数据 DRR1,2采用右对齐方式, 连续时钟方式, DX 使能判断, 接收中断由 RRDY 产生, 接收移位寄存器未超载,串口接收器准备好,使能串口接收器。STM #SPCR20,SPSA0STM #0081H,BSP0解: 对串口控制寄存器 SPCR20 赋值。 串口使用软件模式, 帧同步逻辑、 采样率发生器复位,由发送准备好 XRDY 驱动发送中断;发送移位寄存器为空,发送器未准备好,使能串口发送器。STM #SPCR20,SPSA0ORM
30、#01000001B,BSP0解: 修改串口控制寄存器 SPCR20 的值。 由采样率发生器产生帧同步信号, 使能串口发送器。8、已知中断向量 TINT=013H,中断向量地址指针 IPTR=0111H,求中断向量地址。解:中断向量地址=(100010001B) 相同为 0,不同为 1BC Status,ANEQ ;若 A0,则转移,表明还没有切换到 PLL 方式;若 A=0,则顺序执行,已切换到 PLL 方式STM #F000H,CLKMD ;切换到 4 分频方式7、TMS320VC5402 外接一个 128K16 位的 RAM,其结构如题图 8.1 所示。试分析程序区和数据区的地址范围,并
31、说明其特点。解:图中接法 RAM 的前 64K 字(0000H FFFFH)为程序区,后 64K 字(10000H1FFFFH)说明: 程序区和数据区地址均为 0000HFFFFH如果内部 RAM 设置为有效,则相同地址的外部 RAM 自动无效。当外部 RAM 的存取速度达不到全速运行要求时,需要根据速度设置插入的等待状 态数。8、TMS320VC5402 外接一个 128K16 位的 RAM,采用混合程序区和数据区扩展法,连接电路如题图 8.2 所示。试分析程序区和数据区的地址范围。答:程序和数据都存储在同一片 SRAM 中,不论程序还是数据都可以访问 8000HFFFFH 中的任一地址。为
32、了保证系统的正确运行,需将这 32K 字空间划分为程序区和数据区,可以是程序占据 8000H-BFFFH 前 16K 字,数据占据 C000H-FFFFH 后 16K 字,也可是程序占 8K,数据占 24K 等。划分完全取决于应用程序的需要,可以灵活掌握,但必须确保程序和数据区的相互分离,以免形成冲突。9、Inte128F400B3 是一种 64K16 位的 Flash 存储器,其控制逻辑信号如图表 8.1,试将该存储器作为 DSP 的外部数据存储器进行扩展。若要将该芯片进行程序存储器扩展,该如何连接?题表 8.1 Intel128F400B3 的控制逻辑信号引脚 功能 引脚 功能CE 片选 RP 复位OE 输出使能 WP 写保护