960 likes | 1.27k Views
8-1 中断控制器 8259A 8-2 计数器 / 定时器 8253 8-2DMA 控制器 8273A 第 8 章小节 第 8 章思考题. 第 8 章 中断控制器 DMA 控制器 计数器 / 定时器. 通过对本章的学习, 您应该能够达到下列要求: 了解 8259A 、 8237A 、 8253 芯片的内部结构 描述各芯片的工作原理 熟悉 8259A 、 8253 芯片的工作方式 掌握各芯片的编程方法 学会 8253 的应用 重点: 8259A 、 8237A 、 8253A 工作原理与应用. 学习目的:. 主要内容:
E N D
8-1中断控制器 8259A 8-2计数器/定时器 8253 8-2DMA控制器 8273A 第8章小节 第8章思考题 第 8 章 中断控制器DMA控制器计数器/定时器
通过对本章的学习,您应该能够达到下列要求:通过对本章的学习,您应该能够达到下列要求: 了解 8259A、8237A、8253 芯片的内部结构 描述各芯片的工作原理 熟悉 8259A、8253 芯片的工作方式 掌握各芯片的编程方法 学会 8253 的应用 重点: 8259A、8237A、8253A工作原理与应用 学习目的:
主要内容: 8529A的内部结构 8259A的工作方式 8259A 的初始化命令字和操作命令字 8259A 级联方式 8259A使用举例 多片8259A组成的主从式中断系统 第一节 中断控制器8259A
中断:外设向CPU发中断请求,CPU接收到中断请 求并在一定条件下,暂时停止执行原来的程 序而转去处理中断,处理好中断服务再返回 继续执行原来的程序,就称为一个中断过程。 中断是CPU被动的响应外设要求服务。 1、中断源:(1)数据输入/输出设备请求中断 (2)定时时间到申请中断 (3)满足规定条件申请中断 (4)电源掉电 (5)故障报警申请中断 (6)程序调试设置中断 中断的概念
2、CPU响应中断的条件 (1)、无总线请求 (2)、CPU允许中断:IF=1 (3)、CPU执行完当前指令 3、CPU响应中断要自动完成的任务: (1)关中断 (2)保护断点(IP,CS,FLAG入栈) (3)给中断服务程序的入口地址
保护现场:保护主程序中的一些寄存器值 开中断 :开放优先级更高的中断 执行中断服务程序 关中断 恢复现场 中断返回 5、中断源的识别: 查询(软件识别) 硬件识别:外设提供中断申请信号和中断矢量 4、中断处理过程
8259A的功能: 中断优先权管理 中断屏蔽 自动中断矢量转移 8259A特点: 单片8259可处理8级中断 级联时:最多可用9片处理64级中断 8259A的片内寻址 A0=1、0 中断控制器8259A
一、 8529A的芯片内部结构1. 数据总线缓冲2.读写控制逻辑3.级联缓冲比较4.中断请求寄存器5.中断服务寄存器6.中断屏蔽寄存器 7.优先权判别单路8.控制电路在8086系统中,CPU和8259A的所有数据传送都在数据总线的低8位上进行。地址总线的A1与8259A的A0相连,以保证数传都在总线的低8位中进行。
中断请求寄存器IRR分别和IR7~IR0相对应,IRR接收外部的中断请求。接到某一引脚的中断请求后,IRR中的对应位便置1。中断请求寄存器IRR分别和IR7~IR0相对应,IRR接收外部的中断请求。接到某一引脚的中断请求后,IRR中的对应位便置1。 中断屏蔽寄存器IMR中的对应位为1表示此中断以加屏蔽,为0表示此中断未加屏蔽可通过而进入中断优先级裁决器PR作裁决。 PR对新进入的中断请求和ISR中当前正在处理的中断比较,从而决定哪一个优先级更高,是否使8259A的输出端INT为1。 8259A的工作原理如下:
第一个负脉冲到达时,8259A完成以下动作:1. 使IRR的锁存功能失效2. 使当前中断服务寄存器ISR中的相应位置13. 使IRR寄存器中的相应位〈即刚才设置的位〉清0。 第二个负脉冲到达时,8259A完成下 列动作: 1. 将中断类型寄存器的内容ICW2送到数据总线的D7~D0, CPU将此作为中断类型码。 2. 如果ICW4中的中断自动结束位为1,那么,在第INTA 脉冲结束时,8259A会将第 一 INTA脉冲到来时设置的 当前中断服务寄存器ISR的相应位清0。 如CPU的IF为1,CPU执行完当前指令后,就可以响应中断。CPU从INTA线上往8259A回送两个负脉冲。
1.中断触发方式 (1)边沿触发方式此方式由ICW1来设置。(2)电平触发方式当中断输入端出现1个中断请求并得到响应后,输入端必须及时撤除高电平。 中断类型码: D7D6D5D4D3 D2D1D0 0 0 0 0 0 1 … 1 1 1 二、8259A的工作方式
2. 优先级的管理方式(1)完全嵌套方式在对8259进行初始化后,没有设置其它优先级方式,则自动按此方式工作. 特点:在全嵌套方式中,中断请求按优先级IR0~IR7级进行处理,IR0级中断的优先级最高。当一个中断被响应时,中断类型码被放到数据总线上,ISR中的对应位ISn被置1,然后进入中断服务程序。一般情况下(除了中断自动结束方式外),在CPU发出中断结束命令(EOI)前,此对应位一直保持“1”。
(2)优先级自动循环方式用在:多个中断源优先级相等的场合。(2)优先级自动循环方式用在:多个中断源优先级相等的场合。 特点:优先级是在变化的,一个设备中断处理完 后,它的优先级自动降为最低。 由8259A的操作命令字OCW2决定。 (3) 特殊全嵌套方式 用于:多片级联方式, 特殊全嵌套方式仅设置在主片中. 特点: 和全嵌套方式基本相同,不同的是:在处理某以及中断时,可响应同级中断,从而实现对同 级中断请求的特殊嵌套.
3.中断屏蔽方式 (1)普通屏蔽方式用OCW1命令将中断屏蔽寄存器IMR的相应位置“1”。 (2)特殊屏蔽方式 用于中断处理程序中。当要允许优先级低的中断进入,可采用特殊屏蔽方式. 可用OCW3的D6D5=11设置,此时除IMR中置1位对应的中断被屏蔽外,其它置0位对应的中断无论优先级高低都可得到相应。
(1)中断自动结束方式: 用于系统中只有一片8259A,多个中断不会嵌套的情形。系统一进入中断处理,就将当前中断服务寄存器ISR的对应位清除。对8259A来说,好像已经结束了当前中断。 在命令字ICW4中将AEOI(D1)位置“1”。(2)一般的中断结束方式: 用在全嵌套的情形。 CPU用OUT指令往8259A偶地址发一个EOI命令,8259A将使ISR最高非零IS位清0。结束当前正在处理的中断。 4. 结束中断处理的方式(EOI)
发一条特殊中断结束命令,命令中指出了要清除当前ISR的哪个IS位。发一条特殊中断结束命令,命令中指出了要清除当前ISR的哪个IS位。 往偶地址端口输出OCW2命令。 OCW2中:EOI=1、SL=1、R=0是特殊中断结束命令。 OCW2中:L2、L1、L0指出了要对哪个IS位复位。 (3)特殊的中断结束方式
主片:SP/EN接+5V 从片:SP/EN接地。 三.8259A的级联使用
主 接5V,从8259 接地. 1号从8259的INT接主8259的IR6 2号从8259的INT接主8259的IR4 可管理22级中断 级联方式:一片主8259,2片从8259
设1号从8259:IR7有申请,并响应 1号从8259向主8259的IR6发申请,并得到响应 现在,1号从8259:IR0有申请,而IR0的优先级别高于IR7,应该响应IR0,应该允许IR0进入。 解决办法:使用特殊全嵌套方式 特殊嵌套方式的使用
四、8259A 的控制字和工作方式 命令字:ICWi (i=1~4) 操作命令字:OCWi(i=1~4) 8259A的地址:偶地址端口(A0=0) 奇地址端口(A0=1) 1. 8259A的初始化命令字ICW1:芯片控制初始化命令字 ICW2:设置中断类型码的 ICW3:主片/从片的初始化命令字 ICW4:方式控制初始化命令字
ICW1 :芯片控制初始化命令字。必须写入偶地址端口中。A0D7 D6 D5 D4 D3 D2 D1 D0 D7~D5:这几位在此系统中不用,为1为0都可以。D4 :设置为1,指示ICW1的标志。D3(LTIM):设定中断请求信号的形式。 为1,表示中断请求为电平触发方式, 为0,表示中断请求为边沿触发方式。D2(ADI):在8086/8088中不起作用。D1(SNGL):指出8259A有否级联。 为1,表示系统中有一片8259A, 为1,表示系统中有多片8259A。 D0(IC4):指出后面是否设置ICW4。使用ICW4时IC4必须为1。 (1) ICW1的格式(A0=0) 0
(2)ICW2的格式(A0=1)ICW2是设置中断类型码的高5位初始化命令字,写入8295A的奇地址端口。(2)ICW2的格式(A0=1)ICW2是设置中断类型码的高5位初始化命令字,写入8295A的奇地址端口。 (3)ICW3的格式(A0=1)ICW3是标志主片/从片的初始化命令字,指出主8259那个引脚连有从8259,对应位置一。 为主片:A0 D7 D6 D5 D4 D3 D2 D1 D0 1
本片8259A为从片,ICW3的格式,指出从8259连在主8259那个引脚,由D2D1D0指出。(4)ICW4的格式(A0=1)ICW4为方式控制初始化命令字,写入奇地址 端口。
用ICW1设置,是否级连,请求 信号格式,后面是否用ICW4 2. 8259A的初始化流程 用ICW2设置中断类型码 是否为级连方式? 否 是 是 本片为主片吗? 否 设ICW3的各位对应 IR0~IR7的连接情况 设ICW3的高五位为佳,低三位为标识码 需要用ICW4吗? 否 是 用ICW4设置,是否为特殊全嵌套方式;缓冲 方式;自动结束中断方式;8086/8088系统 图 6-4 8259A的初始化流程 结束
(1) OCW1的格式(A0=1) OCW1称为屏蔽命令字,写入8259A的奇地址端口。 当OCW1某位=1,表示对应的中断请求被屏蔽。 3. 8259A的操作命令字:OCW1~OCW3
用于设置优先级循环方式和中断结束方式,写入偶地址单元。用于设置优先级循环方式和中断结束方式,写入偶地址单元。 R=1,优先级循环方式;R=0,非循环方式。 EOI=1,使当前ISR的对应位ISn复位。 SL=1,L2、L1、L0有效。 在ICW4中,若AEIO=1,自动清除当前ISn。 AEIO=0, Isn要用EOI清除。 (2)OCW2的格式(A0=0)
P=1时,表示查询。 RR=1,RIS=0,对IRR寄存器的读出; RR=1,RIS=1,对ISR寄存器的读出。 若要读IMR,不须设OCW3的查询命令。 IR4和IR1引脚上有中断请求,CPU执行一条输入指令,从奇地址端口读得以下查询字: (3)OCW3的格式(A0=0)
ESMM=SMM=1,置特殊屏蔽方式,8259A脱离当前优先级方式.ESMM=SMM=1,置特殊屏蔽方式,8259A脱离当前优先级方式. ESMM=1,SMM=0,撤销特殊屏蔽方式
1)读中断屏蔽寄存器IMR内容:中断屏蔽字 IN AL,82H ;A0=1 2)要读出ISR或IRR的内容, 必须设置OCW3中的P(D2)=1: (1)读IRR:设置OCW3:D1D0=10 (2)读ISR:设置OCW3:D1D0=11 执行输入指令 IN AL,82H 4.8259A那些寄存器内容可读出? 设8259A地址80H,82H
端口地址:20H~21H 8个中断请求信号:IR0~IR7 采用完全嵌套方式、0级最高,7级最低。 设定0级请求对应中断号为8,1级为9,…. 7级为0FH。 IRQ0: 0000 1 000=08H IRQ1: 0000 1 001=09H IRQ2: 0000 1 010=08H …... IRQ7: 0000 1 111=0FH 8259A初始化要求:
INTA00 EQU 020H ;8259A端口0 INTA01 EQU 021H ; 8259A端口1 ……. MOV AL, 13H ;ICW1:边沿触发.单片.要ICW4 OUT 20H,AL MOV AL , 8 ;ICW2:IRQ0中断类型为08H OUT 21H,AL MOV AL, 9 ;ICW4全嵌套.8088系统 OUT 21H,AL ;普通EOI方式 8259A初始化编程:
0 0 0 10 0 11=13H D4:设置为1,指示ICW1的标志。D3(LTIM):设定中断请求信号的形式。为0, 表示中断请求为边沿触发方式。D2(ADI): 在8086/8088中不起作用。D1(SNGL):指出8259A有否级联。 为1,表示系统中有一片8259A, D0:(IC4) : 为1,表示系统为8086/8088,要用ICW4. (1)预制命令字: ICW1, ICW2. ICW3. ICW4ICW1:边沿触发.单片.要ICW4
D2D1D0 0 1 0 0 0 0 0 0 = 80H 01000 0 0 0=80H : IRQ0 01000 0 0 1=81H : IRQ1 01000 0 1 0=82H : IRQ2 …. 01000 1 1 1=87H : IRQ7 ICW2的格式:
0 0 0 0 1 0 0 1 = 09H ICW4全嵌套.8088系统 非自动结束 ICW4的格式:必须写到8259A的奇地址端口中.
例2:教材P239例1:一片从8259的INT端连在主8259的IR3上,主8259的IR0和IR5端分别引入两个中断,从8259的IR2和IR3引入两个中断.例2:教材P239例1:一片从8259的INT端连在主8259的IR3上,主8259的IR0和IR5端分别引入两个中断,从8259的IR2和IR3引入两个中断. 主8259中断类型码为:40H,45H; 中断服务程序的段基址为1000H,偏移地址为1050H和2060H. 主8259端口地址为:FFE8H,FFE9H 从8259中断类型码为:32H,33H; 中断服务程序的段基址为2000H,偏移地址为5440H和3620H. 从8259端口地址为:FFFAH,FFF9H
主8259A的初始化程序段: MOV AL,11H ;定义ICW1,边缘触发,级联,单级,需ICW4 MOV DX,0FFE8H OUT DX,AL ;ICW1送偶地址端口 MOV AL,40H;定义ICW2,使IRQ0的中断类型码为40H MOV DX,0FFE9H ;送奇地址端口 OUT AL,DX MOV AL,08H ;定义主片ICW3,IR5上接从片 OUT DX,AL ;ICW3送奇地址端口 MOV AL,11H ;定义ICW4,8086,特殊完全嵌套方式 OUT DX,AL MOV AL,0D6H ;定义OCW1,屏蔽IR0,IR3,IR5以外的中断申请 OUT DX,AL MOV AL,20H ;定义OCW2,普通EOI方式 OUT DX,AL
(1)中断类型为40H的中断向量设置: 服务程序的入口地址:1000H:1050H 40H*4=00C8H 00C8H+2=00CAH PUSH DS XOR AX,AX ;清AX MOV DS,AX MOV AX,1050H MOV [00C8H],AX ;设中断服务程序的入口地址,送IP MOV AX,1000H MOV [00CAH],AX ;送CS POP DS
1)在IR3中断服务程序开始 关中断(CLI) 用OCW3设置特殊屏蔽方式 取原屏蔽字保存, 将IMR3,IMR4,IMR6,IMR7置1,允许IR5进入 开中断(STI) 2)在IR3中断服务程序 适当处恢复原屏蔽字 用OCW3撤销特殊屏蔽方式 例3:1片8259A工作于全嵌套方式若要求在IR3的中断服务中,允许IR5进入,该如何作?
1. 8088/8086中断向量表的作用是什么? 2. 8259A中 IRR、IMR和 ISR三个寄存器的作用是 什么? 3.某时刻8259A的IRR内容是08H(00001000B),说明_____。某时刻8259A的ISR内容是08H,说明_______。在两片8259A级连的中断电路中,主片的第5级IR5 作为从片的中断请求输入,则初始化主、从片时,ICW3的控制字分别是00100000和 00000101 . 思考题
计数器/定时器8253特点 三个通道,可单独使用 片内寻址 A1 A0= 00、01、10、11 对应:通道0、1、2和控制口地址 工作方式:6种 第2节 计数器/定时器8253
一、微机定时方法1. 软件定时——延迟子程序2. 硬件定时——用计数器/定时器8253二、可编程计数器/定时器的工作原理功能:一是为计数;一是为定时。8253的用处:1)在多任务的分时系统中用来作为中断信号实 现程序的切换;2)可以往I/O设备输出精确的定时信号;3)作为一个可编程的波特率发生器;4)实现时间延时。
计数器/定时器的工作特点1)门脉冲控制时钟输入;2)用门脉冲来重新启动计数;3)用门脉冲停止计数;4)单一计数;5)循环计数.计数初始值=时钟频率*T计数器/定时器的工作特点1)门脉冲控制时钟输入;2)用门脉冲来重新启动计数;3)用门脉冲停止计数;4)单一计数;5)循环计数.计数初始值=时钟频率*T
1.数据总线缓冲器 往计数器设置计数初值; 从计数器读取计数值; 往控制寄存器设置控制字。 2.读/写逻辑电路 A1 A0:端口选择 0 0:通道0(0号计数器) 0 1:通道1(1号计数器) 1 0:通道2(2号计数器) 1 1:控制字寄存器 8_2_1 8253芯片内部结构