一种基于单片机系统的DMA控制电路的模块化设计方案

2006-05-07 15:49:39来源: 电子技术应用

采用中断查询方式时,单片机系统无法实现小于其指令周期的高速数据传输及数据采集。虽然近些年单片机速度不断提高,但指令周斯一般还在微秒量级,这就限制了单片机在高速数据传输领域内的应用,如网络通讯、高速数据采集等。DMA(即外设与内储存器之间数据直接传输)控制电路经其高效 、高速、CPU资源占用少等特点已在PC机成熟应用。在PG机中,它是通过安装在主板上的专用DMA控制芯片或集成于外围控制芯中来实现的。单片机通常不具有DMA功能,也没有现成的控制芯片可以利用。而且,由于总线和系统组成方面的差异无法将PC机中的DMA电路移植到单片机系统中。

另一方面,单片机系统不具备“总线出让”功能,没有类似总线响应、保持响应、总线有效等引脚功能,因此设计采用“指定RAM出让”的方法。指定RAM是指连接在DMA控制器上的RAM。在DAM周期内系统通过控制线路将此RAM交由DMA控制器和外设读写,构成“RAM出让”。“RAM出让”的突出优点是在DMA周期中,单片机依然可以对总线上的其他电路或组成进行操作。

本文所讨论的DMA控制电路模块可以采用可编程逻辑门阵列来实现,也可以加工成厚膜电路或集成电路芯片。

1 DMA与系统的连接及其结构框图

DMA控制模块在系统中的连接如图1所示。

1.1 DMA模块与单片机的连接

单片机系统通过数据(DDB)、地址(AB)、控制(CB)总线与DMA模块连接。连接方式与连接RAM仅有较小的区别。主要在控制总线部分,除原有的读写控制线外增加DMA允许输入、DMA状态输出。

1.2 DMA模块与RAM的连接

DMA模块通过8位数据线、地址线和读写控制线与RAM连接。地址线个数RAM空间大小决定,最大16线。

1.3 DMA模块与外设的连接

连接外设有8位数据线,控制线包括DMA申请输入、读写控制输入、DMA响应输出。

DMA控制模块的结构框图如图2所示。

2 工作原理

2.1 工作过程

在允许DMA操作之前,必须在主程序中对DMA控制器初始化,写入工作方式字和起、止地址。DMA控制器中的方式寄存器和地址发生器中的地址寄存器者是可寻址的口,其地址占用RAM最高位5个字节(方式字1个,起始和结束地址各2个)。在数据写入进,RAM中时被写入镜象数据,因此控制字可以从同一地址读出。

初始化设置包括以下信息:

数据传输方向。即通过方式字中的相应位选择数据向RAM写入或RAM读出。

数据传输方式。通过写入方式字选择传输方式,有字节传输、块传输、请求传输三种方式。

数据传输在存储器中的起始地址和结束地址。这两个寄存、器包含在地址发生器模块中。DMA传输时地址采用增1方式,所以要求结束地址高于起始地址。

初始化结束后,在主程序许可的情况下,发出DMA允许(DEN)信号,查询DMA状态(DS)或利用(DS)触发中断来判断DMA结束。在等待结束过程中,单片机可以进行对非指定RAM的所有外部操作以及所有内部操作。下一次DMA传输需要重复设置、DMA允许、等待结束三个过程。

单片机置DEN有效即DMA允许,时序和逻辑模块控制总线收发器1截止和总线收发器1开通,使得RAM连接由单片机切换到外设和DMA控制器,并根据方式寄存器的输出,实现对数据传输方式和传输方向的控制。而在DMA禁止(DEN无效)时或DMA传输结束后,逻辑模块控制总线收发器1开通和总线收发器2载止,使得RAM连接到单片机。

在DMA允许后,当有DMA申请(即DRQ有效),挖掘传输器输出DMA响应(DAK有效)通知外设可以进行数据传输,同时改变DMA状态传输出(DS输出有效)通知单片机。DMA传输结束可有三种不同方式:方式1为单字传输结束;方式2为RAM地址超出结束地址;方式为DMA申请信号撤消(DRQ无效)。DMA 结束,DS由高变低,触发单片机中断。单片机收到DMA结束信号后,输出DMA禁止,进行数据处理。

2.2 地址产持电路

地址产生电路如图3所示。

主地址发生器是一个16位可预置二进制计数器,预置的16位二进制数作为DMA传输的起始地址。SEN、EENO 为计数器的锁存器的写入片选,各2根,高8位和低8位公2个地址写入。CP为计数脉冲输入,DMA每传输完一字节,CP收到一个计数脉冲,计数器输出加1,指向下一个传输地址。

结束地址写入16位锁存器,高8位和低8位分两个地址定入。锁存器输出数字比较器,与来自计数器输出的地址比较,如果结束地址高于输出地址则地址溢出出输出端OA输出低电平。当计数器输出地址高于结束地址时,OA端输出高电平,该信号送逻辑模块控制可作为DMA结束标志。

2.3 工作方式的选择

时序与逻辑模块根据方式字的选择可实现不同传输方式的控制。如字节传输方式、块传输方式、请求传输方式。

字节传输方式时,一次只做一个字节的数据传输。传输结束后释放RAM,DAK无效,到单片机处理数据结束,重新DMA允许后才可以进行下一次传输。

块传输方式要求结束地址高于起始地址,因为DMA地址输出采用加1的方式。起始地址和结束地址之间数据作为被传输的数据块,直到整个数据块传输结束后才释放RAM。

请求传输方式与块传输方式类似,但是要求DRQ在传输过程中保持有效。DRQ无效时DMA传输结束,释放RAM。就是说它以DRQ无效作为DMA结束标志。

2.4 时序与逻辑电路

时序与逻辑电路设计需实现上述工作的逻辑功能。包括有:判断单片机同DEN和DMA结束标志记输出总控制;根据方式字所设的传输方向控制RAM的读或写有效;输出地址进位脉冲;根据方式字中传输方式的选择和DMA申请入DRQ输出响应DAK;选择DMA结束标记;当结束标记产生时输出DMA结束操作。

总之,时序与逻辑电路设计取决于对工作方式的选择和DMA工作过程的设计考虑。

3 接口软件设计

DMA控制器在系统中应用时可选择结束查询法和结束中断法来判断DMA的结束,接口子程序流程,见图4所示。

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/control/200605/1679.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved