dma控制器芯片8257资料介绍
8237芯片

8237芯片8237芯片是一种多功能可编程直接内存访问(DMA)控制器芯片,通常用于计算机系统和外设之间的数据传输。
以下是关于8237芯片的1000字简介:8237芯片是英特尔公司于1976年推出的一款集成电路芯片,用于计算机系统中的数据传输。
该芯片主要用于外设设备和计算机内存之间的数据传输,通过直接内存访问(DMA)技术来实现高效的数据传输。
8237芯片是针对intel 8086系列、80286、80386等CPU设计的,具有高度灵活性和可编程性。
它可控制传输速率、方向、优先级和传输长度,并可根据外设和系统的需要进行配置。
8237芯片的主要功能包括数据传输、中断控制和芯片寄存器控制等。
在数据传输方面,8237芯片可以通过DMA通道连接到外设设备,通过DMA传输方式实现高速数据传输。
它为系统提供了4个DMA通道,分别为DMA通道0、1、2和3,每个通道可以独立配置传输方向、时间和待传输数据的长度。
在中断控制方面,8237芯片具有优先级控制机制,可以控制DMA通道的中断请求优先级,确保数据传输的正常进行。
通过配置芯片的中断请求线,可以实现DMA通道的中断请求与CPU的单片或多片中断控制器之间的连接。
除了数据传输和中断控制,8237芯片还具有一系列寄存器,用于对芯片的工作模式、传输参数和状态信息进行控制和监视。
这些寄存器包括工作模式寄存器(mode register)、等待状态寄存器(status register)和请求寄存器(request register)等。
8237芯片在计算机系统中起到了关键的作用,它大大提高了数据传输的效率和可靠性。
通过使用DMA传输方式,可以减轻CPU的负担,提高系统的并行处理能力。
同时,8237芯片的可编程性使得它可以适应不同外设和系统的需求,提供灵活的数据传输方式。
总之,8237芯片是一款多功能可编程DMA控制器芯片,通过DMA传输方式实现高速数据传输。
它具有灵活性和可编程性,可以适应不同外设和系统的需求。
可编程DMA控制8237A

0禁止存储器到存储器传输 1允许存储器到存储器传输
0禁止通道0地址保持不变 1允许存储器到存储器传输 XD0=0时不起作用
0允许8237A操作 1禁止8237A操作
0正常时序 1压缩序 XD0=1不起作用
图12-4 命令寄存器
7.请求寄存器(RR)
8237A的4个通道都有一个于其相对应的请求触发器, 它是用来设置DMA请求标志的。在8237A控制器内,是4 个请求触发器对应1个DMA请求寄存器。我们知道,DMA 请求可以由硬件发出,也可由软件发出,对于硬件是通 过DREQ引脚引入DMA请求的,对于软件,则是通过对DMA 请求标志的设置来发出请求的,在存储器与存储器进行 数据传输时,因没有外部DREQ请求信号,因此,由软件 产生一个DMA请求信号来启动,DMA传输请求寄存器的格 式如图12-5所示。
2.当前字数寄存器(CWCR)
它用于存放当前的字节数,最大可达64KB。每一个通道都有一个16位 的当前字计数寄存器。在DMA传送操作时,每传送一个字节,该寄存器的内 容减1,当计数值变为零时,便自动产生终止计数信号。在编程状态下, CPU以字节为单位进行操作。在自动预置方式下,当计数减为0或出现有效 低电平时,基字计数寄存器(BWC)可自动地将初始值重新装入CWCR。
7 65 4 3 2 1 0
00选择请求方式 01选择单字节方式 10选择块方式 11选择级联方式
0选择地址增量 1选择地址减量
0禁止自动预置 1允许自动预置
00选择通道0 01选择通道1 10选择通道2 11选择通道3
00效验传输 01写传输 10读传输 11非法 XX若D7D6=11,则无效
图12-2 工作方式寄存器
(2)综合屏蔽命令格式(或称为主屏蔽寄存器)。其格 式如图12-6(b)所示。8237A允许使用综合屏蔽命令一 次完成对4个通道的屏蔽设置。
DMA控制器8237

写入命令控制字,禁止8237工作
发主清除命令 分别写入4个通道当前操作内存地址 分别写入4个通道工作模式
写入命令控制字,启动8237工作 写入屏蔽寄存器,清除通道屏蔽
图7-34 8237设置流程
二、 PC机DMA结构
以8088为CPU的PC机的DMA结构
80286以上档次PC机的DMA结构和 DMA通道分配
7.4.4 DMA控制器的编程及应用 现代计算机系统中,广泛采用了DMA控制器 与DMA接口相分离的结构模式 以IBM-PC系列微型计算机的软盘机DMA接口 为例,讨论其编程结构及应用 一、 8237 DMA控制器的编程结构 Intel 8237DMA控制器芯片的内部结构 如下图
地址总线
数据总线 控制总线
四、 DMA接口设计中的个问题 •请求与响应时序 •计数终止信号T/C的应用 •DMA通道的复用 ,见下图
•DMA通道的公用
• 单字节传送方式 •成组传送方式(块方式) •请求方式
8237DMA的级联方式
HRQ HLDA DREQ DACK 8237 DREQ DACK
CPU
HRQ HLDA 8237
HRQ HLDA 8237
图7-33 8237级联方式
8237DMA的自动初始化工作方式 及在DRAM 刷新的应用
8237DMA的设置流程
A3~0
I/O缓冲
/O缓冲 时序和 控制逻辑
HLDA HRQ 优先级 仲裁逻辑 命令 控制逻辑
寄存器组和标志触发器
DACK0~3 DREQ0~3 至接口
图7-32 8237DMA控制器内部结构
8237占有16个端口地址,在读/写时分 别选择不同的内部寄存器,见教材表 7-3所示 8237DMA的引脚功能描述见讲义相关部 分 8237DMA的三种基本工作方式
4 DMA控制器8237

(2)、工作方式寄存器各位含义如下所述: D7D6:DMA操作方式设定,共有4种方式: ●单字节方式 ●成组传送方式 ●请求方式 ●级联方式
级联的基本方法:
△D5:控制地址变化方向。如置“1”,每传送 一 个字节的数据,现行地址寄存器的内容减1。 反之,D5=0,地址按增量方式变化。 △D4:自动预置。如置“1”,将该通道设置成 自 动预置方式,即每当一次DMA传输结束后,2 个基本寄存器中的预置值将自动地再次写入 2个现行寄存器中。 △D3D2:数据传送方向。写传输,是指数据从 I/O设备写入到内存中去,读传输正好相反。 校验传输时8237A像DMA读或DMA写传输一样产 生时序,产生地址信号,外设可以利用这样
器、基本字节数寄存器、现行地址寄存器和 现剩字节数寄存器,每个通道都必须有这4 个寄存器,所以总数达16个。其中二种基本 寄存器只能写入,而二种现行寄存器只能读。 它们总是占用8个I/O端口地址。
2.工作方式寄存器
(1)、下图是一个字节长的工作方式寄存器各位含义。 4个方式寄存器只占用一个I/O端口地址,不管哪个通 道的方式字都用0BH地址写入,利用方式字的最低两位 D1D0位的编码来指定该方式字属于哪个通道。
D1:从存储器到存储器传输时,固定用通道0的地址 寄存器存放源地址,这时可用D1位控制源地址变化 与否。如果为 “1”,源地址在整个数据块传送中都 有保持不变。这种方式将使一个单元的内容送到规 定长度的某一内存区域中去;如果为“0”,则通道0 的地址变化。该位仅在D0位为“1”时才有意义,如 果D0位为“0”,即不作存储器之间的数据传输时, D1位就没有意义了。 D0:控制是否从存储器到存储器传输。若为1,是从 存储器到存储器传输;否则不是。存储器间传送的 操作只能用软件启动,对请求寄存器(地址为09H) 写入04H,就可以用软件方法启动通道0。
可编程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控制器

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信号变为无效(外设来的数据已送完)。
可编程DMA控制器8237A

,则强制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系列机未用)
第8章 可编程DMA控制器8237A解析

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
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
dma 控制器芯片8257 资料介绍
DMA 既可以指内存和外设直接存取数据这种内存访问的计算机技术,又可以指实现该技术的硬件模块(对于通用计算机PC 而言,DMA 控制逻辑由CPU 和DMA 控制接口逻辑芯片共同组成,嵌入式系统的DMA 控制器内建在处理器芯片内部,一般称为DMA 控制器,DMAC)。
值得注意的是,通常只有数据流量较大(kBps 或者更高)的外设才需要支持DMA 能力,这些应用方面典型的例子包括视频、音频和网络接口
现代计算机系统中,广泛采用了DMA 控制器与DMA 接口相分离的结构模式以IBM-PC 系列微型计算机的软盘机DMA 接口为例。
8237 DMA 控制器的编程结构
Intel 8237DMA 控制器芯片的内部结构
如下图。