《DSP复习整理.doc》由会员分享,可在线阅读,更多相关《DSP复习整理.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流DSP复习整理【精品文档】第 10 页 第一章1. TI公司的DSP芯片概况1. TMS320C2000系列:称为DSP控制器。适用于数字化控制的领域。2. TMS320C5000系列: 16位定点DSP。主要用于通信领域。3. TMS320C6000系列:每秒执行90亿条指令,应用于数字通信和音视频技术。 第二章1. TMS320C55x的总体结构(填空题) P10 C55x芯片由CPU、存储空间、片内外设组成不同芯片体系结构相同,具有相同的CPU,片上存储器和外围电路配置有所不同2. C55x CPU内部总线结构内部独立总线:12组程序地址总线(PA
2、B):1组,24位程序数据总线(PB):1组,32位数据读地址总线(BAB、CAB、DAB):3组,24位数据读总线(BB、CB、DB):3组,16位数据写地址总线(EAB、FAB):2组,24位数据写总线(EB、FB):2组,16位。3. C55x的CPU组成(基本功能)1.指令缓冲单元(I单元)组成: 3216位指令缓冲队列和指令译码器。 功能:接收程序代码并放入指令缓冲队列; 由指令译码器解释指令,再把指令流传给其它的工作单元2.程序流单元(P单元)组成: 程序地址发生器和程序控制逻辑 功能: 产生所有程序空间地址,并送到PAB总线3.地址-数据流单元(A单元)组成:数据地址产生电路 (
3、DAGEN);附加16位ALU和1组寄存器功能: 产生读/写数据空间地址,并送到BAB、CAB、DAB总线4.数据运算单元(D单元)组成: 1个40位的筒形移位寄存器(barrel shifter); 2个乘加单元 (MAC);1个40位的ALU; 若干寄存器。 功能: CPU中最主要的部分,是主要的数据处理部件5.存储器接口单元(M单元)是CPU和数据空间或I/O空间之间传输所有数据的中间媒介4. C55x存储器配置存储空间:片内存储空间共有352KB(176K字);外部存储空间共有16MB (8M字)支持的存储器类型:异步SRAM、EPROM;同步DRAM;同步突发SRAM特点 :采用统一
4、的程序/地址空间存储空间; I/O空间与程序/地址空间分开。5. C55x的CPU结构 存储器接口单元(M单元); 指令缓冲单元(I单元);程序流单元(P单元);地址数据流单元(A单元);数据计算单元(D单元);内部地址总线与数据总线6. 地址总线与数据总线C55x的CPU总线1组32位程序总线:PB5组16位数据总线: BB、CB、DB、EB、FB6组24位地址总线:PAB、BAB、CAB、DAB、EAB、FAB特点: 这种总线并行机构使CPU在一个机器周期内,能够读1次32位程序代码、读3次16位数据、写2次16位地址。7. 指令流水线(简答题)P23 C55x的指令流水线分为两个阶段:第
5、一阶段取指阶段:从存储器取来32位指令包,将其存入指令缓冲队列(IBQ)中,并送48位指令包给第二流水阶段第二阶段执行阶段:对指令进行译码,并完成数据访问和计算。8. CPU寄存器p25 1.ST0_55、ST1_55和ST3_55都有两个访问地址; 2. T3、RSA0L、REA0L和SP有两个访问地址; 3.任何装入BRC1的指令将相同的值装入BRS1。9. 中断向量指针(IVPD,IVPH)p36DSP中断向量指针(IVPD):16位,指向256字节的程序空间中的中断向量表(IV0IV15和IV24IV31),这些中断向量供DSP专用.主机中断向量指针(IVPH):16位,指向256字节
6、的程序空间中的中断向量表(IV16 IV23),这些中断向量供DSP和主机共享使用如果IVPD和IVPH的值相同,所有中断向量可能占有相同的256字节大小的程序空间;DSP硬件复位时,IVPD和IVPH都被装入到FFFFH地址处;IVPD和IVPH均不受软复位的影响 在修改IVP之前应确保:INTM=1,即所有可屏蔽中断不能响应。每个硬件不可屏蔽中断对于原来的IVPD和修改后的IVPD都有一个中断向量和中断服务程序。10. 调试中断使能寄存器(DBIER0,DBIER1)仅当CPU工作在 实时 仿真模式 调试 暂停 时,这两个16位的调试中断使能寄存器才会使用11. 保护地址(作用) p40为
7、了支持把C54x的代码写入ST0、ST1和PMST12. 存储器映射(访问格式、外扩空间)p51C55x的存储(数据/程序)空间采用统一编址的访问方法CPU读取程序代码时,使用24位地址访问相关字节;CPU读写数据时,使用23位地址访问相关字。两种情况下地址总线上均为24位,只是数据寻址时地址总线上的最低位强制填充0。C55x存储空间(总共为16M字节或8M字)的划分:128个主页面(0127),每个主页面为64K字。主页面0的前192个字节或96个字(00 0000h00 00BFh)被MMR所占用。外部扩展存储空间由CE3:0分为4个部分,每部分都可以支持同步或异步存储器类型。13. DA
8、RAM与SARAM区别 p51DARAM:双存取RAM,分为8个8K字节或4K字的块,每个8K字节的块每周期可以访问两次(两次读或一次读、一次写)。DARAM可被内部程序总线、数据总线或DMA访问。前4块DARAM可以被HPI访问。SARAM:单存取RAM,分为24个8K字节或4K字的块,每个8K字节的块每周期只能访问一次(一次读或一次写)。14. 程序空间(读写) P53CPU使用24位宽的字节寻址从程序存储器读取指令。地址总线是24位的,通过程序读数据总线一次可以读取32位的指令,指令中每8位占有一个字节地址。15. I/O空间 P55I/O空间和程序/数据空间是分开的,只能用来访问DSP
9、外设上的寄存器对于I/O空间的读写是通过数据读总线DAB和数据写总线EAB进行的。读写时要在16位地址前补0。16. 堆栈操作(哪几种堆栈)C55x支持两个16位堆栈,即数据堆栈和系统堆栈17. 堆栈配置p56C55x提供了3种可能的堆栈配置一种配置使用快返回过程,另外两种使用慢返回过程(稍微看下其区别)18. 快返回与慢返回过程的区别 p57在于CPU怎样保存和恢复两个内部存储器(即程序计数器PC和一个循环现场寄存器的值。在慢返回过程里,返回地址和循环现场保存在堆栈里(在存储器里),当CPU从子程序返回时,这些数据的恢复速度取决于访问存储器的速度。在快返回过程里,返回地址保存在寄存器RETA
10、中,循环现场保存在寄存器CFCT中。用专门的32位装入和存储指令可同时读/写RETA 和CFCT.19. DSP处理中断的步骤(简答)(1)接收中断请求。软件和硬件都要求DSP将当前程序挂起。(2)响应中断请求。CPU必须响应中断。如果是可屏蔽中断,响应必须满足某些条件。如果是不可屏蔽中断,则CPU立即响应。(3)准备进入中断服务子程序。CPU要执行的主要任务有:完成当前指令的执行,并冲掉流水线上还未解码的指令;自动将某些必要的寄存器的值保存到数据堆栈和系统堆栈;从用户实现设置好的向量地址获取中断向量,该中断向量指向中断服务子程序。(4)执行中断服务子程序。CPU执行用户编写的ISR。ISR以
11、一条中断返回指令结束,自动恢复步骤(3)中自动保存的寄存器值。注意:1.外部中断只能发生在CPU退出复位后的至少3个周期后,否则无效;2.在硬件复位后,不论INTM位的设置和寄存器IER0、IER1的值如何,所有的中断都被禁止,直到通过软件初始化堆栈后才开放中断。20. 可屏蔽中断 p60所有的可屏蔽中断都是硬件中断。无论硬件何时请求一个可屏蔽中断,在一个中断标志寄存器里就有相应的中断标志置位。该标志一旦置位,相应的中断还必须使能,否则不会得到处理。21. 不可屏蔽中断(有哪些) P63硬件中断/RESET;硬件中断/NMI;软件中断 第三章1. 寻址方式(填空题)1.绝对寻址方式:通过在指令
12、中指定一个常数地址完成寻址2.直接寻址方式:使用地址偏移量寻址3.间接寻址方式:使用指针完成寻址2. 绝对寻址方式 p70 。自己瞄书3直接寻址方式 p71DP直接寻址方式和SP直接寻址方式是相互排斥的,只能有一种方式存在。通过设置ST1_55的CPL位选择。寄存器位直接寻址方式和PDP直接寻址方式不受CPL位的影响4. 间接寻址方式p74 。自己瞄书5.数据存储器的寻址(看书上例子)p81三种寻址方式(绝对、直接、间接)都可以用于对数据存储器的寻址。6. I/O空间的寻址(选择or 填空)P83 第四章1.COFF文件的基本单元段段(section)是COFF文件的基本单元。一个段是一个占据
13、存储器里连续地址的代码或者数据块,COFF目标文件的每个段都是分开和不同的COFF目标文件通常包括3个默认段,即.text段,通常包含可执行代码.data段,通常包含初始化数据.bss段,通常为未初始化变量保留存储空间2. 汇编器对段的处理汇编器有5条伪指令可以识别汇编语言程序的各个不同段.text、.data、.sect创建初始化段.bss和.usect创建未初始化段.sect与.usect创建自定义段和子段3. 例4-1,段伪指令的使用。(描述开辟的空间以及后面的图,一定要看哪!)P1374. MEMORY指令与SECTIONS指令 p158MEMORY指令允许用户定义一个目标系统的存储器
14、映射,可以命名存储器的各个部分,并且指定开始地址和大小。SECTIONS指令告诉链接器合成输入段为输出段,并且告诉链接器把这些输出段放在存储器的某个位置。5. 例4-19,链接器的使用。P162a.obj b.obj /*输入文件 */-o prog.out /* 用-o参数指定输出文件名 */SECTIONS .text: load =ROM, run=800h .const: load=ROM .bss : load=RAM .vectors: load=FF80h .data: align = 16图45显示了这个例子的存储器映射情况 图4-5 段在存储器里的分配 第六章1. 定义各种数
15、据类型时应注意如下规则:1.避免设int和long为相同大小2.对定点算法(特别是是乘法)尽量使用int数据类型。用long类型作乘法操作数会导致调用运行时间库(run-time library)的程序3.使用int或unsigned int类型而非long类型来循环计数4.避免设char为8位或long为64位5.当所写代码用于多DSP目标系统中时,宜定义genetic类型。比如,一个人可以对16位整数和32位整数分别使用int16和int32。当对C55x DSP进行编译时,这些类型会分别被定义成int和long6.最好使用int类型作循环指数变量和其它位数不太重要时的整型变量,因为int
16、是对目标系统操作最高效的整数类型而不管芯片结构如何2.volatile P194如果程序依靠存储器访问,则必须使用volatile关键字来指明这些访问。3. Pragma指令Pragma指令告诉编译器的预处理器如何处理函数。4. 存储器分配p197-p199 1.C编译器生成的段:C编译器生成的段有两种基本的类型,即初始化段和未初始化段 2. 堆栈: 第七章1.小数定标 p222概念:设定一个16位数的小数点处于该数中的哪一位;通过设定小数点在16位数中得不同位置,可以表示不同大小和不同精度的小数数的定标用Q表示法。不同的Q所表示的数不仅范围不同,而且精度也不相同。Q越大,数值范围越小,但精度
17、越高;Q越小,数值范围越大,但精度就越低对定点数而言,数值范围与精度是一对矛盾。一个变量要想能够表示比较大的数值范围,必须以牺牲精度为代价;而想提高精度,则数的表示范围就相应地减小。在实际的定点算法中,应该根据具体问题进行折衷处理, 以达到最佳效果。2. 溢出的处理方法溢出:如果算术运算结果超出寄存器所能表示的最大数就会出现溢出.溢出还与输入信号的特性和运算法则有关 C55x的溢出处理机制1.保护位:C55x的每个累加器都有8个保护位(3932位),允许连续256次乘加操作而累加器不溢出。2.溢出标志位:C55x的每个累加器都有相关的溢出标志位,当累加器操作结果出现溢出时,这个标志位就会置位。
18、3.饱和方式位SATD和SATA:SATD控制D单元的操作,SATA控制A单元的操作。如果SATD=1,当D单元发生溢出时,对D单元的结果进行饱和处理。不管饱和方式位的值是什么,当累加器发生溢出时,相应的溢出标志位都会被置位。A单元没有溢出标志位,但如果SATA=1,发生溢出时,结果也会进行饱和处理。溢出的处理方法:饱和。饱和是一种处理溢出的方法,但是饱和会剪掉部分输出信号,可能会引起信号失真和引起系统非线性。输入定标。分析所要使用的系统,假定最坏的情况,然后对输入信号定标,以防止溢出。但是这种方法会极大地降低输出信号的精确度。固定定标。假定最坏的情况,对中间结果定标。这种方法可以防止溢出,同
19、时增加了系统的信噪比。动态定标。可以监测中间结果的范围,只在需要的时候对中间结果定标。这种方法可以防止溢出但会增加计算量。 第八章1. 时钟发生器概况 p253 图8-1 时钟发生器从CLKIN引脚接收输入时钟信号,将其变换为CPU及其外设所需要的工作时钟工作时钟经过分频通过引脚CLKOUT输出,可供其他器件使用时钟发生器内有一个数字锁相环(DPLL)和一个时钟模式寄存器(CLKMD)2.时钟发生器有三种工作模式:旁路模式(BYPASS) 锁定模式(LOCK) Idle模式时钟模式寄存器(CLKMD)中的PLL ENABLE位控制旁路模式和锁定模式可以通过关闭CLKGEN Idle模块使时钟发
20、生器工作在Idle模式。PLL ENABLE=0,PLL工作于旁路模式,如果PLL ENABLE=1,PLL工作于锁定模式 Idle模式:为了降低功耗,可以加载Idle配置,使DSP的时钟发生器进入Idle模式当时钟发生器处于Idle模式时,输出时钟停止,引脚被拉为高电平。3. 通用定时器概况 p256C55x 芯片提供了两个定时器TMS320VC5503/ 5507/5509A/5510提供的是两个20位的定时器定时器由两部分组成:预定标计数寄存器(PSC), 4位主计数器(TIM), 16位寄存器:计数寄存器(PSC,TIM)周期寄存器(TDDR,PRD):在定时器初始化或定时值重新装入过
21、程中,将周期寄存器的内容复制到计数寄存器中4. EMIF支持的存储器类型 p265EMIF为三种类型的存储器提供了无缝接口:异步存储器,包括ROM、FLASH以及异步SRAM同步突发SRAM(SBSRAM),可以工作在1倍或1/2倍CPU时钟频率同步DRAM(SDRAM),可以工作在1倍或1/2倍CPU时钟频率也可通过EMIF外接A/D转换器、并行显示接口等外围设备需要增加一些外部逻辑器件来保证设备的正常使用5. EMIF支持四种类型的访问 p265程序的访问;32位数据的访问;16位数据的访问;8位数据的访问6.程序存储器的访问要从外部存储器取指令代码时,CPU向EMIF发送一个访问请求。E
22、MIF必须从外部存储器读取一个32位代码,然后把这全部32个位放到CPU的程序读总线(P bus)上EMIF可以管理对3种存储器宽度的32位访问:32位、16位、8位,本书主要介绍对16位和8位宽的程序存储器的访问7.访问16位宽的外部程序存储器p266 (解释过程)EMIF把一个字的地址放到地址线A21:1上。32位的访问可以分为两个16位的传输,在连续的两个周期内完成。在第二个周期,EMIF自动将第一个地址加1,产生第二个地址。8.访问8位宽的外部程序存储器EMIF把一个字节地址放到地址线A21:0上。 32位的访问可以分为4个8位的传输,在连续的4个周期内完成。在第2、3、4个周期,EM
23、IF自动将第一个地址加1,产生下一个新的地址。 9. 对16位宽的存储器作16位的数据访问 p26810. McBSP概述 (解释概念)p274 McBSP:多通道缓冲串口McBSP具有如下特点:1.全速双工通信。2.双缓存发送,三缓存接收,支持传送连续的数据流。3.独立的收发时钟信号和帧信号。4.128个通道收发5.可与工业标准的编解码器、模拟接口芯片(AICs)及其他串行A/D、D/A芯片直接连接。6.能够向CPU发送中断,向DMA控制器发送DMA事件。7.具有可编程的采样率发生器,可控制时钟和帧同步信号。8.可选择帧同步脉冲和时钟信号的极性。9.传输的字长可选,可以是8位、12位、16位
24、、20位、24位或32位。10.具有律和A律压缩扩展功能。11.可将McBSP引脚配置为通用输入输出引脚。11. 异常处理(简答题)P278有5个事件会导致McBSP异常错误:1.接收数据溢出,此时SPCR1中的RFULL=1。2.接收帧同步脉冲错误,此时SPCR1中的RSYNCERR=1。3.发送数据重写,造成溢出。4.发送寄存器空,此时SPCR2中的XEMPTY=0;5.发送帧同步脉冲错误,此时SPCR2中的XSYNCERR=1。12. ADC的时序13.实例(综合题)p287下边给出一个设置ADC的例子,设DSP系统时钟为144MHz。(1)首先对系统主时钟分频,产生ADC时钟,该时钟应
25、尽量运行在较低频率下,以降低功率消耗,在本例中ADC时钟是通过对系统时钟36分频产生的,则此时ADC时钟=144MHz/36=4MHz,根据公式ADC时钟=(CPU时钟)/ (CPUCLKDIV+1)得出 CPUCLKDIV =35(2)对ADC时钟分频产生ADC 转换时钟,该时钟最大值为2MHz。为了获得2MHz的ADC 转换时钟,需要对ADC时钟2分频。 由ADC 转换时钟=ADC时钟/(2(CONVRATEDIV+1)得出 CONVRATEDIV=0,以及ADC 转换时间 = 131/ (ADC转换时钟)= 13(1/ 2MHz)=6.5us。(3)对采样和保持时间进行设置,这个值必须大
26、于40。ADC采样保持时间=(1/(ADC时钟))/(2(CONVRATEDIV+1+SAMPTIMEDIV)= (1/(4MHZ)/(2(0+1+SAMPTIMEDIV)= 250NS(2SAMPTIMEDIV)=40 由此得出SampTimeDiv=794)整个转换时间为: 40(采样保持时间)+6.5(转换时间)= 46.5us, 采样率 = 1/46.5= 21.5kHz。14. I2C模块简介 (总线结构,怎么实现)P292C55x的I2C模块支持所有与I2C兼容的主从设备,可以收发18 位数据。C55x的I2C模块有如下特点:1.兼容I2C总线标准。支持8位格式传输,支持7位和10
27、位寻址模式,支持多个主发送设备和从接收设备,I2C总线的数据传输率可以从10400kb /s。2.可以通过DMA完成读写操作。3.可以用CPU完成读写操作和处理非法操作中断。4.模块使能/关闭功能。5.自由数据格式模式。15. I2C模块工作原理 I2C总线使用一条串行数据线SDA和一条串行时钟线SCL,这两条线都支持输入输出双向传输,在连接时需要外接上拉电阻,当总线处于空闲状态时两条线都处于高电平。每一个连接到I2C总线上的设备(包括C55x芯片)都有一个唯一的地址。每个设备是发送器还是接收器取决于设备的功能。每个设备可以看作是主设备,也可以看作是从设备。主设备在总线上初始化数据传输,且产生
28、传输所需要的时钟信号。在传输过程中,主设备所寻址的设备就是从设备。 I2C总线支持多个主设备模式,连接到I2C总线上的多个设备都可以控制该I2C总线。 当多个主设备进行通信时,可以通过仲裁机制决定由哪个主设备占用总线。 I2C模块由串行接口、DSP外设总线接口、时钟产生和同步器、预定标器、噪声过滤器、仲裁器、中断和DMA同步事件接口。 第九章1. DSP系统硬件设计流程2. 电源电路 p300电源电压和电流要求:C55x系列DSP芯片通常采用低电压设计,双电源供电,即内核电源和I/O电源 I/O电源主要供I/O接口使用, VC5509A取3.3V 内核电源主要为芯片的内部逻辑提供电压,VC55
29、 09A取1.6VDSP芯片的电流消耗主要取决于器件的激活度3. 典型电源设计方案p301 MAX748A产生3.3V电源 TPS7301产生可调电压的单电源 TPS767D301产生双路电源 4. 时钟信号的产生为DSP芯片提供时钟一般有两种方式:使用外部时钟源,将外部时钟信号直接加到DSP芯片的X2/CLKIN引脚,且X1引脚悬空利用DSP芯片内部的振荡器构成时钟电路,在芯片的X1和X2/CLKIN引脚之间接入一个晶体,用于启动内部振荡器在C55x系列芯片中主要采用第二种方式产生时钟信号 使用外部时钟 使用外部时钟 使用内部振荡器5. 电路的抗干扰设计技术 在DSP系统的电路板设计中,无论
30、是否有专门的地层和电源层,都必须在电源和地之间加上足够的并且分布合理的电容 一般在电源和地的接入端放一部分多种容值的电容,再将其余的大电容均匀地分布在电源和地的主干在线。设计中时钟的供电电源与整个电路板的电源一般是分开的,二者的电源通过大小为25uH的电感相连。布板时还可以将两个组件尽可能靠近并对称,用多层电路板,时钟信号频率越高,其布线要求也就越高。 6. 系统电源抗干扰设计根据工程设计分析,微机系统有70的干扰是通过电源耦合进来的 电源干扰的类型有高频干扰、感性负载产生的瞬变噪声、大功率设备开机干扰和电网电压波动干扰,它们主要通过电磁感应性耦合、电容性耦合、辐射耦合和公共阻抗耦合等方式进入
31、微机系统 一般采用集成稳压电源模块即能满足使用要求,主要通过整流电路、稳压电源、隔离控制变压器以及高频旁路电容等来防止干扰的窜入,提高DSP的直流供电系统质量7. 硬件抗干扰设计硬件抗干扰技术主要有以下几种:光隔离。 在输入输出通道上通过光耦合器件传输信息可将DSP系统与各种传感器、开关、执行机构由光隔离开来,阻挡很大一部分干扰双绞线传输和终端阻抗匹配。长线传输数字信号时利用双绞线,对噪声干扰有较好的抑制效果。可与光耦合器或平衡输入接收器和输出驱动器联合使用。发送和接收信号端必须有末端电阻,双绞线应该阻抗匹配硬件滤波。RC低通滤波器可以大大消弱各类高频干扰信号(如各类“毛刺”干扰)8. 软件抗干扰设计软件抗干扰技术主要是在程序运行混乱时,使程序重新正常运行几种有效的软件抗干扰方法:1.数字滤波: 数字滤波技术可以有效地消除模拟输入信号的噪声。 数字滤波技术有:中值滤波;算术平均值滤波;加权平均值滤波等2.指令冗余 3.软件陷阱 4.程序运行监视系统“看门狗”(Watchdog )9. 输入输出信号抗干扰 输入输出通道干扰是通过前向、后向接口而引起的干扰 防止的办法主要采用隔离技术,隔离的实质是将引进的干扰通道切断,从而达到隔离现场干扰的目的 隔离技术主要有光隔离、继电器隔离、变压器隔离等多种方法,其中尤以光隔离方法应用最为广泛