资源描述
1.一.可编程中断控制器(PIC-ProgrammableInterruptController)-8259A1.8259A的外部特性8259A作为一种可编程中断控制器,是一种集成芯片。它用来管理输入到CPU的各种中断申请(主要外围设备),能提供中断向量、屏蔽各种中断输入等功能。每一个8259A芯片都能直接管理8级中断,最多可以用9片8259A芯片级连,由其构成级连机构可以管理64级中断。当有中断请求时,总线控制器发出IOR或IOW信号,而信息的传递则是通过数据总线D7D0来完成的。当CPU完成对8259A的初始化操作后,8259A即进入操作状态,通过INT端口向CPU提出中断申请,8259A从数据总线D7D0输出当前服务对象的中断类型号N,CPU截获该中断向量并响应该中断,完成一次中断操作。2.8259A引脚与信号引脚与信号3.每个引脚的功能如下所述:(1)片选取信号(CS)(2)写信号(WR)(3)读信号(RD)(4)D0D7:8条数据总线(5)GND:地信号(6)Vcc:+5V电源(7)INT:中断请求信号(8)INTA:中断响应信号(9)IR0IR7:8个中断请求输入信号(10)A0:地址选择信号(11)SP/EN:从片编程/允许缓冲器信号(12)CAS0CAS2:这三条信号是8259A级连时构成8259A的主从式级连结构4.一个一个8259A与与8086微处理器的连接微处理器的连接8259A与与8086连接例连接例5.8259A内部结构逻辑主要由三部分组成:(1)控制逻辑读写控制、控制电路(2)中断优先权判优及其屏蔽IRR:反映外部中断输入情况ISR:反映CPU对中断的处理情况IMR:反映用户对各中断之间关系的定义PR:反映用户对中断处理先后的安排(3)辅助电路数据总线缓冲器、级联缓冲/比较器等。2.8259A的内部特性功能及工作特点1)可用9片8259A来构成64级的主从式中断系统。2)每一级中断都可以屏蔽或允许。3)8259A可提供相应的中断向量,从而能迅速地转至中断服务程序。4)通过编程使8259A工作在多种不同的方式。5)工作时只需要一组+5V电源。6.8259A芯片的内部逻辑结构图芯片的内部逻辑结构图7.8259A的工作原理 第一个负脉冲到达时,8259A做到:1)使IRR的锁存功能失效。2)使当前中断服务寄存器ISR中的相应位置1。CPU正在执行相应服务程序。3)使IRR寄存器中的相应位清零。已响应该中断。第二个负脉冲到达时,8259A完成:1)将中断类型寄存器中的内容ICW2,送到数据总线的D7D0,CPU将此作为中断类型码。2)第二个脉冲结束时,8259A会将第一个脉冲到来时设置的当前中断服务寄存器ISR的相应位清零(自动EOI)。该中断处理过程结束。中断触发方式(1)边沿触发方式,低电平到高电平跳变有效(2)电平触发方式,高电平有效,保持到INTA的前沿8.中断响应总线周期时序中断响应总线周期时序9.中断响应过程1)当它的一条或多条中断请求线(IR7IR0)变为高电平时,它就使中断请求锁存器IRR相应的位置1。2)8259A分析这些请求,它就向CPU发出高电平有效信号INT,请求中断服务。3)当前一条指令执行完毕,且IF=1时,CPU响应中断请求,进入中断响应总线周期。4)8259A接到来自CPU的第一个脉冲,把允许中断的最高优先级请求位,置入服务寄存器ISR,并把IRR中对应的位清零。5)CPU在第二个总线周期,再次发出一个脉冲,8259A接到第二个脉冲,送出中断类型码,CPU读取该类型码。第二个中断响应周期,总线封锁撤销。10.3.1一般完全嵌套方式初始化后自动进入该方式,中断请求具有固定的中断级别,IR0最高,IR7最低。堆栈容量较大进入中断服务程序后开中断根据需要采用EOI方式结束中断3.2优先级自动循环方式将当前已处理完成的中断(原来的最高级别)的级别改为最低级,次高级成为最高级,优先级循环而不固定。适用于中断级别差不多的情况。当前总是处理最高级别中断根据需要采用EOI方式结束中断3.8259A的中断响应次序确定11.3.3中断屏蔽方式利用CLI指令屏蔽所有可屏蔽中断(由INTR引起的中断);或设置IMR对应位为1,以屏蔽对应的中断请求(普通屏蔽方式);或置控制寄存器的SMM位为1,以屏蔽本级中断请求(特殊屏蔽方式)。4.中断服务结束处理方式4.1普通EOI方式中断服务完成后,传送EOI结束命令给8259A,收到命令后将ISR中级别最高的位清0。(不允许在服务程序中修改中断级别)4.2特殊EOI方式在传送EOI命令的同时,将当前结束的中断级别也传送给8259A,使ISR能清除相应的位。(与当前处理的中断完全吻合)4.3自动EOI方式在第二个INTA结束时,自动使ISR相应位清0。12.PC/AT机两片8259级联硬件连接图5.8259A的级联13.IBMPC/AT机中断源和中断类型号14.从8259A的INT接到主8259A的IRi端。二级连接最多可接64个中断源。在第一个INTA有效时,主8259A将级联地址通知从8259A。在第二个INTA有效时,被选中的从8259A将中断类型码送出。从8259A结束中断时,应发出两个EOI命令。缓冲方式级联:8259A通过总线驱动器和数据总线相连,这就是缓冲方式。非缓冲方式级联:当系统中只有单片8259A时,一般将它直接与数据总线相连。15.8259A缓冲方式下级连结构缓冲方式下级连结构16.8259A非缓冲方式下级连结构非缓冲方式下级连结构17.特殊完全嵌套方式允许同级的中断打断适用于级联方式主级为特殊完全嵌套方式,允许新的中断请求(在从级上可能有其它中断申请)从级为其他优先级方式必须以特殊EOI结束18.二.8259A的编程CSRDWRA0功能8259A端口PC/XT机端口0010读IRR,ISR偶地址20H0011读IMR奇地址21H0100写ICW1,OCW2,OCW3偶地址20H0101写ICW2,ICW3,ICW4,OCW1奇地址21H011无操作1无操作1.8259A寄存器及I/O端口的识别19.IRR-InterruptRequestRegisterISR-In-ServiceRegisterIMR-InterruptMaskRegisterICW-InitializationCommandWordsOCW-OperationCommandWords2.预置命令字-ICW20.ICW1命令字命令字ADI、A7、A6、A5视为无关项,用于联接视为无关项,用于联接808521.ICW2命令字D2、D1、D0根据引根据引起起8259A的中断位于的中断位于的输入脚确定的输入脚确定22.主主8259A的的ICW3命令字命令字仅用于仅用于ICW1的的SNGL=0(级联)(级联)时,时,D0D7表示表示主主8259A哪个哪个IR接从接从8259AD0、D1、D2作为从作为从8259A命令命令字时,表示字时,表示INT接到主接到主8259A的的哪个哪个IR23.ICW4命令字命令字 确定中断管理确定中断管理方式,方式,D0位置位置124.ICW1ICW4编程的顺序25.初始化例:P.239(端口地址80H81H)MOVAL,13H;ICW1定义,单片,沿触发,要ICW4OUT80H,ALMOVAL,18H;ICW2定义,中断类型3OUT81H,ALMOVAL,01H;ICW4定义,一般完全嵌套,非自动OUT81H,ALEOI,非缓冲方式26.The Operation Command Words(OCWs)are used to direct the operation of the 8259A.OCW1:OCW1 is used to read or set the interrupt mask register.If a bit is set,it will turn off(mask)the corresponding interrupt input.3.操作命令字-OCW27.OCW2:Only programmed when the AEOI mode in ICW4 is 0.(Not AEIO)Allows you to control priorities after each interrupt is processed.28.OCW2:L0L2areusedtosetpriorityordeterminetheexactposition.29.OCW2:Non-specific EOI:Here,the ISR sets this bit to indicate EOI.The 8259A automatically determines which interrupt was active and re-enables it and lower priority interrupts.Specific EOI:ISR resets a specific interrupt request given by L2-L0.Rotate commands cause priority to be rotated w.r.t.the current one being processed.Set priority:allows the setting of the lowest priority interrupt(L2-L0).30.OCW3:If polling is set,the next read operation will read the poll word.If the leftmost bit is set in the poll word,the rightmost 3 bits indicate the active interrupt request with highest priority.Allows ISR to service highest priority interrupt.31.There are three status registers,Interrupt Request Register(IRR),In-Service Register(ISR)and Interrupt Mask Register(IMR).IRR:Indicates which interrupt request lines are active.ISR:Level of the interrupt being serviced.IMR:A mask that indicates which interrupts are on/off.4.8259A的编程结构总结32.ISR update procedure with rotating priority configured.33.8259A的编程结构总结的编程结构总结34.说明:ICW1与OCW2的区别在于ICW1是初始化后的第一次写ICW2是紧跟着ICW1的写,是否写ICW3,取决于SNGL=0,是否写ICW4,取决于IC4=1OCW1是预置命令字完成后的写OCW2和OCW3的区别在于D3和D4的设定读IRR或ISR由OCW3的RIS(D0)位确定35.IBM-PC/XT机对机对8259A的初始化的初始化IBM-PC/AT机对机对8259A的初始化的初始化5.中断程序设计举例36.IBM-PC/XT机对8259A的初始化要求:要求:工工作作在在8086/8088系系统统、单单片片8259A、边边沿触发方式。沿触发方式。中中断断向向量量初初始始值值为为08H0FH(IR0IR7)。)。中中断断服服务务结结束束时时,用用常常规规的的中中断断结结束束命命令,固定优先权级别。令,固定优先权级别。这这个个初初始始化化程程序序在在BIOS中中,系系统统启启动动时时,运行运行BIOS,给,给8259A初始化。初始化。37.在在IBM PC/XT机中,机中,8259A中所有的命令字寄存器的地中所有的命令字寄存器的地址只有两个,一个是偶地址址只有两个,一个是偶地址20H,一个是奇地址,一个是奇地址21H。初始化程序如下:初始化程序如下:MOV AL,00010011B ;边沿触发;边沿触发(D3=0)、单片、单片(D1=1);8259A、有、有ICW4(D0=1)OUT 20H,AL ;写;写ICW1MOV AL,00001000B ;中断向量号为;中断向量号为 ;0000100000001111(08H0FH)OUT 21H,AL ;写;写ICW2MOV AL,00000001 ;8086系统系统(D0=1)、非缓冲、非缓冲(D3=0)、;非自动结束;非自动结束(D1=0)OUT 21H,AL ;写;写ICW4MOV AL,0FFH ;屏蔽所有中断;屏蔽所有中断(D0D7=1)OUT 21H,AL ;写;写OCW1(1)初始化编程)初始化编程38.(2)中断屏蔽)中断屏蔽 1)屏蔽)屏蔽/开放所有中断开放所有中断 MOV AL,00H OUT 21H,AL MOV AL,0FFH OUT 21H,AL2)屏蔽)屏蔽/开放某些中断开放某些中断允许允许IR0和和IR1发中断,禁止其他中断。发中断,禁止其他中断。MOV AL,11111100B OUT 21H,AL STI39.允许允许IR0和和IR1发中断,其他中断维持原状态。发中断,其他中断维持原状态。IN AL,21H AND AL,11111100B OUT 21H,AL禁止禁止IR0和和IR1发中断,其他中断维持原状态。发中断,其他中断维持原状态。IN AL,21H OR AL,00000011B OUT 21H,AL中断屏蔽(中断屏蔽(Count.)40.通过通过8259A的的OCW3可以查询中断请求寄存器可以查询中断请求寄存器IRR和中断服务寄存器和中断服务寄存器ISR。MOV AL,00001011B;偶地址、特征位为;偶地址、特征位为 ;01,写,写OCW3;RR RIS=11,读,读ISROUT 20H,AL ;写;写OCW3IN AL,20H ;读;读ISRMOV AL,00001010B;偶地址、特征位为;偶地址、特征位为 ;01,写,写OCW3;RR RIS=10,读,读ISROUT 20H,AL ;写;写OCW3IN AL,20H ;读;读IRR(3)中断查询)中断查询41.IBM PC/XT的的BIOS程序中,没有设自动中断程序中,没有设自动中断结束方式,可以所有硬件中断服务程序,在结束时结束方式,可以所有硬件中断服务程序,在结束时都要向都要向8259A的的OCW2的的EOI位写位写1。MOV AL,00100000BOUT 20H,AL(4)中断结束)中断结束42.IBM-PC/AT机对8259A的初始化IBM-PC/AT机采用了两片8259A,按级连方式扩展了6个外部中断,所以初始化主片和从片要分别进行。43.PC中的级联44.(1)初始化)初始化8259A主片主片主片地址为主片地址为20H、21H,从片地址为,从片地址为A0H、A1HMOV AL,00010001 ;ICW1边沿触发边沿触发(D3=0),OUT 20H,AL 级连级连(D1=0),有,有ICW4(D0=1)JMP SHORL$+2 ;I/O端口的延时要求端口的延时要求MOV AL,00001000;ICW2 中断类型号的初值为中断类型号的初值为08HOUT 21H,ALMOV AL,00000100 ;ICW3 从片从片INT接主片接主片IR2OUT 21H,ALJMP SHORL$+2 ;I/O端口的延时要求端口的延时要求MOV AL,00010001 ;ICW4,8086系统系统(D0=1),非自动非自动EOI(D1=0),非缓冲非缓冲(D3=0),特殊完全嵌套,特殊完全嵌套(D4=1)OUT21H,AL45.(2)初始化)初始化8259A从片从片MOV AL,00010001B ;ICW1边沿触发,级连,有边沿触发,级连,有ICW4OUT 0A0H,ALJMP SHORL$+2 ;I/O端口的延时要求端口的延时要求MOV AL,70H ;ICW2 中断类型号的初值为中断类型号的初值为70HOUT 0A1H,AL 中断类型中断类型70H77HMOV AL,02H ;ICW3 从片从片INT接主片接主片IR2OUT 0A1H,ALJMPSHORL$+2 ;I/O端口的延时要求端口的延时要求MOV AL,01H ;ICW4 8086系统,非自动系统,非自动EOI,;非缓冲,一般完全嵌套;非缓冲,一般完全嵌套 OUT 0A1H,AL46.
展开阅读全文