
【微机原理及接口技术】输入输出接口
本篇文章将就输入输出接口来讲解I/O接口的概述,以及CPU与外设的数据传输方式。
【微机原理及接口技术】输入输出接口
文章目录
前言
本篇文章将就输入输出接口来讲解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接口的典型结构
- 接口电路的内部结构
- 接口电路的外部特性
- 接口电路芯片的分类
- 接口电路的可编程性
- 接口电路的内部结构
因为: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控制,外设直接和存储器进行数据传输,适合大量、快速数据传输
总结
到这里这篇文章的内容就结束了,谢谢大家的观看,如果有好的建议可以留言喔,谢谢大家啦!
更多推荐
所有评论(0)