当前位置:文档之家› 基本的IO接口

基本的IO接口

基本的IO接口
基本的IO接口

第3章基本的IO接口

3.1 I/O概述

I/O接口基本概念

1.为什么要引入接口

?微机和I/O设备的信息类型和格式可能不一样。

?微机和I/O设备信号传输处理的速度可能不匹配。

?不用接口,I/O直接接CPU,随着外设增加,会大大降低CPU的效率。

?I/O直接接CPU,会使外设硬件结构过于依赖CPU,对外设本身发展不利。

2.接口的概念

3.I/O接口与I/O设备

不同I/O设备对应I/O接口不同。

I/O接口受CPU控制,I/O设备受I/O接口控制。

为增加通用性,I/O接口的接口电路一般均具有可编程功能。

微机的应用离不开与外部设备接口的设计、选用和连接。

4.I/O接口功能

.数据缓冲功能:

通过寄存器或锁存器实现。存放数据的寄存器或锁存器称之为数据口(输入、输出、双

向)。数据传送的方向以CPU/MPU为基准。

.接受和执行CPU命令功能:

存放CPU命令代码的寄存器称之为命令口,存放执行状态信息的寄存器称之为状态口。

一般,命令口为输出口,状态口为输入口。

.设备选择功能:

CPU通过地址译码选择不同外设。即CPU通过地址译码选择不同I/O接口。

.信号转换功能:

协调总线信号与I/O设备信号。转换包括信号的逻辑关系、时序配合和电平转换。

.中断管理功能:

当外设需要及时得到CPU的服务,特别是在出现故障时,在接口中设置中断控制电路,为CPU处理有关中断事务(如发出中断请求、进行中断优先级排队、提供中断向量等),这样既做到微机系统对外界的实时响应,又使CPU与外设并行工作,提高了CPU的效率。

.数据宽度变换的功能

CPU能直接处理的是并行数据(8位、16位或32位等),而有的外设(如串行通信设备、绘图仪、电传打字机等)只能处理串行数据,在这种情况下,接口就应具有数据"并-串"和"串-并"变换的能力。可以通过编程改变接口性能及工作方式的接口芯片称为通用接口芯片,反之,称为专用接口芯片。

.可编程功能:

增加接口的灵活性和智能性。

5.I/O接口组成

接口由接口硬件和接口软件组成。

1.接口硬件

CPU侧引脚信号:

地址信号:选择I/O接口中的不同寄存器;

数据信号:根据命令类型,送到对应的寄存器中,或从寄存器中取得数据或状态;

控制信号:控制命令的执行、时序、信号同步和片选;

状态信号:外设工作状态送给接口的状态寄存器;

状态信号:接口的部分工作状态信号。

根据控制寄存器、状态寄存器、总线控制信号及外设状态信号控制I/O接口的工作。

外设侧引脚信号:

数据信号:接口缓冲寄存器与外设间的数据交换;

状态信号:外设工作状态送给接口的状态寄存器;

控制信号:接口的内部控制逻辑控制外设工作的控制信号和同步信号。

内部控制逻辑:

根据控制寄存器、状态寄存器、总线控制信号及外设状态信号控制I/O接口的工作。

2.接口软件(设备驱动程序)

初始化程序段:设置接口工作方式及初始条件。

传送方式处理程序段:CPU针对不同的I/O设备有不同的处理方式。

主控程序段:完成接口任务的程序。

程序终止与退出程序段:接口电路硬件保护及操作系统中数据恢复。

辅助程序段:提供人-机对话手段。

3.1.1 CPU与I/O之间的接口信号

1)数据信息

数字量、模拟量、开关量等。

2)状态信息

准备就绪信号、请求信号、忙/闲信号等。

3)控制信息

读写信号、响应信号等。

3.1.2 I/O端口及CPU对I/O端口的访问

1)I/O端口(PORT)

I/O端口是供CPU直接存取访问的接口中的寄存器或电路。接口中的命令口、状态口和数据口均为I/O端口。

一般情况下,一个端口只能写入或读出一种信息,但是也可能几种信息共用一个端口,比如8255的一个命令口可以接收方式控制字和位控字这两种命令。甚至一个口地址对应多个端口的物理单元,由接口自行解决冲突。在实际应用中,接口芯片内部端口地址的设置有各种技术,比如跟随技术、预留技术、特征位技术、共用口地址技术等,与存储芯片内部地址的划分有很多不同之处。

2)I/O端口地址

对接口中的不同寄存器或电路的编号称为I/O端口地址。CPU通过向命令端口发命令来实现对接口最终对设备进行控制。访问设备实际上是访问相关的端口。

3)端口的类型:数据端口、状态端口、控制端

口。

2.CPU对I/O端口的访问

读:I/O地址→ AB → I/O接口

READ信号→ CB → I/O接口

I/O数据→ DB → CPU

写:数据→ DB → I/O接口

I/O地址→ AB → I/O接口

WRITE信号→ CB → I/O接口

3.1.3I/O端口的编址方式

1.独立的I/O编址

I/O端口地址空间与存储器地址空间相互独立。

优点:

MEM地址空间不受I/O端口地址空间影响;

I/O端口数量不多,占用地址线少,地址译码简单,速度较快;

使用专用I/O命令(IN/OUT),与MEM访问命令(LOAD/STORE、MOV)有明显区别,便于理解和检查。

缺点:

专用I/O指令增加指令系统复杂性,且I/O 指令类型少,程序设计灵活性较差;

要求处理器提供MEMR/MEMW和IOR/IOW两组控制信号,增加了控制逻辑的复杂性。

2.存储器映象编址(统一编址)

一个I/O端口等同于一个存储器单元。存储单元和I/O端口统一编址。

优点:

对I/O端口的访问命令与对存储器单元访问相同,不必使用专用I/O指令;外设数目或I/O 寄存器数几乎不受限制。

微机系统读写控制逻辑较简单。

缺点:

I/O端口占用部分MEM空间,可用MEM空间减小;

对MEM访问指令较长,执行速度较慢;

I/O端口地址译码时间较长。

3.现代微机的I/O编址

独立的I/O编址方式,I/O寻址空间为64

KB。

I/O指令采用直接寻址和间接寻址方式;

直接寻址范围:00 – 0FFH,间接寻址范围:

0000 – 0FFFFH。

3.1.5 Intel系列微机80X86的I/O指令

1)I/O端口与累加器间I/O指令——寄存器I/O指令

格式:IN、OUT。

结果:完成I/O端口和EAX、AX、AL之间的数据传送,可使用直接寻址和间接寻址方式。

举例:IN AL,DX (后送前)

OUT E0H,AX

2)I/O端口与存储器间I/O指令——块I/O指令

格式:INSB/W/D、OUTSB/W/D。

参数:用DX指定I/O端口地址,输入/输出时的目的/源RAM地址用ES:DI(EDI)/DS:SI(ESI) 指定。

EFLAG寄存器中DF位来决定地址加和减。

结果:通过前缀REP在I/O端口和连续的存储器空间之间传送数据。

3.2 I/O数据传输方式

3.2.1 程序控制传输方式

1. 无条件传送方式

特点:输入时假设外设已准备好,输出时假设外设空闲。

要求:接口输入时加缓冲器,输出时加锁存器。CPU 与外设一定要能保证非常准确的同步。

应用:对简单外设的操作。

无条件传送方式一般只需要数据端口。

2.条件传送方式(查询方式)

工作原理:CPU查询外设已准备好后,才传送数据。

特点:CPU与外设间自然同步。

要求:需要增加表示外部设备状态的简单硬件电路。

应用:适用在CPU不太忙且传送速度要求不高时。

采用查询方式的接口一般需要两个端口,即数据端口和状态端口。

3.2.2 中断传送方式

特点:CPU与外设可同时工作。

要求:接口中需要中断控制逻辑支持。

应用:适用与非高速度大量数据传送时。

3.2.3 直接存储器存取(DMA)方式

特点:数据的传送不经过CPU,I/O设备管理由CPU 控制,简化CPU对I/O的控制。

要求:需要DMA控制器及相关逻辑支持。

应用:适用与高速度大量数据传送时。

3.2.4 I/O处理机方式

特点:I/O处理机接管了CPU的各种I/O操作及I/O 控制功能,CPU能与IO处理机并行工作。

要求:需要IO处理机支持。

应用:高速I/O归IO处理机管理,低速I/O设备归CPU管理。

3.3 I/O端口地址分配及地址译码

按照x86系列微机系统中I/O接口电路的复杂程度及应用形式,可以把I/O接口的硬件分为两大类:(1)系统板上的I/O接口芯片。这些芯片大多都是可编程的大规模集成电路,完成相应的接口操作,如定时器/计数器、中断控制器、并行接口等。在PC/AT 微机中,这些接口芯片是由如8259、8237A等芯片组成。但随着PLD技术的发展,目前PC机系统主板上的所有I /O接口功能已集成在一片或几片大规模集成电路芯片中。

(2)扩展槽上的I / O接口控制卡。这些接口控制卡是由若干个集成电路按一定的逻辑功能组成的接口部件,如多功能卡、图形卡等。

3.3.1 PC机的I/O地址分配

PC系列I/O地址线有16根,对应64K空间;I/O端口译码只使用了A0-A9,共1024个端口,地址范围为0000H~03FFH。

不同的微机系统对I/O端口地址的分配不同。

初期:A9=0端口(512个)为系统板所用,其他端口(512个)为扩展槽所用。

系统板I/O接口芯片端口地址(0000H-00FFH):

PC/AT:A8=A9=0端口(256个)为系统板所用,其他端口(768个)为扩展槽所用。

系统板上接口芯片的端口地址

扩展槽I/O接口卡端口地址(0100H-03FFH):

扩展槽上接口控制卡的端口地址

3.3.2I/O端口地址译码电路的设计

1.I/O端口地址译码电路中地址线的分配

参与I/O地址译码的信号:地址信号和有关的控制信号

I/O端口地址译码的方法灵活多样,通常可由地址信号和控制信号的不同组合来选择端口地址。与存储器的地址单元类似,一般是把地址信号分为两部分:一部分是高位地址线与CPU或总线的控制信号组合,经

过译码电路产生一个片选信号CS去选择某个I/O接口芯片,从而实现接口芯片的片间选择;另一部分是低位地址线直接连到I/O接口芯片,经过接口芯片内部的地址译码电路选择该接口电路的某个寄存器端口,即实现接口芯片的片内寻址。

PC机I/O接口芯片片选信号:IOW/IOR信号(有效)、AEN信号(无效)和I/O端口地址高位经过译码得到。

PC机I/O接口芯片内部端口地址:由I/O端口地址低位直接组成。

端口地址的使用方法;

1)利用R/W信号访问同一端口地址的不同端口寄存器。

2)利用传递数据中的某些特征位来区分不

同的端口寄存器。

3)由接口芯片按接收数据的先后顺序区分不同的端口寄存器。

等等。

用户I/O端口地址选用原则:

1)系统配置占用的端口地址一律不能用;

2)厂家声明保留的端口地址不要用;

3)其余端口地址可用,为避免冲突最好采用DIP。

2. I/O端口地址译码电路的两个设计原则

1)正确识别I/O周期。

2)减少译码电路的器件延时。

3.I/O端口地址译码电路设计

1)固定式端口地址译码

a)接口中只有一个端口时可采用门电路构成。

b)接口中有多个端口时一般采用译码器电路构成,常见的译码器有74LS138、74LS154等。

74LS138译码器:

工作条件:G1=1,G2A=G2B=0。

工作原理:将复合的输入信号变为枚举的输出信号。

74LS138真值表

2.可选式端口地址译码

(1)使用比较器+地址开关方法

74LS688比较器:

当P0~7≠Q0~7时,

P=1,输出高电平。

当P0~7=Q0~7时,

P=0,输出低电平。

比较器和地址开关产生一个信号参与片选。

(2)使用异或门+地址开关方法

用异或门代替比较器和地址开关比较。

如用3片74LS136代替74LS688。

74LS136:

逻辑:

3=1⊙2;6=4⊙5;

8=9⊙10;11=12⊙13;

相关主题
文本预览
相关文档 最新文档