微机结课论文基于8259A应用_第1页
微机结课论文基于8259A应用_第2页
微机结课论文基于8259A应用_第3页
微机结课论文基于8259A应用_第4页
微机结课论文基于8259A应用_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 基于8259A的应用引言:8259A是一种可编程外部中断控制器,每片可管理8级外部中断,包括中断屏蔽、中断优先权、中断矢量等管理,可直接应用于8080/8085及80X86系统。其中, 80X86:自动提供中断类型号 8080/8085:产生3字节CALL指令,(先产生CALL指令操作码CDH,再自动提供2字节调用地址)1、 8259A引脚及功能8259A是28引脚的双列直插式芯片,+5V供电,引脚图如下:上图中,ll D7D0:双向、三态数据线,与系统数据总线相连。对8259A编程时,命令字由此写入;在第二个中断响应总线周期中,中断类型码由此传给CPU。l :读信号,输入,与系统控制总线相

2、连。=0时,CPU对8259A进行读操作。l :写信号,输入,与系统控制总线相连。当=0时,CPU对8259A进行写操作。l A0:片内寄存器寻址信号,输入,用于对片内寄存器端口寻址。每片8259A有两个寄存器端口,A0=0时,选中偶地址端口,A0=1时,选中奇地址端口。在与8088系统相连时,可将该引脚与地址总线的A0连接;与8086系统连接时,可将该引脚与地址总线的A1连接。l :片选信号,输入。=0时,8259A被选中。在与8088系统相连时,系统地址信号A15A1经译码器译码后为8259A产生片选信号。l /:双功能双向信号。当8259A工作在缓冲模式时,它作为输出,用于控制缓冲器的传

3、送方向。当数据从CPU送往8259A时,/输出为高电平;当数据从8259A送往CPU时,/输出为低电平。当8259A工作在非缓冲模式时,它作为输入,用于指定8259A是主片还是从片(级联方式)。/=1的8259A为主片,/=0的8259A为从片。l INT:中断请求信号,输出,与CPU的中断请求信号线INT相连。在级联方式下,从片的INT与主片的IR7IR0中的某一根连接在一起。l :中断响应信号,输入,与CPU的中断响应信号线相连。CAS2CAS0:级联控制线,主片的CAS2CAS0与从片的CAS2CAS0对应相连。对于主片,CAS2CAS0为输出信号;对于从片,CAS2CAS0为输入信号。

4、lVCC:5V电源输入信号。 lGND:电源地2、内部结构8259A的内部结构如下图所示:l数据总线缓冲器数据总线缓冲器为三态、双向、8位寄存器。数据线D7D0与CPU系统数据总线连接,构成CPU与8259A之间信息传送的通道。l读/写控制逻辑读/写控制逻辑用来接收来自系统总线的读/写控制信号和端口地址寻址信号,用于控制8259A内部寄存器的读/写操作。 l级联缓冲/比较器 8259A既可以工作于单片方式,也可以工作于多片级联方式。级联缓冲/比较器提供多片8259A的管理和选择功能,其中一片为主片,其余为从片。l中断控制逻辑中断控制逻辑按照编程设定的工作方式管理中断,负责向片内各部件发送控制信

5、号,向CPU发送中断请求信号INT和接收CPU回送的中断响应信号,控制8259A进入中断管理状态。l中断请求寄存器(interrupt request register,IRR)IRR是一个8位(D0D7)寄存器,它接受并锁存来自IR0IR7的中断请求信号l中断服务寄存器(interrupt service register,ISR)ISR是一个8位(IS0IS7)寄存器,用于记录CPU当前正在服务的中断。l中断屏蔽寄存器(interrupt mask register,IMR)IMR是一个8位(IM0IM7)寄存器,用来存放IR0IR7的中断屏蔽标志。l优先权判决器(priority reg

6、ister,PR)二、8259A的工作过程1、 接受来自IR0IR7的中断请求,使IRR的对应位置1。2、 PR对IRR中记录的且未被屏蔽的中断和IRS中记录的中断进行优先权判决,并决定是否向CPU发起中断请求INT。如果IRR中优先级最高者的优先级高于ISR中优先级最高者,则向CPU发出中断请求信号INT,否则不发出。3、 CPU收到INT,如果IF=1,则待当前执行的指令结束后连续返回给8295A两个中断响应信号。4、 8295A收到第一个中断响应信号后(1) 使IRR的锁存功能失效,不再接受中断请求,直到第二个中断响应信号结束后恢复。(2) 对IRR中记录的优先级最高的中断请求进行响应:

7、使其对应的ISR位置1,并使其对应的IRR位复位。5、 8295A收到第二个中断响应信号后(1) 将被响应中断的中断类型码送CPU。CPU用中断类型码乘以4就得到了该中断的中断向量的地址,然后从该地址中取出中断向量,转而执行该中断的中断服务程序,即对该中断进行服务。(2) 如果8295A工作在自动结束方式,在第二个中断响应脉冲的后沿,会使被响应中断对应的ISR位复位。如果8295A工作在非自动结束方式,则中断服务程序在结束之前,应通过中断结束命令(EOI)使中断对应的ISR位复位。三、8259A的工作方式8259A的中断管理功能很强,单片可以管理8级外部中断,在多片级联方式下最多可以管理64级

8、外部中断,并且具有中断优先权判优、中断嵌套、中断屏蔽和中断结束等多种中断管理方式。1、 中断优先方式 一般情况下,8259A总是响应优先级最高的中断请求,而且使CPU暂停对低优先级中断的服务,转而服务高优先级的中断,即中断嵌套。8259A的中断优先方式分为两种:l 固定优先级方式在固定优先级方式中,IR0IR7的中断优先级是固定不变的,除非通过编程重新设置优先级别。l 自动循环优先级方式 在自动循环优先级方式中,IR0IR0优先级是可以改变的。自动循环优先级方式分为普通自动循环方式和特殊自动循环方式两种。2、 中断嵌套方式 无论是固定优先级方式而是自动循环优先级方式,它们都允许中断嵌套,即允许

9、更高优先级的中断打断CPU当前的中断服务过程,使CPU转而为更高优先级的中断进行服务。8259A允许两种嵌套方式:l 普通全嵌套方式普通全嵌套方式是8259A最常用的工作方式。l 特殊全嵌套方式特殊全嵌套方式是8259A在多片级联方式下使用的一种嵌套方式。3、 中断屏蔽方式 中断屏蔽方式是对8259A的中断请求IR0IR7进行屏蔽的一种中断管理方式,有普通屏蔽方式和特殊屏蔽方式两种。l 普通屏蔽方式普通屏蔽方式是通过8259A的中断屏蔽寄存器(IMR)来实现对中断请求IRi的屏蔽。l 特殊屏蔽方式 4、 中断结束方式 当一个中断请求IRi得到响应时,8259A会将其对应的ISR位置1,CPU服

10、务完该中断后,应及时清除其对应ISR位,否则就意味着CPU仍在为该中断服务,致使比它优先级低的中断请求无法进入。8259A提供了以下三种中断结束方式:l 自动结束方式 如采用自动结束方式,则刚被响应的中断请求对应的ISR位会在第二个中断响应脉冲的后沿被复位。这种中断服务结束方式是由硬件自动完成的。l 普通结束方式 在普通全嵌套方式下,因为CPU正在服务的中断只会被优先级更高的中断请求打断,因此当前结束的中断必定是所有正在服务的中断中优先级最高的,它对应着ISR中已置1的优先级最高的那一位,因此普通结束方式适用于普通全嵌套方式下的中断结束。l 特殊结束方式 特殊结束方式要求中断服务程序在结束之前

11、向8259A写入一个包含了特殊EOI命令的操作命令字OCW2,该命令要指定需复位的ISR位。5、 中断触发方式 中断请求输入端IR0IR7可采用的中断触发方式有电平触发和边沿触发两种,由初始化命令字ICW1中的LTIM位来设定。当LTIM设置为1时,为电平触发方式。当LTIM设置为0时,为边沿触发方式。8259A检测到IRi端有由低到高的跳变信号时产生中断。6、 级联工作方式当中断源超过8个时,就无法用一片8259A来管理,这时可采用8259A的级联工作方式。8259A多片级联方式的硬件连接图7、 总线连接方式 8259A数据线与系统数据总线的连接有缓冲和非缓冲两种方式。 四、8259A的编程

12、控制命令分为初始化命令字ICW和操作命令字OCW。ICW有4个,分别是ICW1ICW4;OCW有3个,分别是OCW1OCW3,它们被写入8259A后,分别保存在相应的寄存器中,例如,ICW1保存在ICW1寄存器中,OCW1保存在OCW1寄存器中。8259A的编程分为初始化编程和操作方式编程。l 初始化编程在8259A工作之前,通过软件向其写入初始化命令字ICW1ICW4,设置其初始工作方式。l 操作方式编程在8259A工作的过程中,通过软件向其写入操作命令字OCW1OCW3,改变其工作方式。OCW可在8259A初始化后的任何时刻写入。1、 8259A内部寄存器的寻址方法8259A有多个内部寄存

13、器,单靠和A0无法满足寄存器寻址的需要,因此还要在、和数据线D3、D4的配合下,才能完成对多个内部寄存器的访问。内部寄存器的访问方法如下图所示:8259A的端口分配及读/写操作功能表2、 8259A的初始化顺序即按照ICW2ICW3ICW4OCW1的顺序写入。同样在初始化时,ICW1ICW4的写入也必须遵循ICW1ICW2ICW3ICW4这样的顺序。3、 8259A的初始化命令字ICW 通过初始化编程,可将ICW写入8259A,设置其初始工作方式。(1) ICW1写ICW1的条件为:A0=0,D4=1,这时,写入的数据被当成是ICW1。写ICW1意味着对8259A进行初始化,同时8259A还会

14、完成以下工作:l 清除ISR和IMR。l 将中断优先级顺序设为初始状态:IR0(最高)IR(最低)。l 采用普通屏蔽方式。l 采用非自动中断结束方式。ICW1的格式如下图所示l IC4:指示在初始化时是否需要写入命令字ICW4。在80x86 CPU系统中需要定义ICW4,即设IC41。l SNGL:指示8259A在系统中使用单片还是多片级联。SNGL1为单片,SNGL0为多片级联。l ADI:设置调用时间间隔,在80486 CPU中无效。l LTIM:定义IRi的中断请求触发方式。LTIM1为电平触发,LTIM0为边沿触发。l D4:ICW1的标志位,恒为1。l D5D7:未用,通常设置为0。

15、(2) ICW2ICW2的写入条件为:A0=1,它只能在ICW1写入之后写入。ICW2用于设置中断类型码,其格式如下图所示:图 ICW2的格式IR0IR7各有一个中断类型码,它们是连续的,例如IR0的中断类型码为08H,IR7的中断类型码为0FH。中断类型码可用8位二进制数来表示,对于8259A的8个中断类型码而言,它们的高5位都是相同的,不同的是低3位。因此在初始化时只需设置ICW2的高5位,低3位可任意。8259A决定响应某个中断时,它会将该中断请求的序号放入ICW2的低3位,并将该寄存器的内容放到数据总线供CPU读取。例如:向ICW2写入40H时,则IR0IR7对应的中断类型号为40H4

16、7H。(3) ICW3ICW3的写入条件为:A0=1,它只能在ICW2写入之后写入。ICW3仅在级联方式下才需要写入,也就是当ICW1的SNGl位设为0时才需要写入。主片和从片的ICW3的格式不同,如下图所示:图 主片的ICW3格式图 从片的ICW3格式l S0S7与IR0IR7相对应,若主片IRi(i07)引脚上连接从片,则Si1,否则Si0。l ID2ID0是从片标识码,它必须与本从片所连接之主片IR线的序号一致。例如,当从片的中断请求信号线INT与主片的IR2连接时,ID2ID0应设置为010。l D7D3未用,通常设置为0。在主片响应来自从片的中断请求时,它通过级联信号线CAS2CAS

17、0送出被响应中断的从片标识码,各从片用自己的ICW3和CAS2CAS0进行比较,二者一致的从片被确定为当前中断源,该从片可以将中断的中断类型码送到数据总线供CPU读取。(4) ICW4ICW4的写入条件为A0=1,它只能在ICW3写入之后才能写入。ICW4用于设定8259A的工作方式,其格式下图所示:l mP:设置CPU模式。mP1为80x86模式,mP0为8080/8085模式。l AEOI:设置8259A的中断结束方式。AEOI1为自动结束方式,AEOI0为非自动结束方式。l M/:选择缓冲级联方式下的主片与从片。M/1为主片,M/0为从片。l BUF:设置缓冲方式。BUF1为缓冲方式,B

18、UF0为非缓冲方式。l SFNM:设置特殊全嵌套方式。SFNM1为特殊全嵌套方式,SFNM0为普通全嵌套方式l D7D5:未定义,通常设置为0。需要注意:当多片8259A级联时,若在8259A的数据线与系统总线之间加入总线驱动器,/则作为总线驱动器的控制信号使用,此时D3位BUF应设置为1。主片和从片的区分不能再依靠/引脚,而是由M/来选择,当M/0时为从片;当M/1时为主片。如果BUF0,则M/定义无意义。 4、 8259A的操作命令字OCW在8259A工作时,可通过写入OCW,改变其工作方式。OCW1OCW3的写入没有固定顺序。(1) OCW1OWC1的写入条件为:A0=1。通过它可控制哪

19、些中断请求被屏蔽。其格式下图所示:图 OCW1的格式当Mi=1时,对应的IRi请求被禁止;当Mi=0时,对应的IRi请求被允许。(2) OCW2OW2的写入条件为:A0=0。OWC2用于设置中断优先方式和中断结束方式。其格式如下图所示:图 OCW2的格式l R:设置中断优先方式。R1为自动循环优先级方式;R0为固定优先级方式。l D4、D3为OCW2标志位,必须都设为0。l SL:设置特殊自动循环方式。当SL=1时,若EOI=0且R=1,L2L0对应的IRi的优先级被设为最低;若EOI=1,L2L0对应的ISR位被复位。SL=0时,L2L0的编码无效。l L2L0:对应着IR7IR0和IS7

20、IS0。当SL=1时,它有两个作用:若EOI=0且R=1,L2L0对应的IRi的优先级被设为最低;若EOI=1,L2L0对应的ISR位被复位。l EOI:中断结束命令。当EOI1时,若SL=1,则使L2L0对应的ISR位复位,这种结束中断的方式称为特殊中断结束方式;若SL=0,则使ISR中置1的优先权最高位复位,这种结束中断的方式称为普通中断结束方式。(3) OCW3OCW3的写入条件为:A0=0,D4=0,D3=0。其格式如下图所示:图 OCW3的格式OCW3有三个功能:l 设置中断屏蔽方式ESMM与SMM组合可用来设置或取消特殊屏蔽方式。当ESMM1,SMM1时,设置特殊屏蔽;当ESMM1

21、,SMM0时,取消特殊屏蔽。l 查询中断请求当CPU禁止中断(IF=0)或不希望8259A发起中断请求INT时,就可以采用8259A的查询工作方式来查询8259A的中断状态。为此,可先写一个P=1的OCW3到8259A,然后再从同一I/O地址读入数据,就可得到下图所示的中断状态寄存器的内容。I=1表示8259A的IR7IR0有中断请求产生,其中优先级最高的IRi的序号由R2R0给出;否则表示无中断产生。图 中断状态寄存器5、 应用例:在Intel 80486 CPU系统中,使用2片8259A管理中断,采用级联方式。主片中的8个中断请求IR7IR0除IR2扩展从片以外,其他均为系统使用,从片中的

22、8个中断请求IR7IR0供用户使用。 8259A的硬件连接比较简单,不需要附加其他电路就可以与CPU直接连接。 系统的工作过程是:当80486 CPU响应8259A的中断请求INT时,向8259A回送中断响应信号,自动进入中断响应总线周期,进行中断处理。 是由,和信号通过总线控制逻辑产生,其编码见表,当和,的编码是000时,为中断响应周期。时序如图6.23所示:在第一个周期,CPU向8259A发送第一个脉冲,表示响应INT请求,并利用这个信号将8259A的请求信号IRi复位,同时使总线锁存信号有效,以禁止其他总线主控设备争用总线。在第二周期,8259A将中断类型号n通过数据总线送至CPU,由C

23、PU自动完成向量表地址4n运算后,从中断向量表中取出相应的中断向量送入CS:IP中,继而转去执行中断服务子程序。同时,还利用第二个周期的后沿将INT复位。在自动结束方式中,也是利用这个后沿,将ISR中的中断服务标志位清除。例:设计一个中断处理程序。要求中断请求信号以跳变方式由IR2引入(可为任一定时脉冲信号),当CPU响应IR2请求时,输出字符串“8259A INTERRUPT!”,中断10次,程序退出(设8259A的端口地址为20H和21H,中断类型号为40H)。中断处理程序如下:DATASEGMENTMESSDB8259A? INTERRUPT!, 0AH, 0DH, $COUNT DB 10; 计数值为10DATAENDSSTACK SEGMENTSTACKSTA DB100H DUP(?)TOP EQULENGTHSTASTACK ENDSCODE SEGMENTASSUMECS:CODE, DS:DATA, SS:STACKMAIN: CLIMOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论