定时器和中断系统(425)_第1页
定时器和中断系统(425)_第2页
定时器和中断系统(425)_第3页
定时器和中断系统(425)_第4页
定时器和中断系统(425)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、2.5片内外设 C54xC54x 片内外设包含如下几部分:片内外设包含如下几部分:外部总线操作;外部总线操作;通用通用I/OI/O口口( (引脚引脚) );定时器;定时器;时钟发生器;时钟发生器;主机接口;主机接口;同步串行接口;同步串行接口;时分复用串行接口时分复用串行接口(TDM)(TDM); 软件可编程等待状态发生器;软件可编程等待状态发生器;可编程存储器组切换模块。可编程存储器组切换模块。JTAG接口接口2.5.1 通用I/O口 通用通用I/O口有两个:跳转控制输入引脚口有两个:跳转控制输入引脚BIO和外部标志输出引脚和外部标志输出引脚XF 跳转控制输入引脚跳转控制输入引脚BIO :该

2、该引脚可用于监视外部设备的状态引脚可用于监视外部设备的状态 。程序程序可以根据引脚可以根据引脚BIO输入状态有条件地执行一个分支转移。输入状态有条件地执行一个分支转移。条件执行指令条件执行指令: XC n, cond,cond ,cond操作数操作数 n=1或或2功能功能:1、如果、如果n=1且条件满足,则在该指令之后的一条且条件满足,则在该指令之后的一条1-字指令被执行;字指令被执行; 2、如果、如果n=2且条件满足,则在该指令之后的一条且条件满足,则在该指令之后的一条2-字指令或两条字指令或两条1-字指令被执字指令被执行。行。 3、如果条件未满足,则根据、如果条件未满足,则根据n=1或或2

3、执行一条或两条执行一条或两条NOP指令。指令。例一例一: XC 1,ALEQ;如果如果A的值小于或等于的值小于或等于0,则执行,则执行1字指令字指令MAR *AR1+以修改以修改AR1 MAR *AR1+ ADD A,DAT100指令执行前指令执行前 指令执行后指令执行后A=FF FFFF FFFFhA=FF FFFF FFFFhAR1=0031hAR1=0032h例二例二: XC 2,BIO;如果引脚如果引脚BIO为低电平(条件满足),则执行后面的一条双字指为低电平(条件满足),则执行后面的一条双字指令或令或2条单字指令。条单字指令。外部标志输出引脚外部标志输出引脚XFXF外部标志输出引脚外

4、部标志输出引脚XF可以用于向外部设备发出信号。可以用于向外部设备发出信号。XF信号可以由软件控制。通过对信号可以由软件控制。通过对STl(bit13)中的中的XF位置位置1或清或清0 0, XF引脚输引脚输出为高电平和低电平,亦即出为高电平和低电平,亦即CPU向外部发出向外部发出1和和0信号。信号。 执行指令:执行指令: SSBX XF ;对对XF置位置位 RSBX XF ;对;对XF复位复位2.5.2 2.5.2 定时器定时器 C5402内部有内部有定时器定时器0和和定时器定时器1两个定时器。结构一样。两个定时器。结构一样。片内硬件定时器是片内硬件定时器是软件可编程软件可编程的,可用于周期性

5、地产生中断。的,可用于周期性地产生中断。定时器可以用来产生外部接口电路的采样时钟,如模拟接口。定时器可以用来产生外部接口电路的采样时钟,如模拟接口。 1. 定时器的结构和特点 定时器主要由3个16位的存储器映像寄存器及相应的逻辑控制电路组成。3个存储器映像寄存器的地址列于下表中。Timer0地址Timer1地址寄存器说明0024H0030HTIM定时器寄存器,每计数一次自动减10025H0031HPRD定时器周期寄存器,当TIM减为0后,CPU自动将PRD的值装入TIM0026H0032HTCR定时器控制寄存器,包含定时器的控制和状态位C54x DSP定时器结构如下图所示。它由两个基本功能块组

6、成,即主定时器模块(PRD和TIM)、预定标器模块(TCR中的TDDR和PSC等)及相应的逻辑控制电路。主定时器模块主定时器模块(由由PRD和和TIM组成组成)预定标器模块预定标器模块(由由TCR的的TDDR和和PSC位组成位组成)。 * 定时器寄存器(TIM):是减是减1计数器,可加载周期寄存器计数器,可加载周期寄存器PRD的值,并随计数减少。的值,并随计数减少。* 定时器周期寄存器(PRD):PRD用于重载定时器寄存器(TIM)。定时器控制寄存器(TCR) TCR包含定时器的控制和状态位,控控制定时器的工作过程。制定时器的工作过程。定时器主要特点:定时器主要特点:(1)定时器是一个减计数器

7、。定时器是一个减计数器。(2)由由16位计数器和位计数器和4位预分频计数器组成。位预分频计数器组成。16位计数器的触发位计数器的触发脉冲由预分频计数器提供,预分频计数器的触发脉冲是脉冲由预分频计数器提供,预分频计数器的触发脉冲是CPU时钟信号。时钟信号。(3) 有复位功能。有复位功能。(4) 可以选择调试断点时定时器的工作方式。可以选择调试断点时定时器的工作方式。定时器控制寄存器的控制和状态位如下:2.定时器控制寄存器(TCR) TCR各位的意义描述如下表所示 3定时器工作原理定时器工作原理定时器的定时器的工作过程工作过程:定时器的定时器的基准工作脉冲基准工作脉冲由由CLKOUT提供,每来一个

8、脉冲,预定提供,每来一个脉冲,预定标计数器标计数器PSC减减1,当,当PSC减至减至0时时,下一个脉冲到来时,下一个脉冲到来时,PSC产产生借位。生借位。借位信号借位信号分别控制定时计数器分别控制定时计数器TIM减减1和重新将和重新将TDDR的内容加载到预定标计数器的内容加载到预定标计数器PSC。每次定时计数器。每次定时计数器TIM 减为减为0 0时,时, PSC的的下一个借位信号到来时,下一个借位信号到来时, TIM也也产生借位信号,此借位产生借位信号,此借位信号作为中断信号送到信号作为中断信号送到CPUCPU和定时器输出引脚和定时器输出引脚TOUTTOUT ,同时控制或,同时控制或门门3

9、3重新用重新用PRD值装载值装载TIM 。 定时器的基本定时周期(定时时间)T可由下式计算: T=TCLKOUT*(TDDR+1)*(PRD+1) 4. 定时器的初始化初始化定时器的步骤如下:(1) (1) 对寄存器对寄存器TCRTCR中的中的TSSTSS位置位置1 1,停止定时器工作;,停止定时器工作;(2) (2) 装入装入PRDPRD初值;初值;(3) (3) 重新重新装入装入TCRTCR:初始化:初始化TDDRTDDR、将、将TSSTSS清清0 0启动定时器、将启动定时器、将TRBTRB置置1 1重新装入定时初值(重新装入定时初值(PRDPRD加载到加载到TIMTIM,TDDRTDDR

10、加载到加载到PSCPSC)。)。使能定时器中断的操作步骤如下使能定时器中断的操作步骤如下(假定假定INTM=1):(1)(1) 将将IFR中的中的TINT位置位置1,清除尚未处理完,清除尚未处理完(挂起挂起)的定时器中断。的定时器中断。(2)(2) 将将IMR中的中的TINT位置位置1,使能定时器中断。,使能定时器中断。(3)(3) 将将ST1中的中的INTM位清位清0,开放所有的中断。,开放所有的中断。例:例:用TMS320C54x作为信号发生器,输出周期为8ms的方波信号。假定主频f=10MHz。编写出汇编源程序。解:解:因为输出方波周期为8ms ,所以定时中断周期T(即定时时间)应为4m

11、s ,每中断1次将XF引脚引脚的电平取反1次便可在XF引脚产生周期为8ms的方波。(TDDR+1)(PRD+1)=T*f, T*f=4*10-3*10*106=40000取TDDR+1=16,则PRD+1=40000/16= 2500则TDDR=15,PRD=2499=9C3H程序如下:.mmregs.defSTART.defINTSERVEX.usectSTACK,10定时器的使用 FLAG.set60h.text START:STM #X+10,SPSTM #0120H,PMST;中断向量表首址0100h,定时 ;器中断向量014chSTM #0010H,TCRSTM #9C3H,PRDS

12、TM #0FEFH,TCRSSBX XFSTM #1,FLAGSTM #08H,IFRSTM #08H,IMRRSBXINTMWAIT:BWAIT;以下是中断服务程序INTSERVE:RSBXCPLLD#0,DPBITFFLAG,#1BCXFOUT,NTCRSBXXFSTM#0,FLAGB NEXTXFOUT:SSBXXFSTM#1,FLAGNEXT:RETE.end指令BITFSmem,#lk功能:如果(Smem)AND lk)=0则否则说明:该指令检测数据存储器操作数Smem的某位或多位,若指定位(一位或多位)为0,状态寄存器ST0中的TC位清0,否则置1。常数lk用于屏蔽待检测位。 要检

13、测Smem中某位或某几位是否为1时,常数lk中与之对应的位应为1,而其他位为0。例 BITF 60H,#0001H指令执行前TC=XDP=0RAM:(60H)=1205H7、命令文件的编写 命令文件在片内RAM中定义几个区间,用于存放与主程序和中断服务程序、中断向量表、堆栈相应的段。0TC1TC指令执行后TC=1DP=0RAM:(60H)=1205H定时器的使用用定时器可以实现方波发生器、脉冲频率监测器、周期信号周期监测等功能。用定时器可以实现方波发生器、脉冲频率监测器、周期信号周期监测等功能。 ORM #0010h,TCR0 ;停止定时器;停止定时器0 STM #799,TIM0 STM #

14、799,PRD0 STM #K_TCR0,TCR0 ;启动定时器;启动定时器0中断中断; K_TCR0=0269H ST #0FFFFh,IFR ;初始化中断;初始化中断 ORM #0008h,IMR RSBX INTM例如:用定时器设计一个周期为例如:用定时器设计一个周期为4ms的方波信号发生器。的方波信号发生器。假设假设DSP主频为主频为4MHZ(TCLKOUT=250ns), 方波信号周期为方波信号周期为4ms,那么定时中断那么定时中断周期应为周期应为T=2MS,每中断一次,输出端电平取反一次。每中断一次,输出端电平取反一次。定时中断周期定时中断周期T=TCLKOUT*(TDDR+1)*

15、(PRD+1), 假设假设TDDR=9,那么那么PRD=799(031FH).15-1211109-6543-0保留保留softfreePSCTRBTSSTDDR预定标预定标计数器计数器定时器重新加载定时器重新加载控制位控制位定时器停止位定时器停止位定时器分频系数定时器分频系数;K_TCR0设置定时器设置定时器0控制寄存器的内容控制寄存器的内容K_TCR0_SOFT .set 0b11K_TCR0_FREE .set 0b10K_TCT0_PSC .set 1001b6K_TCT0_TRB .set 1b5K_TCT0_TSS .set 0b4K_TCT0_TDDR .set 1001b PR

16、OM PAGE 0 .text: PROM PAGE 0 .data : DRAM PAGE 1 .bss : DRAM PAGE 1 2.6中断系统 C54x DSP既支持既支持软件中断软件中断,也支持,也支持硬件中断硬件中断:1、软件中断软件中断:由程序指令(:由程序指令(INTR、TRAP或或RESET)请求的中断。)请求的中断。2、硬件中断硬件中断:由物理设备信号请求的中断,他有两种形式:由物理设备信号请求的中断,他有两种形式:受外部中断口信号触发的外部硬件中断。受外部中断口信号触发的外部硬件中断。 受片内外设信号触发的内部硬件中断。受片内外设信号触发的内部硬件中断。一、中断分类一、中

17、断分类分成如下两大类:分成如下两大类:可屏蔽中断可屏蔽中断和和不可屏蔽中断不可屏蔽中断。1 1、可屏蔽中断可屏蔽中断:可以用软件来屏蔽或使能的中断:可以用软件来屏蔽或使能的中断 C54x DSPC54x DSP最多可以支持最多可以支持1616个用户可屏蔽中断,例如个用户可屏蔽中断,例如C5402C5402只使用只使用1414个可屏蔽个可屏蔽中断。这中断。这1414个中断的硬件名称为:个中断的硬件名称为: RINT0 RINT0、XINT0XINT0、RINT1RINT1和和XINT1XINT1(串行口中断)(串行口中断) TINT0 TINT0、TINT1TINT1(定时器中断)(定时器中断)

18、 HPINT HPINT、DMAC0DMAC0、 DMAC4、 DMAC5DMAC52 2、非屏蔽中断非屏蔽中断:这些中断是不能够屏蔽的。包括所有的软件中断,以及两个外:这些中断是不能够屏蔽的。包括所有的软件中断,以及两个外部硬件中断(部硬件中断( 复位和复位和 )。 RSNMI30INTINTC5402中断源的中断向量及硬件中断优先权二、中断标志寄存器(二、中断标志寄存器(IFR) 中断标志寄存器中断标志寄存器: :是一个存储器映射的是一个存储器映射的CPU寄存器寄存器,每个,每个可屏蔽中断可屏蔽中断在在IFRIFR中有其中有其相应的中断标志位,当相应的中断标志位,当CPUCPU接收到可屏蔽

19、中断请求时,接收到可屏蔽中断请求时,IFRIFR相应的位置相应的位置1 1。直到。直到CPU响应该中断为止。响应该中断为止。 将中断标志清将中断标志清0 的的4种方法种方法:C54x DSP复位(复位( 引脚为低电平)。引脚为低电平)。中断得到处理。中断得到处理。将将1写到写到IFR中的适当位(相应的位变为中的适当位(相应的位变为0),相应的尚未处理的中断被清除。),相应的尚未处理的中断被清除。利用合适的中断号执行利用合适的中断号执行INTR指令。指令。RS三、中断屏蔽寄存器三、中断屏蔽寄存器(IMR) 中断屏蔽寄存器(中断屏蔽寄存器(IMR): :是一个存储器映射的是一个存储器映射的CPU寄

20、存器,用寄存器,用来屏蔽外部和内部的来屏蔽外部和内部的可屏蔽中断可屏蔽中断。 如果状态寄存器如果状态寄存器ST1中的中的INTM位位=1,IMR无效。无效。当当ST1中的中的INTM位位=0时,时, IMR寄存器中的某一位为寄存器中的某一位为1,就使,就使能相应的中断。用户可以对能相应的中断。用户可以对IMR寄存器进行读写操作。寄存器进行读写操作。 四、四、处理中断的步骤处理中断的步骤 C54x DSP处理中断分如下三个步骤:处理中断分如下三个步骤:1、接收中断请求、接收中断请求通过软件(程序代码)或硬件(引脚或片内外设)请求挂起主程通过软件(程序代码)或硬件(引脚或片内外设)请求挂起主程序。

21、序。如果中断源正在请求一个如果中断源正在请求一个可屏蔽中断可屏蔽中断,则当中断被接收到时中断标志寄存器,则当中断被接收到时中断标志寄存器(IFR)的相应位被置)的相应位被置1。 、() 1() 11SPSPPCTOSKPCINTM 由 指定的中断向量例例 INTR 3指令执行前PC=0025h,IPTR=1FFhINTM=0SP=1000 hRAM:(0FFFh)=9653h指令执行后PC=FF8ChINTM=1SP=0FFF hRAM:(0FFFh)=0026h() 1() 11SPSPPCTOSKPCINTM 由 指定的中断向量(IPTR)7PC1 C0 DP0 BRAF0 C160 CP

22、L0 OVM0 OVA1 TC1 SXM0 HM0 FRCT1 INTM0 OVB0 ARP0 ASM1 XF0 CMPT0 IFR该指令执行非屏蔽的软件复位,以便使该指令执行非屏蔽的软件复位,以便使C54 x处于一个可知状态。处于一个可知状态。2、应答中断、应答中断执行中断服务程序(执行中断服务程序(ISR) 当应答中断后,当应答中断后,CPU会采取如下的操作:会采取如下的操作:1、把程序计数器(、把程序计数器(PC)值()值(返回地址返回地址)压入)压入堆栈堆栈;注意:程序计数器扩展寄存器(注意:程序计数器扩展寄存器(XPC)不会自动保存在堆栈中。因此,)不会自动保存在堆栈中。因此,如果如

23、果ISR位于和中断向量表不同的页面,用户必须在分支转移到位于和中断向量表不同的页面,用户必须在分支转移到ISR之之前压入前压入XPC到堆栈中。到堆栈中。FRETE指令可以用于从指令可以用于从ISR返回。返回。2、将、将中断向量的地址中断向量的地址加载到加载到PC;3、取出位于中断向量地址处的、取出位于中断向量地址处的分支转移指令分支转移指令(分支转移被延时时,并(分支转移被延时时,并且用户也存储了一个且用户也存储了一个2字指令或两个字指令或两个1字指令,则字指令,则CPU也会获取这两个也会获取这两个字);字);4、执行分支转移,转到中断服务程序(、执行分支转移,转到中断服务程序(ISR)。)。

24、(如果分支转移被延(如果分支转移被延时,则在分支转移之前会执行额外的指令);时,则在分支转移之前会执行额外的指令);5、执行中断服务程序直到遇到其中的、执行中断服务程序直到遇到其中的返回指令返回指令;6、从堆栈中弹出返回地址到、从堆栈中弹出返回地址到PC中中(注意(注意XPC若被保护,必须认为恢若被保护,必须认为恢复);复);7、回到、回到主程序主程序继续执行;继续执行;五、五、重新映射中断向量地址重新映射中断向量地址 1、中断向量地址的组成、中断向量地址的组成中断向量地址是由中断向量地址是由PMST(处理器工作方式状态寄存器)中的(处理器工作方式状态寄存器)中的IPTR(9位位中断向量指针中断向量指针)和左移)和左移2位后的中断向量序号(中位后的中断向量序号(中断向量序号为断向量序号为031,左移,左移2位后变成位后变成7位位)所组成。)所组成。例如,例如,INT0的中断向量号为的中断向量号为16或或10h,左移,左移2位后变成位后变成40h,若,若IPTR=0001h,则中断向量的地址为则中断向量的地址为00C0h,中断向量地址产生过程如下:中断向量地址产生过程如下:2、重新映射中断向量地址、重新映射中断向量地址C54x的中断向量表是可重定位的,即在DSP复位时, IPTR=1FFh

温馨提示

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

评论

0/150

提交评论