基于FPGA 与USB2.0 的数据采集系统的设计
2015-12-11朱莹
朱莹
摘 要:随着计算机技术和电子信息技术的飞速发展,数据采集系统在航空航天、监测侦察、通信等众多领域中得到广泛应用,对数据采集系统的速度、精度、易操作性以及实时性的要求也在不断地提高。该文设计了基于FPGA与USB 2.0技术相结合的数据采集系统。并通过对系统性能的测试,验证了该系统的预期目标,即不仅能实现一般用途的数据釆集并且还实现了系统的高速化、高集成化和低功耗等工作。
关键词:FPGA 图像传感器 SDRAM存储器 USB2.0
中图分类号:TP27 文献标识码:A 文章编号:1672-3791(2015)08(a)-0017-03
随着科学技术的发展尤其是计算机技术的发展与普及,数据采集系统已被广泛应用于国民经济和国防建设的各个领域,人们对数据采集系统的速度、精度、易操作性以及实时性的要求不断提高。USB作为一种新型串口通信标准,具有传输速率高、可靠性高、成本低、支持即插即用使用灵活等特点;FPGA结构灵活、开发周期短、对实时信号处理非常的适用,已经广泛应用于数据采集、图像处理等诸多领域。该系统设计基于FPGA与USB 2.0的数据釆集系统,具有可靠性高、抗干扰能力强、便于数据的传输等优点,具有良好的实用价值和广泛应用前景。
1 系统总体设计思想
该系统设计以FPGA为控制器,以实现对数据采集的控制,并预期目标。FPGA控制电路主要用于实现对图像传感器、SDRAM芯片对数据的缓存以及对USB芯片的控制以及对接收数据的缓存处理。SDRAM存储电路主要完成采集到的数据存储,上电时将程序加载到FPGA中,USB数据传输电路完成数据和控制信息的传输,完成与上位机的正常通信,即将采集到的数据上传到上位机中。
2 系统硬件电路设计
2.1 总体框图
2.2 芯片的选择
该系统采用 Cyclone II 的 EP2C8Q208C8 这款 FPGA 芯片,该芯片选用了 208 管脚的 PQFP 封装,它内部具有 8256个逻辑单元,18个乘法器,2个锁相环,总引脚 208个,用户可用引脚达到了 182个。该芯片内部带有乘法器可用于完成高速乘法操作,使得数字信号处理能力得到了增强[1]。
USB 2.0采用Cypress公司生产的CY7C68103芯片。CY7C68013A 内部继承了一个增强的 8051 内核,它既与标准的 8051 兼容,又有诸多的改进,最高工作频率达到了48MHz,一个指令只需 4个时钟周期,比标准的 8051平均提高了2.5倍可实现与高速外围设备的逻辑连接和高速数据传输并具有接口设计简单、价格低等特点满足设计需求[2]。
CMOS图像传感器的光电转换效率和灵敏度比CCD效果好,在消耗的功耗相同的情况下CMOS摄像头得到的增益大,CMOS摄像头的电路集成度高、控制简单、并且处理速度快,CMOS摄像头使得系统微型化、耗电量是CCD摄像头的1/8等优点,因此该系统采用的是Omni Vision公司的CMOS图像传感器OV7620芯片。
2.3 硬件框图
FPGA驱动OV7620的框图,其驱动包括两部分,第一部分是使用Verilog语言建立I2C总线模块对OV7620初始化,第二部分是建立采集模块按照行、场同步信号,像素时钟信号的时序对OV7620摄像头进行图像采集。
该设计利用 FPGA 作为外部主控制器实现对USB 2.0 接口芯片 CY7C68013 的 Slave FIFO 模式下,对USB 内部的 FIFO 进行控制,以实现数据的高速传输。该模块可普遍适用于基于 USB 2. 0 接口的高速數据传输[3]。
3 系统软件设计
3.1 USB 固件程序设计
固件程序就是指固化在单片机中且能够运行的程序,系统中的单片机是指USB芯片,该设计的固件程序主要功能就是辅助硬件系统工作,完成对设备的初始化工作,处理应用程序和驱动程序发送的各种命令和数据交换。
固件的初始化功能:硬件系统上电后,所有的寄存器配置都恢复到出厂时的状态,为了完成实际设备系统所需要的功能,必须对各种寄存器的初始值和设备所需要的设备属性进行初始化设置。
该设计采用Slave FIFO模式下进行数据高速传输,配置数据接收端点为Slave FIFO模式,CPU不再参与数据的传输,端点FIFO接收到FPGA控制器传输数字信号后,等待PC读取,USB芯片只作为一个数据传输通道。
3.2 WDM驱动程序设计
WDM(Windows Driver Mode Windows驱动程序模型)驱动程序属于Windows操作系统的内核模式,遵循Win32驱动程序模型,在主机应用程序和物理设备之间采用灵活的分层驱动方式,支持更多特性,如即插即用,电源管理。
WDM驱动程序的功能是通过特定的例程来实现的,不是通过任意例程都能够实现的。面对不同的情况,主机程序或操作系统只是根据相对应的例程进行触发,从而对不同的操作进行完成,实现功能要求。典型WDM驱动程序的构成框架如图4所示。
(1)入口例程:它是所有驱动程序进入的入口,而且实现设备的驱动功能在加载时对操作系统I/O管理器进行调用,其主要作用是对WDM驱动程序进行初始化,这是驱动程序所必须的。
(2)分发例程:主要有Creat()函数、Read()函数以及IOCTL()函数等,主要功能是对用户发出的各种I/O请求进行处理。
(3)即插即用例程:设备与PC机连接时,PC机的操作系统会自动进行处理,如识别、选择以及加载合适的驱动程序;设备从PC拔出时,PC机的操作系统也会进行相应的处理,如清除工作。
(4)卸载例程:主要是针对驱动程序卸载的处理。
(5)电源管理例程:主要是针对电源管理请求的处理。
3.3 应用程序设计
应用程序是用户与系统的接口,外接硬件设备的控制和通信主要就是通过它来实现的,所以应用程序首先要建立与外设的连接,然后才能实施数据的传输。
4 结语
该文设计了基于FPGA和USB 2.0两种技术相结合的数据釆集系统,系统的总体设计方案不仅具有 FPGA技术的易扩展性、低功耗、低成本等特点,还具有 USB技术即插即用的特性,系统运行稳定可靠,具有一定的实用性。
参考文献
[1] 唐玉蓉.基于FPGA的高速数据采集系统的设计与实现[D].北京:北京邮电大学,2012.
[2] 阙滨城.基丁-USB接口的高速信号采集系统设计[D].成都:电子科技大学,2011.
[3] 刘巍.基于USB接口和FPGA的多通道数据釆集系统的研究[D].北京:中国科学院研究生院(空间科学与应用研究中心),2011.