1、1简述dsp芯片的主要特点。1.哈佛结构:将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问。2.多总线结构:可以保证在一个机器周期内可以多次访问程序空间和数据空间。3.指令系统的流水线操作:DSP芯片广泛采用流水线以减少指令执行时间,从而增强了处理器的处理能力。4.专用的硬件乘法器:DSP芯片中有专用的硬件乘法器,使得乘法累加运算能在单个周期内完成。5:特殊的DSP指令:(例如)TMS320C54x中的FIRS和LMS指令专门用于系数对称的FIR滤波器和LMS算法。6.快速的指令周期7.硬件配置强1.1什么是哈佛结构和冯.诺伊曼结
2、构,有什么区别?冯.诺伊曼结构采用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行的。哈佛结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和采访,可对程序和数据进行独立传输。2结合你的专业方向,试举出一个dsp具体应用实例,并说明为什么要采用dsp.DSP芯片的高速发展,得益于集成电路技术的进步,巨大的市场需求l 信号处理:数字滤波、自适应滤波、FFT、频谱分析l 通信:调制解调、数据压缩/解压缩、数据加密/解密,回声消除l 语音:语音合成、语音识别l 图形/图像:图像处理、机器人视觉l 军事:雷达、声纳、导航、制导l 仪器仪表:频谱分析
3、仪l 自动控制:机器人控制、电机控制l 医疗:医学超声、监护系统l 家用电器:IP电话、可视电话3. 请描述TMS320C54x的总线结构1个程序总线(PB) 传送从程序存储器来的指令代码和立即数3个数据总线 (CB DB EB)连接各种元器件4个地址总线(PAB CAB DAB EAB) 传送执行指令所需的地址PB 用于装载指令代码和立即数 CB DB 用于读取操作数 EB 用于写入操作数地址总线负责其他地址总线的地址存储与装载4. TMS320C54x片内存储器一般包括哪些种类?如何配置TMS320C54x片内存储器。TMS320C54x芯片有随机访问存储器(RAM)和只读存储器(ROM)
4、 RAM可分为两种:双访问RAM(DARAM)和单访问RAM(SARAM) 片内存储空间一般包括:64K的程序空间,64K的数据空间和64K的I/O空间,TMS320C54x片内存储器可使用MP/MC位、OVLY位、DROM位进行相对应得配置。MP/非MC位:如果该位清0,则片内ROM映象在程序存储器空间;如果置1,则片内ROM不映象在程序存储器空间。OVLY位:如果该位置为1,则片内RAM分别映象在程序存储器空间和数据存储器空间;如果该位清0,则片内RAM只映象在数据存储器空间。DROM位:如该位设置为1,则片内ROM的一部分映象在数据存储器空间;如果清0,则片内ROM的使用取决于MP/非M
5、C位。5. TMS320C54x芯片的cpu包括哪些部分?其功能是什么?CPU的基本组成及功能如下:CPU状态和控制寄存器:用于设置各种工作条件和工作方式的状态以及存储器配置状态和控制信息。40位算术逻辑单元(ALU)40位累加器A和B:两者共同完成算数运算和逻辑运算。桶形移位寄存器:使处理器能完成数字定标,位提取,对累加器进行归一化处理等操作。乘法器/加法器单元:在单周期内完成一次乘法累加运算。比较,选择和存储单元(CSSU):是专门为Viterbi算法设计的加法,比较,选择操作的硬件单元。指数编码器:用于支持单周期指令EXP的专用硬件。6. TMS320C54x提供哪几种数据寻址方式?举例
6、说明它们是如何寻址的?(1)立即数寻址 LD #10,A(2)绝对地址寻址 STL A,*(y)(3)累加器寻址 READA x(4)直接寻址 LD x,A(5)间接寻址 LD *AR1,A(6)存储器映射寄存器寻址 LDM ST1,B(7)堆栈寻址 PSHM AG7. 在循环寻址方式中,如何确定循环缓冲的起始地址?如循环缓冲大小为32,其起始地址必须从哪儿开始?循环寻址中,循环缓冲区大小寄存器用于确定循环缓冲区的大小。大小为R的循环缓冲区必须从一个N位边界开始,其中,N是满足条件2nR的最小整数。如,R=32转换为100000,即N=6,所以循环缓冲区必须从低6位为0的地址XXXX XXXX
7、 XX00 0000开始。8. 双数据存储器操作数间接寻址使用哪几种类型?所用辅助寄存器只能是那几个?其特点是什么?双数据存储器操作数间接寻址类型为*ARx,*ARx-,*ARx+,*ARx+0%.所用辅助寄存器只能是AR2,AR3,AR4,AR5.其特点是:占用程序空间小,运行速度快,在一个机器周期内通过两个16位数据总线(C和D)读两个操作数.指令中Xmem表示从DB总线上读出的16位操作数,Ymem表示从CB总线上读出的16位操作数.9. 汇编器和链接器如何对段进行管理?汇编器对段的处理是通过段伪指令来区别各个段的,并将段名相同的语句汇编在一起。汇编器的5条伪指令可识别汇编语言程序的各个
8、部分:.bss 未初始化段,给变量保留空间 .usect 未初始化段,如定义一个缓冲区,在一个未初始化的段中保留空间 .text 已初始化段,即代码段,该段包含程序代码.data 已初始化段,一般是指常数表,该段包含已初始化的数据 .sect 已初始化段,如定义一段完成某项功能的代码为一个段,可以命名。链接器对段的处理,有两个主要任务:(1) 把一个或多个COFF目标文件中的各种段作为链接器的输入,经链接后在一个可执行的COFF输出模块中建立各个输出段(2)为各个输出段选定存储器地址。为完成以上任务,链接器有两条命令:(1) MEMORY命令 用来定义目标系统的存储器配置图,包括对存储器各部分
9、的命名,以及规定他们的起始地址和长度。(2.)SECTION命令 告诉链接器如何将输入段组合成输出段,以及将输出段放在存储器中的什么位置。10. 汇编程序中的伪指令有什么作用?其中段定义伪指令有哪些?初始化段和未初始化段有何区别?伪指令不生成最终代码(即不占据存储单元)但对汇编器、链接器有重要的指示作用。包括段定义、条件汇编、文件引用、宏定义等。段定义伪指令:.text此段存放程序代码 .data此段存放初始化了的数据 .bss此段存入未初始化的变量 .sect 名称定义一个有名段,放初始化了的数据或程序代码区别:当汇编器遇到初始化段时将停止当前段的汇编,然后将金接着的程序代码或数据汇编到指定
10、的段中,直到再次遇到另一条这些指令为止,各个段中的数据都是连续安排到存储器中的。当汇编器遇到未初始化段时,并不结束当前段的汇编,只是暂时从当前段脱离出来,并开始对新的段进行汇编,两伪指令可以出现在一个已初始化段的任何位置上,而不会对他的内容发生影响。11. 链接命令文件有什么作用?如何使用MEMORY命令和SECTIONS命令?链接命令文件内容和汇编程序中段定义伪指令有联系吗?答:链接命令文件(.cmd文件)通过段定位控制命令,分配程序代码空间、数据代码空间、程序运行空间、堆栈空间。 在链接命令文件中可以使用MEMORY和SECTIONS命令来定义目标系统的存储器配置图及段的映射。 有联系。段
11、伪指令SECTIONS负责告诉连接器将输入文件中用.text、,data、.bss、.sect等伪指令定义的段配置到MEMORY命令中。12. 叙述块重复操作指令RPTB的使用。答:块重复指令RPTB用于将一个指令块重复执行规定的次数。使用时要先用STM指令在块重复计数器BRC中装入N值,N比块循环的次数少1,N值的范围是0到65535。块重复起始地址是RPTB指令的下一条指令的地址。块重复结束地址是重复块的最后一条指令的最后一个字的地址,由RPTB指令的操作数规定。对一个数组进行初始化:X5=0,0,0,0,0,然后对数组X5中的每个元素加1。.mmrege.def start.bss x,
12、5.textStart:STM #x,AR1LD #1,16,BRPT #4STL A,*AR1+LD #1,16,BSTM #4,BRCSTM #x,AR4RPTB next-1ADD *AR4,16,B,ASTH A,*AR4+next:LD #0,B.end13. 当TMS320C54xCPU接收到可屏蔽的硬件中断时,满足哪些条件才能响应中断?答:可屏蔽的硬件中断只有在以下条件满足时才能被响应:(1)优先级最高的中断。(2)状态寄存器ST1中的INTM位是0,表示允许可屏蔽中断。(3)中断屏蔽寄存器IMR中相应的位是1。14. C54x的中断向量表是如何重定位的?P120重新映象中断向量
13、地址。C54x的中断向量表是可重定位的,即在DSP复位时,中断向量表的起始地址固定为0FF80H,复位后,此表的起始地址可由用户指定.中断向量可重新被映象到程序存储器的任何一个128字页开始的地方(除保留区域外).中断向量地址由PMST中的中断向量指针IPTR(9位)和中断向量号(031)左移两位后组成。15. 定点DSP中如何表示小数?用Q15格式表示小数。正数:乘以32768;负数:取绝对值,其绝对值部分乘以32768再取反加1.16在小数乘法中使用了置FRCT标志为1的指令,如果将该语句取消,那么例7-4和例7-5中乘法运算的结果是多少?什么时候应该设置FRCT标志?在小数乘法编程时,应
14、事先将FRCT置位(用指令:SSBX、FRCT)。.两个带符号位相乘,得到的乘积带有两个符号位,即产生了冗余符号位。用双操作数指令编程计算y=aixi,已知其中a1=0.1,a2=0.2,a3=-0.3,a4=0.4X1=0.8,x2=0.6,x3=-0.4,x4=-0.2.title “chef.asm”.mmregs.def start,_c_int00.bss x,4.bss a,4.bss y,1.datatable .word 1*32768/10.word 1*32768/10.word 2*32768/10.word -3*32768/10.word 4*32768/10.wor
15、d 8*32768/10.word -4*32768/10.word -2*32768/10.text_c_int00b startnopnopstart:SSBX FRCTSTM #0,SWWSRSTM #x,AR1RPT #7MVPD table,*AR1+STM #x,AR2STM #A,AR3STM #Y,AR4RPTZ A,#3MAC *AR2+,*AR3+,ASTH A,*AR4done:B done17. 定时器由哪些部分构成?说明其工作原理。定时器主要由定时寄存器TIM、定时周期寄存器PRD、定时控制寄存器TCR及相应的逻辑控制电路组成。定时周期寄存器PRD用来存放定时时间,定
16、时寄存器TIM为16位减1计数器,定时控制寄存器TCR存放定时器的控制位和状态位,逻辑控制电路用来控制定时器协调工作。18. 多通道缓冲串口(MCBSP)由哪些部分构成?McBSP由引脚、接收发送部分、时钟及帧同步信号产生、多通道选择以及cpu中断信号和DMA同步信号组成。 19、描述McBSP数据的接收和发送过程MCBSP的接收操作是三缓冲(triple buffered)的,而发送操作是双缓冲(double buffered)的。寄存器值的使用取决于串行字长是否符合16bits。接收数据过程如下:(1)MCBSP用FSR管脚等待帧同步信号的到来(2)当帧同步脉冲到来后,MCBSP插入相应的
17、数据延迟。数据延迟的数量在RCR2寄存器的RDATDLY位中设定。(3)MCBSP从DR管脚接收数据,并移位至接收移位寄存器(RSR1/21)中。(4)当一个完整的字被完全送达后,MCBSP将RSR寄存器中的值拷贝到接收缓冲寄存器(RBR),规定RBR1不被之前的数据占满。(5)MCBSP将RBR中的数据拷贝到数据接收寄存器(DRR)中,规定DRR1不被之前的数据占满。当DRR1接收到新数据时,SPCR1寄存器的receiver ready bit(RRDY)将置1。这暗示着接收的数据已经准备妥当,可以被CPU或DMA控制器读取。MCBSP发送数据的过程如下:(1)CPU或DMA控制器将数据写
18、入数据发送寄存器(DXR)中。(2)当新数据到达DXR1后,MCBSP将会将数据发送寄存器(DXR)中的内容拷贝入发送移位寄存器(XSR)中。(3)MCBSP在FSX管脚上等待传输帧同步信号。(4)当帧同步脉冲到达时,MCBSP按照XCR2寄存器中的XDATDLY位所设定的数据延迟来插入数据延迟。(5)MCBSP将发送移位寄存器(TXR)中的数据位移位至DX管脚。20.DSP片内存储器和片外存储器有哪些区别?为什么要尽量使用片内存储器?片内存储器一般指内部Ram,外部存储器一般指外部Ram、E2ROM、Flash等,按读写速率分RamE2ROMFlash,但是Ram掉电会丢失,后两者不丢失。D
19、SP不使用外部存储器主要的原因就是因为读写速率低占用时间资源大。21.DSP如何与不同速率的片外存储器以及其他外设进行数据交换?答:软件可编程等待状态发生器可以将外部总线周期扩展到7个机器周期,以使C54x能与低速外部设备接口。而需要多于7个等待周期的设备,可以用硬件READY线来接口。23、时钟发生器工作时需要一个参考时钟输入,可以用以下两种方式提供:(1)内部晶体震荡器。在引脚X1和X2/CLKIN之间接一枚晶体,使内部震荡器工作。(2)外部参考时钟源。外部时钟直接从X2/CLKIN引脚输入,X1脚悬空。24、存储器控制信号25、书上P131 例7-5用双操作数指令编程计算 ,已知其中。.
20、title “chef.asm”;为汇编源程序取名 .mmregs;定义存储器映象寄存器.def start,_c_int00;定义标号start.bss x,4;为x分配4个存储单元.bss a,4;为a分配4个存储单元.bss y,1;为结果y分配1个存储单元.data;定义数据代码段Table:.word 1*32768/10;在table开始的8个地址放数据.word 2*32768/10;0.2/Q15.word -3*32768/10;-0.3/Q15 .word 4*32768/10;0.4/Q15.word 8*32768/10;0.8/Q15.word 6*32768/10;
21、0.6/Q15.word -4*32768/10;-0.4/Q15.word -2*32768/10;-0.2/Q15.text;定义可执行程序代码段_c_int00b start;无条件转移到标号为START的地址nop;可以在此处设置断点nopstart:SSBXFRCT;设置FRCT位,表示进行小数乘STM #0,SWWSR;复位SWWSRSTM#x,AR1;将x的首地址赋给AR1RPT#7;重复8次下条指令MVPDtable,*AR1+;将程序存储器8个数传给数据存储器STM#x,AR2;将x的首地址存入AR2STM#a,AR3;将a的首地址存入AR3STM#y,AR4;将y的首地址存
22、入AR4RPTZA,#3;将A清零,重复4次下条指令MAC*AR2+,*AR3+,A;执行乘法累加和,结果放在A中 STHA,*AR4;将A的高16位存入结果y,低端字省去done:Bdone;原处循环等待程序运行结果:y=0x1EB7=0.24 17x17 乘法累加单元 饱和和舍入硬件 2个40位的 ACC 1个40位的ALU 1个40位的桶式移位寄存器 暂存器 指数编码器 程序和地址发生单元 比较选择存储单元 4 条内部总线 功能强大的外部接口补充:TMS320C54x有几个状态和控制寄存器?它们的功能是什么?有3个状态和控制寄存器。分别是状态寄存器0,状态寄存器1,处理器工作模式状态寄存器。状态寄存器0功能:反映寻址要求和计算机中的状态。状态寄存器1功能:反映寻址要求、计算初始状态、I/O终端控制。工作方式寄存器功能:设定并控制处理器的工作方式,反映处理器工作状态。