基于FPGA的海量数据采集系统设计
最近几年,FPGA以其应用的灵活方便蓬勃发展,在通信、航空航天、医疗设备、消费类电子产品等领域一展身手。使用FPGA控制CF的技术到目前为止还没有成熟,本文从硬件和软件角度出发,介绍了FPGA与CF卡的接口设计、给出了用双RAM访问CF卡的编程,并且利用FPGA作为FIFO对AD采集的数据进行缓冲,然后存储到大容量的CF卡中。
1系统方案设计
数据存储和采集系统主要由三部分组成,CF卡的存储、FPGA的数据双缓冲器、状态寄存器和A/D转换器组成。
1)CF卡数据存储,其作用是将AD采集到的数据进行存储,当数据容量存储满时,发送满信息。FPGA得到满信息后,停止对数据的采集并提示用户更换CF卡。
2)FPGA主要利用内部的SRAM提供数据输出/输入的双缓冲作用,采用双缓冲的原因是防止数据的溢出和保证数据传输的连续性。当接收到满信息时,停止AD采集,并做出提示。
3)A/D转换器的作用,是将所要采集的模拟量转换成数字量;通过滤波和放大后,由FPGA接收、缓冲、存储至CF卡。高速AD转换器采用的是转换速率为20MHz的MAX1425.
系统工作过程为:系统通过外部一个按键的低电平给数据采集系统一个采样开始控制命令,FPGA根据该命令向AD转换器发出相应控制信号;由于ADC采样率为20MHz,为和CF卡存储速度相匹配,在FPGA内部生成一个FIFO缓存器。AD转换器在FPGA的ADC接口控制电路控制下,把模拟信号转换成数字信号,并将采样数据存入FPGA内部FIFO缓存。同时FPGA的查询CF卡是否有容量,如果CF卡未满,那么由FPGA的CF卡接口控制逻辑将采样结果从FPGA内部FIFO缓存送入CF卡中。当CF卡的容量达到一定程度后,FPGA发出满信息,向AD状态机发送停止采集的命令,并提示用户已满。由于把FPGA设置为特定的自动模式,因此FPGA控制AD采集以及把数据送往CF卡间的所有操作不需要外部干预,从而保证足够的数据传输速率。采样过程中FPGA的CF卡接口控制逻辑依次取走批量数据。在进行CF卡的数据存储时AD仍然持续转换,FPGA内部FIFO也被持续写入转换结果。
2硬件设计
系统的硬件由模数转换接口电路、数据存储与传输控制电路和接口电路构成。
2.1模数转换电路设计
模数转换接口电路是整个系统的重要组成部分,它由低通滤波器、多路选择开关和AD转换器构成。在系统中起这个作用的核心器件是AD转换芯片MAX1425.
模拟输入信号分别经过由运放THS4052构成的抗混叠低通滤波器去除高频成分,防止信号产生“混叠现象”。模数转换器MAX4125将模拟信号转换为数字信号。MAX4125的控制信号由FPGA板提供,MAX4125在控制信号的作用下,以适当的时序完成转换工作。
2.2数据采集与传输控制电路
数据采集与传输控制电路的开发工作主要集中在FPGA上。FPGA负责在CF卡与ADC芯片之间的缓冲与控制。一边与ADC接口,另一边与CF卡接口,产生数据采集、AD转换、FIFO所需的全部控制信号。实现对传输数据的缓存、读/写控制、时钟、输出使能以及对ADC的控制等功能。
2. 2.1 FPGA内部总体设计
FPGA设计内部结构由FIFO、CF卡控制状态机、ADC接口控制状态机三部分构成。
从数据流向看,数据在ADC接口控制状态机的协调下通过ADC接口送入FPGA的FIFO中,经过FIFO的缓冲后,在CF卡控制状态机的协调下,数据传输到FPGA外的CF卡;当CF卡存储满时,FPGA通过ADC状态机停止AD的采集,并提示用户更换CF卡。
2.2.2数据双缓存器FIFO
FIFO主要由三部分组成:FIFO主体、FIFO读模块、FIFO写模块。FIFO主体部分利用FPGA内部的RAM,通过coregenerator来生成所使用的FIFO.FIFO读模块、FIFO写模块主要接收外界给出的读写开始与停止脉冲信号,转换为读写请求信号,给到fifo主体中,同时读写模块会处理接口两边的时钟信号,分别反向后再作为fifo的读写时钟使用。
与CF卡连接的CF卡接口的数据传输方式是突发的数据块传送,并且数据块的大小可以设置,每个数据块是用很高的速率传送到CF卡,这样就必须有缓存把AD采集来的数据先存缓存,然后发送到CF卡,进行存储。
2.2.3 FPGA内ADC接口模块设计
MAX4125的控制信号都由FPGA产生。
FPGA的工作时钟为60MHz,该时钟经分频成20MHz提供给MAX4125作为工作时钟,同时也作为FPGA内其他逻辑的工作时钟。由FPGA内状态机控制当CS#为低和ADC_Convst为高,MAX4125进入采样保持状态。当Clock的第一个上升沿到来,MAX4125开始转换。MAX4125把转换结果放到数据总线上,FPGA开始读入10位数据(FD[15:0]中10一15六位数据线悬空,使数据线和AD的位数匹配)。完成一次转换后,当ADC_Convst再次为高,开始下一轮转换。
2.2.4 FPGA内CF卡接口控制状态机
海量数据采集 THS4052 MAX4125 FPGA 相关文章:
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)