第六章 输入输出接口技术
概述
输入输出控制方式
可编程 DMA控制器 8237A
6-1-1 输入输出接口的概念与功能
1,输入输出接口的概念所谓接口是指 CPU和存储器、外部设备或者两种外部设备之间,或者两种机器之间通过系统总线进行连接的逻辑部件
(或称电路),它是 CPU与外界进行信息交换的中转站。
2、输入输出接口的功能
( 1)数据缓冲功能
( 2)信号转换功能
( 3)对外设的控制和检测功能
( 4)设备选择功能
( 5)中断或 DMA管理功能
( 6)可编程功能
6-1-2 CPU与 I/O接口之间传递的信息类型
1、数据信息数字量,模拟量,开关量
2、状态信息
3、控制信息
6-1-3 I/O端口的编址方式
1,I/O端口,CPU和 I/O设备进行数据传送,在接口中就必须有一些寄存器或特定的硬件电路供 CPU直接存取访问,如下图所示。
2、常用的编址方式:统一编址、独立编址数据总线控制总线地址总线数据输入寄存器数据输出寄存器控制寄存器状态寄存器数据线控制线状态线外部输入或输出设备
6-2-1 程序控制方式程序控制方式是指 CPU与外设之间的数据传送是在程序控制下完成,它又可分成无条件传送和条件传送两种方式。
1、无条件传送方式
( 1)无条件传送输入方式
1Y1 1A1
1Y2 1A2
74LS44
2Y4 2A4
1G 2G
M / I O
CS
RD
.
+ 5 V
开关
.
..
.,
..
D
0
D
1
.
.
.
D
7
图 6 - 3 简单输入端口
( 2)无条件传送输出方式
1 D 1 Q
2 D 2 Q
7 4 L S 2 7 3
8 D 8 Q
C L K
M /I O
CS
WR
D
0
D
1
D
7
LED
.
.
.
.
.
.
图 6 - 4 简单输出端口
2、条件传送方式
( 1)查询式输入输入状态信息
READY?
输入数据
N
Y
图 6 - 5 查询式输入程序流程输入装置锁存器三态缓冲器
(8 )
R
Q
D
+5 V
缓冲器
(1 )
AEN
地址译码去系统数据总线数据状态信息
R e a d y
IOR
IOR
AEN
地址译码系统地址总线
A
0
~ A
9
选通信号数据图 6 - 6 查询式输入的接口电路
( 2)查询式输出读状态端口
BU S Y?
输出数据
Y
N
准备输出数据
.
.
图 6 - 7 查询式输出程序流程
A E N
数据口地址译码
I O R
状态口地址译码系统地址总线
A
0
~ A
9
I O W
A E N
三态缓冲器
(1 )
去系统数据总线状态信息
“B U S Y,
输出装置锁存器系统数据总线
Q D
R
+5 V
,B U S Y,
数据图 6 - 8 查询式输出接口电路
6-2-2 中断控制方式为提高 CPU的利用率和进行实时数据处理,CPU常采用中断方式与外设交换数据。
6-2-3 DMA控制方式用 DMA方式传输数据时,不需要进行保护和恢复断点及现场之类的额外操作,一旦进入 DMA操作,就可直接在硬件的控制下快速完成一批数据的交换任务,数据传送的速度基本上取决于外设和存储器的存取速度。
6-3-1 8237A的内部结构及引脚
1,8237A的内部结构时序与控制逻辑优先级编码命令寄存器
(8 )
屏蔽寄存器
(4 )
请求寄存器
(4 )
字数暂存器
EOP
R E SE T
CS
CLK
AEN
A D ST B
M EM R
M E M W
I O R
I O W
READY
HRQ
HLDA
03
DREQ
03
DACK
4
4
读缓冲器基地址寄存器
(1 6 ×
4)
基字寄存器
(1 6 ×
4)
读/ 写缓冲器当前地址寄存器
(1 6 ×4 )
当前字计数器
(1 6 ×4 )
16
16
写缓冲器 读缓冲器内部数据总线方式寄存器
(4 ×6 )
状态寄存器
(8 )
暂存寄存器
(8 )
地址暂存器
A
15~
A
8
I / O 缓冲输出缓冲
A
3
-A
0
A
7
-A
4
命令控制逻辑
D
1
-D
0
I / O 缓冲
DB
7
-DB
0
2,8237A的引脚
IOR
I O W
M EM R
NC
M EM W
RE A D Y
H LD A
A D STB
A EN
HQR
CS
CLK
RE SET
2
D A CK
3
D A CK
2
D RE Q
1
D RE Q
3
D RE Q
0
D RE Q
GND
A
7
A
6
A
5
A
4
A
EO P
3
A
2
A
1
A
0
A
CC
V
0
DB
1
DB
2
DB
3DB
4
DB
0
D A CK
1
D A CK
5
DB
6
DB
7
DB
1 40
2 39
8237A
3 38
4 37
5 36
6 35
7 34
8 33
9 32
10 31
11 30
12 29
13 28
14 27
15 26
16 25
17 24
18 23
19 22
20 21
图 6 - 10 8237A 的引脚
6-3-2 8237A内部寄存器功能及格式
8237A的内部可编程寄存器主要 10个,依次为:
1、当前地址寄存器
16位,用于存放 DMA传送的存储器地址值。
2、当前字节计数寄存器
16位,保存当前 DMA传送的字节数。
3、基地址寄存器
16位,用来存放对应通道当前地址寄存器的初值。
4、基字计数寄存器
16位,用于存放对应通道当前字计数器的初值。
5、命令寄存器
8位,控制 8237A的操作。
6、工作方式寄存器
6位,用于指定 DMA的操作类型、传送方式、是否自动预置和传送一字节数据后地址是按增 1还是减 1修改。
7、请求寄存器
4位,用于由软件来启动 DMA请求的设备。
8,屏蔽寄存器
1位,当某通道的屏蔽标志位置 1时,禁止该通道 DREQ
请求,并禁止该通道 DMA操作。
9、状态寄存器
8位,用来存放状态信息,可供 CPU读出。
10、暂存寄存器
8位,用来暂存从源地址单元读出的数据。
6-3-3 8237A的编程及应用
1,8237A的编程
( 1)输出主清除命令,使 8237A处于复位状态,以接收新的命令;
( 2) 写入工作方式寄存器,以确定 8237A工作方式和传送类型;
( 3) 写入命令寄存器,以控制 8237A的工作;
( 4) 根据所选通道,输入相应通道当前地址寄存器和基地址寄存器的初始值;
( 5) 输入当前字节计数器和基字节寄存器的初始值;
( 6) 写入屏蔽寄存器;
( 7) 写入请求寄存器,便可由软件 DMA传送 。 否则,经过 ( 1)
~( 6) 步编程后,由通道 DREQ启动 DMA传送过程 。
THANK YOU VERY MUCH
本章到此结束,
谢谢您的光临!