收藏 分销(赏)

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

上传人:快乐****生活 文档编号:14665232 上传时间:2026-10-27 格式:PPT 页数:82 大小:1.95MB 下载积分:10 金币
下载 相关
可编程中断控制器859A.ppt_第1页
第1页 / 共82页
可编程中断控制器859A.ppt_第2页
第2页 / 共82页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,7.3 可编程中断控制器8259A,一、引言,二、8259A的引脚、编程结构和工作过程,三、8259A的编程,1.设置中断屏蔽字,2.发中断结束命令EOI,四、8259A在IBM PC/XT系统中的应用,1,一、引言,中断申请,管理接口,INT,中断申请,接口1,网络,接口2,硬盘,接口3,软盘,接口4,打印机,8086,CPU,INTR,IF,2,1.,向CPU的引脚INTR发中断申请信号,当有多个外设同时发出中断请求时,,能按照一定的优先级顺序,向CPU发出中断申请,,使CPU能优先响应优先级最高的外部设备的中断申请。,2.,送中断类型号,在CPU中断响应周期,针对不同外设的中断请求,,向CPU传送不同的中断类型号,,使CPU执行相应的中断子程,。,中断申请管理接口的主要功能:,在IBM PC机由,8259A,可编程中断控制器(PIC)来完成。,3,二、,8259A的引脚、编程结构和工作过程,1.,8259A,的引脚,2.,8259A,的编程结构,3.,8259A,的工作过程,4,1.,8259A,的引脚,双列直插式芯片,28个引脚,方 波,键 盘,保 留,串 口2,硬 盘,软 盘,打印机,IOW,17.2Hz,A0,CS,8259A,总线,A0,数 据 线,IOR,RD,WR,片,选,译,码,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,A5,A9,D0,D7,D0,D7,Vcc,SP/EN,CA0,CA1,CA2,GND,+5V,203FH,用于多片,8259A,级连情况,INTA,INT,INTA,INTR,串 口1,定时器,5,级连电路连接方法,8,8,28259A,的编程结构,SP/EN,CA0,CA1,CA2,IOR,IOW,总线,D0,D7,数 据 线,D0,D7,INTA,INTR,A0,片,选,译,码,A5,A9,CS,A0,RD,INTA,WR,INT,1,I3,I4,ICW1,芯片控制,ICW2,中断类型号,ICW3,主从片连接关系,ICW4,方式控制,0,1,1,1,A0,1,0,0,1,0,1,0,0,OCW1,中断屏蔽寄存器 IMR,0,0,OCW2,优先级设置、发EOI,0,1,OCW3,特殊屏蔽,查询方式设置,处理部分,控制部分,0,0,0,0,0,0,0,0,ISR,当前,中断,服务,寄存器,PR,优先级,裁决器,VCC,GND,1,0,0,A0,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,IRR,中断,申请,寄存器,0,0,0,0,0,0,0,0,9,4个初始化命令寄存器,ICW1,、,ICW2,ICW3,、,ICW4,3个操作命令寄存器,OCW1(IMR),OCW2、OCW3,当前中断服务寄存器 ISR,中断申请寄存器 IRR,8259A,内部有9个,可读写的寄存器,8259A,的编程结构,1,I3,I4,ICW1,芯片控制,ICW2,中断类型号,ICW3,主从片关系,ICW4,方式控制,处理部分,控制部分,0,0,0,0,0,0,0,0,ISR,当前,中断,服务,寄存器,PR,优先级,裁决器,IRR,中断申请,寄存器,0,0,0,0,0,0,0,0,中断屏蔽寄存器 IMR,OCW2,1,0,0,1,0,1,0,0,0,0,0,1,OCW3,OCW1,8259A,中断控制器,10,(1)初始化命令字,(ICW1,-,ICW4),决定8259A的工作方式,通常是在计算机系统启动时在初始程序设置,,一旦设定,一般在系统工作过程不再改变。,例,开机后,BIOS将8259A,初始化为:,IR0IR7中断申请信号为上升沿触发方式;,IR0IR7对应的中断类型号分别为08H0FH;,优先级IR0最高,IR7最低;,(2)操作命令字,(OCW1,OCW2,OCW3),在应用程序中设定,动态地控制,CPU,处理中断的过程,(3)ISR,和,IRR,存放当前,8259A,的状态,通过读取,ISR,和,IRR,的内容,可了解当前,8259A,工作情况,11,初始化命令字,ICW1ICW4,初始化命令字在8259正常工作前设置。它决定8259的工作方式和环境。,返回,A7 A6 A5 1 LTIM ADI SNGL IC4,D7 D6 D5 D4 D3 D2 D1 D0,0,A0,ICW1,8086不用,0:边沿检测,1:电平检测,0:不需要,I,CW4,1:需要ICW4,80868088不用,0:级联使用,1:单独使用,12,12,8259A,的控制命令字,初始化,8259A,必须从,ICW1,开始,写,ICW1,意味着重新初始化,8259A,写入,ICW1,后,,8259A,的状态如下:,清除,ISR,和,IMR(,全,0),;,将中断优先级设成初始状态:,IR,0,最高,,IR,7,最低;,设定为一般屏蔽方式;,采用非自动中断结束方式;,状态读出逻辑预置为读,IRR,。,13,13,在中断响应的第二个总线周期,通过数据线发送中断类型码给CPU,返回,1,A0,T7 T6 T5 T4 T3 X X X,D7 D6 D5 D4 D3 D2 D1 D0,中断类型码高5位,自动填入,中断源,D2,D1,D0,IR0,0,0,0,IR1,0,0,1,IR2,0,1,0,IR3,0,1,1,IR4,1,0,0,IR5,1,0,1,IR6,1,1,0,IR7,1,1,1,14,14,ICW2,中断向量码,T,7,T,3,:中断向量码的高5位,T,2,T,0,:最低3位为中断源的序号IR,n,000111分别对应IR,0,IR,7,由8259A根据中断源的序号自动填入,例如:,若ICW2命令字为48H,则IR,0,的中断向量码为48H,IR,7,的中断向量码为4FH,等等。,A0,D7D6 D5 D4 D3 D2 D1 D0,1,T,7,T,6,T,5,T,4,T,3,x,x,x,15,15,1,A0,S7 S6 S5 S4 S3,S2 S1 S0,D7 D6 D5 D4 D3 D2 D1 D0,主8259的级联标志,1:相应的IR上,有从8259,0:相应的IR上,无从8259,级连初始化必须与硬件连接一致,1,A0,0 0 0 0 0,ID2 ID1 ID0,D7 D6 D5 D4 D3 D2 D1 D0,ID2ID0:从8259的IR识别码,主片,从片,16,16,ICW3,级连控制字(续),ICW3必须与主从片的连接关系一致:,例如,主片的IR,4,与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H。,中断响应时,主片通过级连线CAS,2,-CAS,0,送出被允许中断的从片标识码,各从片用自己的ICW3与CAS,2,-CAS,0,比较,二者一致的从片才可发送中断向量码。,17,17,ICW4,初始化命令字ICW1ICW4是以写入的顺序来区分的,1,A0,0 0 0 SFNM BUF M,/,S AEOI PM,D7 D6 D5 D4 D3 D2 D1 D0,0:非自动EOI,1:自动EOI,0:8085方式,1:86/88方式,0:一般的全嵌套方式,1:特殊的全嵌套方式,0:非缓冲方式,10:缓冲方式从片,11:缓冲方式主片,返回,18,18,例,8259,初始化,单片8259应用于8086系统,IR0的中断,类型码为18H,,,电平触发,方式,,全嵌套非缓冲,方式,,自动结束,中断,,要求初始化ICW4,。端口地址为0A0H开始,初始化程序为:,MOVAL,,13H,ICW1初始化,OUT0A0H,AL;写入ICW1,MOVAL,,18H,ICW2 初始化,OUT0A2H,AL;写入ICW2,MOVAL,,03H,ICW4初始化,OUT0A2H,AL;写入ICW4,19,19,8259A,的操作命令字,OCW,OCW用于设置8259的工作状态,在初始化后写入,OCW的写入顺序可任意,写入地址要求:,OCW1,必须写入奇地址端口,(A,0,=1),OCW2,,,OCW3,必须写入偶地址端口,(A,0,=0),20,20,操作命令字,OCW,Mi=1 中断请求线IRi被屏蔽(不允许中断),=0 允许该IRi中断,OCW1将写入IMR寄存器。,A0=1时读OCW1可读出设置的IMR内容。,OCW1,1,A0,M7 M6 M5 M4 M3 M2 M1 M0,D7 D6 D5 D4 D3 D2 D1 D0,0:清中断屏蔽位,1:置中断屏蔽位,21,21,操作命令字,OCW,0,A0,R SL EOI 0 0 L2 L1 L0,D7 D6 D5 D4 D3 D2 D1 D0,0 0 0,1 1 1,对应IRi的编码,无操作,0,1,0,特殊优先权循环,由L2L0设定最低优先级,0,1,1,特殊EOI,由L2L0指定特殊优先权循环,1,1,1,取消自动优先权循环(固定优先权),0,0,0,自动优先权循环,0,0,1,自动优先权循环,常规EOI,1,0,1,特殊EOI,由L2L0指定结束IRi,1,1,0,常规EOI,1,0,0,R=1:循环优先权,R=0:固定优先权,SL=1:L,2,L,1,L,0,指定IR位,SL=0:L,2,L,1,L,0,无效,EOI=1:中断结束,OCW2,22,22,OCW3,0,A0,D7 D6 D5 D4 D3 D2 D1 D0,ESMM SMM 0 1 P RR RIS,1,0,清除特殊屏蔽方式,0,1,设定特殊屏蔽方式,无意义,1,0,1,0,1,0,读IRR,0,1,读ISR,无意义,1,0,1,0,0:非查询方式,1:查询方式,操作命令字,OCW,8259的工作方式编程并没有固定顺序,各命令字之间用地址信号A0及,特征位,加以区分。,23,23,OCW3,(续),查询方式允许8259A不工作于中断方式,而是以查询方式工作。,CPU先写一个D,2,=1(查询方式)的OCW3,再对同一地址读入,即可得到如下状态字节:,I x x x x R,2,R,1,R,0,I=1表示有中断请求,中断请求号为R,2,-R,0,此查询步骤可反复执行,以响应多个同时发生 的中断。,读IRR/ISR:写入此命令后,随后再对同一地址读,即可得到IRR或ISR的内容。,24,24,CLI;关中断,MOVAL,17H;ICW1:单片,边缘触发,需要ICW4,OUT20H,AL,MOVAL,08H;ICW2:中断类型码的D,7,D,3,位为00001,OUT21H,AL,MOVAL,01H;ICW4:非自动的EOI,非缓冲,80X86方式,OUT21H,AL,MOVAL,04H;OCW1:只屏蔽IRQ,2,(保留中断),OUT21H,AL,MOVAL,20H;OCW2:固定优先权,一般的EOI,OUT20H,AL,MOVAL,4BH;OCW3:正常屏蔽,非查询方式,可读ISR,OUT20H,AL,STI,;开中断,=,0000 1,000,B,=,000,1,0111,B,=,0000 000,1,B,=,0000 0,1,00,B,=,001,0 0,000,B,=,010,0,1,011,B,8259,的初始化编程,25,25,分两步:,(1)处理外设中断申请,决定是否向CPU发中断申请信号。,(2)若发中断申请信号,且CPU响应,,则在CPU中断响应周期送出中断类型号。,3.8259A,的工作过程,26,(1),处理外设中断申请,决定是否向CPU发中断申请信号,中断屏蔽寄存器 IMR,决定 IRR 中的中断申请,是否进入优先级裁决器 PR。,IMR对应位为,0,允许中断申请进入优先级裁决器,,为 1,不允许进入,中断申请被IMR屏蔽。,中断申请寄存器IRR,锁存外部的中断申请。,若 IR0IR7 引脚上有中断申请,则将 IRR 相应位置1,当前中断服务寄存器 ISR,记录CPU正在响应的中断。,ISR中的某位为1,表示CPU正在响应此级中断,,ISR中的某位为 0,表示CPU没有或已响应完此级中断,,优先级裁决器PR,据新进入的中断申请和 ISR的内容,决定是否发中断申请信号。,如果进入的中断申请比 ISR 中记录的中断优先级高,,则通过 8259A 的 INT 引脚向 CPU发出中断请求信号;,如果进入的中断申请不比 ISR 中记录的中断优先级高,,同级或低级,则不向 CPU 发中断请求信号。,27,中断申请寄存器IRR,锁存外部的中断申请。,若 IR0IR7 引脚上有中断申请,则将 IRR 相应位置1,IOR,IOW,总线,数 据 线,D0,D7,INTA,A0,片,选,译,码,A5,A9,CS,A0,RD,INTA,WR,INT,D0,D7,ICW1,芯片控制,ICW2,中断类型号,ICW3,主从片关系,ICW4,方式控制,0,0,0,0,0,0,0,0,ISR,当前,中断,服务,寄存器,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,OCW1,中断屏蔽寄存器 IMR,0,0,OCW2,优先级、发EOI,OCW3,特殊屏蔽设置,PR,优先级,裁决器,IRR,中断,申请,寄存器,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,INTR,1,1,28,中断屏蔽寄存器 IMR,决定 IRR 中的中断申请,是否进入优先级裁决器 PR。,IMR对应位,为,0,,,允许,中断申请进入优先级裁决器,,为 1,,,不允许,进入,中断申请被IMR屏蔽。,IOR,IOW,总线,数 据 线,D0,D7,INTA,A0,片,选,译,码,A5,A9,CS,A0,RD,INTA,WR,INT,D0,D7,ICW1,芯片控制,ICW2,中断类型号,ICW3,主从片关系,ICW4,方式控制,0,0,0,0,0,0,0,0,ISR,当前,中断,服务,寄存器,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,OCW1,中断屏蔽寄存器 IMR,0,0,OCW2,优先级、发EOI,OCW3,特殊屏蔽设置,PR,优先级,裁决器,IRR,中断,申请,寄存器,1,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,INTR,29,当前中断服务寄存器 ISR,记录CPU正在响应的中断。,ISR中的某位,为1,,表示CPU,正在响应,此级中断,,即正在执行此中断源的中断子程;,ISR中的某位,为 0,,表示CPU,没有或已响应完,此级中断,,即不在执行此中断源的中断子程,IOR,IOW,总线,数 据 线,D0,D7,INTA,A0,片,选,译,码,A5,A9,CS,A0,RD,INTA,WR,INT,D0,D7,ICW1,芯片控制,ICW2,中断类型号,ICW3,主从片关系,ICW4,方式控制,0,0,1,0,0,0,0,0,ISR,当前,中断,服务,寄存器,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,OCW1,中断屏蔽寄存器 IMR,0,0,OCW2,优先级、发EOI,OCW3,特殊屏蔽设置,PR,优先级,裁决器,IRR,中断,申请,寄存器,1,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,INTR,30,优先级裁决器PR,据新进入的中断申请和 ISR的内容,决定是否发中断申请信号。,如果进入的中断申请比 ISR 中记录的,中断优先级高,,,则通过 8259A 的 INT 引脚向 CPU发出中断请求信号;,如果进入的中断申请不比 ISR 中记录的中断优先级高,,同级或低级,,,则不向 CPU 发中断请求信号。,IOR,IOW,总线,数 据 线,D0,D7,INTA,A0,片,选,译,码,A5,A9,CS,A0,RD,INTA,WR,INT,D0,D7,ICW1,芯片控制,ICW2,中断类型号,ICW3,主从片关系,ICW4,方式控制,0,0,1,0,0,0,0,0,ISR,当前,中断,服务,寄存器,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,OCW1,中断屏蔽寄存器 IMR,0,0,OCW2,优先级、发EOI,OCW3,特殊屏蔽设置,PR,优先级,裁决器,IRR,中断,申请,寄存器,1,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,INTR,31,(2),若发中断申请信号,且,CPU,响应,,则在,CPU,中断响应周期送出中断类型号,CPU接收到 INTR上的中断申请信号后:,如果,IF,标志为,0,,则,CPU,不响应此中断申请信号,即中断申请被,IF,屏蔽。,如果,IF,标志为,1,则处理完当前的指令后,进入中断响应周期,通过,INTA,引脚发出两个负脉冲信号,,从数据总线上获取中断类型号,,进入中断响应的过程。,32,向量类型,INTA,CLK,AD7AD0,T1,T2,T3,T4,第 一 个,中断响应周期,T1,T2,T3,T4,第 二 个,中断响应周期,8086CPU,中断响应周期时序,33,将,ISR 中相应位置1,,表示 CPU 响应此级中断,执行此中断源的中断子程。,8259A,在接收到第一个INTA中断响应信号后,:,0,0,1,0,0,0,0,0,ISR,当前,中断,服务,寄存器,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,PR,优先级,裁决器,IRR,中断,申请,寄存器,1,0,0,0,0,0,0,1,ICW1,芯片控制,ICW2,中断类型号,ICW3,主从片关系,ICW4,方式控制,OCW1,中断屏蔽寄存器 IMR,0,0,OCW2,优先级、发EOI,OCW3,特殊屏蔽设置,1,0,0,1,0,1,0,0,IOR,IOW,总线,数 据 线,D0,D7,INTA,A0,片,选,译,码,A5,A9,CS,A0,RD,WR,INTA,INT,D0,D7,INTR,0,1,把 IRR中对应的位清0,清除IRR中锁存的中断申请信号。,34,通过数据线,将被响应申请的中断类型号送给CPU。,类型号由ICW2提供,在初始化8259A时已设定好。,8259A在接收到第二个INTA中断响应信号后:,0,0,1,0,0,0,0,0,ISR,当前,中断,服务,寄存器,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,PR,优先级,裁决器,IRR,中断,申请,寄存器,1,0,0,0,0,0,0,1,ICW1,芯片控制,ICW2,中断类型号,ICW3,主从片关系,ICW4,方式控制,OCW1,中断屏蔽寄存器 IMR,0,0,OCW2,优先级、发EOI,OCW3,特殊屏蔽设置,1,0,0,1,0,1,0,0,IOR,IOW,总线,数 据 线,D0,D7,INTA,A0,片,选,译,码,A5,A9,CS,A0,RD,WR,INTA,INT,D0,D7,INTR,0,1,CPU获得中断类型号后,进入CPU响应中断的过程,执行中断子程,处理中断源申请的功能,。,35,取中断类型号N,当前PSW的内容入栈,清IF、TF标志为0,当前CS的内容入栈,当前IP的内容入栈,取内存单元(0:N 4)字内容送IP,取中断子程,取内存单元(0:N 4+2)字内容送CS,入口地址,此时CS:IP指向中断程序的入口,开始执行中断程序。,保存现场,CPU响应中断过程:,执行完中断子程中最后一条指令IRET后,,返回被中断处,继续执行被中断的程序。,36,三、,8259A的编程,1.8259A,的编程,2.8259A,的编程方法,(1)设置中断屏蔽字,(2)发中断结束命令EOI,37,4个初始化命令寄存器,ICW1,、,ICW2,ICW3,、,ICW4,3个操作命令寄存器,OCW1(IMR),OCW2、OCW3,当前中断服务寄存器 ISR,中断申请寄存器 IRR,8259A,内部有9个,可读写的寄存器,1.8259A,的编程,1,I3,I4,ICW1,芯片控制,ICW2,中断类型号,ICW3,主从片关系,ICW4,方式控制,处理部分,控制部分,0,0,0,0,0,0,0,0,ISR,当前,中断,服务,寄存器,PR,优先级,裁决器,IRR,中断申请,寄存器,0,0,0,0,0,0,0,0,中断屏蔽寄存器 IMR,OCW2,1,0,0,1,0,1,0,0,0,0,0,1,OCW3,OCW1,8259A,中断控制器,38,8259A,有两个,I/O,端口地址,A0=0 偶地址端口,A0=1 奇地址端口,对,9,个寄存器的读写,均通过这两个端口实现,写入数据的特征位,写入的先后顺序,区分是对哪个寄存器,进行操作,根据,1,I3,I4,ICW1,芯片控制,ICW2,中断类型号,ICW3,主从片关系,ICW4,方式控制,处理部分,控制部分,0,0,0,0,0,0,0,0,ISR,当前,中断,服务,寄存器,PR,优先级,裁决器,IRR,中断申请,寄存器,0,0,0,0,0,0,0,0,中断屏蔽寄存器,OCW2,1,0,0,1,0,1,0,0,0,0,0,1,OCW3,OCW1,8259A,中断控制器,D0,D7,A0,CS,RD,WR,8,0,1,1,1,A0,1,0,0,A0,39,8259初始化流程,用ICW1设置,是否级联,请求格式信号,是否需要设置ICW4,用ICW2设置中断类型码,是否为级联方式,本片设为主片吗?,设置ICW3,各位,对应IR0IR7,设置ICW3,高5位,为0,低3位为标识码,需要用到ICW4吗?,用ICW4设置,是否为特殊全嵌套方式,是否为缓冲方式,是否为自动结束中断方式,是否为16位系统,结束,进行中断服务,N,Y,N,Y,N,Y,40,(1)通过中断屏蔽寄存器IMR的读写,设置中断屏蔽字,(2),通过OCW2操作命令寄存器,发中断结束EOI命令,2.8259A的编程方法,8259A有多种工作方式,这些工作方式均可编程选择,使用相当灵活。,要求掌握:,41,IRR ISR 查询字(OCW3),IMR(OCW1)CPU,OCW2,CPU写 OCW3,ICW1,写(IMR).OCW1.ICW,2.3.4,DB,7-0,DB,7-0,0 0 0 0 0 1,0 0 0 1 0 1,0 0 1 X 0 1,0 1 X X 0 1,0A0H,0A1H,20H,21H,输出操作(WR),0 0 1 0,0 1 1 0,0A0H,0A1H,20H,21H,输入操作(RD),CS A0 WR RD,PIC2,PIC1,对8259的端口寻址及其基本操作(读/写基本操作),注意,:,8259只有两个端口,由A0一位确定:1:奇数口 0:偶数口 由奇/偶数端口及控制字中的某些特定 位来确定命令字往那个R中送。,42,通过往奇地址端口写入IMR内容实现,对应位,为0,,,允许,该级中断申请进入,对应位,为1,,,禁止,该级中断申请进入,(1),设置中断屏蔽字,IOR,IOW,总线,数 据 线,D0,D7,INTA,A0,片,选,译,码,A5,A9,CS,A0,RD,INTA,WR,INT,D0,D7,ICW1,芯片控制,ICW2,中断类型号,ICW3,主从片关系,ICW4,方式控制,0,0,0,0,0,0,0,0,ISR,当前,中断,服务,寄存器,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,OCW1,中断屏蔽寄存器 IMR,0,0,OCW2,优先级、发EOI,OCW3,特殊屏蔽设置,PR,优先级,裁决器,IRR,中断,申请,寄存器,1,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,INTR,43,新增允许,IR2,的中断申请,IN AL,21H ;,读入原,IMR,的内容,AND,AL,1111 1,0,11B ;,D2=0,允许,IR2,的中断申请,OUT 21H,AL ;,写入,IMR,禁止,IR4,的中断申请,IN AL,21H ;,读入原,IMR,的内容,OR,AL,000,1,0000B ;,D4=1,禁止,IR4,的中断申请,OUT 21H,AL ;,写入,IMR,例,已知 IBM PC/XT系统中,8259A的奇地址端口地址为21H,44,设置完成后的结果:,IOR,IOW,总线,数 据 线,D0,D7,INTA,A0,片,选,译,码,A5,A9,CS,A0,RD,INTA,WR,INT,D0,D7,ICW1,芯片控制,ICW2,中断类型号,ICW3,主从片关系,ICW4,方式控制,0,0,0,0,0,0,0,0,ISR,当前,中断,服务,寄存器,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,OCW1,中断屏蔽寄存器 IMR,0,0,OCW2,优先级、发EOI,OCW3,特殊屏蔽设置,PR,优先级,裁决器,IRR,中断,申请,寄存器,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,INTR,45,(2)发中断结束命令 EOI,由 8259A 的工作过程可知:,ISR中的内容是优先级裁决器进行裁决的重要依据,CPU响应某级中断后,8259A自动将ISR的对应位置1,如果CPU已执行完中断子程,而ISR中的对应位仍为1,8259A的优先级裁决器仍会据ISR的内容做裁决,,从而会屏蔽同级或低级的中断申请。,在中断响应后,对 ISR中相应位的清0很重要,,它是8259A认为中断结束的标志。,46,IOR,IOW,总线,数 据 线,D0,D7,INTA,A0,片,选,译,码,A5,A9,CS,A0,RD,INTA,WR,INT,D0,D7,ICW1,芯片控制,ICW2,中断类型号,ICW3,主从片关系,ICW4,方式控制,1,0,1,0,0,0,0,0,ISR,当前,中断,服务,寄存器,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,OCW1,中断屏蔽寄存器 IMR,0,0,OCW2,优先级、发EOI,OCW3,特殊屏蔽设置,PR,优先级,裁决器,IRR,中断,申请,寄存器,1,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,INTR,47,一、初始化8259A时,设置8259A工作方式为自动清0方式,则在CPU响应中断后,硬件自动将ISR的对应位清0。,清 ISR 内容的方法有两种:,二、初始化8259A时,设置8259A工作方式为非自动清0方式,需在中断子程中,通过软件方式清0。,方法是:,通过往OCW2写入20H实现,即由偶地址端口写入:,EOI,0,0,1,0,0,0,0,0,特征位,表示对,OCW2操作,20H,48,编程在中断子程 IRET 返回前,发中断结束命令EOI,例,已知 IBM PC系统中,8259A的偶地址端口地址为 20H;,BIOS 初始化 8259A 时,设置 8259A 工作方式为非自动清 0 方式。,intsub PROC,、,、,、,MOV AL,20H,;,将中断结束命令字20H 送AL,OUT 20H,AL,;,写入OCW2中,IRET,;,中断返回,intsub ENDP,49,中断服务子程序设计,设计中断子程序的步骤:,(1),选择一个中断向量,;,(2),将中断子程序的入口地址置入中断向量表的相应表项中,;,(3),使中断服务子程序驻留内存,;,举例,50,50,选择一个中断向量,如果是采用硬件中断,则要使用由硬件确定的中断向量。如果是采用软件中断,即用执行INT n指令的方式来执行中断服务程序,则可以在系统预留给用户的中断向量号中选某一个中断向量。例如,选50H号向量。,51,51,中断服务子程序设计步骤(续),(2)将中断子程序的入口地址置入中断向量表的相应表项中,设选择的向量号为n,其置入方法有两种:一是用数据传送指令将中断服务子程序入口的相对地址存放在物理地址为4n的字单元中,将中断服务子程序入口的段地址存放在物理地址为4n2的字单元中。二是采用DOS中设置新中断向量的中断功能(25功能),即:,向量号 21H,功能号 25H,入口参数:DS中断服务子程序入口段地址;,DX中断服务子程序入口相对地址;,AL新增的向量号。,52,52,使中断服务子程序驻留内存,使程序驻留内存,要求该程序以.COM形式运行,因为.COM程序将定位于低地址区,DOS常在低地址区增加驻留程序,而.EXE将定位于高地址区。使程序驻留内存的方法是采用DOS的中断调用,即:向量号21H,功能号31H,入口参数:DX驻留程序字节数;,该功能使当前程序的DX个字节驻留内存并返回DOS。,53,53,举例,例:在微机中增加一中断服务子程序,其向量号为50H,其功能是BX内容增1。,CSEGMENT,ASSUME CS:C,ORG 100H,B:MOV AX,SEG SUBP,MOV DS,AX,MOV DX,OFFSET SUBP,MOV AH,25H,MOV AL,50H,INT 21H ;建立50H中断向量表项,MOV DX,N,MOV AH,31H,INT 21H;中断服务程序驻留内存并返回DOS,SUBP PROC FAR,INC BX,IRET,SUBP ENDP,N EQU ,C ENDS,END B ,54,54,8259A,应用举例,在IBM PC/XT机中,只用1片8259A中断控制器,用来提供8级中断请求,其中IR0优先级最高,IR7优先级最低。它们分别用于日历时钟中断、键盘中断、保留、网络通信、异步通信中断、硬盘中断、软盘中断及打印机中断。8259A片选地址为20H、21H。,8259A 的使用步骤如下:,1.,初始化,2.,送中断向量入口地址,3.,中断子程序结束,4.,中断嵌套,55,55,初始化,MOV AL,13H;写ICW1,单片,边沿触发,要ICW4,OUT 20H,AL,MOV AL,8 ;写ICW2,中断类型号从8开始,OUT 21H,AL,MOV AL,0DH;写ICW4,缓冲工作方式,8088/8086配置,OUT 21H,AL,MOV AL,0 ;写OCW1,允许IR0IR7全部8级中断请求,OUT 21H,AL,56,56,送中断向量入口地址,例如,异步通信中断IR4,其中断向量类型码为8+4=12(0CH),则中断入口地址的偏移量(IP值)与段基址(CS)在入口地址表中的存放地址为124=48(30H),49(31H),50(32H),51(33H)。其中30H、31H存放指令指针IP;32H,33H存放指令段码CS。,57,57,中断子程序结束,由于8259A采用中断工作方式,且ICW4中的D1位(即AEOI)为0,这意味着采用正常结束中断,因此,在中断子程序结束前必须发EOI命令和IRET命令。,MOV AL,20H;写OCW2命令,使ISR相应位复位(即发EOI命令),OUT 20H,AL,IRET;开放中断允许,并从中断返回,58,58,中断嵌套,为了使中断嵌套,即在中断响应过程中,允许比本中断优先级高的中断进入,只要在进入中断处理程序后,执行开中断指令STI即可达到此目的。,59,59,四、8259A在IBM PC/XT系统中的应用,18259A与系统的连线。,2BIOS初始化程序对8259A的设置。,60,1与系统的连线,+5V,CLK,RESET,READY,MN/MX,VCC,RD,QS0,QS1,LOCK,TEST,HIGH,NMI,GND,GND,地址锁存器,8282(两片),STB,数据收发器,OE 8286,T,MRDC,8288,MWTC,总线 IORC,控制器 IOWC,INTA,8259A,及有关电路,DT/R,DEN,ALE,地址总线,数据总线,控制总线,PC,总,线,A15A8,S6S3/A19A16,AD7AD0,8086,CPU,S0,S1,S2,INTR,RQ/GT0,RQ/GT1,内,存,I/O,接口,注意:,8259A在连线中的位置,61,8259A的片选地址范围为 20 3F H,偶、奇端口地址通常取用20H、21H,方 波,键 盘,保 留,串 口2,硬 盘,软 盘,打印机,IOW,17.2Hz,A0,CS,8259A,总线,A0,数 据 线,IOR,RD,WR,片,选,译,码,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,A5,A9,D0,D7,D0,D7,Vcc,SP/EN,CA0,CA1,CA2,GND,+5V,203FH,用于多片,8259A,级连情况,INTA,INT,INTA,INTR,串 口1,62,IR0 接一个频率为17.2Hz的方波;,若CPU对该申请给予响应,则每秒执行17.2次该申请对应的中断子程。,IR1接键盘接口发出的中断申请;,每按下一键,若CPU对该申请给予响应,则执行一次该申请对应的中断子程。,IR2IR7通过系统总线引出,,对应引脚信号为IRQ2IRQ7。,17.2Hz,时钟信号,8259A的8个中断申请与外设的连接,63,8086,INTR,主 板,IF,键,盘,17.2Hz 方波,8259A,INT,中断屏蔽寄存器,键盘,中断申请,IR1,IR2,IR7,IR0,当前,中断,服务,寄存器,键盘,接口,IRQ2,IRQ7,PC,总,线,外设接口,外,设,08h,09h,0Ah,0Fh,IBM PC/XT微机可屏蔽中断响应过程示意图,64,IBM PC/XT总线插槽引脚信号,GND,RESET,+5V,IRQ2,-5V,DRQ2,-12V,+12V,GND,MEMW,MEMR,IOW,IOR,DACK3,DRQ3,DACK1,DRQ1,DACK0,CLOCK,IRQ7,IRQ6,IRQ5,IRQ4,IRQ3,DACK2,T/C,ALE,+5V,OSC,GND,I/O CH CK,D7,D6,D5,D4,D3,D2,D1,D0,I/O CH RDY,AEN,A19,A18,A17,A16,A15,A14,A13,A12,A11,A10,A9,A8,A7,A6,A5,A4,A3,A2,A1,A0,65,IR0IR7,中断申请信号为,上升沿触发方式,;,IR0IR7,对应的中断类型号分别为,08H0FH,;,优先级,IR0,最高,IR7,最低;,采用,非自动结束方式,,,需向,OCW2,发,EOI,中断结束命令,清除,ISR,中的记录。,2BIOS初始化程序对8259A的设置,66,IOW,A0,CS,8259A,总线,A0,数 据 线,IOR,RD,WR,片,选,译,码,A5,A9,D0,D7,D0,D7,0AH,0BH,0CH,0DH,0EH,0FH,08H,09H,203FH,SP/EN,CA0,CA1,CA2,GND,方 波,键 盘,保 留,串口2,串口1,硬 盘,软 盘,打印机,17.2Hz,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,Vcc,+5V,用于多片,8259A,级连情况,INTA,INT,INTA,INTR,67,从,8259,IRQ8,IRQ9,IRQ10,IRQ11,IRQ12,IRQ13 IRQ14,IRQ15,主,8259,IRQ0,IRQ1,IRQ3,IRQ4,IRQ5 IRQ6,IRQ7,INT,至CPU,INT,中,断,路,由,器,IRQ7,IRQ6,IRQ5,IRQ4 IRQ3,IRQ2,ISA,总线,PCI,总,线,PCI,总,线,系统时钟,键盘,芯片组,Pentium,机中8259的连接,68,68,Pentium,的中断,中断系统由两片8259,一个中断路由器构成,从8259,的中断申请与,主8259,的IRQ2相连,ISA总线上有6个中断申请,其中IRQ2连至从8259,的IRQ,9,系统软件上,将IRQ9的中断向量指向IRQ2的中断向量,主8259,的端口地址为:,20H,21H,8个对应的中断申请IRQ7IRQ0,类型号为0Fh08h,从8259,的端口地址为:,A0H,A1H,8个对应的中断申请IRQ15IRQ8,类型号为77h70h,中断路由器(Interrupt Router):,动态分配PCI上的中断申请到8259,中未被占用的中断上,69,69,中断程序举例,PC,机中主,8259A,的,I/O,地址为,20H,和,21H,,中断向量码为
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服