Download - 第六章 输入输出接口技术
第六章 输入输出接口技术
概述
输入输出控制方式
可编程 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/IOCS
RD
.
+5V
开关
...
. .
..
D0
D1
...D7
图 6-3 简单输入端口
( 2 )无条件传送输出方式
1D 1Q
2D 2Q
74LS273
8D 8Q
C LK
M /IOCS
W R
D 0
D 1
D 7
LED
.
...
.
.
图 6-4 简单输出端口
2 、条件传送方式
( 1 )查询式输入
输入状态信息
READY?
输入数据
N
Y
图 6-5 查询式输入程序流程
输入装置
锁存器
三态缓冲器
8( )
R QD
+5V
缓冲器1( )
AEN
地址译码
去系统数据总线
数据
状态信息
Ready
IOR
IOR
AEN
地址译码
系统地址总线
A0~A9
选通信号
数据
图 6-6 查询式输入的接口电路
( 2 )查询式输出
读状态端口
BUSY?
输出数据
Y
N
准备输出数据
..
图6-7 查询式输出程序流程
AEN
数据口地址译码
IOR
状态口地址译码
系统地址总线
A0~A9
IOWAEN
三态缓冲器
1( )
去系统数据总线
状态信息“ BUSY”
输出装置
锁存器 系统数据总线
Q D
R
+5V
“ BUSY”
数据
图 6- 8 查询式输出接口电路
6-2-2 中断控制方式
为提高 CPU 的利用率和进行实时数据处理, CPU 常采用中断方式与外设交换数据。
6-2-3 DMA 控制方式 用 DMA 方式传输数据时,不需要进行保护和恢复断点及现场之类的额外操作,一旦进入 DMA 操作,就可直接在硬件的控制下快速完成一批数据的交换任务,数据传送的速度基本上取决于外设和存储器的存取速度。
6-3-1 8237A 的内部结构及引脚
1 、 8237A 的内部结构
时序与控制逻辑
优先级编码
命令寄存器8( )
屏蔽寄存器4( )
请求寄存器4( )
字数暂存器
EOPRESET
CS
CLK
AENADSTB
MEMR
MEMW
IOR
IOW
READY
HRQ
HLDA
03DREQ
03DACK
4
4
读缓冲器
基地址寄存器
16×(4)
基字寄存器
16×(4)
/读 写缓冲器
当前地址寄存器16× 4( )
当前字计数器16× 4( )
16
16
写缓冲器 读缓冲器
内部数据总线
方式寄存器4× 6( )
状态寄存器8( )
暂存寄存器8( )
地址暂存器
A15~A8
I / O缓冲
输出缓冲
A3-A0
A7-A4
命令控制逻辑
D1-D0
I / O缓冲
DB7-DB0
2 、 8237A 的引脚
IORIOW
MEMR
NCMEMW
READYHLDA
ADSTBAENHQR
CSCLK
RESET
2DACK
3DACK
2DREQ
1DREQ
3DREQ
0DREQGND
A
7A
6A
5A
4A
EOP3A2A1A0A
CCV
0DB
1DB2DB
3DB
4DB
0DACK
1DACK
5DB
6DB
7DB
1 402 39
8237A
3 384 375 366 357 348 339 3210 3111 3012 2913 2814 2715 2616 2517 2418 2319 2220 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 时,禁止该通道 DRE
Q 请求,并禁止该通道 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
本章到此结束,
谢谢您的光临!