dma控制器芯片8257资料介绍

控制/MCU

1813人已加入

描述

  DMA既可以指内存和外设直接存取数据这种内存访问的计算机技术,又可以指实现该技术的硬件模块(对于通用计算机PC而言,DMA控制逻辑由CPU和DMA控制接口逻辑芯片共同组成,嵌入式系统的DMA控制器内建在处理器芯片内部,一般称为DMA控制器,DMAC)。

  值得注意的是,通常只有数据流量较大(kBps或者更高)的外设才需要支持DMA能力,这些应用方面典型的例子包括视频、音频和网络接口

  现代计算机系统中,广泛采用了DMA控制器与DMA接口相分离的结构模式以IBM-PC系列微型计算机的软盘机DMA接口为例。

  8237 DMA控制器的编程结构

  Intel 8237DMA控制器芯片的内部结构

  如下图

  dma

  Intel 8257是一种控制DMA(Direct Memory Access)操作的芯片,它可以将数据直接在IO设备和内存之间进行交换,而不需要经过CPU,所以它的数据传输速率可以很快。

  8257有以下特点:

  8257有四个通道(channel),所以它支持4个设备同时进行DMA操作。

  每一个通道都可以被独立地编程,每次最多可以传输64kb数据。

  每个通道可以独立的进行读传输、写传输和校验传输。

  芯片共有40个针脚,如下图所示:

  dma

  8257功能模块图示如下:

  - 8257功能模块有数据总线缓冲区,读/写逻辑,控制逻辑,优先级解析器和4个DMA通道。

  - 每个DMA通道都有两个16位可编程寄存器,分别为地址寄存器和计数寄存器。

  dma

  MEMR为存储器读操作信号,MEMW为存储器写操作信号,IOR为外设读操作信号,IOW为外设写操作信号。

  - 地址寄存器用来存放用于DMA数据传输的内存起始地址。

  - 每进行一次读/写/校验传输后,地址寄存器中的地址都会自动增加。

  - 计数寄存器用来对通过DMA进行传输的数据的字节数或字数进行计数。它保持着要传送的字节数,在每次传送后此寄存器减量。当这个寄存器的值减为零时,Terminal Count信号将产生。

  - 计数寄存器的格式如下:

  dma

  B0-B13这14位用于计数,前面的两位用于标识DMA传输的类型(读/写/校验传输)。

  进行读传输时,数据从内存传输到I/O设备。

  进行写传输时,数据从I/O设备传输到内存。

  校验操作会产生DMA地址但不产生DMA内存和I/O控制信号。

  8257还有两个8位的寄存器,分别叫做模式设置寄存器和状态寄存器。

  模式设置寄存器的格式如下:

  dma

  模式设置寄存器有如下功能:

  打开/关闭一个通道。

  将优先级指定为固定型(Fixed)/循环型(rotating)。

  计数终止(terminal count)时停止DMA。

  延长/一般 写时间

  自动重载通道2

  B0-B3这4位用于打开或者关闭通道0-3,1代表打开,0代表关闭。

  如果B4被设为1,通道有循环型优先级。如果设为0,通道有固定型优先级。在循环型优先级中,服务完一个通道后就会把这个通道优先级设为最低。在固定型优先级中,通道0优先级最高,通道3优先级最低。

  如果B5被设为1,低电平有效的写信号(MEMW和IOW)的时间会被延长。

  如果B6被设为1,计数终止后会停止DMA。

  B7用来指定通道2的自动重载特性。

  如果B7被设为1,通道3的计数寄存器和地址寄存器会在通道2计数终止后自动载入至通道2的计数寄存器和地址寄存器。当这种模式打开后,可用的通道数由4减少至3。

  状态寄存器的格式如下:

 dma

  B0-B3这4位用于指明通道0-3是否计数终止。

  这些状态位在处理器进行读操作后清除。

  B4称为更新标识位(update flag),如果为1,说明通道2的寄存器已经在自动载入模式的操作中重载了通道3的寄存器。

  8257寄存器的内部地址如下表所示:

  dma

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分