TMS320C54xDSP精知识分享.docx

上传人:b****1 文档编号:14499161 上传时间:2023-06-24 格式:DOCX 页数:18 大小:71.18KB
下载 相关 举报
TMS320C54xDSP精知识分享.docx_第1页
第1页 / 共18页
TMS320C54xDSP精知识分享.docx_第2页
第2页 / 共18页
TMS320C54xDSP精知识分享.docx_第3页
第3页 / 共18页
TMS320C54xDSP精知识分享.docx_第4页
第4页 / 共18页
TMS320C54xDSP精知识分享.docx_第5页
第5页 / 共18页
TMS320C54xDSP精知识分享.docx_第6页
第6页 / 共18页
TMS320C54xDSP精知识分享.docx_第7页
第7页 / 共18页
TMS320C54xDSP精知识分享.docx_第8页
第8页 / 共18页
TMS320C54xDSP精知识分享.docx_第9页
第9页 / 共18页
TMS320C54xDSP精知识分享.docx_第10页
第10页 / 共18页
TMS320C54xDSP精知识分享.docx_第11页
第11页 / 共18页
TMS320C54xDSP精知识分享.docx_第12页
第12页 / 共18页
TMS320C54xDSP精知识分享.docx_第13页
第13页 / 共18页
TMS320C54xDSP精知识分享.docx_第14页
第14页 / 共18页
TMS320C54xDSP精知识分享.docx_第15页
第15页 / 共18页
TMS320C54xDSP精知识分享.docx_第16页
第16页 / 共18页
TMS320C54xDSP精知识分享.docx_第17页
第17页 / 共18页
TMS320C54xDSP精知识分享.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

TMS320C54xDSP精知识分享.docx

《TMS320C54xDSP精知识分享.docx》由会员分享,可在线阅读,更多相关《TMS320C54xDSP精知识分享.docx(18页珍藏版)》请在冰点文库上搜索。

TMS320C54xDSP精知识分享.docx

TMS320C54xDSP精知识分享

 

TMS320C54xDSP(精)

 

TMS320C54xDSP

CPU与外设

 

第一章综述

1总线结构

C54x包括8条16比特宽度的总线,其中:

●一条程序总线(PB)

●三条数据总线(CB、DB、EB)

●四条地址总线(PAB、CAB、DAB、EAB)

2CPU

C54x的CPU结构包括:

●40比特的ALU,其输入来自16比特立即数、16比特来自数据存储器的数据、暂时存储器、T中的16比特数、数据存储器中两个16比特字、数据存储器中32比特字、累加器中40比特字。

●2个40比特的累加器,分为三个部分,保护位(39-32比特)、高位字(31-16比特)、低位字(15-0比特)。

●桶型移位器,可产生0到31比特的左移或0到16比特的右移。

●17×17比特的乘法器

●40比特的加法器

●比较选择和存储单元CSSU

●数据地址产生器DAGEN

●程序地址产生器PAGEN

3外设

C54x包括:

●通用I/O引脚,XF和

●定时器

●PLL时钟产生器

●HPI口,8比特或16比特

●同步串口

●带缓存串口,BSP

●多路带缓存串口,McBSP

●时分复用串口,TDM

●可编程等待状态产生器

●可编程bank-switching模块

●外部总线接口

●IEEE1149.1标准JTAG口

第二章存储器

一般而言,C54x的存储空间可达192K16比特字,64K程序空间,64K数据空间,64KI/O空间。

依赖其并行的工艺特性和片上RAM双向访问的性能,在一个机器周期内,C54x可以执行4条并行并行存储器操作:

取指令,两操作数读,一操作数写。

使用片内存储器有三个优点:

高速执行(不需要等待),低开销,低功耗。

1存储空间分配图(以C549为例)

复位后,中断矢量表位于程序区FF80H位置,可重新定位于程序空间任何一个128字的页面(其地址高9比特即页号由PMST中IPTR确定)。

2程序存储区

C54x有片内ROM、DARAM、SARAM,这些区域可以通过软件配置到程序空间。

当地址落在这些区域内,自动对这些区域进行访问;当地址落在这些区域以外,自动产生对外部存储器的访问。

2.1片内ROM

片内ROM(4K,16K,24K,28K或48K字)可能包括的内容有:

●引导程序,可以从串口、外部存储器、I/O口或HPI口引导

●256字的μ率扩展表

●256字的A率扩展表

●256字的正弦表

●中断矢量表

2.2扩展程序存储器

‘548、’549、’5410、’5420采用分页扩展的方式使可寻址程序空间达到8192K字。

这一功能的实现有赖于:

●23条地址线

●扩展程序计数器XPC

●6条访问外部程序空间的指令

当程序空间可以使用片内RAM时,程序空间的每一页分为以下两部分:

最大32K字的通用块和32K字的专有块。

通用块为所有页共享。

XPC寄存器指示选定页,复位后,初始化为0。

影响XPC的6条指令是:

●FB[D]-长跳转指令

●FBACC[D]-长跳转指令,跳转地址由A或B中内容确定

●FCALA[D]-长调用指令,子程序地址由A或B中内容确定

●FCALL[D]-长调用指令

●FRET[D]-长返回指令

●FRETE[D]-长中断返回指令

其它的指令不修改XPC寄存器,而在当前页中做内部访问。

3内存映象寄存器(以‘549为例)

0

IMR

中断屏蔽寄存器

1

IFR

中断标志寄存器

2-5

-

测试保留

6

ST0

状态寄存器0

7

ST1

状态寄存器1

8

AL

累加器A低字(15-0比特)

9

AH

累加器A高字(31-16比特)

A

AG

累加器A保护位(39-32比特)

B

BL

累加器B低字(15-0比特)

C

BH

累加器B高字(31-16比特)

D

BG

累加器B保护位(39-32比特)

E

T

乘法寄存器

F

TRN

传送寄存器

10-17

AR0-AR7

辅助寄存器ARnn=0~7

18

SP

堆栈指针

19

BK

循环缓存区大小寄存器

1A

BRC

块重复计数器

1B

RSA

块重复开始地址

1C

REA

块重复结束地址

1D

PMST

状态寄存器

1E

XPC

PC扩展寄存器

1E-1F

保留

20

BDRR0

带缓存串口0数据接收寄存器

21

BDXR0

带缓存串口0数据发送寄存器

22

BSPC0

带缓存串口0控制寄存器

23

BSPCE0

带缓存串口0控制扩展寄存器

24

TIM

定时器计数器

25

PRD

定时器周期寄存器

26

TCR

定时器控制寄存器

27

保留

28

SWWSR

等待状态产生寄存器

29

BSCR

Bank-switching控制寄存器

2A

保留

2B

XSWR

扩展等待状态寄存器

2C

HPIC

主机接口控制寄存器

2D-2F

保留

30

TRCN

TDM串口数据接收寄存器

31

TDXR

TDM串口数据发送寄存器

32

TSPC

TDM串口控制寄存器

33

TCSR

TDM串口通道选择寄存器

34

TRTA

TDM串口接收发送寄存器

35

TRAD

TDM串口接收地址寄存器

36-37

保留

38

AXR0

ABU0发送地址寄存器

39

BKX0

ABU0发送缓冲大小寄存器

3A

ARR0

ABU0接收地址寄存器

3B

BKR0

ABU0接收缓冲大小寄存器

3C

AXR1

ABU1发送地址寄存器

3D

BKX1

ABU1发送缓冲大小寄存器

3E

ARR1

ABU1接收地址寄存器

3F

BKR1

ABU1接收缓冲大小寄存器

40

BDRR1

带缓存串口1数据接收寄存器

41

BDXR1

带缓存串口1数据发送寄存器

42

BSPC1

带缓存串口1控制寄存器

43

BSPCE1

带缓存串口1控制扩展寄存器

44-57

保留

58

CLKMD

时钟方式寄存器

59-5F

保留

下面着重对三个状态寄存器作一简要说明。

3.1ST0寄存器

ST0结构为:

15-13

12

11

10

9

8-0

ARP

TC

C

OVA

OVB

DP

●ARP-辅助寄存器指针

●TC-测试/控制位,存储了ALU测试位操作的结果,受BIT,BITF,CMPM,CMPR,CMPS,SFTC指令的影响

●C-如果加法产生进位C为1,减法产生借位C为0。

ADD指令只能置位C,而SUB指令只能清C

●OVA-累加器A溢出标志

●OVB-累加器B溢出标志

●DP-数据存储空间页标志,由DP指定页,在此页中采用直接寻址指令。

其绝对地址为DP指示的高9位加上直接寻址指令中的地址为其低7位构成。

3.2ST1寄存器

ST1结构为:

15

14

13

12

11

10

9

8

7

6

5

4-0

BRAF

CPL

XF

HM

INTM

0

OVM

SXM

C16

FRCT

CMPT

ASM

●BRAF-块重复指示。

BRAF=1,块重复操作。

●CPL-编译器模式,指示相关直接寻址选用指针。

CPL=0,使用DP指针;CPL=1,使用SP指针。

●XF-指示外部引脚XF状态。

●HM-挂起方式。

指示CPU响应

信号的方式。

HM=0,外部接口呈高阻;HM=1,CPU停机。

●INTM-全局中断控制位。

INTM=0,开中断;INTM=1,屏蔽可屏蔽中断。

●0-读出值总为0。

●OVM-溢出处理方式。

指示发生溢出时,对累加器中数值的处理。

OVM=0,溢出值不变;OVM=1,载入正向最大值007FFFFFFFH或负向最大值0080000000H。

●SXM-符号扩展方式。

SXM=0,符号不扩展;SXM=1,数据被ALU使用前先行符号扩展。

●C16-C16=0,ALU操作采用双精度方式(全32位方式),C16=1,ALU操作采用双16位方式。

●FRCT-小数模式。

FRCT=1,乘法器输出左移一位补偿多余的符号位。

●CMPT-兼容模式。

CMPT=0,ARP在只有单数据存储器操作数的间接寻址方式中不更新,在这种方式下,ARP必须总置0;CMPT=1,ARP在上述条件下更新,除非使用AR0。

●ASM-累加器移位数。

规定了移位范围-16-15,用于并行存储指令STH、STL、ADD、SUB和LD。

3.3PMST寄存器

ST1结构为:

15-7

6

5

4

3

2

1

0

IPTR

MP/MC

OVLY

AVIS

DROM

CLKOFF

SMUL

SST

●IPTR-中断矢量指针。

此9位指向内存空间中以128字为单位的页首址。

即中断矢量必须位于页的起始部分。

复位后IPTR为1FFH,指向FF80H的位置,可重新定义到任何页。

-微机/微处理器模式。

=0,微机模式,片内ROM可访问;

=1,微处理器模式,片内ROM不可访问。

●OVLY-片内RAM是否配置入程序空间。

OVLY=0,片内RAM不配置入程序空间;OVLY=1,除00-7FH外,片内RAM配置入程序空间。

●AVIS-地址显示模式。

控制对内部程序访问时,地址数据是否显示在地址线上。

AVIS=0,不显示;AVIS=1,显示。

●DROM-数据ROM配置。

DROM=0,片内ROM不配置在数据空间;DROM=1,部分片内ROM配置在数据空间。

●CLKOFF-CLKOUT关闭。

CLKOFF=1,CLKOUT输出禁止,保持高电平。

●SMUL-乘法溢出处理。

当SMUL=1,且OVM=1,FRCT=1时,对MAC(乘累加)和MAS(乘累减)指令的操作基于ETSIGSM规范。

体现在在小数模式下,在进行后续加/减之前,8000H×8000H的结果被调整为7FFFFFFH。

这等同于在OVM=1下MPY+ADD指令。

如果只有OVM=1,而SMUL不为1,只在加/减结果后作溢出调整。

●SST-存储溢出处理。

当SST=1,累加器中数据在存储到数据空间之前进行溢出调整。

影响指令有:

STH,STL,STLM,DST,ST||ADD,ST||LD,ST||MACR[R],ST||MAS[R],ST||MPY和ST||SUB.步骤是:

1)依据指令,累加器中数据完成左移或右移。

2)40比特值根据SXM位调整为32位。

SXM=0(不符号扩展),若值大于7FFFFFFFH,取7FFFFFFFH;若SXM=1(符号扩展),若值大于7FFFFFFFH,取7FFFFFFFH,若值小于80000000H,取80000000H。

3)调整后数据存入数据空间。

4)在调整过程中,累加器中数据不改变。

3.4累加器的存储操作

累加器中数据存储,AH和AL部分比较好办,采用STH,STL和STLM即可完成。

要存储AG中的内容,则需要采用间接方式,如累加器A中内容为0FF43211234H,要存储AG部分内容至TEMP存储器中,可用“STHA,-8,TEMP”指令来完成,TEMP=FF43H。

第三章数据寻址

C54x提供七类寻址方式:

●立即数寻址

●绝对地址寻址

●累加器寻址

●直接寻址

●间接寻址

●内存映象寄存器寻址

●堆栈寻址

下面着重介绍以下几种方式。

1绝对地址寻址

术语解释:

dmad-数据存储地址;pmad-程序存储地址;PA-口地址;lk-长整数。

绝对地址寻址包括四类:

●dmad寻址

●pmad寻址

●PA寻址

●*(lk)寻址

1.1dmad寻址

dmad寻址用一标号标记数据空间地址,这类指令有:

●MVDKSmem,dmad

●MVDMdmad,MMR

●MVKDdmad,Smem

●MVMDMMR,dmad

如:

MVKDSAMPLE,*AR5。

此处SAMPLE即是dmad。

1.2pmad寻址

pmad寻址用一标号标记程序空间地址,这类指令有:

●FIRSXmem,Ymem,pmad

●MACDSmem,pmad,src

●MACPSmem,pmad,src

●MVDPSmem,pmad

●MVPDpmad,Smem

如:

MVPDTABLE,*AR7-。

此处TABLE即为pmad。

1.3PA寻址

PA寻址用一标号标记外部I/O口地址,这类指令有:

●PORTRPA,Smem

●PORTWSmem,PA

如:

PORTRFIFO,*AR5。

此处FIFO即为PA。

1.4*(lk)寻址

*(lk)寻址也是用标号标记数据空间地址。

如:

LD*(BUFFER),A。

使用这类指令的好处在于不用修改DP和AR值。

但有一点要注意的是,这类指令不能用于重复执行单指令中(RPT,RPTZ)。

2直接寻址

在这类指令中,指令中的地址标号构成dmad的低7位(DP方式)或作为正向偏移量(SP方式)。

所以指令中地址标号不得超过7位,采用DP或SP方式,由ST1中CPL位决定。

CPL=0,采用DP方式;CPL=1,采用SP方式。

2.1DP方式

DP方式,DP中内容作为dmad地址高9位,指令中地址标号作为低7位构成dmad地址。

2.2SP方式

SP方式,以SP中内容作为dmad基地址,指令中地址标号作为正向偏移量,二者相加构成dmad地址。

3间接寻址

间接寻址是指dmad由辅助寄存器AR0-AR7内容构成。

使用间接寻址的灵活性不仅在于一条指令完成读或写数据存储区(单操作数),还在于一条指令可以完成两个不同存储区的读操作,或两个不同存储区的写操作,或对两个不同位置的一读一写操作。

3.1对SARAM的访问

对SARAM访问使用寄存器AR0-AR7,其中AR0为变址寄存器。

用法见下表:

语法

功能

描述

*ARx

dmad=ARx

ARx包含dmad

*ARx-

dmad=ARx

ARx=ARx-1

访问后,ARx中地址内容减1

*ARx+

dmad=ARx

ARx=ARx+1

访问后,ARx中地址内容加1

*+ARx

dmad=ARx+1

ARx=ARx+1

访问前,ARx中地址内容加1

*ARx-0B

dmad=ARx

ARx=B(ARx-AR0)

访问后,ARx中内容减去AR0中内容,并产生反向借位翻转(用于FFT算法)

*ARx-0

dmad=ARx

ARx=ARx-AR0

访问后,ARx中内容减去AR0中内容

*ARx+0

dmad=ARx

ARx=ARx+AR0

访问后,ARx中内容减去AR0中内容

*ARx+0B

dmad=ARx

ARx=B(ARx+AR0)

访问后,ARx中内容加上AR0中内容,并产生反向进位翻转(用于FFT算法)

*ARx-%

dmad=ARx

ARx=circ(ARx-1)

访问后,ARx中内容按循环寻址方式减1

*ARx-0%

dmad=ARx

ARx=circ(ARx-AR0)

访问后,ARx中内容按循环寻址方式减去AR0中内容

*ARx+%

dmad=ARx

ARx=circ(ARx+1)

访问后,ARx中内容按循环寻址方式加1

*ARx+0%

dmad=ARx

ARx=circ(ARx+AR0)

访问后,ARx中内容按循环寻址方式加上AR0中内容

*ARx(lk)

dmad=ARx+lk

ARx=ARx

ARx中内容加上16位长偏移(lk)为dmad,ARx不更新

*+ARx(lk)

dmad=ARx+lk

ARx=ARx+lk

ARx中内容加上16位长偏移(lk)为dmad,ARx更新

*+ARx(lk)%

dmad=circ(ARx+lk)

ARx=circ(ARx+lk)

ARx中内容按循环寻址方式加上16位长偏移(lk)为dmad,ARx更新

*(lk)

dmad=lk

16位绝对地址寻址

循环寻址操作如下:

寄存器BK作为循环缓存区大小(R)。

循环缓存区基地址的低N位必须为0。

R和N满足以下关系:

末地址为基地址+R。

步进值

变址index由以下算法确定:

3.2对DARAM的访问

对DARAM访问使用辅助寄存器AR2-AR5,用法见下表:

语法

功能

描述

*ARx

dmad=ARx

ARx包含dmad

*ARx-

dmad=ARx

ARx=ARx-1

访问后,ARx中地址内容减1

*ARx+

dmad=ARx

ARx=ARx+1

访问后,ARx中地址内容加1

*ARx+0%

dmad=ARx

ARx=circ(ARx+AR0)

访问后,ARx中内容按循环寻址方式加上AR0中内容

第四章中断系统

硬件和软件驱动都可以使C54x产生中断。

软件中断是指由程序指令引起的中断,这类指令有:

INTR,TRAP,RESET。

硬件中断可由外部硬件引发,或由片内外设内部引发。

无论软件中断还是硬件中断都可分为可屏蔽中断和不可屏蔽中断。

C54x处理中断按以下三个步骤:

●接收中断请求

●响应中断

●执行中断服务程序

3.2中断标志寄存器IFR(以C549为例)

15-14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

保留

BMINT1

BMINT0

BXINT1

BRINT1

HPINT

INT3

TXINT

TRINT

BXINT0

BRINT0

TINT

INT2

INT1

INT0

IFR中某位为1表明有相应中断,再次写1清除中断。

3.2中断屏蔽寄存器IMR(以C549为例)

15-14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

保留

BMINT1

BMINT0

BXINT1

BRINT1

HPINT

INT3

TXINT

TRINT

BXINT0

BRINT0

TINT

INT2

INT1

INT0

要打开某个中断,只需向IMR中相应某位写1。

而ST1中INTM位为中断总开关。

3.3中断位置与优先级(以C549为例)

中断号

优先级

名称

位置

功能

0

1

RS/SINTR

0

复位(软硬件)

1

2

NMI/SINT16

4

非屏蔽中断

2

SINT17

8

软件中断17

3

SINT18

C

软件中断18

4

SINT19

10

软件中断19

5

SINT20

14

软件中断20

6

SINT21

18

软件中断21

7

SINT22

1C

软件中断22

8

SINT23

20

软件中断23

9

SINT24

24

软件中断24

10

SINT25

28

软件中断25

11

-

SINT26

2C

软件中断26

12

-

SINT27

30

软件中断27

13

-

SINT28

34

软件中断28

14

-

SINT29

38

软件中断29

15

-

SINT30

3C

软件中断30

16

3

INT0/SINT0

40

外部中断0

17

4

INT1/SINT1

44

外部中断1

18

5

INT2/SINT2

48

外部中断2

19

6

TINT/SINT3

4C

定时器中断

20

7

BRINT0/SINT4

50

带缓存串口0接收中断

21

8

BXINT0/SINT5

54

带缓存串口0发送中断

22

9

TRINT/SINT6

58

TDM串口接收中断

23

10

TXINT/SINT7

5C

TDM串口发送中断

24

11

INT3/SINT8

60

外部中断3

25

12

HINT/SINT9

64

HPI口中断

26

13

BRINT1/SINT10

68

带缓存串口1接收中断

27

14

BXINT1/SINT11

6C

带缓存串口1发送中断

28

15

BMINT0/SINT14

70

BSP0失步检测中断

29

16

BMINT1/SINT13

74

BSP1失步检测中断

30-31

-

78-7F

保留

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

当前位置:首页 > 医药卫生 > 预防医学

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

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