摘 要: 介绍一种基于单片机系统设计的DMA硬件电路,以字块传输方式与高速A/D接口。结合在数字式磁通表设计中的应用给出其硬件软件设计方案实例。
关键词: 单片机系统 直接存储器存取(DMA)方式 高速A/D
PC机中外设与内存储器之间数据直接传输的DMA功能以其高效、高速、CPU资源占用少等特点已被广泛应用,这一功能通过安装在主板上的专用DMA控制器芯片或集成在外围控制芯片来实现。单片机的应用领域也常常需要有高速数据传输或数据采集,虽然近些年单片机速度有所提高,仍然无法应付类似单脉冲信号捕获、周期信号频谱分析等需要采用高速A/D的场合。对于速率在100ksps以上的数据采集或传输一般的中断查询法就不易实现,因此考虑通过直接存储存取操作才能完成。然而单片机内部设计通常不具有DMA功能,也没有现成的控制芯片可以利用。而目前通用DSP芯片对于开发小型仪器仪表而言价格过高。
数字式磁通表主要应用在对恒定磁场的磁感应强度或脉冲场磁感应强度峰值的测量。是采用闭合线圈作为探测线圈,穿过线圈的磁通Φ变化时,探测线圈中感应电动势: 瞬间将线圈由0磁场移到磁场最大点,记录下整个过程中感应电动势ε的变化。变化过程结束后用软件对ε进行积分,计算出磁感应强度。本设计所需解决的是在瞬间记录下ε的变化曲线。
本文讨论一种采用数字逻辑电路设计的DMA控制电路。结合在撌质酱磐ū頂中的实际应用,给出高速A/D芯片MAX153与89C51单片机系统DMA接口电路的主要原理图和主程序流程。
1 系统构成
系统结构如图1所示。
设计采用89C51单片机芯片组成的单片机系统,外部64K RAM采用62512芯片,存储器的全部64K地址范围允许作为外设的A/D转换电路在DMA周期写入,以及单片机在非DMA周期读出写入。RAM的数据线和地址线由总线切换电路来控制,选择连接单片机系统总线或连接A/D转换电路的数据输出和地址发生器输出地址。总线切换电路不仅切换地址线和数据线,同时切换RAM的写控制线WRI,控制实现DMA周期外设写入和非DMA周期的单片机写入。RAM读控制线接单片机/READ。
DMA周期时,RAM的写入地址由地址发生器产生。它是一个可预置数的16位二进制计数器。其溢出信号作为DMA周期的结束控制和结束标志。
2 硬件组成
· 单片机芯片
采用ATMEL公司的89C51,片内有4K字节FLASH ROM。设计使用其最大时钟频率20MHz,可以有1us以下的指令周期。
· A/D转换器
采用MAXIM公司的MAX153芯片,转换精度8bit并行输出,转换时间660ns、采集速率1Msps。设计采用循环采集方式。
· 静态RAM
静态RAM62512芯片为64Kbytes,典型存取时间200ns。
· 总线(数据线、地址线和WR)切换电路
总线切换采用74HC245三态总线收发器并联,分别选通。如图2所示。
· 写地址产生电路
DMA写地址产生电路是一可预置数的16位2进制计数器,电路是采用四片4位可预置计数器74HC569级连方式。因此可以预置16位地址的初值,就是DMA传输数据块的起始地址。计数脉冲反向输入74HC569的CP端以保证写操作的时序。
3 工作原理
3.1 DMA允许与响应
单片机系统开机运行时或进行内部数据处理、显示时应置P1.0高,使其处于DMA禁止状态。单片机完成初始化或进入DMA准备就绪状态时,先向地址发生器写入数据块的起始地址,将地址溢出标志位置零,再发出DMA允许信号释放RAM的控制权,等待DMA结束标志和DMA控制信号。当DMA允许为1且地址计数器溢出标志为0时,进入DMA预备状态,等待外部触发信号输入。DMA触发信号可以是周期信号的过零脉冲,也可以是单脉冲信号放大整形输出,或者是A/D转换完成信号。DMA控制部分如图3所示。本设计采用将感应电动势信号放大整形,其脉冲前沿触发。DMA允许后的第一个触发脉冲到来,D触发器输出Q为1。开通四输入端与非门输出与振荡器同频同相的周期信号,开始数据采集和传送。由NE555和阻容元件组成的方波振荡器的振荡频率决定采样频率的大小,其频率应小于等于A/D转换器的最大转换速率1Msps。与非门输出信号同时作为RAM写信号、A/D芯片读/RD,经反相后作为地址计数器的计数输入。
3.2 数据线与地址线的控制
总线的选择控制由DMA允许信号控制两组74HC245三态总线收发器,使其分别处于开通和高阻状态。此两组总线收发器一端并接至RAM,另一端分别接单片机系统总线和A/D转换外部总线。当DMA禁止周期时DMA允许信号为低,选通系统总线允许单片机对RAM进行读写操作。反之当DMA周期时DMA允许信号为高,选通外部总线允许DMA控制器对RAM写操作。数据线有8根(D0~D7),对数据线的切换需要两片74HC245,而地址线有16根(A0~A15),切换地址线需要4片74HC245才可以。另外还需两片用以对RAM的读写线的切换,对读写线的控制采用相同的方法,也是由DMA允许进行两周期的控制权切换。
3.3 DMA块数据传输
与非门输出1MHz的振荡信号,连接A/D芯片/RD脚,在低电平开始时已采集的数据被输出到数据线。地址计数器被设计为下降沿触发,因此下降沿开始后地址计数器将在预设的起始地址的基础上加1,形成新的地址输出至地址线。数据和地址的形成均在下降沿后的160ns(由74HC系列计数器性能参数可知其最大传输延迟时间为40ns,有四片级连总计160ns。由MAX153CPP的手册可知其读写模式下Data-AcceessTime为160ns)内完成,其小于振荡信号低电平停留时间500ns。在下一个振荡的下降沿到来之前数据地址保持不变,在此后的上升沿时数据被写入RAM的指定地址,第二个下降到来后重复这样的过程,地址计数器加1形成新的地址和读出A/D转换器中新的数据,再写入储存器。工作时序参见图4。
3.4 响应过程的结束
DMA过程的结束设计在地址溢出时。设计利用地址计数器的溢出位,当地址溢出即大于(FFFF)H时溢出位为1,经反向器反向后至四输入端与非门的输入端,使其输出常为高而达到封锁的目的。直到单片机系统重新初始化地址计数器,清溢出标志,并重新DMA允许后才能再次进入DMA准备就绪状态。
4 软件设计(主流程)
主程序流程图见图5。
单片机系统以其方便、简洁、灵活、廉价为主要特点,所以在DMA电路设计中一定要结合实际应用简化设计,软件硬件综合设计避免系统过于复杂,才能达到优质廉价的最终目的。利用本设计研制的数字式磁通表综合性能达到了预期指标,并获得满意的性能价格比。
上一篇:变频空调电控系统的设计Electronic-controlledSystem′sDesignofFrequencyConversionAir-condition
下一篇:MCS-51系列单片机在SDH系统中的应用
- 热门资源推荐
- 热门放大器推荐