《2022年DSP技术复习资料-完整版.pdf》由会员分享,可在线阅读,更多相关《2022年DSP技术复习资料-完整版.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、DSP(数字信号处理)技术复习资料1.简述数字信号处理器的主要特点( P4) 。数字信号处理(Digital Signal Processing)简称 DSP 。主要特点:(1)采用哈佛结构;(2)采用多总线结构;(3)采用流水线结构;(4)配有专用的硬件乘法器- 累加器;(5)具有特殊的寻址方式和指令;(6)支持并行指令操作;(7)硬件配置强,具有较强的接口功能;(8)支持多处理器结构。2. 请给出数字信号处理器的运算速度指标( P6) 。(1)MAC 时间:一次乘法和一次加法的时间;(2)FFT 执行时间:运行一个N 点 FFT 程序所需的时间;(3)MIPS :每秒执行百万条指令;(4)
2、MOPS:每秒执行百万次操作;(5)MFLOPS :每秒执行百万次浮点操作;(6)BOPS:每秒执行十亿次操作。(7)指令周期: 执行一条指令所需的最短时间,数值等于主频的倒数;常用 ns(纳秒)。3.简述 C55x 的存储器配置情况(P1112) 。(1)C55x 采用统一的存储空间和I/O 空间;(2)C55x 的片内存储空间共有352KB (146K 字) , 外部存储空间共有16MB ( 8M 字) ;(3)存储区支持的存储器类型有异步SRAM ,异步 EPROM、同步 DRAM 和同步突发 SRAM ;(4)C55x 的 I/O 空间与程序 /地址空间分开;(5)I/O 空间的字地址
3、为16 位,能访问64K 字地址;(6)当 CPU 读/写 I/O 空间时,在16 位地址前补0 来扩展成 24 位地址。4.TMS320C55x 的寻址空间是多少?当CPU 访问程序空间和数据空间时,使用的地址是多少位 (P51、P5354) 。(1)C55x 的寻址空间为16MB ( 24 位地址, 224 = 16777216B = 16MB )(2)CPU 访问程序空间时,使用24 位的地址;(3)访问数据空间时,使用23 位地址,使用时23 位地址左移一位将地址总线上的最低有效位( LSB )置 0。5.VC5509A 的 PGE LQFP 封装芯片共有多少个引脚?其中GPIO 引脚
4、有多少个?并行地址总线引脚有多少个?并行双向数据总线引脚有多少个?(P1315)(1)引脚: 144 个;(2)GPIO 引脚: 7个; (注: GPIO7:6,4:0 )(3)并行总线引脚:14 个; (注: A13:0 )(4)并行双向数据引脚:16 个; (注: D15:0 )精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 6 页 - - - - - - - - - - 6.C55x 的指令分为两个阶段,第一阶段为取指阶段,第二阶段为执行阶段;7.C55x 的 CPU 包含 4个40位的
5、累加器,辅助寄存器ARn 有16位,XARn 有23 位; (P29、P31)8.XF 位是寄存器ST1_55 中的第 13 位,它是一通用的输出位,能用软件处理且可输出至 DSP 引脚。若要使该引脚输出高电平,可用指令BSET XF; (P46)9.CPL 位是寄存器ST1_55 中的第 14 位,指令 BCLR CPL 的功能是对 CPL 清零;(P43)10. INTM 位是寄存器ST1_55 中的第 11位, 该位能够使能或禁止可屏蔽中断,如果 INTM=0 ,C55x 使能所有可屏蔽中断。 (P44)11. SATA 位是寄存器ST3_55 中的第 5 位,如果 SATA=1,则执行
6、A 单元 ALU 的饱和模式; (P50)12. MPNMC 位是寄存器ST3_55 中的第 6 位, 该位使能或禁止片上ROM , 如果 MPNMC=0 ,则为微计算机模式,使能片上 ROM ; (P50)13. VC5509A拥有160K 字的片内存储器资源,其中有128K字 RAM和32K字ROM 。外部扩展存储空间由CE3:0 组成,其中CE0 的首字地址为0000 2000H , CE1的首字地址为0020 0000 H ( P5152)(P5859)14. C55x 有 32 个中断向量, 中断向量指针IVPD 、 IVPH 应指向中断向量表的首地址;15. IER0 和 IER1
7、 的功能是什么?(P58)(1)IER0:中断使能寄存器0;(2)IER1:中断使能寄存器1;(3)当寄存器某位的值为1 时,开启该位所控制的中断,为0 则关闭该位所控制的中断。16. 请写出允许定时器0 中断的指令代码。答: IFR0 = IFR0 ;/清除 IFR0 中断标志IFR1 = IFR1 ;/清除 IFR1 中断标志IER0 = 0 x00; IER1 = 0 x00; /禁止所有可屏蔽中断IER0 |= 0 x0010; /允许 TIMER0 中断17. C55x 的不可屏蔽中断有哪几种?(P63)有三种:(1)硬件中断RESET; (2)硬件中断NMI ; (3)软件中断。1
8、8. C55x 支持 3 种类型的寻址方式, 分别是绝对寻址模式、 直接寻址模式和间接寻址模式;(P69)19. 什么是绝对寻址方式?C55x 有几种绝对寻址方式,分别是什么?(P70)绝对寻址方式:通过在指令中指定一个常数地址完成寻址;有三种绝对寻址方式: (1)K16 绝对寻址方式; (2)K23 绝对寻址方式;(3)I/O 绝对寻址方式。20. 什么是直接寻址方式?C55x 有几种直接寻址方式,分别是什么?(P71)直接寻址方式:使用地址偏移量寻址;有四种直接寻址方式: (1)DP 直接寻址;(2)SP 直接寻址;(3)寄存器位直接寻址;(4)PDP 直接寻址。精品资料 - - - 欢迎
9、下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 6 页 - - - - - - - - - - 21. 什么是间接寻址方式?C55x 有几种间接寻址方式,分别是什么?(P74)间接寻址方式:使用指针完成寻址;有四种间接寻址方式:(1)AR 间接寻址 ; (2)双 AR 间接寻址 ; (3)CDP 间接寻址 ; (4)系数间接寻址。22. 指令 MOV *abs16(#2002h), T2 采用的是K16 绝对寻址方式。设DPH=03h,该指令的功能是#k16=2002H,CPU从 032002H 处读取数据装入T2 ;
10、 ( P81)23. 指令 MOV port(0), T2 采用的是PDP 直接寻址方式。 设 PDP=511,该指令的功能是 PDP:Poffset=FF80H,CPU从 FF80H 读取数据进T2 ;24. 已知 AC1=0200FC00H ,AR3=0200H , ( 200)= 3400H ,MOV *AR3+ #16, AC1 执行上面指令后,AC1 和 AR3 的值分别是多少?指令功能是把AR3 指向的地址里面的内容左移16 位(二进制左移16 位相当于十六进制左移四位, 所以在右边补四个0) , 把 AR3 指向的地址里面的内容左移后的内容送进AC1,之后指针 AC3 自加一次。
11、所以AC1=34000000H ,AR3=0201H。说明:其实AC0AC3 是 40 位,如果问AC1 的内容,则AC1=0034000000H 25. 已知 AC0=EC000000H ,AC1=00000000H ,AR1=0200H , (200)= 3300H ,TC2=1 ,ADDSUBCC *AR1, AC0, TC2, AC1 执行上面指令后,AC1、AR1 和 AC0 的值分别是多少?指令功能是:如果TC2=1, 则 AC1=AC0+(*AR1)#16;否则 AC1=AC0 (*AR1)#16 ,这里 TC2=1,所以 AC1=AC0+(*AR1)#16,AC1=EC0000
12、00H+33000000H=11F000000H ,AR1=0200H ,AC0=EC000000H 。说明:其实 AC0AC3 是 40 位, AC0 的内容是 00EC000000H, AC1 的内容是 011F000000H 26. 在.text、.data和.bss段,初始化段是.text 和.data,未初始化段是.bss ; (P135)27. 利用 .sect指令可创建已初始化段,利用.usect 指令可创建未初始化段; (P135)28. 请指出汇编语言文件中的伪指令.def、.ref 和.global 的区别;指在一个模块中定义,可以在另一个模块中引用的符号.可以用伪指令 .
13、def、.ref 或.global来定义 . .def 在当前模块中定义,可在别的模块中使用; .ref 在当前模块中使用,但在别的模块中定义; .global 全局符号变量。29. DSP 链接器命令文件中,MEMORY和 SECTIONS伪指令的作用是什么?(P160161)MEMORY伪指令用来表示实际存在的目标系统中可被使用的存储器范围,每个存储器范围都有名字、起始地址和长度。SECTIONS 伪指令的作用是:描述输入段怎样被组合到输出段内;在可执行程序内定义输出段;规定在存储器内何处存放置输出段;允许重命名输出段。精品资料 - - - 欢迎下载 - - - - - - - - - -
14、 - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 6 页 - - - - - - - - - - 30. CCS 有两种工作模式,分别是软件仿真器模式和硬件在线编程模式; (P165)31. 在大存储模式下编译代码时,必须和rts55x.lib运行时间库链接;32. 给出函数 int fn(long l1, long l2, long l3, int *p4, int *p5, int *p6, int *p7, int *p8, int i9, int i10) 中传送参数所使用的寄存器;答:所使用的寄存器分别为:AC0, AC1, AC2, AR0, AR1,
15、 AR2, AR3, AR4, T0, T1 即是 longl1 存放在 AC0 ,对应下去。33. 以下的汇编语句实现两个整型数的饱和加法,请编写C 语言程序调用该汇编函数,实现整数 20000 和 30000 的饱和加法,并在CCS 中输出和的值; (相关 P209).def _sadd_asmfun _sadd_asmfun: BSET ST3_SATA ADD T1, T0 BCLR ST3_SATA RET 答: #include stdio.h int sadd_asmfun(int a, int b); /声明函数main() int c=0; c = sadd_asmfun(2
16、0000, 30000); printf( c=%d,c); int sadd_asmfun(int a, int b) /定义函数 return _sadd_asmfun(a,b) 34. TMS320VC5509A系统的晶体振荡器频率为12MHz ,试通过设置DPLL ,使系统的时钟频率为 144MHz ; (P255 例 8-1)(1)使 DPLL 工作在锁定模式:D4(PLL ENABL)=1B(这里 B 表示二进制,不是11,下面的也是,D4 表示时钟模式寄存器(CLKMD) 的第 5 位, D0 为第 1位, 下面 D11D5意思类似)(2)根据题意有144MHz=PLL MULT
17、/(PLL DIV+1)12MHz ( “/”表示除号)解得PLL MULT/(PLL DIV+1)=12,取 PLL DIV=0 ,PLL MULT=12 ,即有:D6D5(PLL DIV)=00B,D11D7(PLL MULT)=01100B (3)时钟模式寄存器(CLKMD) 的其他未均取为0。 (时钟模式寄存器(CLKMD) 共 16 位)综合( 1) 、 (2) 、 (3) ,得 CLKMD=0000 0110 0001 0000 B或者 CLKMD=0C10H 用汇编予以实现:mov #0000 0110 0001 0000 B, port(#1c00h) 或者mov 0610H,
18、 port(#1c00h) ;1c00h 是时钟模式寄存器(CLKMD) 的地址(分号后是注释,不用理会)。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 6 页 - - - - - - - - - - 35. 设 DSP 定时器输入时钟频率为100MHz ,如果要求定时器发送中断信号的频率为1000次每秒,需要如何对定时器进行设置?(相关 P259)答:根据公式) 1()1(PRDTDDRTINT输入时钟频率频率输入时钟频率为100MHz ,TINT 频率为 1kHz,由于 TDDR 为 4
19、 位,这里我们把TDDR设为 9,即 TDDR=0101B ,则 PRD 为 9999,PRD 为 16 位,即 PRD=0010011100001111B =270FH。36. 写出使 C5509A 的 GPIO4 、GPIO6 和 GPIO7 引脚输出高电平的C 语言代码。(P261)答: #define IODIR (*(ioport unsigned int*)0 x3400) #define IODATA (*(ioport unsigned int*)0 x3401) IODIR |=0 xF0; /IO 方向设置IODATA |=0 xF0; 37. VC5509A 有多少个外部
20、中断,请写出允许外部中断0 中断的指令代码。答:有5 个Sys_Initial(); IFR0 = IFR0; IFR1 = IFR1; /清除中断标志IER0 = 0; IER1 = 1; /禁止所有可屏蔽中断IER0 |= 0 x0004; /使能外部中断0 38. VC5509A PGE 有 2 个 10 位 A/D 接口。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 6 页 - - - - - - - - - - 39. 设 VC5509A 的 A/D 参考电压为3.3V,系统时钟为
21、144MHz ,模拟电压由通道0 输入,请编写程序实现电压采集,采样率为21.5kHz 。 (P287)#include stdio.h /头文件#define ADCCTL (*(ioport unsigned int *)0 x6800) /宏定义寄存器的地址#define ADCDA TA (*(ioport unsigned int *)0 x6801) #define ADCCLKDIV (*(ioport unsigned int *)0 x6802) #define ADCCLKCTL (*(ioport unsigned int *)0 x6803) long Data10;
22、/长整型数组float Data_F; /浮点数型void SysInit(void) /初始化设置 ADCCLKCTL = 0 x23; /CPUCLKDIV = 35; (详细设置见课本P287)ADCCLKDIV = 0; /CONVRATEDIV = 0;ADCCLKDIV = 0 x4F00; /SAMPTIMEDIV = 79;ADCCTL=0; /失能转换 int main(void) /主函数 unsigned char i; /局部变量SysInit(); /初始化设置while(1) for(i=0; i10; i+) /依次采集 10 次数据 ADCCTL |= 0 x8
23、000; /ADCSTART = 1 ;开始转换while(ADCDA TA & 0 x8000); /判断 ADCBUSY 是否为 0,从 1 变为 0 转换结束Datai = ADCDA TA&0 x3FF; /将 ADCDATA 低 10 位数据存于数组Data Data_F += Datai; /累加 10 次的数据 Data_F = Data_F/10; /取平均值Data_F = Data_F*3.3/1024; /转换为电压printf(V=%fn,Data_F); /在 CCS 软件中打印数据Data_F = 0; /清零,为下一次转换做准备 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 6 页 - - - - - - - - - -