第5章 微型计算机和外设的数据传输


教学重点:

  • I/O接口电路的典型结构
  • 无条件传送方式
  • 查询传送方式
  • 中断工作过程

5.1 为什么要用接口电路

  • 存储器都是用来保存信息的,功能单一,传送方式单一(一次必定是传送1个字节或者1个字),品种很有限(只有只读类型和可读/可写类型),存取速度基本上和CPU的工作速度匹配。
  • 微机的外部设备多种多样
  • 工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大
  • 它们不能与CPU直接相连
  • 必须经过中间电路再与系统相连
  • 这部分电路被称为I/O接口电路,通过接口电路对输入/输出过程起一个缓冲和联络的作用
  • 注:接口电路完成相应的信号转换、速度匹配、数据缓冲等功能

5.2 接口电路的概述

什么是接口技术?
连接计算机系统中的各种功能部件,构成一个完整的、实用的计算机系统,这是接口技术的广义定义。依次定义,实现处理器到系统总线连接的总线驱动器、数据收发器、时钟电路等称为处理器借口。此外,还有RAM接口、ROM接口、外部设备接口等等。更为流行的观点认为接口技术是把由处理器、RAM、ROM等组成的基本系统与外部设备连接起来,从而实现计算机与外部世界通讯的一门 技术,即仅指I/O设备接口技术。

什么是I/O接口(电路)?
I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路
PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路
在这里插入图片描述
什么是微机接口技术?
处理微机系统与外设间联系的技术
注意其软硬结合的特点
根据应用系统的需要,使用和构造相应的接口电路,编制配套的接口程序,支持和连接有关的设备

接口功能

  • ⑴ 寻址能力:对送来的片选信号进行识别
  • ⑵ 输入/输出功能:根据读/写信号决定当前进行的是输入操作还是输出操作。
  • ⑶ 数据转换功能:并行数据向串行数据的转换或串行数据向并行数据的转换。
  • ⑷ 联络功能:就绪信号,忙信号等。
  • ⑸ 中断管理:发出中斯请求信号、接收中断响应信号、发送中断类型码的功能。并具有优先级管理功能
  • ⑹ 复位:接收复位信号,从而使接口本身以及所连的外设进行重新启动。
  • ⑺ 可编程:用软件来决定其工作方式,用软件来设置有关的控制信号。
  • ⑻ 错误检测:一类是传输错误。另一类是覆盖错误。
    注:一些接口还可根据具体情况设置其它的检测信息。

5.3 I/O接口与系统的连接

1.CPU与I/O设备之间的信号(三类)

  • (1) ==数据信息 == CPU和外设交换的基本信息,包括三种形式:数字量、模拟量 、开关量。
  • (2) == 状态信息 == 是外设通过接口往CPU传送的,反映了当前外设的工作状态。
    如:“准备好”(READY)信号、“忙”(BUSY)信号
  • (3) 控制信息 是CPU通过接口传送给外设的相关控制信息。
       如:外设的启动信号、停止信号就是常见的控制信息。

2.接口部件的I/O端口

  • ⑴数据端口:CPU和外设进行数据传输时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为I/O端口,每个端口有一个端口地址。用于对来自CPU和内存的数据或者送往CPU和内存的数据起缓冲作用的,这些端口叫数据端口。

  • ⑵控制端口:用来存放CPU发出的命令,以便控制接口和设备的动作,这类端口叫控制端口。

  • ⑶状态端口:用来存放外部设备或者接口部件本身的状态,称为状态端口。
    如下图
    在这里插入图片描述注:
    ⑴输入还是输出,所用到的地址总是对端口而言的,不是对接口部件而言的。
    ⑵为了节省地址空间,将数据输入端口和数据输出端口对应同一个端口地址。同样,状态端口和控制端口也常用同一个端口地址
    ⑶CPU对外设的输入/输出操作就归结为对接口芯片各端口的读/写操作

I/O接口的典型结构:
在这里插入图片描述

CPU与外设主要有数据、状态和控制信息需要相互交换,于是从应用角度看内部:

  • ⑴ 数据寄存器
    输入数据寄存器:保存外设给CPU的数据
    输出数据寄存器:保存CPU给外设的数据
  • ⑵ 状态寄存器
    保存外设或接口电路的状态
  • ⑶ 控制寄存器
    保存CPU给外设或接口电路的命令

3.接口与系统的连接
接口电路位于CPU与外设之间,从结构上看,可以把一个接口分为两个部分。
⑴用来和I/O设备相连;
⑵用来和系统总线相连,这部分接口电路结构类似,连在同一总线上。
下图是一个典型的I/O接口和外部电路的连接图:
在这里插入图片描述

联络信号:读/写信号,以便决定数据传输方向。
地址译码器,片选信号:地址译码器除了接收地址信号外,还用来区分I/0地址空间和内存地址空间的信号(M/ I0)用于译码过程。

注:
⑴一个接口通常有若干个寄存器可读/写,
⑵一般用1-2位低位地址结合读/写信号来实现对接口内部寄存器的寻址。

4.输入输出的寻址方式

(1)接口电路占用的I/O端口有两类编排形式

  • I/O端口与存储器统一编址
    它们共享一个地址空间,如M6800
    优点:
    不需要专门的I/O指令
    I/O数据存取与存储器数据存取一样灵活
    缺点:
    I/O端口要占去部分存储器地址空间
    程序不易阅读(不易分清访存和访问外设)
    在这里插入图片描述

  • I/O端口单独编址
    I/O地址空间独立于存储地址空间,如8086/8088
    优点:
    I/O端口的地址空间独立
    控制和地址译码电路相对简单
    专门的I/O指令使程序清晰易读
    缺点:
    I/O指令没有存储器指令丰富

(2)8088/8086的I/O端口

  • 8088只能通过输入输出指令与外设进行数据交换;呈现给程序员的外设是端口(Port),即I/O地址
  • 8086用于寻址外设端口的地址线为16条,端口最多为216(2的十六次幂)=65536(64K)个,端口号为0000H ~ FFFFH
  • 每个端口用于传送一个字节的外设数据

(3)I/O寻址方式
8088/8086的端口有64K个,无需分段,设计有两种寻址方式

  • 直接寻址:只用于寻址00H ~ FFH前256个端口,操作数i8表示端口号
  • 间接寻址:可用于寻址全部64K个端口,DX寄存器的值就是端口号
    对大于FFH的端口只能采用间接寻址方式

(4)数据交换方式

  • 如果输入输出一个字节,利用AL寄存器
  • 如果输入输出一个字,利用AX寄存器
  • 输入一个字,实际上是从连续两个端口输入两个字节,分别送AL(对应低地址端口)和AH(对应高地址端口)
  • 输出一个字,实际上是将AL(对应低地址端口)和AH(对应高地址端口)两个字节的内容输出给连续两个端口

5.4 CPU和外设之间的数据传送方式

  • 程序控制下的数据传送——通过CPU执行程序中的I/O指令来完成传送,又分为:无条件传送、查询传送、中断传送
  • 直接存储器存取(DMA)——传送请求由外设向DMA控制器(DMAC)提出,后者向CPU申请总线,最后DMAC利用系统总线来完成外设和存储器间的数据传送
  • I/O处理机——CPU委托专门的I/O处理机来管理外设,完成传送和相应的数据处理
  1. 无条件传送方式及其接口
    在CPU与慢速变化的设备交换数据时,可以认为它们总是处于==“就绪”状态,随时可以进行数据传送,这就是无条件传送,或称立即传送、同步传送==
    适合于简单设备,如LED数码管、按键或按纽等
    无条件传送的接口和操作均十分简单
    这种传送有前提:外设必须随时就绪

  2. 条件传送方式
    又称查询方式,即通过程序查询相应设备的状态,若状态不符合,则CPU不能进行输入/输出操作,需要等待;只有当状态信号符合要求时,CPU才能进行相应的输入/输出操作。

一般外设均可以提供一些反映其状态的信号,如对输入设备来说,它能够提供“准备好”(“READY”)信号,“READY” =1 表示输入数据已准备好。输出设备则提供“忙”(“BUSY”)信号,“BUSY”=1表示当前时刻不能接收CPU来的数据,只有当“BUSY”=0时,才表明它可以接受来自于CPU的输出数据。

CPU需要先了解(查询)外设的工作状态,然后在外设可以交换信息的情况下(就绪)实现数据输入或输出
对多个外设的情况,则CPU按一定顺序依次查询(轮询)。先查询的外设将优先进行数据交换
查询传送的特点是:工作可靠,适用面宽,但传送效率低

  • ⑴ 查询环节
    寻址状态口
    读取状态寄存器的标志位
    若不就绪就继续查询,直至就绪
  • ⑵ 传送环节
    寻址数据口
    是输入,通过输入指令从数据端口读入数据
    是输出,通过输出指令向数据端口输出数据
    在这里插入图片描述
  1. 中断传送方式
    为什么要采用中断传送方式?
    从查询式的传输过程可以看出,它的优点是硬件开销小,使用起来比较简单。但在此方式下,CPU要不断地查询外设的状态,当外设未准备好时,CPU就只能循环等待,不能执行其它程序,这样就浪费了CPU的大量时间,降低了主机的利用率。
    为了解决这个矛盾,我们提出了中断传送方式:即当CPU进行主程序操作时,外设的数据已存入输入端口的数据寄存器;或端口的数据输出寄存器已空,由外设通过接口电路向CPU发出中断请求信号,CPU在满足一定的条件下,暂停执行当前正在执行的主程序,转入执行相应能够进行输入/输出操作的子程序,待输入/输出操作执行完毕之后CPU即返回继续执行原来被中断的主程序。这样CPU就避免了把大量时间耗费在等待、查询状态信号的操作上,使其工作效率得以大大地提高。
    在这里插入图片描述CPU在执行程序中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序

中断传送是一种效率更高的程序传送方式
进行传送的中断服务程序是预先设计好的
中断请求是外设随机向CPU提出的
CPU对请求的检测是有规律的:一般是在每条指令的最后一个时钟周期采样中断请求输入引脚

传送方式的比较:

  • 无条件传送:慢速外设需与CPU保持同步
  • 查询传送: 简单实用,效率较低
  • 中断传送:外设主动,可与CPU并行工作,但每次传送需要大量额外时间开销
  • DMA传送:DMAC控制,外设直接和存储器进行数据传送,适合大量、快速数据传送
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值