编程语言

img casularm

TMS320C54X芯片介绍

发表于2004/10/22 14:39:00  7029人阅读

分类: 15.Hardware

TMS320C54X芯片介绍

1. 概述

TI公司在原来已被人们熟知的TMS320C1XTMS320C25TMS320C3X/4XTMS320C5XTMS320C8X的基础上发展了三种新的DSP系列,它们是:TMS320C2000TMS320C5000TMS320C6000系列,成为当前和未来相当长时期内TI DSP的主流产品,前面提到的那些老型号产品均将被这三种新系列产品替代。

三种新型TMS320 DSP系列的特点

1.TMS320C2000——作控制用的最佳DSP,可以替代老的’C1X和’C2X。现在有趋势集中在以下两个方向上:

1)’C20X 16位定点DSP,速度为20MIPS,主要用途是电话、数字相机、售货机等,其中:’F206带有闪速存储器。

2)’C24X 16位定点DSP,速度为20MIPS,用作数字马达控制、工业自动化、电力转换系统、空调等。

2.TMS320C5000——低功耗高性能DSP16位定点,速度40200MIPS。主要用途是有线和无线通信、IP、便携式信息系统、寻呼机、助听器等。

目前’C5000系列中又有三种新成员,一种是’C5402,这是廉价型的DSP,目标价格是每片5美元(50K批量),速度保持100MIPS,片内存储空间稍小一些,RAM16KROM4K。主要应用对象是无线Modem、新一代PDA、网络电话和其它电话系统以及消费类电子产品。

第二种是’C5420,它拥有两个DSP核,速度达到200MIPS200K片内RAM,功耗0.32mA/MIPS200MIPS全速工作时不超过120mW,为业内功耗最低的DSP。’C5420是当今集成度最高的定点DSP,适合于做多通道基站、服务器、Modem和电话系统等要求高性能、低功耗、小尺寸的场合。

    第三种是’C5416,它是TI公司0.15μm器件中的第一款,速度为160MIPS,有三个多通道缓冲串行口(McBSPs),能够直接与T1E1线路联接,不需要外部逻辑电路,有128K片内RAM。应用对象是VoIP、通信服务器、PBX(专用小交换机)和计算机电话系统等。

 3.TMS320C6000——这是TI公司19972月推向市场的高性能DSP,综合了目前DSP的所有优点,具有最佳的性价比和低功耗。’C6000系列中又分成定点和浮点两类。

1C62XX 16位定点DSP,速度为12002000MIPS,用于无线基站、ADSL Modem、网络系统、中心局交换机、数字音频广播设备等。

2C67XX 32位浮点DSP,速度为1Gflops,用于基站数字波束形成、医学图像处理、语音识别、3-D图形等。

  上面所介绍的TI公司的新一代DSP已经替代80年代和90年代初的老一代产品,在电子信息产业方面获得了广泛的应用。’C2000系列已用于数字马达控制、数字照相机、PC照相机;’C5000系列用于蜂窝网手机、程控交换;’C6000系列用于基站、ADSLV.90 56K Modem

    本设计所采用的芯片是’C5000系列重的一款TMS320C54X芯片。下面着重介绍。

2 TMS320C54x芯片综述

2.1 总线结构

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

l 一条程序总线(PB

l三条数据总线(CBDBEB

l 四条地址总线(PAB CAB DAB EAB

2.2 C P U

C54x CPU 结构包括:

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

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

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

l 17x17 比特的乘法器

l 40 比特的加法器

l比较选择和存储单元CSSU

l数据地址产生器DAGEN

l程序地址产生器PAGEN

2.3 外设

C54x 包括

l通用I/O 引脚,XF BIO

l定时器

l PLL 时钟产生器

l HPI 8 比特或16 比特

l同步串口

l带缓存串口BSP

l多路带缓存串口McBSP

l时分复用串口TDM

l可编程等待状态产生器

l可编程bank switching 模块

l 外部总线接口

l IEEE1149.1 标准JTAG

 

 

3.存储器

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

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

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

 

3.1 存储空间分配图(C 5 4 9 为例)

                         21 ’C54x存储空间分配图

 

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

 

3.2 程序存储区

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

3.2 .1 片内 R O M

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

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

l256 字的率扩展表

l256 字的A 率扩展表

l 256 字的正弦表

l中断矢量表

3.2.2 扩展程序存储器

548 549 5410 5420 采用分页扩展的方式使可寻址程序空

间达到8192K 字,这一功能的实现有赖于:

l 23 条地址线

l扩展程序计数器XPC

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

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

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

l FB[D] 长跳转指令

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

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

l FCALL[D] 长调用指令

l FRET[D] 长返回指令

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

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

 

3.3 内存映象寄存器(以5 4 9 为例)

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

传送寄存器

1 0-1 7

AR0-AR7

辅助寄存器ARn n=07

1 8

SP

堆栈指针

1 9

BK

循环缓存区大小寄存器

1 A

BRC

块重复计数器

1 B

RSA

块重复开始地址

1 C

REA

块重复结束地址

1 D

PMST

状态寄存器

1 E

XPC

PC 扩展寄存器

1 E1 F

保留

2 0

BDRR0

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

2 1

BDXR0

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

2 2

BSPC0

带缓存串口0 控制寄存器

2 3

BSPCE0

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

2 4

TIM

定时器计数器

2 5

PRD

定时器周期寄存器

2 6

TCR

定时器控制寄存器

2 7

保留

2 8

SWWSR

等待状态产生寄存器

2 9

BSCR

Bank-switching 控制寄存器

2 A

保留

2 B

XSWR

扩展等待状态寄存器

2 C

HPIC

主机接口控制寄存器

2 D2 F

保留

3 0

TRCN

TDM 串口数据接收寄存器

3 1

TDXR

TDM 串口数据发送寄存器

3 2

TSPC

TDM 串口控制寄存器

3 3

TCSR

TDM 串口通道选择寄存器

3 4

TRTA

TDM 串口接收发送寄存器

3 5

TRAD

TDM 串口接收地址寄存器

3 63 7

保留

3 8

AXR0

ABU0 发送地址寄存器

3 9

BKX0

ABU0 发送缓冲大小寄存器

3 A

ARR0

ABU0 接收地址寄存器

3 B

BKR0

ABU0 接收缓冲大小寄存器

3 C

AXR1

ABU1 发送地址寄存器

3 D

BKX1

ABU1 发送缓冲大小寄存器

3 E

ARR1

ABU1 接收地址寄存器

3 F

BKR1

ABU1 接收缓冲大小寄存器

4 0

BDRR1

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

4 1

BDXR1

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

4 2

BSPC1

带缓存串口1 控制寄存器

4 3

BSPCE1

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

4 45 7

保留

5 8

CLKMD

时钟方式寄存器

5 95 F

保留

 

 

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

3.3 . 1  S T 0 寄存器

ST0 结构为

l ARP 辅助寄存器指针

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

l C 如果加法产生进位C 1, 减法产生借位C 0 ADD 指令

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

l OVA 累加器A 溢出标志

l OVB 累加器B 溢出标志

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

3.3 . 2  S T 1 寄存器

ST1 结构为

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

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

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

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

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

屏蔽中断。

l 0 读出值总为0

l OVM 溢出处理方式。指示发生溢出时对累加器中数值的处理OVM0 ,溢出值不变;  

OVM1 ,载入正向最大值007FFFFFFFH或负向最大值0080000000H

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

l C16  C160 ALU 操作采用双精度方式全32 位方式C161 ALU 操作采用双16 位方式。

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

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

l ASM 累加器移位数。规定了移位范围1615 ,用于并行存储指令STH STL ADD SUB LD

3.3 . 3  PMST 寄存器

ST1 结构为:

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

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

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

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

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

l CLKOFF CLKOUT 关闭,CLKOFF1 CLKOUT 输出禁止,保持高电平。

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

l SST 存储溢出处理。当SST1, 累加器中数据在存储到数据空间之前进行溢出调整。影响指令有:STH STL STLM DSTST||ADD ST||LD ST||MACR[R] ST||MAS[R] ST||MPY ST||SUB.步骤是:

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

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

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

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

3.3 . 4 累加器的存储操作

累加器中数据存储,AH AL 部分比较好办采用STH STL STLM即可完成。要存储AG 中的内容,则需要采用间接方式,如累加器A

 

4. 数据寻址

C54x 提供七类寻址方式:

l立即数寻址

l绝对地址寻址

l累加器寻址

l直接寻址

l间接寻址

l内存映象寄存器寻址

l堆栈寻址

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

 

4.1 绝对地址寻址

术语解释:dmad- 数据存储地址;pmad- 程序存储地址;PA -口地址;lk- 长整数。

绝对地址寻址包括四类:

l dmad 寻址

l pmad 寻址

l PA 寻址

l *(lk)寻址

4.1.1  d m a d 寻址

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

l MVDK Smem,dmad

l MVDM dmad,MMR

l MVKD dmad,Smem

l MVMD MMR,dmad

:MVKD SAMPLE,*AR5. 此处SAMPLE 即是dmad.

4.1.2  p m a d 寻址

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

l FIRS Xmem,Ymem,pmad

l MACD Smem,pmad,src

l MACP Smem,pmad,src

l MVDP Smem,pmad

l MVPD pmad,Smem

:MVPD TABLE,*AR7- 此处TABLE 即为pmad

4.1.3 PA 寻址

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

l PORTR PA,Smem

l PORTW Smem,PA

:PORTR FIFO,*AR5 此处FIFO 即为PA.

4.1.4 *(lk) 寻址

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

如:LD *(BUFFER),A 。使用这类指令的好处在于不用修改DP AR 值。但有一点要注意的是,这类指令不能用于重复执行单指令中(RPT RPTZ)。

 

4.2 直接寻址

在这类指令中,指令中的地址标号构成dmad 的低7 位(DP 方式)或作为正向偏移量(SP 方式),所以指令中地址标号不得超过7。 位采用DP SP, 方式由ST1 CPL 位决定。

CPL0, 采用DP ;方式CPL1 ,采用SP 方式。

4.2.1 DP 方式

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

4.2.2 SP 方式

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

 

4.3  间接寻址

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

4.3.1  S A R A M 的访问

SARAM 访问使用寄存器AR0AR7 ,其中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 由以下算法确定:

4.3.2 D A R A M 的访问

DARAM 访问使用辅助寄存器AR2AR5 用法见下表:

 

语法

功能

描述

*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 中内容

 

5. 中断系统

硬件和软件驱动都可以使C54x 产生中断软件中断,是指由程序指令引起的中断,这类指令有:INTR TRAP RESET。硬件中断可由外部硬件引发,或由片内外设内部引发,无论软件中断还是硬件中断都可分为可屏蔽中断和不可屏蔽中断。C54x 处理中断按以下三个步骤:

l接收中断请求

l响应中断

l执行中断服务程序

 

5.1 中断标志寄存器I F R( C 5 4 9 为例)

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

 

5.2 中断屏蔽寄存器I M R (C 5 4 9 为例)

要打开某个中断只需向IMR 中相应某位写1 ST1 INTM 位为中断总开关

 

5.3 中断位置与优先级(C 5 4 9 为例)

中断号

优先级

名称

位置

功能

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

-

SINT2

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

保留


阅读全文
1 0

相关文章推荐

img
取 消
img