换体DMA高速数据采集电路的CPLD实现

发布者:RadiantDreams最新更新时间:2007-03-09 手机看文章 扫描二维码
随时随地手机看文章
摘要:介绍了块体DMA高速数据采集电路原理及其CPLD实现。用CPLD设计双端口RAM缓存、控制译码、时序逻辑电路,很好地解决了电路元件所占体积大、电路复杂、不能实现在线升级等问题,大大提高了系统的整体性能。 关键词:换体DMA CPLD 双端口RAM 在线升级 在许多仪器和控制系统中,高速数据采集电路是必不可少的,也是经常需要解决的问题。数据采集电路设计方法很多,但往往离不开A/D转换电路、数据缓存电路、控制逻辑电路、地址发生器、址译码电路等。而数据缓存、控制逻辑、地址译码等电路通常是由RAM芯片、与非门、触发器、缓冲/驱动器等构成,导致数据采集电路复杂、芯片繁多,特别是硬件的固定使得采集系统在线升级几乎不可能。很多情况下只有重新设计电路和印刷板,重新焊接和调试,造成开发周期长、成本大大增高。复杂可编程逻辑器件CPLD的应用,为这些问题的解决提供了一种好的办法。利用CPLD芯片本身集成的上万个逻辑门和EAB,把数据采集电路中的数据缓存、地址发生器、控制译码等电路全部集成进一片CPLD芯片中,大大减小了系统的体积,降低了成本,提高了可靠性。同时,CPLD可由软件实现逻辑重构,而且可实现在系统中编程(ISP)以及有众多功能强大的EDA软件的支持,使得系统具有升级容易、开发周期短等优点。在数据采集有电路中,采用换体DMA技术不但大大地提高了数据采集的速度,而且弥补了数据采集中可能丢失数据的缺陷。 1 换体DMA数据采集电路原理 系统原理框图如图1所示。在时序电路的控制下,模拟输入开关将多达16路(单端输入)或8路(差分输入)的模拟输入信号经多路开关送至放大器的输入端,放大后由内含采样/保持电路的模数转换器AD774B转换成数字量,转换完的数字量经时序电路的控制写入两个存储体的一个(例如存储体0)中。每个存储体有4KB的容量,但实际使用中存储容量可设定为小于4KB。当计数到设定的存储空量后,控制电路产生换体信号,后续的A/D转换数据自动地存入另一个存储体(存储体1)。同时控制电路向主机发出DMA请求信号,主机响应请求后在时序电路配合下,从已存储规定数据的存储体(存储体0)中读入所存的数据。这样存储体0和存储体1交替存取,直到规定的换体次数计完为止。 数据采集电路中,时序控制电路、地址发生器、多路控制驱动器等芯片众多,占用了大部分体积,逻辑时序复杂。用CPLD实现这些电路则显得简单明了,如图2所示。图2中地址发生器、双端口RAM、时序控制等电路都可以用HDL语言或原理图,或是两者结合来实现,使电路开发简单、灵活、方便。 2 采用CPLD实现换体DMA CPLD的开发必须经过前期的逻辑设计、前仿真、后仿真、目标代码下载及在调试等过程,该设计过程是借助ALTERA公司的EDA软件MAXPLUS II 10.1来实现的。MAXPLUS II支持原理图输入、HDL语言输入、设计波形输入等。本设计则是将原理图和HDL语言输入相结合,这样既可以加快开发速度,又不失灵活性。本电路设计所用的CPLD芯片一FLEX10K30E。它是ALTERA公司1995年把EAB与逻辑阵列块相结合的产品,增加了许多FLEX10KA、B系列没有的新特点;FLEX10K30E内有30000个逻辑门,247576个RAM位,支持3.3V、5V多种电源,速度等级高。 2.1 数据缓存——双端口RAM 双端口RAM的核心是存储器阵列,它的读与写相互独立,有各自的时钟线、地址总线、数据总线和使能端。在数据采集时,数据进入存储器进行缓存,同时CPU可以从缓存中取出数据读进计算机内存。在传统的双RAM换体方案中要实现换体,存储器芯片必须使用偶数片来交互存储;当A/D数据位数超过8位时,需要另加芯片来存储高于8位的数据。在CPLD中设计双端口RAM模块不但实现了双RAM换体功能,而且使缓存RAM的数据位数、存储量大小可以根据需要任意配置。 如上所述,在CPLD中设计双端口RAM,可以有两种方式:原理图输入和HDL语言输入。本设计采用的是MAXPLUS II库中的LPM_RAM_DP宏,原理图如图3所示。 在LPM_RAM_DP宏中总共有10个可配置参数。通常情况下,只配置LPM_WIDTH(数据宽度)、LPM_WIDTHAD(地址总线宽度)、USE_EAB(是否使用嵌入式阵列块EAB)三个参数。在本设计中,AD774B的数据宽度是12位,转换速度为8微秒,所以配置了LPM_WIDTH=12,LPM_WIDTHAD=10(缓存容量为1K),USE_EAB=ON。对于缓存的大小,可以在调试过程中根据具体采集速度和缓存要求进行在线调整,而不影响其他逻辑电路。 图3LPM_RAM_DP模块中rdaddress、rden、rdclock、rdclken、q分别为读端的地址线、使能端、时钟线、时钟使能和数据线;data、wraddress为写端的数据总线和地址总线。图3的双端口RAM模块并没有BUSY端,当写地址和读地址相同时,数据位冲突,读写不能正常工作。在实际工作中,这种问题是不应该出现的。结合本系统的具体需要,在此引入了存储器分而概念,即把1k字节的双端RAM分为2页,每页512字节,分别为读缓存页和写缓存页,两者相互交换。当采集数据量达到512字节时,系统马上申请DMA传送,把刚转换完的第一页中的512字节数据送给计算机,传送结束后等待下一次DMA申请;与此同时,A/D继续工作,转换的数据放在第2页0~511地址中。任何时候读写都分别在不同的页工作,从而有效地避免了数据冲突,但又不影响数据传输速度。具体的分页控制主要由地址发生器设计确定。 2.2 分页地址发生器 分页地址发生器不但要产生双端口RAM的读写地址,而且还要为缓存器分页;页写满时,还要提供DMA传输申请信号。为了增强灵活性,读写地址发生器由VHDL语言编程集中在一个模块实现,部分程序如下: signal wtmp:integer range 0 to 1023; signal rtmp:integer range 0 to 1023; signal page:intefer range 0 to 1; if(wclk"event and wclk="1")then if(wtmp>1023)then wtmp<=0; else wtmp<=wtmp+1; --wtpm为写地址值 end if; if(0= 3 DMA的应用 数据传送的查询方式和中断方式都是在CPU的控制下进行的,因而传输速度受CPU指令运行速度的限制。直接存储器存取方式,即DMA方式。存储器与外设在DMA控制器控制下,直接传送数据而不通过CPU,传输速率主要取决于存储存取速度。所以在DMA过程中,数据传输完全由DMA控制器8237A控制,不占用CPU时间。 在本换体DMA高速数据采集电路中,用复杂可编程逻辑器件CPLD来实现数据缓存、带分页功能的地址发生器以以复杂的逻辑和时序电路等,使得电路大大简化;同时硬件电路软件化,具有可在线更新、升级容易、保密性强等特点。本换体DMA高速数据采集电路已成功地应用在生物医学仪器、核谱获取电路中。
引用地址:换体DMA高速数据采集电路的CPLD实现

上一篇:ISP技术在高速数据采集模块中的应
下一篇:基于FPGA的TCP粘合设计与实现

小广播
最新应用文章

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

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

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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