第5章 中断机制

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

中断源
nBATT_FLT
23 INT_UART1 15 INT_UART2 7 6 5 4 3 2 1 0
INT_RTC
INT_SPI1 INT_IIC INT_USBH INT_USBD 保留
保留
EINT8_23 EINT4_7 EINT3 EINT2 EINT1 EINT0
28 INT_UART0 20 INT_DMA3 19 INT_DMA2 18 INT_DMA1 17 INT_DMA0 16
2.中断模式寄存器(INTMOD)
位号
31 30 29 27 26 25 24
中断源
INT_ADC
位号
22 21
中断源
INT_SPI0
INT_SDI
位号
14 13 12 11 10 9 8
中断源 位号
INT_TIM4
INT_TIM3 INT_TIM2 INT_TIM1 INT_TIM0 INT_WDT INT_TICK
INT_LCD
该寄存器也就是中断标志寄存器 各位: 1:对应中断源有中断请求 0:对应中断源无中断请求 注意:必须在中断处理程序中对其标志位清0。其方法为写1. 23
2.中断模式寄存器(INTMOD)
中断模式寄存器(INTMOD)是32位的, S3C2440的中断模式有2种:FIQ模式和IRQ 模式。
源未决寄存器
中断模式寄存器 中断屏蔽寄存器 中断优先级寄存器 中断服务寄存器 中断偏移寄存器 子源挂起寄存器
Register
SRCPND
INTMOD INTMSK INTPND
Reset Value
0x00000000
0x00000000 0xFFFFFFFF 0x7F 0x00000000 0x00000000 0x00000000 0x7FF
1.源未决寄存器(SRCPND)
位号
31 30
中断源
INT_ADC INT_RTC
位号
22
中断源
INT_SPI0
位号
14
中断源 位号
INT_TIM4
中断源
nBATT_FLT 保留
23 INT_UART1 15 INT_UART2 7 6
29
27 26 25 24
INT_SPI1
INT_IIC INT_USBH INT_USBD 保留
程序查询方式下,微 处理器的效率是非常 低的,因为微处理器 要花费大量的时间测 试I/O端口或部件的状 态。 I/O端口或部件的数据 也不能得到实时地处 理。
3
5.1 中断方式原理
当CPU在执行程序的过程中,外部事件向 CPU 发出信号, 请求 CPU 迅速去处理,于是, CPU暂时中止执行当前程 序,转去处理相应的事件,待处理完毕后,再继续执行 原来被中止的程序,这样的过程称为 “中断”。 中断系统主要用于需要及时处理的高速随机事件或信号, 对于那些看来非常重要的信号(诸如急停开关、限位开关、 键盘等),其响应速度要求并不高,切不可滥用中断。
29
27 26 25 24
INT_SPI1
INT_IIC INT_USBH INT_USBD 保留
各位:
21
INT_SDI
13
12 11 10 9 8
S3C2410芯片的32 个中断请求信号,在 系统复位初始状态下, 按照图中由上到下的 顺序,中断优先级由 高到低排列,即 EINT0中断优先级最 高,INT_ADC中断 优先级最低。
复 位 时 优 先 级 由 高 到 低
ARBITER0~ARBITER5组成一级裁决,每个裁决器 用1位裁决模式控制信号(ARB_MODE)和2位选择控 制信号(ARB_SEL)确定中断优先级,共可确定6级中 断请求的优先级,具体如下:
中断执行过程:
主程序
中断服务程序

中断的形象示意:
5
5.1.1 中断操作步骤
初始化微处理器中用于中断方式的寄存器,开放中 断。 I/O端口或部件完成数据操作后并产生中断请求信 号。 当中断请求信号有效时,微处理器可能处在不可中 断状态。等到微处理器允许中断时,微处理器就保 存当前状态,停止它现行的操作并开始进行中断源 的识别。 在识别出优先级最高的中断源后,微处理器转到对 应的中断服务例程入口,并应答中断,I/O端口或 部件收到应答信号后,撤消其中断请求。 微处理器读入或写出数据,当中断服务例程结束后, 回到原来的被中断程序处继续执行。
如果REQ0 或REQ5 被中断处理,ARB_SEL位不会变化。 如果REQ1 被处理,ARB_SEL位变为 01。 如果REQ2 被处理,ARB_SEL位变为 10。 如果REQ3 被处理,ARB_SEL位变为 11。
5.2.3 中断控制寄存器

有8个专用寄存器
Address R/W Description
向量识别中断
向量识别中断就是微处理器响应中断后,要求中 断源提供一个地址信息,该地址信息称为中断向 量(或叫中断矢量),微处理器根据中断向量 (矢量)转移到中断复位程序处执行。所以,中 断向量就是中断服务程序的入口地址。
固定中断向量
各个中断源的中断服务入口地址是固定不变的, 由微处理器设计时已经确定,系统设计者不能改 变。多数单片机系统的中断即是如此。 可变中断向量
0x4A000000 R/W
0x4A000004 R/W 0x4A000008 R/W 0x4A000010 R/W R
PRIORITY 0x4A00000C R/W INTOFFSET 0x4A000014
SUBSRCPND 0x4A000018 R/W
INTSUBMSK 0x4A00001C R/W 中断子源屏蔽寄存器
设备3 接口
CPU以及 总线 控制逻辑 INTA INTR
菊花链 逻辑电路
1.菊花链中断优先电路
中断请求没有得到响应
设备1 接口
中断回答 中断请求
设备2 接口
设备3 接口
CPU以及 总线 控制逻辑 INTA INTR
菊花链 逻辑电路
越靠近CPU的接口,优先级越高
2.中断优先级编码电路
5.2 源自文库3C2410的中断系统
INTMSK寄存器的地址是0x4A000008,复 位后为0xFFFFFFFF。
3.中断屏蔽寄存器(INTMSK)
位号
31 30
中断源
INT_ADC INT_RTC
位号
22
中断源
INT_SPI0
位号
14
中断源 位号
INT_TIM4
中断源
nBATT_FLT 保留
23 INT_UART1 15 INT_UART2 7 6
如果ARB_SEL位是00,优先级是REQ0,REQ1,REQ2,REQ3, REQ4,和REQ5。 如果ARB_SEL位是01,优先级是REQ0,REQ2,REQ3,REQ4, REQ1,和REQ5。 如果ARB_SEL位是10,优先级是REQ0,REQ3,REQ4,REQ1, REQ2,和REQ5。 如果ARB_SEL位是11,优先级是REQ0,REQ4,REQ1,REQ2, REQ3,和REQ5。 注意:裁决器的REQ0总是有最高优先级,REQ5总是有最低优先级。 此外通过改变ARB_SEL 位,可以循环REQ1到REQ4的优先级。
第5章 中断机制
概述
CPU与外设之间传输数据的控制方式通常有3种
程序查询方式、中断方式和DMA方式。
中断方式在嵌入式系统中应用极为广泛
节省CPU时间 提高CPU的利用率
中断技术主要是用于I/O接口部件与微处理器之 间进行数据传输的控制,它协调了数据传输的双 方的步调。
2
程序查询方式的缺陷
5.2.2 中断优先级
如果 ARB_MODE位置0,ARB_SEL位不会自动改变, 使得裁决器在一个固定优先级的模式下操作(注意在此 模式下,我们通过编程设置ARB_SEL位来配置优先 级)。 如果ARB_MODE 位是1,ARB_SEL位以翻转的方式 改变。例如如果REQ1被处理,则 ARB_SEL位自动的 变为 01,把REQ1放到最低的优先级。ARB_SEL 变 化的详细规则如下:
5.2.2中断优先级
S3C2410芯片中断控制器支持的56个中断源,由 于其中有些中断共用中断请求信号线,因此,实 际中断请求信号有32个。 这32个中断请求的优先级仲裁判决机制采用了中 断优先级编码判断电路原理。其裁决逻辑由7个 基本裁决器组成,其中6个一级裁决器和1个二级 裁决器。
16
5.2.2中断优先级
如果某位设置成1,则相应的中断按FIQ模式处理。 若设置成0,则按IRQ模式处理。
请注意仅有一个中断源能够在FIQ模式下处理, 也就是说,INTMOD仅有一个位可以被置1。 因此,用户应该将最紧迫的中断源设置为FIQ模 式使用。 INTMOD寄存器的地址是0x4A000004,复 位后为0x00000000。
INT_LCD
该寄存器是设置各中断源是FIQ中断还是IRQ中断 各位: 1:对应中断源设为FIQ中断模式 0:对应中断源设为IRQ中断模式
3.中断屏蔽寄存器(INTMSK)
中断屏蔽寄存器(INTMSK)也是由32位组成, 每一位与一个中断源相对应。
若某位设置为1,则中断控制器不会处理该位所对应的 中断源提出的中断请求。 如果设置为0,则对应的中断源提出的中断请求可以被 处理。
5.1.2 中断源及其识别方法
嵌入式系统中,需要采用中断控制方式的I/O端 口或部件有许多,如S3C2410芯片中就有56个中 断源。 而通常微处理器能够提供的中断请求信号线是有 限的,如ARM920T核提供给外部的中断请求信 号线仅有IRQ和FIQ两根。 因此,当有中断产生时,微处理器就必须通过一 定的方式识别出是哪个中断源发来的请求信号, 以便转向其对应的中断服务程序例程,这就是中 断源的识别。
中断服务程序的入口地址不是固定不变的,系统 设计者可以根据自己的需要进行设置。
优点:设计比较灵活,用户可根据需要设定中断向量 表在主存中的位置 。 缺点:中断响应速度较慢。
5.1.3 中断优先级仲裁
若嵌入式系统中由多个中断源,则这些中断源必 须要进行中断优先级的排列。所谓优先级,指的 以下两层含义:
21
INT_SDI
13
12 11 10 9 8
INT_TIM3
INT_TIM2 INT_TIM1 INT_TIM0 INT_WDT INT_TICK
5
4 3 2 1 0
EINT8_23
EINT4_7 EINT3 EINT2 EINT1 EINT0
28 INT_UART0 20 INT_DMA3 19 INT_DMA2 18 INT_DMA1 17 INT_DMA0 16
实际上,S3C2410的中断系统分成两级: 一级是控制内部外围I/O端口或部件、或者芯 片外部中断引脚(EINTn)的中断控制; 一级是ARM920T核的异常中断控制,采用了 固定向量中断方式。
(续)
S3C2410芯片中的中断控制器可以支持56个中断 源提出的中断请求。这些中断源由芯片内部的 I/O端口或部件如DMA控制器、UART、IIC 、RTC等,以及外部中断引脚提供。 S3C2410X的ARM920T内核有两个中断, IRQ中断和快速中断FIQ。 中断仲裁:当中断控制器接收到多个中断请求时, 其内的优先级仲裁器裁决后向CPU发出优先级最 高的中断请求信号或快速中断请求信号。
主要使用前5个寄存器
1.源未决寄存器(SRCPND)
中断源未决寄存器(SRCPND)由32位构成,每位与 一个中断源相关。当某个中断源产生中断请求服务,则 对相应的位置1。因此该寄存器记录了哪个中断源在等待 处理。 注意:SRCPND寄存器的每一位都由中断源自动置位, 而不管中断屏蔽寄存器(INTMASK)中对应的位是否 被屏蔽。此外,SRCPND寄存器不会受到中断控制器的 优先级逻辑的影响。 在某个特定中断源的中断服务程序中,SRCPND寄存器 的相应位必须被清除从而保证能收到同一中断源的下一 次中断请求。 SRCPND寄存器的地址是0x4A000000,复位后为 0x00000000。
若有2个及2个以上的中断源同时提出中断请求,微处 理器先响应哪个中断源,后响应哪个中断源。 若1个中断源提出中断请求,并得到响应后,又有1个 中断源提出中断请求,后来的中断源能否中断前一个 中断源的中断服务程序。
1.菊花链中断优先电路
中断请求得到响应
设备1 接口
中断回答 中断请求
设备2 接口
相关文档
最新文档