TMS320C54x DSP cpu与外设(一)

andychu   2006-8-24 10:04 楼主

第一章 综

 

1 总线结构

C54x包括816比特宽度的总线,其中:

l      一条程序总线(PB

l      三条数据总线(CBDBEB

l      四条地址总线(PABCABDABEAB

 

2     CPU

C54xCPU结构包括:

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

l      240比特的累加器,分为三个部分,保护位(3932比特)、高位字(3116比特)、低位字(150比特)。

l      桶型移位器,可产生031比特的左移或016比特的右移。

l      17×17比特的乘法器

l      40比特的加法器

l      比较选择和存储单元CSSU

l      数据地址产生器DAGEN

l      程序地址产生器PAGEN

 

3     外设

C54x包括:

l      通用I/O引脚,XF

l      定时器

l      PLL时钟产生器

l      HPI口,8比特或16比特

l      同步串口

l      带缓存串口,BSP

l      多路带缓存串口,McBSP

l      时分复用串口,TDM

l      可编程等待状态产生器

l      可编程bankswitching模块

l      外部总线接口

l      IEEE1149.1标准JTAG

 

第二章 存储器

 

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

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

使用片内存储器有三个优点:高速执行(不需要等待),低开销,低功耗。

 


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

 

  

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

 

2 程序存储区

C54x有片内ROMDARAMSARAM,这些区域可以通过软件配置到程序空间。当地址落在这些区域内,自动对这些区域进行访问;当地址落在这些区域以外,自动产生对外部存储器的访问。

2.1 片内ROM

片内ROM4K16K24K28K48K字)可能包括的内容有:

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

l      256字的μ率扩展表

l      256字的A率扩展表

l      256字的正弦表

l      中断矢量表

2.2 扩展程序存储器

   54854954105420采用分页扩展的方式使可寻址程序空间达到8192K字。这一功能的实现有赖于:

l     23条地址线

l     扩展程序计数器XPC

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

当程序空间可以使用片内RAM时,程序空间的每一页分为以下两部分:最大32K字的通用块和32K字的专有块。通用块为所有页共享。

XPC寄存器指示选定页,复位后,初始化为0。影响XPC6条指令是:

l     FB[D]-长跳转指令

l     FBACC[D]-长跳转指令,跳转地址由AB中内容确定

l     FCALA[D]-长调用指令,子程序地址由AB中内容确定

l     FCALL[D]-长调用指令

l     FRET[D]-长返回指令

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

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

 

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

 

0

IMR

中断屏蔽寄存器

1

IFR

中断标志寄存器

2-5

-

测试保留

6

ST0

状态寄存器0

7

ST1

状态寄存器1

8

AL

累加器A低字(150比特)

9

AH

累加器A高字(3116比特)

A

AG

累加器A保护位(3932比特)

B

BL

累加器B低字(150比特)

C

BH

累加器B高字(3116比特)

D

BG

累加器B保护位(3932比特)

E

T

乘法寄存器

F

TRN

传送寄存器

10-17

AR0-AR7

辅助寄存器ARn n07

18

SP

堆栈指针

19

BK

循环缓存区大小寄存器

1A

BRC

块重复计数器

1B

RSA

块重复开始地址

1C

REA

块重复结束地址

1D

PMST

状态寄存器

1E

XPC

PC扩展寄存器

1E1F

保留

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

主机接口控制寄存器

2D2F

保留

30

TRCN

TDM串口数据接收寄存器

31

TDXR

TDM串口数据发送寄存器

32

TSPC

TDM串口控制寄存器

33

TCSR

TDM串口通道选择寄存器

34

TRTA

TDM串口接收发送寄存器

35

TRAD

TDM串口接收地址寄存器

3637

保留

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控制扩展寄存器

4457

保留

58

CLKMD

时钟方式寄存器

595F

保留

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

3.1   ST0寄存器

ST0结构为:

 

1513

12

11

10

9

80

ARP

TC

C

OVA

OVB

DP

 

l      ARP-辅助寄存器指针

l      TC-测试/控制位,存储了ALU测试位操作的结果,受BITBITFCMPMCMPRCMPSSFTC指令的影响

l      C-如果加法产生进位C1,减法产生借位C0ADD指令只能置位C,而SUB指令只能清C

l      OVA-累加器A溢出标志

l      OVB-累加器B溢出标志

l      DP-数据存储空间页标志,由DP指定页,在此页中采用直接寻址指令。其绝对地址为DP指示的高9位加上直接寻址指令中的地址为其低7位构成。

3.2   ST1寄存器

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

 

l     BRAF-块重复指示。BRAF1,块重复操作。

l     CPL-编译器模式,指示相关直接寻址选用指针。CPL0,使用DP指针;CPL1,使用SP指针。

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

l     HM-挂起方式。指示CPU响应 信号的方式。HM0,外部接口呈高阻;HM1CPU停机。

l     INTM-全局中断控制位。INTM0,开中断;INTM1,屏蔽可屏蔽中断。

l     0-读出值总为0

l     OVM-溢出处理方式。指示发生溢出时,对累加器中数值的处理。OVM0,溢出值不变;OVM1,载入正向最大值007FFFFFFFH或负向最大值0080000000H

l     SXM-符号扩展方式。SXM0,符号不扩展;SXM1,数据被ALU使用前先行符号扩展。

l     C16C160ALU操作采用双精度方式(全32位方式),C161ALU操作采用双16位方式。

l     FRCT-小数模式。FRCT1,乘法器输出左移一位补偿多余的符号位。

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

l     ASM-累加器移位数。规定了移位范围-1615,用于并行存储指令STHSTLADDSUBLD

3.3   PMST寄存器

ST1结构为:

 

157

6

5

4

3

2

1

0

IPTR

MP/MC

OVLY

AVIS

DROM

CLKOFF

SMUL

SST

 

l     IPTR-中断矢量指针。此9位指向内存空间中以128字为单位的页首址。即中断矢量必须位于页的起始部分。复位后IPTR1FFH,指向FF80H的位置,可重新定义到任何页。

l     -微机/微处理器模式。 0,微机模式,片内ROM可访问; 1,微处理器模式,片内ROM不可访问。

l     OVLY-片内RAM是否配置入程序空间。OVLY0,片内RAM不配置入程序空间;OVLY1,除007FH外,片内RAM配置入程序空间。

l     AVIS-地址显示模式。控制对内部程序访问时,地址数据是否显示在地址线上。AVIS0,不显示;AVIS1,显示。

l     DROM-数据ROM配置。DROM0,片内ROM不配置在数据空间;DROM1,部分片内ROM配置在数据空间。

l     CLKOFFCLKOUT关闭。CLKOFF1CLKOUT输出禁止,保持高电平。

l     SMUL-乘法溢出处理。当SMUL1,且OVM1FRCT1时,对MAC(乘累加)和MAS(乘累减)指令的操作基于ETSI GSM规范。体现在在小数模式下,在进行后续加/减之前,8000H×8000H的结果被调整为7FFFFFFH。这等同于在OVM1MPYADD指令。如果只有OVM1,而SMUL不为1,只在加/减结果后作溢出调整。

l     SST-存储溢出处理。当SST1,累加器中数据在存储到数据空间之前进行溢出调整。影响指令有:STHSTLSTLMDSTST||ADDST||LDST||MACR[R]ST||MAS[R]ST||MPYST||SUB.步骤是:

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

2) 40比特值根据SXM位调整为32位。SXM0(不符号扩展),若值大于7FFFFFFFH,取7FFFFFFFH;若SXM1(符号扩展),若值大于7FFFFFFFH,取7FFFFFFFH,若值小于80000000H,取80000000H

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

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

 

3.4   累加器的存储操作

累加器中数据存储,AHAL部分比较好办,采用STHSTLSTLM即可完成。要存储AG中的内容,则需要采用间接方式,如累加器A中内容为0FF 4321 1234H,要存储AG部分内容至TEMP存储器中,可用“STH A,-8TEMP”指令来完成,TEMPFF43H

回复评论 (1)

Re: TMS320C54x DSP cpu与外设(一)

好东西!
点赞  2007-3-24 10:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复