基于FPGA和USB的高速数据采集及显示系统

简单介绍:

        为了完成自己的本科毕业设计,我设计完成了本系统:ADC采集数据源的数据,在FPGA的控制下,将数据通过USB总线技术传送给上位机,上位机将数据进行处理,以数据波形的形式显示出来。

总体结构:

        总体的设计结构如图所示:

基于FPGA和USB的高速数据采集及显示系统

USB部分:

      USB是整个系统的核心,选用的USB芯片是CY公司经典的CY7C68013,在Slave FIFO模式下进行数据传输。

      有过开发经验的人都知道,对于开发计算机外部设备,通用驱动程序的选择十分重要。CY公司针对68013系列的USB芯片推出过两款通用驱动:EZUSB.sys和CYUSB.sys。两者最大的区别是,EZUSB.sys支持的上位机编程语言更老、更少;而CYUSB.sys支持的上位机编程语言更新、更多,而且通常封装性更高。本系统选择的是驱动程序是CYUSB.sys通用驱动程序。

       固件程序主要写在fw.c与periph.c源文件中,而dscr.a51主要和INF文件相互搭配来引导驱动程序的安装。

FPGA部分:

       FPGA作为ADC和USB芯片共同的外部逻辑控制器,不仅控制ADC芯片的采集,也控制USB芯片中Slave FIFO硬件的运转。
基于FPGA和USB的高速数据采集及显示系统

上位机部分:

       通过对数据波形的分析,就能快速的获得大量数据的重要特性。上位机程序采用经典的MFC语言进行编写。因为MFC是面向对象的高级语言,所以不便画出其流程图,只是画出各个模块之间的关系:
基于FPGA和USB的高速数据采集及显示系统
       其运行效果如GIF图:
基于FPGA和USB的高速数据采集及显示系统
       GIF图显示,点击“检测USB设备”后,上位机程序显示出USB芯片的VID和PID等信息。点击“开始检测”后,有个时间段内没有数据波形显示,均是因为没有将信号源接触ADC输入脚,当信号源接触ADC输入脚后,上位机程序上显示出数据波形,表明上位机可以实时采集数据并动态显示数据波形。
       为了更好的进行数据分析,上位机程序还将记录最后一次采集到的512位数据,可以进行定量的数据分析:
基于FPGA和USB的高速数据采集及显示系统

总结:

        不得不承认,因为我只是为了完成本科的毕业设计,只实现了数据采集最基本的一些功能。但是如果想要提升系统的性能或者增加系统的功能,只需要在原有的系统框架上进行添加就可以了。
         这是毕业设计结束时的所有成果:
基于FPGA和USB的高速数据采集及显示系统