DMA控制器与单片机的接口技术

控制/MCU

1883人已加入

描述

  摘要:本文在简要介绍了DMA控制器芯2837的基础上,给出了与单片机8031的接口威廉希尔官方网站 。

  在某些单片机应用系统中,往往需要解决外部设备与存储贮器之间快速传送数据的问题。为此,本文研究了DMA控制器8237与单片机8031的接口技术。

  1、8237芯片简介

  1.1结构

  DMA控制器8237设有三个基本控制逻辑块。包括时序控制逻辑块、程序命令控制块和优先权编码逻辑块;设有四个直传通道。每个通道都有一个基地址寄存器(16位)、基字节计数器(16位)、现行地址寄存器(16位)和现行字节计数器(16位),同时每一个通道都有一个6位的模式寄存器。另外,8237的数据引线、地址引线都有三态缓冲器。既可接管也可释放总线。

  1·2 8237的主要引脚

  CLK(时钟信号,输入)、CS(片选信号,输入)、HLDA(CPU对8237请求的响应信号,输入)、DREQ0~DREQ3)DMA请求信号,输入)、DB0~DB7(数据总线,输入/输出)、IOW(I/O写信号,输入/输出)、IOR(I/O读信号,输入/输出)、EOP(过程结束信号,输入/输出)、A0~A3(地址码,输入/输出)、A4一A7(地址码,输出)、MEMR(存贮器读信号,输出)、MEMW(存贮器写信号,输出)、HRQ(DMA控制器8237向CPU发出的请求信号,输出)、DACK0~DACK3(DMA响应信号,输出)、ADSTB(地址选通信号,输出)。

  1.3主要功能寄存器命

  令寄存器格式:

  控制器

  命令寄存器是一个8位寄存器,用来控制8237的操作,其内容由单片机在编程状态下赋给,端口地址为osH。

  各位意义如下:

  D0:控制是否允许进行存贮器到存贮器的传送。D0=0允许,D0=1不允许

  D1:当选用存贮器到存贮器传送方式时,控制通道o的地址是否保持不变。D1=O不允许通道O地址保持不变,D1=1允许通道。地址保持不变。

  D2:控制是否允许DMA控制器工作,D2=0允许DMA工作,D2=1不允许DMA工作。

  D3:选择工作时序。D3=O正常时序,D3=1压缩时序(当D3=1时此位无作用)

  D4:选择优先权方式。D4=O固定优先级,D4=1循环优先级。

  D5:选择总线周期写入命令时序。D5=o延迟写,D5=1扩展写

  D6:选择DREQ信号的有效电平。D6=0DREQ高电平有效,D6=1DREQ低电平有效。

  D7:选择DACK信号的有效电平。D7=0DACK低电平有效。D7=1DACK高电平有效。

  方式寄存器格式:

 控制器

  每一个通道都有一个方式寄存器,用于控制某一通道的DMA传送方式。端口地址为OBH

  各位意义如下:

  控制器

  2、单片机直接存贮器存取系统

  2.1系统结构

  系统结构如图1所示:

  控制器

  2.2工作过程

  外设首先通过DREQ向8237提出直传申请,而后8237通过HRQ以中断方式向8031提出直传请求,若单片机允许直传,则通过Pl,。向8237发回HLDA直传响应信号,使系统按初始化时规定的工作方式开始直传。单片机8031随时检测P1、7的电平,当P1、7变为低电平,表明直传完成,由8031的Pl.。发送高电平,使HLDA变低,本次直传结束。

  控制器

  图1系统结构图

  3、DMA控制器8237通道2与外设进行直传的主要程序段

  3.18237初始化程序

 控制器
控制器

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

全部0条评论

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

×
20
完善资料,
赚取积分