基于FPGA的高速数据采集系统设计

2011-09-22 09:11:42来源: 电子产品世界
    摘要:为了在提高数据采集卡的速度的同时降低成本,设计了一种应用流水线存储技术的数据采集系统。该系统应用软件与硬件相结合的方式来控制实现,通过MAX1308模数转换器完成ADC的转化过程,采用多片Nandflash流水线数据存储模式对高速采集的数据进行存储。搭建硬件电路,并在FPGA内部通过编写VHDL语言实现了采集模块、控制与存储模块和Nandflash存储功能。调试结果表明,芯片的读写时序信号对应的位置准确无误,没有出现时序混乱,且采集速度能保持在10 Mh/s以上。系统实现了低成本、高速多路采集的设计要求。
关键词:高速采集;流水线存储;FPGA

0 引言
    为使计算机能对数据采集系统输入的模拟量进行处理,必须经由数据采集系统将模拟量转化为数字量。FPGA是在CPLD等逻辑器件的基础上发展起来的,其高集成度能大大缩小电路板的尺寸,降低系统成本,提高系统的性能和可靠性,适合于时序、组合等逻辑电路的应用场合。一个完整成型的探测系统通常都有采集储存部分,无论是电信号、光信号、声音信号等在被探测器接收到后,大部分都需要转化为数字信号才能再传给处理器完成分析、判断的过程。现在的一些高速大容量采集系统,往往价格比较昂贵。本论文主要论述一种应用FPGA等来控制,采用多片Nandflash存储的低成本、高速、多路、可靠的数据采集系统,本文主要探讨硬件设计和存储设计。

1 系统总体设计方案
    数据采集系统的工作原理是:各种信息经过传感器后转化成模拟电量信号,通过ADC将模拟量转换为数字量信号,而后进行传输存储和处理。本系统中,在软件和硬件相结合的控制下,系统将采集到的模拟信号经过A/D转换器件转换后,将转换结果先缓存到FIFO,再转存到非易失性Nandtlash阵列中。其中,FIFO不但可以实现缓存功能,还可以解决A/D转换之后数据位数跟Nandflash存储器的数据线位数不匹配的矛盾。如图1系统总体设计方案框图所示,本系统采用FPGA内部软核microblaze处理器作主控制器即软件控制器,而FPGA内部逻辑资源则用于产生硬件控制时序,整个系统就是在两者相结合协调下进行数据的采集以及传输。

a.jpg

2 硬件控制器的设计
    整个数据采集系统含有数据采集模块和数据传输模块。其中数据采集模块由AD数据转换模块和Nandflash数据存储模块组成。系统采用USB接口做数据传输模块,在此不作为本论文的重点进行描述。在数据传输部分本系统采用了DMA传输技术。其FPGA内部电路功能模块如图2所示。

b.jpg


    其中ALE,WR分别连接处理器的地址锁存和WR引脚。而处理器设置成地址总线和数据总线分时复用的模式。这样FPGA可以通过ALE信号来锁存处理器的地址。而控制命令生成器用来译码产生相应的命令和操作。DMA控制器是我们自己编写的特定的控制器,它需在收到处理器的DMA使能命令的情况下使得DMA_EN有效,然后在收到DMA开启信号DMA_restart后,才会启动一次DMA传输数据,每启动一次传输一页2 K的数据。在传输过程中,因为是多片FIFO的读,为了数据不会乱,我们通过一个特定的控制器将DMA_FLASH_WE和多片FIFO的DMA_FIFO_RD匹配的统一起来产生了多片FIFO轮换读的操作。
    在采样速率选择的设计中,我们是应用先微处理器的软件系统给FPGA的硬件系统一个采样速率选择值,而后FPGA的硬件系统内部将译码微处理器给的频率值,频率选择器将根据这个数值产生相应的频率输出,频率选择器输出的频率又将输入到控制AD转换的状态机里,这样控制AD转换的状态机将根据输入的频率进行相应的频率采集、数据的读取和向FIFO写数据等操作。

3 控制与存储模块
    本系统在存储方式设计时采用流水线操作方式。Nandflash存储器的写入有两个阶段:数据加载阶段(即通过I/O端口将数据写入页数据寄存器)和编程阶段(在芯片内部,将页数据寄存器中的数据转存到非易失性存储单元内)。数据编程阶段是自动进行的,不需要外部系统的其它操作,但它需要很长的时间,其典型值是200μs。而如果采用流水线存储方式就可克服Nandflash芯片写入速度较慢的缺点。应用流水线操作方式对Nandflash存储器进行写操作流程原理如图3所示。首先对第一片Nandflash进行数据的加载,数据加载完后,第一片Nandflash随后就将进入自动数据编程阶段;然后再对第二片Nandflash进行数据的加载,数据加载完后,第二片Nandflash也将进入自动数据编程阶段;然后依次对第三片Nandflash和第四片Nandflash进行相同的上述操作。而当第四片Nandflash数据加载完后,第一片Nandflash刚好已经自动编程数据结束,接着再从第一片Nandflash重复刚开始的加载数据和自动编程数据阶段。就这样如此循环一直到数据采集完成。这就是流水线的存储方式。从整体时间来看,整个系统在一直的进行着数据的传输和存储。

c.jpg


d.jpg
   
    在数据加载期间本系统应用DMA传输控制方式,即:每当FIFO的半满标志信号HF产生一次有效的电平时,处理器就启动一次中断,在中断程序中,处理器将完成对Nandflash写命令和地址,以及DMA控制器的启动。一旦DMA控制器启动,处理器就将转入后台进行有效地址的运算等而不参与数据传输过程,整个数据从FIFO到Nandilash存储器的传输过程是由FPGA内部编写的DMA控制器控制完成。启动一次DMA控制器传输一页2048个字节的数据,一次中断将完成16K字节的传输。应用DMA传输的时序示波器波形图如图4所示:第0,1,2,3通道是FIFO的读数据时序波形,第4通道是Nandflash的写时序波形。一次DMA传输完成后,则处理器还要判断当前页是否为最后一页第64页,若不是最后一页第64页,则页地址加1,继续进行DMA传输采样数据操作。如果当前页为最后一页第64页,则判断当前块是否为本文件的最后一块,若不是最后块,则块地址加1,再跟无效块表对照判断此块是否为有效块,若是则页地址置0,继续进行DMA传输采样数据操作;若当前块已是本文件的最后一块,则本文件的采集数据操作完成即本次采集完成。

f.jpg



4 结论
    试验结果表明,采集系统性能稳定,采集速度能保持在10 Mb/s以上,符合设计要求。该系统对选用低成本、高速、可靠性采集的硬件设计具有实用价值。

关键字:FPGA

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

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

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