基于FPGA的高速数据采集系统设计
扫描二维码
随时随地手机看文章
摘要:为了在提高数据采集卡的速度的同时降低成本,设计了一种应用流水线存储技术的数据采集系统。该系统应用软件与硬件相结合的方式来控制实现,通过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内部逻辑资源则用于产生硬件控制时序,整个系统就是在两者相结合协调下进行数据的采集以及传输。
2 硬件控制器的设计
整个数据采集系统含有数据采集模块和数据传输模块。其中数据采集模块由AD数据转换模块和Nandflash数据存储模块组成。系统采用USB接口做数据传输模块,在此不作为本论文的重点进行描述。在数据传输部分本系统采用了DMA传输技术。其FPGA内部电路功能模块如图2所示。
其中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重复刚开始的加载数据和自动编程数据阶段。就这样如此循环一直到数据采集完成。这就是流水线的存储方式。从整体时间来看,整个系统在一直的进行着数据的传输和存储。
在数据加载期间本系统应用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传输采样数据操作;若当前块已是本文件的最后一块,则本文件的采集数据操作完成即本次采集完成。
4 结论
试验结果表明,采集系统性能稳定,采集速度能保持在10 Mb/s以上,符合设计要求。该系统对选用低成本、高速、可靠性采集的硬件设计具有实用价值。