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