第14讲8259A编程.ppt_第1页
第14讲8259A编程.ppt_第2页
第14讲8259A编程.ppt_第3页
第14讲8259A编程.ppt_第4页
第14讲8259A编程.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

1、中断优先级管理器8259A,第八章 中断,2,主要内容:,1、8259A内部结构及工作过程 2。8259A与8086系统的连接 3. 8259A的初始化编程 4、 8259A的工作方式编程,第八章 中断,3,8086系统中8259的内部结构及中断响应过程(P360图8.12),8086 CPU,第八章 中断,4,中断屏蔽寄存器(IMR):8位寄存器,存放CPU发出的按位屏蔽信号,置1的位将使相应中断级被屏蔽,8259A对其中断请求不予理睬,用户可以编程实现.,中断请求寄存器(IRR):8位寄存器,接收来自IR0IR7的中断请求信号,每级对应一位,有中断请求时对应位置1.,中断服务寄存器(ISR

2、):8位寄存器,用来存放当前正在处理的所有中断级. 如CPU正在处理IR1的中断请求,则IR1被置1. 当系统中只有一个8259A芯片时,ISR中1的位数表示多重中断的数量.,第八章 中断,5,优先权判别器PR:用于管理和识别各中断源的优先级别.通常,IR0 优先权最高,IR7优先权最低.可通过命令字修改成其他的优先级 次序.祥见P360,数据总线缓冲器和读写控制逻辑:用于实现8259A与CPU之间的信息交换,主要控制信号有 、 、 和A0 当 有效时,表明CPU正在对8259A进行写入操作,即CPU通过数据总线(D7-D0)向8259A送初始化命令字和操作命令字,以规定其工作状态和操作方式。

3、 当 和 有效时,表明CPU正在对8259A进行读操作,读出IRR、ISR或IMR的内容或中断类型码。 当 高电平时,8259A未选中,不进行任何操作。,注:纠正P360多处错误,第八章 中断,6,第八章 中断,7,A0:地址线最低位,它与 、 、 配合才能识别CPU送来的命令性质及要读取的是什么状态。 A0把8259A的编程地址分为两组:奇数号地址和偶数号地址。当它与cpu相连时,8259A的A0=0,表明CPU对它进行I/O操作时选用偶数号地址; A0=1,则表示奇数号地址。,级联缓冲器/比较器:实现多个8259A的级联。主要信号CAS0-CAS2和 CAS0-CAS2:级联信号,级联方式

4、时,一个8259A为主片,最多能带动8个8259A从片,控制64个中断级。 具有双重功能:当8259A工作于非缓冲方式时,它作为输入信号,规定该芯片是主片(SP=1)还是从片(SP=0);当工作于缓冲方式时,它作为输出信号EN控制缓冲器的传送方向。,第八章 中断,8,第八章 中断,9,CAS0 IR0 CAS1 IR1 CAS2 IR2 IR3 -INTA IR4 IR5 INT IR6 IR7 -SP/-EN,CAS0 -INTA CAS1 CAS2 INT IR0 IR1 -SP/-EN IR7,CAS0 IR0 CAS1 IR1 CAS2 IR2 IR3 -INTA IR4 IR5 IN

5、T IR6 IR7 -SP/-EN,-INTA,INTR,+5V,8259级联工作示意图,8259A的级连,输出得到响应 的从片编号,第八章 中断,10,中断级连,8259A可以级连,1个主片最多可以级连8个从片 级连时,主片的级连线CAS0CAS2连至每个从片的CAS0CAS2,输出被选中的从片编号, 每个从片的中断请求信号 INT,连至主8259A的一个中断请求输入端IRx;主片的 INT 线连至CPU的中断请求输入端INTR 在非缓冲方式下,引脚-SP/-EN,通过接地指定该片充当从片(-SP0);反之若接高电平则该片充当主片(-SP1)。,第八章 中断,11,2、8259A与8086的

6、连接,第八章 中断,12,假设:8259A的端口地址为:20,21H,某8位CPU和8259A的地址线如何连接?,A7A0: 0010 0000 20H 0010 0001 21H,第八章 中断,13,8259A的中断方式(5种),完全嵌套方式. 自动循环方式 指定最低级的循环排序方式 特殊屏蔽方式 查询法排序方式,第八章 中断,14,1.完全嵌套方式,最基本的中断方式。8259A在初始化编程后便处于这种方式。特点是优先级次序随序号的递增而变低,即IR0优先级最高,IR1次之,而IR7优先级最低。在完全嵌套方式,CPU开中断情况下,执行某中断处理程序期间,不能响应本级或较低级中断。但能响应较高

7、级中断。,第八章 中断,15,2.自动循环方式,实际上是等优先权方式。特点是当某一中断请求被响应后,该中断级便自动成为最低的中断级,其他中断源的优先级别也相应循环改变,以使各中断源被优先响应的机会相同,即优先等级是轮流的。 例如,IR4请求的中断结束后,自动变为最低优先级,而相邻的IR5请求的中断自动变为最高级, IR6请求的中断自动变为次高级; IR5请求的中断完成后, IR6请求的中断自动变为最高级, IR7请求的中断自动变为次高级。,第八章 中断,16,3.指定最低级的循环排序方式,也称特殊循环方式。在这种方式下,能在主程序或服务程序中通过指定某中断源的优先级为最低级,而其他中断源的优先

8、级也随之改变的方法,来改变各中断源的优先等级。例如,指定IR4请求的中断为最低级,则IR5请求的中断则为最高级, IR6请求的中断则为次高级。,第八章 中断,17,4.特殊屏蔽方式,除了用操作命令字OCW1屏蔽掉的中断级和正在服务的中断级外,允许其他任何级别的中断请求中断正在服务的中断。用这种方法可以在程序的不同阶段改变中断级的优先次序。,第八章 中断,18,5. 查询法排序方式,该方式用查询的方法响应与8259a相连的8级中断请求。采用该方式时,8259a的INT引脚不用,或CPU处于关中断状态,以便使cpu不能响应INT线上来的中断请求。这时若要选择最高优先级,必须先用操作命令字发查询命令

9、,然后再用输入命令识别当前有无中断请求及优先级最高的中断请求。,第八章 中断,19,什么是8259A的中断结束字(EOI)?,8259A判断中断服务寄存器ISR的状态: 若某位为1,表示该中断源正在得到服务;一般情况下,将不再响应同级或低级的中断(采用特殊屏蔽方式时,可响应低级别的中断) 若某位为0,表示该中断服务已结束,可响应低级级别中断。 用指令向8259A送中断结束字,可以使ISR的某位清0 该操作与CPU无关。,第八章 中断,20,结束中断处理方式,自动中断结束方式 中断响应后自动送结束字,清0 ISR中当前优先级最高的中断服务标志。 普通中断结束方式中断结束时用户用指令送结束字 配合

10、全嵌套优先权方式使用 当CPU用输出指令往8259A发出普通中断结束EOI命令时,8259A就会清0 ISR中当前优先级最高的中断服务标志 特殊中断结束方式中断结束时用户用指令送特定的结束字,指明要清除ISR中的哪一位 配合循环优先权方式使用,第八章 中断,21,屏蔽中断源方式,普通屏蔽方式 将 IMR的 Di 位置1,对应的中断 IRi 将被屏蔽,该中断请求将不能从8259A送到CPU 如果将 IMR 的 Di位置0,则允许对应的中断产生 特殊屏蔽方式允许发生低级的中断嵌套,用于级连时的主片。 将IMR的 Di 位置1,中断IRi被屏蔽;同时,ISR的Di位将置0,允许发生低级的中断。,第八

11、章 中断,22,中断触发方式,边沿触发方式 中断请求输入端出现上升沿为有效的中断请求信号 电平触发方式 中断请求端出现高电平为有效的中断请求信号,第八章 中断,23,数据线连接方式,缓冲方式 对8259A的数据线(输出中断向量)加缓冲器予以隔离和驱动 -SP/-EN引脚作为输出端,输出允许信号,用以关闭或开启缓冲器 非缓冲方式 -SP/-EN引脚作为输入端 在8259A级连时,用它选择该芯片充当主片或从片,第八章 中断,24,3、8259A的编程,初始化编程 8259A开始工作前 用户必须对8259A进行初始化编程。通过写入初始化命令字ICW对8259A进行初始化 中断操作编程 在8259A工

12、作期间 可以随时向8259A写入操作命令字OCW,使之按用户设置的新的工作方式进行工作 用户还可以通过写操作命令字OCW通知8259A,下面的操作要读取8259A中的状态信息,以便了解其工作情况,第八章 中断,25,1. 初始化命令字ICW,8259A在开始工作前必须写入初始化命令字 初始化命令字ICW最多可以有4个: ICW1ICW4 必须按照以上顺序依次写入 其中 ICW1 和 ICW2 是必须的 ICW3和ICW4是否需要,由具体的工作方式决定,流程,第八章 中断,26,ICW1,表示可以任意 为1为0都可以(建议为0),1只能为1,作为标志,中断触发方式: LTIM1,电平触发方式 L

13、TIM0,边沿触发方式,规定单片或级连方式: SNGL1,单片方式 SNGL0,级连方式,是否写入ICW4 IC41,要写入ICW4 IC40,不写入ICW4,即ICW4规定的位全为0,第八章 中断,27,ICW2,设置中断向量号 T7T3为中断向量号的高5位 低3位由8259A自动确定: IR0为000、IR1为001、IR7为111,第八章 中断,28,ICW3,级连命令字 主片:Si1,说明其对应引脚IRi 上连接有从片;否则引脚IRi上没有连接从片 从片:ID0ID2 编码说明该从片的INT引脚接到了主片上的哪个IRi引脚,针对从片,针对主片,第八章 中断,29,ICW4,嵌套方式:

14、特殊全嵌套方式(SFNM1) 普通全嵌套方式(SFNM0),数据线的缓冲方式: 缓冲方式(BUF1) 非缓冲方式(BUF0),主片/从片选择: 主片(M/S=1) 从片(M/S=0),中断结束方式: 自动中断结束(AEOI1) 非自动中断结束(AEOI0),微处理器类型: 16位80 x86(PM1) 8位8080/8085(PM0),第八章 中断,30,8259A芯片的初始化流程,第八章 中断,31,初始化主片8259A,mov al,11h;写入ICW1 out 20h,al intr1:mov al,08h;写入ICW2 out 21h,al intr2:mov al,04h;写入ICW

15、3 out 21h,al intr3:mov al,1h;写入ICW4 out 21h,al,中断控制器的初始化程序段,PC机上8259地址:20h-21h,第八章 中断,32,初始化从片8259A,mov al,11h;写入ICW1 out 0a0h,al intr5:mov al,70h;写入ICW2 out 0a1h,al intr6:mov al,02h;写入ICW3 out 0a1h,al intr7:mov al, 01h;写入ICW4 out 0a1h,al,中断控制器的初始化程序段,该题中8259的两个地址:0a0h、0a1h,第八章 中断,33,2. 操作命令字OCW,825

16、9A工作期间,可以随时接受操作命令字OCW OCW共有3个:OCW1OCW3 写入时没有顺序要求,需要哪个OCW就写入那个OCW,第八章 中断,34,OCW1,屏蔽命令字 其内容将写入中断屏蔽寄存器IMR Mi=1,则禁止对应IRi中断; Mi=0,则允许对应IRi中断。 各位互相独立。,第八章 中断,35,OCW2,R、SL和EOI配合使用 产生中断结束EOI命令和改变优先权顺序,L2L0的3位编码 指定IR引脚,第八章 中断,36,OCW3,ESMM、SMM 设置中断屏蔽方式,P、RR和RIS 规定随后读取的状态字含义,第八章 中断,37,3. 读取状态字,CPU可随时读出IRR、ISR、

17、IMR和查询字 A0为低(偶地址)时 由OCW3中RR和RIS位编码决定读取的是IRR或ISR, 由OCW3中P位决定读取的是查询字,查询字可反映8259A是否有中断请求,及哪个引脚上有中断请求 A0为高(奇地址)时,读取的是IMR,第八章 中断,38,查询字,中断位I位为1, 有外设请求中断,W2W0的编码 当前中断请求的最高优先级,第八章 中断,39,中断实验要求及源程序,请见dv88h,实验四.中断控制器8259A的应用,第八章 中断,40,4. 命令字和状态字的区别方法,利用读写信号区别写入的控制寄存器和读出的状态寄存器 利用地址信号区别不同I/O地址的寄存器 由控制字中的标志位说明是

18、哪个寄存器 由芯片内顺序控制逻辑按一定顺序识别不同的寄存器 由前面的控制字(引导字)决定后续操作的寄存器,接口电路中常用的方法,第八章 中断,41,8259A在IBM PC系列机上的应用,CAS0CAS2,主8259A,D0D7 INT -SP/-EN,定时器 键盘 保留 串行口2 串行口1 硬盘 软盘 打印机 A0 CS, IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 A0 -CS,对比8259A在IBM PC/AT机的应用,8259A在IBM PC/XT机上的应用,+5V,8088/8086 CPU INTR,第八章 中断,42,8259A在IBM PC/

19、AT上的应用,CAS02,CAS02,+5V,主8259A,80286 CPU,INTR D0D7,-SP/-EN INT D0D7,定时器 键盘 串行口2 串行口1 并行口2 软盘 并行口1 A0 -INTR1 CS, IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 A0 -CS,从8259A,D0D7 INT -SP/-EN,实时钟 改向0AH中断 保留 保留 保留 协处理器 硬盘 保留 A0 -INTR2 CS, IRQ8 IRQ9 IRQ10 IRQ11 IRQ12 IRQ13 IRQ14 IRQ15 A0 -CS,系统总线 B25 B24 B23 B2

20、2 B21,系统总线 B4 D3 D4 D5 D6 D7,-INTA,-RD,-WR,-INTA,-IOR,-IOW,-INTA,-RD,-WR,-S0 -S2,82288,第八章 中断,43,PC机中8259A应用注意事项,利用上升沿做为中断请求IRQ的有效信号 IRQ0IRQ7中断向量号依次为08H0FH IRQ8IRQ15中断向量号依次为70H77H( PC/AT机) 采用普通全嵌套优先权方式,中断优先权从高到低顺序为IRQ0IRQ2、IRQ8IRQ15(级连从片)、IRQ3IRQ7,且不能改变 采用普通中断结束EOI方式,需在中断服务程序最后发送普通EOI命令 一般采用普通屏蔽方式,通

21、过写IMR相应位为0允许中断,应注意不要破坏原屏蔽状态。,第八章 中断,44,补充:中断服务程序的编程,中断服务程序的编程原则,1)中断是异步发生的,进入响应时并不考虑当前运行状态。因此中断服务程序必须保护现场 2)在进入具体中断处理之前要先初始化中断向量,使其指向相应的中断服务程序,但在此之前要先关中断,以防接管中断过程中发生中断 3)在中断服务程序入口处要立即开中断,以允许较高优先级的中断产生 4)中断服务程序的服务时间要尽量压缩,以免干扰同级或低级中断设备的工作,第八章 中断,45,5)由于PC机中8259采用正常结束中断,因此在中断服务程序执行IRET返回前应向8259发结束中断命令E

22、OI MOV AL, 20H;使当前ISR中的对应位复位 OUT 20H, AL IRET 6)当编制替代系统原有中断服务程序时,应保存好原中断向量的内容。在应用程序终止前恢复原有的中断向量 7)中断服务程序不要使用DOS系统功能调用(INT 21H),因为DOS不允许重入,中断服务程序的编程原则,第八章 中断,46,8)若中断服务程序只为某个应用程序服务,则中断服务程序可以和主程序组装成一个程序一起装入内存,随主程序结束而一起退出内存 9)若中断服务程序为多个应用程序服务,则中断服务程序可以与一个初始化程序组装成一个程序一起装入内存,通过初始化程序的执行而将中断服务程序驻留内存,中断服务程序

23、的编程原则,第八章 中断,47,中断向量表的操作,读写转段向量表不能使用MOV指令,而应调用相应的DOS功能 取中断向量 预置AH=35H, AL=中断类型号 执行INT 21H 把类型号为AL的中断向量取出到ES:BX中 设置中断向量 预置AH=25H, AL=中断类型号,DS:DX=中断向量 执行INT 21H 把DS:DX指向的中断向量放置到中断向量表中类型号为AL的中断向量处,第八章 中断,48,中断向量表的操作,例:填写中断向量表,实现用户所定义的60H中断 . CLI PUSH DS MOV AX, SEG INT60 MOV DS, AX MOV DX, OFFSET INT60 MOV AH, 25H MOV AL, 60H INT 21H POP DS STI .,INT60 PROC FAR IRET INT60 ENDP,中断服务 程序,第八章 中断,49,中断向量表的操作,

温馨提示

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

评论

0/150

提交评论