【微机原理及接口技术】输入输出接口

【微机原理及接口技术】输入输出接口



前言

本篇文章将就输入输出接口来讲解I/O接口的概述,以及CPU与外设的数据传输方式


一、I/O接口的概述

  • 1.输入输出信息
  • 2.I/O接口的主要功能
  • 3.I/O接口的典型结构
  • 4.I/O端口的编址
  • 5.I/O地址的译码
  • 6.8088/8086的输入输出指令

为什么需要I/O接口(电路)?

微机的外部设备多种多样
工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大
它们不能与CPU直接相连
必须经过中间电路再与CPU相连
这部分电路被称为I/O接口电路

什么是I/O接口(电路)?

I/O接口是位于CPU与外设间、用来协助完成数据传输和控制任务的逻辑电路
在这里插入图片描述

什么是微机接口技术?

处理CPU与外设间联系的技术
注意其软硬结合的特点
根据应用系统的需要:使用和构造相应的接口电路。编制配套的接口程序。支持和连接有关的设备。

1.输入输出信息

数据信息 CPU <—> 外设
-数字量
模拟量
开关量
状态信息 CPU <— 外设
控制信息 CPU —> 外设

2.I/O接口的主要功能

⑴ 对输入输出数据进行缓冲和锁存
输出接口有锁存环节
输入接口有缓冲环节
⑵ 对信号的形式和数据的格式进行变换
⑶ 对I/O端口进行寻址
⑷ 与CPU和I/O设备进行联络

3.I/O接口的典型结构

在这里插入图片描述

  1. 接口电路的内部结构
  2. 接口电路的外部特性
  3. 接口电路芯片的分类
  4. 接口电路的可编程性
  • 接口电路的内部结构
    因为:CPU与外设之间交互三类数据信息
    所以:I/O接口电路一般由三类寄存器(I/O端口)组成
    三类I/O端口:
    ⑴ 数据端口
    保存外设给CPU和CPU发往外设的数据
    ⑵ 状态端口
    保存外设或接口电路的状态
    ⑶ 控制端口
    保存CPU给外设或接口电路的命令
    端口(PORT)
    I/O端口就是寄存器
    每个端口保存和交换不同的信息
    一个接口电路可以具有多个I/O端口
    每个端口有一个端口地址(I/O地址)
    输入、输出端口可以是同一个I/O地址
  • 接口电路的外部特性
    主要体现在引脚上,分成两侧信号
    面向CPU一侧的信号:
    用于与CPU连接
    主要是数据、地址和控制信号
    面向外设一侧的信号:
    用于与外设连接
    提供的信号五花八门
    功能定义、时序及有效电平等差异较大
  • 接口电路芯片的分类
    接口电路核心部分往往是一块或数块大规模集成电路芯片(接口芯片):
    通用接口芯片:
    支持通用的数据输入输出和控制的接口芯片
    面向外设的专用接口芯片:
    针对某种外设设计、与该种外设接口
    面向微机系统的专用接口芯片
    与CPU和系统配套使用,以增强其总体功能
  • 接口电路的可编程性
    许多接口电路具有多种功能和工作方式,可以通过编程的方法选定其中一种
    接口需要进行物理连接,还需要编写接口软件
    接口软件有两类:
    初始化程序段——设定芯片工作方式等
    数据交换程序段——管理、控制、驱动外设,负责外设和CPU间信息交换

4.I/O端口的编址

接口电路占用的I/O端口有两类编排形式:
I/O端口单独编址
I/O地址空间独立于存储地址空间
如8086/8088
I/O端口与存储器统一编址
它们共享一个地址空间
如M6800

  • I/O端口单独编址
    在这里插入图片描述
    优点:
    I/O端口的地址空间独立
    控制和地址译码电路相对简单
    缺点:
    I/O指令没有存储器指令丰富。
    8086采用I/O端口独立编址
  • I/O端口与存储器统一编址
    在这里插入图片描述
    优点:
    不需要专门的I/O指令
    I/O数据存取与存储器数据存取一样灵活
    缺点:
    I/O端口要占去部分存储器地址空间
    程序不易阅读(不易分清访问存储器和访问外设)

5.I/O地址的译码

译码方法:
I/O地址与存储器地址一样
——全译码、部分译码
译码部件:
集成电路、门电路、可编程逻辑器件PLD

IBM PC/AT主机板的I/O译码电路
在这里插入图片描述

6.8088/8086的输入输出指令

输入指令
IN AL,i8/DX ;字节输入
IN AX,i8/DX ;字输入
输出指令
OUT i8/DX,AL ;字节输出
OUT i8/DX,AX ;字输出
在这里插入图片描述
在这里插入图片描述


二、数据传输方式

程序传输方式——通过CPU执行程序中的I/O指令来完成传输,分为:无条件传输方式、查询传输方式
中断传输方式——I/O设备就绪后,向CPU发出中断请求,CPU暂停当前程序,转去执行中断服务程序,与外设进行数据传输,CPU执行完中断服务程序后,继续返回执行原程序。
DMA(直接存储器存取)传输方式——传输请求由外设向DMA控制器(DMAC)提出,DMAC向CPU申请总线,最后DMAC利用系统总线来完成外设和存储器间的数据传输。

1.无条件传输方式

在CPU与慢速变化的设备交换数据时,可以认为它们总是处于“就绪”状态随时可以进行数据传输,这就是无条件传输。
适合于简单设备,如LED数码管、按键或按钮等。
无条件传输的接口和操作均十分简单
这种传输有前提:外设必须随时就绪

无条件传输:输入输出接口示例

  • next: mov dx,8000H ;DX指向数据端口
    in al,dx ;从输入端口读开关状态
    not al ;反相
    out dx,al ;送输出端口显示
    call delay ;调子程序延时
    jmp next ;重复

2.查询传输方式

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

就绪(Ready)
就绪:满,空、闲、不忙
输入场合
“就绪”说明输入接口(外设)已准备好输往CPU的数据,正等着CPU来读取
该状态也可用接口中数据缓冲器已“满”来描述
输出场合

“就绪”说明输出接口(外设)已做好准备,等待接收CPU要输出的数据
该状态也可用接口数据缓冲器已“空”、或者用**接口(外设)“闲”或不“忙(Busy)”**来描述

查询传输的两个环节
⑴ 查询环节
寻址状态端口
读取状态端口的标志位
若不就绪,则继续查询,直至就绪
⑵ 传输环节
寻址数据端口
是输入,通过输入指令从数据端口读入数据
是输出,通过输出指令向数据端口输出数据
在这里插入图片描述

查询传输:输入接口示例
mov dx,8000H ;DX指向状态端口
status: in al,dx ;读状态端口
test al,01h ;测试标志位D0
jz status ;D0=0,未就绪,继续查询
inc dx ;D0=1,就绪,DX指向数据端口
in al,dx ;从数据端口输入数据

3.中断传输方式

中断传输是一种效率更高的传输方式,CPU和外设并行工作
进行传输的中断服务程序是预先设计好的
中断请求是外设随机向CPU提出的
CPU对请求的检测是有规律的:一般是在每条指令的最后一个时钟周期采样中断请求输入引脚
在这里插入图片描述
CPU在执行程序中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序。

4.DMA传输方式

希望克服程序控制传输的不足:
外设→CPU→存储器
外设←CPU←存储器
直接存储器存取DMA:
外设→存储器
外设←存储器
CPU释放总线,由DMA控制器管理

DMA传输的工作过程
⑴ CPU对DMA控制器进行初始化设置
⑵ 外设、DMAC和CPU三者通过应答信号建立联系:CPU将总线交给DMAC控制
⑶ DMA传输
DMA读存储器:存储器 → 外设
DMA写存储器:存储器 ← 外设
⑷ 自动增减地址和计数,判断传输完成否

传输方式的比较

无条件传输:慢速外设需与CPU保持同步
查询传输: 简单实用,效率较低
中断传输:外设主动,可与CPU并行工作,但每次传输需要大量额外时间开销
DMA传输:DMAC控制,外设直接和存储器进行数据传输,适合大量、快速数据传输


总结

到这里这篇文章的内容就结束了,谢谢大家的观看,如果有好的建议可以留言喔,谢谢大家啦!

  • 57
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 34
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值