DSP技术-第3章-TMS320C54x系列DSP硬件结构1课件_第1页
DSP技术-第3章-TMS320C54x系列DSP硬件结构1课件_第2页
DSP技术-第3章-TMS320C54x系列DSP硬件结构1课件_第3页
DSP技术-第3章-TMS320C54x系列DSP硬件结构1课件_第4页
DSP技术-第3章-TMS320C54x系列DSP硬件结构1课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.1

TMS320C54xDSP的特点与基本结构3.2

TMS320C54x

DSP的总线结构3.3

TMS320C54xDSP的CPU结构3.4

TMS320C54xDSP的存储器结构3.5

TMS320C54xDSP的片内外设第3章TMS320C54x系列DSP硬件结构2023/7/2613.1

TMS320C54xDSP的特点与基本结构TMS320C54x(简称’C54x)是TI公司1996年推出的新一代DSP,是为了实现低功耗、高速实时信号处理而专门设计的数字信号处理器,采用改进的哈佛结构,具有高度的操作灵活性和运行速度,适应于远程通信等实时嵌入式应用的需要,现已广泛地应用于无线电通信系统中。2023/7/262

技术指标

对于同一系列的DSP器件,各型号器件所采用的CPU是基本相同的。TMS320C54x系列芯片中各型号器件内部CPU结构完全相同,只是在时钟频率、工作电压、片内存储器容量大小、外围设备和接口电路的设计上有所不同。表3.1TMS320C54x系列DSP芯片的技术特征TMS320C54x的硬件结构图

PAGENDAGEN

系统控制程序地址生成器数据地址生成器

CPU乘法累加器算术/逻辑运算单元桶形移位器比较器外部存储器接口外部设备接口程序存储器数据存储器串行口并行口定时器计数器中断系统控制接口PABPBCABCBDABDBEABEB2023/7/265DSP原理及应用TMS320C54XDSP的主要特点1.CPU可实现高效的数据存储能力和数据处理能力。

CPU是DSP芯片中的核心部分,是用来实现数据信号处理运算和高速控制功能的部件。CPU的内部包括:(1)采用先进的多总线结构,通过1条程序总线、3条数据总线和4条地址总线来实现。可同时访问程序区和数据区,还可进行双操作数读操作,32位的双字读和并行的单字数据读/写能力。(2)40位算术逻辑运算单元ALU,包括1个40位桶形移位寄存器和2个独立的40位累加器A、B。2023/7/266(3)17×17位并行乘法器,与40位专用加法器相连,可用于进行非流水线的单周期乘法-累加运算。(4)比较、选择、存储单元(CSSU),可用于Viterbi译码器的加法-比较-选择运算。(5)指数编码器,是一个支持单周期指令EXP的专用硬件。可以在一个周期内计算40位累加器数值的指数。(6)集成Viterbi加速器,专门用于通信中Viterbi算法。(7)两个地址生成器,包括8个辅助寄存器和2个辅助寄存器算术运算单元(ARAU)。2023/7/267

2.存储器的组成(1)192K*16位的可选择空间(64K字程序存储空间、64K的数据存储空间和64K的I/O空间)。(2)片内ROM,可配置为程序/数据存储器(3)片内双寻址RAM(DARAM)(4)部分54x含片内单寻址RAM(SARAM)2023/7/268

3.专业的指令集可帮助快速实现复杂算法和优化编程(1)单指令重复和块指令重复操作。(2)块存储移动指令,用于程序和数据管理。(3)32位长整数操作指令。(4)同时读入2个或3个操作数的指令。(5)能并行存储和加载的算术指令。(6)条件存储指令。(7)快速中断返回指令。2023/7/269

4.执行指令速度快TMS320C54xDSP执行单周期定点指令时间可以为25/20/15/12.5/10ns,对应每秒指令数分别为40/66/100MIPS(百万条/秒)。2023/7/26105.电源可处于低功耗状态,可在3.3V和2.7V电压下工作,三个低功耗方式(IDLE1、IDLE2、IDLE3)可节省功耗,以便DSP更适合无线移动设备。6.智能外设可以很方便地实现与外部处理器的数据通信和对芯片的仿真与测试。2023/7/2611

3.2TMS320C54xDSP的总线结构TMS320C54x片内有8条16位总线,即4条程序/数据总线和4条地址总线。PB是程序总线,CB、DB和EB是数据总线,地址总线分别是:PAB、CAB、DAB和EAB。程序总线PB3条数据总线CB、DB和EB4条地址总线PAB、CAB、DAB和EAB2023/7/2612表3.2读/写访问时的总线占用说明3.3TMS320C54x的CPU结构CPU决定了DSP的运算速度和程序效率,为了能在一个指令周期内完成高速的算术运算,TMS320C54xCPU采用了流水线指令执行结构和相应的并行结构设计。TMS320C54xCPU的寄存器在存取数据时,可以使用寄存器寻址方式,以达到快速保存和恢复数据的目的。TMS320C54xCPU主要包括:一个40位的算术逻辑单元(ALU)、两个40位的累加器、一个桶形移位乘累加器、16位的暂存器(TREG)、16位的状态转移寄存器(TRN)、比较/选择/存储单元(CSSU)和指数编码器。一、算术逻辑运算单元一、算术逻辑运算单元ALU的两个输入操作数可以来自:

16位的立即数

数据存储器中的16位字

暂存器T中的16位字

数据存储器中读出的2个16位字

累加器A或B中的40位数

移位寄存器的输出。ALU通过指令识别输入数据。ALU的40位输出结果送入累加器A或B。二、累加器累加器A和B可作为ALU和乘法器/加法器单元的目的寄存器,累加器也能输出数据到ALU或乘法器/加法器中。累加器可分为三部分:保护位(或称前导位)、高位字和低位字。累加器A和B的唯一区别是累加器A的32~16位能被用作乘/加单元中乘法器的输入,而累加器B则不能。累加器A和累加器B的保护位用作算术运算时的空白头,目的是防止迭代运算中的溢出。AG、AH、AL、BG、BH和BL都是存储器映像寄存器(在存储空间中占有地址),由特定的指令将其内容放到16位数据存储器中,并从数据存储器中读出或写入32位累加器值。三、移位寄存器(桶形移位器)功能:把输入的数据进行0~31位的左移和0~15位的右移。输入数据来自数据总线DB的16位输入数据、CB的16位输入数据及任意一个40位累加器,并输出到ALU,经过MSW/LSW(最高有效字/最低有效字)写选择单元至EB总线。所移的位数就是指令中的移位数。移位数都是用二进制补码表示,正值表示左移,负值表示右移。移位数可由立即数、状态寄存器ST1中的累加器移位方式(ASM)字段和被指定为移位数值寄存器的暂存器T来决定。图3.5桶形移位寄存器四、乘累加单元TMS320C54xCPU乘累加单元由17×17bit的硬件乘法器、40位专用加法器、符号位控制逻辑、小数控制逻辑、0检测器、溢出/饱和逻辑和16位的暂存器(T)等部分组成,能够在一个周期内完成一次17*17bit的乘法和一次40位的加法。乘累加单元的一个输入操作数来自T寄存器、数据存储器或累加器A(31~16位);另一个则来自于程序存储器、数据存储器、累加器A(31~16位)或立即数。乘法器的输出加到加法器的输入端,累加器A或B则是加法器的另一个输入端,最后结果送往目的累加器A或B。图3.6乘累加单元结构图五、比较选择存储单元(CSSU)CSSU单元(其结构如图3.7所示)支持各种Viterbi算法并利用优化的片内硬件加速Viterbi的蝶形运算。加法由ALU单元完成,只要将ST1中的C16置1,所有的双字指令都会变成双16位算术运算指令,这样ALU就可以在一个机器周期内完成两个16位数的加/减法运算,其结果分别存放在累加器的高16位和低16位中。CSSU通过CMPS指令、一个比较器和16位的转移寄存器完成比较和选择操作。在比较选择中,比较指定累加器的两个16位部分并把比较结果移入TRN寄存器的第0位,比较结果也存入ST0寄存器的T0位。根据比较结果,选择累加器中较大的字(AH或AL)存入数据存储器。图3.7比较选择存储单元结构图六、指数编码器指数编码器是一个专用硬件,如下图所示,它专门用于单周期指令EXP。它可以求出累加器中的指数值,并以二进制补码形式存放于T中。指数编码器结构图七、CPU状态控制寄存器’C54X包括3个状态控制寄存器,分别是:状态寄存器ST0状态寄存器ST1处理器工作方式状态寄存器PMST。2023/7/26251.状态寄存器0(ST0)

主要反映处理器的寻址要求和计算机的运行状态。

ST0的结构:15—1312111098——0ST0:ARPTCCOVAOVBDPARPARP:辅助寄存器指针。用来选择使用单操作数间接寻址时的辅助寄存器AR0~AR7。ARPTCTC:测试/控制标志。

用来保存ALU测试操作的结果。TCCC:进位标志位。

用来保存ALU加减运算时所产生的进/借位。COVBOVAOVA/B:累加器A/B的溢出标志。

用来反映A/B是否产生溢出。OVBOVADPDP:数据存储器页指针。

用来与指令中提供的7位地址结合形成1个

16位数据存储器的地址。DP2023/7/26262.状态寄存器1(ST1)151413121110987654~0BRAFCPLXFHMINTM0OVMSXMC16FRCTCMPTASMBRAFCPLXFHMINTM0OVMSXMC16FRCTCMPTASMBRAF:块重复操作标志位。

用来指示当前是否在执行块重复操作。

BRAF=0

表示当前不进行重复块操作;

BRAF=1

表示当前正在进行块重复操作。CPL:直接寻址编辑方式标志位;

用来指示直接寻址选用何种指针。

CPL=0

选用数据页指针DP的直接寻址;

CPL=1

选用堆栈指针SP的直接寻址。XF:外部XF引脚状态控制位。

用来控制XF通用外部输出引脚的状态。

执行SSBX

XF=1

XF通用输出引脚为1;执行RSBX

XF=0

XF通用输出引脚为0。HM:保持方式位;响应HOLD信号时,指示

CPU是否继续执行内部操作。

HM=0

CPU从内部程序存储器取指,

继续执行内部操作。

HM=1

CPU停止内部操作。

INTM:中断方式控制位;

用于屏蔽或开放所有可屏蔽中断。

INTN=0

开放全部可屏蔽中断;

INTN=1

禁止所有可屏蔽中断。0:保留位,未被使用,总是读为0。OVM:溢出方式控制位;

用来确定累加器溢出时,对累加器的加载方式。

OVM=0

将运算的溢出结果直接加载到累加器中;

OVM=1

当正溢出时,将007FFFFFFFH加载累加器;

当负溢出时,将FF80000000H加载累加器。SXM:符号位扩展方式控制位;用来确定数据在运算之前是否需要符号位扩展。

SXM=0

数据进入ALU之前禁止符号位扩展;

SXM=1

数据进入ALU之前进行符号位扩展。C16:双16位/双精度算术运算方式控制位;

用来决定ALU的算术运算方式。

C16=0

ALU工作在双精度算术运算方式;

C16=1

ALU工作在双16位算术运算方式。FRCT:小数方式控制位;用来确定乘法器的运算方式。

FRCT=1

乘法器的输出左移一位,消除多余的符号位。CMPT:间接寻址辅助寄存器修正方式控制位;

用来决定ARP是否进行修正。

CMPT=0

在进行间接寻址单操作数时,不修正ARP;

CMPT=1

在进行间接寻址单操作数时,修正ARP。ASM:累加器移位方式控制位。

为某些具有移位操作的指令设定一个从-16~15范围内的移位值。BRAFCPLXFHMINTM0OVMSXMC16FRCTCMPTASM

主要反映处理器的寻址要求、计算初始状态的设置、I/O及中断的控制等。2023/7/2627在操作中,可以使用置位指令SSBX和复位指令RSBX对ST0和ST1的各个位进行单独置位(置1)或清零(置0)。例如:SSBXSXM ;SXM=1,允许符号扩展RSBXSXM ;SXM=0,禁止符号扩展APR、DP和ASM字段可以通过LD指令装载一个短立即数,ASM和DP也可以通过使用LD指令用数据存储器的值来装载。2023/7/26283.处理器工作方式状态寄存器PMSTSSTSMULCLKOFFDROMAVISOVLYMP/MCIPTR012345615~7

主要设定和控制处理器的工作方式和存储器的配置,反映处理器的工作状态。PMST寄存器内容可由存储器映射寄存器指令装载,如STM指令。中断向量指针CPU工作方式选择位RAM重复占位标志地址可见控制位数据ROM映射选择位时钟输出选择位乘法饱和方式位存储饱和位2023/7/2629八、寻址单元TMS320C54xDSP有两个地址发生器:程序地址生成单元PAGEN(ProgramAddressGenerationLogic)和数据地址生成单元DAGEN(DataAddressGenerationLogic)。1.程序地址生成单元(PAGEN)PAGEN包括5个寄存器:程序计数器PC、重复计数器RC、块重复计数器BRC、块重复起始地址RSA和结束地址REA(后四个寄存器合起来也叫重复寄存器),这些寄存器可支持程序存储器寻址。PAGEN、逻辑寄存器和流水线硬件进行地址生成和程序排队操作,形成了指令的流水线。流水线共有6级:(1)程序预取:将一条指令的地址(PC的内容)加载到程序地址总线(PAB)上。(2)程序取指:用取指得到的指令字加载PB。(3)解码:用PB的内容加载IR,解码IR的内容。(4)访问:将指令的读操作数地址送到数据地址总线(DAB/CAB)上。(5)读操作数:从数据总线(DB和CB)读数据操作数。(6)执行:执行指令,用写数据加载EB。2023/7/26312.数据地址生成单元(DAGEN)

包括辅助寄存器指针ARP、循环缓冲区大小寄存器BK、DP、堆栈指针寄存器SP、8个辅助寄存器(AR0~AR7)和2个辅助寄存器算术单元(ARAU0和ARAU1)。8个辅助寄存器和2个辅助寄存器算术单元一起可进行16位无符号数算术运算,支持间接寻址,AR0~AR7由ST0中的ARP来指定。

3.4TMS320C54xDSP的存储器结构TMS320C54x的存储空间为192K字,分成3个可选择的存储空间:64K的程序存储空间、64K的数据存储空间和64K的I/O空间。这个系列的芯片都有随机存储器(RAM)和只读存储器(ROM)。其中RAM有两种:单寻址RAM(SARAM)和双寻址RAM(DARAM)。DARAM:能够在一个机器周期内执行4次存储器操作:1次取址、读2个操作数和写1个操作数。

使用片内存储器优点:因为无须等待周期故性能更高;比外部存储器成本低、功耗小。

当片内存储器不能满足系统设计的存储要求时,就需要扩展片外存储器。

2023/7/2633表3.3常用的TMS320C54xDSP器件的片内存储器配置

2023/7/2634

TMS320C54x通过3个状态位控制(PMST中)程序存储器和数据存储区的“使能”和“禁止”:MP/MC位:若MP/MC=0,则片内ROM安排到程序空间;若MP/MC=1,则片内ROM不安排到程序空间。OVLY位:若OVLY=1,则片内RAM安排到程序和数据空间;若OVLY=0,则片内RAM只安排在数据存储空间。DROM位:若DROM=1,则部分片内ROM安排到数据空间;若DROM=0,则片内ROM不安排到数据空间。DROM的用法与MP/MC的用法无关。2023/7/2635’C5402数据存储空间结构

0000H~0050H

存储器映像寄存器

0060H~007FH

暂存器SPRAM0080H~3FFFH

内部DARAM4000H~EFFFH

外部存储器DROM=1

使用内部ROM

F000H~FEFFH

内部ROMFF00H~FFFFH

保留DROM=0

不使用内部ROM

F000H~FEFFH

外部存储器DROM=1保留

DROM=0外部存储器FF00HFFFFHDROM=1内部ROMDROM=0外部存储器F000HFEFFH外部存储器4000HEFFFH内部DARAM(16K字)0080H3FFFH暂存器SPRAM0060H007FH存储器映像寄存器0000H005FH数据存储空间地址存储器映像寄存器暂存器SPRAM内部DARAM(16K字)外部存储器DROM=1内部ROM

DROM=1保留存储器映像寄存器暂存器SPRAM内部DARAM(16K字)外部存储器DROM=1内部ROM

DROM=1保留DROM=1保留

DROM=0外部存储器DROM=1内部ROMDROM=0外部存储器外部存储器内部DARAM(16K字)暂存器SPRAM存储器映像寄存器2023/7/2636内部RAM前1K的配置:0380H~03FFH0300H~037FH0280H~02FFH0200H~027FH0180H~01FFH0100H~017FH0080H~00FFH0060H~007FH0200H~005FH0000H~001FH存储器映像的CPU寄存器存储器映像的CPU寄存器,特殊功能寄存器0000~001FH:特殊功能寄存器存储器映像的外设寄存器存储器映像的外设寄存器0020~005FH:外设寄存器暂存器SPRAM(DP=0)暂存寄存器SPRAM0060~007FH:暂存寄存器DARAM(DP=7)DARAM(DP=6)DARAM(DP=5)DARAM(DP=4)DARAM(DP=3)DARAM(DP=2)DARAM(DP=1)0080~03FFH:7个DARAM数据块。2023/7/2637

为了便于CPU的并行操作,提高芯片的高速处理能力,从0080H开始,按每80H(128)个存储单元为一个块,将DARAM分成若干个数据块。

分块以后,用户可以在同一个周期内从同一块DARAM中取出两个操作数,并将数据写入到另一块DARAM中。2023/7/2638存储器映像寄存器

在’C54x的数据存储空间中,前80H个单元(数据页0)包含有CPU寄存器、片内外设寄存器和暂存器。这些寄存器全部映射到数据存储空间,称作存储器映像寄存器MMR。存储器映像寄存器MMR:

CPU寄存器——特殊功能寄存器;

片内外设寄存器;

暂存器SPRAM。

2023/7/2639

特殊功能寄存器

功能:主要用于程序的运算处理和寻址方式的选

择和设定。地址范围:0000H~001FH。

’C5402的CPU寄存器共有27个,CPU访问这些寄存器时,不需要插入等待时间。

外设寄存器

功能:用来控制片内外设电路的状态和存放数据。

地址范围:0020H~005FH。

包括串行口通信控制寄存器组、定时器定时控制寄存器组、时钟周期设定寄存器组等。暂存器SPRAM

功能:用来暂存变量。地址范围:0060H~007FH。2023/7/2640第2章TMS320C54x的硬件结构

地址符号寄存器名称地址符号寄存器名称00H

IMR中断屏蔽寄存器10HAR0辅助寄存器001H

IFR中断标志寄存器11H

AR1辅助寄存器102H

保留(用于测试)12HAR2辅助寄存器203H保留(用于测试)13H

AR3辅助寄存器304H保留(用于测试)14H

AR4辅助寄存器405H保留(用于测试)15HAR5辅助寄存器506H

ST0状态寄存器016H

AR6辅助寄存器607H

ST1状态寄存器117H

AR7辅助寄存器708H

AL累加器A低字(15~0位)18H

SP堆栈指针09H

AH累加器A高字(31~16位)19H

BK循环缓冲区长度寄存器0AH

AG累加器A保护位(39~32位)1AH

BRC块重复计数器0BH

BL累加器B低字(15~0位)1BH

RSA块重复起始地址寄存器0CH

BH累加器B高字(31~16位)1CHREA块重复结束地址寄存器0DH

BG累加器B保护位(39~32位)1DHPMST处理器模式状态寄存器0EH

T暂存寄存器1EHXPC程序计数器扩展寄存器0FH

TRN状态转移寄存器1FH保留TMS320C54x存储器映像CPU寄存器(特殊功能寄存器)2023/7/2641DSP原理及应用2.存储器映像寄存器

片内外设寄存器存在于一个专用的外设总线结构中,它可以发送数据至外设总线或者从外设中接收数据。设置或清除寄存器的控制位可以激活、屏蔽或者重新配置外设状态。

不同型号的芯片具有不同的片内外设寄存器。’C5402DSP外设的存储器及相应的地址地址符号寄存器名称地址符号寄存器名称20H

BDRR0缓冲串行口0数据接收寄存器35HTRAD

TDM串行口接收地址寄存器

21HBDXR0缓冲串行口0数据发送寄存器36~37H保留22H

BSPC0缓冲串行口0控制寄存器38HAXR0

ABU0发送地址寄存器23H

BSPCE0缓冲串行口0控制扩展寄存器39H

BKX0

ABU0发送缓冲范围寄存器24H

TIM定时设定寄存器3AH

ARR0

ABU0接收地址寄存器25H

PRD定时周期寄存器3BHBKR0

ABU0接收缓冲范围寄存器26H

TCR定时控制寄存器3CH

AXR1

ABU1发送地址寄存器27H保留3DH

BKX1

ABU1发送缓冲范围寄存器28HSWWSR软件等待状态寄存器3EH

ARR1

ABU1接收地址寄存器29HBSCR多路开关控制寄存器3FH

BKR1

ABU1接收缓冲范围寄存器2A~2BH

保留40H

BDRR1缓冲串行口1数据接收寄存器2CH

HPIC主机口(HPI)控制寄存器41H

BDXR1缓冲串行口1数据发送寄存器2D~2FH

保留42HBSPC1缓冲串行口1控制寄存器30H

TRCV

TDM串行口数据接收寄存器43HBSPCE1缓冲串行口1控制扩展寄存器31HTDXR

TDM串行口数据发送寄存器44~57H保留32HTSPCTDM串行口控制寄存器58HCLKMD时钟模式寄存器33H

TCSR

TDM串行口通道选择寄存器

59~5FH

保留34H

TRTA

TDM串行口接收发送寄存器

2023/7/2642DSP原理及应用I/O存储器

’C54x除了程序和数据存储空间外,还提供了一个具有64K字的I/O空间。

主要用于对片外设备的访问。可以使用输入指令PORTR和输出指令PORTW对I/O空间寻址。

在对I/O空间访问时,除了使用数据总线和地址总线外,还要用到IOTRB、IS和I/W控制线。

IOTRB和IS:用于选通I/O空间;

I/W:用于控制访问方向。

2023/7/2643

3.5TMS320C54xDSP的片内外设

’C54x器件除了提供哈佛结构的总线、功能强大的CPU以及大容量的存储空间外,还提供了必要的片内外部设备。

不同型号的’C54x芯片,所配置的片内外设有所不同,这些片内外设主要包括:

①通用I/O②中断系统③定时器④时钟发生器⑤软件可编程等待状态发生器(SWWSR)⑥可编程的组合切换逻辑⑦串行口⑧直接存储器访问(DMA)控制器⑨主机接口HPI⑩外部总线接口2023/7/26441.通用I/O引脚

’C54x芯片为用户提供了两个软件控制的通用I/O引脚。

分支转移控制输入引脚BIO

外部标志输出引脚XF

BIO:分支转移控制输入引脚

用来监控外部设备的运行状态。

在实时控制系统中,通过查询此引脚控制程

序流向,以避免中断引起的失控现象。

XF:外部标志输出引脚

用于程序向外设传输标志信息。

通过此引脚的置位或复位,可以控制外设

的工作。是状态寄存器ST1中的位。2023/7/26452.中断系统中断是指DSP暂时停止原程序执行转而为外部设备服务(执行中断服务程序),并在服务完成后自动返回原程序执行的过程。CPU在和外设交换信息时通过中断就可以避免不必要的等待和查询,从而提高CPU的工作效率,所以中断系统是衡量CPU性能好坏的一项重要指标。(1)中断类型可屏蔽中断

指可用软件来屏蔽或开放的中断,即通过对中断屏蔽寄存器(IMR)中的相应位和状态寄存器(ST1)中的中断允许控制位INTM编程来屏蔽或开放中断。

MS320C54xDSP最多可支持16个用户可屏蔽中断。非屏蔽中断

指通过软件改变IMR和ST1中的位已不能影响中断是否被屏蔽,TMS320C54x对这类中断总是立即响应的。TMS320C54x的非屏蔽中断包括:所有的软件中断、由芯片的复位引脚引起的中断和由芯片的外中断引脚引起的中断。(2)中断向量TMS320C54xDSP给每个中断源都分配一个确定的偏移地址,叫中断向量,中断向量中存放中断子程序的入口地址,所有的中断向量放在一起就是中断向量表。在TMS320C54x中,中断向量地址的产生是由PMST寄存器中9位的中断向量指针(IPTR)形成中断向量地址的高9位,中断向量序号乘以4(左移2位),形成中断向量地址的低7位,二者连接并组成16位的中断向量地址。TMS320C54xDSP内部有两个中断管理寄存器:中断标志寄存器和中断屏蔽寄存器。表3.4TMS320C54xDSP中断向量表(3)中断处理流程TMS320C54x中断处理分为三个阶段:接受中断请求、响应中断和执行中断服务程序。中断处理流程如下2定时器

用于事件计数和产生相应中断。在工业应用中,计数器和定时器常用于检测和控制中的时序协调及控制。

’C54x的片内定时器是一个可编程的定时器,可用于周期地产生中断。定时器的最高分辨率为处理器的CPU时钟速度。通过带4位预定标器的16位计数器,可以获得较大范围的定时频率。2023/7/2652

定时器主要由定时寄存器TIM、定时周期寄存器PRD、定时控制寄存器TCR及相应的逻辑控制电路组成。

寄存器TIM、PRD和TCR是存储器映像寄存器,地址分别为0024H、0025H和0026H。(1).定时器的组成

2023/7/2653图3.21TMS320C54xDSP片内定时器结构

定时寄存器TIM逻辑控制电路定时周期寄存器PRD定时控制寄存器TCR16位减1计数器。地址:0024H

用来存放定时时间。地址:0025H存放定时器的控制位和状态位。地址:0026H。TCR能决定定时器的工作模式,即是连续工作,仅计数一次,还是停止计数。

用来控制定时器协调工作。2023/7/2655

16位存储器映像寄存器,包含定时器的控制位和状态位。定时控制寄存器TCR

15~1211109~6543~0TCR0026h保留

Soft

Free

PSC

TRB

TSS

TDDR

软件调试控制位

预定标计数器

重新加载位停止状态位分频系数2023/7/2656

TDDR:定时器分频系数,用来对CLKOUT进行分频,以改变定时周期。当PSC减到0后,以TDDR中的数加载PSC。

TSS:定时器停止状态位,用于停止或启动定时器复位时,TSS位清0,定时器立即定时。TSS=0,定时器启动工作;TSS=1,定时器停止工作。2023/7/2657

TRB:定时器重新加载位,用来复位片内定时器。当TRB置1时,以PRD中的数加载TIM,以及以TDDR中的值加载PSC。

PSC:定时器预定标计数器,其标定范围为1~16。当PSC减到0后,TDDR位域中的数加载到PSC,TIM减1。2023/7/2658

Free、Soft:软件调试控制位。Free和Soft位结合使用,用来控制调试程序断点操作情况下的定时器工作状态。Soft

Free

定时器状态

0

0

定时器立即停止工作

1

0

当计数器减至0时停止工作

X

1

定时器继续工作

保留:读成0。

2023/7/2659

注:用定时器可以产生系统所需要的定时时钟信号。有两种方法产生定时时钟信号:其一,直接利用TOUT信号作为外围电路的时钟源;其二,利用定时器中断产生系统定时。

在C5402内部有两个完全相同的定时器:定时器0和定时器1。定时器1的输出信号TOUT1只有在禁止HPI-8片上外设时才能使用。2023/7/2660

(2).定时器的定时时间公式为:

Tt=CLKOUT×(TDDR+1)×(PRD+1)其中:Tt为定时周期,单位是s(秒);CLKOUT为时钟周期,即主频的倒数。

定时器的最大定时周期为:Tt=CLKOUT×(65535+1)×(15+1)=220×CLKOUT=1048576×CLKOUT当主频为100MHz时,则CLKOUT=1/100MHz=10-8s=10-5ms时,因此Tt=10.48576ms。2023/7/2661

(3).举例:用定时器中断在主频为4MHz的应用系统中,产生脉冲周期为8ms的输出信号。解:因为输出的周期为8ms,所以定时中断周期为4ms,每中断一次,输出端电平取反一次。

先计算CLKOUT:CLKOUT=1/(4MHz)=0.25×10-6s

再计算TDDR和PRD:Tt=CLKOUT×(TDDR+1)×(PRD+1)即:(TDDR+1)×(PRD+1)=Tt÷CLKOUT

=4×10-3÷0.25×10-6=16000=1600×10∴TDDR=9,PRD=15992023/7/2662

(4).定时器初始化步骤如下:

TCR的TSS位置1,关闭定时器,停止定时;

②装载PRD值;

③装入TCR中的TDDR值。

④设置TSS=0(启动定时器)和TRB=1(装载PRD到TIM,装载TDDR到PSC)。2023/7/2663

voidset_t0(){……*(unsignedint*)TCR=?;//停止T0定时器记数*(unsignedint*)PRD=?;//设置T0的周期寄存器*(unsignedint*)TCR=?;//允许T0定时器计数……}2023/7/2664例题:定时器C5402内部有两个完全相同的定时器:定时器0(Timer0)和定时器1(Timer1),现在需要用定时器1产生5ms定时,计算TDDR1和PRD1。并用C语言语句写出初始化步骤。(设系统时钟频率为100MHZ)2023/7/2665Tt=CLKOUT×(TDDR1+1)×(PRD1+1)

(TDDR1+1)×(PRD1+1)=Tt/CLKOUT=5×10(-3)×100×10(6)=500000=(49999+1)×(9+1) 所以PRD1=49999,TDDR1=92023/7/26

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论