PowerPoint 演示文稿

Download Report

Transcript PowerPoint 演示文稿

COMPUTER SCIENCE AND TECHNOLOGY
第6章 输入和输出
• 在微型计算机系统的应用中,CPU除与内存交换信息外,
还必然要经常与各种外部设备交换信息。
• 主机与外设进行信息交换过程主要是完成数据输入或输出
的传送操作。输入或输出操作的确切含义是有选择地启动
被微处理器选中的外部设备,以便使其接收来自CPU的数
据或向CPU送入数据。
• 数据传送的方向标准通常以微处理器为中心,当数据是由
外部设备,如键盘、纸带读入机、光笔等设备向CPU送入
时,称为输入传送;而当数据自CPU送到如发光二极管、
七段显示器、CRT显示器、点阵打印机、绘图仪等设备时,
称为输出传送。
• 当实现一个数据的输入输出操作时,CPU必须在众多的外
部设备中寻找一个确定的设备,而如何寻找这一特定的外
部设备就是输入输出寻址方式所解决的问题。当找到一个
确定的外部设备以后,接下来的问题就是如何同它进行信
息交换,这就是输入输出控制方式所解决的问题。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
计算机的接口
• CPU侧引脚信号:
地址信号:选择I/O接口中的不同寄存
器;
数据信号:根据命令类型,送到对应
的寄存器中,或从寄存器中取得
数据或状态;
控制信号:控制命令的执行、时序、
信号同步和片选;
状态信号:接口的部分工作状态信号。
• 外设侧引脚信号:
数据信号:接口缓冲寄存器与外设间
的数据交换;
状态信号:外设工作状态送给接口的
状态寄存器;
控制信号:接口的内部控制逻辑控制
外设工作的控制信号和同步信号。
内部控制逻辑:
根据控制寄存器、状态寄存器、总
线控制信号及外设状态信号控制
I/O接口的工作。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
6.1
输入输出的寻址方式
• I/O接口的编址方式:I/O映象方式和存储器映象方式
存储器映象方式
• 把一个I/O端口看作是一个存储单元,相当于给每一个I/0
端口分配一个存储器地址
• 优点:指令丰富,I/O端口空间大,寻址的控制逻辑比较
简单
• 缺点:内存空间相对减少,地址译码电路比较复杂,存储
器操作指令字节长,降低了I/O操作速度。分析程序困难
I/O映象方式
• I/O端口空间与存储器空间各自独立,互不干涉
• 优点:I/O空间与存储器空间可分开设计,采用单独的I/O
指令,程序清晰。I/O地址线较少,所以译码电路简单。
I/O指令格式短,执行时间快
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
I/O端口地址的译码(1)
• I/O数据的传送方式:并行传送、串行传送
• 常见的端口地址选择方法有三种:门电路组合法、译码器
译码法、比较器比较法
• 门电路组合法:用门电路确定I/O端口地址。
COMPUTER SCIENCE AND TECHNOLOGY
I/O端口地址的译码(2)
A6
A7
A8
A9
AEN’
1
2
3
5
4
6
COMPUTER SCIENCE AND TECHNOLOGY
A5
• 译码器译码法:利用译码器芯片对地址进行译码,PC/XT系统板
上接口芯片端口地址译码采用一个74LS138译码电路,其地址范
围依次是:
8237
000H ~ 01FH
8259
020H ~ 03FH
8253
040H ~ 05FH
8255
060H ~ 07FH
15
DMA页面寄存器
080H ~ 09FH
Y
0
A
DMACS(8237)
14
NMI屏蔽寄存器
0A0H ~ 0BFH
INTRCS(8259)
B 74LS138
保留
0C0H ~ 0DFH
13
T/C CS(8253)
C
保留
0E0H ~ 0FFH
12
11
G2B
PPICS(8255)
≥1
WRTDMAPG
≥1
WRTNMIREG
10
G2A
9
G1
7
Y7
IOW
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
I/O端口地址的译码(3)
•
•
比较器比较法:利用数码比较器把地址线上的地址同预定的地址
相比较,进而确定地址是否相符。如果比较后两个地址相等,则
表示地址总线送来的端口地址就是该端口的地址
74LS688比较器:当P0~7≠Q0~7时,P=1,输出高电平。当
P0~7=Q0~7时,P=0,输出低电平。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
PC机接口卡端口地址(0100H-03FFH)
I/O接口名称
地址范围
游戏控制卡
0200-020FH
并行口控制卡1
并行口控制卡2
0370-037FH
0270-027FH
串行口控制卡1
串行口控制卡2
03F8-03FFH
02F8-02FFH
原型插件板(用户可用)
0300-031FH
同步通信卡1
同步通信卡2
03A0-03AF
0380-038FH
单显MDA
彩显CGA
彩显EGA/VGA
03B0-03BFH
03D0-03DFH
03C0-03CFH
软驱控制卡
硬驱控制卡
03F0-03FFH
01F0-01FFH
PC网卡
0360-036FH
COMPUTER SCIENCE AND TECHNOLOGY
+5V
三态门作为输入接口
74LS244
D0~D7
IOR
COMPUTER SCIENCE AND TECHNOLOGY
I0
K0
I1
DO0
~
DO7
K1
I2
K2
I3
K3
I4
A2
系
统
总
线
信
号
A3
A4
A5
A6
A7
A8
A9
A15
K4
E1
?1
E2
I5
K5
I6
K6
I7
K7
A10
A11
A12
A13
A14
COMPUTER SCIENCE AND TECHNOLOGY
74LS273
作为
输出接口
74LS273
D0
D0
~
~
D7
D7
A0
系
统
A1
A2
A3
A4
A5
总
A6
A7
线
IOW
信
A8
号
Q0
1
Q1
+ 5V
…
COMPUTER SCIENCE AND TECHNOLOGY
+ 5V
&
Q6
≥1
CP
Q7
1
A9
A10
A11
A12
&
A13
A14
A15
COMPUTER SCIENCE AND TECHNOLOGY
D0
~
D0 Q0
~
D7
D7
A15
A14
Q1
74LS374
A12
Q6
A11
D0 D0
D7
Q7
A10
D7 D1
外
74LS374
设
…
&
D0
~
A13
~
数
CP OE
A9
据
A8
A0
译
A7
~
COMPUTER SCIENCE AND TECHNOLOGY
74LS374作为输入和输出接口
A6
A15
码
电
A5
A4
&
≥1
IOR
1
A1
1
A0
1
OE
路
A3
A2
D7
74LS374 用作
输入接口
由外设
提供选
通脉冲
74LS374 用作
输出接口
IOW
COMPUTER SCIENCE AND TECHNOLOGY
简单接口应用
例:开关K按下显示“0”,
抬起显示“1”。
Q0
D0 Q1
1
~
X1: MOV DX, 0F1H
IN
AL, DX
TEST AL, 1
MOV AL, ‘0’代码
JZ
X2
MOV AL, ‘1’代码
X2: MOV DX, 0F0H
OUT DX, AL
JMP X1
+5V
74LS273 7406
~
COMPUTER SCIENCE AND TECHNOLOGY
a b c d e f g
D7
D7 Q2
Q3
1
Q4
1
CP Q5
1
Q6
1
Q7
1
D0
系
IOW
≥1
统
总
线
1
510Ω×8
A15
A14
A13
A12
A11
1
74LS138
≥1
G2A
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
10KΩ
Y0
&
C
K
Y1
G2B
C
B
A
≥1
IOW
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
接口设计基本方法
1. 接口硬件设计方法
• 接口主要完成数据、地址、控制总线与外设信号的转换和连接任
务。
• 分析接口两侧的情况:
CPU侧:数据线宽度、地址线宽度、控制线逻辑定义及时序;
外设侧:工作原理与特点,引脚信号逻辑定义、时序和电平
差异。
• 进行信号转换:找出差异并进行信号转换与改造。
• 选择合理外围接口芯片构成接口电路。
• 考虑问题:资源冲突问题;时序问题及缓冲、锁存措施;负载与
总线驱动问题;抗干扰措施;与数据总线相连的器件必须有三态
功能;接口卡插脚与I/O槽引角对应关系要正确;接口卡的几何
尺寸要正确。
2. 接口软件设计方法
• 直接对硬件编程:
设计者必须对接口硬件细节十分熟悉;尽可能用汇编语言编写程
序。
• 间接对硬件编程:
调用标准接口驱动程序。BIOS调用、DOS调用、Win32 API、
DirectX等
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
6.2
CPU与外设数据传送的方式
• I/O控制方式有四种:无条件传送方式、查询方
式、中断方式、DMA控制方式
• 无条件传送方式:CPU可在任何时刻与I/O设备交
换数据,对CPU而言,I/O设备总是处于准备就绪
状态
• 查询方式:CPU通过查询I/O设备的状态,断定哪
个设备需要服务,然后转入相应的服务程序
• 中断方式:当I/O设备需要CPU为其服务时,可以
发生中断请求信号INTR,CPU接到请求信号后,
中断正在执行的程序,转去为该设备服务,服务
完毕,返回原来被中断的程序并继续执行
• 直接存储器存取(DMA)方式:在DMA控制器的管
理下,I/O设备和存储器直接交换信息,而不需
要CPU介入
COMPUTER SCIENCE AND TECHNOLOGY
无条件传送方式(1)
COMPUTER SCIENCE AND TECHNOLOGY
+5V
•
•
•
•
•
无条件传送方式又称
同步方式,是最简单
的一种I/O控制方式
多用于CPU与低速接
口之间的信息交换。
如开关、继电器、
LED显示器,它们总
是被认为处于“待命”
状态
特点:输入时假设外
设已准备好,输出时
假设外设空闲。
要求:接口输入时加
缓冲器,输出时加锁 A10
A11
存器。
应用:对简单外设的 AA12
13
操作。
A14
10KΩ
D0
K
A0
A1
A2
A3
A4
A5
A6
A7
≥1
A8
A9
&
≥1
A15
IOR
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
无条件传送方式(2)
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
无条件传送方式(3)
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
查询方式(1)
•
•
•
•
•
•
•
•
查询方式是有条件的传送控制方式
所谓查询,就是询问外部设备的工作状
态,通过这一状态来判定外设是否已具
备了与CPU交换数据的条件
程序查询方式的硬件接口部分应包括数
据端口,状态端口,端口选择及控制逻
辑等三个部分
程序对每个I/O设备的查询,是通过检查
该设备的状态标志来实现的
查询方式特点:I/O操作由CPU启动,即
CPU是主动的而I/O是被动的,所有的传
送都是与程序的执行同步的
工作原理:CPU查询外设已准备好后,
才传送数据。
要求:需要增加表示外部设备状态的简
单硬件电路。
应用:适用在CPU不太忙且传送速度要
求不高时。
开始
取外设状态
N
外设准备
就绪否?
Y
传送数据
传送完否?
N
Y
结束
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
查询方式(2)
• 对多个外设的查询
• 最简单的查询方法
是用输入指令IN逐
个读取I/O设备的
状态标志,并对状
态标志进行相应的
测试
1 号外设
准备就绪?
Y
对 1 号外设服务
N
2 号外设
准备就绪?
Y
对 2 号外设服务
N
3 号外设
准备就绪?
Y
对 3 号外设服务
N
n 号外设
准备就绪?
Y
对 n 号外设服务
N
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
查询式输入
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
查询式输出
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
中断方式
•
•
中断方式:CPU对一个随机的请求进行处理的过程
中断方式解决了快速的CPU与慢速外设之间的矛盾,实现了信息
的实时处理,提高了计算机使用效率
特点:
CPU与外设
可同时工作。
要求:
接口中需要
中断控制逻辑支
持。
应用:
适用与非
高速度大量数据
传送时。
COMPUTER SCIENCE AND TECHNOLOGY
直接存储器存取方式
•
•
DMA方式:即直接存储器存取方式,是一种不需要CPU干预也不需要软件
介入的高速数据传送方式
CPU只是启动DMA过程,但是不干预这一过程,整个DMA过程是由硬件自
动完成的,也不需要软件的介入
在DMA控制器的控制下,外设和存储器利用数据总线直接进行数据交换
COMPUTER SCIENCE AND TECHNOLOGY
•
特点:数据的传送不经过CPU,I/O设备
管理由CPU控制,简化CPU对I/O的控制。
要求:需要DMA控制器及相关逻辑支持。
应用:适用与高速度大量数据传送时。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
DMA传送的工作过程
• DMA传送的工作过程:
1)I/O设备向DMAC发出DMA请求;
2) DMAC向CPU发出总线请求;
3)CPU在执行完当前指令的当前的总线周期后,向DMAC发
出总线响应信号;
4)CPU脱离对系统总线的控制,由DMAC接管对系统总线的
控制;
5)DMAC向I/O设备发出的DMA应答信号;
6)DMAC进行一个字节的传送;
7)完成设定的字节数据传送,CPU恢复对系统总线的控制。
• DMA传送方式通常用来高速传送大批量的数据块。如:
硬盘和软盘I/O; 快速通信通道I/O;多处理机和多程序数
据块传送;在图像处理中,对CRT屏幕送数据;快速数据
采集;DRAM的刷新操作。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
几种DMAC的功能
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
6.3
•
DMA控制器
8237A是一个高性能的40个引脚双列直插式可编程DMA控制器,其
主要功能有:
1.在一片内有4个独立的DMA通道。
2.每个通道的DMA请求可分别编程允许或禁止。
3.每个通道的DMA请求有不同的中断优先级(即DMA操作优先
权),优先级有两种:固定优先级和循环优先级,由编程决定。
固定优先级的顺序是通道0最高,依次是通道1,通道2和通道3。
4.可在外设与存储器,存储器与存储器之间传送数据,存储器
地址寄存器可以加1或减1。
5.可由软件编程改变DMA读写周期长度。
6.有四种工作方式:单字节传送方式、数据块传送方式、请求
传送方式和级连方式。
7.可以多片级连,扩展通道数。
8.DMA操作结束有两种方法:一是字节计数器减1由0变为FFFFH;
二是外界通过输入负脉冲,强制DMA操作结束。
9.DMA操作启动有两种方法:一是外设输入DMA请求信号DREQ;
二是通过软件编程从内部启动。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237A的内部结构
EOP
RESET
CS
READY
CLOCK
AEN
ADSTB
MEMR
MEMW
IOR
IOW
时
减 1 计数器
减 1/加 1 计数器
序
计数暂存器(16)
地址暂存器(16)
A3-0
输出冲器
A7-4
和
控
制
逻
辑
读缓冲器
读
基地址 基字节
寄存器 数计数
(16)
器(16)
写缓冲器
当前地 当前字
址寄存 节数计
器(16) 数器(16)
命令控制
逻辑
写缓冲器
DREQ0-3
DACK0-3
HRQ
HLDA
I/O 冲器
优
先
权
逻
辑
读缓冲器
命令(8)
屏蔽(4)
请求(4)
I/O 冲器
方式
(6×4)
图 4.5.1
状态
(8)
DB7-0
暂存器
(8)
8237A 内部结构
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237寄存器组
• 8237A芯片内部共有12种寄存器,它们的名称和个数如下:
⑴ 基地址寄存器
16位×4
⑵ 基字节数计数器
16位×4
⑶ 当前地址寄存器
16位×4
⑷ 当前字节数计数器
16位×4
⑸ 方式字寄存器
6位×4
⑹ 暂存地址寄存器
16位×1
⑺ 暂存字节数计数器
16位×1
⑻ 状态寄存器
8位×1
⑼ 命令寄存器
8位×1
⑽ 暂存寄存器
8位×1
⑾ 屏蔽寄存器
4位×1
⑿ 请求寄存器
4位×1
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237寄存器访问方式
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237的引脚功能(1)
1.A3~A0(Address,输入/输出) 双向三态信号线。在空
闲周期,它们是地址输入线,CPU用这四根地址线选择
8237A内部不同的寄存器。
2.A7~A4(Address,输出) 三态地址输出线,仅在DMA操
作周期内使用。
3.DB7 ~DB0(Data Bus,输入/输出) 双向三态数据总线,
与系统数据总线相连。
4. CS(Chip Select,输入) 芯片选择信号,低电平有效。
当8237A在空闲周期内,有效时,CPU可以通过数据线对
8237A进行读写操作。可读写的寄存器端口地址由低4位地
址线来选择,其对应的端口地址如表4.5.1所示。
5.CLK(Clock,输入) 时钟信号,5MHz/3MHz。
6.RESET(Reset,输入) 复位信号,高电平有效。当芯片
被复位时,除了屏蔽寄存器被置位(4个通道均禁止DMA请
求)外,其余寄存器均被清零。
7.READY(Ready,输入) 就绪信号,高电平有效。当选
用慢速存储器或I/O设备时,READY变为低电平。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237的引脚功能(2)
8.DREQ3~DREQ0(DMA Request,输入) 外设发出的四个
通道的DMA服务请求信号,有效电平由编程决定。在固定
优先级情况下,DREQ0优先级最高,依次减小,DREQ3优先
级最低,但优先级可由编程改变。
9.DACK3 ~DACK0 (DMA Acknowledge,输出) 8237A每个
通逍的DMA响应信号,有效电平由编程决定。
10.HRQ(Hold Request,输出) 总线请求信号,高电平
有效。
11.HLDA(Hold Acknowledge,输入) 总线响应信号,
高电平有效。CPU在每个总线周期的最后一个T状态检查
是否有总线请求,当发现HRQ有效后,就暂停执行程序,
让出总线,并使HLDA有效(高电平)。
12. IOR (I/0 Read,输入/输出) I/O读,双向,三态,
低电平有效。在8237A空闲周期,它是一条输入控制信号,
CPU利用这个信号读取8237A内部寄存器状态。在DMA
传送时,它是一条输出控制信号,令外设把数据送上数
据线,由信号将数据写入存储器。
13. MEMR (Memory Read,输出) 存储器读信号,三态,
低电平有效。只用于DMA传送。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237的引脚功能(3)
14.IOW(I/O Write,输入/输出) I/O写,双向,三态,
低电平有效。在8237A空闲周期,它是一条输入控制信号,
CPU利用这个信号把控制字写入8237A内部寄存器。在DMA
传送时,这是一条输出控制信号,利用从存储器读出数据,
写入外设。
15.MEMW(Memory Write,输出) 存储器写信号,三态,
低电平有效。只用于DMA传送。
16.AEN(Address Enable,输出) 地址允许信号,高电平
有效。它将在锁存器中锁存的高8位地址A15 ~A8 送上系统
地址总线,与芯片输出的低8位地址A7~A0组成16位地址,
也就是说,在AEN=1期间,芯片输出的16位地址有效。
17.ADSTB(Address Strobe,输出) 地址选通信号,高电
平有效。在DMA操作时,它将芯片内数据缓冲器送出的高8
位地址通过DB7~DB0送到外部地址锁存器中锁存。
18.EOP (End of Process,输入/输出) 过程结束信号,双
向,低电平有效。作为输入,如果外部输入一个低电平信
号,将强迫DMA传送结束;作为输出,当字节数减1产生
TC时(即减1由0变为FFFFH),在上输出一个有效的负
脉冲,表示DMA传送结束。
COMPUTER SCIENCE AND TECHNOLOGY
8237端口地址表
COMPUTER SCIENCE AND TECHNOLOGY
表 4.5.1
A3A2A1A0
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
8237A 内部端口地址分配
寄 存 器 说 明
通道 0
写:基地址寄存器和当前地址寄存器
通道 0
读:当前地址寄存器
通道 0
写:基字节数计数器和当前字节数计数器
通道 0
读:当前字节数计数器
通道 1
写:基地址寄存器和当前地址寄存器
通道 1
读:当前地址寄存器
通道 1
写:基字节数计数器和当前字节数计数器
通道 1
读:当前字节数计数器
通道 2
写:基地址寄存器和当前地址寄存器
通道 2
读:当前地址寄存器
通道 2
写:基字节数计数器和当前字节数计数器
通道 2
读:当前字节数计数器
通道 3
写:基地址寄存器和当前地址寄存器
通道 3
读:当前地址寄存器
通道 3
写:基字节数计数器和当前字节数计数器
通道 3
读:当前字节数计数器
写:命令寄存器;
读:状态寄存器
写:请求寄存器;
读:非法
写:一位屏蔽字寄存器;
读:非法
写:方式寄存器;
读:非法
写:清除 F 触发器; 读:非法
写:8237A 总清;
读:暂存寄存器
写:清除屏蔽寄存器; 读:非法
写:四位屏蔽字寄存器;
读:非法
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237 I/O端口地址
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237的工作方式
• 8237A有多种工作方式,包括主从模态、传送方
式、传送类型、优先级编码、工作周期、读写时
序、自动初始化方式、存储器到存储器的传送、
级联方式等。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237主从模态
• DMA控制器既可以作为I/O端口接受CPU的读写操
作,也可以代替CPU占有总线,控制外设与存储
器之间传送数据,它充分体现了DMA控制器的两
大特性,即总线的主控性和总线的从属性,按这
两大特性,它也就有两种工作模态:主态方式和
从态方式。
(1)主态方式 在主态方式时,DMA控制器是
总线的控制者,此时,它如同CPU一样,掌握总
线的控制权,可对涉及的外设端口或存储器单元
进行读写操作。
(2)从态方式 在从态方式时,CPU是总线
的控制者,而DMA控制器不过是普通的一个外
部设备,有若干个端口而已,它的地位同一般的
I/O接口芯片是一样的。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237传送方式
•
8237A通过编程,可选择4种传送方式,分别是单字节传送方式,
数据块传送方式,请求传送方式和级连方式。
(l)单字节传送方式
单字节传送方式时,一次只传送一个字节,然后释放总线。若又
有外设DMA请求,8237A再向CPU发下一次总线请求HRQ,获得总线
控制权后,再传送下一个字节数据。
(2)数据块传送方式
数据块传送方式时,响应一次DMA请求,将完成设定的字节数的
全部传送。当字节数计数器减l由0变为FFFFH时,产生TC有效信
号,使8237A将总线控制权交还给CPU从而结束DMA操作方式,外
部有效的信号也可以终结DMA传送。
(3)请求传送方式
请求传送方式又称查询方式,类似数据块传送,但每传送一个
字节后,检测DREQ状态,若无效则停止,若有效则继续DMA传送。
在下述情况之一发生时,将停止传送:
① DREQ变为无效。
② 字节数计数器减1由0变为FFFFH,产生TC信号。
③ 外界输入有效信号。
(4)级连方式
这种方式允许连接一个以上的芯片来扩展DMA通道的个数。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237传送类型
• DMA系统无论是工作在单片方式,还是多片级连,也不管
采用单字节传送,数据块传送,请求传送中的哪种传送方
式,都可以对每个通道的方式字寄存器进行设置,采用
DMA读,DMA写,DMA校验等三种不同的传送类型。
• (1)DMA读
8237A输出有效的 MEMR 和 IOW 信号,把存储器的数
据读到I/O设备。
• (2)DMA写
8237A输出有效的 IOR 和 MEMW 信号,把I/O设备的
数据写到存储器。
• (3)DMA校验
这是一种伪传输,实际上是校验8237A芯片内部的读写
功能。在这种传送类型中,8237A芯片的操作如同DMA读
和DMA写一样,产生地址信号以及对响应等,但对存储
器和I/O设备的控制线(MEMR ,MEMW ,IOR ,IOW )
均处于无效状态,禁止实际传送。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237优先级编码
• 8237A芯片可设定为两种优先级编码:固定优先
级和循环优先级。
• 固定优先级中4个通道的优先级顺序是固定的,
DREQ0最高,DREQ3最低。
• 循环优先级中4个通道的优先级顺序是可变的,
但其变化仍有一定的规律。当某一个通道申请
DMA请求并被响应服务后,它就被指定为最低
优先级,它的下一级就成为最高优先级。值得注
意的一点是,无论在任何情况下,DMA请求禁
止嵌套服务。当一个通道的DMA请求被响应并
服务后,其它3个通道的DMA请求将都被禁止,
无论它们的优先级是高还是低。优先权排队只在
DMA响应之前有效,DMA响应之后则无效。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237工作周期
•
8237A有两类工作周期:空闲周期和操作周期。操作周期也叫有
效周期。全部工作周期分为7种时钟状态(时钟周期):空闲状
态SI、起始状态S0、传送状态S1、S2、S3、S4以及等待状态SW。
• (1)空闲周期
在没有DMA请求时,8237A就处于空闲周期,执行连续的空闲状
态SI。在空闲周期内,每个SI状态都要进行两种检测:
① 检测有无信号,以确定有无CPU对8237A的操作要求。若信
号有效,则表明CPU要对8237A进行读写操作,此时,8237A以从
态方式工作,作为CPU的一个I/O接口,进入编程状态,受CPU的
控制。对8237A的DMA初始化工作就是在这种状态下实现的。
② 检测有无DREQ信号,以确定是否有I/O设备送来有效的DMA
请求。若DREQ有效,则产生总线请求HRQ,从SI 状态进入S0 状态,
此时,8237A以主态方式工作,以后的工作都由8237A来控制。
•
(2)操作周期
8237A在空闲周期内检测出DMA请求DREQ有效后,便进入操作
周期(有效周期),操作周期有6种状态:S0起始状态、S1工作
状态1、S2工作状态2、S3工作状态3、S4工作状态4、SW等待状态。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237工作状态转换
•
•
•
•
•
•
•
•
•
•
SI:空闲状态,检查CS、DREQ
S0:起始状态,过渡,HLDA有效前状态
S1:工作状态1,准备高8位地址
S2:工作状态2,提供16位地址,DACK有效
S3:工作状态3,发读信号
S4:工作状态4,发写信号
SW:等待状态,同步
正常时序:S1~S4,通常为S2、S3、S4。
压缩时序:S2、S4。读信号压缩到写时序。
扩展时序:S2、S3、S4。写信号扩展到读时序。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237读写时序
• DMA控制器可在两种操作时序中任选一种:正常时序和压
缩时序。读写时序方式的实质是在控制读、写脉冲发出的
时间与时钟信号CLK的对应关系。
• (1)正常时序
正常时序传送一个字节的数据包含4个时钟脉冲周期,
即S1~S4状态。产生的读写脉冲信号与这4个状态有确定的
对应关系。若是数据块传送中不改变高8位地址,则省去SI,
只占用S2、S3、S4已三个时钟周期。
• (2)压缩时序
压缩时序方式时所占用的脉冲数将减少。压缩时序操作
把读命令的宽度压缩到等于写命令的宽度,省掉了S3,即
由S4完成读和写的操作。所以,在一段压缩时序方式下传
送一个字节的数据需要占用3个时钟周期,即S1、S2、S4,
而在大多数情况下高8位地址并不改变,于是省掉了S1,因
此,在数据块传送中大多数情况占用2个时钟周期,即S2和
S4 。在系统性能允许的范围内,压缩时序能获得较高的数
据吞吐量。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237数据块传送正常时序
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237自动初始化方式
• 通过对方式字寄存器的编程,可设置某个通道为自动初始
化方式。
• 自动初始化方式的功能是,当该通道完成一个数据传送并
产生信号时(可能是由内部的TC产生,也可能是外部产
生),用基地址寄存器和基字节数计数器的内容,使相应
的当前地址寄存器和当前字节数计数器恢复初值,当前地
址寄存器和当前字节数计数器的最初值,是由CPU在初始
化编程时写入的(这个最初值同时也写入到基地址寄存器
和基字节数计数器),但在DMA传送过程中,当前地址
寄存器和当前字节数计数器的内容被不断修改,而基地址
寄存器和基字节数计数器的内容维持不变(除非重新编
程)。
• 在自动初始化以后,通道就作好了进行另一次DMA传送
的准备。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237存储器到存储器的传送
• 利用这种方式,可以使数据块从一个存储空间传
送到另一个存储空间,将程序的影响和传输时间
减到最小。
• 这种方式需要占用8237A的2个通道。由通道0的
地址寄存器提供源地址,通道1的地址寄存器提
供目的地址,通道1的字节数计数器编程为传送
的字节数,传送由设置一个通道0的软件DREQ
启动,8237A按正常方式向CPU发出HRQ,当
CPU发出总线响应信号HLDA后,DMA传送即
可开始。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
级联方式
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
PC/AT微机DMA级联配置
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237扩展寻址空间
8237某通道
3
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237A的编程
•
8237A依靠它的可编程特性实现它的各种工作方式的选择和设定。
假设以DMA代表16个端口地址的首地址,那么写通道2基字节数计数
器的端口地址可表示为DMA+05H,写方式寄存器的端口地址可表示
为DMA+0BH。16个端口地址分为两部分:
•
(1)00H~07H分配给4个通道的相应的16位寄存器,它们的端口
地址分配如下:
基和当前地址寄存器端口
基和当前字节数计数器端口
通道0
DMA+0
DMA+1
通道1
DMA+2
DMA+3
通值2
DMA+4
DMA+5
通道3
DMA+6
DMA+7
•
(2)08H~0FH分配给其他寄存器,其中包括3条不使用数据总线
而只利用端口地址进行操作的清除命令。
• 8237A的初始化编程命令字总共有8条,其中控制命令有5个:方式
字、命令字、请求字、屏蔽字、状态字;清除命令有3个:清除字
节指针触发器、主清除命令、清除屏蔽寄存器。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237A控制命令字(1)
• 方式字写入端口地址0BH,其主要功能是:选择
传送方式和传送类型,设置自动初始化方式和地
址增量方向。
• 命令字写入端口地址08H,其主要功能是:选择
DREQ、DACK有效极性,读写时序,优先级编码方
式等。
• 请求字写入端口地址09H,其主要功能是:发生
软件DMA请求。
• 屏蔽字写入端口地址0AH或0FH,其主要功能是:
允许或禁止通道的DMA请求。
• 状态字从端口地址08H读出,其主要功能是:反
映通道DMA请求状态和是否有TC信号。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237A控制命令字(2)
方式字
D7
D6
传送方式
D7 D6
0 0
0 1
1 0
1 1
D5
D4
地址
增减
请求方式
单字节方式
数据块方式
级连方式
D3
自动
初始化
0=
递增
1=
递减
0=
禁止
1=
允许
D2
传送类型
D3 D2
0 0
0 1
1 0
1 1
D1
D0
通道选择
DMA 效验
DMA 写
DMA 读
无效
D1 D0
0 0
0 1
1 0
1 1
通道 0
通道 1
通道 2
通道 3
命令字
D7
D6
D5
DACK
极性
DREQ
极性
写入
选择
0=低电
平有效
1=高电
平有效
0=高电
平有效
1=低电
平有效
D4
优先级
编码
0=滞后写入
(先读后写)
1=扩展写入
(同时读写)
0=
固定
1=
循环
D3
D2
D1
D0
读写
时序
工作
允许
通道 0
保持
存储器
间传送
0=
正常
1=
压缩
0=
允许
1=
禁止
0=
允许
1=
禁止
0=
允许
1=
禁止
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237A控制命令字(3)
一位屏蔽字
D7 D6 D5 D4 D3
不 用
D2
屏蔽
D1
D1 D0
0 0
0 1
1 0
1 1
D0
通道选择
通道 0
通道 1
通道 2
通道 3
0=允许 1=禁止 DMA
四位屏蔽字
D7 D6 D5 D4
不
用
D3
通道 3 屏蔽
D2
通道 2 屏蔽
D1
通道 1 屏蔽
D0
通道 0 屏蔽
0=相应通道 DMA 允许 1=相应通道 DMA 禁止(屏蔽)
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237A控制命令字(4)
请求字
D7 D6 D5 D4 D3
不 用
D2
请求
D1
D1 D0
0 0
0 1
1 0
1 1
D0
通道选择
通道 0
通道 1
通道 2
通道 3
0=禁止 1=请求 DMA
状态字
D7
D6
D5
D4
通道 3
通道 2
通道 1
通道 0
0=无 DMA 请求
1=有尚未处理的 DMA 请求
D3
通道 3
D2
通道 2
D1
通道 1
D0
通道 0
0=未结束
1=已接收到终止结束信号
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237A清除命令(1)
• 清除命令有3条。这三条命令与数值无关,不需通过数据总
线,即执行输出指令时,AL的内容可随便设置,只要对特定
的端口地址执行一次写操作,依靠这地址和控制信号,命令
就生效。这就是所谓的“软命令”。
• (1)清除字节指针命令(写入端口地址0CH)
即清除高/低触发器命令,或叫清除先/后触发器命令,
是专为16位寄存器的读写而设置的。因为数据线是8位,所
以16位数据要分两次读写。而且要使用同一个端口地址。为
区分两个高低字节,8237A设置了先/后触发器作为字节指针,
为“0”时对应低字节,为“1”时对应高字节。而且每次对16
位寄存器的读写操作都将使字节指针自动翻转一次:由“0”
变“1”,或由“1”变“0”,从而控制高、低字节的读写,
系统复位后,字节指针被清“0”。
• 清除字节指针命令使字节指针(先/后触发器)被清“0”。
• 例:
MOV AL, 0XXH ;0XXH为AL中任意值
OUT 0CH, AL
; 先/后触发器被清“0”
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237A清除命令(2)
• (2)主清除命令(写入端口地址0DH)
此命令与硬件的RESET信号功能相同,是软件复位命令,
除 使屏 蔽寄存 器各 位置 1外 ,其 它各寄 存器 均被清 0, 使
8237A进入空闲状态,准备接收CPU对它的初始化编程,此时
B237A处于从态方式。
• 例:
MOV AL, 0XXH ;0XXH为AL中任意值
OUT 0DH, AL
;写入总清端口,执行总清除命令
• (3)清除屏蔽寄存器命令(写入端口地址0EH)
其功能是将4个通道的屏蔽位清除,允许它们接受DMA请
求。该命令是对屏蔽寄存器操作的第三个命令。
• 例:
MOV AL, 0XXH ;0XXH为AL中任意值
OUT 0EH, AL
;写入清屏蔽寄存器端口
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237A的编程步骤
•
•
8237A的编程步骤:
(l)CPU发主清除命令(复位);
(2)写入基地址及当前地址值;
(3)写入基字节数和当前字节数初值;
(4)写入方式字;
(5)写入屏蔽字;
(6)写入命令字;
(7)写入请求字,可用软件DMA请求启动通道,也可在(1)~
(6)完成以后,等待外部DREQ请求信号。
在编程中应注意以下几点:
(1)16位寄存器的读写顺序:先低后高
(2)保证编程和HLDA是互相排斥的
编程时应保证CPU的编程(对8237A的初始化写入操作)与
HLDA是互相排斥的。因为当CPU正对某个通道编程的同时,若该
通道接收到一个DMA请求,问题就会发生。例如CPU正开始对通道
0的16位寄存器操作,此时该通道接受到一个DMA请求,若8237A
允许工作,且通道O是非屏蔽的,则在写入一个字节后就开始了
DMA服务。为确保硬件信号不影响软件编程,应在编程开始时禁
止8237A工作,或屏蔽该通道,等到编程结束后再允许8237工作
或清除通道的屏蔽位。
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237举例(1)
•
•
例1:8237A数据块传送
设在某8088系统中,用8237A通道1将内存1000H单元开始的24K字
节数据转存到软盘之中(暂不考虑20位地址的问题,可认为1000H
就是基地址的初值)。采用数据块方式传送,地址增量方式,只
传送一遍,设DREQ和DACK低电平有效,当A15~A4=000000000111时
选中8237A,要求设计8237A通道1的初始化程序。
• 1.端口地址
A3 ~A0 由8237A芯片内部译码,编码范围是从0000到1111,再与
A15~A4组合,则端口地址范围是0070H~007FH。
• 2.传送字节数
24K字节对应16进制数为6000H,但写入通道字节数计数器的值应
为6000H - 1=5FFFH,因为TC的产生不是在计数器由1到O的跳变处,
而是在计数器由0到FFFFH的跳变处。所以写入的计数初值应比实
际字节数少一个。
• 3.方式字
按题目要求,控制字的组合为: 1000 1001B
• 4.一位屏蔽字
按题目要求,一位屏蔽字的组合为: 0000 0001B
• 5.命令字
按题目要求,命令字的组合为: 0100 0000B
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
8237举例(2)
•
6.初始化程序
START:MOV
OUT
MOV
MOV
OUT
MOV
OUT
MOV
MOV
0UT
MOV
0UT
MOV
MOV
OUT
MOV
MOV
0UT
MOV
MOV
OUT
……
……
DX, 007DH
DX, AL
DX, 0072H
AL, 00H
DX, AL
AL, 10H
DX, AL
DX, 0073H
AL, 0FFH
DX, AL
AL, 5FH
DX, AL
DX, 007BH
AL, 89H
DX, AL
DX, 007AH
AL, 01H
DX, AL
DX, 0078H
AL, 40H
DX, AL
;发主清除命令
;送基址和当前地扯低8位
;送基地址和当前地址高8位
;送基值和当前计数值低8位
;送基值和当前计数值高8位
;写入方式控制字
;DMA读传送
;写入屏蔽字
;写入命令控制字
COMPUTER SCIENCE AND TECHNOLOGY
8237举例(3)
COMPUTER SCIENCE AND TECHNOLOGY
•
例2:现假设在级联的8237的主片通道1,将内存其始地址为80000H的
280H字节的内容直接输出到外部设备。
WAITF:
MOV
OUT
MOV
OUT
OUT
OUT
MOV
OUT
MOV
DEC
OUT
MOV
OUT
MOV
OUT
MOV
OUT
MOV
OUT
IN
AND
JZ
MOV
OUT
……
AL, 4
08H, AL
AL, 0
0CH, AL
02H, AL
02H, AL
AL, 8
83H, AL
AX, 280H
AX
03H, AL
AL, AH
03H, AL
AL, 49H
0BH, AL
AL, 40H
08H, AL
AL, 01
0AH, AL
AL, 08
AL, 02
WAITF
AL, 05
0A, AL
;命令字, 禁止82C37工作
;写命令寄存器
;清除先/后触发器
;写低位地址
;写高位地址
;页面地址为8
;写页面寄存器
;传输字节数
;写字节数低位
;写字节数高位
;模式字: 单字节读, 地址加1
;命令字: DACK和DREQ低有效
;正常时序, 固定优先权
;清除通道1屏蔽
;读通道1状态
;传输完成否
;没完成则等待
;完成后屏蔽通道1
COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY
第6章 结束
请同学们按教材后的习题
及时复习
吉林大学远程教育学院
COMPUTER SCIENCE AND TECHNOLOGY