《16位单片机及语音嵌入式系统》-赵定远-电子教案 第05章

上传人:E**** 文档编号:89404022 上传时间:2019-05-24 格式:PPT 页数:28 大小:371KB
返回 下载 相关 举报
《16位单片机及语音嵌入式系统》-赵定远-电子教案 第05章_第1页
第1页 / 共28页
《16位单片机及语音嵌入式系统》-赵定远-电子教案 第05章_第2页
第2页 / 共28页
《16位单片机及语音嵌入式系统》-赵定远-电子教案 第05章_第3页
第3页 / 共28页
《16位单片机及语音嵌入式系统》-赵定远-电子教案 第05章_第4页
第4页 / 共28页
《16位单片机及语音嵌入式系统》-赵定远-电子教案 第05章_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《《16位单片机及语音嵌入式系统》-赵定远-电子教案 第05章》由会员分享,可在线阅读,更多相关《《16位单片机及语音嵌入式系统》-赵定远-电子教案 第05章(28页珍藏版)》请在金锄头文库上搜索。

1、第五章 中断系统,5.1 中断的概述 中断是为处理器对外界异步事件具有处理能力而设置的,中断技术的引入把计算机的发展和应用大大地推进一步。因此中断功能的强弱已成为衡量一台计算机性能的重要指标。 1中断 中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因,而必须终止原程序的执行,转去执行相应的处理程序,待处理结束之后,再回来继续执行被终止的原程序过程。 中断技术能实现CPU与外部设备的并行工作,提高CPU的利用率以及数据的输入/输出效率;中断技术也能对计算机运行过程中突然发生的故障做到及时发现并进行自动处理如:硬件故障、运算错误及程序故障等;中断技术还能使我们通过键盘向计算机发

2、出请求,随时对运行中的计算机进行干预,而不用先停机,然后再重新开机等等。 2中断源 中断源是指在计算机系统中向CPU发出中断请求的来源,中断源可以人为设定 也可以是为响应突发性随机事件而设置。如定时器中断,它的中断源即是定时器。 3中断优先级 由于在实际的系统中,往往有多个中断源,且中断申请是随机的,有时可能会有多个中断源同时提出中断申请,但CPU一次只能响应一个中断源发出的中断请求,这时CPU应响应那个中断请求?这就需要用软件或硬件按中断源工作性质的轻重缓急,给它们安排一个优先顺序,即所谓的优先级排队。中断优先级越高,则响应优先权就越高。当,。 当CPU正执行中断服务程序时,又有中断优先级更

3、高的中断申请产生,如果CPU能够暂停对原来的中断处理程序,转而去处理优先级更高的中断请求,处理完毕后,再回到原低级中断处理程序,这一过程称为中断嵌套。具有这种功能的中断系统称为多级中断系统;没有中断嵌套功能的则称为单级中断系统。 中断嵌套示意图,4中断响应的过程 (1) 在每条指令结束后系统都自动检测中断请求信号,如果有中断请求,相应的中断允许位为真(允许中断),相应的总中断允许位为真(允许中断),则响应中断。 (2) 保护现场,CPU一旦响应中断,中断系统会自动的保存当前的PC和SR寄存器(入栈)进入中断服务程序地址入口,中断服务程序中可以通过入栈保护原程序中用到的数据,保护现场前,一般要关

4、中断以防止现场被破坏。保护现场一般是将堆栈指令将原程序中用到的寄存器推入堆栈,在保护现场之后要开中断,以响应更高优先级的中断申请。 (3) 中断服务,即为相应的中断源服务。 (4) 清相应的中断请求标志位,以免CPU总是执行该中断。 (5) 恢复现场,用堆栈指令将保护在堆栈中的数据弹出来,在恢复现场前要关中断,以防止现场被破坏,在恢复现场后应及时开中断。 (6) 返回,此时CPU将PC指针和SR内容出栈恢复断点,从而使CPU继续执行刚才被中断的程序,5.2 SPCE061A中断系统 SPCE061A系列单片机中断系统,是凌阳16位单片机中中断功能较强的一种,它可以提供14个中断源,具有两个中断

5、优先级,可实现两级中断嵌套功能。用户可以用关中断指令(或复位)屏蔽所有的中断请求,也可以用开中断指令使CPU接受中断申请。每一个中断源可以用软件独立控制为开或关中断状态;但中断级别不可用软件设置 SPCE061A的中断类型 : SPCE061A的结构给出了三种类型的中断:软件中断、异常中断和事件中断。 1) 软件中断 软件中断是由软件指令break产生的中断。软件中断的向量地址为FFF5H 2)异常中断 异常中断表示为非常重要的事件,一旦发生,CPU必须立即进行处理。目前SPCE061A定义的异常中断只有复位一种。通常,SPCE061A系统复位可以由以下三种情况引起:上电、看门狗计数器溢出以及

6、系统电源低于电压低限。不论什么情况引起复位,都会使复位引脚的电位变低,进而使程序指针PC指向由一个复位向量(FFF7H)所指的系统复位程序入口地址。 3)事件中断 事件中断(可简称“中断”,以下提到的“中断”均为事件中断)一般产生于片内设部件或由外设中断输入引脚引入的某个事件。这种中断的开通/禁止,由相应独立使能和相应的IRQ或FIQ总使能控制。,SPCE061A的事件中断可采用两种方式:快速中断请求即FIQ中断和中断请求即IRQ中断。这两种中断都有相应的总使能。 中断向量和中断源: 共有9个中断向量即FIQ、IRQ0IRQ6及UART IRQ。这9个中断向量共可安置14个中断源供用户使用,其

7、中有3个中断源可安置在FIQ或IRQ0IRQ2中,另有10个中断源则可安置在IRQ3IRQ6中。还有一个专门用于通用异步串行口UART的中断源,须安置在UART IRQ向量中 中断源 : SPCE061A单片机的中断系统有14个中断源分为两个定时器溢出中断、两个外部中断、一个串行口中断、一个触键唤醒中断、7个时基信号中断、PWM音频输出中断,中断源列表,定时器溢出中断源: 定时器溢出中断由SPCE061A内部定时器中断源产生,故它们属于内部中断;在SPCE061A内部有两个16位定时器/计数器,定时器TimerA/TimerB在定时脉冲作用下从预置数单元开始加计数,当计数为“0xFFFF”时可

8、以自动向CPU提出溢出中断请求,以表明定时器TimerA或TimerB的定时时间已到。定时器TimerA/TimerB的定时时间可由用户通过程序设定,以便CPU在定时器溢出中断服务程序内进行计时。 另外,SPCE061A单片机的定时器时钟源很丰富,从高频到低频都有,因此,根据定时时间长短可以选择不同的时钟源,定时器A的时钟源比定时器B多,定时器B无低频时钟源。在中断一览表中也可以看出,定时器A的中断,IRQ和FIQ中都有,方便开发人员的使用。定时器溢出中断通常用于需要进行定时控制的场合。 外部中断源: SPCE061A单片机有两个外部中断,分别为EXT1和EXT2,两个外部输入脚分别为B口的I

9、OB2和IOB3的复用脚。EXT1(IOB2)和EXT2(IOB3)两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断以负跳沿触发方式来输入中断请求信号 外部中断结构,另外,SPCE061A单片机在IOB2和IOB4之间以及IOB3和IOB5之间分别加入两个反馈电路,可以外接RC振荡器,做外部定时中断使用。如图5.3,外部中断的反馈电路使用四个管脚为B口的IOB2,IOB4,IOB3,和IOB5的复用脚,其中IOB4和IOB5主要用来组成RC反馈电路之结构。通过IOB2和IOB4之间或者IOB3和IOB5之间增加一个RC振荡电路,便可在EXT1或EXT2端得到振荡信号

10、。为使反馈电路正常工作,必须将IOB2或IOB3设置成反相输出口,且IOB4或IOB5设成输入口。 RC中断系统EXT1(EXT2)(负跳沿)IOB2(IOB3)IOB4(IOB5) 图示 IOB2,IOB4,或IOB3,IOB5之间的反馈结构,串行口中断源: 串行口中断由SPCE061A内部串行口中断源产生,故也是一种内部中断。串行口中断分为串行口发送中断和串行口接收中断两种,但其中断向量是一个,因此,进入串行中断服务程序时,也需要判断是接收中断还是发送中断。在串行口进行发送/接收完一组串行数据时,串行口电路自动使串行口控制寄存器P_UART_Command2中的TXReady和RXRead

11、y中断标志位置位。并自动向CPU发出串行口中断请求,CPU响应串行口中断后便立即转入串行口中断服务程序执行。因此,只要在串行中断服务程序中安排一段对P_UART_Command2对TXReady和RXReady中断标志位状态的判断程序,便可区分串行口发生了接收中断请求还是发送中断。当然,串行传输中,既可以使用中断方式收发数据也可使用查询方式来收发数据。主要根据程序的设计。在SPCE061A中串行口为B口的IOB7(RXD)和IOB10(TXD)两个复用脚。如图示:,触键唤醒中断源 : 当系统给出睡眠命令时,CPU便关闭PLL倍频电路,停止CPU时钟工作而使系统进入睡眠状态,在睡眠过程中,通过I

12、OA口低8位接的键盘就可以给出唤醒信号使系统接通PLL倍频电路,启动CPU时钟工作,将系统从睡眠状态转到工作状态。与此同时,产生一个IRQ3中断请求。进入键唤醒中断,CPU继续执行下一个程序指令。一般来讲,中断系统提供的中断源FIQ(TMA)、IRQ1IRQ7均可作为系统的唤醒源来用,做定时唤醒系统。 若以触键作为唤醒源,其功能通过并行A口的IOA0IOA7及中断源IRQ3_KEY的设置来实现。 时基信号中断源 : 时基信号发生器的输入信号来自实时时钟32768Hz;输出有通过选频逻辑的TMB1、TMB2信号和直接从时基计数器溢出而来的各种实时时基信号。当开启时基信号中断后,有时基信号到来,发

13、出时基信号中断申请,CPU查询到有中断请求后,允许中断并置位P_INT_Ctrl中相应的中断请求位,在中断服务程序中通过测试P_INT_Ctrl来确定是那个频率时基信号产生的中断,可以通过在计数不同频率的时基信号来做长时间或短时间的定时控制。 中断控制 : SPCE061A单片机有多个中断源,为了使每个中断源都能独立地被开放和屏蔽,以便用户能灵活使用,它在每个中断信号的通道中设置了一个中断屏蔽触发器,只有该触发器无效,它所对应的中断请求信号才能进入CPU,即此类型中断开放。否则即使其对应的中断请求标志位置“1”,CPU也不会响应中断,即此类型的中断被屏蔽。同时CPU内还设置了一个中断允许触发器

14、,它控制CPU能否响应中断。,中断控制寄存器 : SPCE061A对中断源的开放和屏蔽,以及每个中断源是否被允许中断,都受中断允许寄存器P_INT_Ctrl和P_INT_Clear及P_INT_Ctrl_New控制和一些中断控制指令。 1.中断控制单元P_INT_Ctrl(读/写)(7010H) P_INT_Ctrl控制单元具有可读和可写的属性,其读写时的意义是不同的。,当写中断控制单元中的某位为“1”时,即允许该位所代表的中断被开放,并关闭屏蔽中断触发器,此时当有该中断申请时,CPU会响应。否则如果该位被置0则禁止该位所代表的中断。即使有中断申请,CPU也不会响应。 当读取中断控制单元时,其

15、主要作为中断标志,因为其每一位均代表一个中断,当CPU响应某中断时,便将该中断标志置“1”,即将P_INT_Ctrl中的某位置“1”,可以通过读取该寄存器来确定CPU响应的中断。,2清除中断标志控制单元P_INT_Clear(写)(7011H) 清除中断标志控制单元主要用于清除中断控制标志位,当CPU响应中断后,会将中断标志置位为“1”,当进入中断服务程序后,要将其控制标志清零,否则CPU总是执行该中断。,因为P_INT_Clear寄存器的每一位均对应一个中断,所以如果想清除某个中断状态标志,只要将该寄存器中对应的中断位置1即可清除该中断状态标志位。该寄存器只有写的属性,读该寄存器是无任何意义

16、的。,3.激活和屏蔽中断控制单元P_INT_Ctrl_New(读/写)($702DH) 该单元用于激活和屏蔽中断。,当写该控制单元时,与P_INT_Ctrl功能相似。 读该控制单元时,只作为了解激活那一中断的功能使用。与其写入值是一致的。,中断控制配置端口,中断控制指令 : 1FIQ ON 功能:用来开通FIQ中断(FIQ的总中断允许开),其控制指令不能代替P_INT_Ctrl,也就是说即使在程序中,写了该代码但是没有在P_INT_Ctrl寄存器中FIQ处置位1,CPU无法响应该中断。FIQ ON与FIQ OFF配对使用的。 2FIQ OFF 功能:这个指令用来屏蔽FIQ中断。该指令可以屏蔽P_INT_Ctrl控制寄存器打开的FIQ中断; 3 IRQ ON(IRQ的总中断允许开) 功能:这个指令用来开放IRQ中断,该控制指令不能代替P_INT_Ctrl,与FIQ ON 相同。必须通过P_INT_Ctrl来开通中断,其与IRQ OFF是对应使用的。 4 IRQ OFF 功能:这个指令是用来屏蔽IRQ中断。与FIQ OFF相同,可

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号