可编程DMA控制器8237A

合集下载

可编程DMA控制器8237A

可编程DMA控制器8237A

图7.5.5 DMA的读/写总线周期 ·非总 线信 号 (a) DMA读操作; (b) DMA写操作
(3) 8237几个特殊操作的说明。
S1 CLK AEN A8~A15 A 0~A7 RD WR 扩展 码 CLK A 0~A7 RD WR (b ) S2 S1 S2 (a) S1 S2 有效 有 效 S2 S3 S4 S2 S3 S4
定时 和 控制
A4~A7 输出缓冲
A8~ A15
命令 控制
写缓冲 DREQ0~ 4 DREQ3 HRQ HLDA DACK0~ 4 DACK3
读缓冲 据总线 I/O 缓冲 DB0~DB7
内部数 优先级 编号和 旋转优先 级逻辑 命令(8)
屏蔽(4)
读写 模式 (4×6) 状态(8) 临时(8)
请求(4)
设置命令寄存器
初始化必须设置命令寄存器,以确定其工作时序、 优先级方式、DREQ和DACK的有效电平及是否允许工 作等。
清除先/后触发器
先/后触发器是一个指针,当它为0时,对低字节进 行操作,当它为1时,对高字节进行操作。
设置地址和字节计数器
8237A每个通道有四个16位的寄存器。这四个寄存器 是基地址寄存器和当前地址寄存器以及基本字节计数 寄存器和当前字节计数寄存器。
7.5.2 DMA的工作方式、 操作类型及时序
1. 8237 DMA的工作方式及传输操作类型
(1) 8237的 4 种工作方式。 ① 单字节传送方式。在这种方式下, 每次仅传送一个字节数据。 传送
后,字节数寄存器减1,地址寄存器加1或减1(由初始化编程决定)。 HRQ变
为无效,8237释放系统总线,控制权返回给CPU。 当前字节数寄存器从初始 值减到0,还要再传输一个字节,又从0减到0FFFFH时,才发出有效EOP信号, 结束DMA传输过程。 通常,在DACK成为有效之前,DREQ必须保持有效。每次传送后, DMA控制器把总线让给CPU至少一个总线周期,且立即开始检测DREQ输入, 一旦DREQ为有效, 再进行下一个字节的传送。

8第八章 DMA 8237控制器

8第八章 DMA 8237控制器

0 0 0 0
0 1 0 1
A0~A7 A8~A15 A0~A7 A8~A15 W0~W7 W8~W15 W0~W7
写 读
0 0 0 0
1 1 0 0
0 0 1 1
0 0 0 0
0 0 0 0
1 1 1 1
1 1 1 1
0 1 0 1
W8~W15
第八章
DMA技术
8237通道寄存器寻址
通 道

寄存器 操作

CS IOR IOW A3 A2 A1 A0
内部先/ 后触发 器
数据总线
基本地 址寄存 器

2
当前地 址寄存 器
基本字 节计数 器 当前字 节计数 器

0 0 0 0 0 0 0 0
1 1 0 0 1 1 0 0
第八章
DMA技术
4.8237A各寄存器对应的端口地址(戴P268 )
表8-1 操作命令与有关信号的对应关系
CS
0 0 0
A3 A2 A1 A0
1 1 1 0 0 0 0 0 0 0 0 1
IOR IOW
0 1 1 1 0 0


读状态寄存器 写控制寄存器 写DMA请求标志寄存器
0
0 0
1
1 1
0
0 1
8237A在传送时有四种工作模式
① 单字节传送模式(戴P262 ) ② 块传送方式(戴P262 ) ③ 请求传送模式(戴P262)④级连传输模式 (戴P262)
在这种传送模式下,8237A可以进行连续的数据传送。当出现以下三种 情况之一时停止传送: a.字节计数器减到0,产生DMA传输结束信号,在线上输出一个有效脉冲。 b.由外界送来一个有效的信号 EOP 。 c.外界的DREQ信号变为无效(外设来的数据已送完)。

第8章 可编程DMA控制器8237A解析

第8章 可编程DMA控制器8237A解析
17
2) DMA传送控制信号引脚
IOR/IOW: 双向,被动态时接收CPU的读/写命令,主动态时向


I/O发读/写命令; MEMR/MEMW: 输出,主动态时向M发读/写命令; CS: 被动态时,由CPU选中该芯片进行读/写操作; DB0~DB7:被动态时作数据线,双向三态,主动态时双功能, 地址和数据分时复用:传送M地址的A8~15,M-M传输时作数据 输入/输出线; A0~A3:双向,被动态作端口选择线(16个可访问端口),主动 态发出M地址的A0~3; A4~A7:单向,主动态发出M地址的A4~7; ADSTB:地址选通,输出,用于将DB0~DB7发出的A8~15锁存 到外部地址锁存器;
内部寄存器组
有4个独立通道,每个通道有4个16位寄存器,一个工 作方式寄存器; 另有5个全芯片共用寄存器:命令,状态,请求,屏 蔽,暂存。
14
8.2 8237A内部结构及引脚
问题:芯片对外的联络方式如何?(引脚信号情况) 8-2-2 8237A的引脚 8237A是40引脚的双列直插式器件,由于它既可做主模块又
EOP RESET CS READY CLK AEN ADSTB
MEMR MEMW
地址暂存器 A15 ~A8 读/写缓冲器 当前地址 寄存器 (16×4) 当前字 计数器 (16×4)
I/O缓冲 A3~A 0 输出缓冲 A7~A4
16 读缓冲器 时 序 与 控 制 逻 辑 基地址 基字 寄存器 寄存器 4) (16× 4) (16×
可做从模块,故其外部引脚设置也具有一定的特点。如它的 I/O读写线和数据线是双向的,另外,还设置了存储器读/写 线和16位地址输出线。这些都是其他I/O接口芯片所没有的。
15

微机原理与应用第12章可编程DMA控制8237A

微机原理与应用第12章可编程DMA控制8237A
灵活的编程控制
通过编程,8237A可以实现复杂的 DMA传输控制,满足各种应用需求。
8237a的优势与不足
• 易于集成:8237A具有标准的接口,可以方便地与其他微 处理器或外设集成。
8237a的优势与不足
成本较高
由于8237A是一款较为复杂的芯片,其制造成本相对 较高,增加了系统成本。
功耗较大
异步传输
错误检测与纠正
可编程DMA控制器8237A具备错误检测与 纠正功能,能够保证数据传输的可靠性和稳 定性,降低数据传输错误导致的系统故障。
可编程DMA控制器8237A支持异步传输 模式,使得不同外设之间可以实现独立的 数据传输,提高系统并行处理能力。
在实时系统中的应用
实时响应
可编程DMA控制器8237A能够快速响应外部事件,及时完成数据 传输任务,满足实时系统的要求。
数据传输编程包括设置数据传输的起始地址、 数据块大小、数据传输方向等参数,以确保数 据正确地从源地址传输到目标地址。
数据传输编程通常在数据传输任务开始时进行, 以确保控制器按照预期的参数和条件进行数据 传输。
控制字编程
1
控制字编程是8237a可编程dma控制器的重要特 性之一,用于控制数据传输的流程和行为。
02
初始化编程包括设置通道号、 数据块大小、数据传输方向、 是否循环传输等参数,以确保 数据传输的正确性和效率。
03
初始化编程通常在系统启动时 或数据传输任务开始前进行, 以确保控制器处于正确的初始 状态。
数据传输编程
数据传输编程是8237a可编程dma控制器的核 心功能之一,用于控制数据在内存和外部设备 之间的传输。
2
控制字编程包括设置控制字的各位值,以实现不 同的控制功能,如启动/停止数据传输、设置通道 号、设置数据块大小等。

dma控制器芯片8257资料介绍

dma控制器芯片8257资料介绍

dma 控制器芯片8257 资料介绍
DMA 既可以指内存和外设直接存取数据这种内存访问的计算机技术,又可以指实现该技术的硬件模块(对于通用计算机PC 而言,DMA 控制逻辑由CPU 和DMA 控制接口逻辑芯片共同组成,嵌入式系统的DMA 控制器内建在处理器芯片内部,一般称为DMA 控制器,DMAC)。

值得注意的是,通常只有数据流量较大(kBps 或者更高)的外设才需要支持DMA 能力,这些应用方面典型的例子包括视频、音频和网络接口
现代计算机系统中,广泛采用了DMA 控制器与DMA 接口相分离的结构模式以IBM-PC 系列微型计算机的软盘机DMA 接口为例。

8237 DMA 控制器的编程结构
Intel 8237DMA 控制器芯片的内部结构
如下图。

DMA控制器和计数定时器

DMA控制器和计数定时器
/写控制端;在CPU对8237A进行读/写时。
5
8237工作时各信号的配合: (2) 当作为主模块工作时 当8237A 作为主模块工作时,它会往总线上提 供要访问的内存地址,此时CS、AEN信号为高电平。
作为主模块工作时,8237A还必须输出IOR、IOW
MEMR、MEMW读/写信号。 另外最高4位地址在传输前,用指令送到一I/O 端口中,所以DMA传输时,每次传输字节限制在216 以下。
01=单字节传输 10=块传输 11=级联传输
传输类型选择: 00=校验传输 01=写传输 10=读传输 11=无意义 自动预置功能选择: 0=禁止 1=允许
通道选择: 00=选择通道0 01=选择通道1 10=选择通道2 11=选择通道3
内存 I/O
地址增减选择: 0=地址加1 1=地址减1
10
写:I/O 读:内存
6
二、8237A的工作模式
8237A有四种工作模式,每个通道可以用四 种模式之一工作。
(1) 单字节传输模式:
此方式下,8237A一次请求总线只传送一个 字节,就释放总线控制权。8237A和CPU交替管 理。 、
7
(2)块传输模式: 在此方式下,由DREQ启动后就连续的传送数 据,直至完成预定字节数的传送或由外部I/O接 口输入有效的EOP信号,8237A才释放总线控制权 而结束传输。 (3)请求传输模式: 此模式与块传输模式类似,所不同的是在每 传输 1B后,8237A都对DREQ端进行测试,若仍有 效则继续传送,若无效则立即停止传送,待 DREQ 再次有效后继续传送。
18
8. 8237A的特殊软件命令
(2)清除先/后触发器命令 是用来控制DMA通道中地址寄存器和字节计数器 的初值而设置的。 若该触发器为“0”,则读/写低8位;若为“1”, 则读/写高8位。每当对16位寄存器进行一次读/写操 作,则触发器改变一次状态。 为了保证对16位寄存器的读/写是从低字节开始, 应事先用此软件命令使先/后触发器强制清零。

微机原理 第10章 DMA控制器8237A 习题及参考

微机原理 第10章 DMA控制器8237A 习题及参考

第十章DMA控制器8237A1.试说明在DMA方式下,传输单个数据的全过程。

答:内存往外设传输单个数据:(1)当一个接口准备就绪,要进行DMA传输时,该接口往DMA 控制器发一个DMA请求;(2)DMA控制器采样到DRED有效电平后,若屏蔽寄存器是开放的,便往控制总线上发一个总线保持请求;(3)若CPU允许让出总线,则发回一个总线保持允许信号;(4)DMA控制器接到此信号后,就将其内部地址寄存器的内容送到地址总线上;(5)同时,DMA控制器往接口发一个DMA回答信号,并发出一个内存读信号和一个I/O写信号;(6)接口收到DMA回答信号后,撤除DMA请求信号,且内存把数据送到数据总线上;(7)接口锁存数据总线上的数据后,一般往DMA控制器回送一个准备好信号;(8)DMA控制器的地址寄存器内容加1或减1,字节计数器的值减1;(9)DMA控制器撤除总线保持请求信号,CPU收回总线控制权。

这样,就完成了对一个数据的DMA输出过程。

外设往内存传输单个数据的过程:(1)当一个接口中有数据要输入时,就往DMA控制器发一个DMA 请求信号;(2)DMA控制器接到DMA请求后,(若屏蔽触发器是开放的)便往控制总线上发一个总线保持请求信号;(3)若CPU允许让出总线,则发回一个总线保持允许信号;(4)DMA控制器接到此信号后,就将其内部地址寄存器的内容送到地址总线上;(5)同时,DMA控制器往接口发一个DMA回答信号,并发一个I /O读信号和一个内存写信号;(6)接口收到DMA回答信号后,撤除DMA请求信号,并将数据送到数据总线上;(7)内存在收到数据后,一般往DMA控制器回送一个准备好信号;(8)DMA控制器的地址寄存器内容加1或减1,字节计数器的值减1;(9)DMA控制器撤除总线保持请求信号,CPU收回总线控制权。

这样,就完成了对一个数据的DMA输入过程。

2.为使DMA控制器正常工作,系统对DMA控制器进行初始化的过程分为哪两个主要方面?答:(1) 将数据传输缓冲区的起始地址或结束地址送到地址寄存器中;(2) 将传输的字节数或字数送到计数器中。

8237 内部结构及引脚_微型计算机原理及应用教程(第2版)_[共9页]

8237 内部结构及引脚_微型计算机原理及应用教程(第2版)_[共9页]

1837.5.2 8237内部结构及引脚8237A DMA 控制器有4个独立的通道,每个通道均有64KB 寻址与计数能力,并且可以用级联方式来扩充更多的通道。

它允许在外部设备与系统存储器以及系统存储器之间直接变换信息,其数据传送率可达1.5MB/s 。

它提供了多种控制方式和操作模式,大大增强了系统的性能,8237A 是一个高性能通用可编程的DMAC 。

1.8237A 的引脚8237A DMA 控制器是一个40个引脚的双列直插式组件,如图7-13所示。

由于它既作主控者又作受控者,故其外部引脚设置也独具特色,它的I/O 读/写线(IOR 、IOW )和地址线(A 0~A 3)是双向的,另外,还设置了存储器读/写线(MEM 、MEMV )和16位地址输出线(DB 0~DB 7、A 0~A 7)。

这些都是其他I/O 接口芯片所没有的。

下面对各引脚功能加以说明。

DREQ 0~DREQ 3:外部设备对4个独立通道0~3的DMA 服务请求,由申请DMA 传送的设备发出,可以是高电平或低电平有效,由程序选定。

它们的优先级是按DREQ 0最高,DREQ 3最低的顺序排列的。

DACK 0~DACK 3:8237控制器发给I/O 设备的DMA 应答信号,有效电平可高可低,由编程选定,在PC 系列中将DACK 编程为低电平有效,系统允许多个DREQ 信号同时有效,即可以几个外部设备同时提出DMA 申请,但在同一个时间,8237A 只能有一个回答信号DACK 有效,为其服务。

这一点类似于中断请求/中断服务的情况。

HRQ :总线请求,高电平有效,是由8237A 控制器向CPU 发出的要求接管系统总线的请求。

HLDA :总线应答,高电平有效,由CPU 发给8237A 控制器。

HLDA 有效时,表示CPU 已让出总线。

IOR /IOW :I/O 读/写信号,是双向的。

8237A 为主态工作时,它们是输出。

在DMAC 控制下,对I/O 设备进行读/写。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

,则强制DMAC内部
15 可编程DMA控制器
8237的引脚功能
MEMR/MEMW: 8237发出的存储器读/写信号
IOR/IOW: 8237作为主控时,输出的I/O读/写信号。 8237作为从控时,CPU发出的I/O读/写信号,用于 读/写8237
16 可编程DMA控制器
8237的引脚功能
ADSTB:地址选通信号 用于启动地址锁存器
号DREQ到DMAC
DMAC检查该信号是否被屏蔽及其优先权,如确认该
信号有效则向CPU发送总线请求信号HRQ(连到CPU
的HOLD)
地址总线
CPU
数据总线
存储器
HRQ
DMAC
DREQ
外设
6 可编程DMA控制器
概述
DMA响应和数据传送阶段
每个总线周期结束时CPU检测HOLD,如为高电平,则响应 HOLD请求进入保持态,使三态总线CPU侧呈高阻状态,并以总 线保持响应信号HLDA通知DMAC DMAC接管总线,并以DACK信号通知外设,使之成为DMA传 送时被选中的设备,同时DMAC给出内存地址以及I/O读写和存 储器读写控制信号,在外设和存储器之间完成数据传送
READY:存储器或I/O的就绪信号
17 可编程DMA控制器
8237的编程结构
18 可编程DMA控制器
8237的编程结构
控制寄存器
8位,4个通道共用,用于设定8237的信号形式、工作 时序、传输方向。 端口地址08H
信号形式:DREQ/DACK信号的有效形式。 工作时序:普通时序(3个时钟周期完成一次传输)
压缩时序(2个时钟周期完成一次传输) 传输方向:内存 I/O(常用)
I/O内存(常用) 内存内存(PC系列机未用)
19 可编程DMA控制器
控制寄存器格式
例如,PC系列机的8237,按如下要求工作:禁止存储器到存储器传送,按正常时序,滞后写入, 通道按固定优先权排序,允许 8237进行DMA操作,DREQ高电平有效,DACK低电平有效。
4 可编程DMA控制器
概述
DMA操作之前,应先对DMAC编程,把要传送的数据 块长度、数据块在存储器中的起始地址,数据传送方向 等信息发送给DMAC DMA操作过程包括三个阶段:
•DMA请求 •DMA响应和数据传送 •传送结束
5 可编程DMA控制器
概述
DMA请求阶段
当外设要求以DMA方式为它服务时,发DMA请求信
内存
外设
非DMA方式 (包括程序控制方式和中断方式)
DMA方式
3 可编程DMA控制器
概述
DMAC具有独立的控制三大总线来访问存储器和I/O端 口的能力,它能像CPU一样提供数据传送所需的地址 信息和读写控制信息
DMAC和CPU都挂在系统总线上,当进入DMA方式时, DMAC成为总线主控。
在总线上,可以控制其他部件的部件称为总线主控或 主控(bus master),被控部件称为从控(slave)。任意时 刻,总线上只有一个主控。
则命令字为00000000B=00H
MOV AL,00H OUT DMA+8,AL
;命令字 ;写入可命编令程寄DM存A器控制器8237A
状态寄存器
8位,4个通道共用,与控制寄存器共用一个端口地址 端口地址08H 记录每个通道是否有请求、传输是否结束
21 可编程DMA控制器
暂存寄存器
8位 , 端口地址0DH 在内存内存传输时,暂存数据。 注意:内存 I/O传输时,数据不进入8237内部, 只存在于数据总线上
DMAC
EOP
外设
8 可编程DMA控制器
概述
PC系列微机使用可编程DMA控制器 8237A(简称8237) 实现DMA功能 8237有四个通道,每个通道都有独立的与相应外设接 口相联系的信号,四个通道共享与CPU相连的控制信 号、地址信号、数据信号
9 可编程DMA控制器
8237的引脚功能
10 可编程DMA控制器
11
8237A芯片内部结构
8237的引脚功能
•请求/应答信号 外设接口电路向8237的请求信号:DREQ3~DREQ0 8237对外设接口电路的应答信号:DACK3~DACK0 8237向CPU申请总线的信号:HRQ(连至CPU的HOLD) CPU向8237传送的允许使用总线信号:HLDA
12 可编程DMA控制器
8237的引脚功能
•地址信号 :CPU初始化8237或读8237状态时所需的片选信号
A7~A0(输出):8237访问存储器的地址信号的低8位。 A3~A0(输入):CPU初始化8237或读8237状态时, 用于寻址8237内部寄存器
13 可编程DMA控制器
8237的引脚功能
•数据信号(双向): DB7~DB0 CPU为主控时,可以通过I/O读命令查询8237的状 态寄存器的内容,或通过I/O写命令对8237的内部 寄存器进行编程,数据传送通过DB7~DB0 8237为主控时, DB7~DB0输出要访问的内存地址 的高8位,并通过ADSTB锁存到外部地址锁存器中, 和A7~A0输出的低8位地址一起构成16位地址
22 可编程DMA控制器
模式寄存器
8位,设定DMA的传输模式,4个通道的模式寄存器 共用一个端口地址,端口地址0BH 传输模式:
•单字节传输模式 •数据块传输模式 •请求传输模式 •级联传输模式
第九章 可编程DMA控制器8237A
一、 DMA控制器8237
1. 概述 2. 8237的引脚功能 3. 8237的编程结构 4. 8237对内存和I/O的寻址
2 可编程DMA控制器
概述
DMA=Direct Memory Access,直接存储器存取
数据通道
数据通道
CPU
DMAC
内存
外设
数据通道
14 可编程DMA控制器
8237的引脚功能
•地址允许信号:AEN
8237作为主控时(8237控制总线),输出AEN=1。
8237作为从控时(CPU控制总线),输出AEN=0。
•DMA传输结束信号: (双向)
当DMAC内部任一通道传输结束,8237发出
若由外部给DMAC送入有效的 所有通道结束传输。
地址总线
CPU
数据总线
存储器
HLDA
MEMR/MEMW
DACK
外设
DMAC
7
IOR/IOW
可编程DMA控制器
概述
传送结束阶段
传送完成后,DMAC放弃总线,撤消总线请求(HRQ 为低),CPU检测到HRQ(HOLD)为低后,撤消HLDA, CPU重新获得总线控制权
CPU
地址总线 数据总线
存储器
HRQ
相关文档
最新文档