IO接口和数据传输.ppt
汇 编 语 言 与 接 口第六章:输入/输出接口和数据传输,皖西学院计算机系,输入/输出接口功能CPU和输入输出设备间的信号接口部件的I/O端口和寻址方式CPU和外设间的数据传送方式,第六章:输入/输出接口和数据传输,输入/输出接口功能CPU和输入输出设备间的信号接口部件的I/O端口和寻址方式CPU和外设间的数据传送方式,第六章:输入/输出接口和数据传输接口功能,什么是输入/输出设备?计算机有各种用途,但不论用于何种场合,都离不开信息处理。所处理的信息,均要由输入设备提供,而处理后的结果数据,则要送给输出设备,以各种形式报告给用户。例如,键盘、鼠标器、磁盘和扫描仪等是大家熟悉的输入设备,而磁盘、显示器、打印机、绘图仪等则是最常见的输出设备。亦即能够完成输入/输出操作的设备就叫输入/输出设备,简称外设或I/O设备。,第六章:输入/输出接口和数据传输接口功能,输入/输出设备与CPU信息交换时有什么问题?外部设备种类繁多,从工作原理来讲,可分为机械式、电动式、电子式和其它形式等几类。它们对所传输的信息的要求也各不相同,这就给计算机和外设之间的信息交换带来以下一些问题:(1)速度不匹配:CPU的速度很高,而外设的速度要低得多,而且不同的外设速度差异甚大,它们之中既有每秒钟能传送兆位数量级的硬磁盘,也有每秒钟只能打印百位字符的串行打印机或速度更慢的键盘。(2)信号电平不匹配:CPU所使用的信号都是TTL电平,而外设大多是复杂的机电设备,往往不能用TTL电平所驱动,必须有自己的电源系统和信号电平。(3)信号格式不匹配:CPU系统总线上传送的通常是8位、16位或32位的并行数据,而各种外设使用的信息格式各不相同。有些设备上用的是模拟量,而有些是数字量或开关量;有些设备上的信息是电流量,而有些却是电压量,有些设备采用串行方式传送数据,而有些则用并行方式。(4)时序不匹配:各种外设都有自己的定时和控制逻辑,与计算机的CPU时序不一致。,第六章:输入/输出接口和数据传输接口功能,什么是输入/输出接口?因此,要实现外部设备与主机之间的连接(connection)和信息交换,必须经过一个数据转换和传输的设备。这种设备,我们叫做I/O接口(interface)。,I/O接口:I/O接口是指把外设同微型计算机连接起来实现数据传送的中间控制电路。,第六章:输入/输出接口和数据传输接口功能,输入/输出接口及其功能,第六章:输入/输出接口和数据传输,输入/输出接口功能CPU和输入输出设备间的信号接口部件的I/O端口和寻址方式CPU和外设间的数据传送方式,第六章:输入/输出接口和数据传输CPU和I/O设备间的信号,CPU和外设之间需要交换三种信息数据信息:送入CPU进行加工处理的信息或输出到外设的结果。控制信息:是CPU发出,用以控制外设的工作方式或启动和停止。状态信息:反映了外设当前的工作状态,是外设送给CPU的信号。,CPU与外设之间不是直接交换以上三类信息,而是通过接口间接传送的。以上三种信息在形式上都是二进制代码,它们都是通过DB来传递的,分别放在接口内的不同端口中(这里的端口也称为寄存器)。每个端口都有一个端口地址,CPU通过访问不同的地址,从而获取不同的端口内的信息。,第六章:输入/输出接口和数据传输,输入/输出接口功能CPU和输入输出设备间的信号I/O端口和寻址方式CPU和外设间的数据传送方式,第六章:输入/输出接口和数据传输I/O端口和寻址方式,I/O端口的寻址方式 CPU对外设的访问实质上是对I/O接口电路中相应的端口进行访问,因此和存储器那样,也需要由译码电路来形成I/O端口地址。I/O端口的编址方式有两种:存储器映象编址方式和独立编址方式。存储器映像编制方式:在这种编址方式中,将外设接口地址和内部存储器地址统一安排在内存的地址空间中。即把内存地址分配给外设,由外设来占用这些地址。用于外设的这些地址,存储器不能再使用。(如:MCS 51系列单片机)独立编制方式:在这种编址方式中,内存地址空间和外设地址空间是相互独立的。例如,在8086CPU中,内存地址是连续的1M字节,从00000HFFFFFH,而外设的地址范围从0000HFFFFH。它们相互独立,互不影响。,第六章:输入/输出接口和数据传输,输入/输出接口功能CPU和输入输出设备间的信号接口部件的I/O端口和寻址方式CPU和外设间的数据传送方式,第六章:输入/输出接口和数据传输数据传送方式,在计算机的操作过程中,最基本的最大量的操作是数据传送。在微机系统中,数据主要在CPU、存储器和I/O接口之间传送,在数据传送过程中,关键问题是数据传送的控制方式。微机系统中的数据传送的控制方式主要有软件传送方式(程序控制方式)、中断传送方式和DMA直接存储器存取方式。其中,软件传送方式又包括:无条件传送方式和条件传送方式(查询方式)。,第六章:输入/输出接口和数据传输数据传送方式,无条件传送方式 如果计算机能够确认一个外设已准备就绪,就不必查询外设的状态而直接进行信息传送,这就是无条件传送方式。无条件传送方式用得较少,只用在对一些简单外设的操作,如指示灯,数码管显示等;或者用于控制CPU与低速接口之间的信息交换,由于这些信号变化的速度相对于CPU的处理速度慢得多,所以,CPU可以间隔较长的时间才去访问这些外设,而外设也就有充裕的时间来准备数据。无条件传送分为两种情况:无条件输入(外设CPU)、无条件输出(CPU外设)若外设是输入设备,由于外设数据更新的速度很慢,所以输入端可直接用“输入缓冲器”作为接口与CPU的数据总线相连。若外设是输出设备,因为外设的速度较慢,所以要求CPU送到外设的数据只能暂时保存在接口中,直到外设取完全部数据;所以此时应选用有锁存能力的接口(输出锁存器)。,第六章:输入/输出接口和数据传输数据传送方式,设计实例:四个按键,控制四个发光二极管亮灭。功能要求:按下1#按键,第1个二极管发光;按下2#按键,第1、2个二极管发光;按下3#按键,第1、2、3个二极管发光;按下4#按键,第1、2、3、4个二极管发光;系统分析:系统输入设备:按键;系统输出设备:发光二极管;因此同时要有输入缓冲器和输出锁存器,作为这两类外设的接口电路。因为,采用无条件传输方式,所以接口电路中只有数据端口。另外,还需要地址译码器,用来生成这两个数据端口的地址。,左旭坤(),15,系统设计硬件设计,输入缓冲器采用:74LS244,当244的OE为低电平时,可将A0A3上的信息在Y0Y3上输出,并通过D0D3数据总线送入CPU,左旭坤(),17,输入缓冲器采用:74LS244,如何使OE上出现低电平:,译码器的Y0和CPU的RD同时为低时,OE为低。即:当CPU进行读操作时(M/IO和RD都为低);并且地址总线A1为高,A2A4为低时(译码器Y0输出低)。因此:可知244地址为0002H,当CPU读02H端口时,就使能244,从而获取244输出端的数据。,左旭坤(),18,输出锁存器采用:74LS373,当373的OE为低LE为高时,可将D0D3上的信息锁存,并通过QQ3输出,左旭坤(),19,输出所存器采用:74LS3373,如何使LE上出现高电平:,译码器的Y1和CPU的WR同时为低时,LE为高。即:当CPU进行写操作时(M/IO和WR都为低);且地址总线A1和A2为高,A3和A4为低时(译码器Y1输出低)。因此:可知373地址为0006H,当CPU写06H端口时,就使能373,从而锁存数据总线上的数据。,左旭坤(),20,=0eh,=0dh,=0bh,=07h,=10h,=30h,=70h,=f0h,系统设计软件设计,各按键的键值,显示码,第六章:输入/输出接口和数据传输数据传送方式,查询传送方式 查询传送也称条件方式传送,用查询方式传送时,CPU通过执行程序不断读取并测试外设的状态,来决定是否进行数据传递。如果外设处于“准备好”状态(输入设备)或者“不忙”状态(输出设备),则CPU执行输入指令或输出指令与外设交换信息。因此,接口电路除了有传送数据的端口,还要求有传送状态的端口。对于查询传送来说,一个数据传送过程由3个环节组成:CPU从接口的状态端口中读取状态字;CPU检测状态字的对应位是否满足“就绪”的条件,如果不满足,则回到前一步读取状态字;如状态字表明外设已处于“就绪”状态,则开始传送数据。,第六章:输入/输出接口和数据传输数据传送方式,查询传送方式,查询方式输入,查询方式输出,外设CPU,CPU外设,第六章:输入/输出接口和数据传输数据传送方式,CPU利用查询方式从外设输入一个数据,系统中用到两个缓冲器(74ls244)作为接口电路。其中:(1)缓冲器1用来向CPU传递外设的状态信号(“准备好”);(2)缓冲器2用来向CPU传递数据。所以缓冲器1可以看做“状态端口”,而缓冲器2可看做是“数据端口”。,查询方式输入,第六章:输入/输出接口和数据传输数据传送方式,假设:缓冲器1的地址是STATUS_PORT;缓冲器2的地址是DATA_PORT。(1)外设的状态信息通过D0数据线送入CPU,假定当D0=1时,表示外设已准备好数据。(2)外设的数据信息通过低8位数据总线送给CPU,查询方式输入,第六章:输入/输出接口和数据传输数据传送方式,POLL:IN AL,STATUS_PORT;读入状态信息 TEST AL,01H;检查状态位 JZ POLL;AL的最低位=0,返回 IN AL,DATA_PORT;为“1”,读取数据,查询方式输入,第六章:输入/输出接口和数据传输数据传送方式,CPU利用查询方式向外设输出一个数据,系统中用到一个缓冲器(74ls244)和一个锁存器(74ls373)作为接口电路。其中:(1)缓冲器是“状态端口”,用来向CPU传递外设的状态信号(“不忙”);(2)锁存器是“数据端口”,用来向外设传递数据。,查询方式输出,第六章:输入/输出接口和数据传输数据传送方式,假设:缓冲器的地址是STATUS_PORT;锁存器的地址是DATA_PORT。外设的状态信息通过D7数据线送入CPU,假定当D7=0时,表示外设“不忙”CPU的数据信息通过低8位数据总线送给外设。,查询方式输出,第六章:输入/输出接口和数据传输数据传送方式,POLL:IN AL,STATUS_PORT;读状态 TEST AL,80H;查“忙”否?JNZ POLL;忙,则继续检查 MOV AL,STORE;不忙,从内存取数据 OUT DATA_PORT,AL;送给外设,查询方式输出,左旭坤(),29,第六章:输入/输出接口和数据传输数据传送方式,设计实例:某显示器系统接收并显示CPU发送来的数据。当系统“不忙”时CPU发送数据,否则CPU等待。,显示器由数码管构成,“不忙”信号由人控制按键形成。,左旭坤(),30,第六章:输入/输出接口和数据传输数据传送方式,数码管显示原理:,共阴极数码管,共阳极数码管,显示码(0F)1:共阴;2:共阳,2:0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,1:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,76H,第六章:输入/输出接口和数据传输数据传送方式,查询传送方式当系统中有多个外设时查询方式如何工作?由图可见,CPU逐个外设进行查询。若发现那个外设准备就绪,就对该外设实施数据传送。然后再对下一外设查询,依次循环。不足之处:(1)在查询过程中,CPU不能做别的事情,降低了CPU的效率。(2)假如某一外设处于就绪状态,那么它必须等到CPU查询完它前面的所有外设,才能发现它处于就绪状态,这样就不能与外设进行实时数据交换。,结论:程序控制传送方式采取以CPU为主的设计思路,外设是被动的。,第六章:输入/输出接口和数据传输数据传送方式,中断传送方式,外设需要和CPU进行交换时,主动向CPU发出中断请求,请求被接受后,CPU暂停正在执行的程序,转去为外设服务,完成服务后再转回原程序继续执行。,采用该方式时,在外设进行准备工作的同时,CPU可以处理其他事务,只有当外设一切准备就绪后,向CPU发出中断请求,CPU才会中断当前的工作,转而去和外设进行数据传递。在一定程度上实现了CPU和外设的并行工作。,若某一时刻有几个外设同时发中断请求信号,CPU可以根据预先安排好的优先级顺序,分轻重缓急分别处理每个外设的数据传送,这样也可以提高各个外设之的工作效率。,第六章:输入/输出接口和数据传输数据传送方式,中断传送方式优点:系统的工作效率高,CPU、外设可以并行工作,外设可以主动向CPU请求,能够得到CPU的及时响应。缺点:每次传送数据,仍需要CPU的参与,占用了CPU的开销。适用场合:这种方式适用于数据传递流量不大或不频繁的场合。,DMA(Direct Memory Access)控制方式系统中有一个专门的控制器来负责“外设和内存”,“外设和外设”之间的数据传递。这种控制器称为DMA控制器。,例如:计算机进行大量的文件复制,就是由DMA控制器来控制数据的传递,而CPU此时可以从事其它工作。,6.1 什么是接口电路?它的作用是什么?6.2 CPU和输入输出设备之间传送的信息有哪几类?6.3 什么叫端口?通常有哪几类端口?计算机对IO端口编址时通常采用哪两种方法?在8086/8088系统中,用哪种方法对I/O端口进行编址?6.4 查询式传送方式有什么优缺点?中断方式为什么能弥补查询方式的缺点?6.5 如下图所示,利用无条件输出方法实现跑马灯的程序设计,第六章:输入/输出接口和数据传输思考题,左旭坤(),35,微机原理及接口仿真平台PROTUES7.5SP3,以跑马灯为例,所需硬件:8086CPU地址锁存器(74LS373)地址译码器(74LS138)输出锁存器(74LS373)或非门(NOR)LED灯(8支)电源和地,电路设计(1):CPU外围电路,当AD0AD7上出现地址信号时,ALE变高,使得373锁存该地址信号;并由Q0Q7输出。,左旭坤(),36,微机原理及接口仿真平台PROTUES7.5SP3,以跑马灯为例,所需硬件:8086CPU地址锁存器(74LS373)地址译码器(74LS138)输出锁存器(74LS373)或非门(NOR)LED灯(8支)电源和地,电路设计(2):译码电路,由此可见,锁存器的地址为:0006H,左旭坤(),37,微机原理及接口仿真平台PROTUES7.5SP3,以跑马灯为例,所需硬件:8086CPU地址锁存器(74LS373)地址译码器(74LS138)输出锁存器(74LS373)或非门(NOR)LED灯(8支)电源和地,电路设计(3):LED控制电路,当373输出0000 0001 B时,第1盏LED亮 当373输出0000 0010 B时,第2盏LED亮 当373输出0000 0100 B时,第3盏LED亮 当373输出1000 0000 B时,第8盏LED亮,左旭坤(),38,微机原理及接口仿真平台PROTUES7.5SP3,以跑马灯为例,程序设计:,