8237A有四种工作方式:单字节传送、数据块传送、请求传送和多片级联。
 (1)单字节传送(single mode)
  单字节传送方式是每次DMA传送时,仅传送一个字节。传送一个字节之后,当前字节计数器减1,地址寄存器加1或减1,HRQ变为无效,释放总线控制权,将控制权交还给CPU。如果传送使得字节计数器减为0或由外设产生信号时,则终止DMA传送。
  单字节传送方式的特点是:一次传送一个字节,效率较低,但它会保证在两次DMA传送之间,CPU有机会获得总线控制权,执行一次CPU总线周期。
 (2)数据块传送(block mode)
  在这种数据传送方式下,8237A一旦获得总线控制权,就会连续地传送数据块,直到当前字节计数器减到0或由外设产生信号时,终止DMA传送,释放总线控制权。
  数据块传送方式的特点是:一次请求传送一个数据块,效率高,但在整个DMA传送期间,CPU长时间无法控制总线(无法响应其他DMA请求,无法处理其他中断等)。
 (3)请求传送(demand mode)
  请求传送方式与数据块传送方式类似,也是一种连续传送数据的方式。
  区别是:8237A在请求传送方式下,每传送一个字节就要检测一次DREQ信号是否有效,若有效,则继续传送下一个字节;若无效,则停止数据传送,结束DMA过程。但DMA的传送现场全部保持(当前地址寄存器和当前字节计数器的值),待请求信号DREQ再次有效时,8237A接着原来的计数值和地址继续进行数据传送,直到当前字节计数器减到0或由外设产生信号时,终止DMA传送,释放总线控制权。
  请求传送方式的特点是:DMA操作可由外设利用DREQ信号控制数据传送的过程。
 (4)多片级联(cascade mode)
  当一片8237A通道不够用时,可通过多片级联的方式增加DMA通道,由主、从两级构成,从片8237A的HRQ和HLDA引脚与主片8237A的DREQ和DACK引脚连接,一片主片最多可连接四片从片。在级联方式下,从片进行DMA传送,主片在从片与CPU之间传递联络信号,并对从片各通道的优先级进行管理。
  级联方式的特点是:可扩展多个DMA通道

8237dma的四种传送方式简介的更多相关文章

  1. python接口自动化(十)--post请求四种传送正文方式(详解)

    简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...

  2. post请求四种传送正文的方式

    一.简介 HTTP协议规定post提交的数据必须放在消息主体(entity-body)中,但协议没有规定数据必须使用什么编码方式.HTTP协议是以ASCII码传输,建立再TCP/IP协议之上的应用层规 ...

  3. python3+requests:post请求四种传送正文方式(详解)

    前言:post请求我在python接口自动化2-发送post请求详解(二)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等,可以参考Get,Post请求方式经典详解进行学习一下. 我 ...

  4. python3+requests:post请求四种传送正文方式

    https://www.cnblogs.com/insane-Mr-Li/p/9145152.html 前言:post请求我在python接口自动化2-发送post请求详解(二)已经讲过一部分了,主要 ...

  5. Web.xml中四种验证方式

    源地址:https://blog.csdn.net/imimi_/article/details/78805642 <security-constraint> 的子元素 <http- ...

  6. Android开发之基本控件和详解四种布局方式

    Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方 ...

  7. lua中for循环的四种遍历方式

    lua中for的四种遍历方式区别 table.maxn 取最大的整数key #table 从1开始的顺序整数最大值,如1,2,3,6 #table == 3   key,value pairs 取每一 ...

  8. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览

    Android数据的四种存储方式SharedPreferences.SQLite.Content Provider和File (一) —— 总览   作为一个完成的应用程序,数据存储操作是必不可少的. ...

  9. HttpwebClient的四种请求方式

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷.      本文旨在发布代码,供自己参考,也供大家参考,谢谢. 正题: Ht ...

随机推荐

  1. HDU 3726 Graph and Queries treap树

    题目来源:HDU 3726 Graph and Queries 题意:见白书 思路:刚学treap 參考白皮书 #include <cstdio> #include <cstring ...

  2. LVS-负载均衡

    LVS: LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.章 ...

  3. iOS多线程之NSOperation和NSOperationQueue的使用

    一:NSOperation 两个子类+重写main方法 NSInvocationOperation NSBlockOperation 有个类方法 BlockOprationWith: 还有就是自己个子 ...

  4. 【转】spring MVC入门示例(hello world demo)

    部分内容来自网络:<第二章 Spring MVC入门 —— 跟开涛学SpringMVC > 1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web M ...

  5. UVa145 Gondwanaland Telecom

    Time limit: 3.000 seconds 限时:3.000秒 Problem 问题 Gondwanaland Telecom makes charges for calls accordin ...

  6. 学习EF之CodeFirst一

    最近将花点时间学习EF相关知识,通过文章来进行一个完整的学习,Code First是由先有代码后生成数据库:将通过一实例来进行学习:我们简单分为三层,其中DataLibrary为EF上下文处理层,Mo ...

  7. iOS_Xcode怎样准确定位到产生异常的出错代码

    当应用程序出现异常而导致崩溃时, 可能光标仅仅提示异常出如今主函数代码处,例如以下图所看到的: 这样的情况下.即使看了日志. 也可能仍不清楚详细是哪一句代码产生了异常. 因此,须要手动设置异常断点. ...

  8. 批量部署 自动化之 - [pssh](转)

    并行执行命令工具简介 作为运维工程师来讲,机器数量到一定级别的时候,批量运维和管理机器就是一件费神的事情,还好有很多可以批量并行执行命令的工具,比如 pssh , python fabrictaoba ...

  9. 从cocos2dx到cocos2dhtml5的不同之处

    首先cocos2dhtml5使用javascript编程, 严格区分大写和小写. 1.新建cocos2dhtml5项目. 直接复制引擎自带的helloworld.改一下目录名字就可以. 2.新增js文 ...

  10. python处理xls、xlsx格式excle

    一.windows下读取xls格式文件,所需模块xlrd.xlw 1.下载安装包 xlrd地址:https://pypi.org/project/xlrd/#files xlwt地址:https:// ...