第6章 STM8中断控制系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11(最高),因此没有软件优先级寄存器位与之对应。一旦这两 个中断有效,CPU响应后CC寄存器内的中断优先级标志I1、 I0位自动置1。
正因如此,ITC_SPR1寄存器的b1、b0对应TLI,即0号 中断,而不是复位中断RESET;同理,TC_SPR1寄存器的 b3、b2对应AWU,即1号中断,而不是软件中断TRAP; ITC_SPR8寄存器的b3、b2对应29号中断。即ITC_SPR8~ ITC_SPR1定义了30个中断源(编号为0~29,其中25~29中
向量地址 8000h 8004h 8008h 800Ch 8010h 8014h 8018h 801Ch 8020h 8024h 8028h 802Ch 8030h 8034h 8038h 803Ch 8040h 8044h 8048h 804Ch 8050h 8054h 8058h 805Ch 8060h 8064h 8068h 806Ch到 807Ch
● 不可屏蔽的中断:
RESET,TLI 和 TRAP

可屏蔽中断: 外部中源 不可屏蔽中断不会考虑CC寄存器的I1和I0的状态。仅仅当TRAP 中断发生时候将PC,X, Y, A 和 CC 寄存器的内容压栈。相应的向量载入到PC寄存 器中同时置位I1和I0位禁止中断(3级优先级)。 STM8S支持32个中断,中断服务程序入口地址称为中断向量,放在 8000H~807FH之间。每个中断向量占4个字节,共4x32(128字节)。中断服 务程序可放在16MB任一存储区。
断号保留,没有定义)的优先级,而ITC_SPR8寄存器的高4
位没有定义。
(4) 优先级10最低,分配给主程序使用。因此,不允许
将中断优先级设为10。如果将某一个中断优先级设为10, 为使对应中断请求得到响应,STM8 CPU将保留该中断源 先前的优先级。换句话说,当前中断优先级设置操作无效。 (5) 当两个或两个以上可屏蔽中断源具有相同的软件优 先级时,硬件查询顺序如表6-1所示,即1号中断(自动唤醒 中断AWU)优先级最高,CLK中断次之,而24号中断
描述 复位 软件中断 外部最高级中断 自动唤醒HALT模式中断 时钟控制器 端口A外部中断 端口B外部中断 端口C外部中断 端口D外部中断 端口E外部中断 CAN RX 中断 CAN TX/ER/SC 中断 发送完成 更新/上溢出/下溢出/触发/刹车
从停机(Halt) 模式 唤醒功能 是
从活跃停机(Active Halt)模式唤醒功能 是
第6章 STM8中断控制系统
6.1 CPU与外设通信方式概述 6.1.1 查询方式 6.1.2 中断通信方式 6.2 STM8S中断系统 6.2.1 中断源及其优先级 6.2.2 中断响应条件与处理过程 6.2.3 外中断源及其初始化 6.2.4 中断服务程序结构
广东工业大学物理与光电工程学院
6.1 CPU与外设通信方式概述

复位值:0xFF
7 ITC_SPR1
6
5
4
3
2
1
0
VECT3SPR[1:0]
VECT2SPR[1:0]
VECT1SPR[1:0]
VECT0SPR[1:0]
ITC_SPR2
VECT7SPR[1:0]
VECT6SPR[1:0]
VECT5SPR[1:0]
VECT4SPR[1:0]
ITC_SPR3
VECT11SPR[1:0]


外设与CPU之间的通信方式有三种: 查询方式 中断方式 直接存储器存取(DMA)方式。
广东工业大学物理与光电工程学院
6.1.1 查询方式


查询方式包括查询输出方式和查询输入方式。 所谓查询输入方式,是指CPU读外设数据前, 先查询外设是否处于准备就绪状态(即外设是 否已将数据输出到CPU的数据总线上);查询 输出方式是指CPU向外设输出数据前,先查询 外设是否处于空闲状态(即外设是否可以接收 CPU输出的数据)。 下面以CPU向外设输出数据为例,简要介绍查 询传输方式的工作过程:当CPU需要向外设输 出数据时,先将控制命令(如外设的启动命令) 写入外设的控制端口,然后不断读外设的状态 口,当发现外设处于空闲状态后,就将数据写 入外设的数据口,完成数据的输出过程。
基于如下资源的中断管理:
● 位I1和I0位于CPU的条件代码寄存器(CCR)
● 软件优先级寄存器 (ITC_SPRx) ● 复位向量地址0x00 8000位于程序空间的起始部分。对于具有启 动ROM的型号,ST公司把 复位初始化程序固化在ROM区中。 ● 固定的中断向量地址位于程序空间映像的高位地址段(0x00 8004 to 0x00 807C),其地址顺 序即为硬件的优先顺序。
VECT10SPR[1:0]
VECT9SPR[1:0]
VECT8SPR[1:0]
ITC_SPR4
VECT15SPR[1:0]
VECT14SPR[1:0]
VECT13SPR[1:0]
VECT12SPR[1:0]
ITC_SPR5
VECT19SPR[1:0]
VECT18SPR[1:0]
VECT22SPR[1:0]
保留
VECT29SPR[1:0] 广东工业大学物理与光电工程学院
VECT28SPR[1:0]
图6-1 STM8中断源优先级排列顺序
软件优先级
软件优先级别 0级(主程序) 1级 2级 3级(=无软件优先级)
优先级
I1 1
I2 0 1 0 1
低 ↓ 高
0 0 1
硬件的中断优先级按如下顺序排列,从低到高的优先 级是: MAIN, IT4, IT3, IT2, IT1, IT0, TRAP/TLI( 同等优先级) 以及RESET。
VECT16SPR[1:0]
ITC_SPR6
VECT23SPR[1:0]
VECT22SPR[1:0]
VECT21SPR[1:0]
VECT20SPR[1:0]
ITC_SPR7
VECT27SPR[1:0]
VECT26SPR[1:0]
VECT25SPR[1:0]
VECT24SPR[1:0]
ITC_SPR8
(FLASH)优先级最低。未被响应的中断请求处于等待状态。
(6) 对于RESET、TRAP、TLI不可屏蔽源来说,复位中断
RESET级别最高,只要复位中断RESET有效,任何时候CPU
均可响应。而当TRAP(软件中断)、TLI (顶级硬件中断)同时
有效时,CPU先响应TRAP中断请求,如图6-2所示。
广东工业大学物理与光电工程学院
中断屏蔽和处理流程

中断屏蔽是通过CC寄存器的位I1和位I0以及 设置每个中断向量的软件优先级的ITC_SPRx 来管理的。
广东工业大学物理与光电工程学院
图6-3 中断嵌套示意图
6.2.2 中断响应条件与处理过程

① ②
中断响应条件: 对于可屏蔽中断,当一个中断请求出现时, 必须满足一列条件,CPU才会响应。 对应中断必须处于允许状态。 该中断优先级(ITC_SPRx寄存器对应位定 义)必须高于当前正在执行的中断服务程 序的优先级(记录在寄存器CC的I1、I0 位)。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

是 是 是 是 是 是 是 是 是 是 是 是 是 是
捕获/比较 更新/上溢出 捕获/比较 更新/上溢出 捕获/比较 发送完成 接收寄存器满 I2C中断 是 发送完成 接收寄存器满 转换结束 更新/上溢出 编程结束/禁止编程 广东工业大学物理与光电工程学院 保留
广东工业大学物理与光电工程学院
当一个中断请求必须被响应时:



1. 在当前正在执行指令结束之后,正常的操作 被悬起; 2. PC,X,Y,A和CC寄存器被自动压栈,9个字节; 3. 根据ITC_SPRx寄存器中的值对应的中断服务 向量,CC寄存器中的位I1和I0被相应设置; 4. 通过中断向量载入中断服务子程序的入口地 址,接着对中断服务子程序的第一条指令取址。 5.中断服务子程序必须以IRET指令结束,该指 令会把堆栈中的保存的寄存器内容出栈,同 时由于运 行IRET指令,位I1和位I0被重新恢 复,程序也恢复运行。
中断请求 中 断 请 求
2017/6/10
广东工业大学物理与光电工程学院
3. 中断开关 有时为避免某一处理过程被中断,中断控制器 给每一个中断源都设置了一个中断请求屏蔽位,用 于屏蔽(即禁止)相应中断源的中断请求,当某一 中断源的中断请求处于禁止状态时,即使该中断请 求有效,CPU也不响应,相当于中断源的中断开关。 此外,还设一个总的中断请求屏蔽位,当该位处于 禁止状态时,CPU忽略所有中断源的中断请求,相 当于中断源总开关。 RIM(开中断), SIM(关中断) 4、中断处理过程 中断处理过程涉及中断查询和响应两个方面。
广东工业大学物理与光电工程学院
中断向 量号
中断源 RESET TRAP TLI AWU CLK EXTI0 EXTI1 EXTI2 EXTI3 EXTI4 CAN CAN SPI TM1 TM1 TM2 TM2 TM3 TM3 UART1 UART1 I2C UART2/3 UART2/3 ADC TIM4 FLASH
广东工业大学物理与光电工程学院
(2) ITC_SPR1寄存器中的VECT0SPR[1:0]对应顶级中断TLI,
即PD7引脚中断,其中断优先级被系统强制置为11(最高级),
不可更改,且属于不可屏蔽中断,即TLI中断有效时,可中断
优先级为3的任意一个可屏蔽中断源的中断服务程序。
(3) 不可屏蔽中断事件RESET、TRAP优先级被默认为
4.AD转换结束中断。 5. 串行发送结束中断。 6. 串行接收有效中断。 7. 电源掉电中断。
2017/6/10
广东工业大学物理与光电工程学院
2.中断优先级 当多个外设以中断方式与CPU进行数据交换时, 可能遇到两个或两个以上外设中断请求同时有效的 情形。在这种情况下, CPU先响应哪一外设的中断 请求?这就涉及到中断优先级问题。一般说来,为 了能够处理多个中断请求,中断控制系统均提供中 断优先级控制。有了中断优先级控制后,就可以解 决多个中断请求同时有效时,先响应哪一请求中断 问题,以及高优先级中断请求可中断低优先级中断 处理进程,实现中断嵌套。
广东工业大学物理与光电工程学院
1. 中断源 在计算机控制系统中,把引起中断的事件称为中断 源。在单片机控制系统中,常见的中断源有:
1. 外部中断,如CPU某些特定引脚电平变化引起的中断。 2. 各类定时/计数器溢出中断即定时时间到或计数器满中断)。 3.EEPROM 或FlashRom操作(擦除、写入)结束中断。
2017/6/10
广东工业大学物理与光电工程学院
6.2 STM8S中断系统

6.2.1 6.2.2 6.2.3 6.2.4
中断源及其优先级 中断响应条件与处理过程 外中断源及其初始化 中断服务程序结构
广东工业大学物理与光电工程学院
6.2.1 中断源及其优先级
STM8中断控制器处理2种类型的中断源:
广东工业大学物理与光电工程学院
查询方式优缺点: 硬件开销少、传输程序简单,但缺点是CPU 占用率高,因为在外设未准备就绪或处于非空闲 状态前,CPU一直处于查询状态,不能执行其他 操作,任何时候也只能与一个外设进行数据交换。
广东工业大学物理与光电工程学院
6.1.2 中断通信方式

采用中断传输方式就可以克服查询传输方式存在的缺陷: 当CPU需要向外设输出数据时,将启动命令写入外设控 制口后,就继续执行随后的指令序列,而不是被动等待; 当外设处于空闲状态,可以接收数据时,由外设向CPU 发出允许数据传送的请求信号——即中断请求信号,如 果满足中断响应条件,CPU将暂停执行随后的指令序列, 转去执行预先安排好的数据传送程序——称为中断服务 程序,CPU响应外设中断请求的过程简称为中断响应; 待完成了数据传送后,再返回断点处继续执行被中断了 的程序——这一过程称为中断返回。可见,在这种方式 中,CPU发出控制命令后,将继续执行控制命令后的指 令序列,而不是通过检测外设的状态来确定外设是否处 于空闲状态,这不仅提高了CPU的利用率,而且能同时 与多个外设进行数据交换——只要合理安排相应中断的 优先级以及同优先级中断的查询顺序即可。因此,中断 传输方式是CPU与外设之间最常见的一种数据传输方式。
相关文档
最新文档