第八章 DMA控制器8237
合集下载
可编程DMA控制8237A

0固定优先权 1循环优先权
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个通道的屏蔽设置。
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的三种基本工作方式
可编程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技术

采用程序传送数据
除了专用的计算机系统外,一般的计算机系统 要不断更换工作任务,因此经常要与外部设备 进行数据交换,特别是与磁盘的数据交换。
磁盘数据是按扇区为单位存储的。一次传送至 少上百字节。
DMA技术就是为加速大量数据传输过程发明的技 术。
在DMA期间,CPU让出对系统总线的控制权,由 DMA控制器负责外部设备与存储器之间的数据 传送。
8237的工作过程
若在S4状态结束前不能完成数据的传送,则只需使READY 信号线变低,就可以在S3(S2)和S4状态间插入Sw等待状 态。直到READY变高,才进入S4。
用DMA传送数据,要求存储器区地址是连续的。因此, 许多时候地址的高8位不变,只是低8位改变。所以,输 出和锁存高8位地址的S1状态不需要,可直接进入S2状态。
其缺点是,在整个DMA传送期间CPU无法控制总线。 (CPU无法处理中断。)
8237的传送方式
DMA传送方式3:请求传送方式
在这种方式下,DREQ信号有效,8237A连续传送数据; 但当DREQ信号无效时,DMA传送被暂时中断,8237A释放总 线,CPU得到总线控制权。但DMA传输并未终止,DMA通道的 地址和字节数的当前值,仍保持在相应通道的当前地址和 当前字节数寄存器中。当外设又准备好进行传送时,只要 使DREQ信号再次有效,DMA传送就继续进行下去。
8237的引脚信号—CPU接口信号
当8237A作为CPU外部芯片时,通过下列引脚, 接受CPU管理和控制
1. DB7~DB0:双向三态数据总线。(非复用) 2. A3~A0地址线:低4位地址总线。8237在系统中占 16个地址单元。 3. CS :片选信号。 4. IOR / IOW :作为CPU外部芯片时的读/写信号。 5. RESET复位
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解析

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
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
DMA控制器8237

(2)主清除命令 ) 可清除4个通道的屏蔽触发器 个通道的屏蔽触发器, 可清除 个通道的屏蔽触发器,即允许 各通道DMA请求。 请求。 各通道 请求 7.8237的编程步骤 8237的编程步骤 (1)输出主清除命令。 )输出主清除命令。 (2)写入基与现行地址寄存器。 )写入基与现行地址寄存器。 (3)写入基与现行字节数寄存器。 )写入基与现行字节数寄存器。 (4)写入模式寄存器。 )写入模式寄存器。 (5)写入屏蔽寄存器。 )写入屏蔽寄存器。
dreq0dreq3通道dma请求输入外设向dmac输入的请求dma服务信号固定优先级时dreq0优先级最高dreq3最低优先级循环时某通道被响应后变为最低dack0drek3dma控制器送给io接口的回答输出hrq总线请求输出有效时表示8237的某通道向cpu请求占用总线hlda总线响应输入有效时表示cpu让出总线的控制权a3a0地址低4位io双向cpu控制总线时输入用做cp写入命令寄存器。 )写入命令寄存器。 ( 7) 写入请求寄存器 。 若有软件请求 , ) 写入请求寄存器。 若有软件请求, 就写入指定通道,可以开始DMA传送的过 就写入指定通道 , 可以开始 传送的过 程。 若无软件请求, 则在完成了 ( 1) ~ 若无软件请求 , 则在完成了( ) 启动DMA传 (6)的编程后,由通道的 )的编程后,由通道的DREQ启动 启动 传 送过程。 送过程。
12.3 8237在IBM PC/AT系统中的应用 在 系统中的应用 使用2片 级连, 通道, 使用 片8237A级连,提供 个DMA 通道, 级连 提供7个 如下图: 如下图:
DREQ0 DREQ1 DREQ2 DREQ3 HRQ DREQ4 DREQ5 DREQ6 DREQ7
通道1, 通道 ,用户使用 通道2, 通道 ,服务于软盘驱动器 通道4, 通道 ,用作级连 其余通道, 其余通道,保留
8237工作原理

8237工作原理
8237是一种DMA(Direct Memory Access,直接内存访问)控制器,其工作原理如下:
1. 初始化:首先,CPU将DMA控制器的寄存器进行初始化设置,包括传输模式、传输方向、数据长度等。
2. 配置DMA通道:DMA控制器可以有多个通道,每个通道可以独立地进行数据传输。
CPU需要配置DMA通道,指定它们所要使用的内存地址、外设地址以及数据传输的方向。
3. 请求方式:外设设备通过向DMA控制器发送请求信号来启动数据传输过程。
外设设备通常是在缓冲区已满或空时发出请求,要求DMA控制器将数据从内存复制到外设或从外设复制到内存。
4. 中断处理:在数据传输完成后,DMA控制器可以发送中断信号给CPU,以便CPU知道数据传输已经完成,可以进行进一步的处理。
中断信号可以触发CPU执行指定的中断服务程序。
5. 数据传输:DMA控制器会根据配置好的参数,直接从内存中读取数据,或者将数据写入内存,而无需CPU的干预。
DMA控制器和CPU可以并行工作,提高数据传输的效率。
总结:DMA控制器通过直接访问内存,实现了CPU与外设之
间的数据传输,并且减轻了CPU的负担。
它能够在数据传输过程中独立工作,大大提高了数据传输的效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DACK有效电平
低电平有效 高电平有效 DREQ有效电平 0 1
Channel 0 地址保持不变 0 1 0 1 X 0 1 X 0 1 Disable Enable D0=0
高电平有效
低电平有效
扩展写
不扩展写 扩展写 D3=1
8237A 工作 Enable 8237A Disable 8237A
优先级类型
2
2 2 2 3 3 3 3
写
读
0 0 0 0 0 0 0 0
1 1 0 0 1 1 0 0
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 1 1 1 1 0 0
基本 /当前字计数 写 当前字计数 基本 / 当前地址 当前地址 读 写 读
为输入,在主模块时为输出。
AEN,ADSTB输出:8位地址锁存允许及选通。在主
模块时允许外部锁存器锁存8237A的高8位地址。
MEMR,MEMW:输出,存储器读写控制,主模块时送
存储器。
READY:输入,准备就绪,主模块时控制总线周期
的长度,与慢速设备同步。
13
RESET:输入,复位信号,复位时屏幕寄存器置 1,
内 F/F
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
DB0~DB7 A0 ~ A7 A8 ~ A15 A0 ~ A7 A8 ~ A15 W0 ~ W7 W8 ~ W15 W0 ~ W7 W8 ~ W15 A0 ~ A7 A8 ~ A15 A0 ~ A7 A8 ~ A15 W0 ~ W7 W8 ~ W15 W0 ~ W7 W8 ~ W15 15
25
5、DMA控制器的工作时序 DMAR的7种状态周期SI,S0,S1,S2,S3,S4及SW SI SI S0 S0 S1 S2 S3 S4 S2 S3 S4 CLK DREQ HRQ
SI
SI
HLDA
AEN ADSTB DB0~DB7 A0~A7 DACK
A8~A15 有效地址 有效地址
IOR MEMR IOW MEMW 8237A-5的DMA时序 扩展写信号
§8.2 可编程DMA控制器8237A
1. DMA(Direct Memory Access)的概念 2. DMA系统组成及工作过程 3. Intel 8237A可编程DMA控制器框图
4. 8237A编程
5. DMA控制器的工作时序
1
1.
DMA(Direct Memory Access)的概念
读状态 寄存器 写命令/控制 寄存器 非法 写DMA请求标志 寄存器 非法 写屏蔽标志 寄存器 非法 写模式 寄存器 非法 清除字节指针 F/F
单一位
B C
1 1
1 1
1 1
1 1
0 0
1 1
1 1
0 0
0 1
0 1
1 0
1 0
读暂存器 复位 (总清)
非法 清除/屏蔽标志 寄存器
D
E
三个软件 命令不依 赖DB上 数据
0 0
0 0 0 0 0 0
1 1
0 0 1 1 0 0
0 0
1 1 0 0 1 1
0 1 0 1
0 1 0 1 0 1 0 1
1 1
1 1 1 1
0 0
1 1 1 1
0 1
0 1 0 1
A0 ~ A7 A8 ~ A15
W0 ~ W7 W8 ~ W15 W0 ~ W7 W8 ~ W15 16
基本 /当前字计数 写
DMA方式不用处理器干预完成M与I/O间数据传送。
DMA期间系统总线由其它主模块控制(驱动)
控制总线的主模块要提供系统的地址及控制信号。
DMA控制器与处理器配合可实现系统的DMA功能。
2
2. DMA系统组成及工作过程 ․ DMA系统组成
地址总线
总线 请求 HOLD HLDA CPU 总线 响应 控制总线 HRQ DMAC HLDA DACK DREQ
基字节数寄存器: DMA传送的总字节数。 当前字节数寄存器: DMA传送时内容变化,可读。
11
8237A引线说明:
DB7-DB0:双向数据总线。
8237A为从模块时被处理器编程或读状态,DB7-
DB0作为数据线,传输数据或命令字。
8237A为主模块时DB7-DB0输出地址A15-A8,在
固定优先级 循环优先级 0 1 0 1 X
时序类型
普通时序 压缩时序 D0=1 19
• 8237A 控制/命令寄存器格式(写9号):硬件设置与运行控制
8237A运行控制命令字:软件DMA请求
运行控制
8237A DMA 请求寄存器 格式(写9号)
D7
D6
D5 不用
D4
D3
D2
D1 0
D0 0 Channel 0 Channel 1 Channel 2 Channel 3
14
4. 8237A编程 • 地址、字计数器端口分配
8237A 字计数器与地址寄存器端口号与对应操作(1)
通道 寄存器 操作 CS IOR IOW A3 A2 A1 A0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
26
(1).空闲周期SI 上电后,未编程前,还没有DMA请求,进入空闲周SI, DMA处于被动工作方式,CPU可对DMA进行编程。
其它寄存器置0。
EOP:双向。输出时,表明内部通道传送结束;
输入时,表明外部强迫DMA传送停止。
DREQ0-DREQ3:I/O设备DMA请求输入信号。 DACK0-DACK3:输出DMA请求的响应。 HRQ:8237A向处理器发出的总线请求信号。 HLDA:处理器发给8237A的总线请求响应信号。
当前字计数 读
•
操作命令与端口号对应关系表
A3 A2 A1 A0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 IOR 0 1 0 1 0 1 0 1 0 1 IOW 1 0 1 0 1 0 1 0 1 0 操 作 十六进制 8 9 A
10
• 8237A组成说明: 8237A有四个独立通道:每个通道有16位地址REG,16
位字节数计数器,6位模式REG。
四个通道公用控制寄存器,状态寄存器,屏蔽寄存器,
请求标志寄存器及暂存器,各寄存器均为8位。
基地址寄存器:放DMA传送RAM地址初值。
当前地址寄存器: DMA传送时内容变化,可读。
23
• 编程过程
HLDA无效时8237A接受µ P编程,不管HRQ是
否有效。 编程前禁止8237A:发关闭8237A命令,向8号 端口(硬件设置)写04H,或对通道进行屏蔽。 用软命令发出总清(Master Clear)操作:向 0DH端口执行一次写操作。 向有关通道送地址值,计数值,模式字。 送硬件设置命令字,打开8237A。 去除屏蔽准备接收DMA请求。
传输类型选择 地址增量选择 地址加1 地址减1 0 1 0 0 1 1 X 0 1 0 1 X 校验传输 写传输 读传输 非 法 D7 D6=11
自动预置功能选择
禁止
允许
0
1
18
• 8237A 控制/命令寄存器格式(写8号):硬件设置与运行控制
8237A硬件设置:
D7
D6
D5
D4
D3
D2
D1
D0 MEM. MEM. 传输 0 1 禁止 允许
M
M传送操作时经DB7-DB0,将M数据送8237A
暂存器。
A3-A4:地址线,从模块时为输入,处理器寻址
8237A;主模块时输出低位地址。
12
A7-A4:地址线,主模块时输出A7-A4。
CS:片选,从模块时处理器用来寻址8237A。
IOR,IOW:I/O读写控制,双向。8237A在从模块时
1 1
1 1
1 1
1 1
0 1
1 0
非法 写所有屏蔽 REG
F
所有位 17
• 8237A 模式寄存器格式(写B号):工作方式设定
D7 模式选择 随机请求传输模式 单字节传输模式 块传输模式 级联传输模式 0 0 1 1
D6 0 1 0 1
D5
D4
D3
D2
D1 0 0 1 1 0 1 0 1
D0 通道选择 选 0# Channel 选 1# Channel 选 2# Channel 选 3# Channel
不用
清除 MASK 位
建立 MASK 位
0 1
0 1 1
21
• 8237A 控制/命令寄存器 格式(写F号):硬件设置与运行控制 8237A运行控制命令字:设屏蔽字(四通道)
运行控制
8237A 全4位 MASK 寄存器 格式 (写F号)
D7
D6 不用
D5
D4
D3
D2
D1
D0 0
清 Channel 0 Mask 位 设 Channel 0 Mask 位