1、第七章 计算机和外设的数据传输,7.1 接口电路 7.1.1 接口的用途接口电路或集成的接口电路即接口芯片,用于实现外部设备与主机之间的连接(connection)和信息交换。如图7-1所示。,接口电路中通常包括3种信息,即:数据信息、状态信息和控制信息。1. 数据信息 CPU与外设交换的基本信息就是数据。数据信息一般分为3种类型,即数字量、模拟量、开关量。2.状态信息状态信息是反映外设当前工作状态的信息。每种状态用1位表示,每个外设可以有几个状态位,它们可由CPU读取,以测试或检查外设的状态,决定程序的流程。3.控制信息控制信息是CPU通过接口传送给外设的控制信息,它是用来控制外设工作的信息
2、。如选通信号、启停信号等。这3类信息在形式上都是二进制代码,它们都是通过数据总线(DB)来传送的,但它们的性质是不同的,必须分别传送,分别放在接口内的不同端口中。而接口对数据总线(DB)上数据类型的识别是根据相应的端口地址来区分的。,7.1.2 接口的功能(1)数据缓冲和锁存。 (2)执行CPU命令。 (3)地址译码或设备选择。 (4)信号转换与数据格式转换。 然而并不是每种接口都具有以上全部功能,但前三项功能应是一般接口都需要具有的功能。 7.1.3 IO端口CPU与外设交换的数据信息都保存在接口电路的这些寄存器(输出数据锁存器和输入数据缓冲器 )中,CPU对外设的操作实际上就是对这些寄存器
3、的操作,这些寄存器在计算机系统中被称之为端口(port),对它们的操作也叫I/O端口操作。,I/O端口编址 I/O端口的编址方式有两种:I/O端口与存储器统一编址方式和I/O端口独立编址方式。 (1)I/O端口与存储器统一编址 I/O端口与存储器统一编址就是在整个CPU的地址空间中,划出一部分作为存储器地址空间,另一部分为I/O端口地址空间,如图7-2(a)所示。8051单片机系统就采用该种编址方式。 在统一编址方式下,CPU将I/O端口与存储器同等对待,因此不需要专门的I/O指令,CPU对存储器的全部操作指令均可用于I/O操作,故I/O指令多,且使用方便。统一编址的缺点是I/O端口占用了部分
4、存储器地址空间,从而减少了存储器可用地址空间的大小,程序不易阅读(不易区分到底是访问主存还是访问外设)。,图 7-2 两种编址方式,(2)I/O端口独立编址I/O端口独立编址方式就是I/O端口地址和存储器单元各有自己独立的地址空间,各自单独编址,互不相关。CPU用专门的I/O指令去访问I/O端口。如图7-2(b)所示。如8086/8088,Z80等采用此种编址方式。I/O端口独立编址方式下,硬件上CPU需要一根专门的引脚来指明地址线上的地址是存储器地址还是I/O端口地址;软件上需要专门的I/O指令来访问I/O端口。此方式的优点是控制和译码电路相对简单,专门的I/O指令使程序清晰易读,指令简单、
5、速度快;缺点是增加硬件开销,I/O指令没有存储器指令丰富。,2. CPU对端口的读写CPU对端口的读写是通过CPU对I/O端口的输入/输出指令实现的。(1)输入指令IN格式:INAL,PORT(格式1)INAX,PORT(格式2)INAL,DX (格式3)INAX,DX (格式4)功能:从端口中读入一个字节或字,并存至寄存器AL或AX中。(2)输出指令OUT格式:OUT PORT,AL(格式1)OUT PORT,AX(格式2)OUT DX,AL (格式3)OUT DX,AX (格式4)功能:将寄存器AL或AX中的内容输出至指定端口。,7.2 CPU和外设之间的数据传输方式 根据CPU与外设之间
6、数据传送的控制方式不同,CPU与外设之间的数据传输方式有四种:无条件传输方式、程序查询传送方式、中断传送方式、DMA传送方式。7.2.1 无条件传输方式(同步传送方式)这种方式又称为同步传送方式或直接传送方式,主要用于对简单外设进行操作,或者外设的定时是固定的或已知的场合。一般用于控制CPU与低速接口之间的信息交换。此方式的优点是硬件和软件都达到最简单,即硬件上只需要提供CPU与外设连接的数据端口,软件上则只提供相应的输入或输出指令即可;缺点是只适用于简单外设,外设必须随时处于待命状态,并且外设的处理速度能跟上CPU的速度,否则就会出错。,同步输入方式(1)同步输入过程提供端口地址,以便CPU
7、从指定的外设中读入数据。执行IN指令或存储器读指令。地址译码器输出,同时产生M/和控制信号。数据从端口中输入至CPU寄存器。(2)同步输入硬件接口电路 硬件接口电路必须保证同步输入过程的正确执行。图7-3是一个同步输入硬件接口电路。,图7-3同步输入硬件接口电路,2. 同步输出方式(1)同步输出过程提供端口地址,以便CPU将数据送到指定的外设。执行OUT指令或存储器写指令。地址译码器输出,同时产生M/和信号。CPU将数据输出到端口。(2)同步输出硬件接口电路除了正确提供端口地址外,还需将数据锁存或驱动后提供给外设。图7-6 是一个同步输出的硬件接口电路。,图7-6 同步输出接口电路,7.2.2
8、 程序查询传送方式及其应用程序查询方式也称条件方式,用查询方式传送时,CPU通过执行程序不断读取并测试外设的状态,如果外设处于准备好状态(输入设备)或者空闲状态(输出设备),则CPU执行输入指令或输出指令与外设交换信息。因此,要求外设应能提供其工作状态的信息,要求接口电路除了有传送数据的端口,还得提供状态端口。对于条件传送来说,一个数据传送过程由3个环节组成:(1)CPU从接口中读取状态字;(2)CPU检测状态字的对应位是否满足“就绪”的条件,如果不满足,则回到前一步读取状态字;(3)如状态字表明外设已处于“就绪”状态,则传送数据。,查询方式传送数据流程如图7-10所示。,图7-10 查询方式
9、传送数据流程图,一般的查询方式输入/输出电路如图7-12、图7 - 13所示。,图7-12 一般的查询传送方式输入电路,图7-13一般的查询传送方式输出电路,例【7-2】 见课本,7.2.3 中断传送方式及其应用 中断传送方式有如下特点:1、CPU和外设大部分时间处于并行工作状态, CPU只在响应外设的中断申请后,进入数据传送的过程;2、中断传送方式提高了CPU的效率。中断传送方式的优点是保证了CPU对外设的实时服务,又不会因对各I/O设备的随时关照而花费CPU太多的时间,使高速运行的CPU与速度参差不齐的各种外设之间形成了良好的匹配(并行工作)关系,确保了CPU的高效率。缺点是为了实现中断传
10、送,要求在CPU与外设之间设置中断控制器,增加了硬件开销。 中断传送方式输入的接口电路如图7-15所示。,图7-15 中断方式输入的接口电路,7.3 DMA传送方式7.3.1 DMA传送方式的提出DMA(Direct Memory Access)传送方式是在内存与外设之间(或内存到内存之间)开辟一条直接数据传送的通道,并把传送过程交给DMA控制器进行管理。CPU本身仅接收DMA控制器的DMA请求并发送DMA允许信号,不参与实际的数据传送。7.3.2 DMA传送方式接口的结构特点 DMA传送方式采用一个专门的接口电路,该接口电路除具有一般接口的基本功能外,还具有总线管理功能,就是在数据传输时,D
11、MA总线管理器(即DMA控制器)接管总线管理权。DMA控制器的结构如图7-16所示。,图7-16 DMA控制器结构,1. DMA控制器功能(1)能接收外设的DMA请求信号DREQ,并能向外设发出DMA响应信号DACK;(2)能向CPU发出总线请求信号(HOLD),当CPU发出总线响应信号(HLDA)后能接管对总线的控制权,进入DMA传送方式;(3)能发出地址信息,对存储器寻址并修改地址指针;(4)能向存储器和外设发出读/写控制信号;(5)能决定传送的字节数,并能判断DMA传送是否结束;(6)能发出DMA结束信号,释放总线,让CPU重新获得总线控制权。,2. DMA的工作过程 外设数据准备好后,
12、发出一选通信号,使DMA请求触发器置1,。它有两个走向,一是向控制/状态端口发出准备就绪信号,一是向DMA控制器发出DMA请求信号; DMA控制器接收到DMA请求后,就向CPU发出总线保持请求信号(HOLD),要求接管总线; CPU在每个时钟上升沿都检测是否有HOLD请求,若有此请求,且自身正处在总线空闲周期中,CPU就立即响应此总线保持请求,即,向DMA控制器发出响应信号(HLDA),允许DMA接管总线。如果CPU正在执行某个总线周期,则要到这个总线周期结束后再响应此总线保持请求; CPU将CB、AB及DB的控制权让出,由DMA控制器进行控制; DMA控制器向外设发出DMA请求信号的回答信号;, 进行DMA传送,即,DMA控制器向地址总线发出地址信号,向数据总线发出数据信号,并给出存储器写命令,把外设输入的数据写入了存储器。而后修改地址指针,修改计数器,检查传输是否结束,若没结束则循环上述操作过程直到整个数据块传送完毕; DMA传送完毕,DMA控制器撤消对CPU的总线请求,总线控制权还给CPU,恢复正常运行。,