第8章 输入输出和中断技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Ch.8输入输出和中断技术本章内容基本概念I/O端口的编址输入输出的基本方法:无条件、查询、中断、DMA中断中断基本概念8086/8088中断系统8259中断控制器*DMA*DMA的基本概念DMA工作过程DMA的三种传输方式8.1输入/输出接口(I/O接口)8.1.1概述什么是I/O接口?把外设连接到总线上的一组逻辑电路的总称。实现外设与主机之间的信息交换。I/O接口要解决的问题速度匹配(Buffer)信号电平和驱动能力(电平转换器、驱动器)信号形式匹配(A/D、D/A)信息格式(字节流、块、数据包、帧)时序匹配(定时关系)总线隔离(三态门)I/O接口的功能I/O地址译码与设备选择把选中的与总线相接,未选中的与总线隔离(高阻态)数据的缓冲与暂存缓解接口与CPU工作速度的差异对外设进行监测、控制与管理,中断处理信号电平与类型的转换形式、格式、电平、功率、码制等8.1.2I/O接口的编址方式I/O端口:I/O信息的三种类型:数据、命令、状态。传送这三类信息的通道分别称为:数据端口(I、O)、命令端口(O)、状态端口(I)。不同外设具有的端口数各不相同,计算机中为每一个端口都赋予一个惟一编号——称为端口地址(或端口号)。端口有两种编址方式:统一编址和独立编址。1.统一编址把外设接口与内存统一进行编址。各占据统一地址空间的不同部分。优点指令统一,灵活;访问控制信号统一,使用同一组的地址/控制信号。缺点内存可用地址空间减小0地址空间(共1MB)内存地址(960KB)I/O地址(64KB)FFFFFHEFFFFHF0000H2.独立编址外设地址空间和内存地址空间相互独立。优点:内存地址空间不受I/O编址的影响缺点:I/O指令功能较弱,使用不同的读写控制信号00000H内存地址空间内存空间(1MB)I/O空间(64KB)FFFFHFFFFFHI/O地址空间0000H例如:8088/8086系统8088总线A19-A0A9-A0MEMR、MEMWIOR、IOW、AEN存储器访问I/O访问8088/8086CPU的I/O编址方式采用I/O独立编址方式(但地址线与存储器共用)地址线上的地址信号用来区分:时为I/O地址I/O操作只使用20根地址线中的16根:A15~A0可寻址的I/O端口数为64K(65536)个I/O地址范围为0~FFFFHIBMPC只使用了1024个I/O地址(0~3FFH)IO/M=1IO/M8.1.3I/O端口地址的译码、、A15~A0OUT指令将使总线的信号有效IN指令将使总线的信号有效当接口只有一个端口时,16位地址线一般应全部参与译码,译码输出直接选择该端口;当接口具有多个端口时,则16位地址线的高位参与译码(决定接口的基地址),而低位则用于确定要访问哪一个端口。例如:某外设接口有4个端口,地址为2F0H~2F3H,则其基地址为2F0H,由A15~A2译码得到,而A1、A0用来确定4个端口中的某一个。IORIOWIOWIOR8.1.4I/O数据的传送方式并行一个数据单位(通常为字节)的各位同时传送速度快、距离短、成本高例:PC机的并行接口(通常用于连接打印机)串行数据按位进行传送速度慢、距离远、成本低例:PC机的串行接口(通常用于串行通信)8.2.1接口电路的基本结构8.2简单接口电路数据线控制线状态线DBCBAB数据输入寄存器(or三态门)数据输出寄存器(锁存器)状态寄存器(or三态门)命令寄存器译码电路控制逻辑接外设接主机数据输入/输出寄存器——暂存输入/输出的数据命令寄存器——存放控制命令,用来设定接口功能、工作参数和工作方式。状态寄存器——保存外设当前状态,以供CPU读取。简单接口电路数据输入接口必须具有三态输出能力,以便与总线挂接外设有数据保持能力时—可用三态门实现外设无数据保持能力时—用三态输出的锁存器实现数据输出接口常用锁存器实现三态门:高电平、低电平、高阻态通常一个器件中包含8个三态门常用芯片:74LS244应用例子:开关接口工作波形图如下:A0~A15IOR#译码输出D0~D7开关状态地址有效简单的输入接口举例K6K7+5VI0I3D0-D7DO0DO7~74LS244E1E2≥1&A2A3A4A5A6A7A8A9A10A11A12A13A14A15IOR系统总线信号≥1K5K4K3K2K1K0I1I2I4I5I6I7接口电路图如下:83FCH~83FFH译码器锁存器:由D触发器构成通常一个器件包含8个D触发器常用芯片:74LS27374LS374(具有三态输出的锁存器)应用例子:发光二极管接口简单的输出接口举例译码器=1=1.........+5VRD0|D7CPQ0Q7...D0~D7A0~A15IOW#74LS273R输入/输出接口综合应用例子根据开关状态在7段数码管上显示数字或符号共阳极7段数码管结构用74LS273作为输出接口,把数据送到7段数码管74LS273的地址假设为F0H用74LS244作为输入口,读入开关K0~K3的状态74LS244的地址假设为F1H当开关的状态分别为0000~1111时,在7段数码管上对应显示’0’~’F’(7段码表见下页)O1I1O2I2O3I3O4I4#E1K0~K3+5VGG2AG2BCBA≥174LS244D0Q0|Q1D7Q2Q3Q4CPQ5Q6Q7abcdefgDP74068个反相器74LS273Rx8≥174LS138D0~D7IOW#IOR#Y0Y1F0H=0000000011110000F1H=0000000011110001&≥1A7~A4A15~A8A3A2A1A0D0D1D2D3译码电路符号形状7段码.gfedcba符号形状7段码.gfedcba’0’00111111’8’01111111’1’00000110’9’01100111’2’01011011’A’01110111’3’01001111’B’01111100’4’01100110’C’00111001’5’01101101’D’01011110’6’01111101’E’01111001’7’00000111’F’01110001相应程序段如下:……Seg7DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71H……LEABX,Seg7;取7段码表基地址MOVAH,0GO:MOVDX,0F1H;开关接口的地址为F1HINAL,DX;读入开关状态ANDAL,0FH;保留低4位MOVSI,AX;作为7段码表的表内位移量MOVAL,[BX+SI];取7段码MOVDX,0F0H;7段数码管接口的地址为F0HOUTDX,ALJMPGO8.3输入输出的控制方式主机与外设之间数据传送的控制方式有以下四种:无条件传送查询式传送中断方式传送直接存储器存取(DMA,DirectMemoryAccess)8.3.1无条件传送方式适用于总是处于准备好状态的外设以下外设可采用无条件传送方式:开关发光器件(如发光二极管、7段数码管、灯泡等)继电器步进电机优点:软件及接口硬件简单缺点:只适用于简单外设,适应范围较窄8.3.2查询方式传送适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。CPU在与外设交换数据前必须询问外设状态——“你准备好没有?”对外设的要求:应提供设备状态信息对接口的要求:需要提供状态端口优点:软件比较简单缺点:CPU效率低,数据传送的实时性差,速度较慢查询方式的流程图超时?READY?与外设进行数据交换超时错读入并测试外设状态YNYN传送完?防止死循环复位计时器NY例:用查询方式进行输出外设状态端口地址为3FBH,第5位(bit5)为状态标志(=1忙,=0准备好)外设数据端口地址为3F8H,写入数据会使状态标志置1;外设把数据读走后又把它置0。试画出其电路图。(电路图见下页)D5D7-D0A9|A3≥1&A15|A10≥1IOWD7-D03F8H外设D7D6D5D4D3D2D1D0BUSYCPQ7Q6Q5Q4Q3Q2Q1Q0状态端口GG2AG2BCBAA2A1A074LS138Y0≥1IORY3OE74LS374CPQQDSSTROBE3FBH程序段?8.3.3中断方式传送CPU无需循环查询外设状态,而是外部设备在需要进行数据传送时才中断CPU正在进行的工作,让CPU来为其服务。即CPU在没有外设请求时可以去做更重要的事情,有请求时才去传输数据,从而大大提高了CPU的利用率。优点:CPU效率高,实时性好,速度快。缺点:程序编制较为复杂。8.3.4DMA传输前面三种I/O方式都需要CPU作为中介:外设CPU内存两个含义:1)软件:外设与内存之间的数据传送是通过CPU执行程序来完成的(PIO方式);2)硬件:I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的(总线由CPU控制)。缺点:程序的执行速度限定了传送的最大速度(约为几十KB/秒)—解决:DMA传输DMA传输:外设内存外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者;总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几MB/秒)DMA的数据传输形式:基本的:MEM——I/O扩充的:MEM——MEMI/O——I/ODMA传送原理示意图①系统总线CPUDMAC存储器外设接口AENIOWMEMWMEMRIORMEMWMEMRIOWIORAENHOLDHLDADRQDACK②③④⑤AENIOWIORMEMWMEMR①外设发出DMA请求②DMAC向CPU申请总线③CPU完成当前总线周期后响应,并释放总线控制权④DMAC得到总线控制权,并发出DMA响应信号⑤由DMAC发出各种控制信号,控制外设与存储器之间的数据传送⑥数据传送完后,DMAC撤销HOLD信号⑦CPU释放HLDA信号,并重新控制总线⑥⑦DMA控制器的工作过程1)当外设准备好,可以进行DMA传送时,外设向DMA控制器发出“DMA传送请求”信号(DRQ);2)DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD,表示希望占用总线;3)CPU在完成当前总线周期后会立即对HOLD信号进行响应。响应包括两个动作:一是CPU将数据总线、地址总线和相应的控制信号线均置为高阻态,由此放弃对总线的控制权。另一方面,CPU向DMA控制器发出“总线响应”信号(HLDA)。4)DMA控制器收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号DACK;DMA控制器的工作过程(续)5)DMA控制器送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据传送;例如,向I/O接口发出读信号,同时往地址总线上发出存储器的地址和存储器写信号和AEN信号,即可从外设向内存传送一个字节。6)DMA控制器自动修改地址和字节计数器,并判断是否需要重复传送操作。当规定的数据传送完后,DMA控制器就撤销发往CPU的HOLD信号。CPU检测到HOLD失效后,紧接着撤销HLDA信号,并在下一时钟周期重新开始控制总线。DMA的三种传输方式:连续传送(块传送)DMAC申请到总线后,将一块数据传送完后才释放总线,而不管中间DREQ是否有效。单次传送(每次传送一个字节)每个DMA周期只传送一个字节就立即释放总线。按需传送(猝发传送)只要I/O接口的数据缓冲可用,就进行传送。(注:I/O接口需要有一定大小的FIFO缓冲)YN允许DMADMA请求?DMAC请求总线CPU响应,DMAC获总线控制权DMA传送一个字节块结束?地址增量,计数器减量DMAC释放总线Y数据块传

1 / 101
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功