DSP

基于FPGA和USB2.0的数据采集系统

2019-07-13 21:06发布

背景:传统的数据采集是使用得是DSP作为核心的芯片,虽然运行的速度比较快,但是不能完成外围的硬件的逻辑控制; FPGA的时钟频率相对较高且延时比较小,采用的是IP内核技术,可以继承外围的控制和接口电路 XC3S1200E作为核心的处理芯片,CY7C68013作为USB的接口芯片,通过FPGA的内部控制模块进行A/D的数据转换和USB的数据传输,在FPGA内部完成数据的处理; 1.系统的设计方案 数据采集和处理系统主要由四个部分组成 (1)信号调理电路: a:对采集的模拟信号进行放大,滤波,将单路信号转换成为差分信号,驱动AD转换器工作 (2)A/D转换: a:在FPGA内部模块的控制下,将模拟信号转换为16位的数字信号,传入FPGA进行处理 (3)FPGA: a:Spartan 3E 系列的XC3S1200E,控制AD转换以及数据的FFT处理; b:FPGA内部的USB控制模块查询CY7C68013(USB的接口芯片)是否是空闲状态,控制USB将处理好的数据传递给主机,从而在PC机上显示 (4)USB(CY7C68013):EZ-USB FX2系列的USB接口芯片 在FPGA内部的USB的控制模块控制下,将处理完的数据传递给主机 系统工作原理: (1)这个系统可以完成两路中频信号的采样处理,单路信号经过THS4503后变成差分信号,输入到模数转换器中,FPGA中的AD控制模块 向ADS1605发送采样指令,从而AD转换器在控制其的控制下完成数据的采集,将模拟信号转换为16位的数字信号,并且依次选通两片AD通道, 实现了AD转换器到FPGA的双通道数据传输; (2)当发现采集的数据达到处理的条件后,相应的数据会在FPGA中进行FFT运算,计算结束后,将处理后的数据在FPGA的USB接口 控制逻辑下,经过USB接口传递给主机 (3)数据传递完成之后,再次进行下一次的数据采集 2.系统硬件设计 (1)信号调理电路: THS4503 (2)A/D转换: ADS1605-高采样率,高精度,易使用的16位模数转换器, +5V的模拟电源,+3V的数字电源 需要外接时钟源,本系统外接50MHZ的时钟晶振,经过FPGA进行分频之后,可以满足ADS1605的正常工作所需要的频率. 五种工作状态----详情可见连接 (3)FPGA 内部模块: A:两个FIFO数据存储模块(采集了两路信号[荧光信号,以及多普勒信号]) B:数据处理模块 (1) 将一路通道采集到的荧光信号数据进行32个数据的求平均操作,从而预触发两个通道的信号,然后再对一路信号的数据进行最大最小的计算,通过这两个数据求出荧光信号的宽度, (2) 对另外一个通道的多普勒信号进行FFT计算 (3) 通过两个通道计算得到的数据计算出所求粒子的直径 C:控制模块 是对ADS1605,FIFO存储模块,以及对USB接口模块的控制 会产生控制信号,实现系统的数据采集,处理以及传输 D:分频倍频模块 系统为FPGA提供的外部时钟频率为50MHz,分频满足各个芯片的工作频率 (4)USB: 接口设计 为了保证较高的数据传输速率,使用的是不经过CPU的SLAVEFIFO控制模式. 文献资料: [1]FPGA与USB2.0的实时数据采集和处理系统 http://wenku.baidu.com/link?url=PMP4XMJgW_6pI8IEYaRobtJBU4u3PKBRdJ8cg5Hgqb2ygB_dHlyry8idRIhJXenE9L6hQey-rZ3T_z0z50Tyl3Z-35EtegefJuoGdwrnV_K [2]USB控制芯片cy7c68013 EZ-USB FX2中文手册 http://wenku.baidu.com/link?url=9NgJo2h_7e0D0NJemxeujZYSHuhQlXCJPxQ247rsbgiXUWFRFk9pFtnECvqlYQHuDkGuthu36h-F5MSrnLwJ4kv81_GHEJ9xEgsGkeht7aO [3] 扩展: (1)USB数据传输的核心是一个叫端点(endpoint)的东西, (2)然后你要知道USB的协议一点点,比如四种传输方式,数据用BULK方式就OK啦 (3) CY68013提供的开发包有驱动,自己改改就OK了,并且68013还带单片机的功能,带GPIO,可以完成其他的功能 USB1.1速度最快12M bps,2.0最快480Mbps,根据你的数据量来选择