美文网首页
第九章 DMA控制接口

第九章 DMA控制接口

作者: XiaoShanHsj | 来源:发表于2019-01-07 14:58 被阅读0次

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请求。

相关文章

  • 第九章 DMA控制接口

    9.1 DMA控制器8237A 每个8237A芯片有四个独立的DMA通道,每个通道具有不同的优先权,每个通道有4种...

  • 微机的硬件组成结构

    PC机IO接口传输控制方式一般有三种: 程序循环查询方式 中断处理方式 DMA传输方式 串行控制器:通用异步 接受...

  • 2021-03-02 G0系列DMA,DMAMUX的外设Requ

    LL方式,G0系列,DMA功能配置DMA功能除了DMA控制器外,加入了DMAMUX功能.DMAMUX相当于在外设(...

  • 灵动微MM32F003硬件最小系统 --- SPI查询模式读写2

    本例程没有使用DMA功能,直接调用SPI接口函数,实现25q64的数据读写。理论上使用DMA会提升代码的执行效率,...

  • 10.17总结

    今天学习啦DMA原理 DMA传输不需要CPU直接控制传输,这样使CPU得效率提高也为它减负。 下午跟着其他小组学习...

  • 1.26 嵌入式

    今天老师讲了DMA,DMA把数据从一个地址空间复制到另一个空间地址,无需cpu直接控制,提高了cpu效率。理解起来...

  • 操作系统|设备与CPU之间数据传输控制方式

    设备与CPU之间数据传输控制方式有4种,它们是程序直接控制方式、中断控制方式、直接内存访问(DMA)方式和通道控制...

  • 2018-01-26课后总结

    今天主要学习了DMA,DMA包括DMA1、DMA2,每一个DMA下面包括8个stream,每个stream包括8个...

  • STM32 DMA

    STM32 DMA 1 什么是DMA? DMA(Direct memory access)意为直接内存访问,主要优...

  • DMA

    DMA:Data Memory Access,直接存储器访问Ⅰ、DMA请求 Ⅱ、DMA通道 (通道1-7) 3.仲...

网友评论

      本文标题:第九章 DMA控制接口

      本文链接:https://www.haomeiwen.com/subject/ixpsrqtx.html