最近几年,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转换器构成,如图2所示。在系统中起这个作用的核心器件是AD转换芯片MAX1425。
模拟输入信号分别经过由运放THS4052构成的抗混叠低通滤波器去除高频成分,防止信号产生“混叠现象”。模数转换器MAX4125将模拟信号转换为数字信号。MAX4125的控制信号由FPGA板提供,MAX4125在控制信号的作用下,以适当的时序完成转换工作。
2.2数据采集与传输控制电路数据采集与传输控制电路的开发工作主要集中在FPGA上。FPGA负责在CF卡与ADC芯片之间的缓冲与控制。一边与ADC接口,另一边与CF卡接口,产生数据采集、AD转换、FIFO所需的全部控制信号。实现对传输数据的缓存、读/写控制、时钟、输出使能以及对ADC的控制等功能。
2_2.1 FPGA内部总体设计
FPGA设计内部结构简图如图3所示,由FIFO、CF卡控制状态机、ADC接口控制状态机三部分构成。图中由右向左的宽箭头表示数据流,Fd[15:0]是与CF卡连接的数据总线。单线箭头表示输入输出及FPGA内部各个模块间的控制信号线。
从数据流向看,数据在ADC接口控制状态机的协调下通过ADC接口送入FPGA的FIFO中,经过FIFO的缓冲后,在CF卡控制状态机的协调下,数据传输到FPGA外的CF卡;当CF卡存储满时,FPGA通过ADC状态机停止AD的采集,并提示用户更换CF卡。
2.2.2数据双缓存器FIFOFIFO主要由三部分组成:FIFO主体、FIFO读模块、FIFO写模块。FIFO主体部分利用FPGA内部的RAM,通过coregenerator来生成所使用的FIFO。FIFO读模块、FIFO写模块主要接收外界给出的读写开始与停止脉冲信号,转换为读写请求信号,给到fifo主体中,同时读写模块会处理接口两边的时钟信号,分别反向后再作为fifo的读写时钟使用,具体结构见图4、5。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)