DSP复习资料概要.docx
《DSP复习资料概要.docx》由会员分享,可在线阅读,更多相关《DSP复习资料概要.docx(16页珍藏版)》请在冰豆网上搜索。
DSP复习资料概要
1、什么是数字信号处理器(DSP)?
DSP可以分为哪两类?
a、数字信号处理器是一种专门用于实现各种数字信号处理算法的微处理器,通常可分为专用DSP和通用DSP两类。
b、用于实现某些特定数字信号处理功能的DSP属于专用DSP。
什么是DSP?
DSP:
DigtalSignalProcessing数字信号处理技术
典型的微处理器系统根据CPU特点,可以分为:
1)通用单片机(Micro-controller)8/16bit
优点:
成本低、体积小。
缺点:
运算与扩展能力较弱。
编程:
汇编、C语言。
2)PC及其兼容机(Micro-processor)
缺点:
成本高、体积大、实时性差。
优点:
运算与扩展能力强,软件资源丰富。
编程:
汇编及多种高级语言。
3)DSP(DigitalSignalProcessor)16/32bit
特点:
运算能力相当强、实时性、体积小、成本较
低、功耗较低
编程:
汇编、C、C++。
4)专用微处理器
特点:
使用简单,灵活性差,主要用于一些批量生
产的产品。
如家用电器的智能控制、工业控制。
DSP:
DigtalSignalProcessor数字信号处理器
TI公司从80代初推出了全球第一款“数字信号处理器”TMS320C010,从此引发了一场“数字信号处理”革命。
我们现在所说的DSP,如果没有特殊说明,一般均指“数字信号处理器”。
2、DSP芯片的主要特点有哪些?
DSP从结构上进行了优化,使其更适合于哪类运算,从而可以高速实现多种不同的数字信号处理算法?
DSP的特点:
在一个指令周期内可完成一次乘法和一次加法运算
程序和数据空间分开,可以同时访问指令空间和数据空间
片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问
具有低开销或无开销循环及跳转的硬件支持
快速的中断处理和硬件I/O支持
具有在单周期内操作的多个硬件地址产生器
可以并行执行多个操作
支持流水线操作,使取指令、译码、取操作数和执行指令等可以重叠执行。
3、什么是哈佛结构、什么是冯诺依曼结构,其区别是什么?
另外,DSP采用哪种类型?
冯·诺依曼结构:
取指和取操作数都在同一总线上,通过分时复用的方式进行。
缺点是在高速运行时,不能达到同时取指令和取操作数,从而形成了传输过程的瓶颈。
哈佛结构:
芯片内部程序空间和数据空间分开,从而允许同时取指令和取操作数,从而大大提高运算能力。
4、TI的新型DSP芯片根据其不同应用领域可以划分为哪几个系列,每个系列分别面向哪类应用?
5、TMS320F281X芯片的最小指令周期是多少?
最高频率是多少?
它是一种多少位的定点或是浮点DSP?
F281X采用低功耗设计,其内核电压为?
I/O端口电压为?
CPU主频高达150MHz,时钟周期为6.67ns。
采用低功耗设计,当内核电压为1.8V时,主频为135MHz,当内核电压为1.9V时,主频为150MHz,I/O口引脚电压为3.3V。
FLASH编程电压为3.3V。
6、TMS320F2812DSP芯片有哪些外部接口?
各自的主要应用是什么?
第四章系统控制及中断
1、DSP的时钟产生模块由哪些部分构成?
时钟模块提供两种操作模式:
▲内部振荡器:
如果使用内部振荡器,则必须在X1/XCLKIN和X2两个引脚之间连接一个石英晶体。
▲外部时钟源:
如果采用外部时钟,可以将输入的时钟信号直接接到X1/XCLKIN引脚上,而X2悬空。
在这种情况下,不使用内部振荡器。
2、锁相环的配置模式及各模式下时钟输出的计算。
PLL模式说明CLKIN
PLL禁止上电复位时通过将XPLLDSIS(低电平有效)引脚置低来进入该模式,PLL模块完全不使能。
此时,输入CPU的时钟是由外部振荡器直接通过X1/XCLKIN引脚输入的信号。
XCLKIN
PLL旁路如果PLL未处于不使能的状态,上电默认的PLL配置(PLLCR的值为0)。
PLL自身被旁路,从X1/XCLKIN引脚输入的时钟信号先被/2,然后再送去CPU。
XCLKIN/2
PLL使能通过给PLLCR寄存器写一个不为0的值来实现PLL的使能,时钟信号需要进入PLL模块进行n倍频,然后再被/2,最后送至CPU。
(XCLKIN*n)/2
PLL使能
我们平常使用的是第3种方式,即PLL使能,我们通采用30M的晶振来给2812提供时基。
PLLCR的DIV位被设置成最大值,即1010的时候,CPU的时钟将达到150MHZ,是2812所能支持的最大时钟频率。
时钟频率具体的计算如下所示:
晶振为30M,PLLCR的DIV位被设置成1010时的时钟频率
CLKIN=(OSCLKIN*10/2
=(XCLKIN*10)/2
=(30M*10)/2=150MHz
3、片内外设模块的时钟可以分为哪三类?
低速外设时钟信号,LSPCLK,主要用于SCI-A/B,SPI,McBSP等串行接口外设;高速外设时钟信号,HSPCLK,主要用于EV-A/B,A/D转换器等并行接口外设;CPU时钟,SYSCLKOUT,主要用于eCAN等外设模块。
例:
voidInitSysCtrl(void)
{
Uint16i;
EALLOW;
SysCtrlRegs.PLLCR=OxA;//如果外部晶振为30M,SYSCLKOUT=150MHz
for(i=0;i<5000;i++){}
SysCtrlRegs.HISPCP.all=Ox0001;//HSPCLK=150/2=75MHz
SysCtrlRegs.LOSPCP.all=Ox0002;//LSPCLK=150/4=37.5MHz
SysCtrlRegs.PCLKCR.bit.ADCENCLK=1;//ADC模块时钟使能
SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;//EVA模块时钟使能
EDIS;
4、F281x共有几种工作模式?
IDLE模式(空闲模式):
处理器可以通过被使能的中断或NMI中断退出IDLE模式。
STANDBY(备用模式)模式:
所有信号都能将CPU唤醒。
HALT模式(暂停模式):
只有复位XRS和XNMI_XINT13外部中断信号能唤醒CPU工作。
5、请简述看门狗模块的工作原理。
当8位的看门狗计数器进行加计数到最大值(0xFF)时,用户可选择看门狗模块通/WDRST输出一个低电平脉冲(脉冲宽度512个振荡器周期)来复位CPU,或通过/WDINT来产生一个外设中断事件。
在系统正常工作时,为避免看门狗模块产生不希望的脉冲信号,需要用户屏蔽看门狗模块或软件周期性向看门狗复位寄存器WDKEY写入序列0x55+0xAA来为看门狗计数器清零。
看门狗电路配置:
//禁止看门狗
voidDisableDog(void)
{EALLOW;
SysCtrlRegs.WDCR=0x0068
EDIS;}
//喂狗函数
voidKickDog(void)
{EALLOW;
SysCtrlRegs.WDKEY=0x55
SysCtrlRegs.WDKEY=0xAA
EDIS;}
6、TMS320F281X中含有多少个32位的通用定时器?
F2812器件上有3个32位的CPU定时器:
TIMER0:
CPU定时器TIMER0用户可以使用
TIMER1
TIMER2
CPU定时器一个周期所计量的时间
假设系统时钟SYSCLKOUT的值为XMHz,那么计数器每走一步,所需要的时间为:
因为CPU定时器一个周期计数了(PRDH:
PRD+1)次,因此
CPU定时器一个周期所计量的时间为:
7、F281X芯片提供了56个通用I/O引脚(GPIO),它们可以有数字I/O和外设I/O两种工作模式,其工作模式的选择如何设置?
当配置为数字I/O模式时,可以通过什么寄存器配置其为输入或输出?
控制寄存器
GPxMUX功能选择控制寄存器
GPxDIR方向控制寄存器
GPxQUAL输入限定控制寄存器
数据寄存器
GPxDAT数据寄存器
GPxSET置位寄存器
GPxCLEAR清除寄存器
GPxTOGGLE取反寄存器
例:
voidInitGpio(void)
{
EALLOW;//读取使能
GpioDataRegs.GPFCLEAR.bit.GPIOF14=1;//XF引脚输出为低电平GpioMuxRegs.GPFMUX.bit.SPISIMOA_GPIOF0=1;//选择SPISIMO
引脚为功能引脚GpioMuxRegs.GPFMUX.bit.SPICLKA_GPIOF2=1;//选择SPICLK引
脚为功能引脚
GpioMuxRegs.GPFMUX.bit.SPISTEA_GPIOF3=0;//选择SPISTE引脚
为通用I/O
GpioMuxRegs.GPFDIR.bit.GPIOF3=1;//方向为输出,低电平时选中
EDIS;//读取禁止
}
8、F281x的中断系统可分为哪三种中断级别?
F2812的中断是3级中断机制,分别是外设级,PIE级以及CPU级,对于某一个具体的外设中断请求,任意一级的不许可,CPU最终都不会执行该外设中断。
就像一个文件需要三级领导批示一样,任意一级领导的不同意,都不能被送至上一级领导,更不可能得到最终的批准,中断机制的原理也是如此。
9、DSP中中断响应处理流程。
中断工作过程
10、中断向量表是什么?
a、它是用于存储每个中断服务程序ISR的入
口地址(中断向量)。
b、中断向量表用于存储每个中断服务程序的
入口地址。
所有中断向量都是受
EALLOW机制保护的。
第五章TMS320F2812外部接口(XINTF)
1、理解F2812的外部扩展接口XINTF。
外部接口(XINTF)映射到5个独立的存储空间Zone0、Zone1、Zone2、Zone6、Zone7
当访问相应的存储空间时,就会产生一个片选信号;XINTF的5个空间共有3个片选引脚。
Zone0、Zone1共用XZCS0AND1。
Zone6、Zone7共用XZCS6AND7。
Zone2单独使用片选信号XZCS2。
每个空间都可以独立地设置访问等待、选择、建立以及保持时间,同时还可以使用XREADY信号来控制外设的访问。
外部接口的访问时钟频率由内部的XTIMCLK提供
XTIMCLK可以等于SYSCLKOUT或SYSCLKOUT/2。
第六章TMS320F2812串行通信接口SCI
1、SCI模块的基本原理及应用。
SCI(SerialCommunicationInterface),即串行通信接口,是一个双线的异步串口,即具有接收和发送两根信号线的异步串口,一般可以看作是UART(通用异步接收/发送装置)。
F2812的SCI模块支持DSP与采用NRZ(non-return-to-zero不归零)标准格式的异步外围设备之间进行数字通信。
2812内部具有两个相同的SCI模块,SCIA和SCIB。
2、SCI模块是如何接收和发送数据的?
接收数据
1)置RXENA=1(SCICTL1.D0),使能接收器接收数据;
2)数据到达SCIRXD引脚后,检测起始位(SCI自动实现);
3)数据从RXSHF寄存器移位到接收缓冲寄存器(SCIRXBUF),
产生一个中断请求,同时接收器数据准备好标志RXRDY=1;
4)用户程序读取SCIRXBUF寄存器,标志位RXRDY自动清零;
5)数据的下一个字符到达SCIRXD引脚,检测到起始位;
6)RXENA=0,禁止接收数据。
继续向RXSHF装载数据,但不送入SCIRXBUF。
发送数据
1)TXENA=1(SCICTL1.D1),使能发送器发送数据;
2)程序写数据到SCITXBUF寄存器,此时发送器不为空,TXRDY变低;
3)SCI发送数据到移位寄存器TXSHF后,产生中断请求,同时TXRDY变高;
4)TXRDY变高后,程序写第二个字符到SCITXBUF,随后TXRDY又变低;
5)发送完第一个字符,开始将第二个字符移位到寄存器TXSHF;
6)TXENA=0,禁止发送数据,SCI继续完成当前字符的发送;
3、如何配置SCI的波特率寄存器。
波特率:
串行通信过程每秒钟传送的二进制脉冲数目(bit/s)
串行时钟SCICLK由低速外设时钟LSPCLK和波特率选择寄存器确定;
SCI使用16位波特率选择寄存器,可以设定为64K种波特率;
SCI模块通信波特率与波特率选择寄存器之间的关系如下所示:
说明:
BRR为SCI波特率选择寄存器中的值,从十进制转换成
16进制后,其高8位赋值给SCIHBAUD,低8位赋值给
SCILBAUD。
且该公式只适用于
。
当BRR=0时,SCI模块通信的波特率为:
例:
已知OSCCLK=30M,
SysCtrlRegs.PLLCR=0xA;
SysCtrlRegs.HISPCP.all=0x3;
SysCtrlRegs.LOSPCP.all=0x2;
根据以下程序,计算其波特率,要求写出相关的表达式和具体的计算步骤。
VoidSCI_Init(void)
{
SciaRegs.SCICCR.all=0x0007;
SciaRegs.SCICTL1.all=0x0003;
SciaRegs.SCIHBAUD=243>>8;
SciaRegs.SCILBAUD=243&0x00FF;
SciaRegs.SCICTL1.all=0x0023;
}
(1)BRR=243;
(2)LSPCLK=SYSCLKOUT/(LOSPCP*2)=150/(2*2)=37.5MHZ
(3)所以由公式:
SCI异步波特率=LSPCLK/((BRR+1)*8)
(4)SCI异步波特率=37.5MHZ/((243+1)*8)
(5)SCI异步波特率=19211.06B
第七章TMS320F2812的串行外围设备接口(SPI)
1、请简述SPI模块的CPU接口。
两种工作方式:
主/从工作方式
数据长度:
1~16位可编程
4种时钟模式:
由极性和相位控制
波特率:
125种可编程
接口方式:
中断或查询
可同时进行发送和接收操作
2、SPI是否只能工作在主机模式下?
主模式
SPI的引脚SPICLK为整个串行通信网络提供时钟;
通过SPIBRR寄存器设定通信网络的数据传输速率;
数据从SPISIMO输出,并锁存从SPISOMI输入的数据;
通常作为片选信号,数据传输过程置低电平,传输完成后置高。
发送数据:
写数据到SPIDAT或SPITXBUF,启动SPISIMO引脚上的数据发送,首先发送最高有效位(MSB)(与SCI有所不同)。
接收数据:
当指定数量的数据位已经通过SPIDAT移位后,SPIDAT中的数据发送到SPIRXBUF中,且SPIINFFLAG置1。
从模式
从模式:
Master/Slave=0
从模式下,SPICLK时钟由主控制器提供,并决定了传输速率。
数据从SPISIMO引脚输入,从SPISOMI引脚输出。
/SPISTE通常作为从设备的片选信号,数据传输过程置低电平,传输完成后置高.
TALK位(SPICTL.D1)
当TALK位清零,数据发送被禁止,输出引脚(SPISOMI)处于高阻状态。
若发送期间清零TALK位,SPI要继续完成当前的字符传输,以保证SPI设备正确接收数据。
TALK位允许在一个网络上连接多个从SPI设备,但同一时刻只能有一个从设备允许驱动SPISOMI。
2、整个SPI的通信网络当中的时钟和波特率是由主机来提供的吗?
串行外设接口(SPI)是一种同步串行输入/输出接口,传输速率较高(LSPCLK/4)
3、主机的数据是如何发送和接收的?
SPI是一个环形总线结构,其时序其实比较简单,主要是在时钟脉冲SCK的控制下,两个双向移位寄存器SPIDAT进行数据交换。
4、SPI的波特率如何设置?
波特率的计算方法:
1)当SPIBRR=3~127时:
SPI波特率=LSPCLK/(SPIBRR+1)
2)当SPIBRR=0、1、2时:
SPI波特率=LSPCLK/4
例2:
假定LSPCLK=75MHz,试确定SPI的波特率范围。
SPI波特率最大值:
LSPCLK/4=18.75MHz
SPI波特率最小值:
LSPCLK/128=0.586MHz
第九章TMS320F2812模/数转换(ADC)模块
1、掌握A/D转换模块的基本概念。
第十章模数转换ADC模块
模数转换(ADC)模块的特性
1、ADC模块的特性
(1)带有内部采样-保持电路12bitADC模块
(2)16个模拟输入通道,每8个通过一个8选1的模拟多路转
换开关。
(3)ADC模拟输入电压的范围为0—3V
(4)对16路模拟量进行“自动排序”。
(5)两个独立的8状态排序器(SEQ1和SEQ2),可以独立
工作在双排序器模式,或级联为16个状态排序器模式
(SEQ一级联模式)。
(6)在给定的排序模式下,4个排序控制器决定通道的转换
顺序。
(7)16个存放结果的寄存器(RESULT0∼RESULT15)
(8)有多个启动ADC转换的触发源如下:
软件立即启动EVA事件管理器启动
EVB事件管理器启动ADC的SOC引脚启动
(9)EVA和EVB可分别独立地触发SEQ1和SEQ2(仅用于
双排序器模式)
(10)有单独的预定标的采样/保持时间
2、ADC模块的排序器有哪两种工作模式?
a、双排序器模式下两个排序器共享同一个A/D
转换器。
若SEQ1和SEQ2同时产生自动转
换请求,则排序器1具有更高的优先级并被
立即响应
b、每次排序转换时所选择的模拟输入通
道由ADC通道选择排序控制寄存器
(ADCCHSELSEQn)位域CONVnn确定
3、ADC模块有哪两种不同的采样模式?
对于每一个转换,被采样和转换的外部输入通道由什么决定?
A、顺序采样模式下,CONVxx位确定采样与转换的模拟输入
通道,最高位确定采用SHA或SHB,其余3位定义通道号。
例:
CONVxx=0101B,选择ADCINA5;CONVxx=1011B,选择
ADCINB3。
B、同步模式下,CONVxx的低3位确定采样与转换的模拟输
入通道对(SHA、SHB的输入通道序号相同),最高位不起作
用。
例:
CONVxx=x110B,选择ADCINA6和ADCINB6,依次转换
SHA、SHB中保持的电压量,结果存至ADCRESULTn、
ADCRESULT(n+1)中。
第十章TMS320F2812事件管理器(EV)模块
1、掌握F281x事件管理器的构成。
通用定时器功能:
具有计数/定时功能,可以为各种应用提供时基,并可以产生比较输出/PWM信号。
比较单元功能:
三个比较单元可以输出3组(6路)比较输出/PWM信号,且具有死区控制等功能。
捕获单元功能:
三个捕获单元可以记录输入引脚上信号跳变的时刻。
QEP电路功能:
具有直接连接光电编码器脉冲的能力,可获得旋转机械的速度和方向等信息。
注意:
输入跳变脉冲宽度至少保持两个CPU时钟周期才能被识别。
事件管理器的特殊设计,使得事件管理器既可以实时控制电机(由PWM电路实现),同时还可以监视电机的运行状态(由QEP电路实现)。
2、通用定时器的基础知识。
每个事件管理模块有两个通用定时器(GP),这些定时器可以为下列应用提供独立的时间基准:
A、控制系统中采样周期产生。
B、为QEP电路和捕获单元的操作提供时间基准。
C、为比较单元和相应的PWM电路操作提供时间基准。
计数寄存器TxCNT保存当前时刻定时器的计数值;比较寄存器TxCMPR保存定时器的比较值;周期寄存器TxPR保存定时器的周期值。
EVA包含通用定时器1、2;EVB包含通用定时器3、4;它们为16位计数器;定时器1、2属于事件管理器__A__。
事件管理器的通用定时器为16位计数器。
通用定时器的外部时钟输入允许的频率不超过CPU时钟的¼。
3、通用定时器有几种计数方式?
每个GP定时器有四种可选的操作模式:
停止/保持模式
连续增/减计数模式
连续递增计数模式
定向增/减计数模式
相应的定时器控制寄存器TxCON中的位的形式决
定了通用定时器的操作模式。
A、连续递增计数模式的工作过程;在连续递增计数模式下,除第一个计数周期外,定时器的计数周期为(TxPR+1)个定标后的时钟输入周期;该计数模式下主要用于产生边沿触发或异步PWM波形;
B、定向增减计数模式的工作过程分析;在定向增/减计数模式下,通用定时器根据预定标后的时钟和计数方向输入引脚(TDIRA/B)进行递增或递减计数;当计数方向引脚TDIRA/B电平发生变化时,定时器在当前计数时钟周期结束后再延迟一个计数时钟才会改变计数方向。
C、连续增/减计数模式工作过程分析;在该计数模式下,除第一个周期外,定时器的计数周期为2·TxPR个定标后的时钟周期。
用于产生中心对称的PWM波形。
4、通用定时器有几种中断形式?
以T1为例
上溢中断T1OFINT
下溢中断T1UFINT
比较中断T1CINT
周期中断T1PINT
5、如何应用通用定时器产生PWM信号?
如果选用连续递增计数模式产生非对称波形,定时器周期如何计算?
如果选用连续增减计数模式,定时器周期如何计算?
利用EV的通用定时器产生非对称的PWM信号,已知:
f=1KHz,D=40%;OSCCLK=30MHz,锁相环倍频系数=5,高速外设时钟采用复位时默认值;通用定时器时钟不分频,PWM低电平输出有效。
此时试计算确定T1PR和T1CMPR的数值。
(1)∵锁相环倍频系数=5∴SYSCLKOUT=(OSCCLK*n)/2=30MHz*5/2=75MHz
(2)∵高速外设时钟采用复位默认值∴HSPCLK=SYSCLKOUT/2=75MHz/2=37.5MHz
(3)∵产生不对称PWM信号,∴定时器工作在连续增计数模式,
(4)∵PWM引脚低电平信号有效,