1、DSP原理与应用张卫宁课后习题答案第一章:1、数字信号处理的实现方法一般有哪几种?答:数字信号处理的实现是用硬件软件或软硬结合的方法来实现各种算法。(1) 在通用的计算机上用软件实现;(2) 在通用计算机系统中加上专用的加速处理机实现;(3) 用通用的单片机实现,这种方法可用于一些不太复杂的数字信号处理,如数字控制;(4) 用通用的可编程DSP芯片实现。与单片机相比,DSP芯片具有更加适合于数字信号处理的软件和硬件资源,可用于复杂的数字信号处理算法;(5) 用专用的DSP芯片实现。在一些特殊的场合,要求的信号处理速度极高,用通用DSP芯片很难实现(6)用基于通用dsp核的asic芯片实现。2、
2、简单的叙述一下dsp芯片的发展概况?答:第一阶段,DSP的雏形阶段(1980年前后)。代表产品:S2811。主要用途:军事或航空航天部门。第二阶段,DSP的成熟阶段(1990年前后)。 代表产品:TI公司的TMS320C20主要用途:通信、计算机领域。第三阶段,DSP的完善阶段(2000年以后)。 代表产品:TI公司的TMS320C54主要用途:各个行业领域。3、可编程dsp芯片有哪些特点?答:1、采用哈佛结构(1)冯。诺依曼结构,(2)哈佛结构(3)改进型哈佛结构2、采用多总线结构3.采用流水线技术4、配有专用的硬件乘法-累加器5、具有特殊的dsp指令6、快速的指令周期7、硬件配置强8、支持
3、多处理器结构9、省电管理和低功耗4、什么是哈佛结构和冯。诺依曼结构?它们有什么区别?答:哈佛结构:该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。冯。诺依曼结构:该结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。区别:哈
4、佛:该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。冯:当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。5、什么是流水线技术?答:每条指令可通过片内多功能单元完成取指、译码、取操作数和执行等多个步骤,实现多条指令的并行执行,从而在不提高系统时钟频率的条件下减少每条指令的执行时间。利用这种流水线结构,加上执行重复操作,就能保证在单指令周期内完
5、成数字信号处理中用得最多的乘法 - 累加运算。(图)6、什么是定点dsp芯片和浮点dsp芯片?它们各有什么优缺点?答:若数据以定点格式工作的称为定点DSP芯片。若数据以浮点格式工作的称为浮点DSP芯片。定点dsp芯片优缺点: 大多数定点dsp芯片称为定点dsp芯片,浮点dsp芯片优缺点:不同的浮点DSP芯片所采用的浮点格式有所不同,有的DSP芯片采用自定义的浮点格式,有的DSP芯片则采用IEEE的标准浮点格式。 7、dsp技术的发展趋势主要体现在什么方面?答:(1)DSP的内核结构将进一步改善 (2)DSP 和微处理器的融合 (3)DSP 和高档CPU的融合 (4)DSP 和SOC的融合 (5
6、)DSP 和FPGA的融合 (6)实时操作系统RTOS与DSP的结合 (7)DSP的并行处理结构 (8)功耗越来越低 8、简述dsp系统的构成和工作过程?答:DSP 系统的构成: 一个典型的 DSP 系统应包括抗混叠滤波器、数据采集 A/D 转换器、数字信号处理器 DSP、 D/A 转换器和低通滤波器等。 DSP 系统的工作过程: 将输入信号 x(t)经过抗混叠滤波,滤掉高于折叠频率的分量,以防止信号频谱的混叠。 经过采样和 A/D 转换器,将滤波后的信号转换为数字信号 x(n)。 数字信号处理器对 x(n)进行处理,得数字信号 y(n)。 经 D/A 转换器,将 y(n)转换成模拟信号; 经
7、低通滤波器,滤除高频分量,得到平滑的模拟信号 y(t)。(图) 抗混叠滤波器 AD转换器- 数字信号处理器 DA转换器 低通滤波器9、简述dsp系统的设计步骤?答:明确设计任务,确定设计目标算法模拟,确定性能指令选择 DSP 芯片和外围芯片设计实时的 DSP 芯片系统硬件和软件调试系统集成和测试。(图)10、dsp系统有哪些特点?答:(1)接口方便(2)编程方便(3)具有高速性(4)稳定性好(5)精度高(6)可重复性好(7)集成方便11、在进行dsp系统设计时,应如何选择合理的dsp芯片?答:1、dsp的运算速度2、dsp芯片价格3、dsp芯片运算精度4、dsp芯片的硬件资源5、dsp芯片的开
8、发工具6、dsp芯片的功耗7、其他因素。第二章1、TMS320C54x芯片的基本结构都包括哪些部分?答:中央处理器 内部总线结构 特殊功能寄存器 数据存储器 RAM 程序存储器 ROM I/O 口 串行口 主机接口 HPI 定时器 中断系统2、TMS320C54x芯片的CPU主要由哪几部分组成?答:40 位的算术运算逻辑单元(ALU) 。 2 个 40 位的累加器(ACCA、ACCB) 。 1 个运行-16 至 31 位的桶形移位寄存器。 1717 位的乘法器和 40 位加法器构成的乘法器-加法器单元(MAC) 。 比较、选择、存储单元(CSSU) 。 指令编码器。 CPU 状态和控制寄存器。
9、3、处理器工作方式状态寄存器PMST中的MP/MC、OVLY 和DROM三个状态位对C54x的存储空间结构各有何影响?当OVLY= 0时,程序存储空间不使用内部RAM。当OVLY= 1时,程序存储空间使用内部RAM。内部RAM同时被映射到程序存储空间和数据存储空间。 当MP/ MC=0时,4000HEFFFH程序存储空间定义为外部存储器;F000HFEFFH程序存储空间定义为内部ROM;当MP/ MC=1时,4000HFFFFH程序存储空间定义为外部存储。DROM=0: 0000H3FFFH内部RAM;4000HFFFFH外部存储器;DROM=1: 0000H3FFFH内部RAM;4000HE
10、FFFH外部存储器;F000HFEFFH片内ROM;FF00HFFFFH保留。4 、TMS320C54x芯片的片内外设主要包括哪些电路? 通用I/O引脚定时器 时钟发生器 主机接口HPI 串行通信接口 软件可编程等待状态发生器可编程分区转换逻辑5、TMS320C54x芯片的流水线操作共有多少个操作阶段?每个阶段执行什么任务?完成一条指令都需要哪些操作周期?六个操作阶段: 预取指P;将PC中的内容加载PAB 取指F; 将读取到的指令字加载PB 译码D; 若需要,数据1读地址加载DAB;若需要,数据2读地址加载CAB;修正辅助寄存器和堆栈指针 寻址A; 数据1加载DB;数据2加载CB;若需要,数据
11、3写地址加载EAB 读数R; 数据1加载DB;数据2加载CB;若需要,数据3写地址加载EAB; 执行X。执行指令,写数据加载EB。6、TMS320C54x芯片的流水线冲突是怎样产生的?有哪些方法可以避免流水线冲突?答:C54x的流水线结构,允许多条指令同时利用CPU的内部资源。由于CPU的资源有限,当多于一个流水线上的指令同时访问同一资源时,可能产生时序冲突。 解决办法 由CPU通过延时自动解决; 通过程序解决,如重新安排指令或插入空操作指令。为了避免流水冲突,可以根据等待周期表来选择插入的NOP指令的数量。7、TMS320C54x芯片的串行口有哪几种类型?四种串行口:标准同步串行口SP,缓冲
12、同步串行口BSP,时分多路串行口TDM, 多路缓冲串行口 McBSP。8 、TMS320VC5402 共有多少可屏蔽中断?它们分别是什么?NMI和RS属于哪一类中断 源? 答:TMS320VC5402 有 13 个可屏蔽中断,RS 和NMI属于外部硬件中断。9、试分析下列程序的流水线冲突,画出流水线操作图。如何解决流水冲突?STLM A,AR0 STM #10,AR1 LD *AR1,B解:流水线图如下图: 解决流水线冲突: 最后一条指令(LD *AR1,B)将会产生流水线冲突,在它前面加入一条 NOP 指令可以解 决流水线冲突。10、试根据等待周期表,确定下列程序段需要插入几个 NOP 指令
13、。 1LD GAIN, T STM #input,AR1MPY *AR1+,A解:本段程序不需要插入 NOP 指令2STLM B,AR2 STM #input ,AR3 MPY *AR2+,*AR3+,A 解:本段程序需要在 MPY *AR2+,*AR3+,A 语句前插入 1 条 NOP 指令 MAC x, B STLM B,ST0 ADD table, A, B 解:本段程序需要在 ADD table, A, B 语句前插入 2 条 NOP 指令第三章1、已知(80H)=50H,AR2=84H,AR3=86H,AR4=88H。MVKD 80H,*AR2MVDD *AR2,*AR3MVDM 8
14、6H, AR4运行以上程序后,(80H)、(84H)、*AR3和AR4的值分别等于多少?解:(80H)=50H,(84H)=50H,*AR3=50H,AR4=50H2、已知,(80H)=20H、(81H)=30H。LD #0,DPLD 80H,16,BADD 81H,B运行以上程序,B等于多少?答:(B)=00 0000 0000H3、阅读以下程序,分别写出运行结果。.bss x,4.data table:.word 4,8,16,32STM #x,AR1RPT #2MVPD table,*AR1+解:数据表table中的常量4传送到以变量x 的地址为地址的存储单元中;数据表table中的常量
15、8传送到以变量x+1 的地址为地址的存储单元中;数据表table中的常量16传送到以变量x+2 的地址为地址的存储单元中;.bss x,4.datatable: .word 4,8,16,32STM #x,AR1RPT #2MVPD table,*+AR2解:数据表table中的常量4传送到以变量x+1 的地址为地址的存储单元中;数据表table中的常量8传送到以变量x+2 的地址为地址的存储单元中;数据表table中的常量16传送到以变量x+3 的地址为地址的存储单元中;3.5TMS320C54x的数据寻址方式各有什么特点?应该应用在什么场合?答:TMS320C54x有7种基本的数据寻址方式
16、:立即寻址,绝对寻址,累加器寻址,直接寻址,间接寻址,存储器映像寄存器寻址和堆栈寻址。1, 立即寻址:其特点是指令中包含有一个固定的立即数,操作数在指令中,因而运行较慢, 需要较多的存储空间。它用于对寄存器初始化。2, 绝对寻址:可以寻址任一数据存储器中操作数,运行较慢,需要较多的存储空间。它用于对寻址速度要求不高的场合。3, 累加器寻址:把累加器内容作为地址指向程序存储器单元。它用于在程序存储器和数据存储器之间传送数据。4, 直接寻址:指令中包含数据存储器的低7位和DP或SP结合形成16位数据存储器地址,它寻址速度快,用于对寻址速度要求高的场合。5, 间接寻址:利用辅助寄存器内容作为地址指针
17、访问存储器,可寻址64千字X16为字数据存储空间中任何一个单元。它用于按固定步长寻址的场合。6, 堆栈寻址:用于中断或子程序调用时,将数据保存或从堆栈中弹出。7, 存储器映像寄存器(MMR)寻址,是基地址为零的直接寻址,寻址速度快,它用于直接用MMR名快速访问数据存储器的0页。 第四章1、软件开发的环境有哪几种?在非集成开发环境中,软件开发常采用哪些部分?答:可以在两种开发环境中进行 C54X 的开发:非集成的开发环境和集成的开发环境。在非 集成开发环境中,软件开发常采用:编辑、汇编、链接、调试等部分。2、什么是COFF格式?它有什么特点?答:汇编器和链路器生成的目标文件,是一个可以由C54x
18、器件执行的文件。这些目标文件的格式称为公共目标文件格式,即COFF。特点:在编写汇编语言程序时,COFF采用代码段和数据段的形式,以便于模块化的编程,使编程和管理变得更加方便。3、说明.text段、.data段和.bss段分别包含什么内容?.text 段(文本段),通常包含可执行代码;.data 段(数据段),通常包含初始化数据; .bss 段(保留空间段),通常为未初始化变量保留存储空间。5、链接器对段是如何处理的? 答: 链接器将一个或多个 COFF 目标文件中的各种段作为链接器的输入段,经过链接后在一个可执行的 COFF 输出模块中建立各个输出段, 通过情况下是将不同目标文件中的同名段进
19、 行合并,并为各个输出段分配进具体的存储器中。6、什么是程序的重定位? 答:将各个段配置到存储器中,使每个段都有一个合适的起始地址; 将符号变量调整到相对于新的段地址的位置; 将引用调整到重新定位后的符号,这些符号反映了调整后的新符号值。 7、宏定义、宏调用和宏展开分别指的是什么? 答:在调用宏之前,必须先定义宏。可以在源程序的任何位置定义宏,宏定义的所有内容必须包含在同一个文件中。宏定义可以嵌套,即在一条宏指令中调用其他的宏指令。在定义宏之后,可在源程序中使用宏名进行宏调用。8、链接器能完成什么工作?链接器命令文件中,MEMORY 命令和 SECTIONS 命令的任务是什么? 答:链接器将各
20、个目标文件合并起来,并完成如下工作:(1)将各个段配置到目标系统的存储器。 (2)对各个符号和段进行重新定位,并给它们指定一个最终的地址。 (3)解决输入文件之间的未定义的外部引用。 MEMORY 命令的作用: MEMORY 命令用来建立 DSP 应用系统中的存储器模型。 通过这条命令, 可以定义系统中所 包含的各种形式的存储器,以及它们占用的地址范围。 SECTION 命令的作用: 说明如何将输入段结合成输出段; 在可执行程序中定义输出段; 规定输出段在存储器中的存 储位置;允许重新命名输出段。第六章 应用程序设计2、FIR低通滤波器的截止频率为,其输出方程为:。存放的系数表以及存放数据的循
21、环缓冲区设置在DARAM中,如图6.1所示。试用MATLAB中的fir1函数确定各系数ai,用循环缓冲区实现。解:运行Coef.m文件,生成滤波器所需系数文件。Coef.m文件内容如下:n=79;b=fir1(n,0.1);fid=fopen(FIRCoef.inc,wt);fprintf(fid,%s %s %sn,FIRCoef, .sect, FIRCOEF);fprintf(fid, %sn,);for j=1:1:(n+1)fprintf(fid, %s %6.0fn,.word,round(b(j)*16384);endfclose(fid)用循环缓冲区实现的参考程序如下:;FIR
22、滤波器的参考程序,使用循环缓冲区法。 .title fir_main.asm .mmregs .global _c_int00 K_FIR_BFFR .set 80K_FIR_INDEX .set 1K_FRAME_SIZE .set 256stack_len .set 100stack .usect STACK,stack_lenFIR_DP .usect fir_vars,0d_filin .usect fir_vars,1d_filout .usect fir_vars,1fir_coff_table .usect fir_coff,K_FIR_BFFRd_data_buffer .us
23、ect fir_bfr,K_FIR_BFFR ; buffer size for the filterFIR_Dinbuf .usect fir_dinbuf,K_FRAME_SIZEFIR_Doutbuf .usect fir_doutbuf,K_FRAME_SIZE .asg AR0, FIR_INDEX_P .asg AR4,FIR_DATA_P .asg AR5,FIR_COFF_P .asg AR6,INBUF_P .asg AR7,OUTBUF_P .copy FIRInput.inc .copy FIRCoef.inc .text_c_int00: ssbx INTM ; INT
24、M=1,禁止所有可屏蔽中断 ssbx FRCT;- stm #0, CLKMD ; 切换CPU内部PLL到分频模式Clk_Status: ldm CLKMD, A and #01b, A bc Clk_Status, ANEQ ;检查是否已经切换到分频模式? stm #0x07ff,CLKMD ;设置DSP 时钟 16.384MHZ;- nop stm #0x3FF2,PMST stm #0x7FFF,SWWSR stm #0xF800,BSCR stm #0x0000, IMR ; 禁止所有可屏蔽中断 stm #0xFFFF, IFR ; 清除中断标志 stm #stack+stack_le
25、n,SP ;设置堆栈指针 nop STM #FIR_Dinbuf,AR1 RPT #(K_FRAME_SIZE-1) MVPD #FIRIn,*AR1+ ;以上3行的功能是把模拟数据拷贝到内存中。 STM #fir_coff_table,FIR_COFF_P RPT #K_FIR_BFFR-1; MVPD #FIRCoef,*FIR_COFF_P+ ;把滤波器常数拷贝到内存中。 STM #K_FIR_INDEX,FIR_INDEX_P STM #d_data_buffer,FIR_DATA_P ; load cir_bfr address for the recent samples RPTZ
26、 A,#K_FIR_BFFR STL A,*FIR_DATA_P+ ;清除滤波器缓冲区,所有数据存储单元置0。 STM #(d_data_buffer+K_FIR_BFFR-1), FIR_DATA_P ; STM #fir_coff_table, FIR_COFF_P; AR5指向滤波器系数缓冲区最低地址。 STM #FIR_Dinbuf,INBUF_P AR6指向输入数据缓冲区,准备读入数据。 STM #FIR_Doutbuf,OUTBUF_P ; AR7指向输出数据缓冲区,准备读出数据。 ;修改数据页指针 LD #FIR_DP,DP STM #K_FRAME_SIZE-1,BRC ; 程
27、序执行256次。 RPTBD fir_filter_loop-1 STM #K_FIR_BFFR,BK ; LD *INBUF_P+, A ; 从输入数据缓冲区读入数据,准备处理。fir_filter: STL A,*FIR_DATA_P+% ;读入最新数据 RPTZ A,(K_FIR_BFFR-1) MAC *FIR_DATA_P+0%,*FIR_COFF_P+0%,A ; 累加处理。 STH A, *OUTBUF_P+ ; 把数据输出到输出缓冲区,可以验证结果。fir_filter_loopWait b Wait .END第七章 TMS320C54x片内外设、接口及应用1、已知TMS320
28、C54X的CLKOUT频率为4MHz,那么,在SAM工作方式下,主机的时钟频率是多少?解:在SAM工作方式下,主机频率可达3.2MHz或2.4MHz。在HOM工作方式下,主机的时钟频率与TMS320C54X的时钟频率有关吗?答:在HOM工作方式下,主机的时钟频率与TMS320C54X的时钟频率无关。2、试分别说明下列有关定时器初始化和开放定时中断语句的功能(针对5402处理器)。STM #0004H,IFR解:清除外部中断2标志位STM #0080H,IMR解:允许定时器T1或DMAC1中断(使用哪一种中断由DMA通道优先级和使能控制寄存器DMPREC控制。在复位以后,中断被配置为定时器T1中
29、断)。RSBX INTM解:使能所有可屏蔽中断。STM #0279H,TCR解:设置定标计数器的值PSC为9;定时器分频系数为9;以PRD中的值加载TIM,以TDDR中的值加载PSC;定时器停止工作。3、试分别说明下列语句的功能。1STM #SPCR10,SPSA0STM #0001H,BSP0解:对串口控制寄存器SPCR10赋值。不使用数字循环返回模式,接收数据DRR1,2采用右对齐方式,连续时钟方式,DX使能判断,接收中断由RRDY产生,接收移位寄存器未超载,串口接收器准备好,使能串口接收器。STM #SPCR20,SPSA0STM #0081H,BSP0解:对串口控制寄存器SPCR20赋
30、值。串口使用软件模式,帧同步逻辑、采样率发生器复位,由发送准备好XRDY驱动发送中断;发送移位寄存器为空,发送器未准备好,使能串口发送器。STM #SPCR20,SPSA0ORM #01000001B,BSP0解:修改串口控制寄存器SPCR20的值。由采样率发生器产生帧同步信号,使能串口发送器。4、已知中断向量TINT=013H,中断向量地址指针IPTR=0111H,求中断向量地址。解:中断向量地址=(100010001B)9+(10011)2=88CCH第八章1、一个典型的dsp系统通常有哪些部分组成?画出原理框图?答:一个完整的DSP系统通常是由DSP芯片和其他相应的外围器件构成。一个典型的 DSP 系统应包括抗混叠滤波器、数据采集 A/D 转换器、数字信号处理器 DSP、 D/A 转换
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1