【07】数字示波器之DMA高速数据采集方案设计.doc_第1页
【07】数字示波器之DMA高速数据采集方案设计.doc_第2页
【07】数字示波器之DMA高速数据采集方案设计.doc_第3页
【07】数字示波器之DMA高速数据采集方案设计.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字示波器之DMA高速数据采集方案设计田开坤 李任青(湖北师范学院 电工电子实验教学示范中心,湖北 黄石 435002)前言在前2期,我给出了数字示波器DIY制作方案,第一篇集中介绍了LCD绘图显示,后一篇介绍了模拟信号调理,完成这些内容学习之后,读者可能会发现一个致命的问题,那就是高速数据采集,前面给出的方案是基于MCU控制的ADC,这种方案致命的缺陷是数据采集的速度慢,对频率稍高的信号无法有效采样,本篇将介绍一种MCU加CPLD控制的DMA高速数据采样方案。传统低速数据采集传统MCU控制的ADC数据采集原理框图如图1所示,MCU运行驱动程序控制ADC循环转换,每次转换通常由启动、查询等待、读取数据、写入RAM几个过程,每一个过程都需要CPU执行若干指令来实现,这样的数据采集不仅受ADC速度,尤其是受到MCU运行速度影响,通常只能做低速数据采集。图1 传统MCU驱动的ADCDMA数据采集DMA也就是DirectMemoryAccess简称,是直接内存存取的意思,DMA的主要优势是可在无CPU干涉的情况下进行数据的交换,可以将ADC的速度发挥到极致。基于MCU加CPLD控制的DMA原理框图如图2所示。MCU通过对CPLD的控制,实现让出数据总线,由CPLD时序逻辑电路控制AD循环转换并将结果直接存储到RAM中,这个循环过程是纯硬件电路实现的,因此速度快,不受MCU速度影响。MCU查询到一帧数据采集完成后,再夺回数据总线,从RAM中读取数据,处理数据并显示波形。图2 DMA数据传输的ADC下面我们结合具体的器件来介绍这种DMA方案,ADC器件选择TLC5510,RAM选择UT62256,32KSRAM。TLC5510是美国德州仪器(TI)公司生产的位半闪速结构模数转换器,它采用CMOS工艺制造,可提供最小20Msps的采样率。TLC5510的工作时序图如图3所示,时钟信号CLK在每一个下降沿采集模拟输入信号。第次采集的数据经过2.5个时钟周期的延迟之后,在时钟上升沿将转换得到的结果送到内部数据总线上,在时钟其它时间段数据保持不变。可以看到,该器件可以在20M时钟信号驱动下以20M的采样率采集数据,平均获得一个数据只要0.05us。图3 TLC5510工作时序图RAM数据写入时序图如图4所示。RAM的写入条件是具备确定的地址ADDR,CE=0,WE=0,OE=1;数据线上的数据将被写入RAM内部相应的单元。图4 RAM数据写入时序图综合TLC5510的工作时序和RAM的写入时序,提出如图5所示的驱动过程。基于同一个时钟信号驱动,在时钟下降沿、低电平、上升沿、高电平 4个节拍中,同步实现AD转换和数据写入RAM。图5 TLC5510直接写入RAM过程图数据写入RAM后,还要能够被MCU从RAM中获取,RAM数据读出时序如图6所示。图6 RAM数据输出时序图从图中看出,当CE=0;OE=0时,RAM将地址选择的内部单元数据输出到数据总线从而可以被MCU读取。这里有一个问题要考虑清楚,为了实现ADC结果直接存入RAM,已经将5510的数据线和RAM的数据线直接相连了,现在还要将MCU的数据线和RAM的数据线相连,会不会出现数据冲突?其实只要器件数据线具有三态功能,就能够实现数据线分时复用,通过控制电路实现数据总线上某阶段只能有一个数据输出源,例如当ADC直接给RAM存入数据时,MCU要让出数据总线,当MCU读取RAM数据时,ADC要高阻态隔离数据总线。控制电路设计控制电路原理如图7所示,在MCU的控制下,RAM和ADC的控制信号通过多路选择器选择与MCU总线模式或DMA模式相连,这两种模式被MCU完全控制,可以自由切换,当选择DMA模式时,MCU首先要让出数据总线,确保ADC与RAM占用数据总线,此时,RAM的地址由地址计数器产生,RAM_CE=0(片选有效);RAM_OE=1(禁止读);ADC_OE=0(内部数据总线上的数据直接输出到外部数据总线上);RAM_WE与ADC_CLK、地址计数器共用同一时钟信号,按图5中4节拍实现AD转换后数据直接存储到RAM中,DMA过程在MCU清零地址计数器后开始,没一个时钟周期AD输出一个数据直接存入RAM,同时地址计数器加1,当地址计数器溢出后被MCU检测到则表示一帧数据采集完成。一帧数据采集完成后,MCU切换到MCU总线模式读取RAM的结果,这时RAM_CE=0(或接MCU地址引脚);RAM_OE=RD(MCU读控制信号);ADC_OE=1(禁止ADC数据占用数据线);RAM_WE=WR,ADC_CLK=0,这时MCU可以自由读取RAM。图7 DMA控制电路图7所示逻辑电路用硬件描述语言在CPLD上实现非常方便,请读者吸收DMA设计思路后自己完成电路设计。结束语笔者完成的DMA高速数据采集卡对2M、1M的正弦信号采样并绘图效果如图8(a)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论