DSP课件乔瑞萍第6章TMS320C54x片内外设.ppt

上传人:sccc 文档编号:5335155 上传时间:2023-06-27 格式:PPT 页数:79 大小:926.01KB
返回 下载 相关 举报
DSP课件乔瑞萍第6章TMS320C54x片内外设.ppt_第1页
第1页 / 共79页
DSP课件乔瑞萍第6章TMS320C54x片内外设.ppt_第2页
第2页 / 共79页
DSP课件乔瑞萍第6章TMS320C54x片内外设.ppt_第3页
第3页 / 共79页
DSP课件乔瑞萍第6章TMS320C54x片内外设.ppt_第4页
第4页 / 共79页
DSP课件乔瑞萍第6章TMS320C54x片内外设.ppt_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《DSP课件乔瑞萍第6章TMS320C54x片内外设.ppt》由会员分享,可在线阅读,更多相关《DSP课件乔瑞萍第6章TMS320C54x片内外设.ppt(79页珍藏版)》请在三一办公上搜索。

1、第6章 TMS320C54x片内外设,6.1 时钟发生器 6.2 中断系统 6.3 定时器 6.4 主机接口 6.5 串行口,6.1 时 钟 发 生 器,6.1.1 时钟电路 时钟发生器为TMS320C54x提供时钟信号,其包括一个内部振荡器和一个锁相环电路。时钟发生器可以由内部振荡电路或外部时钟源驱动,这两种驱动方式如图6-1所示。,图6-1 时钟电路,内部振荡电路驱动方式:将一个晶体跨接到X1和X2/CLKIN引脚两端,使内部振荡器工作,图中的电路工作在基波方式,建议C1和C2用10 pF。如果工作在谐波方式,则还要加一些元件。外部时钟源驱动方式:将一个外部时钟信号直接加到X2/CLKIN

2、引脚(X1空着不接)。硬件配置的PLL(如TMS320C541、TMS320C542、TMS320C543、TMS320C545和TMS320C546);软件可编程PLL(如TMS320C545A、TMS320C546A和TMS320C548)。,1硬件配置的PLL 通过设定TMS320C54x的3个引脚(CLKMD1、CLKMD2和CLKMD3)的状态来完成PLL的配置。时钟方式的配置方法如表6-1所示。,表6-1 时钟方式的配置方法,2软件可编程PLL 软件可编程PLL是一种高度灵活的时钟控制方式,它的时钟定标器提供各种时钟乘法器系数,并能直接接通和关断PLL。PLL的锁定定时器可以用于延

3、迟转换PLL的时钟方式,直到锁定为止。通过软件编程,可以选用以下两种时钟方式中的一种:,PLL方式。输入时钟(CLKIN)乘以0.2515共31个系数中的一个系数。这是靠PLL电路来完成的。DIV(分频器)方式。输入时钟(CLKIN)除以2或4。当采用DIV方式时,所有的模拟电路,包括PLL电路都关断,以使功耗最小。软件可编程PLL通过读/写时钟方式寄存器(CLKMD)来完成。,6.1.2 时钟模块编程 软件可编程PLL可以对时钟方式寄存器(CLKMD)编程加载,以配置成所要求的时钟方式。CLKMD寄存器是16位存储器映像寄存器,地址为0058H。它是用来定义PLL时钟模块中的时钟配置。CLK

4、MD的结构如图6-2所示。,图6-2 CLKMD的结构,表6-2 时钟方式寄存器(CLKMD)各位段的功能,表6-3 PLL 的 乘 数,6.1.3 低功耗(节电)模式 TMS320C54x器件有四种节电模式,此时,可以通过停止DSP内部的不同时钟,使TMS320C54x的核心进入休眠状态,降低功耗,且能保持CPU中的内容。当节电模式结束时,唤醒DSP可以连续工作下去。通过执行IDLE1、IDLE2和IDLE3三条指令,或使信号为低电平,可使处理器进入不同的节电模式。表6-4列出了四种节电特性。,表6-4 四种节电工作方式,1)IDLE1模式 IDLE1暂停所有的CPU活动,但片内外设仍在工作

5、。片内外设如串口定时器等的中断可唤醒CPU结束节电工作方式。2)IDLE2模式 IDLE2暂停CPU和片内外设的工作。由于片内外设也停止了工作,不能产生中断,因而其唤醒方式不同于IDLE1,但是,其功耗却明显降低。,3)IDLE3模式 IDLE3模式类同于IDLE2,它使片内锁相环PLL暂停工作,这样就完全使TMS320C54x停止了工作。与IDLE2相比,IDLE3更显著地降低了功耗。4)HOLD模式 HOLD模式是另外一种节电模式,它使外部地址总线、数据总线和控制总线进入高阻状态,也可以使CPU暂停工作,这取决于HM位的状态。,6.2 中 断 系 统,6.2.1 中断结构 1中断类型 TM

6、S320C54x中断既支持硬件中断,也支持软件中断。软件中断由程序指令引起,如INTR、TRAP或RESET。硬件中断有外部硬件中断和内部硬件中断。外部硬件中断由外部中断口的信号触发;内部硬件中断由片内外围电路的信号触发。软件中断不分优先级,硬件中断有优先级。,当多个硬件中断同时请求时,TMS320C54x根据优先级别的不同对其进行服务,TMS320C54x的硬件中断优先级见附录3,其中,1为最高优先级。,无论是硬件中断还是软件中断,TMS320C54x的中断可分为如下两大类。1)可屏蔽中断 可屏蔽中断是可用软件来屏蔽或开放的中断,即通过对中断屏蔽寄存器(IMR)中的相应位和状态寄存器(ST1

7、)中的中断允许控制位INTM编程来屏蔽或开放该中断。TMS320C54x最多可以支持16个用户可屏蔽中断(SINT15SINT0),但有的处理器只用了其中的一部分。有些中断有两个名称,如TMS320C541。,2)非可屏蔽中断 非可屏蔽中断是不能用软件来屏蔽的中断,不受IMR和INTM位的影响。TMS320C54x对这一类中断总是响应的,并从主程序转移到中断服务程序。,2中断管理寄存器 1)中断标志寄存器 中断标志寄存器(IFR,Interrupt Flag Register)是一个16位存储器映像的CPU寄存器,位于数据存储器空间内,地址为0001H。当一个中断出现的时候,TMS320C54

8、x DSP收到了一个相应的中断请求(中断挂起),此时,IFR中相应的中断标志位为1。TMS320C541 IFR的位定义如图6-3所示,各位对应的可屏蔽中断源的说明见附录3。,6-3 图TMS320C541的位定义,2)中断屏蔽寄存器 在状态寄存器ST1中的第11位INTM是中断方式位,该位是可屏蔽中断的总允许控制位。INTM=0时,开放全部可屏蔽中断;INTM=1时,禁止所有可屏蔽中断。INTM不修改中断标志寄存器(IFR)和中断屏蔽寄存器(IMR,Interrupt Mask Register)。,图6-4 TMS320C541 IMR的位定义,3中断向量 TMS320C54x给每个中断源

9、都分配有一个确定的中断向量偏移地址(见附录3),该地址为可屏蔽中断服务程序进入各中断源服务程序的偏移地址,这样以来,可判断中断源的身份,并进入对应中断源的服务程序。,图6-5 中断向量地址的形成,6.2.2 中断流程 1接受中断请求 当发生硬件和软件指令请求中断时,IFR中相应的标志位置为有效电平。无论DSP是否响应中断,该标志都处于有效电平。在相应中断发生时,该标志自动清除。硬件中断有外部和内部之分。外部硬件中断由外部接口信号自动请求,内部硬件中断由片内外设信号自动请求。软件中断都是由程序中的指令INTR、TRAP和RESET产生的。,(1)INTR K:该指令可启动TMS320C54x的任

10、何中断。(2)TRAP K:TRAP与INTR的不同之处是TRAP中断时,不需要设置INTM位。(3)RESET:该指令可在程序的任何时候发生,它使处理器返回一个已知状态。,2响应中断 对于软件中断和非可屏蔽中断,CPU立即响应。如果是可屏蔽中断,只有满足以下条件才能响应:(1)优先级别最高。(2)ST1中的INTM位为0,允许可屏蔽中断。(3)IMR中的相应位为1,允许可屏蔽中断。,3执行中断服务程序 响应中断之后,CPU将执行下列操作:(1)将PC值(即返回地址)压入堆栈。(2)将中断向量的地址装入PC;将程序引导至中断服务程序ISR。(3)现场保护,将某些要保护的寄存器和变量压入堆栈。,

11、(4)执行中断服务程序ISR。(5)恢复现场,以逆序将所保护的寄存器和变量弹出堆栈。(6)中断返回,从堆栈弹出返回地址加载到PC。(7)继续执行被中断的程序。,图6-6 中断操作流程图,6.2.3 中断编程 第4章的例20就是一个简单完整的中断程序模板,中断过程如图6-7所示。利用软件仿真外部硬件中断int2,程序中的开放中断和中断服务程序片段如下:,STM#0,SWWSR;开中断 RSBX INTM STM#04H,IMRINT_2:SFTA A,8;中断服务程序 RETE,图6-7 中断过程,INT_2引起标准中断矢量表程序相应的int2变化如下:*中断矢量表程序*.title vecto

12、rs.asm;定义段的名称为vectors.ref start;程序入口.ref INT_2.sect vectors,reset:B start;复位引起的中断 nop nopnmi:RETE;使能NMI中断 NOP NOP NOP,sint17.space 4*16;程序内部的软件中断sint18.space 4*16sint19.space 4*16sint20.space 4*16sint21.space 4*16sint22.space 4*16sint23.space 4*16sint24.space 4*16sint25.space 4*16,sint26.space 4*16s

13、int27.space 4*16sint28.space 4*16sint29.space 4*16sint30.space 4*16int0:RETE;外部中断0 NOP NOP NOP,int1:RETE;外部中断1 nop nop nopint2:b INT_2;外部中断2 nop nop nop,tint:RETE;定时器中断 NOP NOP NOPrint0:RETE;串口0接收中断 NOP NOP NOP,xint0:RETE;串口0发送中断 NOP NOP NOPrint1:RETE;串口1接收中断 NOP NOP NOP,xint1:RETE;串口1发送中断 NOP NOP N

14、OPInt3:RETE;外部中断3 nop nop nop.end,6.3 定 时 器,6.3.1 定时器结构 定时器主要由3个寄存器所组成:定时器寄存器(TIM,Timer Registers)、定时器周期寄存器(PRD,Timer Period Registers)和定时器控制寄存器(TCR,Timer Control Registers)。这3个寄存器都是16位存储器映像寄存器,在数据存储器中的地址分别为0024H、0025H和0026H(见附录4)。TIM是一个减1计数器;PRD中存放时间常数;TCR中包含有定时器的控制位和状态位。定时器的功能框图如图6-8所示。,图6-8 定时器的功

15、能框图,图6-8中含一个16位的主计数器(TIM)和一个4位预定标计数器(PSC)。TIM从周期寄存器PRD加载,PSC从周期寄存器TDDR加载。定时器的典型操作顺序为(1)在每个CLKOUT脉冲后PSC减1,直到它变为0。(2)在下一个CLKOUT周期,TDDR加载新的除计数值到PSC,并使TIM减1。,(3)以同样方式,PSC和TIM连续进行减操作,直到TIM减为0。(4)在下一个CLKOUT周期,将定时器中断信号(TINT)送到CPU,同时又用另一脉冲送到TOUT引脚,把新定时器计数值从PRD加载到TIM,并使PSC再次减1。因此,定时器中断的速率为,TINT速率=,6.3.2 定时器编

16、程 定时器可访问的寄存器有三个:TIM、PRD和TCR。TIM和PRD这两种寄存器共同工作,提供定时器的当前计数值。读TIM可以知道定时器中的当前值。在正常情况下,当TIM减到0后,PRD中的时间常数自动地加载到TIM。当系统复位(=1)或定时器复位(TRB=1)时,PRD中的时间常数重新加载到TIM。,控制寄存器(TCR)包含的控制位有下列功能:控制定时器模式;指定定时器预先定标计数器的当前计数值;重新加载定时器;启动、停止定时器;定义定时器的分频系数。TCR的结构如图6-9所示。,图6-9 TCR的结构,TCR中各控制位和状态位的功能描述如下:TDDR(Timer Divide-Down

17、Ratio):定时器分频系数。按此分频系数对CLKOUT进行分频,以改变定时周期。当PSC减到0后,以TDDR中的数重新加载PSC。复位时,TDDR各位清零。TSS(Timer Stop Status):定时器停止状态位,用于停止或启动定时器。TSS=0时,定时器启动工作;TSS=1时,定时器停止工作,关闭定时器可以减小器件的功耗。复位时,TSS位清零,定时器立刻开始定时。,TRB(Timer Reload):定时器重新加载位,用来复位片内定时器。当TRB置1时,TIM装入PRD中的数,并且PSC装入TDDR中的值。TRB总是读成0。PSC(Timer Prescaler Counter):定

18、时器预定标计数器。当PSC减到0后,PSC装入TDDR中的值,并且TIM减1。PSC可被TCR读取,但不能直接写入。Soft、Free:这两位结合起来使用,以仿真在HLL调试程序遇到断点时定时器的状态。当Soft=0、Free=0时,定时器立即停止工作;当Soft=1、Free=0且计数器减到0时,定时器停止工作;当Soft=x、Free=1时,定时器继续运行。,Res:保留位读成0。读TIM和TCR要用两条指令,在两次读之间有可能发生读数变化。因此,若需要精确的定时测量,就应当在读这两值之前先关闭定时器。复位时,TIM和PRD都置成最大值(FFFFH),定时器的分频系数TCR中的TDDR置0

19、,定时器启动。,定时器初始化步骤及其所对应的指令如下:(1)将TCR中的TSS位(停止状态位)置1,关闭定时器。STM#0010H,TCR(2)加载PRD。STM#0100H,PRD;TINT周期=CLKOUT(TDDR+1)(PRD+1)(3)重新加载TCR(使TDDR初始化;令TSS位为0,以接通CLKOUT;重新加载位TRB位置1,以使TIM减到0后重新加载PRD),启动定时器。,STM#0C20H,TCR;SOft=1,Free=1,定时器遇到断点后继续进行若要开放定时中断,必须(假定INTM=1)做到以下几点:将IFR中的TINT位置1,清除尚未处理完的定时器中断。STM#0008H

20、,IFR 将IMR中的TINT位置1,开放定时器中断。STM#0008H,IMR 将STI中的INTM位置0,从整体上开放中断。RSBXINTM,6.4 主 机 接 口,6.4.1 HPI结构及其工作方式 HPI主要由五个部分组成,如图6-10所示。(1)HPI存储器(DARAM):用于TMS320C54x与主机间传送数据。(2)HPI地址寄存器(HPIA):由主机对其直接访问,存放当前寻址HPI存储单元的地址。,图6-10 主机接口的组成框图,(3)HPI数据锁存器(HPID):由主机对其直接访问,存放当前进行读/写的数据。(4)HPI控制寄存器(HPIC):TMS320C54x和主机都能对

21、其直接访问,用于主处理器与DSP相互握手,实现相互中断请求。(5)HPI控制逻辑:用于处理HPI与主机之间的接口信号。,6.4.2 HPI接口设计 HPI提供灵活而方便的接口,接口外围电路简单。TMS320C54x HPI与主机相连时,几乎不需要附加其他的逻辑电路。图6-11给出了其连接框图。HPI接口信号可分为以下几类:数据总线:HD0HD7,即数据总线宽度为8位。地址总线。控制线。握手线。,图6-11 TMS320C54x HPI与主机的连接框图,6.4.3 HPI控制寄存器 HPI有三个可访问的寄存器:HPIA、HPID和HPIC。主机要通过HPI接口访问TMS320C54x片内RAM,

22、首先要初始化HPIC,然后设置HPIA,最后读写TMS320C54x的片内RAM,对HIPD进行操作。HPIC是一个16位存储器映像寄存器,在数据存储器空间的地址为002CH。HPIC中有4个状态位控制着HPI的操作,各位的含义如下。,BOB:字节选择位。SMOD:寻址方式选择位。DSPINT:主机向TMS320C54x发出中断位。HINT:TMS320C54x向主机发出中断位。,图6-12 主机和TMS320C54x访问HPIC寄存器的结果(a)主机读HPIC;(b)主机写HPIC;(c)TMS320C54x读HPIC;(d)TMS320C54x写HPIC,6.5 串 行 口,6.5.1 串

23、行口概述 TMS320C54x具有高速、全双工串行口,可以与串行设备(如编解码器和串行A/D转换器)直接通信,也可用于多处理器系统中处理器之间的通信。,所谓串行通信,就是发送器将并行数据逐位移出成为串行数据流,接收器将串行数据流以一定的时序和一定的格式呈现在连接收/发器的数据线上。TMS320C54x有三种类型的串行口:标准同步串行口(SPI)、缓冲串行口(BSP)和时分多路串行口(TDM)。标准同步串行口(SPI,Serial Port Interface):有两个独立的缓冲器用于传送数据,接收缓冲器和发送缓冲器,每个缓冲器有一条可屏蔽的中断线。串行数据可以按8位字或16位字转换。,缓冲串行

24、口(BSP,Buffered Serial Port):在标准同步串行口的基础上增加了一个自动缓冲单元(ABU)。BSP是一种增强型标准串行口,它是全双工的,并有两个可设置大小的缓冲区。缓冲同步串口支持高速的传送,并减少中断服务的次数。ABU利用独立于CPU的专用总线,让串行口直接读/写TMS320C54x的接收/发送缓冲区。时分多路复用串行接口(TDM,Time-Division Multiplexed):允许同一个串口以分时方式传送多路数据,TDM为多处理器通信提供了一种简单而有效的方式。,6.5.2 串行口的组成框图 标准同步串行口由16位发送数据寄存器(DXR)、接收数据寄存器(DRR

25、)、发送移位寄存器(XSR)、接收移位寄存器(RSR)以及控制电路组成。每个串行口的发送和接收部分都有与之相关联的时钟、帧同步脉冲以及数据信号。其组成如图6-13所示。TMS320C54x通过3条信号线连接到串口。图6-14给出了两个TMS320C54x进行串行通信的硬件连接图。下面将介绍串行口接收和发送数据的过程。,CPU发送数据时,先将要发送的数据写到DXR上。若上一个字已串行传送到串行发送数据引脚信号(DX)引脚上,此时,XSR是空的,则将DXR中的数据拷贝到XSR。在发送时的帧同步信号(FSX)和发送时钟信号(CLKX)的作用下,将XSR中的数据送到DX引脚输出。接收数据时,在接收时的

26、帧同步信号(FSR)和接收时钟信号(CLKR)的作用下,将来自 串行数据信号(DR)引脚的数据先移位到RSR,再从RSR拷贝至DRR,CPU从DRR中读取数据。,图6-13 串行口的组成框图,图6-14 串行口传送数据连接图,6.5.3 串行口编程 串行口可通过访问3个寄存器工作,这3个寄存器均为16位存储器映射寄存器,分别为:串行口控制寄存器(SPC)、发送数据寄存器(DXR)和接收数据寄存器(DRR)。它们在数据空间的地址见附录4。DXR和DRR可在串行操作时用于传送和获取数据;而TMS320C54x串行口的操作则是由SPC控制的。SPC的结构如图6-15所示。,图6-15 SPC的结构,

27、SPC中各位的功能描述如下:Free、Soft:仿真控制位。RSRFULL:接收移位寄存器已满标志位。:发送移位寄存器已空标志位。XRDY:发送准备就绪位。RRDY:接收就绪位。IN1:当CLKX引脚作为输入时,该位反映输入信号的电平。IN0:当CLKR引脚作为输入时,该位反映输入信号的电平。,:接收复位标志。:发送复位标志。TXM:发送方式(TXM)位,用于设定帧同步脉冲FSX的来源。,下面给出串行口初始化的步骤和各个串行口控制寄存器的初始值。可管理访问串行口的缓冲器的方法有两种:查询法和中断法。下面针对这两种方法如何初始化分别作以介绍。(1)查询法:查询串行口控制寄存器SPC。(2)中断法

28、:开放串行口中断。,用这种方法进行串行口初始化的步骤如下:复位和初始化串行口。给SPC寄存器写入0038H(或0008H)。具体配置为,CLKX使用内部时钟(CLKX信号作为输出),串口通信使用突发模式,使用内部帧同步信号(FSX信号作为输出)。清除任何正在进行中的中断。给IFR置00C0H(XINT、RINT置位)。允许串行口中断。给IMR置00C0H。从整体上开放中断。将ST1中的INTM位置0。启动串行口。给SPC置00F8H(或00C8H)。写第一个数据值给DXR。,串行口的中断服务子程序ISR具有如下功能:(1)保存堆栈中任何被修改的内容;(2)读DRR或写DXR;(3)恢复保存在(1)中的内容;(4)返回RETE。,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号