补充知识dma控制器

上传人:j****9 文档编号:54822344 上传时间:2018-09-20 格式:PPT 页数:57 大小:539.50KB
返回 下载 相关 举报
补充知识dma控制器_第1页
第1页 / 共57页
补充知识dma控制器_第2页
第2页 / 共57页
补充知识dma控制器_第3页
第3页 / 共57页
补充知识dma控制器_第4页
第4页 / 共57页
补充知识dma控制器_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《补充知识dma控制器》由会员分享,可在线阅读,更多相关《补充知识dma控制器(57页珍藏版)》请在金锄头文库上搜索。

1、第11章 DMA技术与DMA控制器,11.1 DMA技术概述 11.2 可编程DMA控制器8237A 11.3 DMA技术在微机系统中的应用,直接存储器存取,11.1 DMA技术概述,1、DMA 传送方式的实现方法: 由专用接口芯片DMA控制器 (简称DMAC) 控制传送过程; 当外设需传送数据时,通过 DMAC向CPU发出总线请求; CPU发出总线响应信号,释放总线; DMAC接管总线,控制外设、内存之间进行直接数据传送。 DMAC撤消总线请求; CPU撤消总线响应,并重新接管总线。,DMA技术概述,2、DMA传送方式的特点 外设和内存之间,直接进行数据传送,不通过CPU, 传送效率高。适用

2、于在内存与高速外设、内存两个区域之间,或两个高速外设之间进行大批量数据传送。 电路结构复杂,硬件开销较大,DMA 传送过程示意图,总线 响应,总线 请求,总线,11.1.1 DMAC的基本功能,接收接口往DMA控制器发出DMA请求信号后,DMA控制器能向CPU发出总线请求信号HOLD(高电平)。当CPU向DMA发出响应信号HLDA(高电平)以后,DMA能接管对总线的控制,进入DMA方式。能向地址总线发出内存地址信息,对其进行寻址及修改地址指针。,DMAC的基本功能,能向存储器或I/O接口发相应的读写控制信号。 能决定传送字节数,并判断DMA传送是否结束。 DMA过程结束,能向CPU发出DMA结

3、束信号,HOLD变低,将总线控制权还给CPU,CPU恢复正常工作。,11.1.2 DMAC的一般结构,图9.1 单通道DMAC的一般结构及其与I/O接口的连接,11.1.3 DMAC的工作方式,1、单字节传输方式 :在单字节传输方式下,DMA控制器每次请求总线只传送一个字节数据,传送完后即释放总线控制权。2、块传输方式(也称组传输方式):块传输方式是指DMA控制器每次请求总线连续传送一个数据块,待整个数据块全部传送完成后再释放总线控制权。,3、请求传输方式:此方式与块传输方式基本类似,不同的是每传输完一个字节,DMA控制器都要检测由I/O接口发来的DMA请求信号是否仍然有效,如果该信号仍有效,

4、则继续进行DMA传输;否则,就暂停传输,交还总线控制权给CPU,直至DMA请求信号再次变为有效,数据块传输则从刚才暂停的那一点继续进行下去。,11.1.4 DMA操作过程 (以输入数据块为例),若从外设往内存输入一个数据块(输入过程),在单字节传输方式下,主要工作过程为: 从I/O接口向DMA控制器发送DMA请求信号; DMA控制器向CPU发总线请求信号,当得到CPU送来的总线允许信号后,DMA控制器获得总线控制权; DMA控制器将其地址寄存器的内容送到地址总线上; DMA控制器往I/O接口发送DMA响应信号,并接着发出I/O接口的读信号,使I/O接口把数据送到数据总线上;,DMA操作过程,

5、DMA控制器发出端口读信号和存储器写信号,使数据传送到由地址总线的地址所指向的内存单元; 地址寄存器加1; 字节计数器减1; 如果字节计数寄存器的值不为零,则返回第步,否则进入第步; DMA控制器释放总线;,内存把数据送数据总线,内存,8086和,总线控,制逻辑,HOLD,HLDA,发送总线请求,控制总线,总线允许,地址总线,数据总线,接口,DMA,控制器,接口准备就绪,发送DMA请求,发端口读和内存写信号,I/O设备,DMA请求,得到确认,3,2,5,1,6,4,8,9,DMA控制器把地址送地址总线,撤消总线请求,8086收回总线控制权,图11.2 以DMA方式输出一个字节数据的工作过程,1

6、1.2 可编程DMA控制器8237A,11.2.1 8237A的主要特性 1具有四个独立的DMA通道,每个通道都具有64K的存贮器寻址能力,即一次传送的最大长度为64K字节。 2可实现内存与外设之间的高速大批量数据传送 ,也可实现内存两个不同区域之间的高速数据传送。 3每个通道的DMA请求均可分别允许或禁止,且四个通道的DMA请求的优先权可由软件设置为固定的或旋转的。,8237A的主要特性,4具有单字节传送、数据块传送、请求传送和级联传送四种工作方式。 5可用级联方式扩展DMA通道数目。 6DMA传送结束信号可由内部计数产生,也可由外部输入提供。 7单一的+5V电源,40个引脚双列直插式封装。

7、 8采用5MHz时钟,传送速率可达1.6M字节/秒。 98237可以级连,任意扩展通道数。,11.2.2 8237A的工作原理,18237A的编程结构 编程结构见下页图 内部有大量寄存器,内部寄存器的功能、端口地址等信息 参见表11.1.,图11.3 8237 A的编程结构,82C37A内部逻辑框图,DMA 控制器 8237A 的内部结构8237A由基本控制单元、缓冲器、内部寄存器组成1基本控制逻辑单元(1)时序与控制逻辑:根据初始化编程时所设置的工作式, 产生 8237A 内部定时信号和外部控制信号。(2)优先级编码:CPU 对 8237A 送来的初始化命令所设置的 优先权,对外设同时提出的

8、多个 DMA 请求,进行排队判优,裁决 各通道的优先次序。,(3)命令控制单元:CPU 控制总线,DMA 处于从属状态时, 对 CPU 送来的初始化命令进行译码;当 DMA 控制总线,CPU 脱离总线时,对设定的 DMA 工作方式字进行译码。2缓冲器(1)地址 I/O 缓冲器:4 位双向的三态缓冲器,在 CPU 控制总线时,将地址总线的低 4 位 A3A0 送入 8237A 进行译码,选通内部寄存器,在 有效时,将数据总线的数据写入所选通的内部寄存器中;在 有效时,将所选通的寄存器内容送到总线上;在 DMA 控制总线时,将 8237A 产生的 16 位存储器的地址低 4位 A3A0 送出。(2

9、)数据I/O缓冲器:8 位双向的三态缓冲器,是 8237A 与系统数据总线的接口,CPU 对 8237A 的编程控制字、CPU 从 8237A 中读取的状态字、当前地址、字节计数器的内容,经过它进行输入输出。,见图 10.1 (3)输出缓冲器:4 位双向的三态缓冲器,在 DMA 控制时导通,8237A 提供的 16 位存储器地址 A7A4 由此送出。38237A 的内部寄存器(1)命令寄存器:又称控制寄存器,用来设置 8237A 的工作方式。(2)8位状态寄存器:读命令时低 4 位表示每个通道的字节数是否为 0,高 4 位表示每个通道是否还有未处理的 DMA 请求。(3)4 位请求寄存器:每一

10、位对应一个通道的请求位,8237A 可通过硬件引脚 DREQ 来进行 DMA 请求外,也可通过软件对请求寄存器的编程设计产生 DMA 请求。 (4)4位屏蔽寄存器:对应通道 DMA 屏蔽请求标志位,编程决定。 (5)4位综合屏蔽寄存器:对 4 个通道,一起设置屏蔽或一起复位。,见图 10.1(6)暂时字节计数器:暂时存放当前字节计数器的内容,仅供芯片内部使用。(7)暂时地址寄存器:暂时存放当前地址计数器的内容,仅供芯片内部使用。(8) 8位暂存寄存器:暂时存放从源单元读出的数据。(9)工作方式寄存器:保存通道方式控制字,规定通道操作方式。(10)基地址寄存器:保存通道当前地址寄存器的初值,其值

11、与当前地址寄存器同时写入,不被 CPU 读出,设置为自动初始化,当 有效时,用来使当前地址寄存器恢复初值。,见图 10.1 (11)当前地址寄存器:保存 DMA 传送过程中的地址,每次传送其地址要自动 +1 或 1,设置为自动初始化,当 有效时可恢复初值 (12)基字节计数器:保存通道当前字节数寄存器的初值,其值与当前地址寄存器同时写入,不被 CPU 读出,自动初始化时,用来使当前字节计数器恢复初值。 (13)当前字节计数器:保存当前字节数,每次传送后,其值自动 +1 或 1,设置为自动初始化,当 有效时,可恢复初值。,40 根引脚双列直插式芯片,见图 10.2。1时序控制逻辑引脚(1) CL

12、K 时钟输入:用于控制芯片内的操作和数据传输率,8237A的时钟频率为 3MHZ。(2)片选信号 :低电平有效时,选中 8237A,DMA 通过数据总线与 CPU通讯。(3)RESET 复位输入信号:高电平有效时,8237A 芯片被复位,其内部的寄存器被清 0,复位期间芯片处于空闲状态。(4)READY 准备好输入信号:外设输入,高电平有效,当进行 DMA 传送的是慢速 I/O 外设或是存储器时,可能要求延长读/写操作的时间,READY 变为低电平,使 8237A 在 DMA 周期中插入等待周期 TW 。 (5)ADSTB 地址选通信号:低电平有效时,DMA 控制器将当前地址寄存器中的高 8

13、位 DB7DB0(A15A8)锁存到外部锁存器中。,DMA 控制器 8237A 的引脚,图 10.2。(10)输入输出设备写信号 :三态输出,低电平有效,输出有效低电平时,作为输入控制信号,CPU将信息写入8237A内部寄存器,作为输出控制信号, 配合,将数据从存储器送到外设。(11)传输过程结束信号 :双向,低电平有效,输出有效低电平时,外部向 DMA 发一个 信号,DMA 被外部强制结束,DMA 内部的计数器计到 0 时,产生 信号,表示DMA 的传送结束。2优先权电路引脚(1)DREQ0DREQ3 通道0通道3 DMA 请求输入信号:当外设请求 DMA 服务时,向 8237A 的 DRE

14、Q 引脚送一个有效的电平,极性由编程时决定,固定优先权 DREQ0 最高,DREQ3 最低。,图 10.2。(2)DACK0DACK3 通道 0通道 3 对外设 DMA 请求响应信号:输出,有效电平极性由编程时决定,当 8237A 收到 CPU 对其 DMA 请求回答信号 HLDA 时,开始 DMA 传送,DACK 发出有效信号送到外设,8237A 已经进入 DMA 周期。(3)HRQ DMA 总线请求信号:输出,高电平有效,与 CPU 的HOLD 相连,外设有 DMA 请求时,通过相应的 DREQ 发有效电平,DMA 通过 HRQ 向 CPU 申请总线控制权。(4)HLDA 总线响应信号:输

15、入,高电平有效,与 CPU 的 HLDA 相连,CPU 收到 8237A 的 HRQ 信号,当前机器周期结束后,释放总线,使 HLDA 有效电平,8237A 接管总线,开始 DMA 传送。,3数据、地址缓冲线脚,图 10.2(1)A3A0 双向三态地址线:输入地址时,用来寻找 DMA 的内部寄存器,CPU 对所选的寄存器进行操作;输出地址时,作为低 4 位的地址输出线。(2)A7A4 高 4 位地址线:工作在输出状态,输出 4 位地址信息。(3)DB7DB0 双向数据线:连接到系统总线上,CPU 通过读命令,读取 8237A 内部的寄存器的内容;通过写命令,对 8237A 内部寄存器进行编程。

16、,1方式寄存器保用来存相应通道的控制字,规定相应通道的工作方式,见图10.3 。(1)D1D0 8237A 的通道选择位:D1D0= 00 时,选择通道0;D1D0= 01时,选择通道 1 ;D1D0 = 10时,选择 通道 2;D1D0= 11时选择 通道 3。(2)D3D2 设置数据传送类型:D3D2 = 00时,DMA 校验传送;D3D2 = 01时,DMA 写传送;D3D2 = 10时,DMA 读传送;D3D2 = 11 时无效。(3)D4 设置是否允许自动初始化:D4 = 0时,禁止自动初始化;D4 = 1时,允许自动初始化。(4)D5 设置每次传送完成后地址:是增 1 还是减 1:D5= 0时,地址增 1;D5 = 1时地址减 1。(5)D7D6 规定 DMA 的工作方式:D7D6 = 00时,请求传送方式;D7D6 = 01时,单字节传送方式;D7D6 = 10时,块传送方式;D7D 6= 11时级联方式。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号