单片机原理及实用技术第5章中断系统及应用课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第5章 中断系统及应用
5. 时基信号中断
SPCE061A单片机提供了多组时基信号能作为中断源。 时基信号来自实时时钟32 768 Hz,输出有通过选频逻辑的 TMB1、TMB2信号和直接从时基计数器溢出的各种实时时基 信号,在开启时基信号中断的情况下,有时基信号时,便发 出 时 基 信 号 中 断 申 请 , CPU 查 询 到 有 中 断 请 求 后 , 置 位 P_INT_Ctrl中相应的中断请求标志位,在中断服务程序中通 过测试P_INT_Ctrl来确定是哪个频率的时基信号产生的中断 请求。
第5章 中断系统及应用
3. 事件中断
事件中断简称中断,以下提到的中断均为事件中断,一般 产生于片内某部件或由外设中断输入引脚引入的某个事件,这 种中断的开放/屏蔽由对应位和相应的IRQ或FIQ总使能控制, 由软件设置。
事件中断可采用两种方式:快速中断请求(FIQ)和中断请 求(IRQ),这两种中断都由相应的总使能来控制。
保留字 _FIQ/_IRQ0 _FIQ/_IRQ1 _FIQ/_IRQ2
FFFBH
_IRQ3
第5章 中断系统及应用
4096Hz 时基信号 2048Hz 时基信号 1024Hz 时基信号
4Hz 时基信号 2Hz 时基信号 频选信号TMB1 频选信号TMB2 UART 串行通信中断
IRQ4
IRQ5 IRQ6 IRQ7
第5章 中断系统及应用
中断系统
1
EXT1
EXT2 (下 降 沿 )
运算放大器
IOB2 ( I O B3 )
R
IOB4 C ( I O B5 )
图5.3 IOB2、IOB4或IOB3、IOB5之间的反馈结构
第5章 中断系统及应用
3. 串行通信口中断
串行通信口中断由SPCE061A内部串行通信口中断源产生。 串行通信口中断分为串行口发送中断和接收中断两种,共用一 个中断向量。因此,在进入串行通信口中断服务程序后,需要 判断是接收中断还是发送中断。
2) 清中断标志寄存器 P_INT_Clear (写)(7011H)
清中断标志寄存器用于清除中断控制标志位。当CPU响应 中断后中断标志仍为1,硬件并不自动清除该标志,当进入中 断服务程序后,必须将其控制标志清零,否则,CPU还会响应 该中断。
P_INT_Clear寄存器的每一位对应一个中断源(如表5.2所 示,具体位置与中断控制寄存器相同),如果想清除某个中断 标志,只要将该寄存器中对应位置1,即可清除该中断标志。 该寄存器只有写的属性,读该寄存器是无任何意义的。
第5章 中断系统及应用
1. 中断
5.1 概 述
中断是指计算机在执行某一程序的过程中,由于计算机系统内、 外的某种原因而必须终止原程序的执行,转去完成相应的处理程 序,待处理结束之后再返回继续执行被终止原程序的过程。
中断技术能实现CPU与外部设备的并行工作,提高CPU的利 用率及数据的输入/输出效率,能及时发现计算机运行过程中的 突发事件并自动处理,如计算机对外部事件、硬件故障、运算错 误、定时器溢出等做出响应。触键唤醒中断能使我们通过键盘发 出申请,随时对运行中的CPU提出请求,转而完成一些必须马上 处理的事件。
第5章 中断系统及应用
当串行通信口发送/接收完一组串行数据时,自动使串行 通信口控制寄存器P_UART_Command2中的TxReady和 RxReady中断标志置位,并向CPU发出中断请求,CPU响应串 行通信口中断后,转入中断服务程序执行。因此,只要在串行 通信口中断服务程序中,安排一段对P_UART_Command2寄存 器的TxReady和RxReady中断标志位的状态判断程序,便可区 分发生了接收中断还是发送中断请求。当然串行传输中既可以 使用中断方式收发数据,也可通过查询TxReady和RxReady中 断标志位的状态收发数据。串行通信口接收、发送端为B口的 IOB7(RxD)和IOB10(TxD)两个复用脚。
第5章 中断系统及应用
2. 中断源 中断源是指在计算机系统中向CPU发出中断请求的事件。
中断源可以是人为设定的,也可以是突发的随机事件。如定 时器中断就是由定时器溢出产生的中断。
第5章 中断系统及应用 3. 中断优先级
由于在实际应用系统中往往有多个中断源,且中断申请是 随机的,有时还可能会有多个中断源同时提出中断申请,但 CPU一次只能响应一个中断源发出的中断请求,这时CPU响应 哪个中断请求,就需要用软件或硬件按中断源工作性质的轻重 缓急给它们安排一个优先顺序,即所谓的优先级排队。中断优 先级越高则响应优先权就越高。当CPU正在执行中断服务程序 时,又有中断优先级更高的中断申请产生,CPU就会暂停原来 的中断处理程序而转去处理优先级更高的中断请求,处理完毕 后再返回原低级中断服务程序,这一过程称为中断嵌套,具有 这种功能的中断系统称为多级中断系统。没有中断嵌套功能的 则称为单级中断系统。
第5章 中断系统及应用
5.2 SPCE061A中断系统
5.2.1 中断类型
1. 软件中断
软件中断是由软件指令break 产生的中断,软件中断的向 量地址为FFF5H。
2. 异常中断
异常中断是非常重要的事件,该中断一旦发生,CPU必须 立即进行处理。目前,SPCE061A定义的异常中断只有复位一 种。通常系统复位可以由以下三种情况引起:上电、看门狗计 数器溢出和系统电源电压低于限值。不论什么情况引起复位, 都会使复位引脚的电位变低,进而使程序指针PC指向由复位向 量FFF7H所指的系统复位程序入口地址。
第5章 中断系统及应用
(3) 中断服务。通过执行中断服务程序完成相应的功能。
(4) 清除中断标志位。CPU响应中断后,要请除相应的中 断请求标志位,以免CPU再次响应该中断。
(5) 恢复现场。中断服务完成后,返回之前要用弹出堆栈 指令使保护在堆栈中的数据和寄存器的值弹出,以实现恢复 原有数据的目的。
中断系统 EXT1 EXT2
(负跳沿)
IOB2 (IOB3) 负跳沿触发
图5.2 外部中断信号
第5章 中断系统及应用
EXT1、EXT2可以由外部单脉冲产生中断请求信号,也可 以通过接入相应的阻容元件实现定时中断。
在IOB2和IOB4之间以及IOB3和IOB5之间分别接入两个反 馈电路,外接RC振荡器做外部定时中断使用,如图5.3所示, 此时,外部中断的反馈电路使用四个管脚(B口的IOB2、IOB3、 IOB4和IOB5引脚),其中IOB4和IOB5主要用来组成RC反馈电 路,通过IOB2和IOB4之间(或者IOB3和IOB5之间)增加一个RC 振荡电路,便可在EXT1(或EXT2)端得到振荡信号作为外中断 触发信号。为使反馈电路正常工作,必须将IOB2(或IOB3)设置 为反相输出方式,IOB4(或IOB5)设置为输入方式。
第5章 中断系统及应用
表5.2 中断控制寄存器功能表
中断控制位 中断向量
中断源
B15
FIQ_Fosc/1024
B14
FFF6H IRQ0_Fosc/1024
B13
FIQ_ TMA
B12
FFF8H IRQ1_TMA
B11
FFF9H FIQ_TMB
B10
FFFAH IRQ2_TMB
说明 Fosc/1024:系统时钟1024分频 定时器A溢出信号 定时器B溢出信号
第5章 中断系统及应用
CPU正 在
CPU执 行
CPU执 行
执行的
低级中断
高级中断

程 响
序 应低


服务程序 断请求
相应

服 级中
务 断
程 请
序 求
返回主程序
继续执行 主程序
返回低级中断程序
图5.1 中断嵌套示意图
第5章 中断系统及应用
4. 中断响应过程
中断响应过程有以下几步:
(1) 检测中断。在每一条指令结束后,系统自动检测中断 请求信号,如果有中断请求且相应的中断允许位为真(允许中 断)时,则响应中断。
FFFCH
FFFDH FFFEH FFFFH
_IRQ4 _IRQ5 _IRQ6 _IRQ7
第5章 中断系统及应用
1. 定时器中断
定时器中断由单片机内部定时器TimerA和TimerB产生。 在定时脉冲作用下从预置数单元初值开始加1计数,当计数为 0xFFFFH时,再加1便产生溢出,向CPU提出中断请求,以表 明定时器的定时时间到,定时时间可通过程序设定,通常用 于需要进行定时控制的场合。
(2) 保护现场。CPU一旦响应中断,中断系统会自动保存 当前内容PC和SR寄存器内容(通过入栈完成),执行中断服务 程序,中断服务程序还可以通过压入堆栈来保护原程序中用 到的数据和寄存器的值。保护现场前一般要关中断,以防止 现场保护过程中有高优先级中断发生而破坏现场保护。保护 现场一般是用堆栈指令将原程序中用到的寄存器压入堆栈, 现场保护之后要开中断,以便响应更高优先级的中断申请。
注意:在恢复现场前要关中断,以防止恢复现场过程中 再有中断响应破坏恢复现场。现场恢复后应及时开中断。
第5章 中断系统及应用
(6) 中断返回。此时CPU将PC指针和SR内容弹出堆栈恢复 断点,从而使CPU继续执行刚才被中断的程序。
在单片机中,中断技术主要用于实时控制和及时处理外 部突发事件。要求计算机能及时响应被控对象提出的分析计 算和控制等请求,使被控对象保持在最佳工作状态,以达到 预定的控制效果。由于这些控制参量的请求都是随机发生的, 而且要求单片机必须做出快速响应并及时处理,对此只有利 用中断技术才能实现。
第5章 中断系统及应用
B9
B8
FFFBH
B7
B6
B5
FFFCH
B4
B3 FFFDH
B2
B1 FFFEH
B0
FFF7H
FFFFH
FFF5H
IRQ3_EXT2 IRQ3_EXT1 IRQ3_KEY IRQ4_4 kHz IRQ4_2 kHz IRQ4_1 kHz IRQ5_4 Hz IRQ5_2 Hz IRQ6_TMB1 IRQ6_TMB2 RESET UART IRQ BREAK
第5章 中断系统及应用
5.2.2 中断源
表5.1 中断源列表
中断源 Fosc/1024溢出信号 PWMINT 音频输出 TimerA 溢出信号
Tim部信号输入EXT1
触键唤醒信号
中断优先级 FIQ/IRQ0 FIQ /IRQ1 FIQ /IRQ2
IRQ3
中断向量 FFF6H/FFF8H FFF6H/FFF9H FFF6H/FFFAH
第5章 中断系统及应用 5.2.3 中断控制
1. 中断控制寄存器 SPCE061A 单片机对中断源的开放和屏蔽以及每个中断源 是否被允许中断,都受中断允许寄存器P_INT_Ctrl和一些中断 控制指令的控制。下面分别作一介绍。
1) 中断控制寄存器 P_INT_Ctrl(读/写)(7010H) P_INT_Ctrl 控制单元具有读/写属性,其读写时表达的意 义不同。中断控制寄存器功能如表5.2所示。
第5章 中断系统及应用
4. 触键唤醒中断
当系统执行睡眠命令时,CPU便关闭PLL倍频电路,停止 CPU时钟,使系统进入睡眠状态。系统处于睡眠状态时,通 过IOA口低八位接的键盘给出唤醒信号,使系统接通PLL倍频 电路,启动CPU 时钟,将系统从睡眠状态转到工作状态, CPU从睡眠处继续执行程序。与此同时产生一个IRQ3_KEY中 断请求,进入唤醒中断。一般来讲,中断系统提供的中断源 FIQ(TMA)、IRQ1~IRQ7均可作为系统的唤醒源,作为定时 唤醒系统。
外部信号 2 中断 外部信号 2 中断 键盘唤醒中断 4096 Hz 时基信号中断 2048 Hz 时基信号中断 1024 Hz 时基信号中断 4 Hz 时基信号中断 2 Hz 时基信号中断 时基发生器 1 输出选频信号中断 时基发生器 2 输出选频信号中断 复位信号 串行通信口中断 软中断
第5章 中断系统及应用
第5章 中断系统及应用 2. 中断控制端口配置
P_INT_Ctrl (写) 1
0
— — — —
P_INT_Ctrl (读) —
第5章 中断系统及应用
2. 外部中断
SPCE061A单片机有两个外部中断EXT1和EXT2。两个外部 输入引脚分别与B口的IOB2和IOB3复用,即EXT1(IOB2)和 EXT2(IOB3)。引入两个外部中断源的中断请求信号,外部中断 以负跳沿触发方式输入中断请求信号,如图5.2所示。
第5章 中断系统及应用
相关文档
最新文档