背景:传统的数据采集是使用得是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,根据你的数据量来选择