第5章-中断技术.ppt
第第5 5章章 中断技术中断技术 第一页,编辑于星期五:十六点 四十七分。5.1 中断的基本概念一。什么是中断 CPU在正常运行时候,由于内部/外部事件或程序员预先安排的事件,引起CPU暂停正在运行的程序,而转到为内部/外部事件或为预先安排的事件服务的程序中去。服务完毕,再返回去继续执行被暂停的程序。中断申请主程序中断服务程序返回第二页,编辑于星期五:十六点 四十七分。二。中断源与中断识别二。中断源与中断识别1.1.中断源:发出中断请求的外部设备或引起中断源:发出中断请求的外部设备或引起中断的内部原因称为中断源。中断的内部原因称为中断源。 外设请求的中断外设请求的中断 中断指令引起的中断中断指令引起的中断 程序差错引起的中断程序差错引起的中断 硬件故障引起的中断硬件故障引起的中断第三页,编辑于星期五:十六点 四十七分。2.2.中断识别中断识别CPUCPU寻找中断源的过程称为中断识别寻找中断源的过程称为中断识别中断识别的目的:获得该中断源的服务程中断识别的目的:获得该中断源的服务程序的入口地址。序的入口地址。中断识别的方法:向量中断或查询中断中断识别的方法:向量中断或查询中断第四页,编辑于星期五:十六点 四十七分。三。中断向量、向量表三。中断向量、向量表中断向量:中断服务程序的入口地址中断向量:中断服务程序的入口地址中断向量表:把系统中所有中断向量集中起中断向量表:把系统中所有中断向量集中起来放到存储器的某一区域,这个存储区叫来放到存储器的某一区域,这个存储区叫中断向量表。中断向量表。第五页,编辑于星期五:十六点 四十七分。四。中断类型号、向量指针四。中断类型号、向量指针 中断类型号:系统给每个中断源分配中断类型号:系统给每个中断源分配一个唯一的编号,称为中断类型号。一个唯一的编号,称为中断类型号。 中断向量指针:中断向量在存储器中中断向量指针:中断向量在存储器中的地址。的地址。 以下是以下是8088CPU8088CPU计算机(如计算机(如IBM-PCIBM-PC)中断向量、向量表、指针关系参)中断向量、向量表、指针关系参看下图看下图第六页,编辑于星期五:十六点 四十七分。 中中断向量断向量 ( (中中断服务程序断服务程序入口地址入口地址) ) 在表中的地在表中的地址(中断向址(中断向量指针)量指针) = = 中断类型号中断类型号 4 4溢出中断溢出中断中断类型号中断类型号 中断向量中断向量 中断向量指针中断向量指针 0000 : 0014 H0000 : 0010 H0000 : 000C H0000 : 0008 H0000 : 0004 H0000 : 0000 H类型类型5类型类型255供用户定义的中断供用户定义的中断(共(共224个)个)0000 : 007 FH0000 : 007 CH0000 : 03 FFH0000:03FCHCS255 IP255CS31 IP31CS IPCS3 IP3CS2 IP2CS1 IP1CS0 IP0专用的中断专用的中断(共(共5个)个)保留的中断保留的中断(共(共27个)个)类型类型32 类型类型31类型类型0类型类型4类型类型3类型类型2类型类型1除数为除数为 0 中断中断非屏蔽中断非屏蔽中断单步中断单步中断断点中断断点中断第七页,编辑于星期五:十六点 四十七分。1800HF000H00H18H00HF0HPUSH IRET例:执行例:执行INT21H 向量地址向量地址 21H 4 84H CPU IP CSMEM (4)(1)(2) (3)0 : 0000H0 : 0084H0 : 0087H0 : 03FFHF000 : 1800H中断向量表中断向量表8088CPU 8088CPU 转入中断服务程序的过程转入中断服务程序的过程(INT 21H INT 21H 指令导致软中断)指令导致软中断)第八页,编辑于星期五:十六点 四十七分。 CPUCPU执行执行INT 21HINT 21H指令,指令,CPUCPU内部电路产生一内部电路产生一次中断请求,类型号为次中断请求,类型号为21H21H。 CPUCPU内部电路内部电路自动计算出中断向量(自动计算出中断向量(21H21H* *4 4) CPUCPU自动读内存自动读内存(84H)(84H)字单元,读出数据送入字单元,读出数据送入(IP)(IP); CPUCPU自动读内存自动读内存(86H)(86H)字单元,读出数据送入字单元,读出数据送入(CS);(CS); CPUCPU到(到(CSCS,IPIP)所指向的内存单元(中断)所指向的内存单元(中断服务程序起始地址)取指令并执行。服务程序起始地址)取指令并执行。第九页,编辑于星期五:十六点 四十七分。五。中断向量的装入与修改五。中断向量的装入与修改( (以以8088/8086CPU8088/8086CPU为为例例) )1.1.中断向量的装入中断向量的装入方法一:用方法一:用MOVMOV指令指令例:假设中断类型号为例:假设中断类型号为60H60H,中断服务程序在,中断服务程序在内存的地址为内存的地址为2000:006D,2000:006D,写出把中断向量装写出把中断向量装入程序入程序第十页,编辑于星期五:十六点 四十七分。Mov AX,006DH;用;用2条指令把中断向量的偏移地址部分装入向量表条指令把中断向量的偏移地址部分装入向量表Mov DI,AX INC DIINC DI; ;用用4 4条指令把中断向量的断地址部分装条指令把中断向量的断地址部分装入向量表入向量表INC DIINC DI Mov AX ,2000HMov AX ,2000HMov DI, AXMov DI, AXMOV AX,0MOV AX,0 ; ;用用3 3条指令把中断向量指针放入条指令把中断向量指针放入DS DS :DIDI寄存器中寄存器中MOV DS,AXMOV DS,AXMOV DI,4MOV DI,4* *60H60H第十一页,编辑于星期五:十六点 四十七分。方法二:用方法二:用INT 21H INT 21H 指令(指令(DOSDOS功能调用指功能调用指令)令)例:假设中断类型号为例:假设中断类型号为60H60H,中断服务程序在,中断服务程序在内存的地址为内存的地址为2000:006D,2000:006D,写出把中断向量写出把中断向量装入程序装入程序第十二页,编辑于星期五:十六点 四十七分。MOV AH,25HMOV AH,25H ; ;设置设置INT 21INT 21指令的第指令的第1 1个个参数参数DOSDOS功能号功能号MOV AL,MOV AL,0H0H;设置;设置INT 21INT 21指令的第指令的第2 2个参数个参数中断类型号中断类型号MOV BX,2000HMOV BX,2000H;设置;设置INT 21INT 21指令的第指令的第3 3个参数个参数中断向量段中断向量段Mov DS,BXMov DS,BXMOV DX,2000HMOV DX,2000H设置设置INT 21INT 21指令的第个参数指令的第个参数中断向量偏移中断向量偏移INT 21HINT 21H ;DOS ;DOS 功能调用功能调用第十三页,编辑于星期五:十六点 四十七分。思考:课本思考:课本P82例例3,修改中断向量的过程,你能理解吗?,修改中断向量的过程,你能理解吗?六。优先级排队方式六。优先级排队方式当系统中有多个中断源存在时,若有几个中断当系统中有多个中断源存在时,若有几个中断源同时提出申请,那么就存在源同时提出申请,那么就存在CPUCPU先响应谁的先响应谁的问题。为此提出了中断优先权的概念。问题。为此提出了中断优先权的概念。按优先级排队按优先级排队循环轮流排队循环轮流排队第十四页,编辑于星期五:十六点 四十七分。七。中断嵌套七。中断嵌套当当CPUCPU处理一个中断源,正在处理一个中断源,正在执行中断服务程序时,又遇到执行中断服务程序时,又遇到优先级更高的中断源中断请求优先级更高的中断源中断请求。CPUCPU暂停正在执行的中断程暂停正在执行的中断程序,去处理这个级别更高的序,去处理这个级别更高的中断源请求,执行它的中断中断源请求,执行它的中断服务程序。待执行完毕,再服务程序。待执行完毕,再返回被暂停的原来的中断服返回被暂停的原来的中断服务程序。把这个过程称为中务程序。把这个过程称为中断嵌套。断嵌套。中断服务2 (高优先级)主程序中断服务1第十五页,编辑于星期五:十六点 四十七分。5.2 IBM-PC5.2 IBM-PC中断系统(具体一款计算机的中断系统(具体一款计算机的中断技术)中断技术)80888088能处理能处理256256种中断,分为种中断,分为两大类:外部两大类:外部中断(又称为中断(又称为硬件中断)和硬件中断)和内部中断又称内部中断又称为软件中断)为软件中断) 。其中断分类。其中断分类如图如图8086的中断分类的中断分类INT n 指令指令 中断逻辑中断逻辑非屏蔽中断请求非屏蔽中断请求中断中断控制系统控制系统(8259A)INT 3指令指令INTO指令指令单步单步中断中断除数为除数为0中断中断 可屏蔽可屏蔽中断请求中断请求NMIINTR硬件中断硬件中断软件中断软件中断第十六页,编辑于星期五:十六点 四十七分。一一. 外部中断外部中断 (硬件中断硬件中断) 非屏蔽中断非屏蔽中断 NMI (NMI (类型号类型号为为2 2) ) 上跳沿触发请求,不受上跳沿触发请求,不受FRFR(状态标志(状态标志寄存器寄存器FLAG REGFLAG REG) 中中IFIF(中断标志(中断标志位)位) 的影响,常用于处理系统的重大的影响,常用于处理系统的重大故障。故障。 可屏蔽的中断可屏蔽的中断INTR (类型号类型号由中断接口由中断接口8259芯片提供芯片提供)高电平有效,高电平有效,CPU CPU 是否响应,取决于是否响应,取决于 FR FR 中中IF IF 的状态。常用于各种外设的的状态。常用于各种外设的中断中断。第十七页,编辑于星期五:十六点 四十七分。二二. 内部中断内部中断 (软件中断软件中断)通常由三种情况引起:通常由三种情况引起:(1) INT n (1) INT n 指令中断指令中断 ( (n n 为中断为中断类型号类型号) )(2) (2) 处理处理CPU CPU 某些错误的中断某些错误的中断 除法错中断除法错中断 ( (中断类型号为中断类型号为0)0) 溢出中断溢出中断 (INTO) (INTO) (中断类型中断类型号为号为4 4) )第十八页,编辑于星期五:十六点 四十七分。(3) 为调试程序设置的中断为调试程序设置的中断(3)(3)单步中断单步中断当当FR FR 中中TF = 1TF = 1时,每执行一条指令,时,每执行一条指令,CPU CPU 产生类型产生类型号号为为1 1 的单步中断。的单步中断。 断点中断设置断点实际上是把指令设置断点实际上是把指令“ “ INT 3” INT 3” 插入到程序中,插入到程序中,CPU CPU 每执行到断点处每执行到断点处的的“INT 3” INT 3” 指令,便产生类型指令,便产生类型号号为为3 3 的中断。的中断。第十九页,编辑于星期五:十六点 四十七分。三、硬件中断与软件中断的比较三、硬件中断与软件中断的比较1.1.硬件中断的特点硬件中断的特点: :是是CPUCPU外部事件而引起的中断,具有随机外部事件而引起的中断,具有随机性和突发性性和突发性在中断响应总线周期,在中断响应总线周期,CPUCPU需要发出中断需要发出中断应答信号应答信号/INTA(NMI/INTA(NMI硬件中断没有硬件中断没有) )。中断类型号由中断控制器芯片中断类型号由中断控制器芯片82598259提供提供(NMI(NMI硬件中断类型号由硬件中断类型号由CPUCPU固定设为固定设为2)2)是可以屏蔽的(是可以屏蔽的( NMINMI硬件中断除外)硬件中断除外)第二十页,编辑于星期五:十六点 四十七分。2.2.软件中断的特点软件中断的特点是执行中断指令或普通指令执行出现某是执行中断指令或普通指令执行出现某种故障而引起的种故障而引起的中断响应周期,中断响应周期,CPUCPU没有没有INTAINTA信号产生。信号产生。中断类型号由中断指令给出或中断类型号由中断指令给出或CPUCPU固定设固定设置置是不可屏蔽的。是不可屏蔽的。四。软件中断的应用四。软件中断的应用 自学自学P89P89第二十一页,编辑于星期五:十六点 四十七分。五、中断处理过程五、中断处理过程( (以硬件中断为例以硬件中断为例) )某外设 8088CPU INTR /INTA /XINTAXINT8259INT IR0 IR1/INTA IR6 IR70000:0180H0000:0182Hold_cs:old_ip1240:0200H3000:0000H 。3000:0100H0200H1240H类型类型60H中断服务中断服务程序程序XXXXXXXXCS=old_csIP=old_IPFLAG=old_flagDS=0000SS=3000SP=0100XXXX主程序主程序中断请求之前中断请求之前总线接口总线接口XXXXXXXX第二十二页,编辑于星期五:十六点 四十七分。某外设 8088CPU INTR /INTA /XINTAXINT8259INT IR0 IR1/INTA IR6 IR70000:0180H0000:0182Hold_cs:old_ip1240:0200H3000:0000H3000:00FA3000:0100H0200H1240H类型类型60H中断服务中断服务程序程序old_flagXXXXXXXXCS=1240IP=0200FLAG=old_flagDS=0000SS=3000SP=00FAXXXXold_ipold_cs主程序主程序中断响应之后中断响应之后总线接口总线接口第二十三页,编辑于星期五:十六点 四十七分。某外设 8088CPU INTR /INTA /XINTAXINT8259INT IR0 IR1/INTA IR6 IR70000:0180H0000:0182Hold_cs:old_ip1240:0200H1240:0256H3000:0000H3000:00FA3000:0100H0200H1240H类型类型60H中断服务中断服务程序程序old_flagXXXXXXXXCS=1240IP=0256FLAG=DS=0000SS=3000SP=00FAXXXXold_ipold_cs主程序主程序中断返回之前中断返回之前总线接口总线接口第二十四页,编辑于星期五:十六点 四十七分。某外设 8088CPU INTR /INTA /XINTAXINT8259INT IR0 IR1/INTA IR6 IR70000:0180H0000:0182Hold_cs:old_ip1240:0200H3000:0000H 。3000:0100H0200H1240H类型类型60H中断服务中断服务程序程序XXXXXXXXCS=old_csIP=old_IPFLAG=old_flagDS=0000SS=3000SP=0100XXXX主程序主程序中断返回之后中断返回之后总线接口总线接口XXXXXXXX第二十五页,编辑于星期五:十六点 四十七分。五、中断处理过程五、中断处理过程( (以硬件中断为例以硬件中断为例) )1.1.中断请求中断请求: (课本(课本P85 P85 图图5.35.3)外设外设发中断请求。发中断请求。CPUCPU在每条指令的最后一个在每条指令的最后一个 时钟节拍,查看时钟节拍,查看INTINT信号线。如果信号线。如果FLAGFLAG寄寄存器的存器的IFIF标志为标志为 1 1(允许中断标志),则(允许中断标志),则响应中断。(既响应中断。(既CPUCPU产生中断响应总线周产生中断响应总线周期)。期)。第二十六页,编辑于星期五:十六点 四十七分。2.2.中断响应:中断响应: (课本(课本P85 P85 图图5.35.3)共共8 8拍,发拍,发2 2次次INTAINTA有有效信号。第一次通知中断控制器效信号。第一次通知中断控制器82598259,已经响应中断,请已经响应中断,请82598259准备好中断类型号准备好中断类型号;第二次从;第二次从82598259中读出中断类型号。中读出中断类型号。 CPUCPU自动将当前的自动将当前的old_flagold_flag,old_cs,old_ipold_cs,old_ip寄存器压入堆栈。根据中断类型号,寄存器压入堆栈。根据中断类型号,CPUCPU自动生成中断向量指针,自动从中断自动生成中断向量指针,自动从中断向量表中取出中断向量,装入向量表中取出中断向量,装入CS,IPCS,IP寄存寄存器,从而跳入中断服务程序。器,从而跳入中断服务程序。第二十七页,编辑于星期五:十六点 四十七分。五、中断处理过程五、中断处理过程( (以硬件中断为例以硬件中断为例) )3.3.中断服务程序:中断服务程序: (课本(课本P85 P85 图图5.3 5.3 )4.4.中断返回:中断返回: (课本(课本P85 P85 图图5.3 5.3 )在中断服务程序的最后,应该放一条在中断服务程序的最后,应该放一条IRETIRET指令(中断返回指令)。该指令执指令(中断返回指令)。该指令执行时会把堆栈的原来的行时会把堆栈的原来的CSIPFLAGCSIPFLAG内容内容弹回。弹回。第二十八页,编辑于星期五:十六点 四十七分。六。中断响应周期六。中断响应周期外设中断请求信号线外设中断请求信号线IRiIRi(i=0-7i=0-7):):中断接口芯片中断接口芯片82598259内部中断请求寄存器(内部中断请求寄存器(IRRIRR)的第)的第IRiIRi位硬件设置位硬件设置1 1,进一步使得,进一步使得82598259通过通过INTINT引脚向引脚向CPUCPU提出中断请求。提出中断请求。CPUCPU在当前指令周期的最后一个节拍硬件在当前指令周期的最后一个节拍硬件检测检测INTRINTR引脚,如果满足响应中断条件,引脚,如果满足响应中断条件,CPUCPU就硬件自动发出中断响应总线周期信号。就硬件自动发出中断响应总线周期信号。第二十九页,编辑于星期五:十六点 四十七分。CLKT1T2T3T4T1T2T3T4第一中断响应周期第一中断响应周期第二中断响应周期第二中断响应周期ALE/INTAAD7-AD0类型号类型号/INTA2/INTA1/LOCK1.80861.8086中断响应周期的时序图中断响应周期的时序图第三十页,编辑于星期五:十六点 四十七分。2.80862.8086中断响应周期的说明中断响应周期的说明(1 1)/INTA1/INTA1的作用的作用使使82598259将将IRRIRR(中断请求寄存器)中当前中断(中断请求寄存器)中当前中断请求对应的位置清除请求对应的位置清除使使82598259将将ISRISR(正在服务寄存器)中当前中(正在服务寄存器)中当前中断请求对应的位置断请求对应的位置1 1。 第三十一页,编辑于星期五:十六点 四十七分。(2 2) /INTA2/INTA2的作用的作用硬件自动读出硬件自动读出82598259中断类型号中断类型号如果如果82598259工作在自动结束方式,硬件自动清除工作在自动结束方式,硬件自动清除ISRISR中当前中断请求对应的位中当前中断请求对应的位. .第三十二页,编辑于星期五:十六点 四十七分。说明:说明:只要设置只要设置82598259工作方式就能实现让工作方式就能实现让82598259清除该清除该中断的中断的ISRISR中对应的位。共有中对应的位。共有2 2中方式可以设定中方式可以设定自动结束方式:这种方式下,自动结束方式:这种方式下,82598259接到接到/INTA2/INTA2上什沿就清除对应的位。上什沿就清除对应的位。非自动结束方式:这种方式下,非自动结束方式:这种方式下,82598259接到接到/INTA2/INTA2不会清除对应的位,需要程序员在中不会清除对应的位,需要程序员在中断服务程序中写一条指令,断服务程序中写一条指令,CPUCPU执行该指令,执行该指令,会向会向82598259发一个中断结束命令(发一个中断结束命令(EOIEOI命令)命令)思考:中断结束后,思考:中断结束后,8259必须要清除该中断的必须要清除该中断的ISR中对应的中对应的位。想一想,如果不清除,会导致什么不良后果?位。想一想,如果不清除,会导致什么不良后果?第三十三页,编辑于星期五:十六点 四十七分。(3 3)/LOCK/LOCK的作用的作用有效期间:有效期间:/INTA1/INTA1下跳沿有效,下跳沿有效, /INTA2/INTA2下跳沿下跳沿无效。无效。作用:送到总线仲裁机构,禁止总线仲裁设作用:送到总线仲裁机构,禁止总线仲裁设备工作,防止其它备工作,防止其它DMADMA控制器获得系统总线。控制器获得系统总线。即即CPUCPU锁定系统总线锁定系统总线注意:注意:8086/8088CPU8086/8088CPU有一条有一条LOCKLOCK指令,该指令指令,该指令使得下一条指令周期,使得下一条指令周期,/LOCK/LOCK有效,供程序员有效,供程序员锁定系统总线用。锁定系统总线用。第三十四页,编辑于星期五:十六点 四十七分。小结:小结:整个中断过程是硬件和软件共同配合完整个中断过程是硬件和软件共同配合完成的。中断请求,中断相应是硬件自动成的。中断请求,中断相应是硬件自动完成的。中断服务处理,中断返回是程完成的。中断服务处理,中断返回是程序员用软件实现的序员用软件实现的。第三十五页,编辑于星期五:十六点 四十七分。VccA0IR7IR6IR5IR4IR3IR2IR1IR0INTCAS212345678910111213142827262524232221201918171615INTAENSPWRRDCSD7D6D5D4D3D2D1D0CAS0CAS1GND图7-138259A 引脚图VccA0IR7IR6IR5IR4IR3IR2IR1IR0INTCAS212345678910111213142827262524232221201918171615INTAENSPWRRDCSD7D6D5D4D3D2D1D0CAS0CAS1GND图7-138259A 引脚图二。二。8259A 8259A 的内部结构与引脚信号的内部结构与引脚信号uD0-7D0-7:数据线:数据线uA0-1A0-1地址输入线,用于选择内部地址输入线,用于选择内部端口端口u/CS:/CS:芯片选择,输入,低电平芯片选择,输入,低电平82598259工作工作uIR0-7IR0-7,外设中断请求输入线,外设中断请求输入线u/SP| /EN/SP| /EN,主从片设定。缓冲控,主从片设定。缓冲控制制uCAS0-2CAS0-2,82598259主、从片专用总线主、从片专用总线第三十六页,编辑于星期五:十六点 四十七分。单片单片8259与系统总线的连接与系统总线的连接 /CS A0 D0 -7 /RD /WR /INTA/INT/SP|/EN/IOY1 XA0 XD7-0 /XIOR /XIOW /XINTA/XINTVCCIR0-7第三十七页,编辑于星期五:十六点 四十七分。8259A内部逻辑框图内部逻辑框图 控制逻辑中断服务寄存器ISR优先权电路PR中断请求寄存器IRR中断屏蔽寄存器IMR读写控制逻辑级联缓冲比较器数据总线缓冲器D0D7RDWRCSA0CAS0CAS1CAS2ENSPINTAINTIR0IR1IR7第三十八页,编辑于星期五:十六点 四十七分。1. 1. 数据总线缓冲器数据总线缓冲器 8 8位、双向、三态,是位、双向、三态,是8259A8259A与与 CPU CPU 之间的数据接口之间的数据接口。 D0 D0D7D7直接与直接与CPU CPU 数据总线的低数据总线的低8 8位连结。位连结。第三十九页,编辑于星期五:十六点 四十七分。2. 2. 读读/ /写控制逻辑写控制逻辑。接高位地址的译码输出:CSA0A0:常常与地址信号线常常与地址信号线X XA0A0相连。相连。相连。、的与、WRRDCPUWRRD8259A8259A的两的两个端口地址个端口地址CPU CPU 通常利用:通常利用:OUT OUT 指令,指令,IN IN 指令,指令,有关寄存器的内容。内部配合读出与A8259A0,CSRD。配合写入有关的控制字与A0,CSWR第四十页,编辑于星期五:十六点 四十七分。3. 3. 中断请求寄存器中断请求寄存器 IRRIRR 8 8 位,若位,若IRiIRi线线 有效有效( (高电平或上跳变高电平或上跳变) ),对应位置,对应位置“1”“1”,直到,直到IRi IRi 得到响应。得到响应。4. 4. 中断服务寄存器中断服务寄存器 ISRISR8 8位,当位,当IRiIRi线的请求线的请求得到响应时,得到响应时,ISRISR对应位对应位置置“1”“1”。记录正在处理的。记录正在处理的IRiIRi,当中断嵌套当中断嵌套时,可能多位置时,可能多位置“1”“1”。第四十一页,编辑于星期五:十六点 四十七分。5. 5. 中断屏蔽寄存器中断屏蔽寄存器 IMRIMR8 8位,某位置位,某位置“ “ 1”1”,对应,对应IRiIRi位位 禁禁止产生中断。止产生中断。第四十二页,编辑于星期五:十六点 四十七分。6. 6. 优先权判断电路优先权判断电路实现优先权的判断与处理,采用编码实现优先权的判断与处理,采用编码器和比较器电路,如下图所示(了解器和比较器电路,如下图所示(了解即可)。即可)。-第四十三页,编辑于星期五:十六点 四十七分。8259A8259A中的中断优先权电路中的中断优先权电路比 较 器B0B0B0AICW4ICW4部部分)以外任何时候写偶地址,都被分)以外任何时候写偶地址,都被82598259装入装入OCW1OCW13.8259A 3.8259A 的初始化编程逻辑的初始化编程逻辑( (写写ICW1ICW1,就启动,就启动初始化,程序员必须按下面流程完成初始化初始化,程序员必须按下面流程完成初始化,否则,否则82598259不能正常工作!不能正常工作!) )第六十四页,编辑于星期五:十六点 四十七分。用用ICW1设置:是否级联?设置:是否级联?请求信号的触发方式请求信号的触发方式后面是否用后面是否用ICW4用用ICW2设中断类型码设中断类型码是否为级联方式?是否为级联方式?本片为主片吗?本片为主片吗?设设ICW3各位对应各位对应IR0IR 7 的连接状况的连接状况设设ICW3 高高5位为位为0;低低3位为标识码位为标识码用用ICW4 吗?吗?用用 ICW4 设:为特殊全嵌套方式?设:为特殊全嵌套方式? 为缓冲方式?为缓冲方式? 为自动为自动EOI方式?方式? 为为8086/8088系统?系统?ENDNYNNY8259A的初始化流程的初始化流程第六十五页,编辑于星期五:十六点 四十七分。五、五、8259A 8259A 的初始化命令字的初始化命令字 8259A 8259A 初始化编程时,有四个初始化命初始化编程时,有四个初始化命令字令字ICW ( Initialiation Command Word)ICW ( Initialiation Command Word),即即ICW1ICW1 ICW4 ICW4 ;三个操作命令字;三个操作命令字OCWOCW(Opeiation Command WordOpeiation Command Word),即),即OCW1OCW1OCW3OCW3)。)。第六十六页,编辑于星期五:十六点 四十七分。 8259A 8259A 只有两个端口地只有两个端口地址址A0=0 0 偶地址端口偶地址端口1 1 奇地址端口奇地址端口因此,要注意因此,要注意端口地址端口地址写入的顺序写入的顺序有关的标志位有关的标志位第六十七页,编辑于星期五:十六点 四十七分。1. ICW11. ICW1(IRi (IRi 触发方式,是否单片使用,是否触发方式,是否单片使用,是否写入写入ICW4)ICW4)01LTIM SNGL IC4A0D7D6D5D4D3D2D1D0标志位标志位第六十八页,编辑于星期五:十六点 四十七分。 LTIMLTIM:规定规定IRiIRi的触发方的触发方式式1高电平触发0 触发=第六十九页,编辑于星期五:十六点 四十七分。 SNGLSNGL:是否单片使用是否单片使用1单片使用0级联使用=第七十页,编辑于星期五:十六点 四十七分。 IC4IC4:是否写入是否写入ICW4ICW41 1后面写入后面写入ICW4ICW40 0不写入不写入ICW4ICW4=第七十一页,编辑于星期五:十六点 四十七分。例:某例:某80868086微机系统中,使用单片微机系统中,使用单片8259A8259A,中断请求信号为上升沿触发,需,中断请求信号为上升沿触发,需要设置要设置ICW4ICW4,端口地址为,端口地址为20H20H,21H21H,则,则其初始化命令字其初始化命令字ICW1ICW1应为:应为:000100110001001113H13H,设置,设置ICW1ICW1的指令为:的指令为:MOVAL,13HOUT20H,AL第七十二页,编辑于星期五:十六点 四十七分。2. ICW2( (中断类型号的高中断类型号的高5 5位位) )( (中断类型号的低中断类型号的低3 3位由位由82598259A A 自动编自动编码产生码产生) )1T7T6T5T4T3A0D7D6D5D4D3D2D1D0IRi 对应中断类型号的高5位第七十三页,编辑于星期五:十六点 四十七分。T7 T6 T5 T4 T3 T2 T1 T0T7 T6 T5 T4 T3 T2 T1 T0由由ICW2ICW2规定规定0 0 00 0 10 1 01 1 1IR0IR1IR2IR7第七十四页,编辑于星期五:十六点 四十七分。例:某例:某PCPC机中机中8 8个可屏蔽中断(个可屏蔽中断(IR0 IR0 IR7 IR7)的类型号为)的类型号为08H 08H 0FH 0FH,A0A01 1,端口地址为,端口地址为21H21H,则,则ICW2ICW2为:为:08H08H,设置,设置ICW2ICW2的指令为:的指令为:MOVAL,08HOUT21H,AL第七十五页,编辑于星期五:十六点 四十七分。3. ICW3( (级联时,主从芯片的级联引脚级联时,主从芯片的级联引脚) )若若ICW1 ICW1 中中SNGLSNGL=1不写入不写入ICW30写入写入ICW3第七十六页,编辑于星期五:十六点 四十七分。(1) (1) 写给主片的写给主片的ICW3ICW3Si = 1, Si = 1, 表示主片表示主片IRiIRi上接有从片。上接有从片。1S7S6S5S4S3S2S1S0A0D7D6D5D4D3D2D1D0第七十七页,编辑于星期五:十六点 四十七分。(2) (2) 写给从片的写给从片的ICW3ICW3ID2 ID1 ID0该从片该从片 0 0 0接入主片的接入主片的IR0 0 0 1接入主片的接入主片的IR1 1 1 1接入主片的接入主片的IR7100000ID2ID1ID0A0D7D6D5D4D3D2D1D0从片的标志码从片的标志码第七十八页,编辑于星期五:十六点 四十七分。例:某例:某8086微机系统中,主片微机系统中,主片8259A的的IR2,IR6引脚上分别接有从片引脚上分别接有从片8259A,则主、从片的,则主、从片的ICW3初始化命令字设置如下:初始化命令字设置如下:主片初始化命令字:主片初始化命令字:(口地址设为口地址设为20H, 21H)MOVAL,44H;44H为主片的为主片的ICW3,表示其,表示其IR6,IR2上接有从片上接有从片OUT21H,AL;将;将ICW3写入奇地址端口写入奇地址端口从片从片1的初始化命令:的初始化命令:MOVAL,02HOUT21H,AL从片从片2的初始化命令:的初始化命令:MOVAL,06HOUT21H,AL第七十九页,编辑于星期五:十六点 四十七分。4. ICW4100SFNM BUFM/SAEOI1A0D7D6D5D4D3D2D1D00标志位标志位用于用于8088/ 8086系统系统第八十页,编辑于星期五:十六点 四十七分。= 0正常的完全嵌套方式正常的完全嵌套方式= 1特殊的完全嵌套方式特殊的完全嵌套方式(1) SFNM: 规定规定8259A中断的嵌套方式中断的嵌套方式(单片使用时,两种方式一样。单片使用时,两种方式一样。)第八十一页,编辑于星期五:十六点 四十七分。 正常的完全嵌套方式正常的完全嵌套方式高级的中断高级的中断第八十二页,编辑于星期五:十六点 四十七分。 特殊的完全嵌套方式特殊的完全嵌套方式同级的或高同级的或高级的中断级的中断级联使用时,某一从片的级联使用时,某一从片的IRi对主片来说是对主片来说是同级的。同级的。第八十三页,编辑于星期五:十六点 四十七分。(to CPU)(from CPU)INTAINT从8259AIR7IR6 IR0IR7IR2IR0INTAINTCAS0CAS1CAS2CAS0CAS1CAS2主8259AXINTAXINTA0A0D0-7D0-7 XA0XD0-7/CS/CS译码器译码器1020H-03FHXA5-9译码器译码器20A0H-0BFHXA5-9第八十四页,编辑于星期五:十六点 四十七分。1 1缓冲方式缓冲方式0 0非缓冲方式非缓冲方式(2) BUF(2) BUF= =第八十五页,编辑于星期五:十六点 四十七分。(3) M/S(3) M/S 当当8259A 8259A 工作于缓冲方式时工作于缓冲方式时 ( (BUF=1),BUF=1),1 1主主8259A8259A0 0从从8259A8259AM/S = M/S = 第八十六页,编辑于星期五:十六点 四十七分。 当当8259A8259A工作于非缓冲方式时工作于非缓冲方式时 ( (BUF = 0),BUF = 0),芯片,引脚为输入,定义主从 SP此时此时 M/S M/S 不起作用。不起作用。第八十七页,编辑于星期五:十六点 四十七分。(4) AEOI: (4) AEOI: 规定中断的结束方式规定中断的结束方式( (如何使如何使ISRISR中对应位置中对应位置0 0) ) AEOI = 1 AEOI = 1 自动中断结束方式自动中断结束方式 当当CPU CPU 发出第二个发出第二个 后,后,ISR ISR 中的相应位复位,此时,中的相应位复位,此时,不能实现中断嵌套。不能实现中断嵌套。INTA第八十八页,编辑于星期五:十六点 四十七分。 AEOI = 0 AEOI = 0 非自动中断结束方式非自动中断结束方式 由程序发出由程序发出EOI EOI 命令命令 ( (由由82598259A A 的的OCW OCW 实现实现) ),使,使ISR ISR 中相应位复位。中相应位复位。第八十九页,编辑于星期五:十六点 四十七分。六、六、8259A 8259A 的操作命令字的操作命令字 对对8259A 8259A 进行初始化编程后,进行初始化编程后,82598259A A作好了接收中断请求输入的准备,在作好了接收中断请求输入的准备,在82598259A A 工作期间可由操作命令字工作期间可由操作命令字OCWOCW1 1OCWOCW3 3 规定其各种工作方式。规定其各种工作方式。第九十页,编辑于星期五:十六点 四十七分。1. OCW1. OCW1 1(中断屏蔽操作命令字)(中断屏蔽操作命令字)设置或清除设置或清除IMR IMR 的各个位。的各个位。1 1A A0 0D D7 7D D0 0M7M7M0M0 M Mi i=1 =1 表示表示IRIRi i被屏蔽被屏蔽第九十一页,编辑于星期五:十六点 四十七分。例:设例:设OCWOCW1 106H06H,则表示,则表示IRIR1 1,IRIR2 2 两两 个引脚上的中断申请被屏蔽,其他的个引脚上的中断申请被屏蔽,其他的中断申请中断申请 (IR(IR0 0,IRIR3 3 IRI