基于单片机系统采用DMA块传输方式实现高速数据采集
PC机中外设与内存储器之间数据直接传输的DMA功能以其高效、高速、CPU资源占用少等特点已被广泛应用,这一功能通过安装在主板上的专用DMA控制器芯片或集成在外围控制芯片来实现。单片机的应用领域也常常需要有高速数据传输或数据采集,虽然近些年单片机速度有所提高,仍然无法应付类似单脉冲信号捕获、周期信号频谱分析等需要采用高速A/D的场合。对于速率在100ksps以上的数据采集或传输一般的中断查询法就不易实现,因此考虑通过直接存储存取操作才能完成。然而单片机内部设计通常不具有DMA功能,也没有现成的控制芯片可以利用。而目前通用DSP芯片对于开发小型仪器仪表而言价格过高。
数字式磁通表主要应用在对恒定磁场的磁感应强度或脉冲场磁感应强度峰值的测量。是采用闭合线圈作为探测线圈,穿过线圈的磁通Φ变化时,探测线圈中感应电动势:
设计采用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的手册可知其读写模
- 剩余电流保护器单片机系统的抗干扰设计(12-02)
- 单片机系统印刷电路板设计(11-28)
- 51单片机系统应用(11-26)
- 单片机系统硬件抗干扰的常用方法(11-24)
- 如何长进单片机系统的抗扰乱功能(11-24)
- 单片机系统中什么是数据、地址、指令(11-23)