输入输出接口和总线
DMA传输:
外设
内存
外设直接与存储器进行数据交换 ,CPU不再担 当数据传输的中介者;
总线由DMA控制器(DMAC)进行控制(CPU 要放弃总线控制权),内存/外设的地址和读写 控制信号均由DMAC提供。
优点:数据传输由DMA硬件来控制,数据直 接在内存和外设之间交换,可以达到很高的 传输速率(可达几MB/秒)
D7 Q2
反相器
c
Q3
d
Q4
e
CP Q5
f
Q6
g
Q7
DP
74LS244
D0 O1 I1 D1 O2 I2 D2 O3 I3 D3 O4 I4
#E1
+5V K0~K3
ห้องสมุดไป่ตู้应程序段如下:
……
Seg7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,67H,77H,7CH,39H,5EH,79H,71H
第六章 输入/输出接口和总线
本章内容
基本概念
I/O端口的编址 输入输出的基本方法:
1、程序控制的输入/输出方法 (又分为:无条件传送和查询式传送或有条件传送)
2、中断方式传送 3、DMA方式传送
中断
中断基本概念
DMA*
DMA的基本概念
6.1 输入/输出接口(I/O接口)
6.1.1 概述
常用芯片:(教材图6.3)
74LS373(具有三态输出的锁存器,内部结构见图 6.3)
应用例子:发光二极管接口
74LS373
+5V
D0~D7 A0~A15 IOW#
D0 |
Q0
=1
R
译
D7 ...
...
... ...
码
CP
器
R
Q7
=1
/OE
GND
输入/输出接口综合应用例子
根据开关状态在7段数码管上显示数字或符号
不同外设具有的端口数各不相同,计算机中为每 一个端口都赋予一个惟一编号——称为端口地址 (或端口号)。
端口有两种编址方式:统一编址和独立编址。
1. 统一编址
地址空间(共1MB)
把外设接口与内存统一进行
0
编址。各占据统一地址空间
的不同部分。
优点
指令统一,灵活; 访问控制信号统一,使用同一
总线是计算机系统各部件之间传输地址、 数据和控制信息的通道。
任一时刻,只能有一个部件/设备通过总 线发送数据,其他部件只能处于接收状 态。
总线的分类及特点
按传送信息的类型划分
数据总线(Data Bus,DB)
传输数据信息,双向三态 其宽度决定了其数据传输能力
例如,ISA总线为16位,PCI总线为32/64位
A2 A1 A0
IOR
74LS138
&G
Y0
≥1
G2A
G2B
C
Y3
B
A
D5
≥1 3F8H
74LS374
D7-D0 Q7 Q6 Q5 Q4 Q3 Q2 Q1
CP Q0 OE
3FBH
≥1
BUSY Q S D
Q CP 状态端口
D7 外 D6 设
D5 D4 D3 D2 D1 D0
STROBE
程序段?
6.3.3 中断方式传送
用74LS273作为输出接口,把数据送到7段数码管
74LS273的端口地址假设为F0H
用74LS244作为输入口,读入开关K0~K3的状态
74LS244的端口地址假设为F1H
当开关的状态分别为0000~1111时,在7段数码管上 对应显示’0’~’F’
(7段码表见下页)
符号 ’0’ ’1’ ’2’ ’3’ ’4’ ’5’ ’6’ ’7’
DMA传送原理示意图
CPU
②⑥
HOLD
HLDA
③⑦
DMAC
①
DRQ
DACK
④
外设接口
AEN IOW IOR
AEN MEMW MEMR
IOW IOR AEN MEMW MEMR IOW IOR
MEMW MEMR
系统总线
⑤
① 外设发出DMA请求 ② DMAC向CPU申请总线 ③ CPU完成当前总线周期后响应,并释放总线控制权 ④ DMAC得到总线控制权,并发出DMA响应信号 ⑤ 由DMAC发出各种控制信号,控制外设与存储器之
I/O地址空间
0000H
内存空间 (1MB)
FFFFH
I/O空间 (64KB)
FFFFFH
例如:8088/8086系统
MEMR、MEMW
8
存储器访问
0
A19-A0
8
6 总
IOR、IOW 、AEN
I/O访问
线
A9-A0
8088/8086 CPU的I/O编址方式
采用I/O独立编址方式(但地址线与存储器共用)
组的地址/控制信号。
缺点
内存可用地址空间减小
EFFFFH F0000H
FFFFFH
内存地址 (960KB)
I/O地址 (64KB)
2. 独立编址
外设地址空间和内存地址空间相互独立。
优点:内存地址空间不受I/O编址的影响
缺点:I/O指令功能较弱,使用不同的读写控制信号
内存地址空间
00000H
F0H = 0000 0000 1111 0000 F1H = 0000 0000 1111 0001
D0~D7
IOW#
译码电路
≥1
A7~A4
A15~A8
A3 A2 A1 A0
74LS138
&G Y0
≥1 G2A
G2B
C B
Y1
A
IOR#
≥1
74LS273
7406 Rx8
D0 Q0
a
| Q1
8个
b
适用于总是处于准备好状态的外设 以下外设可采用无条件传送方式:
开关 发光器件(如发光二极管、7段数码管、灯泡等) 继电器 步进电机
优点:软件及接口硬件简单 缺点:只适用于简单外设,适应范围较窄
6.3.2 查询方式传送
适用于外设并不总是准备好,而且对传送速 率、传送效率要求不高的场合。
地址总线(Address Bus,AB)
传输地址信息,单向三态 其宽度决定了微机系统的寻址能力
例如,ISA为24位,可寻址16MB;PCI为32/64位,可寻址 4GB/224TB
控制总线(Control Bus,CB)
传输控制信号、时序信号和状态信号 特点各异:三态、入/出/双向等特性均不相同
什么是I/O接口?
把外设连接到总线上的一组逻辑电路的总称。实现外设与主机之 间的信息交换。
I/O接口要解决的问题
速度匹配(Buffer) 信号电平和驱动能力(电平转换器、驱动器) 信号形式匹配(A/D、D/A) 信息格式(字节流、块、数据包、帧) 时序匹配(定时关系) 总线隔离(三态门)
串行
数据按位进行传送 速度慢、距离远、成本低 例: PC机的串行接口(通常用于串行通信)
6.2 简单接口电路
6.2.1 接口电路的基本结构
译码
AB
电路
接 主 DB 机
CB
控制
逻辑
数据输入寄存器 (or 三态门)
数据输出寄存器 (锁存器)
状态寄存器 (or 三态门)
命令寄存器
数据线
接 状态线 外
例如: 某外设接口有4个端口,地址为2F0H~2F3H, 则其基地址为2F0H,由A15~A2译码得到,而A1、A0用 来确定4个端口中的某一个。
6.1.4 I/O数据的传送方式
并行
一个数据单位(通常为字节)的各位同时传送 速度快、距离短、成本高 例:PC机的并行接口(通常用于连接打印机)
形状
7段码 .gfedcba
00111111 00000110 01011011 01001111 01100110 01101101 01111101 00000111
符号 ’8’ ’9’ ’A’ ’B’ ’C’ ’D’ ’E’ ’F’
形状
7段码 .gfedcba
01111111 01100111 01110111 01111100 00111001 01011110 01111001 01110001
现
数据输出接口
常用锁存器实现
三态门:高电平、低电平、高阻态
通常一个器件中包含8个三态门 常用芯片:74LS244(见241页) 应用例子:开关接口
工作波形图如下:
A0~A15 IOR#
译码输出
D0~D7
地址有效 开关状态
简单的输入接口举例
接口电路图如下:
D0-D7
译码器
IOR
A2 A3 A4
设
控制线
数据输入/输出寄存器——暂存输入/输出的 数据
命令寄存器——存放控制命令,用来设定接 口功能、工作参数和工作方式。
状态寄存器——保存外设当前状态,以供 CPU读取。
简单接口电路
数据输入接口
必须具有三态输出能力,以便与总线挂接 外设有数据保持能力时—可用三态门实现 外设无数据保持能力时—用三态输出的锁存器实
……
LEA BX, Seg7
;取7段码表基地址
MOV AH, 0
;先清零,以后要和AL联合使用
GO: MOV DX, 0F1H
;开关接口的地址为F1H
IN
AL, DX
;读入开关状态
AND AL, 0FH
;保留低4位
MOV SI, AX
;作为7段码表的表内位移量