可编程中断控制器859A教案.ppt

上传人:豆**** 文档编号:56700827 上传时间:2022-11-03 格式:PPT 页数:82 大小:2.82MB
返回 下载 相关 举报
可编程中断控制器859A教案.ppt_第1页
第1页 / 共82页
可编程中断控制器859A教案.ppt_第2页
第2页 / 共82页
点击查看更多>>
资源描述

《可编程中断控制器859A教案.ppt》由会员分享,可在线阅读,更多相关《可编程中断控制器859A教案.ppt(82页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、可编程中断控制器859A Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望一、引言中断申请中断申请管理接口管理接口INT中断申请中断申请接口接口1网络网络接口接口2硬盘硬盘接口接口3软盘软盘接口接口4打印机打印机8086CPUINTRIF21.向向CPU的引脚的引脚INTR发中断申请信号发中断申请信号当有多个外设同时发出中断请求时,当有多个外设同时发出中断请求时,能按照一定的优先级顺序,向能按照一定的优先级顺序,向CPU发出中断申请,发出中断申请,使使CPU能优先响

2、应优先级最高的外部设备的中断申请。能优先响应优先级最高的外部设备的中断申请。2.送中断类型号送中断类型号在在CPU中断响应周期,针对不同外设的中断请求,中断响应周期,针对不同外设的中断请求,向向CPU传送不同的中断类型号,传送不同的中断类型号,使使CPU执行相应的中断子程执行相应的中断子程。中断申请管理接口的主要功能中断申请管理接口的主要功能:在在IBM PC机由机由8259A可编程中断控制器可编程中断控制器(PIC)来完成。来完成。3二、8259A的引脚、编程结构和工作过程1.8259A的引脚的引脚2.8259A的编程结构的编程结构3.8259A的工作过程的工作过程41.8259A的引脚的引

3、脚 双列直插式芯片,双列直插式芯片,28个引脚个引脚方方 波波键键 盘盘保保 留留串串 口口2 硬硬 盘盘软软 盘盘打印机打印机IOW17.2HzA0CS8259A总线总线A0数数 据据 线线 IORRDWR片片选选译译码码IR0IR1IR2IR3IR4IR5IR6IR7A5A9D0D7D0D7VccSP/ENCA0CA1CA2GND+5V203FH用于多片用于多片8259A级连情况级连情况INTAINT INTA INTR串串 口口1 定时器定时器51 1、单片、单片8259A8259A可支持可支持8 8个中断源;个中断源;2 2、采用多片、采用多片8259A8259A级连,可最多支持级连,

4、可最多支持6464个中断个中断源。源。n n片片8259A8259A可支持可支持7n+17n+1个中断源;个中断源;3 3、级连时只能有一片、级连时只能有一片8259A8259A为主片,其余的均为主片,其余的均为从属片;为从属片;4 4、涉及到的、涉及到的8259A8259A引脚包括:引脚包括:CASCAS0 0-CAS-CAS2 2SP/ENSP/ENIRiIRiINTINT6 6级联工作方式6SP/ENSP/EN:双功能的双向信号线,分别表示主从定义:双功能的双向信号线,分别表示主从定义/缓冲器方向这两种工种方式。缓冲器方向这两种工种方式。在主从方式中,它作为输入信号线在主从方式中,它作为

5、输入信号线SPSP,由该信号的高,由该信号的高低电平来区分低电平来区分“主主”或或“从从”8259A”8259A:若:若SPSP1 1,则,则本片为本片为“主主”8259A”8259A;若;若SPSP0 0,则为,则为“从从”8259A”8259A。只有一个只有一个8259A8259A时,它应接高电平。时,它应接高电平。在缓冲方式时,则它作为输出信号线在缓冲方式时,则它作为输出信号线ENEN,用于控制缓,用于控制缓冲器的传送方向:若冲器的传送方向:若ENEN1 1,则,则CPUCPU将把数据写入将把数据写入8259A8259A;若;若ENEN0 0,将把数据由,将把数据由8259A8259A读

6、出至读出至CPUCPU。7 77级连电级连电路路连连接方法接方法8 8828259A的编程结构的编程结构SP/ENCA0CA1CA2IORIOW总线总线D0D7数数 据据 线线D0D7INTAINTRA0片片选选译译码码A5A9CSA0RD INTAWRINT 1 I3 I4ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片连接关系主从片连接关系 ICW4 方式控制方式控制0111A01 0 0 1 0 1 0 0OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级设置、发优先级设置、发EOI 0 1 OCW3特殊屏蔽特殊屏蔽,查询方式设置查询方式

7、设置处理部分处理部分控制部分控制部分000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器PR优先级优先级裁决器裁决器VCCGND1 10 00 0A0IR0IR1IR2IR3IR4IR5IR6IR7IRR中断中断申请申请寄存器寄存器000 0 0 0 0 0 94个初始化命令寄存器个初始化命令寄存器ICW1、ICW2ICW3、ICW43个操作命令寄存器个操作命令寄存器OCW1(IMR)OCW2、OCW3当当前前中中断断服服务务寄寄存存器器ISR中断申请寄存器中断申请寄存器IRR 8259A内部有内部有9个个 可读写的寄存器可读写的寄存器8259A的编程结构的编程结构 1 I3

8、 I4ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制处理部分处理部分控制部分控制部分000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器PR优先级优先级裁决器裁决器IRR中断申请中断申请寄存器寄存器000 0 0 0 0 0 中断屏蔽寄存器中断屏蔽寄存器 IMROCW2 1 0 0 1 0 1 0 0 0 0 0 1 OCW3OCW18259A中断控制器中断控制器10(1)初始化命令字初始化命令字(ICW1-ICW4)决定决定8259A的工作方式的工作方式通常是在计算机系统启动时在初始程序设置,通常是在计

9、算机系统启动时在初始程序设置,一旦设定,一般在系统工作过程不再改变。一旦设定,一般在系统工作过程不再改变。例例开机后,开机后,BIOS将将8259A初始化为:初始化为:IR0IR7中断申请信号为上升沿触发方式;中断申请信号为上升沿触发方式;IR0IR7对应的中断类型号分别为对应的中断类型号分别为08H0FH;优先级优先级IR0最高最高,IR7最低;最低;(2)操作命令字操作命令字(OCW1,OCW2,OCW3)在应用程序中设定,动态地控制在应用程序中设定,动态地控制CPU处理中断的过程处理中断的过程(3)ISR和和IRR存放当前存放当前8259A的状态的状态通过读取通过读取ISR和和IRR的内

10、容,可了解当前的内容,可了解当前8259A工作情况工作情况11初始化命令字初始化命令字 ICW1ICW4ICW1ICW4初始化命令字在8259正常工作前设置。它决定8259的工作方式和环境。返回A7 A6 A5 1 LTIM ADI SNGL IC4D7 D6 D5 D4 D3 D2 D1 D00A0ICW18086不用不用0:边沿检测:边沿检测1:电平检测:电平检测0:不需要:不需要ICW41:需要:需要ICW480868088不用不用0:级联使用:级联使用1:单独使用:单独使用1212128259A8259A的控制命令字的控制命令字初始化8259A必须从ICW1开始写ICW1意味着重新初始

11、化8259A写入ICW1后,8259A的状态如下:清除ISR和IMR(全0);将中断优先级设成初始状态:IR0最高,IR7最低;设定为一般屏蔽方式;采用非自动中断结束方式;状态读出逻辑预置为读IRR。131313在中断响应的第二个总线周期,通过数据线发送中断类型码给CPU 返回1A0T7 T6 T5 T4 T3 X X XD7 D6 D5 D4 D3 D2 D1 D0中断类型码高中断类型码高5 5位位自动填入自动填入中断源中断源中断源中断源D2D2D1D1D0D0IR0IR00 00 00 0IR1IR10 00 01 1IR2IR20 01 10 0IR3IR30 01 11 1IR4IR4

12、1 10 00 0IR5IR51 10 01 1IR6IR61 11 10 0IR7IR71 11 11 1141414ICW2ICW2中断向量中断向量码码T7T3:中断向量码的高5位T2T0:最低3位为中断源的序号IRn000111分别对应分别对应IR0IR7由由8259A根据中断源的序号自动填入根据中断源的序号自动填入例如:例如:若若ICW2ICW2命令字为命令字为48H48H,则,则IRIR0 0的中断向量码为的中断向量码为48H48H,IRIR7 7的中断向量码为的中断向量码为4FH4FH,等等。,等等。A0A0 D7D7D6 D6 D5 D5 D4 D4 D3 D3 D2 D2 D1

13、 D1 D0D0 1 1 T T7 7 T T6 6 T T5 5 T T4 4 T T3 3 x x x x x x1515151A0S7 S6 S5 S4 S3 S2 S1 S0 D7 D6 D5 D4 D3 D2 D1 D0主主8259的级联标志的级联标志1:相应的:相应的IR上上有从有从82590:相应的:相应的IR上上无从无从8259级连初始化必须与硬件连接一致1A0 0 0 0 0 0 ID2 ID1 ID0D7 D6 D5 D4 D3 D2 D1 D0ID2ID0:从:从8259的的IR识别码识别码主片主片从片从片161616ICW3ICW3级连级连控制字(控制字(续续)ICW3

14、必须与主从片的连接关系一致:例如,主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H。中断响应时,主片通过级连线CAS2-CAS0送出被允许中断的从片标识码,各从片用自己的ICW3与CAS2-CAS0比较,二者一致的从片才可发送中断向量码。171717ICW4ICW4初始化命令字ICW1ICW4是以写入的顺序来区分的1A00 0 0 SFNM BUF M/S AEOI PMD7 D6 D5 D4 D3 D2 D1 D00:非自动:非自动EOI1:自动:自动EOI0:8085方式方式1:86/88方式方式0:一般的全嵌套方式:一般的全嵌套方式1:特殊的全嵌套方式:

15、特殊的全嵌套方式0:非缓冲方式非缓冲方式10:缓冲方式从片缓冲方式从片11:缓冲方式主片缓冲方式主片返回返回返回返回181818例例 82598259初始化初始化单单片片82598259应应用用于于80868086系系统统,IR0IR0的的中中断断类类型型码码为为18H18H,电电平平触触发发方方式式,全全嵌嵌套套非非缓缓冲冲方方式式,自自动动结结束束中中断断,要要求求初初始始化化ICW4ICW4。端端口口地地址址为为0A0H0A0H开始,初始化程序为:开始,初始化程序为:MOVMOVALAL,13H 13H ICW1ICW1初始化初始化OUTOUT0A0H0A0H,ALAL;写入;写入ICW

16、1ICW1 MOV MOVALAL,18H 18H ICW2 ICW2 初始化初始化OUTOUT0A2H0A2H,ALAL;写入;写入ICW2ICW2MOVMOVALAL,03H 03H ICW4ICW4初始化初始化OUTOUT0A2H0A2H,ALAL;写入;写入ICW4 ICW4 1919198259A8259A的操作命令字的操作命令字OCWOCW OCW用于设置8259的工作状态在初始化后写入OCW的写入顺序可任意写入地址要求:OCW1必须写入奇地址端口必须写入奇地址端口(A0=1)OCW2,OCW3必须写入偶地址端口必须写入偶地址端口(A0=0)202020操作命令字操作命令字OCWO

17、CWMi=1 中断请求线IRi被屏蔽(不允许中断)=0 允许该IRi中断 OCW1将写入IMR寄存器。A0=1时读OCW1可读出设置的IMR内容。OCW11A0M7 M6 M5 M4 M3 M2 M1 M0 D7 D6 D5 D4 D3 D2 D1 D00:清中断屏蔽位:清中断屏蔽位1:置中断屏蔽位:置中断屏蔽位212121操作命令字操作命令字OCWOCW0A0R SL EOI 0 0 L2 L1 L0 D7 D6 D5 D4 D3 D2 D1 D00 0 0 1 1 1对应对应IRi的编码的编码无操作无操作010特殊优先权循环,由特殊优先权循环,由L2L0设定最低优先级设定最低优先级011特

18、殊特殊EOI,由,由L2L0指定特殊优先权循环指定特殊优先权循环111取消自动优先权循环取消自动优先权循环(固定优先权固定优先权)000自动优先权循环自动优先权循环001自动优先权循环,常规自动优先权循环,常规EOI101特殊特殊EOI,由,由L2L0指定结束指定结束IRi110常规常规EOI100R=1:循环优先权:循环优先权R=0:固定优先权:固定优先权SL=1:L2L1L0指定指定IR位位SL=0:L2L1L0无效无效EOI=1:中断结束:中断结束OCW2222222OCW30A0 D7 D6 D5 D4 D3 D2 D1 D0 ESMM SMM 0 1 P RR RIS10清除特殊清除

19、特殊屏蔽方式屏蔽方式01设定特殊设定特殊屏蔽方式屏蔽方式无意义无意义101010读读IRR01读读ISR无意无意义义10100:非查询方式:非查询方式1:查询方式:查询方式操作命令字操作命令字OCWOCW8259的工作方式编程并没有固定顺序,各命令字之间用地址信号A0及特征位加以区分。232323OCW3OCW3(续续)查询方式允许8259A不工作于中断方式,而是以查询方式工作。CPU先写一个先写一个D2=1(查询方式)的(查询方式)的OCW3,再对同一地址读入,即可得到如下状态字节:再对同一地址读入,即可得到如下状态字节:IxxxxR2R1R0I=1表示有中断请求,中断请求号为表示有中断请求

20、,中断请求号为R2-R0此查询步骤可反复执行,以响应多个同时发生此查询步骤可反复执行,以响应多个同时发生的中断。的中断。读IRR/ISR:写入此命令后,随后再对同一地址读,即可得到IRR或ISR的内容。242424CLI;关中断;关中断MOV AL,17H;ICW1:单片,边缘触发,需要:单片,边缘触发,需要ICW4OUT20H,ALMOV AL,08H;ICW2:中断类型码的:中断类型码的D7D3位为位为00001OUT21H,ALMOV AL,01H;ICW4:非自动的:非自动的EOI,非缓冲,非缓冲,80X86方式方式OUT21H,ALMOV AL,04H;OCW1:只屏蔽:只屏蔽IRQ

21、2(保留中断)(保留中断)OUT21H,ALMOV AL,20H;OCW2:固定优先权,一般的:固定优先权,一般的EOIOUT20H,ALMOV AL,4BH;OCW3:正常屏蔽,非查询方式,可读:正常屏蔽,非查询方式,可读ISROUT20H,ALSTI;开中断;开中断=0000 1000B=0001 0111B=0000 0001B=0000 0100B=0010 0000B=0100 1011B82598259的初始化的初始化编编程程252525分两步分两步:(1)处处理理外外设设中中断断申申请请,决决定定是是否否向向CPU发发中中断断申请信号。申请信号。(2)若若发发中中断断申申请请信信

22、号号,且且CPU响响应应,则则在在CPU中断响应周期送出中断类型号。中断响应周期送出中断类型号。3.8259A 的工作过程的工作过程26(1)处理外设中断申请,决定是否向处理外设中断申请,决定是否向CPU发中断申请信号发中断申请信号 中断屏蔽寄存器中断屏蔽寄存器IMR决定决定IRR中的中断申请中的中断申请是否进入优先级裁决器是否进入优先级裁决器PR。IMR对应位为对应位为0,允许中断申请进入优先级裁决器,允许中断申请进入优先级裁决器,为为1,不允许进入,中断申请被,不允许进入,中断申请被IMR屏蔽。屏蔽。中断申请寄存器中断申请寄存器IRR锁存外部的中断申请。锁存外部的中断申请。若若IR0IR7

23、引脚上有中断申请,则将引脚上有中断申请,则将IRR相应位置相应位置1 当前中断服务寄存器当前中断服务寄存器ISR记录记录CPU正在响应的中断。正在响应的中断。ISR中的某位为中的某位为1,表示,表示CPU正在响应此级中断,正在响应此级中断,ISR中的某位为中的某位为0,表示,表示CPU没有或已响应完此级中断,没有或已响应完此级中断,优先级裁决器优先级裁决器PR据新进入的中断申请和据新进入的中断申请和ISR的内容的内容,决定是否发中断申请信号。决定是否发中断申请信号。如果进入的中断申请比如果进入的中断申请比ISR中记录的中断优先级高,中记录的中断优先级高,则则通通过过8259A的的INT引引脚脚

24、向向CPU发发出出中中断断请请求求信信号;号;如果进入的中断申请不比如果进入的中断申请不比ISR中记录的中断优先级高,中记录的中断优先级高,同级或低级,则不向同级或低级,则不向CPU发中断请求信号。发中断请求信号。27 中断申请寄存器中断申请寄存器IRR锁存外部的中断申请。锁存外部的中断申请。若若IR0IR7引脚上有中断申请,则将引脚上有中断申请,则将IRR相应位置相应位置1IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4

25、 方式控制方式控制000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器000 0 0 0 0 0 1 0 0 1 0 1 0 0INTR1128中断屏蔽寄存器中断屏蔽寄存器IMR决定决定IRR中的中断申请中的中断申请是否进入优先级裁决器是否进入优先级裁决器PR。IMR对应位对应位为为0,允许允许中断申请进入优先级裁决器,中断申请进入优先级裁决

26、器,为为1,不允许不允许进入,中断申请被进入,中断申请被IMR屏蔽。屏蔽。IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中

27、断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR29 当前中断服务寄存器当前中断服务寄存器ISR记录记录CPU正在响应的中断。正在响应的中断。ISR中的某位中的某位为为1,表示,表示CPU正在响应正在响应此级中断,此级中断,即正在执行此中断源的中断子程;即正在执行此中断源的中断子程;ISR中的某位中的某位为为0,表示,表示CPU没有或已响应完没有或已响应完此级中断,此级中断,即不在执行此中断源的中断子程即不在执行此中断源的中断子程IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 IC

28、W1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制001 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR30优先级裁决器优先级裁决器PR据新进入的中断申请和据新进入的中断申请和ISR的内容的内容,决定是否发中断申请信

29、号。决定是否发中断申请信号。如果进入的中断申请比如果进入的中断申请比ISR中记录的中记录的中断优先级高中断优先级高,则通过则通过8259A的的INT引脚向引脚向CPU发出中断请求信号;发出中断请求信号;如如果果进进入入的的中中断断申申请请不不比比ISR中中记记录录的的中中断断优优先先级级高高,同同级级或或低低级级,则不向则不向CPU发中断请求信号。发中断请求信号。IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方

30、式控制001 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR31(2)若发中断申请信号,且若发中断申请信号,且CPU响应,响应,则在则在CPU中断响应周期送出中断类型号中断响应周期送出中断类型号 CPUCPU接收到接收到 INTR INTR上的中断申请信号后:上的中断申请信号后:

31、l如果如果 IF IF 标志为标志为0 0,则,则CPUCPU不响应此中断申请信号不响应此中断申请信号,即中断申请被即中断申请被IFIF屏蔽。屏蔽。l如果如果 IF IF 标志为标志为1,1,则处理完当前的指令后则处理完当前的指令后,进入中进入中断响应周期断响应周期 通过通过 INTA INTA 引脚发出两个负脉冲信号,引脚发出两个负脉冲信号,从数据总线上获取中断类型号,从数据总线上获取中断类型号,进入中断响应的过程。进入中断响应的过程。32向量类型向量类型 INTACLKAD7AD0T1T2T3T4第第 一一 个个中断响应周期中断响应周期T1T2T3T4第第 二二 个个中断响应周期中断响应周

32、期 8086CPU中断响应周期时序中断响应周期时序33 将将 ISR 中相应位置中相应位置1,表示表示 CPU 响应此级中断,执行此中断源的中断子程。响应此级中断,执行此中断源的中断子程。8259A在接收到第一个在接收到第一个INTA中断响应信号后中断响应信号后:001 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制OCW1

33、中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置1 0 0 1 0 1 0 0IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RDWR INTAINTD0D7INTR01 把把 IRR中对应的位清中对应的位清0,清除,清除IRR中锁存的中断申请信号。中锁存的中断申请信号。34 通过数据线,将被响应申请的中断类型号送给通过数据线,将被响应申请的中断类型号送给CPU。类型号由类型号由ICW2提供,在初始化提供,在初始化8259A时已设定好。时已设定好。8259A在接收到第二个在接收到第二个

34、INTA中断响应信号后:中断响应信号后:001 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置1 0 0 1 0 1 0 0IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5

35、A9CSA0RDWR INTAINTD0D7INTR01 CPU获得中断类型号后,进入获得中断类型号后,进入CPU响应中断的过程响应中断的过程,执行中断子程,处理中断源申请的功能执行中断子程,处理中断源申请的功能。35 取中断类型号取中断类型号N 当前当前PSW的内容入栈的内容入栈 清清IF、TF标志为标志为0当前当前CS的内容入栈的内容入栈 当前当前IP的内容入栈的内容入栈 取内存单元取内存单元(0:N 4)字内容送字内容送IP 取中断子程取中断子程 取内存单元取内存单元(0:N 4+2)字内容送字内容送CS 入口地址入口地址 此时此时CS:IP指向中断程序的入口,开始执行中断程序。指向中断

36、程序的入口,开始执行中断程序。保存现场保存现场CPU响应中断过程:响应中断过程:执行完中断子程中最后一条指令执行完中断子程中最后一条指令IRET后,后,返回被中断处,继续执行被中断的程序。返回被中断处,继续执行被中断的程序。36三、8259A的编程1.8259A的编程的编程2.8259A的编程方法的编程方法 (1)设置中断屏蔽字设置中断屏蔽字 (2)发中断结束命令发中断结束命令EOI374个初始化命令寄存器个初始化命令寄存器ICW1、ICW2ICW3、ICW43个操作命令寄存器个操作命令寄存器OCW1(IMR)OCW2、OCW3当当前前中中断断服服务务寄寄存存器器ISR中断申请寄存器中断申请寄

37、存器IRR 8259A内部有内部有9个个 可读写的寄存器可读写的寄存器1.8259A的编程的编程 1 I3 I4ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制处理部分处理部分控制部分控制部分000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器PR优先级优先级裁决器裁决器IRR中断申请中断申请寄存器寄存器000 0 0 0 0 0 中断屏蔽寄存器中断屏蔽寄存器 IMROCW2 1 0 0 1 0 1 0 0 0 0 0 1 OCW3OCW18259A中断控制器中断控制器388259A有两个有两个I/O端口地

38、址端口地址A0=0 偶地址端口A0=1 奇地址端口对对9个寄存器的读写个寄存器的读写 均通过这两个端口实现均通过这两个端口实现写入数据的特征位写入数据的特征位写入的先后顺序写入的先后顺序 区分是对哪个寄存器区分是对哪个寄存器 进行操作进行操作根据根据 1 I3 I4ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制处理部分处理部分控制部分控制部分000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器PR优先级优先级裁决器裁决器IRR中断申请中断申请寄存器寄存器000 0 0 0 0 0 中断屏蔽寄存器中断屏蔽寄

39、存器OCW2 1 0 0 1 0 1 0 0 0 0 0 1 OCW3OCW18259A中断控制器中断控制器D0D7A0CSRDWR80111A0100A0398259初始化流程用用ICW1设置设置是否级联是否级联请求格式信号请求格式信号是否需要设置是否需要设置ICW4用用ICW2设置中断类型码设置中断类型码是否为级联方式本片设为主片吗?设置设置ICW3,各位,各位对应对应IR0IR7设置设置ICW3,高,高5位位为为0,低,低3位为标识码位为标识码需要用到ICW4吗?用ICW4设置是否为特殊全嵌套方式是否为特殊全嵌套方式是否为缓冲方式是否为缓冲方式是否为自动结束中断方式是否为自动结束中断方式

40、是否为是否为16位系统位系统结束,进行中断服务NYNYNY40(1)(1)通过中断屏蔽寄存器通过中断屏蔽寄存器IMRIMR的读写,设置中断屏蔽字的读写,设置中断屏蔽字(2)(2)通过通过OCW2OCW2操作命令寄存器,发中断结束操作命令寄存器,发中断结束EOIEOI命令命令2.8259A的编程方法8259A8259A有有多多种种工工作作方方式式,这这些些工工作作方方式式均均可可编编程选择,使用相当灵活。程选择,使用相当灵活。要求掌握:要求掌握:41IRR ISR 查询字(OCW3)IMR(OCW1)CPU OCW2CPU写 OCW3 ICW1 写(IMR).OCW1.ICW2.3.4DB7-0

41、DB7-00 0 0 0 0 10 0 0 1 0 10 0 1 X 0 10 1 X X 0 1 0A0H0A1H20H21H输出操作(WR)0 0 1 00 1 1 0 0A0H0A1H20H 21H输入操作(RD)CS A0 WR RD PIC2PIC1对对8259的端口寻址及其基本操作(读的端口寻址及其基本操作(读/写基本操作)写基本操作)注意注意:8259只有两个端口,由A0一位确定:1:奇数口 0:偶数口 由奇/偶数端口及控制字中的某些特定 位来确定命令字往那个R中送。42通过往奇地址端口写入通过往奇地址端口写入IMR内容实现内容实现对应位对应位为为0,允许允许该级中断申请进入该级

42、中断申请进入对应位对应位为为1,禁止禁止该级中断申请进入该级中断申请进入(1)设置中断屏蔽字设置中断屏蔽字IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先

43、级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR43l 新增允许新增允许 IR2 的中断申请的中断申请 IN AL,21H ;读入原读入原IMR的内容的内容 AND AL,1111 1011B ;D2=0,允许允许IR2的中断申请的中断申请 OUT 21H,AL ;写入写入IMRl 禁止禁止 IR4 的中断申请的中断申请 IN AL,21H ;读入原读入原IMR的内容的内容 OR AL,0001 0000B ;D4=1,禁止禁止IR4的中断申请的中断申请 OUT 21H,AL ;写入写入IMR例例 已知已知 IBM PC/

44、XT系统中系统中 8259A的奇地址端口地址为的奇地址端口地址为21H44设置完成后的结果设置完成后的结果:IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优

45、先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 0 0 0INTR45(2)发中断结束命令发中断结束命令 EOI由由 8259A 8259A 的工作过程可知的工作过程可知:ISRISR中的内容是优先级裁决器进行裁决的重要依据中的内容是优先级裁决器进行裁决的重要依据 CPUCPU响响应应某某级级中中断断后后,8259A8259A自自动动将将ISRISR的的对对应应位位置置1 1,如如果果CPUCPU已执行完中断子程,而已执行完中断子程,而ISRISR中的对应位仍为中的对应位仍为1,1,8259A 8259A的优先级裁决器仍会据的优先级裁决器

46、仍会据ISRISR的内容做裁决,的内容做裁决,从而会屏蔽同级或低级的中断申请。从而会屏蔽同级或低级的中断申请。在中断响应后,对在中断响应后,对 ISR ISR中相应位的清中相应位的清0 0很重要,很重要,它是它是8259A8259A认为中断结束的标志。认为中断结束的标志。46IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制101 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1I

47、R2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR47一一、初初始始化化8259A时时,设设置置8259A工工作作方方式式为为自自动动清清0方方式式,则在则在CPU响应中断后,硬件自动将响应中断后,硬件自动将ISR的对应位清的对应位清0。清清 ISR 内容的方法有两种:内容的方法有两种:二二、初初始始化化8259A时时,设设置置8259A工工作作方方式式为为

48、非非自自动动清清0方方式,式,需在中断子程中,通过软件方式清需在中断子程中,通过软件方式清0。方方法法是是:通通过过往往OCW2写写入入20H实实现现,即即由由偶偶地地址址端端口口写入:写入:EOI00100000特征位,表示对特征位,表示对OCW2操作操作20H48编程在中断子程编程在中断子程 IRET 返回前,发中断结束命令返回前,发中断结束命令EOI例例 已知已知 IBM PC系统中系统中,8259A的偶地址端口地址为的偶地址端口地址为 20H;BIOS 初始化初始化 8259A 时,设置时,设置 8259A 工作方式为非自动清工作方式为非自动清 0 方式。方式。intsub PROC

49、、MOV AL,20H ;将中断结束命令字将中断结束命令字20H 送送AL OUT 20H,AL ;写入写入OCW2中中 IRET ;中断返回中断返回 intsub ENDP49 中断服中断服务务子程序子程序设计设计设计中断子程序的步骤:设计中断子程序的步骤:(1 1)选择一个中断向量选择一个中断向量;(2 2)将中断子程序的入口地址置入中断向量表将中断子程序的入口地址置入中断向量表的相应表项中的相应表项中;(3 3)使中断服务子程序驻留内存使中断服务子程序驻留内存;举例举例505050选择选择选择选择一个中断向量一个中断向量一个中断向量一个中断向量如果是采用硬件中断,则要使用由硬件确定如果是

50、采用硬件中断,则要使用由硬件确定的中断向量。如果是采用软件中断,即用执的中断向量。如果是采用软件中断,即用执行行INT nINT n指令的方式来执行中断服务程序,指令的方式来执行中断服务程序,则可以在系统预留给用户的中断向量号中选则可以在系统预留给用户的中断向量号中选某一个中断向量。例如,选某一个中断向量。例如,选50H50H号向量。号向量。515151中断服中断服中断服中断服务务务务子程序子程序子程序子程序设计设计设计设计步步步步骤骤骤骤(续续续续)(2 2)将中断子程序的入口地址置入中断向量表的相)将中断子程序的入口地址置入中断向量表的相应表项中应表项中设选择的向量号为设选择的向量号为n

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁