8259A芯片使用方法.docx
- 文档编号:27265073
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:60
- 大小:256.05KB
8259A芯片使用方法.docx
《8259A芯片使用方法.docx》由会员分享,可在线阅读,更多相关《8259A芯片使用方法.docx(60页珍藏版)》请在冰豆网上搜索。
8259A芯片使用方法
v1.0可编写可改正
一、8259A的引线及内部构造
1、引脚信号
8259A引脚信号以下列图所示:
8259A引脚图
D7~D0:
双向、三态数据线,与系统数据总线相连。
对8259A编程时,命令字由此写入;
在第二此中止响应总线周期中,中止种类码由此传给CPU。
RD:
读信号,输入,与系统控制总线IOR相连。
RD=0时,CPU对8259A进行读
操作。
WR:
写信号,输入,与系统控制总线IOW相连。
当WR=0时,CPU对8259A进行
写操作。
A0:
片内寄存器寻址信号,输入,用于对片内寄存器端口寻址。
每片8259A有两个寄存
器端口,A0=0时,选中偶地点端口,A0=1时,选中奇地点端口。
在与8088系统相连时,
可将该引脚与地点总线的A0连结;与8086系统连结时,可将该引脚与地点总线的A1
连结。
CS:
片选信号,输入。
CS=0时,8259A被选中。
在与8088系统相连时,系统地点
信号A15~A1经译码器译码后为8259A产生片选信号。
SP/EN:
双功能双向信号。
当8259A工作在缓冲模式时,它作为输出,用于控制缓
冲器的传递方向。
当数据从CPU送往8259A时,SP/EN输出为高电平;当数据从
8259A送往CPU时,SP/EN输出为低电平。
当8259A工作在非缓冲模式时,它作为
1
v1.0可编写可改正
输入,用于指定8259A是主片仍是从片(级联方式)。
SP/EN=1的8259A为主片,
SP/EN=0的8259A为从片。
INT:
中止恳求信号,输出,与CPU的中止恳求信号线INT相连。
在级联方式下,从片
的INT与主片的IR7~IR0中的某一根连结在一同。
INTA:
中止响应信号,输入,与CPU的中止响应信号线INTA相连。
CAS2~CAS0:
级联控制线,主片的CAS2~CAS0与从片的CAS2~CAS0对应相连。
关于主片,CAS2~CAS0为输出信号;关于从片,CAS2~CAS0为输入信号。
当从片倡始的中止恳求被响应时,主片经过CAS2~CAS0送出相应的编码给从片,告诉从片该中止恳求被同意。
IR7~IR0:
中止恳求输入信号,由外设输入。
上涨沿(边缘触发方式)或高电平(电平
触发方式)表示有中止恳求抵达。
VCC:
+5V电源输入信号。
GND:
电源地
2、内部构造
8259A的内部构造以下列图所示:
8259A的内部构造图
数据总线缓冲器
数据总线缓冲器为三态、双向、8位寄存器。
数据线D7~D0与CPU系统数据总线连结,
组成CPU与8259A之间信息传递的通道。
2
v1.0可编写可改正
读/写控制逻辑
读/写控制逻辑用来接收来自系统总线的读/写控制信号和端口地点寻址信号,用于控制
8259A内部寄存器的读/写操作。
级联缓冲/比较器
8259A既能够工作于单片方式,也能够工作于多片级联方式。
级联缓冲/比较器供给多
片8259A的管理和选择功能,此中一片为主片,其他为从片。
中止控制逻辑
中止控制逻辑依据编程设定的工作方式管理中止,负责向片内各零件发送控制信号,向
CPU发送中止恳求信号INT和接收CPU回送的中止响应信号INTA,控制8259A进入中止管
理状态。
中止恳求寄存器(interruptrequestregister,IRR)
IRR是一个8位(D0~D7)寄存器,它接受并锁存来自IR0~IR7的中止恳求信号,也就
是说它记录着目前的中止恳求。
D0~D7与中止恳求信号IR0~IR7对应,当IRi(i=0~7)
上出现中止恳求信号时,对应的Di置1。
因为同一时辰可能有多此中止恳求抵达,所以IRR
可能有多个地点1。
第一此中止响应信号INTA抵达后(CPU在对8259A的中止恳求INT进
行响应时,会连续返回两此中止响应信号INTA,产生两此中止响应总线周期),假如8259A
决定使IRi获得响应,则会将对应的Di消除。
第一此中止响应脉冲INTA抵达后,IRR锁存功能无效,不接受IR0~IR7上的中止请
求信号;直到第二此中止响应脉冲INTA结束后,IRR锁存功能才得以恢复。
中止服务寄存器(interruptserviceregister,ISR)
ISR是一个8位(IS0~IS7)寄存器,用于记录CPU目前正在服务的中止。
IS0~IS7与中
断恳求信号IR0~IR7对应。
第一此中止响应脉冲INTA达到后,假如8259A决定使IRi得
到响应,则会将对应的ISi(i=0~7)置1,表示IRi正在被服务。
ISi的复位则由8259A
中止结束方式决定。
若8259A被设置为自动结束方式,ISi会在第二此中止响应脉冲INTA
的后沿被自动复位为0;若8259A被设置为非自动结束方式,则Di应由其对应的中止服务
程序发送来的中止结束命令(EOI)复位。
ISi置1可阻挡与其同级或更低优先级的中止恳求被响应,但不可以阻挡比其优先级高的
中止恳求被响应,即同意中止嵌套。
所以,ISR中可能不只一位被置1。
3
v1.0可编写可改正
中止障蔽寄存器(interruptmaskregister,IMR)
IMR是一个8位(IM0~IM7)寄存器,用来寄存IR0~IR7的中止障蔽标记。
IM0~IM7
与中止恳求信号IR0~IR7对应,用于障蔽IRi。
当IMi=1时,对应的IRi中止恳求被严禁;
IMi=0时,对应IRi中止被开放。
优先权裁决器(priorityregister,PR)
优先权裁决器将IRR中记录的目前中止恳求与ISR中记录的CPU正在服务的中止按中止
优先级排队并进行比较,假如IRR中优先级最高者的优先级高于ISR中优先级最高者,则由
中止控制逻辑向CPU发出中止恳求信号INT,使CPU暂停目前的中止服务,转而响应IRR中
优先级最高者,即进行中止嵌套;不然8259A不向CPU倡始中止恳求INT,CPU持续目前的
工作。
二、8259A的工作过程
1、接受来自IR0~IR7的中止恳求,使IRR的对应地点1。
2、PR对IRR中记录的且未被障蔽的中止和IRS中记录的中止进行优先权裁决,并决定是
否向CPU倡始中止恳求INT。
假如IRR中优先级最高者的优先级高于ISR中优先级最高
者,则向CPU发出中止恳求信号INT,不然不发出。
3、CPU收到INT,假如IF=1,则待目前履行的指令结束后连续返回给8295A两此中止响应
信号INTA。
4、8295A收到第一此中止响应信号INTA后
(1)使IRR的锁存功能无效,不再接受中止恳求,直到第二此中止响应信号INTA结束后
恢复。
(2)对IRR中记录的优先级最高的中止恳求进行响应:
使其对应的ISR地点1,并使其对应
的IRR位复位。
5、8295A收到第二此中止响应信号INTA后
(1)将被响应中止的中止种类码送CPU。
CPU用中止种类码乘以4就获得了该中止的中止向
量的地点,而后从该地点中拿出中止向量,转而履行该中止的中止服务程序,即对该中
断进行服务。
(2)假如8295A工作在自动结束方式,在第二此中止响应脉冲INTA的后沿,会使被响应
中止对应的ISR位复位。
假如8295A工作在非自动结束方式,则中止服务程序在结束之
前,应经过中止结束命令(EOI)使中止对应的ISR位复位。
4
v1.0可编写可改正
三、8259A的工作方式
8259A的中止管理功能很强,单片能够管理8级外面中止,在多片级联方式下最多能够
管理64级外面中止,并且拥有中止优先权判优、中止嵌套、中止障蔽和中止结束等多种中止管理方式。
1、中止优先方式
一般状况下,8259A老是响应优先级最高的中止恳求,并且使CPU暂停对低优先级中止
的服务,转而服务高优先级的中止,即中止嵌套。
8259A的中止优先方式分为两种:
固定优先级方式
在固定优先级方式中,IR0~IR7的中止优先级是固定不变的,除非经过编程从头设置
优先级别。
8259A在加电后就工作在固定优先级方式,刚加电时,IR0~IR7默认的优先级顺
序是:
IR0,IR1,IR2,,IR7,此中,IR0的优先级最高,IR7的优先级最低。
自动循环优先级方式
在自动循环优先级方式中,IR0~IR0优先级是能够改变的。
其变化规律是:
当某此中
断恳求的服务结束后,它的优先级自动降为最低,本来比它低一级的中止则变成最高等,
IR0~IR7的优先级按右循环方式改变。
比如,若初始优先级从高究竟挨次为IR0,IR1,
IR2,,IR7,此时假如IR4和IR6有中止恳求,则先服务IR4。
在IR4被服务以后,它自
动降为最初级,IR5变成最高等,这时中止优先级次序变成:
IR5,IR6,IR7,IR0,IR1,
IR2,IR3,IR4。
这类优先级管理方式,能够使8此中止恳求都可享受相同优先服务的权益。
自动循环优先级方式分为一般自动循环方式和特别自动循环方式两种:
一般自动循环方式的特色是:
IR7~IR0的初始优先级次序由系统指定,即优先级从IR0
到IR7挨次降低。
此后跟着中止的产生,它们的优先级次序将按右循环方式自动改变。
而特别自动循环方式的特色是:
经过编程人为地将某此中止恳求降为最初级,而其他中
断恳求的优先级也随之改变,此后跟着中止的产生,它们的优先级次序将按右循环方式自动
改变。
比如,经过编程将IR4降为最初级后,IR7~IR0的优先级次序则变成:
IR5,IR6,
IR7,IR0,IR1,IR2,IR3,IR4。
2、中止嵌套方式
不论是固定优先级方式而是自动循环优先级方式,它们都同意中止嵌套,即同意更高优
先级的中止打断CPU目前的中止服务过程,使CPU转而为更高优先级的中止进行服务。
8259A
同意两种嵌套方式:
一般全嵌套方式
5
v1.0可编写可改正
一般全嵌套方式是
8259A最常用的工作方式,简称为全嵌套方式,它是8259A初始化后
默认的工作方式。
其特色是:
在
CPU进行中止服务时(即履行中止服务程序过程中),如有
新的中止恳求到来,8259A只同意比目前服务的中止恳求的优先级
“高”的中止恳求进入(也
就是为比目前服务的中止恳求的优先级“高”
的中止恳求向CPU发出INT信号),而不一样意
“同级”或“初级”的中止恳求进入。
特别全嵌套方式
特别全嵌套方式是
8259A在多片级联方式下使用的一种嵌套方式。
其特色是:
在
CPU
进行中止服务时,8259A除了同意更高优先级的中止恳求进入外,
还同意同级中止恳求进入,
进而实现了对同级中止恳求的特别嵌套。
在级联方式下,主片往常设置为特别全嵌套方式,
从片设置为一般全嵌套方式。
这样设
置的利处在于:
当从片的某此中止恳求获得响应并进入中止服务时期后,
来自该从片的“更
高级”的中止恳求还能被主片响应。
这是因为从片的全部中止恳求都是经过同一个
IRi引入
主片,关于主片来说,来自从片的全部中止恳求都属于同级,
而特别全嵌套方式同意同级的
中止恳求进入,所以主片能响应来自从片的“更高级”的中止恳求。
3、中止障蔽方式
中止障蔽方式是对
8259A的中止恳求IR0~IR7进行障蔽的一种中止管理方式,有一般
障蔽方式和特别障蔽方式两种。
一般障蔽方式
一般障蔽方式是经过
8259A的中止障蔽寄存器(
IMR)来实现对中止恳求IRi
的障蔽。
经过编程写入操作命令字
OCW1,将IMR中的IMi地点1,以达到对相应的
IRi(i=0~7)
中止恳求的障蔽。
一旦
IRi被障蔽,它就不行能被
8259A响应。
特别障蔽方式
在某些应用处合,我们希望正在被
CPU服务的中止能够被更低优先级的中止恳求打断。
为达到这个目的,自然会想到使
IMR中的相应地点
1,使本级中止遇到障蔽,进而为更低优
先级的中止恳求进入供给可能,
可是这样做有一个问题:
每当一此中止恳求被响应时,8259A
会使该中止对应的ISR地点1,只需CPU没有对该中止发出中止结束命令(
EOI),8259A
就会严禁全部比它优先级低的中止恳求进入。
假如8259A工作在特别障蔽方式,使IMR的某
地点1,就会同时使ISR的对应位自动复位。
这样就能够使更低优先级的中止恳求进入,当
然未被障蔽的更高优先级的中止恳求也能够进入。
能够经过编程写入操作命令字
OCW3来设
置或撤消特别障蔽方式。
4、中止结束方式
6
v1.0可编写可改正
当一此中止恳求IRi获得响应时,8259A会将其对应的ISR地点1,CPU服务完该中止后,应实时消除其对应ISR位,不然就意味着CPU仍在为该中止服务,以致比它优先级低的中止恳求没法进入。
8259A供给了以下三种中止结束方式:
自动结束方式
如采纳自动结束方式,则刚被响应的中止恳求对应的ISR位会在第二此中止响应脉冲
INTA的后沿被复位。
这类中止服务结束方式是由硬件自动达成的。
需要注意的是:
只管
中止恳求对应的ISR位被消除,但此中止服务程序其实不必定真实结束,若在中止服务程序的
履行过程中有此外一个比其优先级低的恳求信号到来,因8259A并无保留任何标记来表示
目前中止服务还没有结束,以致低优先级中止恳求进入,打断目前中止服务程序的履行。
所以
这类方式只合适用在没有中止嵌套的场合。
一般结束方式
如采纳一般结束方式,则中止服务程序在结束以前应向8259A写入一个包含了一般EOI命令的操作命令字OCW2,该命令不指定需复位的ISR位。
收到该命令后,8259A会消除ISR中已置1的优先级最高的那一位。
在一般全嵌套方式下,因为CPU正在服务的中止只会被优先级更高的中止恳求打断,所以目前结束的中止必然是全部正在服务的中止中优先级最高
的,它对应着ISR中已置1的优先级最高的那一位,所以一般结束方式合用于一般全嵌套方式下的中止结束。
特别结束方式
特别结束方式要求中止服务程序在结束以前向8259A写入一个包含了特别EOI命令的操
作命令字OCW2,该命令要指定需复位的ISR位。
因为在特别EOI命令中明确指出了复位ISR
中的哪一位,所以,它能够用于一般全嵌套方式下的中止结束,更合用于优先级嵌套构造有
可能遇到损坏时(CPU正在服务的高优先级中止被低优先级/同级的中止恳求打断)的中止
结束。
在此,对级联系统中的从片的中止结束办理做一些说明。
在主片设置为特别全嵌套方式,
从片设置为全嵌套方式的状况下,从片可能出现中止嵌套。
来自从片的随意中止的中止服务
程序在结束以前,都应先向从片发出一个一般EOI命令,使其自己对应的ISR位复位,而后
读出ISR的内容,假如为0,则向主片发出一个特别EOI命令,消除主片中与引入从片的IRi
对应的ISR位;假如从片ISR的内容不为0,则说明从片中仍有中止服务还没有达成,此时,
则不需要向主片发出特别EOI命令。
7
v1.0可编写可改正
5、中止触发方式
中止恳求输入端IR0~IR7可采纳的中止触发方式有电平触发和边缘触发两种,由初始
化命令字ICW1中的LTIM位来设定。
当LTIM设置为1时,为电平触发方式。
8259A检测到IRi(i=0~7)端有高电平常产
生中止。
如采纳这类触发方式,中止恳求信号在被响应后应实时撤掉,不然可能惹起不应有
的第二次中止。
当LTIM设置为0时,为边缘触发方式。
8259A检测到IRi端有由低到高的跳变信号时产生中止。
不论采纳哪一种中止触发方式,中止恳求信号都应保持足够的宽度,即在第一此中止响应信号INTA抵达以前,都一定保持高电平。
6、级联工作方式
中间止源超出8个时,就没法用一片8259A来管理,这时可采纳8259A的级联工作方式。
指定一片8259A为主控芯片(主片),它的INT输出端接到CPU的INT输入端,而其他的
8259A芯片均作为附属芯片(从片),其INT输出端分别接到主片的不一样IR输入端。
因为
8259A有8个IR输入端,故一个主片可连结8个从片,最多同意有64个IR中止恳求输入。
由一片主片和两片从片组成的级联中止系统以下列图所示,此中省略了用于产生片选信号的译码器。
8259A多片级联方式的硬件连结图
在级联系统中,主片和从片都有独立的地点,并且需分别进行初始化编程来设置各自的初始工作方式。
8
v1.0可编写可改正
若中止恳求来自于从片,该恳求将经过从片的INT输出端传给主片,一旦该恳求被主片
响应,主片会经过CAS0~CAS02来通知相应的从片,而从片即可把该中止恳求对应的中止类
型码放到数据总线上,使该中止恳求获得CPU的服务。
7、总线连结方式
8259A数据线与系统数据总线的连结有缓冲和非缓冲两种方式。
缓冲方式
假如8259A经过总线驱动器和系统数据总线连结,8259A应选择缓冲方式。
当设置为缓
冲方式后,SP/EN即为输出引脚。
在8259A向CPU传递中止种类码的时候,SP/EN
输出一个低电平,用此信号作为总线驱动器的启动信号。
非缓冲方式
假如8259A的数据线与系统数据总线直接相连,那么8259A工作在非缓冲方式。
四、8259A的编程
8259A是可编程中止控制器,在其工作以前,一定采纳写入控制命令的方法来对其进行
初始化;在其工作时,还能够采纳相同的方式来改变其工作状态,这就是8259A的编程。
控
制命令分为初始化命令字ICW和操作命令字OCW。
ICW有4个,分别是ICW1~ICW4;OCW有3
个,分别是OCW1~OCW3,它们被写入8259A后,分别保留在相应的寄存器中,比如,ICW1
保留在ICW1寄存器中,OCW1保留在OCW1寄存器中。
8259A的编程分为初始化编程和操作方
式编程。
初始化编程
在8259A工作以前,经过软件向其写入初始化命令字ICW1~ICW4,设置其初始工作方式。
操作方式编程
在8259A工作的过程中,经过软件向其写入操作命令字OCW1~OCW3,改变其工作方式。
OCW可在8259A初始化后的任何时辰写入。
1、8259A内部寄存器的寻址方法
8259A有多个内部寄存器,单靠CS和A0没法知足寄存器寻址的需要,所以还要在
RD、WR和数据线D3、D4的配合下,才能达成对多个内部寄存器的接见。
内部寄存器的
接见方法以下列图所示:
9
v1.0可编写可改正
8259A的端口分派及读/写操作功能表
2、8259A的初始化次序
8259A中的寄存器端口地点有两个,一个是奇地点(A0=1),一个是偶地点(A0=0)。
通
过上表能够看出,在往8259A写入控制命令时,若A0=1,则写入的对象包含4个寄存器ICW2、
ICW3、ICW4和OCW1,这说明四个寄存器端口共用同一个I/O地点,为了划分写入的究竟是
哪个寄存器,8259A规定了严格的写入次序,即依据ICW2→ICW3→ICW4→OCW1的次序写入。
相同在初始化时,ICW1~ICW4的写入也一定依据ICW1→ICW2→ICW3→ICW4这样的次序。
3、8259A的初始化命令字ICW
经过初始化编程,可将ICW写入8259A,设置其初始工作方式。
(1)ICW1
写ICW1的条件为:
A0=0,D4=1,这时,写入的数据被当作是ICW1。
写ICW1意味着对
8259A进行初始化,同时8259A还会达成以下工作:
消除ISR和IMR。
将中止优先级次序设为初始状态:
IR0(最高)~IR(最低)。
采纳一般障蔽方式。
采纳非自动中止结束方式。
ICW1的格式以下列图所示:
10
v1.0可编写可改正
图ICW的格式
IC4:
指示在初始化时能否需要写入命令字ICW4。
在80x86CPU系统中需要定义ICW4,
即设IC4=1。
SNGL:
指示8259A在系统中使用单片仍是多片级联。
SNGL=1为单片,SNGL=0为多片
级联。
ADI:
设置调用时间间隔,在80486CPU中无效。
LTIM:
定义IRi的中止恳求触发方式。
LTIM=1为电平触发,LTIM=0为边缘触发。
D4:
ICW1的标记位,恒为1。
D5~D7:
未用,往常设置为0。
(2)ICW2
ICW2的写入条件为:
A0=1,它只好在ICW1写入以后写入。
ICW2用于设置中止种类码,
其格式以下列图所示:
图ICW2的格式
IR0~IR7各有一此中止种类码,它们是连续的,比如IR0的中止种类码为08H,IR7的
中止种类码为0FH。
中止种类码可用8位二进制数来表示,关于8259A的8此
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8259 芯片 使用方法