版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5.1接口基本概念为什么需要I/O接口(电路)?外设多种多样,不能与CPU直接相连(键盘、显示器、打印机、扫描仪、磁盘机、鼠标器等)须经中间电路(I/O接口)与系统相连多种外设5.1.1接口的功能1.接口:两电路(设备)之间、协调动作的连接电路2.功能:进行数据传送控制(三总线的转换和连接)CPU接口电路
I/O设备
5.1.2
基本结构5.1.3
接口信息数据信息
数字量:计算机可以直接发送、接收和处理的数据;
模拟量:连续变化的物理量,如温度、压力、流量、位移、湿度等,需AD转换;
开关量:表示两个状态,如开关断开和闭合,机器运转与2.状态信息
外设的工作状态,输入设备数据是否准备好、输出设备是否空闲等。CPU需要读取外设状态信号,才能保障CPU与外设正确进行通信。3.控制信息控制信息是CPU通过接口传送给外设的。CPU通过发送控制信息设置外设的工作模式、控制外设的工作。如外设的启动信号和停止信号就是常见的控制信息。
数据传送方式并行一个数据单位(字/字节)的各位同时传送速度快、距离短、成本高
(对应:并行接口)串行数据按位进行传送速度慢、距离远、成本低
(对应:串行接口)5.2
CPU与外设进行数据传送的方式异步串行通信传送格式:
异步:接收端与发送端时钟可不同步数据传送方式无条件方式——直接、延时传送数据(外设随时就绪)查询方式——查询接口状态,传送数据(准备好?允许?耗时,踏步,简单)中断方式——外设通知→CPU→中断?→执行(效率高,复杂)DMA方式——直接存储器存取,外设
存储器(不经CPU,高速,用专用控制器)1.无条件传送方式假设外设已经准备就绪,不查询外设状态,直接执行I/O指令进行数据传输。2.查询方式称为条件传送方式,一般查询传输时一个I/O设备有两个端口地址,一个为数据口地址,一个为状态口地址。CPU先读取状态口的数据,看看当前外设的状态准备好没有,若准备好则开始读写数据口,传输数据;若未准备好则循环读取状态口地址等待外设准备好。查询式输入如图,状态线占用一根数据线D0,STB是选通信号,在输入时随着数据一起从输入端口出现,是表示输入数据已就绪的状态信号。CPU先读状态口,若状态就绪,再读数据口。数据口42H状态口40HSTROBE:选通信号1)外设未准备好,STB为高,D触发器无脉冲,CPU读状态口(40H),打开缓冲器(1),读出DB0为低,表示未准备好。2)外设准备好,STB为低,a.
打开锁存器,将输入数据锁存起来;b.STB有下降沿脉冲,使Q为高,CPU读状态口(40H)读入的DB0为高,表示数据有效,程序转而读数据口42H。状态改变3)读数据口42H,a.
打开缓冲器(2),读数据线,这时,缓冲器(1)高阻,所以数据线上是输入设备的数据;b.
同时,读数据口的控制线将D触发器清零。Q端输出0,下次再读状态口时读入的DB0为0,表示数据未准备就绪。4)重复1),2),3)步骤中断传送方式中断传送方式是指当外设需要与CPU进行信息交换时,由外设向CPU发出请求信号,使CPU暂停正在执行的程序,转去执行数据的输入/输出操作,数据传送结束后,CPU再继续执行被暂停的程序。CPU不必查询等待,工作效率高,CPU与外设可以并行工作;由于外设具有申请中断的主动权,故系统实时性比查询方式要好得多。DMA方式DMA传送方式是在存储器和外设之间、存储器和存储器之间直接进行数据传送,无需CPU介入。DMA传送方式需要DMA控制器(DMAC)对传送过程加以控制和管理。
DMA传送期间,CPU放弃总线控制权,将系统总线交由DMAC控制,由DMAC发出地址及读/写信号来实现高速数据传输。传送结束后DMAC再将总线控制权交还给CPU。DMA传送方式:单字节传输方式成组传输方式(块传输方式)请求传输方式DMA传送过程:
DMA初始化
DMA传送过程(请求、响应、传送)传送结束5.3I/O指令和I/O地址译码CPU进行I/O操作:
先片选(芯片)、再字选(某寄存器)存储器操作?两种I/O接口结构5.3.1标准的I/O寻址方式特点:I/O端口地址独立专门控制IOR*,IOW*专门I/O指令易理解缺点:I/O指令没有存储器指令丰富内存空间I/O空间FFFFF0FFFF80x86采用I/O端口独立编址独立编址(统一编址)特点:指令众多,专门控制MEMR*,MEMW*I/O操作同存储器操作缺点:存储器地址空间↓程序不易阅读,耗时内存部分I/O部分存储器空间00000FFFFF5.3.2输入输出指令1.输入指令(I/O口→CPU)
INAL/AX,Port;直接端口寻址
(Port:端口号,取值0~255)INAL/AX,DX;间接端口寻址
(DX:内容为端口号,取值0~64K,实1K)
2.输出指令(CPU→I/O口)
OUTPort,AL/AX;直接端口寻址
OUTDX,AL/AX;间接端口寻址端口:具有一定独立操作功能,可由CPU寻址的一组寄存器(8088/8086时宽度为8位)例:INAL,50H;将50H端口的字节读入ALOUT80H,AX;将AL的字节输出到80H端口,
将AH的字节输出到81H端口
OUTDX,AL;将AL中的字节输出到DX所指的端口
OUTDX,AX?
INAH,7EH?
MOVDX,AL?5.3.3I/O接口的端口地址译码即接口地址译码:
理想(A0~A15)64K范围,0~FFFFH(端口号)实际(A0~A9)1K范围,0~03FFH(端口号,系统占用部分)1.直接地址译码(实用多见)A0~A9(加AEN,IOR*,IOW*)→译码电路→片选(组选,地址区域)、字选(寄存器选择)AEN:DMA控制器地址允许信号AEN=1,为DMA期间,禁止其他使用系统总线AEN=0,非DMA期间,允许CPU控制系统总线(直接地址译码需AEN=0)G2B*=0?
G2A*=0?输入输出分开G2B*=0?AEN=0时
CBAA9A8A7A6A5A4A3A2A1A01011111000
2F8H
…………1011111111
2FFHG2A*=0?IOW*/IOR*不同时有效输入输出I/O端口地址→I/O接口:
含IOW*/IOR*信息,含AEN信息,含A9~A0信息A9A8A7A6A5A4A3A2A1A01110000000
380H
…………1110000001
381H←I/O端口地址:可输入输出
由IOW*/IOR*体现80X86主机板的I/O译码电路(内端口)DMA控制器1(00H~1FH)中断控制器1(20H~3FH)定时计数器(40H~5FH)并行接口电路(60H~7FH)DMA页面寄存器(80H~9FH)中断控制器2(A0H~BFH)DMA控制器2(C0H~DFH)协处理器(E0H~FFH)AEN接口芯片内部译码A0~A4A5A6A7A8A974LS138ABCG2AG2BG1Y0Y1Y2Y3Y4Y5Y6Y75.4
8086/8088CPU中断控制功能5.4.1中断概念正在看书电话铃响接电话继续看书执行程序事件发生事件处理继续执行程序中断处理中断请求及响应实际场景计算机中断返回中断:
CPU暂停现操作,转去处理另一事件,完毕,返回执行暂停的操作。5.4.2中断源外部硬件中断
INTR:可屏蔽中断,受CPU内标志寄存器中IF位的屏蔽NMI:非屏蔽中断,不受IF位的屏蔽,Cpu必须响应2.内部异常中断
CPU内部正在执行的过程发生的异常情况,如除数为03.中断优先顺序CPU的中断优先权排列从高到低为:1)除法出错中断,溢出中断,INTn,…2)NMI3)INTR4)单步中断中断源识别:中断类型码中断类型码可以是0~255,一部分由系统占用,一部分用户可以支配。
比如:除法错误(n=0)
调试异常(n=1)
NMI中断(n=2)
断点中断(n=3)
溢出中断(n=4)
5.4.3中断向量表中断向量表:系统RAM的最低端00000H~003FFH的1K字节内,表中共有256个中断类型码对应的中断向量。中断向量:每个中断向量占用4个字节。前2个字节为中断服务程序入口地址的偏移地址IP,后2个字节为服务程序的段基址CS。向量地址:这4个单元的地址中的最小地址称为向量地址向量地址=向量表的首地址
+中断类型码*45.4.4CPU对外部可屏蔽中断的响应过程CPU现指令结束后,IF=1,有中断请求→响应,中断处理:(1)关中断(IF=0,TF=0,机器自动)(2)保留断点(当前F,CS,IP内容入栈,机器自动)(3)转中断程序(其段地→CS,偏地→IP,机器自动)(4)保护现场(相关寄存器,人工)(5)中断服务(执行程序,机器自动)(6)恢复现场(相关寄存器,人工)(7)中断返回,IRET(IP、CS、F内容出栈,返回中断发生时下一指令处,
机器自动且IF=1)
中断时栈操作:IPLIPHCSLCSHFLFHSPIPCSFLAGFLFHCSLIPLIPHCSHSP保留断点,进栈执行IRET,断点出栈①中断嵌套?在(5)中加入STI指令,开中断②堆栈操作:栈操作指令PUSH、POP
子程序调用CALL、返回RET
中断断点保留、返回IRET5.5
中断控制器8259A可编程芯片,80x86的中断管理器件8259A的基本功能:2个端口,一片可管理8级中断;级联:最多64级;可中断屏蔽或允许;可中断向量输送;可优先权管理;多种工作方式,编程选择5.5.18259A的结构和引脚D7~D0INTAINT中断请求寄存器中断屏蔽寄存器数据总线缓冲器IR0IR7读/写控制逻辑级联缓冲比较器RDWRA0CSCAS0CSA1CAS2SP/EN优先权分析器中断服务寄存器控制逻辑IR0~IR7:8个异步中断请求输入信号。分别接来自不同外设的中断源,高电平或上升沿表示有请求。
INT:中断请求信号(输出),向CPU发中断请求。
中断响应输入信号,接收CPU响应中断后的应答信号。
CAS2~CAS0:主从级连双向信号。当系统的中断请求多于8个时,可用两个或更多的8259A级连,其中一个是主控制器,其余是从控制器。从片的INT输出接到主片的一个IR输入。在中断响应期间,若主8259A判定所响应的是由某一从片发出的请求,则它在级连线上发出该从片的识别号,并由各从片接收。从片将自己的识别号与该级连线上的号相比较。若一致的话,它应在第二个INTA响应周期,把自己片内中断源的类型号通过D7~D0送给CPU,以便把控制引导到所对应的中断服务程序入口。主从或缓冲方式,双向信号。当其为输入时,由它决定该片为主片(SP=1)或从片(SP=0)。当其为输出时,8259A处于“缓冲方式”,该信号用来控制双向总线驱动器的启动(EN)端。这种方式常用于多片级连的大系统中。
A0:地址选择信号,用来对内部寄存器进行选择,通常接总线的A0。即8259A的内部寄存器占外设的两个地址,称为奇地址和偶地址。
中断请求寄存器(IRR):InterruptRequestRegister一片8259A有8条外界中断请求线IR0~IR7,每一条请求线有一个相应的触发器来保存请求信号,从而形成了中断请求寄存器。外设产生中断请求方式有两种:一种是边沿触发,上升沿触发;另一种电平触发,输入信号保持高电平触发。用户可根据需要通过编程来实现。
外设中断申请优先权电路:对保存在IRR中的各个中断请求,经过判断确定最高的优先权,并在中断响应周期把它选通至在服务寄存器(ISR)。
在服务寄存器(ISR):IN-ServiceRegister储存当前正在服务的中断源的标志。ISR的置位是在中断响应的第一个INTA有效时完成的。8259内部结构中断屏蔽寄存器(IMR):InterruptMaskRegister,由用户编程进行设置,可以对IRR中的相应的中断源进行屏蔽,对于较高优先权的屏蔽不影响较低优先权的输入。
控制逻辑电路:
对片子内部的工作进行控制,使它按编程的规定工作。
数据总线缓冲器:与CPU的数据总线连接,传输命令等。1.优先级排队方式1)全嵌套方式(正常)中断优先级按IR0~IR7顺序排列,并且只允许中断级别高的中断源中断级别低的中服程序,而不能相反。这是8259A的常用方式,若在对8259A初始化后,没有设置其它优先级方式,自动按此方式工作。2)特殊全嵌套方式(级联)中断优先级按IR0~IR7顺序排列,当执行某一级中服时,可响应同级中断源提出的中断请求,从而实现中断请求的特殊嵌套。5.5.2 8259A的工作过程及工作方式(1)从片IR5连接的外设通过主片IR3管脚申请中断,CPU进入从片IR5的中服;(2)在CPU进入执行从片IR5的中服期间,从片IR2连接的外设又有中断申请;(3)对从片而言,IR2的优先级大于IR5,应该打断IR5的中服,但对主片而言,它们同是一个优先级IR3,所以如果工作在正常全嵌套方式下,CPU不能执行从片IR2的中服。(4)所以,在级联情况,应使主片工作在特殊的全嵌套方式下。3)优先级自动轮换方式优先级的顺序不是固定不变的,一个设备受到中断服务后,其优先级自动降为最低。初始优先级的顺序为IR0~IR7。该方式用在系统中多个中断源优先权相同的场合。初始IR0IR1IR2IR3IR4IR5IR6IR7IR3申请后IR4IR5IR6IR7IR0IR1IR2IR3IR6申请后IR7IR0IR1IR2IR3IR4IR5IR6优先级:高低4)优先级指定轮换方式与优先级自动轮换方式一致,但初始的最高优先级是指定的,然后再按顺序自动轮换。初始指定IR2IR2IR3IR4IR5IR6IR7IR0IR12.屏蔽中断源的方式1)通常屏蔽方式:利用操作命令OCW1,使屏蔽寄存器IMR中的某一位或某几位置1来屏蔽相应输入端的中断请求,若要开放某个中断源,则在相应位置0;2)特殊屏蔽方式:在某些场合,在执行某一个中断服务程序时,要求允许另一个优先级比它低的中断请求被响应。这时可采用特殊的屏蔽方式,即在优先级高的中服中,用OCW1将IMR中本中断的对应位置1,将本级中断屏蔽,同时将ISR(在服务寄存器)中该中断的对应位清零,对外界来说,就好像CPU此时没有处理该中断,这样,即使是最低级的中断请求,也会被CPU响应。特殊屏蔽方式一般是在高优先级中服中使用。3.中断触发方式1)边沿触发方式:以上升沿向8259A请求中断,上升沿后可一直维持高电平,不会再次产生中断;2)电平触发方式:以高电平申请中断,但在响应中断后应及时清除高电平,以免引起第二次中断;3)中断查询方式:外设以上升沿或高电平通过8259A向CPU申请中断,但8259A却不使用INT信号向CPU申请中断,只是等待CPU用软件查询8259的状态以确定中断源,并用程序转入相应的处理程序。4.结束中断的处理方式当8259A的某个中断源顺利申请CPU中断时,在ISR中这个中断源的对应位置位,结束中断的处理方式就是对ISR中的该位进行处理。1)自动中断结束方式在中服程序的最后,中断返回之前,不需要用软件发送清除ISR对应位的命令,机器在中服运行之前(第二个INTA)自动清除该中服程序所对应的ISR位。这种方式用在中断不会嵌套的系统中。2)非自动中断结束方式(1)正常EOI命令该EOI命令使ISR中为1的当前优先级最高的那一位复位。在中服程序中,是一个通用的命令EOI命令(常用)。(2)指定的EOI命令在特殊的全嵌套方式下,只根据ISR的对应位是无法确定哪一级中断是最后响应和处理的,所以在程序中要发一指定的EOI命令,向8259A指出要清除的ISR中的具体位。这是在8259A的命令字中实现的,一般用于复杂的多片级联系统中。5.连接系统总线的方式在多片级连的大系统中,要求数据总线有总线缓冲器。8259A与这种带总线缓冲器的系统总线连接的方式称缓冲方式。此时SP/EN用于输出,启动缓冲器工作,不能用作表示主从关系。故需要在初始化设置中设置专用位来表示级联系统中的主从关系。若在小系统中,8259A的D7~D0可以直接与数据总线连接,不需要总线缓冲器,这种方式称为非缓冲方式,此时,SP/EN用作输入,用于表示级联系统中的主从关系,即该引脚接高电平表示该芯片为主片,接低电平表示该芯片为从片。5.5.38259A的级联使用8259A的级连,可以使系统中的中断源由8个最多扩展到64个,级连时有且只能有一片8259A为主片,其余的均为从片,从片最多只能有8片。若从片A的IR4通过主片申请中断,CPU响应后,在第一个INTA周期,主片将这个设备的ID(连接主片的管脚号)发送到级连线CAS0~CAS2,各个从片收到这个级连号与本片寄存器存储的ID相比较,在第二个INTA期间,被选中的从片就将自己的中断类型号送上数据总线。当系统的从片数目小于8时,一定不要把从片的INT接到主片的IR0上。这是因为主片的非级连的IR有请求时,主片在级连线上的驱动信号为000,就好像是让IR0上的从8259A响应一样,若这时真有一个从8259A接到主IR0输入,它响应中断而发出的向量号将与主片发出的向量号在总线上产生冲突而产生错误。所以,主片的IR0输入只有当其IR1~IR7全接上从片时才最后用来接从片。
5.5.4、8259A的编程1.初始化编程
由CPU向8259A送2~4个字节的初始化命令字ICW(InitializationCommandWord)。如何知道CPU在向8259A初始化?
若CPU用一条输出指令向8259A的偶地址(A0=0)写一个字节的命令字,这个命令字的D4位为1,这个命令字就被8259A解释成为初始化命令字ICW1,ICW1启动了8259A片内的初始化程序,8259A自动发生下列事件。
1)
边沿敏感电路复位,这意味着在初始化以后,中断请求输入线必须由低变高才产生中断;2)
中断屏蔽寄存器清零;3)
IR7输入被赋为优先权7(最低优先权)。对初始化编程说明如下:1)
设置初始化命令字ICW1~ICW4的口地址规定如下:ICW1必须写入偶地址口,ICW2~ICW4必须写入奇地址口。2)
ICW1~ICW4的写入次序固定不变,不可颠倒。3)
对每片PIC均需写入ICW1和ICW2,是否写入ICW3和ICW4均由ICW1的相应位决定。只有在级连的方式下,主、从片才须写入ICW3;仅当8086/8088系统或须设置特殊全嵌套方式、缓冲方式、自动中断结束方式时,才写入ICW4。在级连方式下,主、从片的ICW3的各位含义不同。
ICW1:芯片控制初始化命令字(写入偶地址A0=0)D7D6D5D4D3D2D1D0×××1LITM×SNGLIC4×××11电平触发0边沿触发×1单片0级连1需要ICW40不需ICW4若8259地址20H,21H,采用电平触发,单片使用,需要ICW4,编程如下:D7D6D5D4D3D2D1D0000110111BHMOVAL,1BHOUT20H,AL;写入偶地址ICW2:中断类型码初始化命令字(写入奇地址)规定本片8259A所带的外设IR0~IR7的中断类型号,在中断响应时将外设对应的该类型号送上数据总线。
编程时规定D7~D3,即高5位,低3位由IR0~IR7的管脚序号自动形成。
D7D6D5D4D3D2D1D0T7T6T5T4T3000在PC机中,硬盘中断类型号是0DH,它连接在8259A的IR5上,则向8259A写的ICW2是什么?D7D6D5D4D3D2D1D00000100008H00001101MOVAL,08HOUT21H,AL;写入奇地址例如:PC/XT机中ICW2的D7~D3是00001,则接在IR0~IR7上的设备的中断类型号依次08H,09H,....,0FH。
D2D1D0000001010011100101110111ICW3:主/从片初始化命令(写入奇地址)当ICW1的D1位为0时,主从片均需要写入ICW3,但主从片的ICW3的含义不同,所以设置的命令字也不同。
主片ICW3的格式为:D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0D7与D0对应于IR7~IR0连接从片的情况,当某一管脚连接从片,则该管脚对应的位置1。
如IR7与IR4上接有从8259A,则主片中ICW3应写为:10010000B,即90H两个从片分别接在主片的IR2和IR6管脚上,则主片的ICW3为:D7D6D5D4D3D2D1D00100010044HMOVAL,44HOUT21H,AL;写入奇地址从片ICW3的格式为:
D7D6D5D4D3D2D1D000000ID2ID1ID0ID2~ID0表明该从片的输出INT接在主片的哪个输入管脚上。如该片接在主片的IR4上,则从片的ICW3应写为:00000100B,即04H从片A的INT接在主片的IR2上,从片B的INT接在主片的IR6上,则其ICW3的编程为:;从片AMOVAL,02HOUT21H,AL;从片BMOVAL,06HOUT21H,ALICW4:方式控制初始化命令
D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIuPM1特殊全嵌套方式1缓冲方式1主片
0从片1自动结束中断方式18086CPU0一般全嵌套方式
0非缓冲方式
×0非自动结束中断方式
ICW4:D4,特定完全嵌套方式的设置ICW4:D3D2缓冲方式的设置D3=1,系统工作在缓冲方式。所谓缓冲方式就是指8259A和系统数据总线之间有缓冲器,因此要设置缓冲器的控制信号,以便数据线上有信号出现的时候,可以打开缓冲器,传输信号。在这种方式下,引脚就认为是方式,输出缓冲器的控制信号,而此时,如果是多片级连,还要区分主片和从片,所以就用D2位来区分主片和从片,若D2=1,该片8259A为主片,若D2=0,该片为从片。缓冲方式级连引脚为输出,输出缓冲器开启信号,缓冲器将系统总线信号与局部数据总线隔离。这时,用ICW4的D2位来区分主片和从片。主片初始化时D2位写1,从片初始化时D2位写0。非缓冲方式下的级连引脚为输入,用不同的输入区分主片和从片,主片该引脚接高电平,从片该引脚接低电平,此时,ICW4的D2位无用。ICW4:D1中断结束方式的设置ICW4中D1位为1,为自动结束中断方式,即在中服程序的最后,中断返回之前,不需要用软件发送清除ISR对应位的命令,机器在中服运行之前(第二个INTA)自动清除该中服程序所对应的ISR位。这种方式用在中断不会嵌套的系统中。ICW4中D1位为0,为非自动结束中断方式,需要用软件在中服程序结束前发送清ISR对应位的命令,具体是正常清ISR中最高置1位还是清ISR中的指定位由具体的命令字来决定,在初始化中该位置0只是说明必须要用软件清在服务寄存器ISR。ICW4:D0该位置1表示该片8259A用于16位以上的微机,置0表示用于8位微机,用于8086时置1。D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIuPM1特殊全嵌套方式1缓冲方式1主片
0从片1自动结束中断方式18086CPU0一般全嵌套方式
0非缓冲方式
×0非自动结束中断方式
例:PC机中CPU为80286,8259A与系统总线之间采用缓冲方式,非自动结束方式,1片8259A,正常全嵌套。D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIuPM1特殊全嵌套方式1缓冲方式1主片
0从片1自动结束中断方式18086CPU0一般全嵌套方式
0非缓冲方式
×0非自动结束中断方式
D7D6D5D4D3D2D1D0000011010DHMOVAL,0DHOUT21H,AL;写入奇地址例:PT86单板机中,CPU为8086,采用非自动结束中断方式,使用两片8259A,非缓冲方式,为使从片也能提出中断请求,主片采用特殊全嵌套方式。主片地址:0FFDEH。D7D6D5D4D3D2D1D000010001D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIuPM11HMOVDX,0FFDFHMOVAL,11HOUTDX,ALPC/AT机中有两片8259A,主片地址20H,21H,从片地址A0H,A1H,主片中断类型号08H~0FH,从片70H~77H,边沿触发,正常全嵌套,非自动EOI。MOVAL,11HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,04HOUT21H,ALMOVAL,01HOUT21H,ALMOVAL,11HOUT0A0H,ALMOVAL,70HOUT0A1H,ALMOVAL,02HOUT0A1H,ALMOVAL,01HOUT0A1H,ALPC/AT机8259A连接图2.工作方式编程
共有3个工作命令字OCW(OperationCommandWord),均为CPU向8259A发布的命令,3个命令字无顺序,可独立、反复使用。OCW1:中断屏蔽命令字(写入奇地址)
设置中断屏蔽寄存器IMR的内容,为1禁止产生中断输出,为0允许中断。IMR可以屏蔽一个或几个IR的中断请求,它加强了对中断的控制能力。屏蔽单个或部分IR,可以使得在主程序的不同部分使用不同的中断,而不必改变硬件结构,还可以在子程序中禁止比自己优先级高的某些中断,这实际上也就改变了中断的优先级。
例:若使中断源IR3开放,其余被屏蔽,则OCW1为:设置中断屏蔽寄存器IMR的内容,为1禁止产生中断输出,为0允许中断。(写入奇地址)1111011107HMOVAL,07HOUT21H,AL;写入奇地址IMR寄存器中的内容还可以被CPU读出,直接读奇地址。INAL,21H例:BIOS中有一段检查中断屏蔽寄存器的程序:MOVAL,00HOUT21H,ALINAL,21HORAL,ALJNZD6MOVAL,0FFHOUT21H,ALINAL,21HADDAL,1JNZD6……;置IMR为全0;读IMR中的内容,读奇地址;检查IMR中是否为全0;不为全0,转错误处理程序D6;置IMR为全1;读IMR中的内容,读奇地址;检查IMR中是否为全1;不为全1,转错误处理程序D6OCW2:控制中断结束和优先权循环的操作命令字(写入偶地址)D7D6D5D4D3D2D1D0RSLEOI00L2L1L0D4D3为00,用以与初始化ICW1相区别,ICW1中D4为1。
D7-R:用来控制8259A中断优先级是否为轮换优先级的方式,置1为轮换优先级,置0为固定优先级。D5-EOI:用来指示该命令字是否为发送中断结束命令。置1为发送非自动结束中断结束命令,置0为该命令与中断结束命令无关,是设置优先级的命令。D7D6D5D4D3D2D1D0RSLEOI00L2L1L0OCW2一共有两种命令,设置中断轮换优先级或发送中断结束命令,这两种命令又都有一般和特殊两种形式。设置优先级自动轮换方式:优先级最高为IR0,依次轮换设置优先级指定轮换方式:指定一个最高优先级,依次轮换发送正常的非自动结束中断方式;发送指定的非自动结束中断方式;优先级自动轮换方式优先级的顺序不是固定不变的,一个设备受到中断服务后,其优先级自动降为最低。初始优先级的顺序为IR0~IR7。该方式用在系统中多个中断源优先权相同的场合。初始IR0IR1IR2IR3IR4IR5IR6IR7IR3申请后IR4IR5IR6IR7IR0IR1IR2IR3IR6申请后IR7IR0IR1IR2IR3IR4IR5IR6优先级:高低优先级指定轮换方式与优先级自动轮换方式一致,但初始的最高优先级是指定的,然后再按顺序自动轮换。初始指定IR2IR2IR3IR4IR5IR6IR7IR0IR1非自动中断结束方式(1)正常EOI命令该EOI命令使ISR中为1的当前优先级最高的那一位复位。在中服程序中,是一个通用的命令EOI命令(常用)。(2)指定的EOI命令在特殊的全嵌套方式下,只根据ISR的对应位是无法确定哪一级中断是最后响应和处理的,所以在程序中要发一指定的EOI命令,向8259A指出要清除的ISR中的具体位。这是在8259A的命令字中实现的,一般用于复杂的多片级联系统中。D7D6D5D4D3D2D1D0RSLEOI00L2L1L0OCW2一共有两种命令,设置中断轮换优先级或发送中断结束命令,这两种命令又都有一般和特殊两种形式。在一般情况下,优先级或ISR位是默认的,此时D6位SL置0,D2~D0位没有意义,置0;在特殊情况下,要指定优先级的位或指定清除的ISR中的指定位,所以此时SL为1,说明D2~D0位就表示指定的特殊位。D7D6D5D4D3D2D1D0RSLEOI00L2L1L000100000正常的EOI命令,复位最高ISR位。01100L2L1L0指定的EOI命令,复位指定的ISR位。000~11110000000设置优先级自动循环方式00000000结束优先级自动循环方式11000L2L1L0按L2~L0确定一个最低的优先级。000~11111100L2L1L0EOI命令,使当前中服的ISR位清除,并使当前系统的最低优先级为L2L1L0。例:在IBMPC中,OCW2主要用来结束中断。ISR中保存着当前正在服务的中断级的置位,如果该位不复位为0,则后续的同级和较低优先级的中断申请将不会被响应。在PC机中,ICW4设置的中断结束方式是正常结束EOI(不是自动结束EOI),它表示必须在中服程序结束之前,由OCW2命令字来清除ISR中最高优先权的位。在OCW2中,一般EOI的代码是D7D6D5D4D3D2D1D0RSLEOI00L2L1L00010000020HMOVAL,20HOUT20H,ALMOVAL,20HOUT0A0H,AL;主片偶地址;从片偶地址若对IR3中断源采用指定中断结束方式,则需在中断服务程序中,中断返回指令IRET前,写如下程序段:D7D6D5D4D3D2D1D0RSLEOI00L2L1L00110001163HMOVAL,63HOUT20H,ALOCW3:主要控制8259A的中断屏蔽、查询和读寄存器ISR,IRR等的状态。(写入偶地址)D7D6D5D4D3D2D1D0×ESMMSMM01PRRRIS与ICW1,OCW2的区别是D4,D3为0,1D2-P:置1,8259工作在查询方式;置0,非查询命令。当使8259A设置在查询方式时,将接口的中断控制方式改变为查询控制方式,即使CPU的IF清零,禁止CPU中断,改为CPU查询8259A,看看是否有中断源(外设)申请服务。在设置查询方式后,马上读偶地址,读出的字节含义如下:D7D6D5D4D3D2D1D0I××××W2W1W0若此时在程序中判断D7为1,则表示有外设要求服务,其连接在8259A上的管脚编码是D2,D1,D0。一旦CPU发出查询命令,8259A就将下一个CPU发送给它的CS为低且A0为低(偶地址)及RD脉冲(读偶地址)作为中断响应,如果有中断请求,就将ISR中的相应位置位,并将“查询结果”送上数据总线。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年海南省安全员知识题库
- 2025年贵州省安全员C证考试(专职安全员)题库附答案
- 中医内科学-瘿病
- 【大学课件】建筑设备工程
- 声音的产生与传播+flash课件
- 语文课件-画蛇添足
- 三年级语文《炮手》课件
- 建设工程安全生产管理课件
- 万科穿插施工与施工计划
- 《急腹症幻灯》课件
- 造价咨询结算审核服务方案
- 中国人民财产保险股份有限公司机动车综合商业保险条款
- 八年级物理上册计算题精选(50道)
- 燃气工程监理实施细则(通用版)
- E车E拍行车记录仪说明书 - 图文-
- 人才梯队-继任计划-建设方案(珍贵)
- 《健身气功》(选修)教学大纲
- 王家岩隧道工程地质勘察报告(总结)
- 《昆明的雨》优质课一等奖(课堂PPT)
- 3-1、征信异议申请表
- EHS的组织架构和职责说明(共2页)
评论
0/150
提交评论