基于FPGA的双备份多路数据采集存储系统的设计与实
3系统软件设计
3.1采集控制逻辑的设计
对于多通道异步时分采集这种形式的电路,由于在电子开关切换的过程中存在着串扰,信号受到该串扰后,滤波放大器的输出在ADC采样前未稳定至其应有的精度,就会对ADC的采样有影响,从而影响采集精度。所以,为了解决串扰问题,只有在实践的基础上,靠经验去选择合适的运放,或者是通过硬件与系统软件优化相结合的方法寻找解决途径。
在确保系统采样率的前提下,本设计通过硬件与软件相结合的方法来解决串扰问题。硬件上采集模块选择SR(压摆率)较高的运放LF247作为滤波跟随器,软件上则以并行的工作方式确保采样前采样通道信号的稳定,即在时序设计上,主程序中采用了两个进程:(1)完成数据的转换、帧计数和数据的传输; (2)根据帧计数frame_cnt控制通道地址信号a和p进行通道切换。这两个进程并行执行。
FPGA采集控制逻辑流程图如图4所示。其中,a为通道选择输出,接ADG506的通道选择控制端(A3~A0);P为ADG506选通信号,接ADG506的片选端(EN)。
![](http://m.amcfsurvey.com/editerupload/fetch/20131118/189646_2_0.jpg)
由于存储器采用双备份设计以及对两片存储器的写入操作完全相同,故采集控制逻辑中分别有控制A、B片存储器的控制信号wrclkA和wrclkB,数据通过MAdata、MBdata分别存入存储器的A、B片中,如图5所示。
![](http://m.amcfsurvey.com/editerupload/fetch/20131118/189646_2_1.jpg)
图5[3]是FPGA的时序转换图。其中,Convst为启动转换信号;Addr为通道地址;byte信号用于控制数据并行输出的模式,低电平为低8位数据,高电平为高8位数据;ADdata 连接到AD7667的数据输出端;数据通过ADdata输入到FPGA。
图5的数据转换过程:A/D转换器的数据采集是从Convst信号下降沿开始,Convst下降沿启动对n-1通道的采样转换, 进入转换进程后,通道地址信号a和p根据帧计数切换到采集通道n, 在等待足够的转换时间t4后,AD7667在byte高电平的控制下从AD[7:0]输出n-1通道高8位的转换数据,高8位数据在写时钟Wrclk的控制下,以足够的时间传输给缓存器,AD7667在byte低电平的控制下从AD[7:0]输出n-1通道低8位的转换数据,低8位数据在写时钟Wrclk的控制下,以足够的时间传输给缓存器,并在传输的同时进入n通道的采集过程,此时n通道信号在经过了时间t3后,已经达到稳定的电平。
在采集的过程中测得的Convst信号波形与运放的输出波形如图6 (a)、(b)所示。
![](http://m.amcfsurvey.com/editerupload/fetch/20131118/189646_2_2.jpg)
图6 (a)、(b)中,CH1通道为Convst信号,频率约为250 MHz(采样周期4 μs),CH2通道为运放输出信号。 图6(c)、(d)分别为用LM224和LF247作为运放时采集数据的回放波形。从图6 (a)、(b)可以看出,在开关切换的过程中,运算放大器输出的信号存在剧烈抖动。图6(a)中测得的是用LM224作为滤波跟随器(SR为0.3 V/?滋s)的输出信号,此滤波放大器的输出抖动直到ADC采样前还未稳定,导致采集到的数据波形出现严重失真,如图6(c)所示;在图6(b)中的竖线处,运放的输出也存在一定的抖动,然而,由于滤波运放采用LF247(该运放的SR为16 V/?滋s),其输出在ADC采样前已经稳定到极高的精度,所以用该运放作为滤波跟随器采集到的数据波形非常准确,如图6(d)所示。
由此可以看出,与传统的流水线顺序相比较,由于硬件描述语言VHDL进程之间具有并发特性(进程(1)与进程(2)的并发性),这样就必然节省了通道切换、采样和保持的时间,同时结合硬件,选择合适的运放,即可保证ADC转换之前转换通道信号的稳定,这就解决了通道串扰问题。
3.2 存储逻辑设计
存储逻辑主要包括对Flash的擦除、读写及识别无效块。控制流程图如图7所示。
![](http://m.amcfsurvey.com/editerupload/fetch/20131118/189646_2_3.jpg)
存储器默认为读状态,上电复位时间设置为0.8 s,复位完成则判断是否处于写状态,若是,则记录采编器传输的数据,若否,则在读请求信号有效时(低电平有效),送出Flash芯片内所存数据,送完256 MB自动停止。若中间读请求信号无效,存储器停止送数,维持当前状态,并等待请求信号再次有效。
当存储器处于写状态时,A、B片同时完成数据的记录;当处于读状态时,在各自读请求信号有效时,分时复用采编器数据总线,先后将两套存储器数据上传。1#存储器为默认优先上传存储器,通过设置采编器通道切换信号为有电流状态,可选择2#存储器上传数据。
备用读数状态下,分别读取两套存储器。
评论