DSP知识总结.docx

上传人:b****8 文档编号:9372678 上传时间:2023-02-04 格式:DOCX 页数:33 大小:155.44KB
下载 相关 举报
DSP知识总结.docx_第1页
第1页 / 共33页
DSP知识总结.docx_第2页
第2页 / 共33页
DSP知识总结.docx_第3页
第3页 / 共33页
DSP知识总结.docx_第4页
第4页 / 共33页
DSP知识总结.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

DSP知识总结.docx

《DSP知识总结.docx》由会员分享,可在线阅读,更多相关《DSP知识总结.docx(33页珍藏版)》请在冰豆网上搜索。

DSP知识总结.docx

DSP知识总结

一、TMS320X2812的结构资源及性能

1、简单介绍TMS320X2812

TMS320X2812是TI公司推出的32位定点DSP芯片。

采用先进的哈佛总线结构(哈佛总线的主要特点:

是将程序和数据放在不同的存储空间内,每个存储空间都可以独立的访问,而且程序总线和数据总线分开,从而使数据的吞吐率提高了一倍。

冯·诺依曼结构是将程序、数据和地址存储在同一个空间中,统一进行编码。

主频150M,指令周期6.67ns;

内核电压1.8V,I/O电压3.3V;

采用流水线操作(8级流水线处理器),每条指令的执行分别划分为取指令、译码、取数、执行等若干步骤,由片内多个功能单元分别完成,支持任务的并行处理。

TMS320X2812所有引脚输入电平均与TTL电平兼容,而输出电平位3.3V的CMOS电平(注:

引脚绝对不能输入5V电压,否则会烧毁芯片)

表1-1TTL电平标准

引脚电气方向

高电平

低电平

输入

>2.0V

<1.2V

输出

>2.4V

<0.8V

表1-2CMOS电平标准

引脚电气方向

高电平

低电平

输入

>0.7

Vcc

<0.3

Vcc

输出

>0.9

Vcc

<0.8V

表1-3TMS320X2812的硬件特点

硬件特点

TMS320F2812

TMS320C2812

指令周期(150MHz)

6.67ns

6.67ns

内核电压(150MHz)

1.9V

1.9V

I/O电压

3.3V

3.3v

片上RAM

18K

16位

18K

16位

片上Flash

128K

16位

片上ROM

128K

16位

BootROM

掩膜ROM

片内Flash/ROM/SRAM的密码保护

外部存储接口

看门狗定时器

32位CPU定时器

事件管理器

EVA、EVB

EVA、EVB

12位ADC

16通道

16通道

串行通信接口SCI

SCIA、SCIB

SCIA、SCIB

串行外围接口SPI

局域网控制器CAN通信

多通道缓冲串行接口McBSP

复用的数字I/O引脚

56个

56个

外部中断源

3个

3个

封装

179针的BGA

176针的LQFP

179针的BGA

176针的LQFP

工作温度范围

A:

-40~+85℃

S:

-40~+125℃

A:

-40~+85℃

S:

-40~+125℃

2、F系列和C系列的区别

C系列片内含有128K

16的ROM,而F系列片内含有128K

16的Flash。

3、DSP选型主要考虑哪些方面

答:

1、系统特点。

(C2000系列处理器提供多种控制系统使用外围设备,比较适合控制领域;C5000系列处理器具有处理速度快,功耗低,相对成本低等特点,比较适合便携设备及消费类电子设备使用;C6000系列处理器具有处理速度快、精度高等特点,更适合图像处理、通信设备等应用领域)

2、算法格式。

3、系统精度。

4、处理速度。

5、功耗。

6、性能价格比。

7、支持多处理器。

8、系统开发的难易程度。

二、TMS320X2812的硬件设计

三、存储器的结构

表1-4总线名称位数

PAB(ProgramAddressBus)

程序地址总线

22位

DRAB(Data-ReadAddressBus)

数据读地址总线

32位

DWAB(Data-WriteAddressBus)

数据写地址总线

32位

PRDB(Program-ReadDateBus)

程序读数据总线

32位

DRDB(Data-ReadDataBus)

数据读地址总线

32位

DWDB(Data/Program-WriteDataBus)

数据写地址总线

32位

四、时钟和系统控制

1、锁相环是什么?

有什么作用?

答:

锁相环是一种控制晶振使其相对于参考信号保持恒定相位的电路。

主要作用是通过软件实时的配置片上外设时钟,提高系统的灵活性和可靠性。

此外,由于使用软件可编程锁相环,所设计的系统处理器外部允许较低的工作频率,而片内经过锁相环电路为系统提供较高的系统时钟,可以有效地降低系统对外部时钟的依赖和电磁干扰,提高系统启动和运行的可靠性,降低系统对硬件的设计要求。

表4-1XCLKIN和送至CPU的时钟信号CLKIN之间的关系

PLL模式

说明

SYSCLKOUT/CLKIN

禁止

上电复位时通过将

引脚置底来进入该模式,PLL模块完全不使能。

此时,输入CPU的时钟由来自X1/XCLKIN引脚的时钟直接去驱动。

X2引脚不使用

XCLKIN

旁路

为高电平时,PLL被使能;若此时上电默的PLL配置(PLLCR中DIV的值为0),则PLL自身被旁路。

从X1/XCLKIN引脚输入的时钟信号除以2,然后送到CPU

XCLKIN/2

使能

为高电平时,PLL被使能;同时通过给PLLCR中位DIV写一个不为0的值来实现PLL的使能。

时钟信号需要进入PLL模式进行n倍频,然后除以2,最后送至CPU

(XCLKIN

n)/2

注:

实际使用通常使用第3中方式,即PLL使能。

通常使用30MHz晶振为F2812提供时基,PLL控制寄存器PLLCR取最大值10的时候,送至CPU的时钟可以达到150MHz,这也是F2812所使能支持的最高时钟频率。

2、高速时钟和低速时钟

问:

低速外设时钟(LSPCLK)一定比高速外设时钟(HSPCLK)慢吗?

答:

不一定。

从LSPCLK和HSPCLK的计算公式可以看出,这两个时钟信号的频率是独立无关的,各自分别取决于LOSPCP或者HISPCP的值,与其他因素没有关系。

当给LOSPCP寄存器所附的值小于HISPCP寄存器所附的值时,LSPCLK的值就会大于HSPCLK的值。

3、看门狗(Watchdog)

F2812的看门狗电路有一个8位看门狗加法计数器WDCNTR,无论什么时候,如果WDCNTR计数达到最大值,看门狗模块就会产生一个输出脉冲,脉冲宽度为512个振荡器时钟宽度。

问:

F2812中看门狗的作用?

答:

其作用是为DSP的运行情况进行“把脉”,一旦发现程序跑飞或者状态不正常,便立即使DSP复位,提高系统的可靠性。

问:

防止看门狗计数器(WDCNTR)溢出的两种方法?

答:

1)、禁止看门狗,使得计数器WDCNTR无效。

向看门狗控制寄存器(WDCR)中写0x0068;

例程:

1

voidDisableDog(void)//关闭看门狗

{

EALLOW;

SysCtrlRegs.WDCR=0x0068;

EDIS;

}

2)、定时“喂狗”。

通过软件向负责复位看门狗计数器的看门狗密钥寄存器(8位的WDKEY)周期性的写入0x55+0xAA,紧跟着0x55写入0xAA能够清除WDCNTR。

当向WDKEY写入0x55时,WDCNTR复位到使能的位置;只有在向WDKEY写0xAA后才能使WDCNTR真正的被清除。

写任何其他的值都会使系统立即复位。

例程:

2

voidKickDog(void)//定时喂狗

{

EALLOW;

SysCtrlRegs.WDKEY=0x0055;

SysCtrlRegs.WDKEY=0x00AA;

EDIS;

}

4、时钟与系统控制模块的寄存器

表4-2看门狗与PLL寄存器

名称

地址

地址空间

说明

HISPCP

0x0000701A

1

16

高速外设时钟预定标寄存器

LOSPCP

0x0000701B

1

16

低速外设时钟预定标寄存器

PCLKCR

0x0000701C

1

16

外设时钟控制寄存器

PLLCR

0x00007021

1

16

PLL控制寄存器

WDCNTR

0x00007023

1

16

看门狗计数器寄存器

WDKEY

0x00007025

1

16

看门狗复位密钥寄存器

WDCR

0x00007029

1

16

看门狗控制寄存器

1)、外设时钟控制寄存器(PCLKCR)

15141312|111098

保留

ECANENCLK

保留

MCBSPENCLK

SCIBENCLK

SCIAENCLK

保留

SPIENCLK

743210

Reserved

ADCENCLK

保留

EVBENCLK

EVAENCLK

ECANENCLK位14.该位置1,将使CAN外设的系统时钟有效。

MCBSPENCLK位12.该位置1,将使McBSP外设的低速时钟(LSPCLK)有效。

SCIBENCLK位11该位置1,将使SCIB外设的低速时钟(LSPCLK)有效

SCIAENCLK位10该位置1,将使SCIA外设的低速时钟(LSPCLK)有效

SPIENCLK位8该位置1,将使SPI外设的低速时钟(LSPCLK)有效

ADCENCLK位3该位置1,将使ADC外设的高速时钟(HSPCLK)有效

EVBENCLK位1该位置1,将使EVB外设的高速时钟(HSPCLK)有效

EVAENCLK位0该位置1,将使EVA外设的高速时钟(HSPCLK)有效

2)、高速外设时钟预定标寄存器(HISPCP)

153|20

保留

HSPCLK

HSPCLK位2~0。

对于SYSCLKOUT有关的高速外设时钟(HSPCLK)的速率进行配置。

如果HISPCP

0,HSPCLK=SYSCLKOUT/(HISPCP

2)。

如果HISPCP=0,HSPCLK=SYSCLKOUT。

000高速时钟=SYSCLKOUT/1100高速时钟=SYSCLKOUT/8

001高速时钟=SYSCLKOUT/2(复位默认值)101高速时钟=SYSCLKOUT/10

010高速时钟=SYSCLKOUT/4110高速时钟=SYSCLKOUT/12

011高速时钟=SYSCLKOUT/6111高速时钟=SYSCLKOUT/14

3)、低速外设时钟预定标寄存器(LOSPCP)

153|20

保留

LSPCLK

LSPCLK位2~0。

对于SYSCLKOUT有关的低速外设时钟(LSPCLK)的速率进行配置。

如果LOSPCP

0,LSPCLK=SYSCLKOUT/(LOSPCP

2)。

如果LOSPCP=0,LSPCLK=SYSCLKOUT。

000高速时钟=SYSCLKOUT/1100高速时钟=SYSCLKOUT/8

001高速时钟=SYSCLKOUT/2101高速时钟=SYSCLKOUT/10

010高速时钟=SYSCLKOUT/4(复位默认值)110高速时钟=SYSCLKOUT/12

011高速时钟=SYSCLKOUT/6111高速时钟=SYSCLKOUT/14

4)、PLL控制寄存器(PLLCR)

154|30

保留

DIV

DIV位3~0.控制PLL被旁路或不被旁路,并且当不被旁路时,设置PLL时钟的比例

0000CLKIN=OSCCLK/2(PLL旁路)1000CLKIN=(OSCCLK

8.0)/2

0001CLKIN=(OSCCLK

1.0)/21001CLKIN=(OSCCLK

9.0)/2

0010CLKIN=(OSCCLK

2.0)/21010CLKIN=(OSCCLK

10.0)/2

0011CLKIN=(OSCCLK

3.0)/21011CLKIN=保留

0100CLKIN=(OSCCLK

4.0)/21100CLKIN=保留

0101CLKIN=(OSCCLK

5.0)/21101CLKIN=保留

0110CLKIN=(OSCCLK

6.0)/21110CLKIN=保留

0111CLKIN=(OSCCLK

7.0)/21111CLKIN=保留

5)、看门狗计数器寄存器(WDCNTR)

158|70

保留

WDCNTR

WDCNTR位7~0。

这些位包含WD计数器的当前值。

8位计数器以WDCLK速率连续增加、如果计数溢出,看门狗会初始化复位状态。

如果用一个有效地组合写WDKEY寄存器,那么计数器复位位0.

6)、看门狗复位密钥寄存器(WDKEY)

158|70

保留

WDKEY

WDKEY位7~0。

紧跟着0x55写入0xAA将清除WDCNTR位(见例程2)。

写任何其他的值则会立即使看门狗复位。

从WDCR寄存器读取返回的值

7)、看门狗控制寄存器(WDCR)

158|76|53|20

保留

WDFLAG

WDDIS

WDCNK

WDPS

WDFALG位7。

看门狗复位状态标志位,如果该位置1,表示一个看门狗复位(

)产生了复位条件。

如果为0,则是一个外部器件或加电复位条件。

该位保持锁存状态直到用户写一个1,清除此条件。

写0无效

WDDIS位6。

向该位写1将使看门狗模块无效。

写0将使看门狗模块使能。

仅当SCSR2寄存器中的WDOVERRIDE位置1时,该位可以修改。

复位时看门狗模块使能

WDCNK位5~3。

无论何时执行写此寄存器的操作,用户必须总是将这些位写成101。

写其他值将使其立即复位(前提:

看门狗使能)

WDPS位2~0。

这些位相对于OSCCLK/512来配置看门狗计数器的时钟(WDCLK)速率:

000WDCLK=OSCCLK/512/1100WDCLK=OSCCLK/512/8

001WDCLK=OSCCLK/512/1101WDCLK=OSCCLK/512/16

010WDCLK=OSCCLK/512/2110WDCLK=OSCCLK/512/32

011WDCLK=OSCCLK/512/4111WDCLK=OSCCLK/512/64

例程3:

voidInitSysCtrl(void)//系统初始化函数

{

Uint16i;

EALLOW;//仿真读取使能

SysCtrlRegs.WDCR=0x0068;//禁止看门狗

SysCtrlRegs.PLLCR=0xA;//如果外部晶振30MHz,则

//SYSCLKOUT=(30MHz*10)/2=150MHz

for(i=0;i<5000;i++){;}//WaitforPLLtolock

SysCtrlRegs.HISPCP.all=0x0001;//设置高速时钟HSPCLK=150MHz/2=75MHz

SysCtrlRegs.LOPCP.all=0x0002;//设置低速时钟LSPCLK=150MHz/4=37.5MHz

SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;//使能EVA外设时钟

SysCtrlRegs.PCLKCR.bit.EVBENCLK=1;//使能EVB外设时钟

SysCtrlRegs.PCLKCR.bit.SCIENCLK=1;//使能SCI外设时钟

EDIS;//与EALLOW相对

}

五、通用I/O口(GPIO)

X281xDSP为用户提供了56个通用的数字I/O引脚,这些引脚基本上都是多功能复用引脚,并且将56个引脚分成6组进行管理,其中GPIOA和GPIOB个管理16个引脚,GPIOD管理14个引脚,GPIOE管理3个引脚,GPIOF管理15个引脚,GPIOG管理2个引脚

1、GPIO寄存器

表5-1GPIO的控制寄存器

名称

大小(

16)

寄存器说明

GPxMUX(x=A,B,D,E,F,G)

1

GPIO功能选择控制寄存器

GPxDIR(x=A,B,D,E,F,G)

1

GPIO方向控制寄存器

GPxQUAL(x=A,B,D,E)

1

GPIO输入限定控制寄存器

注:

1)、并不是所有的引脚的输入都支持输入信号限定功能,GPIOF和GPIOG没有输入信号限定的功能所以没有GPxQUAL寄存器

2)、GPIO控制寄存器受EALLOW控制

例程4:

功能选择寄存器(GPxMUX)的使用

EALLOW;

GpioMuxRegs.GPAMUX.bit.PWM1_GPIOA0=1;//将PWM1引脚设置为PWM波形输出

GpioMuxRegs.GPAMUX.bit.PWM1_GPIOA0=0;//将PWM1引脚设置为通用数字I/O口

EDIS;

例程5:

GPIO设置输入输出功能

EALLOW;

GpioMuxRegs.GPADIR.bit.GPIOA0=0;//将PWM1引脚设置为输入引脚

GpioMuxRegs.GPADIR.bit.GPIOA0=1;//将PWM1引脚设置为输出引脚

EDIS;

表5-2GPIO数据寄存器

名称

大小(

16)

寄存器说明

GPxDAT(x=A,B,D,E,F,G)

1

GPIOx数据寄存器

GPxSET(x=A,B,D,E,F,G)

1

GPIOx置位寄存器

GPxCLEAR(x=A,B,D,E,F,G)

1

GPIOx清除寄存器

GPxTOGGLE(x=A,B,D,E,F,G)

1

GPIOx取反寄存器

注:

1)、GPIO数据寄存器不都EALLOW保护;

2)、置位寄存器(GPxSET)、清除寄存器(GPxCLEAR)、取反寄存器(GPxTOGGLE)只能写1,写0无效;

例程6:

GPIO设置输入时读取引脚高低电平

if(GpioDataRegs.GPADAT.bit.GPIOA0==1)//PWM1引脚输入电平是高电平

{

}

if(GpioDataRegs.GPADAT.bit.GPIOA0==0)//PWM1引脚输入电平是低电平

{

}

例程7:

GPIO设置为输出时,输出高电平或者低电平

GpioDataRegs.GPASET.bit.GPIOA0=1;//PWM1引脚输出高电平

GpioDataRegs.GPACLEAR.bit.GPIOA0=1;//PWM1引脚输出低电平

六、CPU定时器

X281x芯片内部具有3个32位的CPU定时器——Timer0、Timer1、Timer2。

其中CPU定时器1和2被系统保留,用户只能用Timer0。

CPU定时器的几个寄存器:

32位的定时器周期寄存器PRDH:

PRD,32位的计数器寄存器TIMH:

TIM,16位的定时器分频器寄存器TDDRH:

TDDR,16位的预定标计数器寄存器PSCH:

PSC。

(XH:

H表示方法XH表示高位,X表示低位)

1、CPU定时器寄存器

表6-1CPU定时器寄存器列表

名称

大小(

16)

说明

TIMERxTIM(x=0、1、2)

1

CPU定时器计数器寄存器低位

TIMERxTIMH(x=0、1、2)

1

CPU定时器计数器寄存器高位

TIMERxPRD(x=0、1、2)

1

CPU定时器周期寄存器低位

TIMERxPRDH(x=0、1、2)

1

CPU定时器周期寄存器高位

TIMERxTRC(x=0、1、2)

1

CPU定时器控制寄存器

TIMERxTPR(x=0、1、2)

1

CPU定时器预定标寄存器低位

TIMERxTPRH(x=0、1、2)

1

CPU定时器预定标寄存器高位

1)、定时器计数器寄存器低位(TIMERxTIM)

150

TIM

TIM位15~0。

定时器计数寄存器(TIMH:

TIM):

TIM寄存器是当前32位定时器的低16位,

2)、定时器计数器寄存器高位(TIMERxTIMH)

150

TIMH

TIMH位15~0。

定时器计数寄存器(TIMH:

TIM):

TIMH寄存器是当前32位定时器的高16位,

3)、定时器周期寄存器低位(TIMERxPRD)

150

PRD

PRD位15~0.定时器周期寄存器(PRDH:

PRD):

PRD寄存器是32位周期寄存器的低16位。

4)、定时器周期寄存器高位(TIMERxPRDH)

150

PRDH

PRDH位15~0.定时器周期寄存器(PRDH:

PRD):

PRDH寄存器是32位周期寄存器的高16位。

5)、定时器控制寄存器(TIMERxTCR)

1514|1312|1110|98

TIF

TIE

保留

FREE

SOFT

保留

76|54|30

保留

TRB

TSS

保留

TIF位15。

定时器中断标志位。

当定时器减到0时,标志位将置1,可以通过软件写1对该位清0;但是只有计数器递减到0,该位才会被置位。

对该位写1将清除该位,写0无效。

TIE位14。

定时器中断使能位。

如果定时器计数器递减到0,该位置1,定时器将会向CPU提出中断请求。

FREE位11。

定时器仿真方式。

SOFT位10。

FREESOFT定时器仿真方式。

TRB位5。

定时器重装位。

当向TRB写1时,PRDH:

PRD的值装入TIMH:

TIM,并且把定时器分频寄存器TDDRH:

TDDR中的值装入预定标计数器PSCH:

PSC。

TRB位一直读作0。

TSS位4。

定时器停止状态位。

TSS是停止或启动定时器的一个标志位。

要停止定时器,置TSS位1。

要启动或重启定时器,置TSS位0。

在复位时,TSS清0并且定时器立即启动。

6)、定时器预定标计数器低位(TIMERxTPR)

158|70

PSC

TDDR

PSC位15~8。

定时器预定标计数器。

PSC是预定标计数器的低8位。

TDDR位7~0。

定时器分频器。

TDDR是定时器分频器的低8位。

7)、定时器预定标计数器高位(TIMERxTPRH)

158|70

PSCH

TDDRH

PSCH位15~8。

定时器预定标计数器。

PSCH是预定标计数器的高8位。

TDDRH位7~0。

定时器分频器。

TDDRH是定时器分频器的高8位。

2、CPU定时器工作原理

每来一个SYSCLKOUT时钟信号预

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1