【教学课件】第6章输入输出及中断技术.ppt
第第6章章 输入输出及中断技术输入输出及中断技术1主要内容主要内容:I/O端口及其编址方式端口及其编址方式简单接口芯片及其应用简单接口芯片及其应用基本输入输出方法基本输入输出方法中断的基本概念及工作过程中断的基本概念及工作过程 中断控制器中断控制器825926.1 输入输出接口输入输出接口主要内容:主要内容:lI/O接口与接口与I/O端口的概念端口的概念lI/O端口的编址方式端口的编址方式l端口地址译码端口地址译码l数据传送方式数据传送方式3一、一、I/O接口与端口接口与端口I/O接口:接口:l将外设连接到总线上的一组逻辑电路的将外设连接到总线上的一组逻辑电路的总称总称l实现外设与主机之间的实现外设与主机之间的信息交换信息交换I/O端口:端口:l接口中的寄存器接口中的寄存器4I/O接口要解决的问题接口要解决的问题l速度匹配速度匹配(Buffer)l信号的驱动能力信号的驱动能力(电平转换器、驱动器电平转换器、驱动器)l信号形式和电平的匹配信号形式和电平的匹配(A/D、D/A)l信息格式信息格式(字节流、块、数据包、帧字节流、块、数据包、帧)l时序匹配时序匹配(定时关系定时关系)l总线隔离总线隔离(三态门三态门)5接口的功能接口的功能l数据的缓冲与暂存数据的缓冲与暂存l信号电平与类型的转换信号电平与类型的转换l增加信号的驱动能力增加信号的驱动能力l对外设进行监测、控制与管理,中断处理对外设进行监测、控制与管理,中断处理6二、二、I/O端口的编址方式端口的编址方式数据端口数据端口状态端口状态端口控制端口控制端口端端 口口7I/O端口端口CPU数据数据状态状态控制控制外设外设8I/O端口的编址方式端口的编址方式统一编址统一编址独立编址独立编址9端口与内存的统一编址端口与内存的统一编址特点:特点:l指令及控制信号指令及控制信号统一统一l内存地址资源减内存地址资源减少少内存内存地址地址960KBI/O地址地址64KB00000HF0000HFFFFFH10端口的独立编址端口的独立编址特点:特点:l内存地址资源充内存地址资源充分利用分利用l能够应用于端口能够应用于端口的指令较少的指令较少内存内存地址地址I/O地址地址00000HFFFFFHFFFFH0000H11端口的独立编址端口的独立编址8 80 08 88 8总总线线A19-A0A15-A0MEMR、MEMWIOR、IOW、AEN存储器存储器输入输入/输出输出128088/8086的的I/O端口编址端口编址l采用采用I/O独立编址方式独立编址方式(但地址线与存储器共用但地址线与存储器共用)l地址线上的地址信号用地址线上的地址信号用IO/M来区分来区分lI/O操作只使用操作只使用20根地址线中的根地址线中的16根:根:A15A0l可寻址的可寻址的I/O端口数为端口数为64K(65536)个个lI/O地址范围为地址范围为0FFFFHlIBM PC只使用了只使用了1024个个I/O地址地址(03FFH)13三、三、I/O地址的译码地址的译码目的:目的:l确定端口的地址确定端口的地址参加译码的信号:参加译码的信号:lIOR,IOW,A15 A0lOUT指令将使总线的指令将使总线的IOW信号有效信号有效lIN指令将使总线的指令将使总线的IOR信号有效信号有效14I/O地址的译码地址的译码l当接口只有一个端口时,当接口只有一个端口时,16位地址线位地址线一一般般应应全部参与译码,译码输出直接选择全部参与译码,译码输出直接选择该端口;当接口具有多个端口时,则该端口;当接口具有多个端口时,则16位地址线的高位位地址线的高位参与译码(决定接口的参与译码(决定接口的基地址),而低位则用于确定要访问哪基地址),而低位则用于确定要访问哪一个端口一个端口15I/O地址的译码地址的译码l某外设接口有某外设接口有4个端口,地址为个端口,地址为2F0H2F3H,则其基地址为,则其基地址为2F0H,由,由A15A2译码得到,而译码得到,而A1、A0用来确定用来确定4个端口中个端口中的某一个连接的某一个连接16四、四、I/O数据的传送方式数据的传送方式并行并行 一个数据单位同时传送一个数据单位同时传送串行串行数据按位传送数据按位传送176.2 简单接口电路简单接口电路掌握:掌握:l接口电路的分类及特点接口电路的分类及特点l两类简单接口芯片的应用两类简单接口芯片的应用18一、接口的基本构成一、接口的基本构成数据线数据线控制线控制线状态线状态线DBCBAB数据输入寄存器数据输入寄存器(or 三态门三态门)数据输出寄存器数据输出寄存器(锁存器锁存器)状态寄存器状态寄存器(or 三态门三态门)命令寄存器命令寄存器译码译码电路电路控制控制逻辑逻辑19接口的基本构成接口的基本构成l数据输入数据输入/输出寄存器输出寄存器 暂存输入暂存输入/输输出的数据出的数据l命令寄存器命令寄存器 存放控制命令,用来设存放控制命令,用来设定接口功能、工作参数和工作方式定接口功能、工作参数和工作方式l状态寄存器状态寄存器 保存外设当前状态,以保存外设当前状态,以供供CPU读取读取20接口的基本构成接口的基本构成CPUI/O接口接口外设外设数数 据据端口地址端口地址控控 制制数数 据据状状 态态控控 制制21二、接口的类型及特点二、接口的类型及特点输入接口输入接口输出接口输出接口接接 口口22接口特点接口特点输入接口:输入接口:l要求对数据具有控制能力(常用三态门实要求对数据具有控制能力(常用三态门实现)现)输出接口:输出接口:l要求对数据具有锁存能力(常用锁存器实要求对数据具有锁存能力(常用锁存器实现)现)23三、三态门接口三、三态门接口高电平、低电平、高电平、低电平、高阻态高阻态24三态门接口三态门接口三态门的工作波形:三态门的工作波形:A0A15IOR译码输出译码输出D0D7开关状态开关状态地址有效地址有效2574LS244l含含8个三态门的集成电路芯片个三态门的集成电路芯片l在外设具有数据保持能力时用来输入接在外设具有数据保持能力时用来输入接口口l74LS244应用例应用例 教材教材p252P251图图26三态门接口应用例三态门接口应用例l利用三态门作为输入接口(接口地址利用三态门作为输入接口(接口地址380H)接接到地址范围为到地址范围为70000H71FFFH的的EEPROM芯芯片的片的READY/BUSY端,当三态门输出高电平时,端,当三态门输出高电平时,可向可向98C64A写入一个字节数据,输出低电平时写入一个字节数据,输出低电平时则不能写入。画芯片与系统的连接图则不能写入。画芯片与系统的连接图27三态门接口应用例三态门接口应用例D0D7A0A12WEOEREADY/BUSYA0A12MEMWMEMR高位地址信号D0D7D0380HCE译码译码IOR28四、锁存器接口四、锁存器接口l通常由通常由D触发器构成触发器构成l特点:特点:具有对数据的锁存能力具有对数据的锁存能力 不具备对数据的控制能力不具备对数据的控制能力29常用锁存器芯片常用锁存器芯片l74LS273 不具备数据的控制能力不具备数据的控制能力l74LS373 具有对数据的控制能力具有对数据的控制能力P254图图30锁存器芯片锁存器芯片74LS374D0D7Q0Q7.OECP译码器译码器D0D7Q0Q7.OECP译码器译码器做输出口做输出口:做输入口做输入口:外外设设自外设自外设31I/O接口综合应用例接口综合应用例l根据开关状态在根据开关状态在7段数码管上显示数字或段数码管上显示数字或符号符号l设输出接口的地址为设输出接口的地址为F0Hl设输入接口地址为设输入接口地址为F1Hl当开关的状态分别为当开关的状态分别为00001111时,在时,在7段数码管上对应显示段数码管上对应显示0F32符号形状7段码.gfedcba符号形状7段码.gfedcba000111111801111111100000110901100111201011011A01110111301001111B01111100401100110C00111001501101101D01011110601111101E01111001700000111F0111000133O1 I1O2 I2O3 I3O4 I4E1 K0K3+5VGG2AG2BCBA1174LS244D0 Q0|Q1D7 Q2 Q3 Q4CP Q5 Q6 Q7 abcdefgDP7406反相器反相器74LS273Rx81174LS138D0D7IOW#IOR#Y0Y1F0H=0000 0000 1111 0000F1H=0000 0000 1111 0001&1A7A4A15A8A3A2A1A0D0D1D2D3译码器译码器34I/O接口综合应用例接口综合应用例程序段程序段Seg7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H,77H,7CH,39H,5EH,79H,71H LEA BX,Seg7 MOV AH,0 GO:MOV DX,0F1H INAL,DX AND AL,0FH MOV SI,AX MOV AL,BX+SI MOV DX,0F0H OUT DX,AL JMP GO356.3 基本输入基本输入/输出方法输出方法无条件传送无条件传送查询式传送查询式传送中断方式传送中断方式传送直接存储器存取直接存储器存取(DMA)36一、无条件传送一、无条件传送l适用于总是处于准备好状态的外设适用于总是处于准备好状态的外设l优点:软件及接口硬件简单优点:软件及接口硬件简单l缺点:只适用于简单外设,适应范围较缺点:只适用于简单外设,适应范围较 窄窄37无条件传送例无条件传送例l读取开关的状态读取开关的状态l当开关闭合时,输出编码使发光二极管当开关闭合时,输出编码使发光二极管亮亮38DCPQD0D1输出口地输出口地址址38F3H输入口地输入口地址址38F0H+5V139二、查询工作方式二、查询工作方式适用场合:适用场合:l外设并不总是准备好外设并不总是准备好l对传送速率和效率要求不高对传送速率和效率要求不高对外设及接口的要求:对外设及接口的要求:l外设应提供设备状态信息外设应提供设备状态信息l接口应具备状态端口接口应具备状态端口40查询工作方式查询工作方式l优点:软件比较简单优点:软件比较简单l缺点:缺点:CPU效率低,数据传送的实时性效率低,数据传送的实时性 差,速度较慢差,速度较慢单一外设时单一外设时的工作流程的工作流程41超时超时?READY?READY?与外设进与外设进行数据交换行数据交换超时错超时错读入并测试外设状态读入并测试外设状态YNYN传送完传送完?防止死循环防止死循环复位计时器复位计时器NY42查询工作方式例查询工作方式例外设状态端口地址为外设状态端口地址为03FBH,第,第5位位(bit5)为状态为状态标志(标志(=1忙,忙,=0准备好)准备好)外设数据端口地址为外设数据端口地址为03F8H,写入数据会使状态,写入数据会使状态标志置标志置1;外设把数据读走后又把它置;外设把数据读走后又把它置0。试画出其电路图,并将试画出其电路图,并将DATA下下100B数输出数输出43D5D7-D0A9|A31&A15|A101IOWD7-D03F8H外外设设D7D6D5D4D3D2D1D0BUSYCPQ7Q6Q5Q4Q3Q2Q1Q0状态端口状态端口GG2AG2BCBAA2A1A074LS138Y01IORY3OE74LS3743FBH程序段?程序段?44三、中断控制方式三、中断控制方式特点:特点:l外设在需要时向外设在需要时向CPU提出请求,提出请求,CPU再再去为它服务。服务结束后或在外设不需去为它服务。服务结束后或在外设不需要时,要时,CPU可执行自己的程序可执行自己的程序l优点:优点:CPU效率高,实时性好,速度快效率高,实时性好,速度快l缺点:程序编制较为复杂缺点:程序编制较为复杂45以上三种以上三种I/O方式的共性方式的共性均需均需CPU作为中介:作为中介:l软件:软件:外设与内存之间的数据传送是通过外设与内存之间的数据传送是通过CPU执行执行 程序来完成的(程序来完成的(PIO方式)方式)l硬件:硬件:I/O接口和存储器的读写控制信号、地址信号接口和存储器的读写控制信号、地址信号 都是由都是由CPU发出的发出的l 缺点:程序的执行速度限定了传送的最大速度(约缺点:程序的执行速度限定了传送的最大速度(约 为几十为几十KB/s)46四、四、DMA控制方式控制方式特点:特点:l外设直接与存储器进行数据交换外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者不再担当数据传输的中介者l总线由总线由DMA控制器(控制器(DMAC)进行控制)进行控制(CPU要放弃总线控制权),内存要放弃总线控制权),内存/外设外设的地址和读写控制信号均由的地址和读写控制信号均由DMAC提供提供47DMA控制方式控制方式DMAC外设外设接口接口CPUQRDMEMDACKHOLDHLDABUS控制信号控制信号48DMA控制方式的工作过程控制方式的工作过程l外设向外设向DMA控制器发出控制器发出“DMA传送请求传送请求”信号信号DRQlDMA控制器收到请求后,向控制器收到请求后,向CPU发出发出“总线总线请求请求”信号信号HOLDlCPU在完成当前总线周期后会立即发出在完成当前总线周期后会立即发出HLDA 信号,对信号,对HOLD信号进行响应信号进行响应lDMA控制器收到控制器收到HLDA信号后,就开始控制总信号后,就开始控制总线,并向外设发出线,并向外设发出DMA响应信号响应信号DACK49DMA控制方式的工作过程控制方式的工作过程lDMA控制器送出地址信号和相应的控制信号,控制器送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据实现外设与内存或内存与内存之间的直接数据传送传送例:从外设向内存传送一个字节例:从外设向内存传送一个字节 DMAC向向I/O接口发出读信号,同时往地址总接口发出读信号,同时往地址总线上发出存储器的地址和存储器写信号和线上发出存储器的地址和存储器写信号和AEN信号。信号。50DMA控制方式的工作过程控制方式的工作过程lDMA控制器自动修改地址和字节计数器,控制器自动修改地址和字节计数器,并判断是否需要重复传送操作。当规定的数并判断是否需要重复传送操作。当规定的数据传送完后,据传送完后,DMA控制器就撤销发往控制器就撤销发往CPU的的HOLD信号。信号。CPU检测到检测到HOLD失效后,失效后,紧接着撤销紧接着撤销HLDA信号,并在下一时钟周期信号,并在下一时钟周期重新开始控制总线。重新开始控制总线。51DMA的三种传送方式的三种传送方式l连续传送(块传送):连续传送(块传送):DMAC在申请到总线后,将一块数据传送完后在申请到总线后,将一块数据传送完后才释放总线,而不管中间才释放总线,而不管中间DREQ是否有效。是否有效。l单次传送(每次传送一个字节):单次传送(每次传送一个字节):每个每个DMA周期只传送一个字节就立即释放总线。周期只传送一个字节就立即释放总线。l按需传送(猝发传送):按需传送(猝发传送):只要只要I/O接口的数据缓冲可用,就可进行传送。接口的数据缓冲可用,就可进行传送。此时此时I/O接口需要有一定大小的接口需要有一定大小的FIFO缓冲区。缓冲区。52数据块传送:数据块传送:YN允许允许DMADMA请求?请求?DMAC请求总线请求总线CPU响应响应,DMAC获总线控制权获总线控制权DMA传送一个字节传送一个字节块结束?块结束?地址增量,计数器减量地址增量,计数器减量DMAC释放总线释放总线YN53每次传送一个字节:每次传送一个字节:NYN允许允许DMADMAC请求总线请求总线CPU响应响应,DMAC获总线控制权获总线控制权DMA传送一个数据传送一个数据块结束?块结束?释放总线至少一个总线周期释放总线至少一个总线周期地址增量,计数器减量地址增量,计数器减量DMAC释放总线释放总线Y测试测试I/O的的DREQ DMA请求?请求?54按需传送:按需传送:NYCPU响应响应,DMAC获总线控制权获总线控制权DMA传送一个字节传送一个字节块结束?块结束?测试测试I/O的的DREQ 有效?有效?地址增量,计数器减量地址增量,计数器减量释放总线,请求中断释放总线,请求中断无效,释放总线无效,释放总线允许允许DMADMA请求?请求?DMAC请求总线请求总线YNYN55DMA控制方式控制方式优点:优点:l数据传输数据传输由由DMA硬件来控制,数据硬件来控制,数据直接直接在内存和外设之间交换,可以达到很高在内存和外设之间交换,可以达到很高的传输速率(可达几的传输速率(可达几MB/s)566.4 中断技术中断技术掌握:掌握:l中断的基本概念中断的基本概念l中断响应的一般过程中断响应的一般过程l中断向量表及其初始化中断向量表及其初始化l8088/8086中断系统中断系统57一、中断的基本概念一、中断的基本概念中断:中断:lCPU执行程序时,由于发生了某种随机的事件执行程序时,由于发生了某种随机的事件(外部或内部外部或内部),引起,引起CPU暂时中断正在运行的暂时中断正在运行的程序,转去执行一段特殊的服务程序程序,转去执行一段特殊的服务程序(称为中断称为中断服务程序或中断处理程序服务程序或中断处理程序),以处理该事件,该,以处理该事件,该事件处理完后又返回被中断的程序继续执行,事件处理完后又返回被中断的程序继续执行,这一过程称为中断。这一过程称为中断。58中断源中断源l引起引起CPU中断的事件,发出中断请求的中断的事件,发出中断请求的来源来源内部中断内部中断外部中断外部中断异常中断异常中断软件中断软件中断可屏蔽中断可屏蔽中断非屏蔽中断非屏蔽中断异常事件引起异常事件引起中断指令引起中断指令引起INTR中断中断NMI中断中断59引入中断的原因引入中断的原因l提高数据传输率提高数据传输率l避免了避免了CPU不断检测外设状态的过程,不断检测外设状态的过程,提高了提高了CPU的利用率的利用率l实现对特殊事件的实时响应实现对特殊事件的实时响应60二、外部中断响应的一般过程二、外部中断响应的一般过程l中断请求中断请求l中断判优及中断源识别中断判优及中断源识别l中断响应中断响应l中断处理(服务)中断处理(服务)l中断返回中断返回61中断请求中断请求l中断请求信号应保持到中断被处理为止中断请求信号应保持到中断被处理为止lCPU响应中断后,中断请求信号应及时响应中断后,中断请求信号应及时撤销撤销NMIINTR62中断源识别中断源识别l软件查询法软件查询法l中断矢量法。由中断源提供中断类型号,中断矢量法。由中断源提供中断类型号,CPU根据类型确定中断源根据类型确定中断源63中断判优中断判优要解决的问题要解决的问题l对同时产生的中断:对同时产生的中断:首先处理优先级别较高的中断;若优先级别相首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则同,则按先来先服务的原则l对非同时产生的中断:对非同时产生的中断:低优先级的中断程序允许被高优先级的中断源低优先级的中断程序允许被高优先级的中断源所中断所中断中断嵌套中断嵌套64中断判优中断判优控制方法控制方法 软件判优软件判优 顺序查询中断请求,先查询的先服务顺序查询中断请求,先查询的先服务 (即先查询的优先级别高)(即先查询的优先级别高)硬件判优硬件判优 链式判优、并行判优(中断向量法)链式判优、并行判优(中断向量法)65菊花链逻辑电路菊花链逻辑电路INTAinIREQINTR&=1 1INTAoutDB三态门三态门中中断断向向量量码码E外设接口外设接口中断确认中断确认菊花链菊花链逻辑电路逻辑电路66中断响应中断响应l向中断源发出向中断源发出INTA中断响应信号;中断响应信号;l保护断点。包括保护断点。包括FLAGS、CS和和IPl获得中断服务程序入口地址获得中断服务程序入口地址固定入口法固定入口法中断向量法中断向量法67中断处理中断处理中断服务子程序的特点:中断服务子程序的特点:l为为“远过程远过程”l用用IRET指令返回指令返回68中断服务子程序完成的工作中断服务子程序完成的工作l保护现场保护现场l开中断(开中断(STI)l中断处理中断处理l关中断(关中断(CLI)l恢复现场恢复现场l中断返回中断返回69中断返回中断返回l执行执行IRET指令,使指令,使IP、CS和和FLAGS从从堆栈弹出堆栈弹出70三、三、8088/8086中断系统中断系统内部中断内部中断外部中断外部中断除法错中断除法错中断溢出中断溢出中断单步中断单步中断软件中断软件中断非屏蔽中断非屏蔽中断可屏蔽中断可屏蔽中断256个中个中断源断源71NMIINTR中断逻辑中断逻辑软件中断指令软件中断指令溢出中断溢出中断除法错除法错单步中断单步中断非屏蔽中断请求非屏蔽中断请求中断控中断控制器制器8259APIC8086/8088CPU8086/8088CPU内部逻辑内部逻辑断点中断断点中断可可屏屏蔽蔽中中断断请请求求n430128086/8088中断源类型:中断源类型:72中断向量表中断向量表 00000H003FFH1KB73中断向量表中断向量表l存放各类中断的中断服务程序的入口地址存放各类中断的中断服务程序的入口地址l每个入口占用每个入口占用4 B,低字为段内偏移,高字,低字为段内偏移,高字为段基址为段基址l表的地址位于内存的表的地址位于内存的00000H003FFH,大小为大小为1KB,共,共256个入口个入口74中断向量表的初始化中断向量表的初始化l将用户自定义的中断服务程序入口地址将用户自定义的中断服务程序入口地址放入向量表放入向量表l例:将中断向量码为例:将中断向量码为48H的服务程序入口的服务程序入口地址放入向量表地址放入向量表p29075中断向量表的初始化中断向量表的初始化lMOV AX,0000HlMOV DS,AXlMOV SI,0120HlMOV BX,OFFSET INT1lMOV SI,BXlMOV BX,SEG INT1lMOV SI+2,BX768088内部中断响应过程内部中断响应过程特点:特点:l无INTA周期周期l中断类型码固定或由指令给出中断类型码固定或由指令给出778088内部中断响应过程内部中断响应过程响应过程步骤:响应过程步骤:PUSH FLAG LET TEMP=TF CLEAR IF,TF PUSH CS PUSH IP (I P)=(TYPE*4+1):(TYPE*4+0)(CS)=(TYPE*4+3):(TYPE*4+2)788088外部中断响应过程外部中断响应过程可屏蔽中断:可屏蔽中断:第第1个个INTA,PIC进行优先级排队判优处理进行优先级排队判优处理 第第1个个INTA,PIC把中断类型码放到把中断类型码放到DB上,由上,由CPU读入读入 PUSH FLAG LET TEMP=TF CLEAR IF,TF PUSH CS PUSH IP (I P)=(TYPE*4+1):(TYPE*4+0)(CS)=(TYPE*4+3):(TYPE*4+2)lNMI中断响应过程与内部中断类似中断响应过程与内部中断类似时序:时序:p273798088/8086中断系统的优先级中断系统的优先级l优先级从高到低的顺序为:优先级从高到低的顺序为:内部中断内部中断NMI中断中断INTR中断中断单步中断单步中断中断响应和处中断响应和处理流程理流程p27480中断处理过程中断处理过程l当当NMI、INTR、单步和除法错中断同时、单步和除法错中断同时产生时,响应顺序为:产生时,响应顺序为:响应除法错中断响应除法错中断 响应响应NMI中断中断 响应响应INTR中断中断 响应单步中断响应单步中断级别高的中断可级别高的中断可以中断级别低的以中断级别低的中断服务程序中断服务程序816.5 中断控制器中断控制器8259了解:了解:l8259的主要引线及结构的主要引线及结构掌握:掌握:l8259的各种工作方式的各种工作方式l8259的初始化编程的初始化编程l中断程序设计的一般过程和方法中断程序设计的一般过程和方法82