




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲:乔瑞萍西安交通大学
信息与通信工程学院
TMS320C5000™第6章片内外设内容时钟发生器
中断定时器
主机接口串行口6.1时钟发生器
1)组成:时钟发生器由内部振荡器和锁相环(PLL)电路两部分组成。2)输入方式:时钟发生器要求有一个参考时钟输入,可以有两种方式提供:将一个晶体跨接到X1和X2/CLKIN引脚将一个外部时钟信号直接加到X2/CLKIN引脚3)C54xPLL形式:(1)硬件配置PLL:(P149表6-1)(引脚)CLKMD1,CLKMD2,CLKMD3;选定时钟方式(PLL×N;停止方式IDLE3)返回(2)软件配置PLL:①PLL方式:CLKIN×N(N为0.25~15)②DIV(分频器)方式:CLKIN/2(或4),关断模拟电路、PLL、省功耗硬件:不用PLL:时钟频率=0.5(外部时钟或内部振荡器频率)利用PLL:时钟频率=N(外部时钟或内部振荡器频率)软件设置(复位时设置的时钟方式)对CLKMD(时钟方式寄存器)编程。地址为:0058HCLKMD各位含义:如图P149151211103210PLLMULPLLDIVPLLCOUNTPLLON/OFFPLLNDIVPLLSTATUSR/WR/WR/WR/WR/WRPLL乘数除数计数器通断时钟发生器选择位0:分频1:PLL状态位PLKCOUNT(十进制)>LookupTime16×TCLKIN4)锁定时间与时钟频率关系:
若4)锁定时间与时钟频率关系:
例1若要从DIV方式转到PLL×3方式,已知CLKIN=13MHZ,,可求得PLKCOUNT=41(十进制数),再在程序中加入如下指令就行了。
STM#0010
00010100
1111b,CLKMD
2
41PLL
PLLMUL
PLLMUL+1
见表P150表6-3例2切换时钟从PLL×3模式到÷2模式,关PLL,进入IDLE3,IDLE3唤醒后,从DIV进入PLL×3方式,PLKCOUNT=64(锁定时间值) STM #0,CLKMD ;切换DIV模式TstStatu:LDM CLKMD,A AND #01b,A ;查询
BC TstStatu,ANEQ STM #0b,CLKMD;resetPLKON_OFF;whenstatusisDivmode IDLE3(AfterIDLE3WAKE-UP-SWITCHthePLLfromDivmodetoPLL×3mode) STM
#0010001000000111b,CLKMD;PLKCOUNT=64(十进制)
低功耗(节电)模式
IDLE1模式:IDLE1暂停所有的CPU活动。
IDLE2模式:IDLE2暂停CPU和片内外设的工作。
IDLE3模式:IDLE3模式类同于IDLE2,但它也使片内锁相环PLL暂停工作。
HOLD模式:HOLD模式是另外一种节电模式。它使外部地址总线、数据总线和控制总线进入高阻状态。它也可以使CPU暂停工作。此外,C54x还有两种节电功能:关闭外部总线和关闭CLKOUT。6.2中断1、类型
C54x既支持软件中断,也支持硬件中断:由程序指令(1NTR、TRAP或RESET)要求的软件中断;由外围设备信号要求的硬件中断。
C54x的中断可以分成两大类:第一类是可屏蔽中断,这些都是可以用软件来屏蔽或开放的硬件和软件中断。第二类是非屏蔽中断。这些中断是不能够屏蔽的。
中断C541只有9个可屏蔽中断。这9个中断的硬件名称为:INT0~INT3
(外部硬件中断)。RINT0、XINT0、RINTl和XINTl(串行口中断,内部硬件中断)。TINT(定时器中断,内部硬件中断)。C54x的非屏蔽中断包括:所有的软件中断。(复位,外部硬件中断)。(外部硬件中断)。复位操作
RS是一个不可屏蔽的外部中断;它至少保持2个时钟周期的低电平;处理器从FF80h处取指。注意:复位状态见P153。复位期间对其余的状态位以及堆栈指针没有初始化。(P153)
可屏蔽硬件中断信号产生后能否引起CPU执行相应的中断服务程序ISR,还取决于以下4点:ST1中INTM=0。CPU当前没有响应更高优先级的中断。IMR中对应的中断屏蔽位置1。IFR中对应的中断标志位置1。2、中断标志寄存器IFR和中断屏蔽寄存器IMR
IFR是一个MM的CPU寄存器,中断时IFR中相应的中断标志位置1。如下4种情况会使IFR中相应的中断标志位置0:①
IMR也是MM的CPU寄存器,用来屏蔽外(内)部中断。开放中断的条件:①ST1中INTM=0。②IMR中某位为1。注意:和
=0。②中断得到处理。③将1写到IFR中的适当位(相应位变成0),相应的尚未处理
完的中断被清除。④执行INTR,相应的中断标志位清零。不包括在IMR中,IMR不能屏蔽这两个中断。表6-3 ’C541的中断标志寄存器IFR15-1211109876543210ResResResResINT3XINT1RINT1XINT0RINT0TINTINT2INT1INT015-1211109876543210ResResResResINT3XINT1RINT1XINT0RINT0TINTINT2INT1INT0表6-4 ’C541的中断屏蔽寄存器IMR中断向量地址=PMST中IPTR(中断向量指针,9位)+左移2位后中断向量序号(7位)3、重新安排中断向量地址问题:说明:硬件复位后总是从0FF80h开始执行程序。除硬件复位向量外,其它的中断向量,只要改变IPTR位的值,都可以重新安排它们的地址。P258附录36.2.2处理过程(上)第一阶段:接受中断请求CPU的IFR中相应位置1。注意:①TRAP不需设置INTM位,因其是不可屏蔽中断。②响应RESET时,ST1中INTM=1,禁止所有可屏蔽中断。RESET指令复位与(硬件)复位在对IPTR和外围电路初始化方面是有区别的。第二阶段:响应中断只有满足以下条件才能响应:1.优先级别最高(当同时出现一个以上中断时)。2.STl中的INTM位为0。3.IMR中的相应位为1。说明:②和③开放相应的中断。示例: mmregs STM #0000,SWWSR ;不插等待周期
RSBX INTM ;开放中断
STM #0004,IMR ;开放INT2
CPU相应中断时,PC转到适当地址取出软件向量,并发出,清除相应的中断标志位,即IFR相应位为0。处理过程(下)第三阶段:执行中断服务程序响应中断之后,CPU:
1.将PC值(返回地址)存到数据存储器堆栈的栈顶。
2.将中断向量的地址加载到PC。
3.在向量地址上取指。
4.执行分支转移指令,转至中断服务程序。
5.执行中断服务程序。
6.中断返回,从堆栈弹出返回地址加到PC。
7.继续执行被中断了的程序。用户编写如图P156 Fig6-6注意:BRC比ST1中BRAF先恢复,若BRC恢复前,ISR中BRC=0,那么先恢复BRAF位将被清0。示例:INT_2:NEG A ;A变负
RETE ;开中断从中断返回
PCINT_2:RETE
PCSTACK
6.2定时器定时器的组成定时器的操作定时器中断周期定时器初始化步骤定时器
C54x定时器是一个软件可编程定时器,可用来周期地产生中断。1)定时器的组成TIM(定时器reg):减1计数0024H。PRD(定时器周期reg):存放时间常数0025H
。TCR(定时器控制reg):含定时器的控制位和状态位0026H。图6-5 定时器的功能框图
(1)TCR:各位含义见教材P160TCR是一个16位存储器映象定时控制寄存器,包含的控制位有下列功能:▲控制定时器模式▲指定定时器预先定标计数器的当前计数值▲重新加载定时器▲启动、停止定时器▲定义定时器的分频系数(2)TIM与PRD:这两种REG共同工作提供定时器的当前计数值。在正常情况下,当TIM减到0后,PRD中的时间常数自动地加载到TIM。当系统复位(=1)或定时器复位(TRB=1)时,
PRD中的时间常数重新加载到TIM。C54x定时器控制寄存器TCR
:15121110965430ReservedsoftfreePSCTRBTSSTDDRTCR中各位描述如下:
TDDR(Timerdivide-downratio):定时器分频系数TSS(Timerstopstatus):定时器停止状态位TRB(Timerreload):定时器重新加载位PSC(Timerprescalercounter):定时器预定标计数器Soft、Free:仿真调试使用Resvd:保留位,读成02)定时器的操作在每一个CLKOUT脉冲后PSC减1,直到PSC=0。在下一个CLKOUT周期,TDDR加载新的除计数值到PSC,并使TIM减1。以同样方式,PSC和TIM连续进行减操作,直到TIM=0。在下一个CLKOUT周期,将TINT送到CPU,一脉冲送到TOUT,把新定时器计数器计数值从PRD加载到TIM,并使PSC再减1。3)定时器中断周期
TINT周期=CLKOUT(TDDR+1)(PRD+1)说明:①CLKOUT:时钟周期。②TDDR:定时器分频系数。③PRD:时间常数。例:假定CLKOUT频率=10MHZ,利用4加载TDDR,以使每5个CLKOUT周期TIM减1;利用TIM的开始值(199)加载PRD。问:用Timer产生时钟信号的频率是多少?
=107×=10kHZ
定时器硬件复位(发①TIM、PRD被MAX值FFFF加载。②TCR所有位清零。③除数值为0(TDDR=0,PSC=0)。④启动定时器(TSS=0)。⑤FREE、SOFT均为0。TINT频率=CLKOUT频率×1(TDDR+1)×(PRD+1)1(4+1)×(199+1)):4)定时器初始化步骤:先将TCR中的TSS位置1,关闭定时器加载PRD重新加载TCR,启动定时器开放定时中断,必须(假定INTM=1)将IFR中的TINT位置1,清除尚未处理完的定时器中断将IMR中的TINT位置1,开放定时器中断将STI中的INTM位置0,从整体上开放中断要点:时间常数、中断、初始化
下面举例说明定时器初始化和开放定时中断的步骤:
STM #0000H,SWWSR ;不插等待周期
STM #0010H,TCR ;TSS=1关定时器
STM #199,PRD ;加载周期寄存器PRD,STM
#0C24H,TCR
;定时器分频系数TDDR初始化为0
;TSS=0,启动定时器工作
;TRB=1,当TIM减到0后,重新;加载PRD
;SOFT=1,FREE=1,定时器遇;到断点继续进行
STM #0008H,IFR
;清除尚未处理完的定时器中断
STM #0008H,IMR;开放定时器中断
RSBX INTM
;开放中断
∶
∶6.4主机接口HPI概念
什么是HPI①HostportInterface的缩写,主机接口,是一种高速、异步并行接口(8/16/32位),用来与主设备或者处理器接口。②外部处理器通过HPI接口可以高速访问DSP的局部或全部存储空间。③HPI接口是以主处理器为主,DSP为从的主-从结构。
DSP中设置HPI接口的目的为主-从结构的双处理器系统提供简单、方便、廉价的信息交换平台HPI概念传统的双处理器接口:①异步/同步串口:速度慢。②双端口RAM:成本高,局部存储空间,信息量有限。③双向FIFO:成本高,受FIFO深度应用,信息量有限。能与何种类型的主处理器直接接口:①数据/地址分时复用主处理器。②数据/地址独立的主处理器。③读/写控制独立的主处理器。④读/写控制复合的主处理器。HPI存储器(DARAM):(2K字1000H~17FFH)
用于C54X与主机间传送数据。HPI地址寄存器(HPIA):由主机对其直接访问,存放当前寻址HPI存储单元地址。HPI数据锁存器(HPID)::由主机对其直接访问,存
放当前进R/W数据。HPI控制寄存器(HPIC):
C54X和主机都能对它直接访问。地址为:002CHHPI控制逻辑:用于处理HPI与主机之间的接口信号。1)HPI组成:2)HPI工作方式:(1)共用寻址方式(SAM):主机与C54x都
能寻址HPI存储器。(2)仅主机寻址方式(HOM):仅能让主机寻
址HPI存储器。
用途:HPI支持主设备与C54x之间高速传送
数据。SAM方式:主机运行频率可达Fd*n/5;Fd:CLKOUT,n:4(3)HOM方式:与C54x时速速率无关,每50ns寻
址一个字节。3)HPI与主机的连接图——硬件
P163Fig6-11HPI接口信号数据数据总线HD0-HD7地址HCNTL[1:0]:用于选择3个寄存器HPIA,HPID和HPICHBIL:当HPI数据总线宽度是DSP数据总线宽度的一半时,用于指示前后2次传输,如果总线宽度相同时,无此信号。HR/W:用于指示HPI传输的方向。控制、、:用于数据选通。:用于地址锁存。握手线
HRDY:HPI接口数据就绪信号。
:DSP请求主机中断信号。
HPI:与主处理器接口
信号:当数据/地址时分复用时,接主机的ALE。否则,接固定高电平。接ALE时:HD0~HD7、HCNTL0、HCNTL1、HBIL、HR/接数据/地址复用总线。接固定高电平“1”时:HD0~HD7接数据线。HCNTL0、HCNTL1、HBIL接地址线。HR/接地址线,或写选通线。信号接片选信号。
HPI:与主处理器接口[2:1]信号随意接独立的读、写信号。一个接单独的数据选通信号,另一个接:固定高“1”,若独立的数据选通为低电平有效。固定低“0”,若独立的数据选通为高电平有效。HPI:工作原理3个寄存器:HPIC:用于主处理器与DSP相互握手,实现相互中断请求。HPIA:用于锁存主处理器要访问的DSP存储单元的地址HPID:用于主处理器与DSP交换数据主处理器对HPI的访问由2部分组成:外部:主处理器与HPI寄存器交换数据。内部:HPI寄存器与DSP存储单元交换数据,由DSP片上DMA/EMDA自动完成。HPI地址寄存器自动加1。HPI数据寄存器有2个地址。主处理器对其中一个地址访问后,HPI地址寄存器不变。主处理器对另外一个地址访问后,HPI地址寄存器自动加1,这对连续的DSP存储空间访问非常有用。HPI:工作原理主处理器对DSP存储单元的访问。读操作:预取。主机完成HPIA访问后,DSP片上DMA自动将数据从由HPIA寄存器所指定的DSP存储单元中预取到HPID中
。主机完成HPID读操作后,DSP片上DMA才自动将下一个数据从由HPIA寄存器所指定的DSP存储单元中预取到HPID中
。写操作:后写。主机完成对HPID写操作后,DSP片上DMA才自动将当前数据写到由HPIA寄存器所指定的DSP存储单元中。HRDY信号。主处理器只有在HRDY信号有效后,才能对HPI寄存器进行操作,否则将导致错误发生。图6-6
主机接口的组成框图HPI有3个可访问的寄存器:HPIA、HPID和HPIC。主机通过HPI接口访问C54x片内RAM:首先要初始化HPIC。然后设置HPIA。最后读写C54x的片内RAM,对HIPD进行操作。主机和C54x访问HPIC寄存器的结果如图所示:
1512111098743210XHINT0SMODBOBXHINT0SMODBOB(a)主机读HPIC1512111098743210XHINTDSPINTSMODBOBXHINTDSPINTXBOB(b)主机写HPIC15143210XHINT0SMOD0(c)C54x读HPIC15143210XHINTXSMODX(d)C54x写HPIC
HPIC是一个16位MMR,地址:002CH4个状态位:BOB:字节选择位。仅主机可R/W。BOB=1,1st字节为低字节。BOB=0,1st字节为高字节。SMOD:寻址方式选择位。SMOD=1,选择SAM。SMOD=0,选择HOM方式。DSPINT:主机向C54x发出中断位。仅能由主机写,高、低字节写入相同的值。且主机和C54x都不能读它。HINT:C54x向主机发出中断位。该位决定引脚的状态。HPI接口配置TIDSP中只有C5000和C6000系列DSP中有HPI接口。C54x系列DSP:8位HPI接口。C55x系列DSP:16位HPI接口。C62x/C67x系列DSP:16位HPI接口。C64x系列DSP:32位HPI接口。HPI接口的数据总线可配置为通用的I/O口。6.5串行口同步串行通信基础知识串行口概述串行口框图串行口控制寄存器同步串行通信基础知识什么是串行通信:发送器将并行数据逐位移出成为串行数据。接收器将串行数据流逐位接收组合成并行数据。串行数据位流以一定时序和一定格式呈现在连接收/发器的数据线上。串口通信的一些基本概念:帧同步:串行数据位流的起始条件。位-时钟:每个串行数据位持续的时间。数据元:一次串并变换所产生的串行数据位流长度,是串行通信最基本的数据单位,以数据位长度为单位,一般为8/12/16/20/24/32位。数据帧:一串连续不间断的数据元所组成的串行数据位流,以数据元个数为单位。数据相:多个独立的数据帧组成一串连续不间断的串行数据位流,每个独立的数据帧被称为数据相。不同数据相中的数据帧,包含的数据元的个数和数据元的数据位长度可以不同。引入数据相概念的目的是可以使连续的2个数据帧,帧内的数据元的个数和数据元的数据位长度相互独立。同步串行通信:发送器和接收器以统一的位-时钟工作。同步串行通信标准串行数据流位起始时刻称为帧同步事件。帧同步事件由位-时钟采样帧同步信号给出。串行数据位流长度:串行传输的数据流位数达到设定的长度后(由数据元、数据帧和数据相设定),结束本次传输,等待下一个帧同步信号达到,再发起另一次串行传输。串行数据流传输速度:即每一个串行位的持续时间,由位-时钟决定。如何取得帧同步事件、何时采样串行数据位流、或何时输出串行数据位流,即FSR(FSX)、CLKR(CLKX)、DR(DX)三者之间的不同关系,决定了不同的同步串行标准。1、串行口概述1)概述C54x具有高速全双工串行口。C54x中的串行口有三种形式:
标准同步串行口、
缓冲串行口和
时分多路串行口。用途:可用来与系统中其他C54x器件,编码解码器,串行A/D变换器以及其他的串行器件直接接口。(1)标准同步串行口
①组成:5个部分。标准同步串行口有2个存储器映象寄存器用于传送数据:发送数据寄存器(DXR)和接收数据寄存器(DRR)——软件管理。每个串行口的发送和接收部分都有与之相关联的时钟、帧同步脉冲以及数据信号。②数据格式:串行数据可以按8位字节或16位字转换。③可屏蔽中断:串行口在进行收发数据操作时,可以产生它们自己的可屏蔽收发中断(RINT和XINT)④传送数据方式:在软件控制下经中断进行。注意:C54X的串行口都是双缓冲的。(当串行发送或接收数据的操作正在进行时,可以将另一个数据传送到DXR或从DRR获得)。(2)缓冲串行口(BSP)
在(1)的基础上增加了一个自动缓冲单元(ABU)。BSP是一种增强型标准串行口。
ABU利用独立于CPU的专用总线,让串行口直接R/W’C54x的内部存储器。工作方式:①非缓冲方式:同(1)产生以字为基础中断(WXINT、WRINT)加到CPU。②自动缓冲方式:直接与C54x内部M进行16位数据传送。
(3)时分多路串行口
将时间间隔分成若干个子间隔,按照事先规定,每个子间隔表示一个通信信息。注意:C54xTDM最多可以有8个TDM信道可用。工作方式:非TDM方式{同(1)}和TDM方式用途:为多处理器通信提供简便而有效的接口。(用一个信息发送数据,用8个信道中的一个或一个以上的信道接收数据)。
总结:串行口(所有)都是双缓冲的。标准串行口的最高工作频率是CLKOUT的1/4。40MHZ,10Mbit/s。BSP与C54x的系统主时钟频率相同。
本节主要讨论(1)。2.串行口的组成框图串行口的组成DRR数据接收寄存器DXR数据发送寄存器地址:P266附录4RSR接收移位XSR发送移位控制电路16位硬件连线:DR:串行接收数据FSR:接收时帧同步信号CLKR:接收时钟信号
3.串行口控制寄存器(SPC)——16位
(P166图6-15)不同的应用需要不同的串行口工作模式,SP支持两种基本的工作模式。①连续模式(FSM=0):在每次接收、发送期间,只要
不断写入DRR或读出DXR,就只需一个起始帧同步脉冲。②突发模式(FSM=1):对每次传送都需要一个帧同步脉冲,在分组数据传送之间存在串行口非激活时间,利用这种模式可传送短的信息分组。
11109876543210XRDYRRDYIN1IN0RRSTXRSTTXMMCMFSMFODLBRESRRRRRR/WR/WR/WR/WR/WR/WR15141312FREESOFTRSRFULLXSREMPTYR/WR/WRR
SPC中各位的功能描述如下:Free、Soft:仿真控制位。RSRFULL:接收移位寄存器已满标志位。
:发送移位寄存器已空标志位。
XRDY:发送准备就绪位。RRDY:接受就绪位。
IN1、IN0:当CLKX引脚作为输入时,该位反映输入信号的电平。
:接收复位标志。:发送复位标志。TXM:发送方式(TXM)位。用于设定帧同步脉冲FSX的来源。
FSM:帧同步方式位。
FO:数据宽度标志位。DLB:数字自循环测试方式位。(为1时允许使用该功能,MCM)Res:保留位。此位总是读成0。
4.串行通信(1)查询法:查询SPC。
用查询法确定何时FIFO缓冲器(DRR、DXR、RSR、XSR)需要服务,则应在中断屏蔽reg(IMR)屏蔽他们,以使不能产生中断。
有两种方法:查询法和中断法,此两种方法管理R/W和FIFO缓冲器。(2)中断法:设置XINT或RINT。①复位和初始化SP
给SPC置0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论