第九章 DMA控制接口

9.1 DMA控制器8237A

每个8237A芯片有四个独立的DMA通道,每个通道具有不同的优先权,每个通道有4种工作方式,一次可传送的最大数据可达64KB。8237A可以级联

9.1.1 8237A的内部结构和引脚

内部结构主要由两类寄存器组成,一类是通道寄存器,另一类是控制和状态寄存器

1.请求和响应信号

这组信号接受和响应外设DMA请求,同时向处理器提出总线请求并接受总线响应。

DREQ0~DREQ3——DMA通道请求

HRQ总线请求

HLDA总线响应

DACK0~DACK3——DMA通道响应

2.DMA传送控制信号

在DMA传送期间,这组信号控制系统总线

A0~A7地址线——三态输出线,输出低八位存储器地址

DB0~DB7数据线,输出高八位存储器地址

ADSTB地址选通,将高8位地址锁存在外部锁存器中

AEN地址允许,将锁存的高8位地址送入系统总线,与芯片此时输出的低8位地址组成16位存储器地址

EOP结束信号

3.处理器接口信号

8237A不作为主控芯片进行DMA传送时,它接受微处理器的控制

DB0~DB7用于数据交换

A0~A3地址线,低四位输入地址线,用于选择芯片内部寄存器

\overline{IOR},CPU利用它读取8237A内部寄存器

表9-1

9.1.2 8237A的工作时序

1.空闲时期

此时,8237A由微处理器控制作为一个接口芯片,在每一个时钟周期都采样通道的请求输入线DREQ

2.有效时期

(1)当在Si的下降沿检测到有DREQ请求时,则在下一个周期就进入S0状态,并且在Si的上升沿,使HRQ信号为高。当在S0的上升沿采样到HLDA信号有效,就进入S1状态

(2)典型的DMA传送由S1,S2,S3,S4组成。S1使地址允许AEN信号有效

(3)在S2时期,8237A向外设输出DMA响应信号DACK。8237A不提供I/O地址,在地址线上的总是存储器地址,请求DMA传送的外设需要利用DMA相应信号进行译码以确定外设数据缓冲器。

(4)S3和S4状态完成数据传送。若S4前不能完成传送,则要使READY信号线变低,插入Sw状态

(5)如果是数据块传送,则在S4之后直接进入S2继续传送,因为连续地址高八位是不变的,直到终止计数

9.1.3 8237A的工作方式

1.DMA传送方式

(1)单字节传送方式

一次传送一个字节,效率略低,但它会保证在两次DMA传送之间,CPU有机会重新获得总线控制权,执行一个CPU总线周期

(2)数据块传送方式

一次请求传送一个数据块,效率高;但在整个DMA传送期间CPU长时间无法控制总线

(3)请求传送方式

DREQ信号有效,8237A连续传送数据,DMA通道的地址和字节数的中间值保持在相应的现行地址和现行字节数寄存器中。

特点是DMA操作可有外设利用DREQ信号控制传送的过程

(4)级联方式

第一级只起优先权网络的作用,实际操作由第二级芯片完成。

2.DMA传送类型

(1)DMA读,把存储器的数据传送到外设

(2)DMA写,把外设数据传送到存储器

(3)DMA检验,空操作。

3.存储器到存储器的传送

通道0存源地址,通道1的地址寄存器存目的地址,字节数寄存器存传送字节数,每传送一个字节需要8个时钟周期。

4.DMA通道的优先权方式

DMA传送不存在嵌套,也不能被抢占

(1)固定优先权方式,优先权从高到低依次为0,1,2,3

(2)循环优先权方式

5.自动初始化方式

每当DMA结束过程\overline{EOP}信号产生时,使现行寄存器恢复初值,包括恢复屏蔽位、允许DMA请求。

9.1.4 8237A的寄存器

1.现行地址寄存器,保持DMA传送的当前地址值。可由CPU写入和读出。

2.现行字节数寄存器,保持DMA传送的剩余字节数。当从0减到FFFFH时,终止计数。

3.基地址寄存器,存放着与现行地址寄存器相联系的初始值。不能被读出

4.基字节数寄存器。传送N个字节应该写入N-1。8237A内部的高/低触发器,触发器为0,则操作的是低字节,为1操作的是高字节。每进行一次操作,触发器会自动改变状态。

5.模式寄存器,存放相应通道的方式控制字    图9-3

6.命令寄存器     图9-4

7.请求寄存器,存放软件DMA请求状态。请求字格式    图9-5

8.屏蔽寄存器

(1)单通道屏蔽字A3A2A1A0=1010,只屏蔽一个

(2)主屏蔽字A3A2A1A0=1111,对4个通道屏蔽位同时进行设置

(3)清屏蔽寄存器命令A3A2A1A0=1110,使4个屏蔽位都清零,都允许DMA请求。

图9-6

9.状态寄存器

低四位反映是否产生TC,高四位反应是否有请求

图9-7

10.临时寄存器,用于存储器到存储器的数据传送

9.1.5 8237A的编程

1.8237A芯片的初始化编程:只要写入命令寄存器。必要时可以先输出主清除命令

2.DMA通道的DMA传送编程。(1)将存储器起始地址写入地址寄存器(2)将本次DMA传送的数据个数写入字节数寄存器(个数要减1)(3)确定通道的工作方式,写入方式寄存器(4)写入屏蔽寄存器让通道屏蔽位复位,允许DMA请求。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

  • 1. 基础知识 1.1、 基本概念、 功能 冯诺伊曼体系结构1、计算机处理的数据和指令一律用二进制数表示2、顺序执...
    yunpiao阅读 5,246评论 1 22
  • 什么是嵌入式 IEEE(Institute of Electrical and Electronics Engin...
    Leon_Geo阅读 3,682评论 1 20
  • 总线 计算机的各个功能部件通过总线连接在一起构成完整的计算机系统,总线是多个系统功能部件之间进行数据传送的公共通路...
    罗蓁蓁阅读 4,737评论 0 10
  • 1 埃及金字塔是由数10万计的奴隶于4600 年前建造的。当时,成群的奴隶拖着沉重的巨大石块,在皮鞭的挥舞下,石块...
    汤勇晓语阅读 1,211评论 5 1
  • 【三件好事21天计划】D13——0402 1.今天把家里收拾干净,把冬天的衣物洗干净晾干,感觉清爽。 2.跟故友聊...
    浑沌的静阅读 181评论 0 0