微机系统的基本IO接口技术(一)概述

1. I/O接口概述

1.1 I/O接口及功能

I/O即输入/输出,是指微处理器与外设之间的信息交换即通信。由于微处理器与外部设备在速度、信号形式等方面存在很大差异,因此为保证处理器与外设可靠地进行信息传输,必须在二者之间加入一个中间环节,这个中间环节,就是所谓的输入/输出(I/O)接口。I/O接口是连接微处理器和外部设备之间的桥梁,总体上可分为两类:通用I/O接口、专用I/O接口;前者就是可供多种外部设备使用的标准接口,后者是专门为某种用途或某类设备而设计的接口电路,如CRT接口(显示器)、磁盘接口等。
应该指出的是,现代PC中,大部分接口已经被集成到控制芯片组或平台或I/O控制芯片中。

1.2 I/O接口传递的信息

  • 数据信息:数字量(连续二进制数)、模拟量(需要A/D或D/A转换)、开关量(一位二进制数即可表示)
  • 状态信息:外设向微处理器提供的当前工作状态的信息,微处理器接受到这些信息可以了解到外设的情况,从而在合适的时间进行数据传送。常见的外设状态信息有READY信号(输入设备准备好)、BUSY信号(输出设备忙)等。
  • 控制信息:微处理器通过I/O接口向外设发送控制命令,来设置I/O设备的工作方式。

必须注意,无论是哪种信息,它们都是通过系统的数据总线传送的,因此广义上讲,它们都属于数据信息。
一个典型的IO接口如下图所示。首先,地址总线经过译码确定要进行信息交互的I/O接口;然后在控制总线控制信号的驱动下进行数据的交互,数据存在于I/O接口的数据缓冲器中,然后通过内部总线在三种寄存器之间传输,最终与I/O设备进行交互。
在这里插入图片描述

1.3 I/O端口的编址方法

  • 统一编址(存储器映射I/O编址):即把I/O端口的地址也看作是一个内存单元,与内存地址统一混合编址。
    优点:对外设的操作可以直接使用对内存操作指令,指令较多、使用方便。
    缺点:内存空间减少,采用内存操作指令的速度比专用I/O指令慢。
    在这里插入图片描述

  • 独立编址(I/O映射编址):即I/O端口与内存分开独立编址,二者各有一套地址空间,井水不犯河水。这样编址的微处理器都有个M/-IO信号,当使用MOV指令时它自动变成高电平,用IN/OUT指令时它自动变成低电平,有点聪明。。。
    优点:节约内存空间、指令执行速度快。

2. I/O控制方式

直接程序控制方式

  1. 无条件传送方式:不查询外设状态而直接进行输入输出。
  2. 条件传送方式:在传送数据前,微处理器先查询外设状态,如果满足条件,则进行数据传送。这里的条件一般有两种:对于输入而言,当外设准备好时,使接口状态端口的“准备好”信号标志有效,表示微处理器可以接收数据;对于输出而言,当外设已经将数据取走,使接口状态端口的“忙”标志位清除,表示微处理器可以传送下一个数据。在这种方式下,如果外设状态不满足,则一直要等到其状态满足才可以进行IO操作,大大降低了微处理器的执行效率。

中断控制方式:在中断方式下,微处理器和外设各忙各的。当输入设备准备好(READY=1)或者输出设备不忙(BUSY=0)时,向微处理器发送中断请求;微处理器接到请求后,执行完当前指令即暂停执行当前程序,转而执行中断服务程序,在中断服务程序中进行IO操作。这种方式弥补了条件传送方式的查询等待时间,使CPU利用率大大提高。

DMA控制方式:直接由DMA控制器硬件控制数据传输,传输过程无需CPU干预。因为有DMA硬件直接控制,所以速度快、效率高。
在这里插入图片描述

3. I/O接口读写技术

这一部分主要讲了微机在与外设进行信息交换的电路(I/O接口电路)中要设计输入缓冲和输出锁存

  • 输入缓冲:因为系统总线挂接若干I/O端口,而处理器要一个一个地访问I/O接口(分时),所以为了保证访问到某个I/O端口的时候它的信息还在,就要设计输入缓冲。
  • 输出锁存:因为处理器速度比外设快得多,因此需要设计输出锁存将处理器输出的数据锁存起来,这样以后不管总线上的数据如何变化,只要没有再次使锁存器的锁存信号有效,输出端就一直保持原来锁存的信息不变。

4. 并行通信和串行通信

4.1 并行通信

并行通信将一个字节或一个字的各位同时进行传输,这是典型的并行接口电路。
在这里插入图片描述
输入过程:

  1. 外设将数据送到接口,并使“数据输入准备好”有效。数据到达接口后,接口将状态寄存器中的READY置位,供CPU查询(条件传送方式),当然也可以发中断请求(中断控制方式)。
  2. 接口把数据传送到内部的输入缓冲寄存器,同时使“数据输入回答”有效,响应输入设备。
  3. 外设收到输入数据的应答信号后,撤销数据及“数据输入准备好”信号(此时已经无效了)。
  4. 处理器接到中断请求或者查询到READY=1后,从并口的输入缓冲器读取数据;此时接口自动将READY复位,结束一次数据输入过程。

输出过程:

  1. 如果处理器查询到BUSY信号为0,或者收到中断请求让自己输出数据,则处理器向接口输出数据。
  2. 接口给输出设备发一个“数据输出准备好”让外设来接受数据。
  3. 外设收到信号后开始接受,接收完成后发送一个“数据输出回答”信号表示已经收完了。
  4. 接口接到应答后,将BUSY信号复位,结束本次操作等待下一个数据输出。

4.2 串行通信

串行通信就是一位一位地传数据。

4.2.1 工作流程

这是典型的串行通信电路:
在这里插入图片描述
输入过程:

  1. 串行输入设备通过接口的RXD引脚向接口发数据。
  2. 接口接到数据后,通过接收移位寄存器和控制电路将串行数据变成并行数据,同时去掉串行数据中的非数据信息(起始位、停止位、校验位等),然后送入接受数据寄存器。
  3. CPU查询到READY=1或接口发中断请求后,CPU读数据。

输出过程:

就是把上述过程反过来,CPU发并行数据,接口处理成串行数据,并增加有关信息位(起始位、停止位、校验位等),通过TXD引脚传给外设。

4.2.2 数据传输方式

  • 单工:数据只能固定由一边发给另一边。
  • 半双工:两边既可以收,也可以发,但不能同时既収又发。
  • 全双工:两边可以既収又发。

4.2.3 基本类型

异步通信:字符与字符之间的传送是完全异步的、随机的,但一个字符的位与位之间是同步的。异步通信协议需要规定字符串送格式和数据传送速率(波特率)。

字符传送格式如下,从起始位到结束位这一串二进制数称为一帧。
在这里插入图片描述

  • 起始位占一位,必须为0
  • 起始位之后是数据位,由串行通信初始化程序设定。
  • 校验位可有可无,占一位,奇校验或偶校验。如果是奇校验,则数据位和校验位1的数量和必须是奇数,否则传送出错。
  • 停止位位数由初始化程序决定,如果无校验位,则在数据位后面。

波特率:单位时间传送二进制的位数,一般以秒为单位。

例:已知字符格式中数据为8位,无校验,1位停止位,在1分钟内连续不断传送了 69120个字符,求波特率。
答案:起始位+数据为+停止位 = 10位,每秒传送字符:69120 / 60 = 1152,波特率:1152 * 10 = 11520 bits/s

异步通信接口标准中,注意RS-232是负逻辑传送。

同步通信:同步的含义是字符与字符之间时间间隔固定不变。将多个字符连接成一个数据块,数据块前加1或2个同步字符,尾部是校验字符,最后为同步字符,如下:
在这里插入图片描述

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值