输入输出技术.pptx
7.1 I/O接口概述I/O接口接口:指指CPU与与外外围围设设备备或或外外围围设设备备与与系系统统设设备备之之间间进进行行数数据据交交换换和和通通信信的的连连接接电电路路,是是CPU与与外外界界进进行行信信息交换的息交换的中转站中转站。I/O接口技术接口技术:是是研研究究CPU如如何何与与外外设设进进行行最最佳佳耦耦合合与与匹匹配配,实实现现双方高效、可靠地交换信息的一门技术,是软件、双方高效、可靠地交换信息的一门技术,是软件、硬件结合的体现,是微机应用的关键。硬件结合的体现,是微机应用的关键。第1页/共69页 速度匹配速度匹配 光电隔离驱动外设光电隔离驱动外设 信号特性匹配信号特性匹配 数据缓冲与锁存数据缓冲与锁存 信息格式转换信息格式转换 设备选择设备选择 中断控制中断控制7.1.1 I/O7.1.1 I/O接口的作用接口的作用第2页/共69页1 1、数据信息数据信息 通常包括数字量、模拟量和开关量通常包括数字量、模拟量和开关量3 3种信息种信息数字量数字量 以二进制形式或是以以二进制形式或是以ASCIIASCII码表示的数或字符。码表示的数或字符。模拟量模拟量 指在计算机控制系统中,某些现场信息经传感器指在计算机控制系统中,某些现场信息经传感器转转换为电信号,再通过放大得到模拟电压或电流。换为电信号,再通过放大得到模拟电压或电流。开关量开关量 指只含两种状态的量,如开关的断开与闭合,电指只含两种状态的量,如开关的断开与闭合,电路路的通与断等,故只需用一位二进制数即可描述一个开关的通与断等,故只需用一位二进制数即可描述一个开关量。量。2 2、状态信息、状态信息 状态信息作为一种状态信息作为一种CPUCPU与与I/OI/O设备之间的接口信号,设备之间的接口信号,主要主要用来反映用来反映I/OI/O设备当前的状态。设备当前的状态。3 3、控制信息、控制信息 控制信息是控制信息是CPUCPU通过通过I/OI/O接口传送给外设的,专门用接口传送给外设的,专门用来控来控制制I/OI/O设备的操作,是向外设传送的控制命令。设备的操作,是向外设传送的控制命令。7.1.2 CPU7.1.2 CPU与外设交换的信息与外设交换的信息第3页/共69页7.1.3 I/O7.1.3 I/O接口的基本结构接口的基本结构 数据信息、状态信息和控制信息作为数据信息、状态信息和控制信息作为CPUCPU与与I/OI/O设备间的接口设备间的接口信号,信号,在接口电路中,将这在接口电路中,将这3 3种信息分别存放在不同的寄存器中,这些寄种信息分别存放在不同的寄存器中,这些寄存器存器称为接口电路的称为接口电路的I/OI/O端口。端口。状态状态端口端口数据端口数据端口(输入输入/输出输出)控制端口控制端口地址地址译码译码数据数据缓冲缓冲控制控制电路电路外设ABDBCBCPU数据数据状态状态控制控制第4页/共69页 接口电路有接口电路有3 3种端口:数据端口,状态端口和控制端种端口:数据端口,状态端口和控制端口。口。数据端口:数据端口:数据端口可分为数据输入端口和数据输出数据端口可分为数据输入端口和数据输出端端 口两类。在输入时,由数据输入端口保存外设发往口两类。在输入时,由数据输入端口保存外设发往CPUCPU或内存的数据;在输出时,由数据输出端口保存或内存的数据;在输出时,由数据输出端口保存CPUCPU或内存发往外设的数据。或内存发往外设的数据。状态端口:状态端口:状态端口用来保存状态端口用来保存I/OI/O设备或接口部件本设备或接口部件本身的工作状态信息,让微处理器了解数据传送过程中正身的工作状态信息,让微处理器了解数据传送过程中正在发生或最近已发生的状态。在发生或最近已发生的状态。控制端口:控制端口:控制端口用来存放处理器发来的控制命令控制端口用来存放处理器发来的控制命令与其他信息,确定接口电路的工作方式和功能,便于控与其他信息,确定接口电路的工作方式和功能,便于控制接口电路和制接口电路和I/OI/O设备的动作。设备的动作。第5页/共69页 CPUCPU和外部设备之间进行数据传输时,各类信和外部设备之间进行数据传输时,各类信息在接口中将进入不同的寄存器,一般称这些寄存息在接口中将进入不同的寄存器,一般称这些寄存器为器为I/OI/O端口端口;每个端口分配一个地址号,称之为每个端口分配一个地址号,称之为端口地址端口地址,CPUCPU通过指令对它们进行访问。通过指令对它们进行访问。8086CPU8086CPU最大可用地址总线的低最大可用地址总线的低1616位作为对位作为对8 8位位I/OI/O端口的寻址线,相邻的两个端口的寻址线,相邻的两个8 8位端口可以组成一位端口可以组成一个个1616位端口,所以位端口,所以8086CPU8086CPU可访问的可访问的8 8位位I/OI/O端口有端口有64K64K个,个,1616位位I/OI/O端口有端口有32K32K个。个。7.1.4 I/O I/O端口的编址方式第6页/共69页一、一、I/OI/O端口与存储器统一编址端口与存储器统一编址n优点:n不需要专门的I/O指令nI/O数据存取与存储器数据存取一样灵活n缺点:nI/O端口要占去部分存储器地址空间n寻址速度比专用的I/O指令慢内存部分I/O部分存储器空间00000HFFFFFH第7页/共69页二、二、I/OI/O端口独立编址端口独立编址n优点:nI/O端口的地址空间独立,不占用内存空间n指令的执行速度快n缺点:nI/O指令没有存储器指令丰富,指令功能比较弱内存空间I/O空间FFFFFH0FFFFH第8页/共69页1、门电路地址译码(与门、非门、或门、与非门、或非门)与门、非门、或门、与非门、或非门)三、三、I/OI/O端口地址的译码端口地址的译码D0D7A9A8A7A6A5A4A3A2A1A0数据线DBRDWRCS。端口译码电路0D0D710000110000&M/IORDWR11111111第9页/共69页2、译码器地址译码常用的译码器有74LS139、74LS138、74LS154等219H21AH21BH21CH21DH21EH21FH218H74LS138AY0BY1CY2G1Y3Y4G2AY5Y6G2BY70110000100&A0A1A2M/IOA3A4A5A6A7A8A9RDWR10101010110011001111000074LS30与非门11111第10页/共69页一、直接程序控制方式一、直接程序控制方式(程序方式程序方式)无条件传送方式 外部控制过程的各种动作在外部控制过程的各种动作在时间上是固定时间上是固定的的,而且而且是已知的是已知的。条件传送方式(查询方式)传送前传送前,先查询外设状态先查询外设状态,准备好才传送准备好才传送,否否则则CPU处于等待状态。处于等待状态。7.2I/O与外设之间的数据传送的方式第11页/共69页1、无条件传送方式 输入时外设必须已准备好数据,输出时接口锁存器必输入时外设必须已准备好数据,输出时接口锁存器必须为空。即接口和须为空。即接口和I/OI/O设备在无条件传送时必须要保持设备在无条件传送时必须要保持“就绪就绪”状态。状态。第12页/共69页NY从状态端口读入状态信息从数据端口传送一个数据外设准备好否?2 2、条件传送方式第13页/共69页状态端口状态端口D4=1表示外设准备好表示外设准备好TESTAL,10HJZaskMOVDX,218HINAL,DXMOVDX,21CHask:INAL,DX查询方式输入接口查询方式输入接口三态缓冲器输输入入设设备备数数 据据 线线218H数据数据端口端口地址地址译码译码地址线地址线状态状态端口端口地址地址译码译码锁存器 R Q D三态缓冲器+5vD421CHSTBIORA15A0D7D0&第14页/共69页查询方式输出接口查询方式输出接口状态端口状态端口D0=0表示外设准备好表示外设准备好MOVDX,219HOUTDX,ALMOVDX,21CHask:INAL,DXTESTAL,01HJNZask输输出出设设备备数据线数据线219H地址线地址线锁锁存存器器 RD D Q 三三 态态缓冲器缓冲器+5vACKIORA15A0D7D0IOW状态状态端口端口地址地址译码译码D021CH&数据数据端口端口地址地址译码译码输输出出设设备备数据线数据线219H地址线地址线锁锁存存器器 RD D Q 三三 态态缓冲器缓冲器+5vACKIORA15A0D7D0IOW状态状态端口端口地址地址译码译码D021CH&数据数据端口端口地址地址译码译码第15页/共69页条件传送方式条件传送方式优点:优点:接口简单接口简单缺点:缺点:CPUCPU不断查询外设状态,降低了不断查询外设状态,降低了CPUCPU的利的利用率。用率。为了提高为了提高CPUCPU的效率以及使系统具有实时的效率以及使系统具有实时性,通常采用性,通常采用中断方式中断方式传送数据。传送数据。第16页/共69页二、中断传送方式二、中断传送方式 中断传送方式是指由于某些随机事件的中断传送方式是指由于某些随机事件的产产生,使生,使CPUCPU暂停当前正在执行的程序,而转去暂停当前正在执行的程序,而转去处处理相应的外部事件,执行一个为外设服务的理相应的外部事件,执行一个为外设服务的I/OI/O程序,执行完毕后,程序,执行完毕后,CPUCPU返回原来程序的断点返回原来程序的断点处处继续执行。继续执行。第17页/共69页INTAINTA中断方式输入接口中断方式输入接口中断请求D DQ Q三三态态缓缓冲冲器器&中断中断屏蔽屏蔽触发触发器器Q Q端端口口 译译码码地址总线RDRDINTRINTR输输入入设设备备数据数据 输入输入锁存器锁存器+5V+5VD0D0D7D7第18页/共69页中断传送方式中断传送方式优点:优点:CPUCPU和和外外设设大大部部分分时时间间处处在在并并行行工工作作状状态态,只只在在CPUCPU响应响应外外设设的的中中断断申申请请后后,进进入入数数据据传传送送的的过过程程,提提高高了了CPUCPU的的效效率。率。缺点:缺点:利利用用中中断断方方式式传传送送数数据据,为为了了可可靠靠的的进进行行数数据据传传送送,必必须须花花费费一一定定的的时时间间进进行行断断点点的的保保护护和和恢恢复复,现现场场的的保保护护和恢和恢复等工作,浪费了复等工作,浪费了CPUCPU很多时间。很多时间。因因此此中中断断方方式式一一般般适适合合传传送送少少量量的的数数据据及及中中低低速速外外设,设,对对于于大大量量的的输输入入/输输出出数数据据,应应采采用用高高速速的的直直接接存存储储器器存存取取方式方式DMADMA。第19页/共69页DMA 传送方式过程传送方式过程CPUDMAC内存外设总线响应总线请求三、三、DMADMA控制方式控制方式(直接存储器存取方式直接存储器存取方式)第20页/共69页实现方法:实现方法:1、由专用接口芯片、由专用接口芯片DMA控制器控制器(称称DMAC)控制传控制传 送过程;送过程;2、当外设需传送数据时,通过、当外设需传送数据时,通过DMAC向向CPU发出发出 总线请求;总线请求;3、CPU发出总线响应信号,释放总线;发出总线响应信号,释放总线;4、DMAC接管总线,控制外设、内存之间直接数据接管总线,控制外设、内存之间直接数据 传送传送;5、DMA操作结束,将总线控制权交还给操作结束,将总线控制权交还给CPU。第21页/共69页DMADMA传送方式传送方式优点:优点:传送速度快传送速度快缺点:缺点:需用需用DMADMA控制器进行控制,硬件连接也控制器进行控制,硬件连接也比较复杂比较复杂第22页/共69页四、接口设计实例四、接口设计实例例:显示器采用例:显示器采用7 7段段LEDLED,由,由BCD-7BCD-7段译码段译码/驱动器所驱动,并驱动器所驱动,并采用共阳极接法,假定任何时候至多只有一个开关闭合。编采用共阳极接法,假定任何时候至多只有一个开关闭合。编写一程序段,显示闭合开关序号,若无开关闭合,则显示器写一程序段,显示闭合开关序号,若无开关闭合,则显示器不发光。不发光。Y074LS24574LS138显示译码/驱动器74LS373+5VK7K0M/IO A5A4A3A2A1A0RDD7D0 WRESTB20H&111第23页/共69页DATA SEGMENT TAB DB 10H,11H,12H,13H,14H,15H,16H,17HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX ,DATA MOV DS ,AX MOV BX,OFFSET TAB IN AL,20HCOUN:SHR AL,1 JNC NEXT MOV AL,BX OUT 20H,AL JMP EXITNEXT:INC BX JMP COUNEXIT:CODE ENDS END START第24页/共69页7.3.1 中断的基本概念一、一、中断与异常中断与异常 1、中断 在在CPUCPU正正常常运运行行程程序序时时,由由于于内内部部或或外外部部某某个个非非预料预料事事件件的的发发生生,使使CPUCPU暂暂停停正正在在运运行行的的程程序序,而而转转去去执执行行处处理引起中断事件的程序理引起中断事件的程序,然后再返回被中断了的程序,然后再返回被中断了的程序,继续执行。这个过程就是中断。继续执行。这个过程就是中断。7.3中断技术第25页/共69页 早早期期中中断断概概念念的的引引入入,是是为为解解决决CPUCPU与与外外设设间间的的速速度度匹匹配配问问题题,提提高高CPU CPU 的的工工作作效效率率。中中断断源源主主要要是是由由外外部部硬硬件件产产生生。当当今今的的中中断断技技术术,不不再再限限于于外外部部硬硬件件产产生生中中断断(称称硬硬件件中中断断或或外外中中断断 ),还还可可由由CPUCPU内内部部产产生。生。2、异常(软件中断或内中断)因因内内部部意意外外条条件件而而改改变变程程序序执执行行流流程程以以报报告告出出错错情情况况和和非非正正常常状状态态的的过过程程或或者者由由程程序序预预先先安安排排,即即由由指指令令INT INT n n调调用用中中断断服服务务程程序序产产生生的的中中断断。(286286以以上上称称内中断为异常内中断为异常)第26页/共69页二、中断原理(外中断)二、中断原理(外中断)1)中断请求 2)中断判优 3)中断响应 响应条件:响应条件:无总线请求和非屏蔽中断请求无总线请求和非屏蔽中断请求;中断允许控制位中断允许控制位IF=1;IF=1;CPU CPU执行完当前指令执行完当前指令;当前中断级别最高。当前中断级别最高。响应时自动完成以下工作响应时自动完成以下工作:发送两个发送两个INTAINTA负脉冲,取中断类型号负脉冲,取中断类型号N N;将将FLAGSFLAGS入栈,关中断,即入栈,关中断,即IF=0IF=0、TF=0TF=0;保护断点,将保护断点,将CSCS、IPIP入栈;入栈;根据中断类型号根据中断类型号N N取得中断向量送入取得中断向量送入IPIP、CSCS;进入中断服务子程序。进入中断服务子程序。第27页/共69页 4)中断处理保护现场;保护现场;开中断,以允许嵌套,也可不开中断;开中断,以允许嵌套,也可不开中断;中断服务;中断服务;关中断,保证无干扰恢复现场;关中断,保证无干扰恢复现场;恢复现场。恢复现场。5)中断返回开中断;开中断;中断返回。中断返回。第28页/共69页1、中断优先级的识别当有多个中断源同时提出中断申请时,究竟应该先响应哪个中断源的申请;当CPU正在执行中断服务程序时,又接收到新的中断申请,是否应该响应这个中断请求,这些问题都应当通过设置与判断中断的优先级来得以解决。1)软件查询法2)硬件排队电路 2、中断嵌套指当CPU因响应某一中断源的中断请求而正在执行其中断服务程序时,若此时中断是开放的,那必然可以把正在执行的中断服务程序暂停下来转而响应和处理中断优先级更高的中断请求,等到处理完后再转回来继续执行原来的中断服务程序。7.3.2 中断优先级和中断的嵌套 第29页/共69页 从从8086/80888086/8088到以上系统中,可以处理到以上系统中,可以处理256256个不同个不同类型的中断,其编号从类型的中断,其编号从00H00H0FFH0FFH,称为,称为中断类型号中断类型号。内部中断:内部中断:除法出错除法出错 类型号类型号0 0 自动产生自动产生 单步中断单步中断 类型号类型号1 DEBUG1 DEBUG执行执行T T命令命令 断点中断断点中断 类型号类型号3 DEBUG3 DEBUG执行执行G G命令命令 溢出中断溢出中断 类型号类型号4 4 执行执行INTOINTO INT n INT n 类型号类型号n (05H 0FFH)n (05H 0FFH)7.4 8086/80887.4 8086/8088中断系统7.4.1 8086/80887.4.1 8086/8088中断源类型第30页/共69页外部中断外部中断:不可屏蔽中断不可屏蔽中断 类型号类型号2 2 自动产生自动产生可屏蔽中断可屏蔽中断 类型号类型号(32(32 255)255)由由82598259管理管理中断逻辑中断逻辑INT nINT n指令指令INTOINTO指令指令除法除法错误错误单步单步断点断点非屏蔽中断请求非屏蔽中断请求n n4 40 01 1CPUCPUINTRINTRNMINMIIRIR0 0IRIR6 6IRIR5 5IRIR4 4IRIR3 3IRIR2 2IRIR1 1IRIR7 7可编程可编程中中 断断控制器控制器(PIC)(PIC)8259A8259AINTINT2 23 3第31页/共69页当当有有多多个个中中断断源源同同时时产产生生中中断断申申请请时时,CPU先先响响应应优先权最高的中断源,再响应优先级较低的中断源。优先权最高的中断源,再响应优先级较低的中断源。8086/8088CPU8086/8088CPU的中断优先级的中断优先级优先级 高 低内部中断内部中断(除法出错除法出错,INT 指令指令,断点断点,INTO指令指令)非屏蔽中断非屏蔽中断 可屏蔽中断可屏蔽中断低 内部中断内部中断(单步单步)第32页/共69页7.4.2 中断向量表中断向量表0000H:0000H0000H:0003H0000H:0004H0000H:0007H0000H:0008H0000H:000BH0000H:000CH0000H:000FH0000H:0010H0000H:0013H0000H:0014H0000H:0017H0000H:007CH0000H:007FH0000H:03FCH0000H:03FFH255/0FFH IPCS01234专用中断5个531/1FH保留中断27个32/20H用户中断224个中断向量:中断服务程序入口地址。中断向量表:用于存放256个中断向量的存储区域,共占1KB存储空间。中断向量指针:在向量表中存放每个中断向量的地址。第33页/共69页例:NMI中断,为2号中断 中断向量存于 IP 0000H:0008H 0000H:0009H CS 0000H:000AH 0000H:000BH 中断响应后CPU根据CS和IP内容进入中断子程序。例:中断类型号30H (30H4=C0H)中断向量存于IP 0000H:00C0H 10H 0000H:00C1H 20H CS 0000H:00C2H 30H 0000H:00C3H 40H 则中断所对应的中断向量为4030H:2010H,也即该中断服务程序的入口地址。第34页/共69页1 1、直接装入法、直接装入法 PUSHDSXORAX,AXMOVDS,AXMOVBX,N*4MOVAX,OFFSETNEWINTMOVWORDPTRBX,AXMOVAX,SEGNEWINTMOVWORDPTRBX+2,AXPOPDS NEWINTPROC IRETNEWINTENDP7.4.3 中断向量表的建立第35页/共69页2、使用串送存指令装入法 MOVAX,0MOVES,AXMOVDI,N*4MOVAX,OFFSETNEWINTCLDSTOSWMOVAX,SEGNEWINTSTOSW第36页/共69页3、使用DOSDOS功能调用设置中断向量预置:AH=25H AH=25H 功能号 AL=N AL=N 中断类型号 DSDS:DX=DX=中断向量执行:INT 21HINT 21H例如:PUSHDSMOVAX,SEGNEWINTMOVDS,AXMOVDX,OFFSETNEWINTMOVAL,NMOVAH,25HINT21HPOPDS第37页/共69页7.5 可编程中断控制器Intel8259AIntel8259A1.1.具有具有8 8级优先级控制,通过级联可扩充到级优先级控制,通过级联可扩充到6464级;级;2.2.每一级中断可由程序单独屏蔽或允许;每一级中断可由程序单独屏蔽或允许;3.3.可提供中断类型号传送给可提供中断类型号传送给CPUCPU;4.4.可通过编程选择多种不同的工作方式。可通过编程选择多种不同的工作方式。7.5.1 8259A7.5.1 8259A的功能的功能第38页/共69页 D7D0 RDWRA0 CS CAS0CAS1CAS2SP/EN数据缓数据缓冲器冲器读写逻读写逻辑辑级联级联比较比较/缓冲缓冲控制逻辑控制逻辑 中断屏蔽寄存器中断屏蔽寄存器IMRIMRISRPRIRRINTINTAIR0IR7VccGND7.5.2 8259A7.5.2 8259A的内部结构及外部引脚的内部结构及外部引脚1、内部结构第39页/共69页2、引脚功能及与CPU连接8259AWRA0CSA0数据线RDRDWRIR0IR1IR2IR3IR4IR5IR6IR7A5A4A3A2A1D0D7D0D7VccSP/ENCA0CA1CA2GND+5V用于多片8259A级连情况INTAINTINTAINTR8088最小模式+5VM/IOGG2AG2BCBAY21第43页/共69页+5V 多片多片8259A连接连接主片主片8259A8259A端口地址端口地址 20H 22H20H 22H从片从片1 1端口地址端口地址 24H 26H24H 26H从片从片2 2端口地址端口地址 28H 2AH28H 2AHD0D7A1G1G2AY2G2BY1CY0BAA0M/IOA6A5A4A3A28086最小模式RDINTAWRINT主片主片8259A从片从片1从片从片2A0CSINTIR7IR0IR7IR2IR1IR0INTIR7IR011第44页/共69页7.5.3 8259A7.5.3 8259A的工作方式的工作方式1 1、中断优先级方式全嵌套方式全嵌套方式 这是这是8259A8259A的默认方式,也是最基本最常用的工作的默认方式,也是最基本最常用的工作方式。该方式下方式。该方式下8259A8259A的中断优先级是从的中断优先级是从IR0IR7IR0IR7,优,优先级依次降低。先级依次降低。自动循环方式自动循环方式 该方式下中断的优先级队列随时发生变化,当某个该方式下中断的优先级队列随时发生变化,当某个外设的中断请求得到外设的中断请求得到CPUCPU响应后,其中断的优先级自动响应后,其中断的优先级自动降为最低。(初始的优先级队列规定为降为最低。(初始的优先级队列规定为IR0 IR7IR0 IR7)特殊循环方式特殊循环方式 与自动循环方式不同之处是:特殊循环方式下的初与自动循环方式不同之处是:特殊循环方式下的初始优先级队列可由编程决定。始优先级队列可由编程决定。第45页/共69页特殊全嵌套方式特殊全嵌套方式 中断正被处理时,允许中断正被处理时,允许同级同级或或更高优先级更高优先级的事件的事件可以打断当前的中断处理过程而被服务。可以打断当前的中断处理过程而被服务。注注:特殊全嵌套仅用于多个特殊全嵌套仅用于多个8259A8259A级连时的主级连时的主8259A8259A,而不能用于从属而不能用于从属8259A8259A或单或单8259A8259A系统。系统。2 2、中断结束的管理方式(固定优先级的中断结束)、中断结束的管理方式(固定优先级的中断结束)中断结束的管理就是用不同的方式使中断结束的管理就是用不同的方式使ISRISR中相应位清中相应位清零。零。普通结束方式普通结束方式EOIEOI 8259A 8259A每得到一次每得到一次EOIEOI命令,就将命令,就将ISRISR中已置位中已置位的各位中优先级最高的位复位。的各位中优先级最高的位复位。第46页/共69页特殊结束方式特殊结束方式SEOISEOI 该方式的特殊性在于,除了普通该方式的特殊性在于,除了普通EOI方式的功能方式的功能外,将明确指明本次复位的外,将明确指明本次复位的ISR位。位。自动结束方式自动结束方式AEOIAEOI 自动自动EOI方式是利用响应中断时最后一个响应脉方式是利用响应中断时最后一个响应脉冲的后沿执行一次普通冲的后沿执行一次普通EOI,而不需要,而不需要CPU发送发送EOI指令指令。3、循环优先级的中断结束方法 在循环优先级方式中,与中断结束方式联合,有在循环优先级方式中,与中断结束方式联合,有三种循环结束,结束时并确定下面的优先权排队。三种循环结束,结束时并确定下面的优先权排队。普通普通EOI循环方式循环方式特殊特殊EOI循环方式循环方式自动自动EOI循环方式循环方式第47页/共69页第48页/共69页4、中断源屏蔽方式普通屏蔽方式普通屏蔽方式 中断屏蔽寄存器中断屏蔽寄存器IMR的的8个位与中断请求个位与中断请求IR0IR7一一对应。对一一对应。对IMR编程,指定某些位为编程,指定某些位为1,则屏,则屏蔽掉相应的中断请求。蔽掉相应的中断请求。特殊屏蔽方式特殊屏蔽方式提供了允许较低优先级的中断能够得到响应的特殊手提供了允许较低优先级的中断能够得到响应的特殊手段。段。原理原理:假定当前正在处理:假定当前正在处理IR6,先,先进入特殊屏蔽方式,进入特殊屏蔽方式,然后设置然后设置IM6=1。这时,除。这时,除IR6外的所有中断请求均能外的所有中断请求均能得到响应。得到响应。特殊屏蔽方式中只能用特殊屏蔽方式中只能用SEOI命令结束中断。命令结束中断。第49页/共69页5、中断请求引入方式电平触发方式电平触发方式 8259A依靠依靠IR引脚上的有效高电平信号来触发,引脚上的有效高电平信号来触发,而与有效电平出现的方式和时间无关。而与有效电平出现的方式和时间无关。边沿触发方式边沿触发方式利用利用利用利用IRIRIRIR输入信号由低电平跳向高电平时触发。当输入信号由低电平跳向高电平时触发。当输入信号由低电平跳向高电平时触发。当输入信号由低电平跳向高电平时触发。当IRIRIRIR产产产产生上升沿后,应保持高电平直到中断被响应为止。生上升沿后,应保持高电平直到中断被响应为止。生上升沿后,应保持高电平直到中断被响应为止。生上升沿后,应保持高电平直到中断被响应为止。查询方式查询方式允许允许8259A不工作于不工作于中断方式,而是以查询方式工作。中断方式,而是以查询方式工作。因为因为CPUCPU中的中的IF=0,CPUIF=0,CPU要使用软件查询来确定中断源要使用软件查询来确定中断源,才能才能实现对外设的中断服务。因此即有中断的特点,又有查询实现对外设的中断服务。因此即有中断的特点,又有查询的特点。的特点。第50页/共69页6、连接系统总线方式缓冲方式缓冲方式 多片级连时,多片级连时,多片级连时,多片级连时,8259A8259A通过通过通过通过82868286与系统总线相连。与系统总线相连。与系统总线相连。与系统总线相连。非缓冲方式非缓冲方式 单片或少量级连时,一般将它直接与系统总线连接。单片或少量级连时,一般将它直接与系统总线连接。单片或少量级连时,一般将它直接与系统总线连接。单片或少量级连时,一般将它直接与系统总线连接。第51页/共69页7.5.4 8259A7.5.4 8259A的编的编程程v初始化命令字ICW,操作命令字OCW;v系统复位后,应初始化编程,按次序只写一次;设定触发方式、缓冲方式、中断类型号基值、优先级、结束方式v初始化后,在任何位置可操作编程,没有严格的顺序,允许重置,以动态改变8259A的操作与控制。第52页/共69页8259A初始化流程图写ICW1写ICW2级连?写ICW3需ICW4?写ICW4NNYYA0=0A0=1A0=1A0=1芯片控制类型号基值级连控制方式控制1、初始化编程、初始化编程第53页/共69页ICW10:不需要ICW41:需要ICW40:级连使用1:单片使用80X86不用A7 A6 A5 1 LTIM ADI SNGL IC4 D7 D6 D5 D4 D3 D2 D1 D00A0ICW180X86不用0:边沿触发边沿触发1:电平触发电平触发 ICW2T7 T6 T5 T4 T3 X X XD7 D6 D5 D4 D3 D2 D1 D01A0ICW2中断类型码高中断类型码高5 5位位自动填入第54页/共69页S7 S6 S5 S4 S3 S2/ID2S1/ID1S0/ID0D7 D6 D5 D4 D3 D2 D1 D01A0主8259A的级联标志1:相应的IR上有从8259A0:相应的IR上无从8259AID2ID0:从8259A的IR识别码ICW3ICW3非缓冲方式0缓冲方式从片10缓冲方式主片11 0 0 0 SFNM BUF M/S AEOI PMD7 D6 D5 D4 D3 D2 D1 D01A00:一般的全嵌套方式1:特殊的全嵌套方式0:808085方式1:80X860:非自动EOI1:自动EOIICW4ICW4 ICW4 ICW3第55页/共69页2、操作命令编程操作命令编程OCW1OCW1M7 M6 M5 M4 M3 M2 M1 M0 D7 D6 D5 D4 D3 D2 D1 D01A00:清中断屏蔽位1:置中断屏蔽位 OCW2R SL EOI 0 0 L2 L1 L0 D7 D6 D5 D4 D3 D2 D1 D00A0000111对应IRi的编码无操作010设置特殊循环,由L2L0设定最低优先级011特殊EOI循环,由L2L0指定结束IRi并置最低111取消自动循环(固定优先权)000设置自动循环001普通EOI循环101特殊EOI结束,由L2L0指定结束IRi110普通EOI结束100R=1:循环优先权:循环优先权R=0:固定优先权:固定优先权SL=1:由:由L2L1L0指定指定IR位位SL=0:L2L1L0无效无效EOI=1:中断结束:中断结束OCW2第56页/共69页OCW3 D7 D6 D5 D4 D3 D2 D1 D00A0 ESMM SMM 0 1 P RR RIS10清除特殊屏蔽方式01设定特殊屏蔽方式无意义10100:非查询方式1:查询方式10随后读IRR01随后读ISR无意义1010 OCW3 8259A的操作编程并没有固定顺序,各命令字之间用地址信号A0及特征位加以区分。第57页/共69页说说 明明 1)查询方式 OCW3OCW3中中D2D2位位P=1P=1,关闭中断,即可通过查询,关闭中断,即可通过查询方式响应外设的服务请求:从数据总线上读取一方式响应外设的服务请求:从数据总线上读取一个字节,内容为:个字节,内容为:其中其中I=1I=1表示该表示该8259A8259A芯片有外设服务请求,芯片有外设服务请求,W2W2W0W0表明了请求服务的最高优先权编码。表明了请求服务的最高优先权编码。I=0I=0则表示无请求。则表示无请求。II WW2 2WW11WW0 0第58页/共69页2)读8259A8259A 读读IMRIMR:地址信号:地址信号A0A0为为1 1时读时读8259A8259A,可取得中,可取得中断屏蔽寄存器断屏蔽寄存器IMRIMR的状态。的状态。读读IRRIRR:地址信号:地址信号A0A0为为0 0,且当,且当OCW3OCW3的的D1D1位位RRRR、D0D0位位RISRIS被置为被置为1010时,可在下一个读脉冲期间读时,可在下一个读脉冲期间读得中断请求寄存器得中断请求寄存器IRRIRR的状态。的状态。读读ISRISR:地址信号:地址信号A0A0为为0 0,且当,且当OCW3OCW3的的RRRR、RISRIS位被置为位被置为1111时,可在下一个读脉冲期间读得中断时,可在下一个读脉冲期间读得中断服务寄存器服务寄存器ISRISR的状态。的状态。第59页/共69页3.8259A3.8259A应用举例应用举例例1:8086最小模式与8259A接口如下,外设中断请求分别从IR2、IR4、IR7引入,中断类型号从0C0H0C7H,采用上升沿触发,写出8259A初始化程序。端口地址:10000100B84H10000110B86H D0D7RDWRA1A7A6A5A0M/IOA4A3A2INTRINTAD0D7RDWRA0IR2IR4IR7CSINTINTAGG2AG2BC Y1BA11第60页/共69页CLI;关中断关中断MOV AL,13H;ICW1:00010011B边沿触发,单片,需要边沿触发,单片,需要ICW4OUT84H,ALMOV AL,0C0H;ICW2:中断类型码的:中断类型码的D7D3位为位为11000OUT86H,ALMOV AL,01H;ICW4:00000001B全嵌套全嵌套,非缓冲非缓冲,非自动非自动EOI,80X86OUT86H,ALMOV AL,6BH;OCW1:01101011B屏蔽屏蔽IR0.1.3.5.6OUT86H,ALSTI;开中断开中断若要读IRR的内容MOVAL,0AH;OCW3:00001010BOUT84H,ALNOPINAL,84H第61页/共69页若要读ISR的内容MOVAL,0BH;OCW3:00001011BOUT84H,ALNOPINAL,84H若要读IMR的内容,可直接从高地址读入INAL,86H若中断是关闭的,可采用查询方式,看是否有中断NEXT:MOVAL,0CH;OCW3:00001100BOUT84H,ALNOPINAL,84HTESTAL,80HJZNEXT第62页/共69页例2:某8086系 统 中 有 两 片8259A,从 片 接 主 片 的IR4,主片 I R 2、I R 5有 外 部 中 断 引 入,类 型 号 分 别 为6 2 H、6 5 H;从 片I R 0、I R 3有 外 部 中 断 引 入,类 型 号 分 别 为4 0 H、4 3 H。设 主 片 的 一 个 端 口 地 址 为8 2 H,从 片 的 一 个 端 口 地 址 为84H,分别进行初始化编程。分析端口地址:主片1000001082H1000000080H从片1000010084H1000011086H类型号基值:主片60H从片40H第63页/共69页主片初始化程序MOV AL,11H;00010001B 边沿触发边沿触发 级连级连OUT 80H,AL;MOV AL,60H;类型号基值类型号基值OUT 82H,AL;MOV AL,00010000B;OUT 82H,AL;MOV AL,11H;00010001B 特殊嵌套特殊嵌套 非缓冲非缓冲 非自动非自动 80X8680X86OUT 82H,AL;MOV AL,11001011B;OUT 82H,AL;第64页/共69页从片初始化程序MOV AL,11H;00010001B 边沿触发边沿触发 级连级连OUT 84H,AL;MOV AL,40H;类型号基值类型号基值OUT 86H,AL;MOV AL,00000100B;OUT 86H,AL;MOV AL,11H;00000001B 完全完全嵌套嵌套 非缓冲非缓冲 非自动非自动 80X8680X86OUT 86H,AL;MOV AL,11110110B;OUT 86H,AL;第65页/共69页中断服务程序主片:INT2 PROC MOV AL,00100000BOUT 80H,AL;中断结束STI IRETINT2 ENDP从片:INT0