版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 TMS320C54X片内外设和中断系统教学内容及要求教学内容:教学内容:本本章详细介绍了TMS320C54X中主机接口HPI、软件可编程等待状态发生器、可编程分区转换逻辑、DMA控制器、外部引脚、定时器、串行接口和中断系统。 教学要求:教学要求:本章要求学生了解 DSP 基本外部部件以及中断的定义和类型,掌握 DSP 外设以及中断的特点、分类及其应用,并概括性地了解在设计一个 DSP 应用时,不仅要熟悉外部的设置、中断的类型等,还要了解中断、时钟及定时器的使用,从而使后续各章的学习目标更加明确。本章主要内容F3.1 3.1 片内外设与外部引脚简介片内外设与外部引脚简介F3.2 3.2
2、软件可编程等待状态发生器软件可编程等待状态发生器F3.3 3.3 可编程分区转换逻辑可编程分区转换逻辑F3.4 3.4 主机接口主机接口HPlHPlF3.5 3.5 串行口串行口本章主要内容F3.6 3.6 定时器定时器F3.7 3.7 时钟发生器时钟发生器PLLPLLF3.8 DMA3.8 DMA控制器控制器F3.9 3.9 外部引脚外部引脚F3.10 3.10 中断系统中断系统3.1 片内外设与外部引脚简介3.1 片内外设与外部引脚简介TI公司将相关的片内外设分为两大类:片内外设和增公司将相关的片内外设分为两大类:片内外设和增强型片内外设。其中片内外设主要包括串行接口、定时器、强型片内外设
3、。其中片内外设主要包括串行接口、定时器、通用通用I/O引脚和标准主机接口引脚和标准主机接口(HPI8)。增强型外设主要。增强型外设主要包括多通道缓冲串口包括多通道缓冲串口(McBSP)、主机接口、主机接口、DMA 控制控制器。所有的器。所有的 C54X DSP的的 CPU 结构及功能完全相同,结构及功能完全相同,但是片内的外设配置多少不同。任何一款但是片内的外设配置多少不同。任何一款 C54X DSP拥拥有的片内外设都只是以上列举的片内外设的一部分。片内有的片内外设都只是以上列举的片内外设的一部分。片内外设的操作是通过相关的控制寄存器来实现的,寄存器被外设的操作是通过相关的控制寄存器来实现的,
4、寄存器被映射到数据存储空间的第映射到数据存储空间的第0页页(地址地址20h5Fh)。具体的。具体的映射关系如表映射关系如表3-1所示。所示。3.1 片内外设与外部引脚简介3.1 片内外设与外部引脚简介 所有的TMS320C54X,它们的CPU都相同,但是连接到CPU的外围电路就不一定相同。TMS320C54X的在片外围电路如下:通用I/O引脚 定时器 时钟发生器主机接口 软件可编程等待状态发生器 可编程分区开关 串行口 TMS320C54X的外围电路有一组控制寄存器和数据寄存器,它们与CPU寄存器一样,也映像到数据存储器0页。外围电路的工作,受这些存储器映像寄存器控制,也可用来传送数据。 3.
5、2 软件可编程等待状态发生器 软件等待状态寄存器将程序空间和数据空间分成两个32 K字块,I/O空间由一个64 K字块组成。这5个字块空间在SWWSR中都相应地有一个3位字段,用来定义各个空间插入等待状态的数目。SWWSR的结构如图3-1所示。图3.1 SWWSR的结构 3.2 软件可编程等待状态发生器上述SWWSR的各3位字段规定的插入等待状态的最小数为0(不插入等待周期),最大数为7(111B)。其中: Low Prog:定义对0000H7FFFH的程序空间访问时插入的等待状态数。 Hi Prog:定义对8000HFFFFH的程序空间访问时插入的等待状态数。 Low Data:定义对000
6、0H7FFFH的数据空间访问时插入的等待状态数。 Hi Data:定义对8000HFFFFH的数据空间访问时插入的等待状态数。 I/O:定义对0000HFFFFH的I/O空间访问时插入的等待状态数。3.3 可编程分区转换逻辑可编程分区转换逻辑允许TMS320C54X在外部存储器分区之间切换时,不需要外部为存储器插入等待状态。当跨越程序或数据空间内部存储器分区界线时,可编程分区转换逻辑会自动地插入一个周期,这个额外周期的作用是防止总线冲突,保证在其他设备驱动总线之前,存储器设备可以结束对总线的占用。存储器块的大小在块切换控制存储器(BSCR)中定义。分区转换逻辑由分区转换控制寄存器(BSCR)定
7、义,它是一个16位的存储器映像寄存器,在数据空间的地址为0029H。BSCR的结构如图3-2所示,功能如表3-1所示。3.3 可编程分区转换逻辑图3.2 BSCR的结构 EXIO和 BH位可以用来控制外部地址和数据总线。正常操作情况下,这两位都应当置0。若要降低功耗,特别是从来不用或者很少用外部存储器时,可以将EXIO和BH位置1。 C54X 分区转换逻辑可以在下列几种情况下自动地插入一个附加的周期,在这个附加的周期内,让地址总线转换到一个新的地址,即 3.3 可编程分区转换逻辑一次程序存储器读操作之后,紧跟着对不同存储器分区的另一次程序存储器或数据存储器读操作。 当PSDS 位置 1 时,一
8、次程序存储器读操作之后,紧跟着一次数据存储器读操作。 对于 C548和 C549,一次程序存储器读操作之后,紧跟着对不同页进行另一次程序存储器或数据存储器读操作。 一次数据存储器读操作之后,紧跟着对一个不同的存储器分区进行另一次程序存储器或数据存储器读操作。3.3 可编程分区转换逻辑3.3 可编程分区转换逻辑3.4 主机接口HPITMS320C54X的主机接口(HPI)是一个8位并行口,是TMS320C54X系列定点芯片内部具有的一种接口部件,通过8根外部数据线HD(07)实现DSP与其他总线或CPU进行通信。当TMS320C54X与主机传送数据时,HPI能自动地将外部接口连续传来的8位数组成
9、16位数,并传送至TMS320C54X。当主机使用HPI寄存器执行数据传输时,HPI控制逻辑自动执行对TMS320C54X内部的双寻址RAM的访问,以完成数据处理。HPI接口通过HPI控制寄存器(HPIC)、地址寄存器(HPIA)、数据锁存器(HPID)和HPI内存块实现与主机通信。3.4.1 HPI结构及其工作方式HPI主要由五个部分组成,如图3.3所示图3.3 主机接口的组成框图3.4.1 HPI结构及其工作方式(1) HPI存储器(DARAM):用于TMS320C54X与主机间传送数据。 (2) HPI地址寄存器(HPIA):由主机对其直接访问,存放当前寻址HPI存储单元的地址。(3)
10、HPI数据锁存器(HPID):由主机对其直接访问,存放当前进行读/写的数据。(4) HPI控制寄存器(HPIC):TMS320C54X和主机都能对其直接访问,用于主处理器与DSP相互握手,实现相互中断请求。(5) HPI控制逻辑:用于处理HPI与主机之间的接口信号。3.4.1 HPI结构及其工作方式HPI接口有两种工作方式: 共用寻址模式(SAM方式) 在这种方式下,主机和TMS320C54X都能寻址HPI存储器。如果是异步工作的主机寻址,可在HPI内部重新得到同步。当TMS320C54X与主机的周期发生冲突时,则主机具有寻址优先权,TMS320C54X将等待一个周期。在SAM工作方式时,若H
11、PI每5个CLKOUT周期传送一个字节,则主机的运行频率可达(fdn)/5。3.4.1 HPI结构及其工作方式 主机寻址模式(HOM方式)在HOM方式下,HPI存储器只能让主机寻址,而TMS320C54X则处于复位状态或IDLE2空转状态。主机可以访问HPI RAM,而TMS320C54X则配置为最小功耗。在HOM方式时,主机可以获得更高的速度。即每50ns寻址一个字节(即160Mbps),且与TMS320C54X的时钟速度无关。3.4.2 HPI接口设计 HPI提供灵活而方便的接口,接口外围电路简单。TMS320C54X HPI与主机相连时,几乎不需要附加其他的逻辑电路。图3.4给出了其连接
12、框图。3.4.2 HPI接口设计HD0HD7: 双向并行三态数据总线,与主机数据总线相连。当不传送数据(HDSx或HCS=1)或EMU1/OFF=0(切断所有输出)时,HD7HD0均处于高阻状态。 HCS: 片选信号,与主机地址线或控制线相连。作为HPI的使能输入端,在每次寻址期间必须为低电平,而两次寻址之间也可以停留在低电平。 3.4.2 HPI接口设计HAS: 地址选通信号,与主机地址锁存使能(ALE)或地址选通引脚相连,也可以不使用。 若主机的地址和数据是一条多路总线,HAS则与主机的ALE引脚相连。在HAS的下降沿,锁存HBIL、HCNTIL0/1和HR/W信号;若主机的地址和数据线是
13、分开的,则HAS接高电平,此时由HDS1、HDS2或HCS中最迟的下降沿锁存HBIL、HCNTL0/1和HR/W信号。3.4.2 HPI接口设计HBIL: 字节识别信号,与主机地址线或控制线连接,用于识别主机传送来的是第几字节。当HBIL=0时,为第1字节;当HBIL=1时,为第2字节。第1个字节是高字节还是低字节,由HPIC寄存器中的BOB位决定。 HRDY: HPI准备好端,与主机异步准备好线相连。高电平表示HPI已准备好,可执行一次数据传送;低电平表示HPI正忙于完成当前事务。HCNTL0、HCNTL1:主机控制信号,与主机地址线或控制线连接,用来选择主机所要寻址的寄存器。3.4.2 H
14、PI接口设计表3-1主机控制信号功能3.4.2 HPI接口设计HDS1、HDS2: 数据选通信号,与主机读选通和写选通或数据选通线连接,用于在主机寻址HPI周期内,控制HPI数据的传送。HDS1和HDS2信号与HCS一道产生内部选通信号。HINT: HPI中断输出信号,与主机中断输入相连。受HPIC寄存器中的HINT位控制。当TMS320C54X复位时为高电平,EMU1/OFF低电平时为高阻状态。HR/W: 读/写信号。与主机读/写选通、地址线或多路地址数据线连接,用于控制主机对HPI的读写操作。当该信号为高电平时,表示主机要读HPI; 当该信号为低电平时,表示主机要写HPI。 若主机没有读/
15、写信号,可用一根地址线代替。3.4.3 HPI控制寄存器HPI控制寄存器为16位寄存器,其高8位与低8位完全相同,提供了4个控制位,分别为BOB、SMOD、DSPINT和HINT位,用来控制HPI的操作,见图3-5 各位的含义如下。BOB:字节选择位。 SMOD:寻址方式选择位。 DSPINT:主机向TMS320C54X发出中断位。 HINT:TMS320C54X向主机发出中断位。图3.5 HPI控制寄存器的数据结构3.4.3 HPI控制寄存器表3-2 HPI控制寄存器HPIC中的各状态位的功能3.4.3 HPI控制寄存器主机和TMS320C54X对HPIC寄存器的寻址有4种结果主机读HPIC
16、寄存器 主机写HPIC寄存器3.4.3 HPI控制寄存器 TMS320C54X读HPIC寄存器 TMS320C54X写HPIC寄存器3.5 串行口TMS320C54X具有高速、全双工串行口,可以与串行设备(如编解码器和串行A/D转换器)直接通信,也可用于多处理器系统中处理器之间的通信。所谓串行通信,就是发送器将并行数据逐位移出成为串行数据流,接收器将串行数据流以一定的时序和一定的格式呈现在连接收/发器的数据线上。串行接口一般通过中断来实现与核心 CPU的同步。串行接口可以用来与串行外部器件相连,如编码解码器、串行A/D或D/A以及其他串行设备。TMS320C54X有三种类型的串行口:标准同步串
17、行口(SPI)、缓冲串行口(BSP)和时分多路串行口(TDM)。 3.5 串行口标准同步串行口(SPI):有两个独立的缓冲器用于传送数据,接收缓冲器和发送缓冲器,每个缓冲器有一条可屏蔽的中断线。串行数据可以按8位字或16位字转换。缓冲串行口(BSP):在标准同步串行口的基础上增加了一个自动缓冲单元(ABU)。BSP是一种增强型标准串行口,它是全双工的,并有两个可设置大小的缓冲区。缓冲同步串口支持高速的传送,并减少中断服务的次数。ABU利用独立于CPU的专用总线,让串行口直接读/写TMS320C54X的接收/发送缓冲区。时分多路复用串行接口(TDM):允许同一个串口以分时方式传送多路数据,TDM
18、为多处理器通信提供了一种简单而有效的方式。3.5.1串行口的组成框图标准同步串行口由16位发送数据寄存器(DXR)、接收数据寄存器(DRR)、发送移位寄存器(XSR)、接收移位寄存器(RSR)以及控制电路组成。每个串行口的发送和接收部分都有与之相关联的时钟、帧同步脉冲以及数据信号。其组成如图3.7所示。TMS320C54X通过3条信号线连接到串口。图3.8给出了两个TMS320C54X进行串行通信的硬件连接图。下面将介绍串行口接收和发送数据的过程。3.5.1串行口的组成框图Data BusDRR (16)DXR (16)RSR (16)XSR (16)Byte/wordCounterByte/
19、wordCounterLoadControlLogicLoadControlLogic16161616XINT onDXR-XSRTransferRINT onRSR-DRRTransfer(Load)DR(Clear)(Clock)CLKR CLKXFSRFSX(Load)(Clear)(Clock)DX图3-7 串行口的组成框图3.5.1串行口的组成框图图3.8 串行口传送数据连接图DXFSXCLKXTMS 320C54x Device 0DRFSRCLKRTMS 320C54x Device 13.5.1串行口的组成框图CPU发送数据时,先将要发送的数据写到DXR上。若上一个字已串行传送
20、到串行发送数据引脚信号(DX)引脚上,此时,XSR是空的,则将DXR中的数据拷贝到XSR。在发送时的帧同步信号(FSX)和发送时钟信号(CLKX)的作用下,将XSR中的数据送到DX引脚输出。接收数据时,在接收时的帧同步信号(FSR)和接收时钟信号(CLKR)的作用下,将来自串行数据信号(DR)引脚的数据先移位到RSR,再从RSR拷贝至DRR,CPU从DRR中读取数据。3.5.2串行口控制寄存器串行口可通过访问3个寄存器工作,这3个寄存器均为16位存储器映射寄存器,分别为:串行口控制寄存器(SPC)、发送数据寄存器(DXR)和接收数据寄存器(DRR)。1.SPC的结构DXR和DRR可在串行操作时
21、用于传送和获取数据;而TMS320C54X串行口的操作则是由串行口控制寄存器SPC控制的。SPC的结构如图3.9所示。3.5.2串行口控制寄存器SPC中共有16个控制位,其中7个只能读,而另外9个可读写,各位的功能描述如下:Free:仿真控制位。Soft:仿真控制位。当高级语言调试程序中遇到一个断点时,将由free及soft两位决定串行口时钟的状态。可读写。RSRFULL:接收移位寄存器已满标志位。 只读。XSREMPTY :发送移位寄存器已空标志位。此位指示发送器是否下溢。只读。3.5.2串行口控制寄存器XRDY:发送准备就绪位。 只读。RRDY:接收就绪位。 只读。IN1:当CLKX引脚作
22、为输入时,该位反映输入信号的电平。只读。IN0:当CLKR引脚作为输入时,该位反映输入信号的电平。 只读。RRST:接收复位标志。可读写。XRST :发送复位标志。可读写。TXM:发送方式(TXM)位,用于设定帧同步脉冲FSX的来源。可读写。3.5.2串行口控制寄存器MCM:时钟方式位。用于设定CLKX的时钟源。可读写。FSM:帧同步方式位。规定了串行口工作时,在初始帧同步脉冲之后是否还要求帧同步脉冲FSX和FSR。可读写。FO:数据格式位,规定了串行口发送/接收数据的字长。可读写。DLB:数字返回方式位。可读写。RES:保留位。只读。 3.5.2串行口控制寄存器注意:要复位和重新配置串行口,
23、需要对 SPC 寄存器写两次。 第一次,对 SPC 寄存器的 RRST 和 XRST 位写 0,其余位写入所希望的配置。 第二次,对 SPC 寄存器的 RRST 和 XRST 位写 1,其余位是所希望的配置,再一道重新写一次。3.5.2串行口控制寄存器2. 串行口初始化的步骤 中断法进行串行口初始化的步骤如下: 复位和初始化串行口。给SPC寄存器写入0038H(或0008H)。具体配置为,CLKX使用内部时钟(CLKX信号作为输出),串口通信使用突发模式,使用内部帧同步信号(FSX信号作为输出)。 清除任何正在进行中的中断。给IFR置00C0H(XINT、RINT置位)。 允许串行口中断。给I
24、MR置00C0H。 从整体上开放中断。将ST1中的INTM位置0。 启动串行口。给SPC置00F8H(或00C8H)。 写第一个数据值给DXR。3.6 定时器片内定时器是一个软件可编程定时器,可以用来周期地产生中断。C5402有两个片内定时器,主要用来产生周期性的中断。它们的动态范围由16位计数器和4位预定标计数器来确定。计数频率来自于 CPU的时钟频率。每个定时器都具有软件可编程的3控制寄存器。3.6.1 定时器结构定时器主要由3个寄存器所组成:定时器寄存器(TIM)、定时器周期寄存器(PRD)和定时器控制寄存器(TCR)。这3个寄存器都是16位存储器映像寄存器,在数据存储器中的地址分别为0
25、024H、0025H和0026H。定时器的功能框图如图3.10所示。 TIM 定时器寄存器,是减 1 计数器,可加载周期寄存器 PRD的值,并随计数减少。 PRD定时器周期寄存器,PRD中存放定时器的周期计数值,提供TIM重载用。 TCR 定时器控制寄存器,TCR 包含定时器的控制和状态位,控制定时器的工作过程。3.6.1 定时器结构TRBTSSTINTTOUTCPU ClockTDDRTIMPRDBorrowPSCBorrowSRESET图3.10 定时器的功能框图3.6.1 定时器结构图3.10中含一个16位的主计数器(TIM)和一个4位预定标计数器(PSC)。TIM从周期寄存器PRD加载
26、,PSC从周期寄存器TDDR加载。寄存器TIM、PRD和TCR是存储器映像寄存器,地址分别为0024H、0025H和0026H。停止控制位TSS:通过与门屏蔽CLKOUT信号来控制定时器的启动。TINT:外部定时中断,定时时间到发中断;TOUT:定时输出,输出定时波形。定时器的典型操作顺序为: (1) 在每个CLKOUT脉冲后PSC减1,直到它变为0。 (2) 在下一个CLKOUT周期,TDDR加载新的除计数值到PSC,并使TIM减1。 3.6.1 定时器结构(3) 以同样方式,PSC和TIM连续进行减操作,直到TIM减为0。 (4) 在下一个CLKOUT周期,将定时器中断信号(TINT)送到
27、CPU,同时又用另一脉冲送到TOUT引脚,把新定时器计数值从PRD加载到TIM,并使PSC再次减1。因此,定时器中断的速率为TINT速率= )()(频率1PRD1TDDRCLKOUT3.6.2 定时器控制寄存器定时器可访问的寄存器有三个:TIM、PRD和TCR。TIM和PRD这两种寄存器共同工作,提供定时器的当前计数值。 读TIM可以知道定时器中的当前值。在正常情况下,当TIM减到0后,PRD中的时间常数自动地加载到TIM。当系统复位( =1)或定时器复位(TRB=1)时,PRD中的时间常数重新加载到TIM。 1. 控制寄存器(TCR)包含的控制位功能 控制定时器模式; 指定定时器预先定标计数
28、器的当前计数值; 重新加载定时器; 启动、停止定时器; 定义定时器的分频系数。 3.6.2 定时器控制寄存器TCR的结构如图3.11所示,包含有定时器的控制位和状态位: 图3.11 TCR的结构3.6.2 定时器控制寄存器2. TCR中各控制位和状态位的功能 TDDR(Timer Divide-Down Ratio):定时器分频系数。按此分频系数对CLKOUT进行分频,以改变定时周期。当PSC减到0后,以TDDR中的数重新加载PSC。复位时,TDDR各位清零。 TSS(Timer Stop Status):定时器停止状态位,用于停止或启动定时器。TSS=0时,定时器启动工作;TSS=1时,定时
29、器停止工作,关闭定时器可以减小器件的功耗。复位时,TSS位清零,定时器立刻开始定时。 TRB(Timer Reload):定时器重新加载位,用来复位片内定时器。当TRB置1时,TIM装入PRD中的数,并且PSC装入TDDR中的值。TRB总是读成0。3.6.2 定时器控制寄存器 PSC(Timer Prescaler Counter):定时器预定标计数器。当PSC减到0后,PSC装入TDDR中的值,并且TIM减1。PSC可被TCR读取,但不能直接写入。 Soft、Free:这两位结合起来使用,以仿真在HLL调试程序遇到断点时定时器的状态。 当Soft=0、Free=0时,定时器立即停止工作;当S
30、oft=1、Free=0且计数器减到0时,定时器停止工作;当Soft=x、Free=1时,定时器继续运行。 Res:保留位读成0。读TIM和TCR要用两条指令,在两次读之间有可能发生读数变化。因此,若需要精确的定时测量,就应当在读这两值之前先关闭定时器。3.6.2 定时器控制寄存器3. 定时器初始化步骤及其所对应的指令(1) 将TCR中的TSS位(停止状态位)置1,关闭定时器。STM #0010H,TCR (2) 加载PRD。STM #0100H,PRD;TINT周期=CLKOUT(TDDR+1)(PRD+1)(3) 重新加载TCR(使TDDR初始化;令TSS位为0,以接通CLKOUT;重新加
31、载位TRB位置1,以使TIM减到0后重新加载PRD),启动定时器。3.6.2 定时器控制寄存器STM #0C20H,TCR;SOft=1,Free=1,定时器遇到断点后继续进行若要开放定时中断,必须(假定INTM=1)做到以下几点: 将IFR中的TINT位置1,清除尚未处理完的定时器中断。 STM #0008H,IFR 将IMR中的TINT位置1,开放定时器中断。STM #0008H,IMR 将STI中的INTM位置0,从整体上开放中断。RSBX INTM复位时,TIM和PRD都置成最大值(FFFFH),定时器的分频系数TCR中的TDDR置0,定时器启动。3.6.3定时器应用举例【例 6.1】
32、 利用定时器 Timer0 在 XF 引脚产生周期为 1s 的方波。 设 f=100MHz,定时最大值是:10(ns)24216=10(ms),要输出1s的方波,可定时5ms,再在中断程序中加个100计数器,定时器周期=10ns(1+9)(1+49999)=5ms 来完成。程序如下: CounterSet .set 100 ;定义计数次数 PERIOD .set 49999 ;定义计数周期 .asg AR1,Counter ;AR1做计数指针,重新命名以便识别 3.6.3定时器应用举例STM #CounterSet,Counter ;设计数器初值 STM #0000000000001000B,
33、TCR;停止计数器 STM #PERIOD,TIM ;给TIM设定初值49999 STM #PERIOD,PRD;PRD与TIM 一样 STM #0000001001101001B,TCR ;开始定时器的工作 STM #0008H,IMR ;开TIME0的中断 RSBX INTM ;开总中断 End: NOP B End 3.6.3定时器应用举例中断服务程序:TINT0_ISR TINT0_ISR: PSHM ST0;保护ST0,因要改变TCBANZ Next,*Counter-计数器不为0,计数器减1,退出中断 STM #CounterSet,Counter ;计数器为0, 根据当前XF 的
34、状态BITF *AR2,#1 ;分别到setXF 或ResetXF BC ResetXF,TC 3.6.3定时器应用举例setXF: ;置XF为高 SSBX XF ST #1,*AR2 B Next ResetXF: ;置XF为低 RSBX XF ST #0, *AR2 Next: POPM ST0 RETE end 3.7 时钟发生器PLL时钟发生器为TMS320C54X提供时钟信号,其包括一个内部振荡器和一个锁相环电路两部分组成。时钟发生器要求有一个参考时钟输入,可以由两种方式提供,这两种驱动方式如图3-12所示。(1) 使用外部时钟源 将外部时钟信号直接加到DSP芯片的X2/CLKIN引
35、脚,而X1引脚悬空。外部时钟源可以采用频率稳定的晶体振荡器,具有使用方便,价格便宜,因而得到广泛应用。(2)使用芯片内部的振荡器 在芯片的X1和X2/CLKIN引脚之间接入一个晶体,用于启动内部振荡器。3.7 时钟发生器PLL图3-12 时钟电路TMS320C54X的锁相环PLL具有频率放大和时钟信号提纯的作用,利用PLL的锁定特性可以对时钟频率进行锁定,为芯片提供高稳定频率的时钟信号。锁相环还可以对外部时钟频率进行倍频,使外部时钟源的频率低于CPU的机器周期,以降低因高速开关时钟所引起的高频噪声。 TMS320C54X的锁相环有两种形式:X1X2/CLKINCrystalC1C23.7 时钟
36、发生器PLL 硬件配置的PLL(如TMS320C541、TMS320C542、TMS320C543、TMS320C545和TMS320C546); 软件可编程PLL(如TMS320C545A、TMS320C546A和TMS320C548)。1硬件配置的PLL进行硬件配置时,其工作频率的是固定的。通过设定TMS320C54X的3个引脚(CLKMD1、CLKMD2和CLKMD3)的状态来完成PLL的配置。时钟方式的配置方法如表3-3所示。3.7 时钟发生器PLL表3-3硬件PLL的配置方式3.7 时钟发生器PLL注意: 时钟方式的选择方案是针对不同的 C54X芯片而言。 停止工作方式等效于IDLE
37、3省电方式。 由表3-3可知,不用PLL时,CPU的时钟频率等于晶体振荡器或外部时钟频率的一半;如果用PLL,CPU的时钟频率等于外部时钟源或内部振荡器频率乘以系数N。2软件可编程PLL软件可编程PLL是一种高度灵活的时钟控制方式,它的时钟定标器提供各种时钟乘法器系数,并能直接接通和关断PLL。PLL的锁定定时器可以用于延迟转换PLL的时钟方式,直到锁定为止。3.7 时钟发生器PLL通过软件编程,可以选用以下两种时钟方式中的一种: PLL方式。输入时钟(CLKIN)乘以0.2515共31个系数中的一个系数。这是靠PLL电路来完成的。 DIV(分频器)方式。输入时钟(CLKIN)除以2或4。当采
38、用DIV方式时,所有的模拟电路,包括PLL电路都关断,以使功耗最小。软件可编程PLL通过读/写时钟方式寄存器(CLKMD)来完成,用来定义PLL时钟模块中的时钟配置,为用户提供各种时钟乘系数,并能直接通断PLL。 3.7 时钟发生器PLL软件可编程PLL可以对时钟方式寄存器(CLKMD)编程加载,以配置成所要求的时钟方式。CLKMD寄存器是16位存储器映像寄存器,地址为0058H。它是用来定义PLL时钟模块中的时钟配置。CLKMD的结构如图3-16所示。3.7 时钟发生器PLL PLLNDIV:时钟发生器选择位,读/写位。用来决定时钟发生器的工作方式。与PLLMUL和PLLDIV位同时定义频率
39、的乘数。 PLL STATUS:PLL的工作状态位,只读位。用来指示时钟发生器的工作方式。 PLLCOUNT:PLL的减法计数器,读/写位。用来对PLL开始工作到锁定时钟信号之前的一段时间进行计数定时,以保证频率转换的可靠性。 PLLDIV:为PLL的分频除数,读/写位。与PLLMUL和PLL NDIV一起决定PLL的频率。 PLLON/OFF:PLL的通/断位,读/写位。 与PLLNDIV一起决定PLL是否工作。 见图3.14。3.7 时钟发生器PLL图3.14 PLLON/OFF与PLLNDIV的工作方式 PLLMUL:为PLL的倍频乘数,读/写位。 与PLLDIV和PLLNDIV一起决定
40、PLL的频率当PLL STATUS=0时,时钟发生器工作于分频DIV方式;当PLL STATUS=1时,时钟发生器工作于倍频PLL方式。3.7 时钟发生器PLL当PLLNDIV=0时,采用分频DIV方式;当PLLNDIV=1时,采用倍频PLL通过软件编程,可以使软件PLL实现两种工作方式: PLL方式,即倍频方式。 芯片的工作频率等于输入时钟CLKIN乘以PLL的乘系数,共有31个乘系数,取值范围为0.2515。 DIV方式,即分频方式。对输入时钟CLKIN进行2分频或4分频。 软件PLL的乘系数可通过PLLNDIV、PLLDIV和PLLMUL的不同组合确定。见表3-4。3.7 时钟发生器PL
41、L表3-4 PLL的乘系数根据PLLNDIV、PLLDIV和PLLMUL的不同组合,软件PLL共有31个乘系数,分别为: 0.25、0.5、0.75、1、1.25、1.5、1.75、2、2.25、2.5、2.75、3、3.25、3.5、3.75、4、4.5、5、5.5、6、6.5、7、7.5、8、9、10、11、12、13、14、15。3.7 时钟发生器PLL通常,DSP系统的程序需要从外部低速EPROM中调入,可以采用较低工作频率的复位时钟方式,待程序全部调入内部快速RAM后,再用软件重新设置CLKMD寄存器的值,使TMS320C54X工作在较高的频率上。芯片复位时钟方式寄存器CLKMD的值
42、是由3个外部引脚(CLKMD1、CLKMD2和CLKMD3)的状态设定,从而确定了芯片的时钟方式。 参见表3-5。3.7 时钟发生器PLL表3-5 CLKMD的时钟方式3.7 时钟发生器PLL【例】 从某一倍频方式切换到PLL1方式。 必须先从倍频方式切换到分频方式,然后再切换到PLL1方式。 其程序如下:STM #00H,CLKMD ;切换到DIV方式Status:LDM CLKMD,AAND #01H,A ;测试PLLSTATUS位BC Status,ANEQ ;若A0,则转移,STM #03EFH,CLKMD ;表明还没有切换到DIV方式 ;若A=0,则顺序执行, ;已切换到DIV方式S
43、TM #03EFH,CLKMD ;切换到PLL1方式3.7 时钟发生器PLL例题:TMS320C54X的时钟发生器的频率为10M赫兹,假设其内部的PLL时钟控制方式为软件可编程PLL中的PLLX1方式,要在XF端输出占空比为50,周期为10ms的方波,试用C54X的定时器0结合中断编程实现。 STM #0,CLKMD ;software setting of DSP clockTstStatu1:LDM CLKMD,AAND #01b,A ;poll STATUS bitBC TstStatu1, ANEQ3.7 时钟发生器PLLSTM #0 xF7FF, CLKMD ;set C5402 D
44、SP clock to 10MHzSSBX 1,11 ;或者SSBX INTMSTM #FFFFH, IFR ;clear all interrupt indicateSTM #0000H,IMR ;set imr=0,stop all interrruptSTM #0659H, TCR ;stop timer STM #4999, PRD ; set prd=4999STM #0669H, TCR ;start timer STM0008H, IMR ;allow timer interruptRSBX 1,11 ; 或者 RSBX INTM RET3.7 时钟发生器PLLt0_flag .
45、usect “vars”, 1time0_rev:PSHM TRNPSHM TPSHM ST0PSHM ST1BITF t0_flag ,# 1BC xf_out, NTCSSBX XFST #0, t0_flagB next3.7 时钟发生器PLLxf_out:RSBX XFST # 1, t0_flagnext:POPM ST1POPM ST0POPM TPOPM TRNRETE3.8.1 DMA(Direct Memory Access)概念直接存储器访问(Direct Memory Access,简称DMA)是C54X DSP非常重要的片上外设。 DMA特性:完成数据传输而不影响CPU
46、,因此数据传输速度快。应用场合:在要求信号实时采集和处理的系统中常采用DMA方式进行信号采集与传输。DMA特点: DMA方式不用处理器干预完成M与I/O间数据传送。 DMA期间系统总线由其它主模块控制(驱动) 控制总线的主模块要提供系统的地址及控制信号。 DMA控制器与处理器配合可实现系统的DMA功能。3.8.2 DMA系统组成及工作过程图3.15 DMA的系统组成3.8.2 DMA系统组成及工作过程C5402有6个可独立编程的DMA通道:DMA0DMA5,每个DMA通道受各自的5个16位寄存器控制。源地址寄存器DMSRC:规定DMA要传送数据源地址的首地址目的地址寄存器DMDST:规定DMA
47、要传送数据目的地址的首地址单元计数寄存器DMCTR:规定DMA传送数据的个数(DMCTR值加1)同步事件和帧计数寄存器DMSFC:规定DMA传送数据的同步事件类型和传送一块数据所含帧信号的个数。传输模式控制寄存器DMMCR:规定了DMA通道的传输模式。3.8.2 DMA系统组成及工作过程当DMA工作在自动初始化模式时,CPU在一个DMA事件完成后自动装载下一个DMA初始化设置,并继续进行数据传送。此外,DMA的6个通道还受通道优先级和使能控制寄存器DMPREC控制。 DMA的工作过程见图3.16。3.8.3 DMA寄存器的寻址DMA寄存器的寻址过程见图3-173.8.3 DMA寄存器的寻址 D
48、MSDN:子区访问寄存器,地址不自动增加。 DMSA:子区地址寄存器。 DMSDI:子区访问寄存器,地址自动增加。 访问上述某个寄存器,首先将寄存器的子地址写入子地址寄存器DMSA中,它利用复用器将数据寄存器与要访问的寄存器相连,然后执行访问,数据从指定的寄存器读出或写入指定的寄存器。DMA控制器提供了两个数据寄存器DMSDI和DMSDN:访问DMSDI会触发子地址自动地增加;访问DMSDN不会引起子地址变化。 3.8.3 DMA寄存器的寻址 通道优先与使能控制寄存器DMPREC功能:(1)通道选择。(2)复用中断控制。(3)通道优先控制。 同步事件和帧计数寄存器DMSFC功能:(1)决定哪种
49、同步事件(2)决定发送字大小(16bits还是32bits)(3)决定发送帧的数目3.8.3 DMA寄存器的寻址 传输模式控制寄存器DMMCR功能:规定DMA通道的传输模式当DMA工作在自动初始化模式时,CPU在一个DMA事件完成后自动装载下一个DMA初始化设置并继续进行数据传送。DINM位和IMOD位设置DMA中断产生方式。CTMOD位设置发送计数模式控制,DMA可工作在多帧模式(=0b)和自动缓冲ABU模式(=1b)。SIND位和DIND位用来设置源地址和目的地址的自动调整方式。 DMA传输的源地址和目的地址 DMS(bit 6-7)和DMD(bit0-1)决定源地址和目的地址的空间:程序
50、空间、数据空间还是I/O空间。3.8.3 DMA寄存器的寻址DMA传输后的源地址和目的地址还可以更新:SIND(bit8-10)和DIND(bit2-4)决定源地址和目的地址。其更新模式为:(1)传输后地址不更新;(2)传输后地址加1;(3)传输后地址减1;此外还有地址由偏移量更新。CTMOD(bit12)决定源地址和目的地址更新模式:(1)多帧模式(Multiframe);(2)自动缓冲模式(ABU) 3.8.3 DMA寄存器的寻址DINM(bit14)决定DMA中断许可(1)IMOD=0传输完全块产生中断(2)IMOD=1传输半块或全块产生中断,或帧结束或块结束产生中断3.9 外部引脚TM
51、S320C54X DSP基本上都采用超薄的塑料或陶瓷四方扁平封装(TQFP),也有其他封装形式。图3.18所示是TMS320C541的引脚图。本节重点描述TMS320C541芯片的引脚功能。3.9 外部引脚3.9 外部引脚1地址、数据总线及其控制信号A15A0:16位地址总线,用于对片外数据、程序存储器及I/O寻址;D15D0:16位数据总线。在CPU内核、片外数据、程序存储器或I/O器件之间传送数据; 、 、 :数据、程序和I/O空间选通信号; :数据准备好及读写信号; 、 :外部存储器、I/O空间选通信号; 、 :保持输入信号、保持响应信号; :微状态完成信号; :指令获取信号。3.9 外
52、部引脚3.9 外部引脚4振荡器及定时信号CLKOUT、TOUT:主时钟输出信号、定时器输出信号;CLKMD1CLKMD3:3个外部/内部时钟工作方式输入信号,可以预置DSP的时钟比;X2/CLKIN、X1:晶振到内部振荡器的输入引脚、内部振荡器到外部晶振的输出引脚。3.9 外部引脚3.9 外部引脚6串口信号CLKR0、CLKR1:接收时钟;CLKX0、CLKX1:发送时钟;DR0、DR1:串行口数据接收端;DX0、DX1:串行口数据发送端;FSR0、FSR1:用于接收输入的帧同步脉冲;FSX0、FSX1:用于发送的帧同步脉冲。7电源信号CVDD、DVDD、VSS:CPU内核电源电压、I/O引脚
53、的电源电压和器件地。3.9 外部引脚3.10.1 中断概述中断是由硬件或软件驱动的中断信号,使CPU中断当前程序,去执行中断服务程序。中断系统是DSP应用系统实现实时操作和多任务多进程操作的关键部分。 TMS320C54X的中断系统根据芯片型号的不同,提供了2430个硬件及软件中断源,分为1117个中断优先级,可实现多层任务嵌套。本节从应用的角度介绍C54X中断系统的工作过程和编程方法。3.10.2 中断分类TMS320C54X中断既支持硬件中断,也支持软件中断。软件中断由程序指令引起,如INTR、TRAP或RESET。硬件中断有外部硬件中断和内部硬件中断。外部硬件中断由外部中断口的信号触发;
54、内部硬件中断由片内外围电路的信号触发。软件中断不分优先级,硬件中断有优先级。当多个硬件中断同时请求时,TMS320C54X根据优先级别的不同对其进行服务。无论是硬件中断还是软件中断,TMS320C54X的中断可分为如下两大类。3.10.2 中断分类1. 可屏蔽中断可屏蔽中断是可用软件来屏蔽或开放的中断,即通过对中断屏蔽寄存器(IMR)中的相应位和状态寄存器(ST1)中的中断允许控制位INTM编程来屏蔽或开放该中断。TMS320C54X最多可以支持16个用户可屏蔽中断(SINT15SINT0),但有的处理器只用了其中的一部分。有些中断有两个名称,这是因为可以通过软件或硬件对它们初始化。 3.10
55、.2 中断分类2. 非可屏蔽中断非可屏蔽中断是不能用软件来屏蔽的中断,不受IMR和INTM位的影响。TMS320C54X对这一类中断总是响应的,并从主程序转移到中断服务程序。TMS320C54X的非屏蔽中断包括所有的软件中断,以及两个外部硬件中断:(复位)和 (外部引脚发出的中断)。 (外部引脚发出的中断)是一个对TMS320C54X所有操作方式产生影响的非屏蔽中断,而 中断不会对TMS320C54X的任何操作发生影响。3.10.3 中断寄存器在讨论中断响应过程之前,先介绍一下TMS320C54X内部的两个寄存器:中断标志寄存器IFR和中断屏蔽寄存器IMR。1.中断标志寄存器中断标志寄存器(I
56、FR)是一个16位存储器映像的CPU寄存器,位于数据存储器空间内,地址为0001H。当一个中断出现的时候,TMS320C54X DSP收到了一个相应的中断请求(中断挂起),此时,IFR中相应的中断标志位为1。TMS320C541 IFR的位定义如图3.19所示。3.10.3 中断寄存器图3.19 TMS320C541的位定义3.10.3 中断寄存器图3.19 TMS320C541的位定义3.10.3 中断寄存器2. 中断屏蔽寄存器中断屏蔽寄存器是一个存储器映像寄存器,主要用于控制中断源的屏蔽和开放。当状态寄存器ST1中的INTM位为0时,全局中断允许。IMR中的某位置1时,开放相应的中断。由于
57、RS和NMI都不包含在IMR中,因此IMR对这两个中断不能进行屏蔽。中断屏蔽寄存器IMR的结构:图3.20 TMS320C541 IMR的位定义3.10.4 中断的处理TMS320C54X处理中断分三个阶段:1接受中断请求当发生硬件和软件指令请求中断时,IFR中相应的标志位置为有效电平。无论DSP是否响应中断,该标志都处于有效电平。在相应中断发生时,该标志自动清除。硬件中断有外部和内部之分。外部硬件中断由外部接口信号自动请求,内部硬件中断由片内外设信号自动请求。软件中断都是由程序中的指令INTR、TRAP和RESET产生的。 (1) INTR K:该指令可启动TMS320C54X的任何中断。
58、3.10.4 中断的处理 (2) TRAP K:TRAP与INTR的不同之处是TRAP中断时,不需要设置INTM位。 (3) RESET:该指令可在程序的任何时候发生,它使处理器返回一个已知状态。 2响应中断对于软件中断和非可屏蔽中断,CPU立即响应。如果是可屏蔽中断,只有满足以下条件才能响应: (1) 优先级别最高。 (2) ST1中的INTM位为0,允许可屏蔽中断。 (3) IMR中的相应位为1,允许可屏蔽中断。3.10.4 中断的处理3执行中断服务程序响应中断之后,CPU将执行下列操作:(1) 将PC值(即返回地址)压入堆栈。(2) 将中断向量的地址装入PC;将程序引导至中断服务程序IS
59、R。(3) 现场保护,将某些要保护的寄存器和变量压入堆栈。(4) 执行中断服务程序ISR。(5) 恢复现场,以逆序将所保护的寄存器和变量弹出堆栈。(6) 中断返回,从堆栈弹出返回地址加载到PC。(7) 继续执行被中断的程序。 整个中断的执行过程如图3.21所示:3.10.4 中断的处理是否是可屏蔽中断 ?接收中断请求响应中断,产生IACK信号是INTM0 ?是IMR 屏蔽位1 ?是硬件中断或INTR指令 ?否否否否现场保护执行中断服务程序ISR现场恢复中断返回INTM1是3.10.5 综合实例4汇编源程序如下: .mmregs .def _c_int00STACK .usect STACK,1
60、00ht0_cout .usect vars,1 ;计数器 t0_flag .usect “vars”,1 ; 当前XF输出电平标志。 t0_flag=1,则XF=1; t0_flag=0,则XF=03.10.5 综合实例2定时器对C5402的主时钟CLKOUT进行分频CLKOUT与外部晶体振荡器频率(在本系统中外部晶体振荡器的频率为16.384MHz)之间的关系由C5402的三个引脚CLKMD1、CLKMD2和CLKMD3的电平值决定,为使主时钟频率为16.384MHz,应使CLKMD1=1、CLKMD2=1、CLKMD3=0,即PLL1。3中断初始化(1)中断屏蔽寄存器IMR中的定时屏蔽位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论