第六章微型计算机的输入/输出I/O接口功能I/O端口及其寻址方式输入/输出方式及CPU与外设通信的接口8086CPU的输入/输出总线简述6.1I/O接口功能一、CPU与外设通信特点需要有接口作为CPU与外设通讯的桥梁;速度信号种类:模拟、数字;并行、串行逻辑电平需要有数据信息传送之前的“联络”;要传递的信息有三方面内容:状态、数据及控制信息。CPUI/O接口外设控制数据地址控制数据状态接口电路通常包含一组能够与处理器交换信息的寄存器或缓冲器,称为I/O端口数据端口——存放数据信息状态端口——存放状态信息,即反映外设当前工作状态的信息控制端口——存放控制信息二、接口的功能进行地址译码或设备选择,以便使CPU能与某一指定的外部设备通讯;状态信息的应答,以协调数据传送之前的准备工作;进行中断管理,提供中断信号;进行数据格式转换,如正负逻辑的转换,串行与并行数据转换等;进行电平转换,如TTL电平与MOS电平间的转换;协调速度;时序控制,提供实时时钟信号。6.2I/O端口及其寻址方式一、存储器映像的I/O寻址存储单元和I/O端口的地址统一编址I/O端口存储单元I/O地址空间存储器地址空间整个地址空间举例:键盘及发光二极管接口使用两个芯片74LS244(8BIT三态门)和74LS273(8BIT寄存器发器)74LS24474LS273这种编址方式的优点:利用多余的内存译码资源;可以用访向存储器的指令来访问I/O端口,而访问存储器的指令功能比较强,不仅有一般的传送指令,还有算术、逻辑运算指令,以及各种移位、比较指令等,并且可以实现直接对I/O端口内的数据进行处理。缺点是:由于I/O端口占用了一部分存储器地址空间,因而使用户的存储地址空间相对减小。另外不利于程序阅读。2、I/O映像的I/O寻址I/O端口地址与存储单元地址分开编址存储单元存储地址空间I/O端口I/O地址空间特点1、地址线:A15……A02、M/IO=13、用I/O指令这种编址方式的优点是:1、I/O端口不占用存储器地址,故不会减少用户的存储器地址空间;2、采用单独的I/O指令,使程序中I/O操作和其他操作层次清晰,便于理解。这种编址方式的缺点是:1、单独I/O指令的功能有限,只能对端口数据进行输入/输出操作,不能直接进行移位、比较等其他操作;2、由于采用了专用的I/O操作时序及I/O控制信号线,因而增加了微处理器本身控制逻辑的复杂性。6.3输入/输出方式及CPU与外设通信的接口1、同步传送方式2、异步查询方式程序控制传送方式3、中断方式4、直接存储器存取方式一、程序控制传送方式(一)、同步传送方式(无条件方式)CPU直接与外设传送数据并不需要了解外设状态,认为外设已经准备就绪,直接与外设传送数据CPU译码数据线M/IOWR或门地址线接口外设输出CPU译码数据线M/IORD或门地址线接口外设输入(二)、异步查询方式在执行输入输出前,要先查询接口中状态寄存器的状态。输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪;准备好?读取状态信息输入数据是否数据线状态线外设常用的状态线有IBF,READY功能:1、输入设备准备好数据,状态线有效;2、CPU读数据端口,取走数据后,状态线转换为无效1、STB有效,(1)、输入设备数据进入锁存器;(2)、IBF有效2、CPU读状态端口3、CPU读数据端口,同时清IBF外设STBIBF/RD123输出时,状态寄存器的状态指示输出设备是否空闲。忙?读取状态信息输出数据否是数据线状态线外设常用的状态线有empty,busy功能:1、输出设备空闲,BUSY无效;2、CPU写数据端口,输出设备输出数据,状态线转换为有效1、CPU读状态端口,查BUSY线2、CPU写数据,(1)、数据进入数据锁存器;(2)、BUSY有效3、输出设备工作完毕,busy无效外设举例:打印机接口条件传送特点优点:电路简单缺点:降低CPU效率,实时性不强(三)、中断方式当外设作好传送准备后,主动向CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。在中断未发生时,CPU可以执行其他程序,这样可以提高CPU的利用率。/BUSY送打印机数据/BUSY送打印机数据/BUSY送打印机数据/BUSY送打印机数据检测状态线检测状态线中断申请信号主程序中断服务子程序中断逻辑主程序中断服务子程序中断申请信号与程序查询方式相比,中断控制方式的数据交换具有如下特点:(1)提高了CPU的工作效率;(2)CPU具有控制外围设备服务的主动权;(3)CPU可以和外设并行工作;(4)可适合实时系统对I/O处理的要求。二、直接存储器存取方式(DMA)(DirectMemoryAccess)。在高速的外设或成块交换数据的情况,采用程序控制方式进行数据的传输,是无法满足要求的。在这种情况下,采用DMA方式。ABDBCBCPUDMACRAM/ROMI/ODMA方式是在外设与内存间建立起直接的通道,CPU不再直接参加外设和内存间的数据传输。当系统需要进行DMA传输时,将CPU对地址和数据及控制线的管理权交由DMA控制器进行控制,当完成了一次DMA数据传输后,再将这个控制权还给CPU,这些工作都是由硬件自动实现的,并不需要程序进行控制。CPU外设存储器总线:执行程序指令的数据传送路径;:DMA方式的数据传送路径内存外设DMAC输出输入外设外设DMAC内存内存DMACDMA传送的几种形式8086CPU为DMA提供两根信号线1、HOLD总线保持请求2、HLDA总线保持响应ABDBCBCPUDMACMemoryI/OHOLDHLDA(1)DMAC接收I/O接口的DMA请求,并向CPU发出总线请求信号HOLD;DMA的基本功能和步骤(2)当CPU发出总线回答信号HLAD后,接管对总线的控制,进入DMA传送过程;(3)能实现有效的寻址,即能输出地址信息并在数据传送过程中自动修改地址;(4)能向存储器和I/O接口发出相应的读/写控制信号;(5)能控制数据传送的字节数,控制DMA传送是否结束;(6)在DMA传送结束后,能释放总线给CPU,恢复CPU对总线的控制。DMA的基本功能和步骤(1)DMAC接收I/O接口的DMA请求,并向CPU发出总线请求信号HOLD;(2)当CPU发出总线回答信号HLAD后,接管对总线的控制,进入DMA传送过程;(3)能实现有效的寻址,即能输出地址信息并在数据传送过程中自动修改地址;(4)能向存储器和I/O接口发出相应的读/写控制信号;(5)能控制数据传送的字节数,控制DMA传送是否结束;(6)在DMA传送结束后,能释放总线给CPU,恢复CPU对总线的控制。6.48086CPU的输入/输出1、I/O寻址64K2、8086CPU的I/O指令(1)直接寻址输入/输出指令(八位端口地址)INAL,n(字节输入)INAX,n(字输入)OUTn,AL(字节输出)OUTn,AX(字输出)0000H00FFH0100HFFFFHn(2)DX寄存器间接寻址输入(十六位端口地址)INAL,DX(字节输入)INAX,DX(字输入)OUTDX,AL(字节输出)OUTDX,AX(字输出)0000H00FFH0100HFFFFHDX3、有关端口地址问题a、8086CPU与外设交换数据可以字或字节进行,b、当以字节进行时,偶地址端口的字节数据由低8位数据线D7~D0位传送,奇地址端口的字节数据由高8位数据线D15~D8传送,c、当用户在安排外设的端口地址时,如果外设是以8位的方式与CPU连接,就只能将其数据线或者与CPU的低八位或者与高八位连接,这样同一台外设的所有寄存器端口地址都只能是偶地址或是奇地址,这时设备的端口地址就会是不连续的。