微型计算机的输入 /输出
? CPU与外设通讯的特点
? 输入 /输出方式
? CPU与外设通信的接口
? 8086CPU的输入 /输出
一, CPU与 外设 通信特点
1,通信特点
? 需要有接口作为 CPU与外设通讯的桥梁;
? 需要有数据信息传送之前的“联络”;
? 要传递的信息有三方面内容:状态、数据
及控制信息。
2、接口的用途
( 1) I/O地址译码与设备选择。
( 2)信息的输入输出。
( 3)命令、数据和状态的缓冲与锁存。
( 4)信息转换。
为了完成上述功能,CPU与 I/O接口
进行通信实际上是通过 I/O接口内部的一
组寄存器来实现的,这些寄存器统称为
I/O端口:
? 进行数据格式转换,如正负逻辑的转换,
串行与并行数据转换等;
? 进行电平转换,如 TTL电平与 MOS电平
间的转换;
? 协调速度,如采用锁存、缓冲、驱动等;
? 时序控制,提供实时时钟信号。
? 一般接口有一组输入 /输出端口寄存器:数据端口
寄存器、状态端口寄存器、控制端口寄存器。
? 数据端口寄存器:为输入 /输出 CPU和存储器的数
据提供缓冲。对应传送的是数据信息,其可以是:
数字量、模拟量、开关量等。
? 状态端口寄存器:保存外设和接口状态信息,供
CPU查询。对应传送的是状态信息,如:忙、就
绪、满、空等。
? 控制端口寄存器:保存 CPU发出的命令,以控制
接口和外设所执行的动作。对应传送的是控制信
息,如:控制外设启动和停止等。
目前有通用的可编程接口电路(即可编程接
口芯片)。
3,I/O 端口的寻址方式
接口电路通常包含一组能够与处理器
交换信息的寄存器,称为 I/O端口寄存器,
简称为 I/O端口
1)数据端口 —— 存放数据信息
2)状态端口 —— 存放状态信息,即反
映外设当前工作状态的信息
3)控制端口 —— 存放控制信息
输入 /输出 (I/O)端口寻址方式
在微机中,CPU与存储器,I/O设
备间通过数据总线交换信息,如何区分现
在访问的是 I/O设备还是存储器?即对外
设的寻址问题。
目前主要有两种方式:
1,存储器映像的 I/O寻址
存储单元和 I/O端口的地址统一编址
2,I/O映像的 I/O寻址
I/O端口地址与存储单元地址分开编址
1、外设与存储器独立编址
? 又称专用 I/O指令寻址方式,I/O端口地址与存
储器地址是分开的。 CPU对端口寄存器的访问通过
IN和 OUT指令完成,并有直接寻址方式和间接寻址
方式两种。它们寻址空间不同。
直接寻址,IN AL,PORT;端口 PORT的一个
字节送 AL。
IN AX,PORT; PORT和 PORT+1
连续两个端口 16位数据送 AX,其中
PORT口数据给 AL,PORT+1口数据给 AH。
OUT PORT,AL
OUT PORT,AX
直接寻址方式端口地址号的范围是 00H~FFH。
? 间接寻址,MOV DX,PORT
OUT DX,AL; (PORT) AL
IN AX,DX;
AX ( PORT,PORT+1)
间接寻址方式端口地址号的范围是 000H~FFFFH。
? M/IO=0:低 8位( 16位)地址作为端口地址指向
I/O端口;
? 读写控制信号 RD和 WR控制 I/O设备和存储器的读
和写操作。
? 8086系列构成的微机系统均采用此寻址方式。且用专
用的 I/O指令。
二、外设与存储器统一编址
又称存储器映象寻址。此时每个 I/O端口看作存
储器中的一个单元,并赋以存储器地址。当 CPU要访
问 I/O端口时,如同访问存储器一样,所有访问存储
器的指令同样适合于 I/O端口,通常把存储器中最后
一小部分地址分配给各个 I/O接口。
优点:简化指令系统设计,可使用全部存储器指令。
缺点:减少一定量的内存容量,数据存取时间长 (MOV需
20个以上时钟周期,专用 I/O指令 10个时钟周期。
( a )存储器映射方式示意图 ( b ) I/ O 映射方式示意图
图 6 -1 I/O 映射方式和存储器映射方式的示意图
I/O 空间
0000H
FFFFH
00000H
内存空间
FFFFFH
1M
00000H
供 I/O 接
口使用
内存空间
FFFFFH
二,输入 /输出方式
1、程序控制传送方式
( 1)同步传送方式
( 2) 异步查询方式
( 3) 中断方式
2、直接存储器存取方式
? 程序控制传送方式
? 同步传送方式
CPU直接与外设传送数据并不需要
了解外设状态,认为外设已经准备就绪,
直接与外设传送数据
由于不查询外设状态,接口电路不
需要状态寄存器
? 异步查询方式
在执行输入输出前,要先查询接口中状态寄
存器的状态。
输入时,状态寄存器的状态指示要输入的数
据是否已经准备就绪;
输出时,状态寄存器的状态指示输出设备是
否空闲。
CPU在传送前,利用程序不断询问外设
的状态,若外设准备好,CPU就立即与外设进
行数据交换;若没有准备好,则 CPU就处于循
环查询状态,直到外设准备好为止。
? 查询输入
假设状态寄存器,用 Status_port表示其地
址 ;数据寄存器,用 Data_port表示其地址 ;
设状态口最高位为 1表示数据准备好,为 0
表示数据没准备好。
查询输入流程图
读状态信息
准备好?
输入数据
N
Y
查询工作方式连接示意图
CPU 接口 外设系统总线
状态
数据
控制
AGAIN,IN AL,Status_port
AND 80H ;测状态口最高位
JZ AGAIN
IN AL,Data_port
? 查询输出
假设状态寄存器,用 Status_port表
示其地址 ; 数据寄存器,用 Data_port
表示其地址 ;
设状态口最高位为 1表示输出设备
忙,为 0表示输出设备空闲。
查询输出流程图
读状态信息
Busy?
输出数据
N
Y
准备输出数据
AGAIN,IN AL,Status_port ;读状态信息
TEST AL,80H
JNZ AGAIN ;最高位 =1时,忙
MOV AL,STORE ;最高位 =0时,

OUT Data_port,AL
中断方式
当外设作好传送准备后,主动向 CPU请求
中断,CPU响应中断后在中断处理程序中与外设
交换数据。
在中断未发生时,CPU可以执行其他程序,
这样可以提高 CPU的利用率。
?直接存储器存取方式
( DMA) (Direct Memory Access) 。
在高速的外设或成块交换数据的情况,采用程
序控制方式进行数据的传输,是无法满足要求的。
在这种情况下,采用 DMA方式。
DMA方式是在外设与内存间建立起直
接的通道,CPU不再直接参加外设和内存
间的数据传输。但系统需要进行 DMA传输
时,将 CPU对地址和数据及控制线的管理
权交由 DMA控制器进行控制,当完成了一
次 DMA数据传输后,再将这个控制权还给
CPU,这些工作都是由硬件自动实现的,
并不需要程序进行控制。
三, CPU与外设通信的接口
1、同步传送方式与接口
不查询外设状态,认为外设已经准
备就绪,直接与外设传送数据。
输入:缓冲器(如,74LS244)
输出:锁存器(如,74LS273)
2、异步传送方式与接口
必须查询外设状态,然后再决定
是否与外设传送数据。
查询方式的输入接口电路
查询方式的输出接口电路
查询方式的输出接口电路举例
四, 8086CPU的输入 /输出
1,8086CPU的 I/ O指令
( 1) 直接寻址输入/输出指令 (八位端口地址 )
IN AL,n (字节输入 )
IN AX,n (字输入 )
OUT n,AL (字节输出 )
OUT n,AX (字输出 )
( 2) DX寄存器间接寻址输入(十六位端
口地址)
IN AL,DX (字节输入 )
IN AX,DX (字输入 )
OUT DX,AL (字节输出 )
OUT DX,AX (字输出 )
2,有关端口地址问题
8086CPU与外设交换数据可以字或字节进行,
当以字节进行时, 偶地址端口的字节数据由低 8位
数据线 D7~ D0位传送, 奇地址端口的字节数据由
高 8位数据线 D15~ D8传送, 当用户在安排外设的
端口地址时, 如果外设是以 8位的方式与 CPU连接,
就只能将其数据线或者与 CPU的低八位或者与高
八位连接, 这样同一台外设的所有寄存器端口地
址都只能是偶地址或是奇地址, 这时设备的端口
地址就会是不连续的 。
? 一个简单的微机系统需要 CPU、存
储器、基本的输入/输出系统以及将它
们连接在一起的各种信号线和接口电路。
? 微机与外界交换信息称为输入或输出,
凡是受计算机控制并能与计算机交换信
息的设备称为输入 /输出设备 (I/O设备 ),
或称为 外设 。
? 外设不能直接与微机相联,需通过接
口电路协调它们之间的工作。