Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DMA控制器8237A「建议收藏」

DMA控制器8237A「建议收藏」

作者头像
全栈程序员站长
发布于 2022-08-30 10:42:18
发布于 2022-08-30 10:42:18
1.5K0
举报

大家好,又见面了,我是你们的朋友全栈君。

1 DMA系统简介

DMA(direct memory access)是一种外设与存储器或者存储器与存储器之间直接传输数据的方式,在进行DMA存取时,CPU让出总线控制权,不在采用输入输出指令的方法进行数据存取,而采用一个专门的硬件DMAC(Direct Memory Access Control)控制电路,减少了中间环节,从而提高了传输速率。

1.1 DMA基本原理

DMA直接实现I/O与存储器之间的数据传送。 ①当I/O接口准备好,希望进行DMA操作时,就像DMAC发出DMA请求信号DRQ(DMA Request) ②DMAC将此请求信号转变成对CPU的总线请求信号(Hold Request) ③CPU当前总线执行周期结束,相应DMAC操作,发出应答信号HLDA(Hold Acknowledgment),此时,由DMAC接管对总线的控制 ④由DMAC对存储器寻址,并发出相应的控制信号(DACK,/RD,/WR),使存储器与I/O接口之间直接交换数据 ⑤在传送一字节数据时,DMAC自动修改存储器地址和传送字节计数器,并检测传送是否结束 ⑥DMA传送结束,DMAC向CPU发出结束信号(EOP),并释放总线,使得CPU重新获得总线控制,恢复正常工作

2 DMA控制器8237A

2.1 8237A概述

  1. 8237A是可编程DMA控制器;
  2. 每个8237A有4个独立的DMA通道,优先权不同;
  3. 每个DMA通道有4种工作方式;
  4. 一次传送的最大长度可达64KB;
  5. 多个8237A芯片可以级连,用于扩展通道数。

2.2 8237A内部结构

2.3 8237A引脚图

  1. 控制信号: (1) CLK:时钟(控制芯片内部操作和数据传输) (2) ADSTB:地址选通 (3)/cs:片选 (4) READY:准备好 (5) AEN:地址允许 (6)/MEMR:存储器读 (7) RESET:复位 (8)/MEMW:存储器写 (9) /IOR:I/O读 (10)/EOP :过程结束 (11) / IOW :I/O写
  2. 请求和响应信号 (1) DREQ0~DREQ3:DMA通道请求 (2) HRQ:总线请求 (3) HLDA:总线响应 (4) DACK0~DACK3:DMA通道响应
  3. 数据和地址信号 (1) A0~A7:地址线 (2) DB0~DB7:数据线

2.4 8237A传送时序

(1) Si状态:空闲周期,Si的下降沿检测到有一个或几个DREQ请求,在Si的下一个上升沿向CPU发出DMA请求,HRQ有效; (2) S0状态:等待CPU对总线请求的响应,S0的上升沿采样到HLDA信号有效, 下一周期进入S1状态; (3) S1状态:地址允许信号AEN有效,存储单元高8位地址通过DB0DB7输出,发出地址选通信号ADSTB,下降沿对高8位地址进行锁存,地址低8位/由地址线A0A7 输出,且整个DMA传送期间保持; (4) S2状态:8237A向外设输出DMA响应信号DACK,读写信号相继有效; (5) S3状态和S4状态进行数据传送; (6) 块传送方式下:S4后传送下一个字节 ,地址高8位不变,低8位变化,不需要S1直接进入S2,直到发生TC事件。 (7) 若S4之前不能完成数据传送,可令READY为低,在S3和S4之间插入Sw,以加宽DMA传送周期。

2.5 8237A工作方式

2.5.1 单字节传送方式

(1) 传送过程:8237A获取总线控制权后,传送一个字节,字节数寄存器减1,地址寄存器加1或减1,HRQ变为无效,释放总线,HRQ很快再次有效,接收到HLDA有效信号后,传送下一字节,重复以上过程,直到字节数从0减到FFFFH,发生TC事件,DMA传送结束。 (2) 特点:效率低,但能保证两次DMA传送之间CPU有机会重新获取总线控制权。

2.5.2 块传送方式

(1) 传送过程:由DREQ启动后就连续传送数据,直到TC事件发生或外部输入有效的/EOP信号为止。 (2) 特点:一次请求能传送一个数据块,效率高;但整个DMA传送期间CPU长时间无法控制总线。

2.5.3请求传送方式

连续传送数据,当出现以下三种情况之一时停止。 (1) 字节数寄存器从0减到FFFFH,发生TC事件; (2) 由外部送来一个有效的 信号; (3)外部输入的DREQ信号变为无效。 当第三种情况发生时,当外设准备好数据后,传送可以继续下去。 特点:DMA操作可由外设控制传送的过程。

2.5.4 级联传送方式

若干片8237A构成主从式DMA系统

2.6 8237A传送类型

  1. DMA读:数据由存储器传送到外设
  2. DMA写:外设输入的数据写入存储器
  3. DMA检验:空操作,时序信号、地址信号与读写时一样,但读写控制线无效,常用于校验。
  4. 存储器到存储器传送:通道0为源,通道1为目的,软件启动,每传送一个字节需8个时钟周期,前4个时钟周期用于从源区将数据读入8237A的临时寄存器,后4个时钟周期把临时寄存器中的数据写入目的区,直至TC事件发生或发来/EOP信号。

2.7 8237A寄存器组

  1. 现行地址寄存器:用于保存DMA传送的当前地址值。
  2. 现行字节数寄存器:保存着还要传送的字节数。
  3. 基地址寄存器:保存现行地址初值。
  4. 基字节数寄存器:保存现行字节数初值。
  5. 模式寄存器:保存相应通道模式控制字。
  6. 命令寄存器:设置8237A操作方式
  1. 请求寄存器:数据块传送时可由软件发出DREQ请求,存储器到存储器传送时,必须由软件请求启动通道0。
  1. 屏蔽寄存器:用于屏蔽外设发出的DREQ请求。

(2) 主屏蔽字格式

  1. 状态寄存器:从CPU读取8237A的工作状态 。
  2. 临时寄存器: 在存储器到存储器传送方式下,保存数据

2.8 8237A的软件命令

237A共有10种内部寄存器,对它们的操作有时需要配合3个软件命令。8237A “软件命令”的特征: (1) 不需要通过数据总线写入控制字; (2) 直接由地址和控制信号译码实现。

  1. 清除高/低触发器软件命令 高/低触发器控制16位寄存器的读写: 触发器为0,操作低字节; 触发器为1,操作高字节; 16位寄存器进行一次操作,触发器 状态自动改变; A3A2A1A0=1100,高/低触发器清零。
  2. 主清除命令 与硬件的RESET信号具有相同的功能, A3A2A1A0=1101
  3. 清屏蔽寄存器命令 使4个屏蔽位都清零(允许DMA请求) A3A2A1A0=1110

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145075.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ZYNQ中DMA与AXI4总线-DMA简介
为什么在ZYNQ中DMA和AXI联系这么密切?通过上面的介绍我们知道ZYNQ中基本是以AXI总线完成相关功能的:
碎碎思
2020/09/28
3.1K0
ZYNQ中DMA与AXI4总线-DMA简介
AXI DMA详解与应用篇 |第一讲
DMA是一种内存访问技术,允许某些计算机内部的硬件子系统可以独立的直接读写内存,而不需要CPU介入处理,从而不需要CPU的大量中断负载,否则,CPU需要从来源把每一片段的数据复制到寄存器,然后在把他们再次写回到新的地方,在这个时间里,CPU就无法执行其他的任务。
根究FPGA
2020/06/30
16.2K0
AXI DMA详解与应用篇 |第一讲
闭关六个月整理出来的微机原理知识点(特别适用河北专接本)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151430.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
1.7K0
【STM32】DMA基本原理、寄存器、库函数
DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。
AI 电堂
2021/10/09
2.7K0
大学课程 | 《微机原理与接口技术》笔记
数据定义伪指令(1)用于定义数据区中变量的类型及其所占内存空间大小(2)DB(Define Byte):定义的变量为字节型(3)DW (Define Word) :定义的变量为字类型(4)DD (Define Double Word) :定义的变量为双字型(5)DQ (Define Quadword) :定义的变量为4字型(6)DT (Define Tenbytes) :定义的变量为10字节型
Justlovesmile
2021/12/14
4K0
大学课程 | 《微机原理与接口技术》笔记
DMA技术原理
DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。
数字芯片社区
2022/12/18
3.2K0
DMA技术原理
32.Linux-2440下的DMA驱动(详解)
DMA(Direct Memory Access) 即直接存储器访问, DMA 传输方式无需 CPU 直接控制传输,通过硬件为 RAM 、I/O 设备开辟一条直接传送数据的通路,能使 CPU 的效率大
诺谦
2018/01/08
4.1K0
32.Linux-2440下的DMA驱动(详解)
DMA方式的知识点笔记
其实题目问你 CPU 用于 DMA 处理的时间占比,本质上就是在问你 DMA 预处理 +后处理 的
苏泽
2024/07/12
6430
DMA方式的知识点笔记
嵌入式系统原理课后习题练习
(答案仅供参考,不喜勿喷~~) (本人比较懒,后面的就没仔细整) (注:如果你完成了我的“太懒啦”,我可以把你的加进去,附上你的名字,一起加油~~)
全栈程序员站长
2022/09/06
5.9K0
嵌入式系统原理课后习题练习
DMA方式
DMA方式是一种完全由硬件进行组信息传送的控制方式。具有程序中断方式的优点,即在数据准备阶段,CPU与外设并行工作。DMA方式在外设与内存之间开辟一条“直接数据通路”,信息传送不再经过CPU,降低了CPU在传送数据时的开销,因此称为直接存储器存取方式,由于数据传送不再经过CPU,也就不需要保护、恢复CPU现场等繁琐操作。
week
2018/08/24
4.1K0
《微机原理与接口技术》简答题总结及答案_微机原理与接口技术试题及答案
8086/8088、寻址方式、汇编指令、转移指令、中断、8253、8255、8259 必须知道的基础就不标★了 PDF打印版下载:微机原理简答题整理PDF版
全栈程序员站长
2022/11/10
1.8K0
《微机原理与接口技术》简答题总结及答案_微机原理与接口技术试题及答案
计算机组成-概述
冯诺依曼结构:运算器、控制器、存储器、输入设备和输出设备五大部件组成。现代计算机一般把控制器和运算器集成在一个芯片上,合称为中央处理器。 现代计算机一般以存储器为中心,使I/O操作尽可能绕过CPU,直接在I/O设备与存储器间完成,从而提高系统的整体运行效率。
千灵域
2022/06/17
2.4K0
计算机组成-概述
微机原理与接口技术 重点详解与章节总结——8086微处理器系统结构
8086 CPU是Intel系列的16位微处理器,有40个引脚。它的外部数据总线为16位,地址线为20根。因为可用20位地址,所以可寻址的地址空间达1MB。(代表了外围存储器的寻址能力)
timerring
2022/07/20
8K0
微机原理与接口技术 重点详解与章节总结——8086微处理器系统结构
输入输出接口
输入输出接口 常见的I/O接口: 南桥(现在叫PCH)、显卡 I/O接口 作用: 数据缓冲 解决CPU和外设之间的速度差距 提供联络信息 协调与同步数据交换过程 信号与信息格式的转换 模/数、数/模转换,串/并、并/串转换,电平转换 设备选择 中断管理 可编程功能 通讯: 需要“握手(Handshaking)信号”:总是成对出现,在数据传送中起着定时协调与联络作用。采用“握手”方式的数据传送,每一过程必须都有应答,彼此进行确认。 输出:并行数据输出(外设>IO接口)、输出准备好(外设>IO接口)
斯武丶风晴
2019/12/16
7580
计算机组成原理:5. 输入输出系统
为了进一步提高CPU的工作效率,又出现了直接存储器存取(Direct Memory Access,DMA)技术:
浪漫主义狗
2023/04/06
1.2K0
计算机组成原理:5. 输入输出系统
计算机组成原理 I/O方式
1) 程序查询方式。由 CPU通过程序不断查询 /O 设备是否已做好准备,从而控制0 设备与主机交换信息
onenewcode
2024/01/26
4051
计算机组成原理期末复习总结
本文是应某些学弟学妹的请求写的一篇计组复习文章,内容是我以前复习时总结的知识点,希望对大家最近的计组考试有些帮助!文章分为三部分:第一部分是考点总结,第二部分是电子版总结,第三部分是手写的知识点总结!
Cyril-KI
2022/09/19
1.7K0
计算机组成原理期末复习总结
微机原理与接口技术知识点整理复习–纯手打
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/131486.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/01
7500
微机原理与接口技术知识点整理复习–纯手打
计算机组成原理知识点
计算机体系结构(Computer Architecture)主要研究硬件和软件功能的划分,确定硬件和软件的界面,哪部分功能由硬件系统来完成,哪部分功能由软件系统来完成。
全栈程序员站长
2022/09/05
1K0
《微机原理与接口技术》期末复习笔记「建议收藏」
​ ■ 寻址:确定设备的地址,区分不同的设备; ​ ■ 缓冲:适配外设与CPU的工作速度; ​ ■ 转换:适配外设与CPU的信息格式、类型、幅度; ​ ■ 时序:外设与CPU的工作时序。
全栈程序员站长
2022/11/10
3.6K0
《微机原理与接口技术》期末复习笔记「建议收藏」
相关推荐
ZYNQ中DMA与AXI4总线-DMA简介
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档