电工学习网

 找回密码
 立即注册
查看: 12162|回复: 7
打印 上一主题 下一主题

计算机输入输出接口

[复制链接]
跳转到指定楼层
楼主
发表于 2015-6-14 21:32:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
  由于外设的复杂性,主机一般不与外设直接连接, 而是通过I/O接口电路与外设连接。 现在为了使用方便,把常用的通用设备的I/O接口电路作在主机板上,如: IDE接口、并口、串口、显示器接口、键盘口…
  存储器功能单一,传送方式也单一(每次传送一个字或者一个字节),种类也很有限, 工作速度可以和CPU的工作速度匹配,因此可以直接把存储器挂在总线上。由于外部设备的功能种类繁多,原理也有较大差别,使用的信息可以是模拟量也可以是数字量,可以串行也可以并行,再加上工作速度快慢不一,因此微处理器与外部设备之间的数据传输需要通过I/O接口进行, 而不能像与存储器传输数据一样直接通过总线就能完成。
  在微型计算机当中,系统时钟是定时的基准。对存储器的访问是以时钟为基准来定时的,也就是说,微处理器是以同步方式对存储器进行访问的。同步的含义就是发送方和接收方之间有一个时钟信号进行管理(此处就是系统时钟)。 工作节拍一致, 而不需要应答。因此,微处理器对于存储器的访问会有比较高的速度。然而对于外部设备,它们的执行部件有些是机械的,比如打印机、有些是光电的,比如鼠标,它们当中的大部分工作频率低于或大大低于微处理器的工作频率。另外,外部设备要求服务的时间往往是随机的。因此,微处理器与大部分外设之间的信息交互需要异步进行。微处理器和外设之间需要联络,速度往往要大大低于访问存储器。
  输入与输出:指主机与外设之间交换信息。
  1.常见外设
  ⑴输入设备:键盘,鼠标,手写板……
  ⑵输出设备:显示器,打印机……
  ⑶输入/输出设备:外存储器,MODEM……
  2.外设的复杂性
  ⑴速度相差甚大:包括不同设备之间,设备与主机之间。如慢的键盘、鼠标,快点的光驱、硬盘等。
  ⑵信号各异:如显示器要的是模拟信号,键盘是数字信号,有的设备是开关信号、脉冲信号等。
  ⑶信号格式不同:如键盘、MODEM是串行数字信号,IDE硬盘、并口打印机是并行数字信号等。
  ⑷工作方式不同: 如PIO程序控制下的传送, DMA直接存储器访问,中断方式等。
  种种原因,使外设与主机的连接要通过接口电路接入。
  一、输入输出接口电路(I/O接口)组成
  1.主机与外设间传送的三类信息
  ⑴数据:这是要传送的主要对象;
  ⑵外设的状态信号(输入):为了数据传送的可靠、有效,主机需要了解的外设当前状态;
  ⑶(对外设的)控制信号(输出):以便数据传送的正确性。
  由于这三类信息意义和作用的不同,不能混淆,一般要分开在不同端口(port) 传送,利用端口地址区分它们。
计算机输入输出接口
  2.I/O接口的主要功能
  ⑴数据锁存与缓冲:协调主机与外设间数据传输的速度差异;
  ⑵总线隔离:确保非I/O传送期间总线不被外设占用;
  ⑶端口地址译码:识别并选择需要的端口;
  ⑷信息格式转换:以满足主机与外设的各自信息格式的需要。如模数转换,电平转换(TTL、Vcc…),极性转换,并串转换等;
  ⑸产生和提供联络、控制等信号:保证数据传输的有效和可靠。
  二、I/O的控制方式
  1.程序控制下的IO方式(PIO)
  输入/输出(IO)完全靠程序指令来进行。有同步方式和异步方式。同步方式也称作无条件传送方式,简单快捷的外部设备采用同步方式,I/O接口可以是简单的数据锁存缓冲器,CPU访问它们如同访问内存储器一样。异步方式称为条件传送方式,和异步的外部设备交换数据,微处理器访问I/O接口是有一定条件的, 一般在外部设备请求传送并且I/O接口已经做好数据传送的准备的情况下, 微处理器才转向对I/O的服务。
  ⑴无条件传送方式的前提:有统一时钟信号管理的同步方式也称作无条件传送方式, 或设备具有可随时接收 、提供数据的能力,因而程序(主机)无需查看外设的状态(条件),随时作输入或输出操作。如LED/LCD显示器,慢变的(温度)传感器等, 它们也不带状态信号。
  图8.1.2是连接LED七段码显示器的无条件输出接口示意图。下面了解一下各个部分的组成:
计算机输入输出接口
计算机输入输出接口
  ①地址译码。为简化电路,常常只选取部分地址进行译码去选择端口,这种译码方式称为部分译码。
  当地址A=100000××=80H、81H、82H、83H时,138译码器Y0为低有效。
  ②数据端口。仅当执行OUT 80H,AL时,WR、地址译码输出Y0及M/IO均为低电平, 锁存器373输入门打开,AL中数据送入373。 由于373接成直通方式,因此数据直接送到外设。
  ③外设与数据。设驱动电路为反相驱动, 则Di=0时, 对应笔划亮;Di=1时暗。6的显示码:00000010B。显示6的程序:
    MOV AL,02H
    OUT 80H,AL
  图8.1.4是无条件输入接口示意图。
计算机输入输出接口
  ⑵条件传送方式(查询方式):所谓程序查询就是在程序控制方式下进行数据传送。在写程序时,把查询指令写在程序中,微处理器执行该条指令,去读I/O接口中一个反映接口状态的寄存器, 当满足数据传送条件的情况下,状态寄存器会呈现一定的状态。如果该状态寄存器为允许传送,就可以进行数据传输了。在程序中可以设立循环指令,微处理器通过执行程序,只要条件不满足,微处理器就不断查询接口的状态,直到外设(I/O接口)做好数据传送的准备。 由此可见,程序查询方式简单易行,只要利用现有的微处理器不需要加入其他硬件电路作为辅助。只要编程实现下述功能: 对I/O接口的状态寄存器不断测试,一旦满足条件(准备好传送数据),紧接着执行数据传送指令。显而易见,程序查询方式的不足之处在于对状态寄存器的测试占用了CPU过多的时间。 采用程序查询方式的时候,微处理器的绝大部分时间都用于测试和等待了。这种方式的实质就是降低微处理器的工作速度来适应低速的外部设备。我们可以看出不增加硬件从而不提高成本的同时,会造成微处理器的效率降低,这是一个鱼与熊掌不可兼得的问题。那么如何提高微处理器的效率呢?就是采用下面介绍的中断方式和DMA方式。
  在条件传送方式的I/O 接口当中有一个反映接口状态的寄存器,当满足数据传送条件的情况下,状态寄存器会呈现一定的状态,微处理器通过执行程序,不断查询接口的状态, 直到外设(I/O接口)做好数据传送的准备。程序查询方式简单易行,不需要辅助的电路。只要编程实现下述功能: 对I/O接口的状态寄存器不断测试,一旦满足条件(准备好传送数据即外设就绪),紧接着执行数据传送指令。显而易见, 程序查询方式的不足之处在于对状态寄存器的测试占用CPU过多的时间。该方式输入或输出能否进行应根据设备的当前的工作状态,因此每次数据传送前程序需先输入外设的状态(条件)查看称为状态查询,若状态(条件)允许则作传送操作,否则继续查询。外设带有备查的状态信号输出。
计算机输入输出接口
  ①接口电路中要2个端口:数据端口,状态端口。用如图8.1.5的接口实现查询输出,把输出缓冲区OUTBUFF中N个字节数输出。其中输入端口作为外设的状态端口。 设状态位DATA6=1(状态端口仅用D6位表示外设的就绪状态)表示外设处于可接受数据的就绪状态,查询编程:
    LEA SI,OUTBUFF
    MOV CX,N
  TS:IN  AL,84H     ;查询头
    TEST AL,01000000B
    JZ  TS
      ;未就绪,循环查询
    MOV AL,[SI]    ;就绪,取数输出
    OUT 80H,AL
    INC SI
    LOOP TS       ;输出未结束继续循环
  ②具有互锁功能的查询输入/出电路
  设外设的就绪信号READY=1(正脉冲、输出):
  a.输入设备就绪表示其提供给主机的数据已准备就绪;
  b.输出设备就绪表示已处于可接受主机数据的就绪状态。
  AGAIN=1信号(输入信号), 它是可使外设进入下一操作的启动信号。
  具有互锁功能的查询输入电路。
  首先我们分析一个8位输入接口电路的原理性结构图如图8.1.6。这是一个采用程序查询方式控制的并行接口电路, 它只有与CPU的连接控制部分、与外设的连接部分,不需要信号转换逻辑。输入接口逻辑包括一个8位带三态输出功能的输入数据锁存器、 带控制三态输出功能的状态触发器和两个双端或门提供对数据缓冲器和状态缓冲器的三态控制。
计算机输入输出接口
  输入数据缓冲器的输出端D7~0连接CPU的数据总线,状态缓冲器的输出连接到数据线D7上, 由CPU通过执行程序查询输入缓冲器的状态。两个双输入端或门分别由片选信号Y2#、Y3#与RD#信号进行控制。控制数据缓冲器的读出控制同时控制了对状态寄存器的复位。
  输入设备的数据线直接与接口的数据锁存器相连。一般输入设备有两个联络信号,一个是来自外设的数据选通信号STB(READY),通常外设向端口输送数据时,READY信号同时有效; 另一个是端口给外设的状态信号ACK(AGAIN), 它表示输入缓冲器的数据是否已经被CPU读取。外设就绪时发出 READY=1(正脉冲):
  READY=1→G=1→DATA→74LS373
    Q=1(供CPU查询:接口数据就绪);
    Q=0→AGAIN=0(禁止下个数据)
  CPU查询Q=1(接口数据就绪),从88H口输入数据→Q=0(清除接口就绪状态,就绪复位)。
    Q=1→AGAIN=1(启动下个数据操作)
  具有互锁功能的查询输出电路与输入电路类似。
  2.中断方式输入输出
  查询方式的缺点:当外设速度较慢时,采用查询方式传送,机器要不断地查询外设状态,等待外设就绪,因而机器的效率低下。
  中断方式下,主机与外设是并行操作的,外设就绪前,主机可以作其他事情;外设就绪后,通过中断请求信号要求CPU挂起当前程序,转向调用外设的(中断)服务程序完成一次传送操作,然后再返回被挂起的程序。所以工作效率高。
  具有互锁功能的中断输入电路
计算机输入输出接口
  输入接口逻辑包括一个8 位带三态输出功能的输入数据锁存器、中断状态触发器和一个双端或门提供对数据缓冲器的三态控制。
  与查询方式相同, 输入数据缓冲器的输出端D7~D0连接CPU的数据总线,中断状态触发器的输出作为中断断请求的状态。或门由片选信号Y2#与RD#信号进行控制。 控制数据缓冲器的读出控制,CPU的中断响应信号控制中断状态触发器的复位。
  外设就绪时发出 READY=1(正脉冲):
  READY=1→G=1→DATA→74LS373
    Q=1→INTR(产生中断请求)
    Q=0→AGAIN=0(禁止下个数据)
  CPU响应中断,从88H口输入数据
    Q=0(清除中断请求,中断复位)
    Q=1→AGAIN=1(启动下个数据操作)
  具有互锁功能的中断输出电路
计算机输入输出接口
  外设就绪时发出 READY=1(正脉冲):
  READY=1→OE=0→DATA→外设
    Q=1→INTR(产生中断:接口已空)
    Q=0→AGAIN=0(禁止再读数据)
  CPU响应中断,从90H口输出数据
    Q=0(清除接口中断状态,中断复位)
    Q=1→AGAIN=1(启动下个数据操作)
  3.DMA方式输入输出
  比起程序查询方式,中断方式节省了大量的用于查询外设工作状态的时间。在中断方式下, CPU不再需要轮流对每个外设进行查询,一方面可以使得CPU与外设并行工作, 另一方面,由于外设具有申请CPU的主动权,可以很好的满足外设对CPU提出输入/输出服务要求的随机性,即具备了实时性。但是,中断控制方式仍然有诸多不足的地方。首先,在整个中断处理过程中都是需要CPU参与。大家知道,CPU在两个任务之间来回进行切换的时候需要进行一定的保护现场和恢复现场的工作, 这些工作对于I/O设备数据传输本身来说是没有实际意义的,而是系统资源的浪费。 其次,在中断方式下, 每申请一次中断,都需要进入中断的应答(响应)周期,重复进行现场保存现场恢复等过程。在需要进行大量数据传输的情况下,地址增1和计数器减1都需要执行程序来实现,中断控制方式显然是效率太低。再次,由中断产生的程序转移必然引起CPU指令队列的刷新, 这也会产生时间的延误。通过前面对微处理器的学习,大家已经知道,对8086来说,取指令和执行指令是并行进行的。 也就是说在CPU指令队列中存放了即将执行的指令。 但是由于中断的产生,CPU当前的指令队列被清除,等中断处理程序执行完毕并返回当前的现场时,执行部件还需要等待指令重新装入才能继续执行当前的程序。 这样一来,CPU的并行工作机制就失去了原有的效率,这种影响在中断产生频繁时尤为严重。
  由于DMA控制外围设备与主存储器之间传送数据不需要执行程序,也不需要用到CPU及其数据寄存器和指令寄存器, 因此,也就不需要做现场的保存与恢复工作,地址增1和计数器减1由DMAC硬件实现,外设与内存间的数据直接通过总线传送不必经过CPU中转,从而使得DMA方式的速度比中断等其他方式的工作速度大大提高。 在DMA方式中,整个数据的传送过程不需要CPU的干预。
  DMA直接存储器访问方式, 适用于数据块的高速传送,数据不通过CPU和程序传送,而是由DMAC(DMA控制器)通过总线请求获取(原本由CPU控制的)总线的控制权,通过总线直接传送:
    外设 计算机输入输出接口 总线内存; 内存总线内存
  数据传送既不花执行指令的时间, 也不要进入CPU中转,在硬件控制下完成直接、高速传送。
  特点:数据块,直接,高速。DMA期间,CPU处于“挂起”的不工作状态。
  4.I/O处理机方式输入输出
  对于带有较多的数据设备,且频繁传输的系统,可以在系统中配套专用的I/O处理机及其程序,与主处理机并行运行,专司I/O操作。采用通信或专用缓冲区或共享存储器等方式与主机交换信息。

回复

使用道具 举报

沙发
发表于 2015-6-15 10:55:39 来自手机 | 只看该作者
大师真是好人,资源共享万岁

回复 支持 反对

使用道具 举报

板凳
发表于 2015-6-15 20:21:57 | 只看该作者
这个资料不错,感谢楼主分享

回复 支持 反对

使用道具 举报

地板
发表于 2015-9-22 08:56:48 | 只看该作者
很全的计算机输入输出接口,值得学习哦!

回复 支持 反对

使用道具 举报

5#
发表于 2016-2-11 16:46:44 | 只看该作者
这个资料很好,感谢楼主分享

回复 支持 反对

使用道具 举报

6#
发表于 2016-2-20 15:52:06 | 只看该作者

这个资料很好,感谢楼主分享,充实了知识。

回复 支持 反对

使用道具 举报

7#
发表于 2016-2-23 17:53:03 | 只看该作者
不错的东西、、、、谢谢分享。

回复 支持 反对

使用道具 举报

8#
发表于 2016-2-24 07:43:08 | 只看该作者
学习了,谢谢

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-30 11:25

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表