基于FPGA的数据采集与回放系统设计①
2015-04-01刘宇鸿蒋留兵何年清
刘宇鸿,蒋留兵,车 俐,杨 涛,何年清
(桂林电子科技大学 信息与通信学院,广西 桂林 541004)
在计算机广泛应用的今天,高速数据采集系统在前期仿真论证、后期验证及算法改进等方面具有非常重要的作用。尤其是在现代雷达系统的设计中,迫切需要设计一个高速雷达数据采集和回放系统,它可作为数字雷达接收机的一部分,将雷达回波信号实时采集到PC机中,以便后续分析。然而传统的数据采集与回放系统要么成本太高,要么未同时考虑系统的速度要求和可扩展性。为此,利用FPGA的可编程性和USB2.0总线数据传输技术的高速传输特性,设计了基于FPGA的数据采集与回放系统。该系统基于Cypress公司的通用信号处理开发板,利用FPGA控制AD9233芯片对目标模拟信号采样,通过USB接口芯片CY7C68013的FIFO将数据传输到PC机,实现数据的储存和实时回放[1]。
1 系统及其原理
基于通用信号处理开发板,利用FPGA技术控制AD9233芯片对目标模拟信号采样,再将采样量化后的数据写入USB接口芯片CY7C68013的FIFO中,FIFO写满后采用自动触发工作方式将数据传输到PC机。利用VC++6.0软件编写上位机实现友好的人机交互界面,将传输到PC机上的数据进行储存和实时回放。本系统主要实现以下两大功能:1)ADC模块对目标模拟信号进行采样,利用FPGA技术将采样后的数据传输到USB接口芯片CY7C68013的FIFO中存储[2]。2)运用USB2.0总线数据传输技术,将雷达回波信号数据传输到PC机实时回放。系统框图如图1所示。
图1 系统框图Fig.1 System block diagram
数据采集与回放系统的设计思路如图2所示,分为应用层、内核层和物理层3部分。应用层和内核层主要由软件实现。应用层采用VC++6.0开发用户界面程序,为用户提供可视化操作界面。内核层基于DriverWorks和DDK开发系统驱动程序,主要起应用软件与硬件之间的桥梁作用,把客户端的控制命令或数据流传到硬件中,同时把硬件传输过来的数据进行缓存。物理层主要以FPGA为核心,对USB接口芯片CY7C68013进行控制,通过USB2.0总线实现对中频信号采集。系统设计采用自底向上的方法,从硬件设计开始逐步到最终的应用软件的设计。
图2 系统总体设计图Fig.2 System design diagram
2 硬件设计
系统硬件连接如图3所示。FPGA在触发信号下,控制ADC采样输入信号,并存入FIFO中。当存满时,将数据写入USB接口芯片CY7C68013,同时切换另一块FIFO接收ADC转换的数据,实现乒乓存储,以提高效率。
图3 系统硬件连接图Fig.3 System hardware connections diagram
FPGA模块的一个重要作用是控制USB接口芯片CY7C68013。当ADC采样后,数据进入FPGA模块,FPGA控制数据流将其写入CY7C68013的FIFO中,以便于USB向PC机传输。CY7C68013的数据传输模式采用异步slave FIFO和同步slave FIFO切换模式。通过实测,前者传输速度约为5~10 Mbit/s,后者传输速度最高可达20 Mbit/s,传输速度的提高可通过更改驱动程序的读取方式实现。FPGA控制USB接口芯片的硬件连接如图4所示。
图4 FPGA与USB接口芯片的硬件连接Fig.4 Hardware connections between FPGA and USB interface chip
3 软件设计
3.1 USB驱动程序设计
USB2.0总线传输技术最高速率可达480 Mbit/s。本系统采用批量传输的slave FIFO模式。CY7C68013芯片内部提供了多个FIFO缓冲区,外部逻辑可对这些端点FIFO缓冲区直接进行读写操作。在该种传输模式下,USB数据在USB主机与外部逻辑通信时无需CPU的干预,可大大提高数据传输速度。Cypress公司为CY7C68013芯片提供了通用的驱动程序,用户可根据需求开发相应的固件程序[3-4]。
3.2 FPGA模块程序设计
系统中FPGA模块的核心作用是控制AD9233芯片进行采样。AD9233作为高速采样芯片,其最高采样速率达125 Mbit/s,最大模拟带宽为650 MHz。通过改变采样速率可使该系统采集不同速率需求的信号,扩展了该系统的应用范围。
系统采用异步传输模式,数据从CY7C68013的端点6写入[5]。异步写的时序图如图5所示。
图5 异步写时序图Fig.5 Asynchronous writing sequence diagram
描述FPGA控制USB数据写入接口芯片FIFO的状态机如图6所示。状态1表示指向IN FIFO,触发FIFOADR[1:0],转向状态2;状态2表示若FIFO未满则转向状态3,否则停留在状态2;状态3表示驱动数据到总线上,通过触发SLWR写数据到FIFO并增加FIFO的指针,然后转向状态4;状态4表示若还有数据写则转向状态2,否则转向完成。
图6 异步slave FIFO写的状态机Fig.6 State machine of asynchronous slave FIFO writing
3.3 上位机设计
为实现人机交互,利用VC++MFC在PC机上编写了可视化操作界面,即上位机。上位机既用于数据采集的控制,同时也用于采集数据的实时回放。上位机界面如图7所示。
上位机主要功能:1)按下“检测USB”按钮,可检测USB是否连接正常,并显示USB基本信息。2)按下“开始采集”按钮,可将采集的数据传输到PC机并实时回放数据波形;再次按下“开始采集”按钮,可暂停数据波形回放[6]。3)按下“保存数据”按钮,可将采集的数据以*.dat文件的形式存储到PC机硬盘。4)按下“结束采集”按钮,可关闭采集系统并退出界面;或按下“确定”和“取消”按钮,也可直接退出界面[7]。
图7 上位机界面图Fig.7 Upper computer interface
4 系统实测
为了测试数据采集与回放系统,利用通用信号处理开发板设计了DDS模块,具体硬件连接如图3所示。该DDS模块产生一个正弦波作为测试信号,通过AD9744芯片转换后变为模拟信号输出,并将此输出信号接至示波器以便验证系统。数据采集与回放系统的实物图及系统实测波形与回放波形如图8所示。存储的数据用Uedit32软件打开,如图9所示。
图8 系统实物图Fig.8 Physical diagram of system
图9 PC机存储的数据Fig.9 Data stored in PC
5 结束语
通过实际测试,基于FPGA的数据采集与回放系统达到了预期设计的要求。此系统能够对目标模拟数据进行采集,并能对采集的数据实时回放,且可将数据以*.dat文件的形式存入PC机硬盘;系统具有高速的采集传输功能,上位机能够实时、动态地回放数据;信号采集板和处理板共用一套硬件,避免了重复制板,在实际调试时可方便地在信号采集与信号处理的工作模式间来回切换,提高了工作效率。原驱动程序官方版本为了满足通用性和稳定性的要求,限制了传输速率,本设计开发了相应的USB驱动程序,提高了传输速率[8]。
[1]周柳奇.基于FPGA的数据采集及存储测试系统的应用研究[J].计算机测量与控制,2013,21(6):1467-1469.
[2]刘志华,郭付才,彭新伟,等.基于CY7C68013A的FPGA配置和通信接口设计[J].电子技术应用,2013,39(2):18-21.
[3]丁永红,刘璐,马铁华.基于FPGA和USB2.0的高精度数据采集系统设计[J].电子测试,2013(7):14-16.
[4]易春莉,张彦军,王瑾琪,等.USB2.0接口传输的FPGA控制与实现[J].化工自动化及仪表,2011,38(6):733-735.
[5]关守平,尤富强,董国伟.基于FPGA的高速数据采集系统设计[J].控制工程,2013,20(5):970-975.
[6]白云浩,蒋留兵,李明,等.基于DSP和FPGA的射频雷达信号模拟器[J].桂林电子科技大学学报,2014,34(2):101-105.
[7]梁漫,蒋留兵,陶世强,等.基于DSP_FPGA_ARM构建雷达与雷达对抗演示实验系统[J].桂林电子科技大学学报,2011,31(6):456-459.
[8]刘 魁,颜学龙,何国华,等.雷达数据采集回放系统的设计与实现[J].自动化与仪表,2010,25(8):47-50.