武汉理工 DSP原理及应用 实验指导书.docx

上传人:b****2 文档编号:1148794 上传时间:2023-04-30 格式:DOCX 页数:60 大小:760.30KB
下载 相关 举报
武汉理工 DSP原理及应用 实验指导书.docx_第1页
第1页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第2页
第2页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第3页
第3页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第4页
第4页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第5页
第5页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第6页
第6页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第7页
第7页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第8页
第8页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第9页
第9页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第10页
第10页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第11页
第11页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第12页
第12页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第13页
第13页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第14页
第14页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第15页
第15页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第16页
第16页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第17页
第17页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第18页
第18页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第19页
第19页 / 共60页
武汉理工 DSP原理及应用 实验指导书.docx_第20页
第20页 / 共60页
亲,该文档总共60页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

武汉理工 DSP原理及应用 实验指导书.docx

《武汉理工 DSP原理及应用 实验指导书.docx》由会员分享,可在线阅读,更多相关《武汉理工 DSP原理及应用 实验指导书.docx(60页珍藏版)》请在冰点文库上搜索。

武汉理工 DSP原理及应用 实验指导书.docx

武汉理工DSP原理及应用实验指导书

TMS320C5402芯片介绍

1DSP芯片介绍

1.1DSP芯片及系统

TI是全球DSP的主要供应商,其DSP芯片已经发展了好几代。

其发展过程如下:

1)C2x是技术比较成熟的一代DSP处理器,在我国有着广泛的应用。

不过它已逐渐退出历史舞台。

2)C2XX是TI公司的一代高性能、低价位定点DSP处理器。

主要有TMS320C203/C204/C205,TMSC209.TMS320F206/F207,时钟频率达40M,它是TI最早使用片内内存的一代DSP芯片。

3)C54x是TI推出的又一代高性能、低功耗定点DSP处理器。

包括541,542,545,548。

C54X满足实时嵌入设备的要求。

如电信设备,无线通线设备。

4)TMS320C62XX系列是新一代超高性能DSP处理器。

例如TMS320C6201.它的最大处理能力高达1600MIPS,即16亿次每秒定点运算,是当前市场中所有的定点DSP芯片中速度最快、处理能力最强的DSP处理器。

用于移动式无线基站、调制解调器、语音压缩、多媒体系统、家电领域。

TMS320系列中同一代芯片具有相同的CPU结构,但是片内存储器和片内外设的配置是不同的。

TMS320C54xDSP具有如下的优点:

1)具有哈佛结构的CPU,具有高度的并行性;

2)包含定点,浮点,多CPU;

3)主要用于实时处理;

4)灵活的指令集;

5)高速;

6)并行;

7)性价比高;

8)c编程。

TMS320C54xDSP芯片的总体结构如下:

从上图可以看出,DSP芯片具有计算,存储,和通信的功能。

这恰好与数字思想是吻合的。

只要对数字比特进行运算和存储及传输就能完成任何复杂的功能,这就是数字化的思想。

在此CPU充当计算功能,而片内存储起数据缓存作用,另外片内外围电路则是传输通道。

除上述结构特征外,DSP芯片还具有适合于数字信号处理的特点:

1)改进的哈佛结构。

冯·诺依曼结构,其特点是程序和数据共用一个存储空间。

统一编址依靠令计数器提供的地址进行区分。

由于对数据和程序进行分时读写,执行速度慢。

哈佛结构是程序和数据具有独立的存储空间,有着各有的独立总线。

由于可同时对数据和程序进行寻址,它大大地提高了数据处理能力。

改进型哈佛结构是在数据总线和程序总线之间建立交叉连接。

这样允许数据存放在程序存储器内,另外指令可存储在CACHE中。

2)流水线操作。

一个指令是分为取指令、译码、取操作数、执行。

显然是顺序的,但如果有多条这样的流水同时进行,将会大大减少指令执行时间。

3)采用硬件乘法器。

4)一套专门为数字信号处理而设计的指令系统。

5)快速的指令周期。

6)良好的多机并行运行特性,提供了并行运行的通信接口。

一个相对完备的DSP系统框图如下所示

DSP系统具有如下特点:

1)精度高,相比R/L/C网络只要提高A/D和D/A的精度将有效提高整体精度。

2)可靠性强。

由数字电路的特点所决定。

3)集成度高。

4)接口方便。

对于系统集成接口设计是关键。

5)灵活性好。

可编程。

6)保密性好。

1.2CPU及总线结构

TMS320C54xCPU包括:

1)具有一条程序总线,三条数据总线,四条地址总线的哈佛结构。

2)40bit的算术逻辑单元,包含一个40bit桶行移位器和两个40bit的寄存器,寄存器是用来保存CPU的运算结果或提供数据输入的。

3)可以在一个周期内执行乘及累加操作的硬件单元mac指令。

4)比较,选择,保存单元,CSSU。

5)指数编码器。

6)两个地址产生单元,包括八个辅助寄存器和两个辅助寄存器算术单元。

a)数据地址产生单元

b)程序地址产生单元

7)桶形移位器。

8)17×17bit乘法器

TMS320C54x具有增强的哈佛结构,它共有八条总线,如下图:

分开的程序和数据空间允许同时访问程序和数据。

提供了高并行性。

例如在一个周期内可以执行三次读和一次写。

正是利用了这种结构,DSP可以执行特定指令的同时把结果并行的保存起来。

1)程序总线:

用来访问程序空间的指令代码和立即数。

例如系数表,可以用三个指令访问程序空间,MVPD、READA、WRITA。

2)三条数据总线与各种单元相连,包含CPU片内外围与数据空间等。

3)四条地址总线可以在一个周期产生两个数据空间地址(使用ARAU0和ARAU1)。

1.3内部存储器组织

存储空间分成三个空间:

程序,数据,I/O.空间。

例如:

C5402具有1M的程序空间,64k的数据空间,64KI/O空间。

也就是说CPU可以访问数据的空间最大是三者的和。

空间是空间,但要有物理实现。

为了提高访问速度和稳定性,DSP内部一般都实现了存储器。

1.4k的ROM。

内容包含:

1)BOOTLOADER

2)256字的u律表

3)256A律表

4)256字的sin查找表

5)中断向量表

2.16k的DARAM(地址范围0080-7FFF)。

DARAM分成2块,每块可以在一个周期两次读,或者一次读一次写。

这16K的DARAM本身是映射在数据空间的,但同时可以将16k的映射到程序空间。

C5402的存储空间映射如下图:

1.4数据寻址

包含以下几种方式寻址:

●立即寻址

●绝对寻址

●直接寻址

●间接寻址

●累加器寻址

●堆栈寻址

●存储器映射寻址

1)立即寻址

这种寻址将操作数编码在指令中即不用立即数可以是3,5,8,9,16。

例如ld#K,asm就是3bit的操作数。

2)绝对寻址

在此种方式中,用数字和符号来表示地址。

例如:

buffer.usect“buf”,10,分成4种:

●数据空间地址寻址

MVDKSmem,buffer

●程序空间地址寻址

mvpdpmad,Smem

●端口地址寻址

PORTRFIFO,*AR5

●*(lk)寻址

LD*(buffer),A

3)累加器寻址

使用累加器里的内容作为地址。

这种寻址主要用来访问程序空间的数据。

Reada,writa。

4)直接寻址

指令直接包括操作数的地址,但它只包括低7bit地址。

7bit是地址的偏移量。

所以这种寻址要结合基地址来访问操作数。

基地址可以是DP和SP的内容。

CPL=0由DP里的9bit和7bit偏移量来合成16bit地址

CPL=1由SP里的16bit地址加上7bit偏移量来合成16bit地址

5)间接寻址

指令中并包括地址,地址是由辅助寄存器来指示的。

所以指令要指明使用哪个辅助寄存器。

例如:

ld*ar2,a,使用间接寻址的好处:

可以方便的对一块连续的数据空间进行灵活多变的访问。

6)存储器映射寄存器寻址

这种寻址方式使用来访问存储器映射寄存器,它类似于直接寻址,

但它并不需要基址指示,因为0000-007f,因此在0页,例如

STM#12,AR3

7)堆栈寻址

一般程序都要用到堆栈区,堆栈寻址的指令有:

PSHD,PSHM,POPD,POPM。

定义堆栈的方法:

首先,分配一段存储空间用作堆栈

stack.usect“stack_buf”,100

ld#stack+100,sp

1.5片内外围

1)一般I/OXF(输出)BIO(输入)可以用来指示某种含义

SSBXXF

RSBXXF

2)定时器。

C54X定时器是内置于芯片的下数计数器,能用来周期性地产生定时器中断。

定时器因此提供了一个方便的方法来执行周期I/O或其它功能。

定时器的逻辑方框图如下:

●TSS停止计数=1重新计数

●TRB重新加载周期=1

●PSC预分频值

●TDDR定时器的下除率

●TINT向CPU中断

●TOUT定时时钟输出

3)时钟产生电路。

DSP芯片内具有振荡电路和锁相倍频电路。

具有两种时钟输入方式:

一是外接晶体,则内部振荡电路工作。

二是外接时钟源。

比如有源晶振。

不管哪一种,我们提供的都是频率较低的时钟,最终都要经内部倍频后供给CPU。

这样做好处是减小了外部对时钟的干扰,及它对外界的干扰。

4)主机接口是一个8bit的并行接口,它可以与任何主设备(例如PC和单片机)或主处理器接口。

54x和主设备之间的信息交换是通过54x内部的存储单元来实现的。

对于5409,5402由于它们具有增强的主机接口,所以主设备可以访问DSP内部的全部存储单元。

主机接口是54x的外围电路,而主设备作为接口的控制者,这极大的便利了任何主设备与DSP之间交换信息。

主机接口包括:

1)三个寄存器。

这三个寄存器分别是数据锁存寄存器,地址寄存器,控制寄存器。

2)HPI控制逻辑。

3)HPI控制寄存器。

4)与DSP内部交换数据和地址的逻辑电路。

总结以下,HPI接口信号线可以分为如下几类:

1)八根数据线(HD0-HD7)。

注意它不仅用来传送数据,也用来传送地址信息和控制信息。

所以这八根数据线是主设备和DSP交换信息的通道。

2)地址信息(HCNTL0/1,HBIL,HR/W)。

注意这里地址并不是真正意义上的地址线,因为主设备并不能直接访问DSP内部的存储单元,而只能访问内部HPI的三个寄存器,所以HPI的地址线实际只有4根。

3)控制访问时序的信号线。

包含地址锁存信号HAS,片选信号HCS,数据锁存信号HDS1,HDS2。

4)中断和准备传送输出。

1)在时间(a),控制信号HCNTL0,HCNTL1,HR/W,和HBIL设置成需要的逻辑电平。

这些信号指示了访问HPI的类型,以及是访问哪个寄存器,是读还是写。

2)在时间(b),HDS1的下降沿将控制信号HCNTL0,HCNTL1,HR/W,和HBIL锁存,这样就将HPI设置成所需要的访问模式。

3)在时间(c),HDS1的上升沿指示要写入的数据已呈现在HPI数据线HD0-HD7。

上。

如果是读数据,HDS1的上升沿指示数据已被读取。

4)根据时序,就可以设计PC并口与HPI的接口程序。

从上面已知道主设备与HPI的信息交换是通过读写三个寄存器实现的。

只有在实现了访问寄存器的基础上,才能实现任何复杂的通信。

可以把访问寄存器看作是HPI-to-PC的物理通道,只有通道畅通,才能在此通道实现所需要的数据交换。

根据时序,就可以设计PC并口与HPI的物理通道。

5)多通道缓冲串口〔McBsp〕。

它是一个非常重要的接口,多可与多种设备接口。

例如与满足工业标准的编码器接口,各种模拟接口芯片〔AIC〕,串行的A/D和D/A。

McBsp是一个双向的同步串口,它与外界是通过帧同步,时钟同步,及信号线通信.帧同步指示一个串行数据帧的开始,时钟同步确定何时采样信号线上的bit。

 

McBsp寄存器的访问:

外部对这些寄存器的访问是通过两个寄存器来完成的:

1)一个是存放偏移量的子段寄存器

2)一个是存放访问数据的寄存器

这两个寄存器都被映射到数据存储空间,并且地址是相连的MCBSP具体的通信过程是靠一系列寄存器来控制的。

以外部的接口连接来说是非常简单的,关键在于对寄存器的设置。

可以理解成串行通信=寄存器的设置。

初始化:

包括对5个寄存器的初始化

1)采样时钟发生器

2)引脚控制

3)控制寄存器1,控制寄存器2

4)接收控制寄存器

5)发送控制寄存器

1.6中断

分为内部中断和外部中断。

而内部中断又分为软中断和硬中断。

中断的产生:

1)过INTR,TRAP,RESET指令来申请软中断

2)件中断由外部设备信号触发

3)由外部的三个中断端口来触发

4)由片内外围电路来触发。

中断的处理三步曲,

 

中断处理的软件实现。

1)在程序一开始要重新映射中断向量表

中断向量表告诉我们中断服务程序的入口地址。

例如stm#0011000001100000b,PMST

;001100000~~~~~~~bIPTR:

中断向量驻留在03000h

;~~~~~~~~~1~~~~~~bMP/MC_:

片内ROM不使能

;~~~~~~~~~~1~~~~~bOVLY:

片内RAM映射到程序和数据空间

;~~~~~~~~~~~0~~~~bAVIS:

地址可见模式关闭

;~~~~~~~~~~~~0~~~bDROM:

片内ROM不映射到数据空间

;~~~~~~~~~~~~~0~~bCLKOFF:

CLOCKOUT不被禁止

;~~~~~~~~~~~~~~0~bSMUL:

乘饱和被禁止

;~~~~~~~~~~~~~~~0bSST:

保存饱和被禁止中断向量表里的入口地址

2)编辑好中断向量文件

例如

***********************************************************

*文件名:

vectors.asm*

*功能:

软异步串口程序的中断向量表*

*Author:

RobertJ.DeNardo*

*TexasInstruments,Inc*

*RevisionHistory:

*

*11/12/99OriginalCodeRobertDeNardo*

***********************************************************

.mmregs;用寄存器名表示映射寄存器是合法的

.sect"vecs"

.ref_c_int00;c语言程序入口标志;外部程序定义的,本程序引用

.refHS_HANDLE

.refVS_HANDLE

.refSAMPLE_HANDLE

.ref_UARTDMARxISR;DMA接收中断服务程序

.ref_UARTDMATxISR;DMA发送中断服务程序

ResetVector:

;复位向量,每个中断源占4个字

bd_c_int00;主程序入口,延迟跳转,不破坏流水线

stm#100,sp

nmi:

RETE;NMIVector,没使用该中断

NOP

NOP

NOP

sint17.space4*16;SWI17,软件中断空间

sint18.space4*16

sint19.space4*16

sint20.space4*16

sint21.space4*16

sint22.space4*16

sint23.space4*16

sint24.space4*16

sint25.space4*16

sint26.space4*16

sint27.space4*16

sint28.space4*16

sint29.space4*16

sint30.space4*16

int0:

BHS_HANDLE;外部中断0,无条件跳转

nop

nop

int1:

BVS_HANDLE;外部中断1

nop

nop

int2:

BSAMPLE_HANDLE;外部中断2

nop

nop

tint:

RETE;定时器中断,没使用该中断

nop

nop

nop

rint0:

RETE;McBSP0接收中断,没使用该中断

nop

nop

NOP

xint0:

RETE;McBSP0发送中断,没使用该中断

nop

nop

nop

rint2:

RETE;McBSP2接收中断,没使用该中断

nop

nop

nop

xint2:

RETE;McBSP2发送中断,没使用该中断

nop

nop

NOP

int3:

RETE;外部中断3,没使用该中断

nop

nop

nop

hpi:

RETE;主机接口中断,没使用该中断

nop

nop

NOP

rint1:

RETE;McBSP1接收中断,没使用该中断

NOP

NOP

NOP

xint1:

RETE;McBSP1发送中断,没使用该中断

NOP

NOP

NOP

DMAC4Vector:

;DMA通道4中断

b_UARTDMARxISR

nop

nop

DMAC5Vector:

;DMA通道5中断

b_UARTDMATxISR

nop

nop

b$;Reserved

nop

nop

b$;Reserved

nop

nop

1)设置IMR寄存器以允许该中断。

例如:

STM#1,IMR则使能外部中断0。

2)允许全局中断。

rsbxintm

中断服务程序该做的事。

3)将一些寄存器压入堆栈。

4)清除中断响应标志。

STM#01h,IFR;清中断标志。

5)暂时屏蔽该中断andm#0fffeh,*(imr)。

6)处理程序。

7)清中段屏蔽orm#1,*(imr)。

8)出栈。

9)返回。

1.7C5402引脚和信号说明

TMS320C54xx整个系列的型号基本上都采用薄的塑料或陶瓷四方扁平封装(TQFP)。

本节描述C54xx的引脚表示图及其对应的信号说明。

下图为球面封装引脚分配图。

1)3C5402引脚和信号说明

地址与数据信号

A19~A0

输出/高阻

并行地址总线A19~A0,用于对片外数据/程序存储器及I/O寻址。

A19~A16用于扩展程序存储器寻址。

另外,数据总线具有总线保持的特性。

D15~D0

输入/输出/高阻

并行数据总线D15~D0,用于在CPU内核、片外数据/程序存储器或I/O器件之间传递数据。

当没有输出,或者当RS或HOLD起作用时,D15~D0呈高阻。

初始化、中断和复位操作信号

IACK

输出/高阻

中断响应信号,说明芯片收到了一个中断。

INT0

INT1

INT2

INT3

输入

外部用户中断输入。

它们具有优先权,优先级高于中断屏蔽寄存器和中断方式位屏蔽。

NMI

输入

非屏蔽中断。

RS

输入

复位输入使它中止执行。

MP/MC

输入

微处理器/微计算机方式选择引脚。

如果复位时该信号为低(微计算机方式),那么内部程序ROM将映射到程序存储器空间。

一般I/O信号

BIO

输入

转移控制输入。

XF

输出/高阻

外部标志输出(软件可控信号)。

XF可由指令RSBX和SSBX,或写状态寄存器ST1使信号变为高或低。

存储器控制信号

DS

PS

IS

输出/高阻

数据、程序、I/O空间选择信号。

DS、PS和IS除非与一个特定的外部空间通信时被置为低,其他时候总为高。

有效期与有效地址对应。

READY

输入

数据准备好输入,表示一个外围设备正准备好对数据进行传输。

R/W

输出/高阻

读/写信号,表明在与外围设备通信时的传递方向。

IOSTRB

输出/高阻

I/O选通信号。

通常为高,除非外部总线访问一个I/O设备时才为低。

振荡器/定时信号

CLKOUT

输出/高阻

主时钟输出信号。

该信号周期为CPU的机器周期,片内机器周期与该信号的上升沿同步。

同样,CLKOUT在EMU1/OFF为低时呈高阻态。

CLKMD1

CLKMD2

CLKMD3

输入

时钟模式片外/片内输入信号。

该信号允许选择不同的时钟方式,如晶振外部时钟和各种PLL系数。

此设置可以由软件改变。

X2/CLKIN

输入

从晶振到内部振荡器的输入引脚。

如果没有使用内部(晶体)振荡器,外部时钟信号就会输入到使用该引脚的器件中去。

内部机器周期时钟工作方式引脚(CLKMD1、CLKMD2和CLKMD3)输入的时钟方式决定。

X1

输出

内部振荡器到外部晶振的输出引脚。

如果没有使用内部振荡器,X1应该不接。

OFF影响X1。

/

振荡器/定时信号

TOUT

输出

定时器输出。

TOUT在片内定时计数器减至0时产生一个脉冲信号,该脉冲为一个时钟周期宽度。

缓冲串口信号

BCLKR0

BCLKR1

输入

接收时钟。

输入的外部时钟用于数据接收脚(DB)到缓冲串口接收移位寄存器(RSR)的时序控制。

在缓冲串口传递期间,必须有该信号。

BCLKX0

BCLKX1

输入/输出/高阻

发送时钟。

该信号用于数据从串口发送移位寄存器(XSR)到数据发送引脚的时序控制。

BDR0

BDR1

输入

可缓冲的串口数据输入。

串行数据由BDR0/BDR1在RSR中接收。

BDX0

BDX1

输出/高阻

可缓冲的串口发送输出。

串行数据通过BDX从XSR发送。

当没有数据发送或EMU1/OFF为低时,BDX0O、BDX1呈高阻态。

BFSX0

BFSX1

输入/输出/高阻

用于发送的可输入/输出的帧同步脉冲。

BFSX的下降沿将初始化一个数据发送过程,同时启动XSR的时钟。

主机接口信号

HD0~HD15

输入/输出/高阻

并行双向数据总线。

HD0-HD7

输入/输出/高阻

并行双向数据总线。

HCNTL0

HCNTL1

输入

控制脉冲。

HBIL

输入

字节确认输入。

HCS

输入

片选输入。

HDS1

HDS2

输入

数据选通输入。

HAS

输入

地址选通输入。

HR/W

输入

读/写输入。

HRDY

输出/高阻

准备好输出。

处理机构向外围设备表示已准备好

HINT

输出/高阻

中断输出。

主机接口信号

HPIENA

输入

HPI模式选择输入。

电源的信号

CVDD

电源

+VDD。

CVDD是指定的CPU核的电源电压。

DVDD

电源

+VDD。

DVDD是指定的I/O引脚的电源电压。

VSS

电源

地。

Vss是指定的器件电源地。

IEEE1149.1测试引脚

TCK

输入

IEEE标准1149.1测试时钟。

TD1

输入

IEEE标准1149.1测试数据输入。

TDO

输出/高阻

IEEE标准1149.1测试数据输出。

TMS

输入

IEEE标准1149.1测试方式选择,具有内部上拉电阻。

TRST

输入

IEEE标准1149.1测试复位。

EMU0

输入/输出/高阻

仿真中断引脚0。

EMU1/OFF

输入/输出/高阻

仿真中断引脚1。

实验一DSP开发环境的建立

一、实验目的

1、了解CC(或CCS)的组件及其安装;

2、了解DSP实验系统的组成及仿真系统的安装;

二、实验步骤

1、认真阅读“附录Ⅰ”,了解CC(或CCS)的功能组件。

2、下面以CodeComposerStudio5000(以下简称CCS)为例,介绍CCS的安装过程。

打开CCS安装光盘,点击C5000(2.0)文件夹下Setup.exe进入安装界面,点击CodeComposerStudio开始安装,

 

点击Next,

 

点击YES,

点击Next,

 

点击Next,

 

选择安装路径后,点击Next(建议使用默认安装路径),

 

安装等待,

 

 

点击Finish完成安装。

安装程序将在自动批处理文件中添加变量,以确保CCS的正常工作。

 

实验二利用CC

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2