1、1,第6章 输入输出及中断技术,2,主要内容,输入输出系统的基本概念 I/O接口和端口 端口的编址方式 简单接口芯片及其应用 基本输入输出方法 中断的基本概念及工作过程 *中断控制器8259,3,6.1 输入输出系统,了解和掌握:,I/O系统的概念和特点 接口的基本功能 端口的概念 端口的编址方式 I/O地址译码,4,一、输入输出系统的组成及特点,在计算机系统中,通常把处理器和主存储器之外的部分统称为输入输出系统。 组成: I/O设备, I/O接口, I/O软件 特点: 复杂性:I/O设备品种繁多、功能各异,具有复杂性 实时性:I/O系统对不同设备的请求都能给予及时处理 异步性:外部设备与CP
2、U时序不一致,异步进行工作 与设备无关性:不同外设可选择一种标准接口与CPU连接,5,二、I/O接口和端口,I/O接口: 将外设连接到系统总线上的一组逻辑电路的总称。 实现外设与主机之间的信息交换。 I/O端口: I/O接口内部的寄存器,6,1. I/O接口要解决的问题,CPU与外设的速度匹配(Buffer)问题 信号电平和驱动能力问题(电平转换器、驱动器) 信号形式的匹配问题(A/D、D/A) 信息格式问题 时序匹配问题 总线隔离问题(三态门),7,输入输出设备一般不能直接与CPU的系统总线相连接,必须 在CPU与外设之间设置专门的接口电路来解决上述问题。,CPU,接口电路,键盘,磁盘,CR
3、T,8,2.接口的功能,I/O地址译码与设备选择CPU与多个设备交换数据时,通常要有译码电路,使CPU在执行IN/OUT指令时,每次只能选中一个设备交换数据。,CPU,74LS138,接口芯片1,接口芯片2,接口芯片n,. . .,系统总线,9,命令、数据和状态的缓冲与暂存-解决速度匹配问题当快速CPU向慢速设备传送数据时,先把数据传到缓冲器或锁存器,等I/O设备做好接收数据准备后,再从缓冲器取走数据。当慢速I/O设备把数据传送到CPU时,也把数据存入缓冲器或锁存器,再向CPU发联络信号,通知CPU取走数据。实际常采用DMA方式或中断方式,解决速度不匹配。,10,信号电平与类型的转换CPU采用
4、TTL电平(0-5V),而外设需要的电平范围较宽,需作电平转换外部温度、压力、流量等模拟量经A/D转换器转换成数字量,才能由计算机处理,结果送显示器,打印机或存磁盘。由计算机输出的数字量经D/A转换器变成模拟量,推动电机等执行部件完成相应操作。,11,信息的输入输出通过I/O接口,CPU与外设之间可以进行数据交换,CPU将数据输出到外设或从外部设备将数据输入CPU增加信号的驱动能力CPU采用TTL电平(0-5V),可提供功率很小,外设需要的驱动功率大,需增加信号的驱动能力对外设进行监测、控制与管理,中断处理CPU可以通过I/O端口监测、控制和管理I/O设备的工作状态,外设还可以通过I/O接口向
5、CPU发出中断请求,12,3. I/O端口,数据端口:存放外设送往CPU的数据和CPU要输出的数据,起数据缓冲作用。 状态端口:用来存储外设的状态,常用的状态 位:准备好,忙碌位, 错误位 控制端口:用来存放CPU向接口电路发出的各种命令和控制字,从而控制端口和设备进行各种操作。,I/O端 口,I/O接口内部的寄存器及其控制电路-I/O端口,13,I/O端口,CPU,数据,状态,控制,外设,I/O接口,DB,14,三、I/O端口的编址方式,8086/8088的寻址能力: 内存: 1MB(使用地址总线的A0-A19) 端口: 64KB(使用地址总线的A0-A15) 编址方式: 与内存单元统一编址
6、I/O端口独立编址,15,1.端口与内存的统一编址,特点: 将每一个端口看成一个存储单元,与存储器统一编址进行寻址。 指令及控制信号统一可以用访问内存的方法(指令)访问I/O端口;I/O端口可与存储器共用控制信号。 内存地址资源减少外设占用了一部分内存地址空间,内存 地址 960KB,I/O地址 64KB,00000H,F0000H,FFFFFH,地址空间,16,2. 端口的独立编址,特点: 内存地址资源充分利用I/O端口的地址空间和内存地址空间完全独立 I/O端口与内存使用不同的控制信号 能够应用于端口的指令较少指令系统专门设计了用于 访问外设的I/O指令IN/OUT,内存 地址,I/O 地
7、址,00000H,FFFFFH,FFFFH,0000H,8086/8088CPU采用I/O端口独立编址方式,17,3.端口的寻址,8088/8086可寻址的I/O端口数: 64K 寻址I/O端口的信号: IOR、IOW A15 A0,18,4.8088/8086的I/O端口编址,采用I/O端口独立编址方式(但地址线与存储器共用) 地址线上的地址信号用IO/M来区分 I/O操作只使用20根地址线中的16根:A15A0 可寻址的I/O端口数为64K(65536)个 I/O地址范围为0FFFFH,19,四、I/O地址的译码,目的: 确定端口的地址 参加译码的信号: IOR,IOW,高位地址信号 OU
8、T指令将使总线的IOW信号有效 IN指令将使总线的IOR信号有效,20,1.I/O译码的地址信号,当接口只有一个端口时,16位地址线一般应全部参与译码,译码输出直接选择该端口(接口); 当接口具有多个端口时,则16位地址线的高位参与译码(决定接口的基地址),而低位则用于确定要访问哪一个端口。,21,2.I/O地址译码例,某外设接口有4个端口,地址为2F0H2F3H,由A11A2译码得到接口的基地址用于选择接口,而A1、A0用来区分接口中的4个端口。试画该接口与系统的连接图。,22,I/O地址译码例,地址范围: 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0
9、0 1 1,任意状态,A11,片内地址,图中不接入,23,I/O地址译码例,译码电路图:, 1,A11,A10,A8,A3,A2,A9,A7,A4,&,CE,A1,A0,接口芯片,24,6.2 简单接口电路,掌握:,接口电路的分类及特点; 两类简单接口芯片的应用。,25,一、接口的基本构成,数据线,控制线,状态线,DB,CB,AB,数据输入寄存器 (or 三态门),数据输出寄存器 (锁存器),状态寄存器 (or 三态门),命令寄存器,译码 电路,控制 逻辑,26,接口的基本构成,数据输入/输出寄存器 暂存输入/输出的数据 命令寄存器 存放CPU发出的控制命令 设定接口功能、工作参数和工作方式。
10、 状态寄存器 保存外设当前状态,以供CPU读取。,27,二、接口的类型及特点,按传输信息的方向分类: 输入接口 输出接口 按传输信息的类型分类: 数字接口 模拟接口 按传输信息的方式分类: 并行接口 串行接口,28,接口特点,输入接口: 要求对数据具有控制能力,只有外部数据准备好,CPU可以读取时,才将数据送上系统数据总线 常用三态门缓冲器实现 输出接口: 要求对数据具有锁存能力,CPU输出的数据通过总线送入接口锁存,由接口将数据一直保持到被外设取走常用锁存器实现,29,三、三态门接口,高电平、低电平、高阻态,30,1.三态门接口,三态门的工作波形:,A0A15,IOR,译码输出,D0D7,数
11、据,地址有效,31,2.三态门芯片74LS244,含8个三态门的集成电路芯片 该芯片本身不具备数据的保持或锁存能力,只具备数据的通断控制能力 在外设具有数据保持能力时用来做输入接口 74LS244应用例教材p238,P238图,32,3.三态门接口应用例,利用三态门作为输入接口(接口地址380H)接到地址范围为70000H-71FFFH的EEPROM芯片的READY/BUSY端,当三态门输出高电平时,可向98C64A写入一个字节数据,输出低电平时则不能写入。画芯片与系统的连接图,33,三态门接口应用例,D0D7,A0,A12,WE,OE,READY/BUSY,A0,A12,MEMW,MEMR,
12、高位地址信号,D0D7,D0,380H,CE,译码,IOR,34,四、锁存器接口,通常由D触发器构成; 特点: 具有对数据的锁存能力 不具备对数据的控制能力(通断控制),35,1.常用锁存器芯片,74LS2738D触发器,不具备数据的控制能力74LS373含三态的8D触发器,具有对数据的控制能力,P239图,36,2.锁存器芯片74LS374,D0D7,Q0,Q7,. . .,OE,CP,译码器,Q0Q7,D0,D7,. . .,OE,CP,译码器,做输出口:,做输入口:,外设,自外设,与74LS373一样具备数据控制能力,37,3.I/O接口综合应用例,根据开关状态在7段数码管上显示数字或符
13、号 设输出接口的地址为F0H 设输入接口地址为F1H 当开关的状态分别为00001111时,在7段数码管上对应显示0F,7段数码管图见教材p255,O1 I1 O2 I2 O3 I3 O4 I4 E1,K0K3,+5V,GG2AG2BCBA,1,74LS244,D0 Q0| Q1 D7 Q2Q3Q4 CP Q5 Q6Q7,a b c d e f g DP,7406,反相器,74LS273,Rx8,1,74LS138,D0D7,IOW,IOR,Y0,Y1,F0H = 1111 0000 F1H = 1111 0001,&,A6A4,A3,A2,A1,A0,D0,D1,D2,D3,译码器,A7,A
14、0,1,40,I/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: IN AL, 0F1HAND AL, 0FH MOV SI, AX MOV AL, BX+SIOUT 0F0H, ALJMP GO,41,6.3 基本输入/输出方法,无条件传送 查询式传送 中断方式传送 直接存储器存取(DMA)方式,分类,程序控制方式:CPU与外设交换数据通过程序来控制,42,一、无条件传送,要求外设总是处于准备好状态或某时刻的状
15、态固定 优点: 软件及接口硬件简单 缺点: 只适用于简单外设,适应范围较窄开关,发光二极管等简单外设,在某一时刻的状态总是固定的,也就是总是准备好的,输入时总是可以读到开关状态,输出时,发光二极管总是准备好接收数据。,43,无条件传送例,读取开关的状态; 当开关闭合时,输出编码使发光二极管亮,D,CP,Q,D0,D1,输出口地址38F3H,输入口地址38F0H,+5V,1,45,二、查询工作方式,仅当条件满足时才能进行数据传送; 每满足一次条件只能进行一次数据传送。 适用场合: 外设并不总是准备好 对传送速率和效率要求不高 工作条件: 外设应提供设备状态信息 接口应具备状态端口,46,查询工作
16、方式,优点:软硬件比较简单 缺点:CPU效率低,数据传送的实时性 差,速度较慢,因为CPU要不断的查询外设的状态,READY?,进行一次 数据交换,读入状态端口并测试外设状态,Y,N,传送完?,Y,结 束,N,开 始,每满足一次条件只能进行一次数据传送,超时?,READY?,与外设进 行数据交换,超时错,读入并测试外设状态,Y,N,Y,N,传送完?,防止死循环,复位计时器,N,Y,结 束,N,49,查询工作方式例,外设状态端口地址为03FBH,第5位(bit5)为状态标志(=1忙,=0准备好) 外设数据端口地址为03F8H,写入数据会使状态标志置1 ;外设把数据读走后又把它置0。 试画出其电路
17、图,并将DATA下100B数据输出。,D5,D7-D0,A9 | A3,1,&,A15 | A10,1,IOW,D7-D0,3F8H,外设,D7 D6 D5 D4 D3 D2 D1 D0,BUSY,CP,Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0,状态端口,GG2A G2BC B A,A2 A1 A0,74LS138,Y0,1,IOR,Y3,OE,74LS374,3FBH,LEA SI,DATAMOV CX,100 AGAIN : MOV DX,03FBH WAITT:IN AL,DXTEST AL,20HJNZ WAITTMOV DX,03F8HMOV AL,SIOUT DX,ALINC
18、 SILOOP AGAINHLT,读状态,进行一次传送,Bit5=1?,传送完否?,修改地址指针,初始化,Y,N,N,Y,结 束,52,三、中断控制方式,特点: 外设在需要时向CPU提出请求,CPU再去为它服务。服务结束后或在外设不需要时,CPU可执行自己的程序 优点: CPU效率高,实时性好,速度快。 缺点: 程序编制相对较为复杂 不适用速度较高的外设,53,以上三种I/O方式的共性,信息的传送均需通过CPU 软件: 外设与内存之间的数据传送是通过CPU执行程序来完成的(程序控制输入输出(PIO)方式); 硬件: I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的。缺点: 程序的执
19、行速度限定了传送的最大速度,54,四、DMA控制方式,特点: 外设直接与存储器进行数据交换 ,CPU不再担当数据传输的中介者; 总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。,55,1.DMA控制方式,DMAC 8237A,外设 接口,CPU,DRQ,MEM,DACK,HOLD,HLDA,BUS,控制信号,地址信号,56,2.DMA控制方式的工作过程,外设向DMA控制器发出“DMA传送请求”信号DRQ; DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD; CPU在完成当前总线周期后会立即发出HLDA信号,对HOLD
20、信号进行响应; DMA控制器收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号DACK,57,DMA控制方式的工作过程,例:从外设向内存传送若干字节数据 DMAC向I/O接口发出I/O端口地址及读信号; 向地址总线上发出存储器的地址; 发出存储器写信号; 传送数据并自动修改地址和字节计数器; 判断是否需要重复传送操作。,58,DMA控制方式的工作过程,当规定的数据传送完后,DMA控制器就撤销发往CPU的HOLD信号。CPU检测到HOLD失效后,紧接着撤销HLDA信号,并在下一时钟周期重新开始控制总线。,59,3.DMA工作方式,数据块传送方式: DMAC在申请到总线后,将一块数据传
21、送完后才释放总线,而不管中间DRQ是否有效。 周期窃取方式(每次传送一个字节或一个字): 每个DMA周期只传送一个字节或一个字就立即释放总线。 直接存取方式: DMA的数据传送请求直接发到主存储器,在得到响应后,整个工作过程在DMA控制器中由硬件完成。,周期窃取的DMA方式:,N,Y,N,允许DMA,DMAC请求总线,CPU响应, DMAC获总线控制权,DMA传送一个数据,块结束?,释放总线至少一个总线周期,地址增量,计数器减量,DMAC释放总线,Y,测试I/O的DREQ DMA请求?,61,4.DMA控制方式,优点: 数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传
22、输速率。,62,6.4 中断技术,掌握:,中断的基本概念 中断处理的一般过程 中断向量表及其初始化 8088/8086中断系统,63,一、中断的基本概念,中断: CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该随机事件,待该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。,64,中断源,引起CPU中断的事件,发出中断请求的来源。,内部中断 (软件中断),外部中断 (硬件中断),异常中断,软件中断,可屏蔽中断,非屏蔽中断,异常事件引起(溢出, 除法错),中断指令引起 (IN
23、T n),INTR中断,NMI中断,65,引入中断的原因,提高数据传输率; 避免了CPU不断检测外设状态的过程,提高了CPU的利用率; 实现对特殊事件的实时响应。,66,二、外部中断处理的一般过程,中断请求 中断源识别及中断判优 中断响应 中断处理(服务) 中断返回,67,中断请求,INTR中断请求信号应保持到中断被处理为止; CPU响应中断后,中断请求信号应及时撤销,以免造成多次响应。,NMI:边沿触发,CPU即时予以响应 INTR:电平触发,请求信号保持到CPU予以响应为止,68,中断源识别,软件查询法 中断矢量法 由中断源提供中断类型号,CPU根据类型确定中断源。,中断源识别及判优由硬件
24、系统完成,69,中断判优,优先级法则 低优先级的中断程序允许被高优先级的中断源所中断 排队法则,中断嵌套,70,中断判优,软件判优(需要相应电路支持)顺序查询中断请求,先查询的先服务 (即先查询的优先级别高,后查询的优先级依次降低) 硬件判优中断控制器判优、链式判优、并行判优(中断向量法),菊花链逻辑电路,INTAin,IREQ,INTR,&,1,INTAout,DB,三态门,中 断 向 量 码,E,外设接口,中断确认,菊花链 逻辑电路,72,中断响应,自动关中断IF=0; 向中断源发出INTA中断响应信号; 保护硬件现场和断点 将FLAGS、 CS、IP压入堆栈 获得中断服务程序入口地址,由
25、硬件系统自动完成,73,中断处理,执行中断服务子程序 中断服务子程序的特点: 为“远过程” 用IRET指令返回,74,中断服务子程序完成的工作,保护软件现场(参数) 开中断(STI) 中断处理 关中断(CLI) 恢复现场 中断返回,75,中断返回,执行IRET指令,使IP、CS和FLAGS从堆栈弹出,76,三、8088/8086中断系统,内部中断外部中断,异常中断软件中断,非屏蔽中断 可屏蔽中断,256个中断源,除法错中断 溢出中断 单步中断,NMI,INTR,中断逻辑,软件中断指令,溢出中断,除法错,单步中断,非屏蔽中断请求,中断控 制器 8259A PIC,8086/8088CPU内部逻辑
26、,断点中断,可 屏 蔽 中 断 请 求,n,4,3,0,1,2,8086/8088中断源类型:,78,中断向量表,00000H,003FFH,1KB,79,中断向量表,存放各类中断的中断服务程序的入口地址; 每个入口占用4 Bytes,低位字(2个字节)存放中断服务程序入口地址偏移量,高位字(2个字节)存放中断服务程序入口地址段地址 ; 表的地址位于内存的00000H003FFH,大小为1KB,共256个入口。,80,中断向量表的初始化,将用户自定义的中断服务程序入口地址放入向量表 注意点: 向量表所在的段地址=0 存放子程序入口的单元的偏移地址=n4 (n为中断类型码) 例: 将中断向量码为
27、48H的服务程序入口地址放入向量表,p274,81,中断向量表的初始化,MOV AX,0000H MOV DS,AX MOV SI,0120H MOV BX,OFFSET TIMER MOV SI,BX MOV BX,SEG TIMER MOV SI+2,BX,82,8088内部中断响应过程,特点: 无INTA周期,即没有中断响应周期 中断类型码固定或由指令给出,83,8088内部中断响应过程,响应过程步骤: PUSH FLAGS CLEAR IF,TF(禁止其它INTR中断和单步中断)PUSH CSPUSH IP (I P)=(TYPE*4+1):(TYPE*4+0) (CS)=(TYPE*
28、4+3):(TYPE*4+2),84,8088外部中断响应过程,可屏蔽中断: 第1个INTA,PIC进行优先级排队判优处理 第2个INTA ,PIC把中断类型码放到DB上,由CPU读入PUSH FLAGS CLEAR IF,TFPUSH CSPUSH IP (I P)=(TYPE*4+1):(TYPE*4+0) (CS)=(TYPE*4+3):(TYPE*4+2) NMI中断响应过程与内部中断类似,85,8088/8086中断系统的优先级,优先级从高到低的顺序为: 内部中断-INT n;INTO;除法错 NMI中断- 中断类型码n=2 INTR中断(IF=1)-中断类型码n=00001(高5位软件设定)000111,n=8 F 单步中断(TF=1)-中断类型码n=1,86,中断处理过程,当NMI、INTR、单步和除法错中断同时产生时,响应顺序为:,响应除法错中断,响应NMI中断,响应INTR中断,响应单步中断,级别高的中断可以中断级别低的中断服务程序,87,本章课外自学内容:,中断控制器8259,