原创 高速信号采集USB2.0传输系统设计

2012-2-6 12:44 1610 26 29 分类: FPGA/CPLD

作者:herizon_fei

     之前做一个项目,需要对微弱光信号进行较高速(采样率1M)的8位信号采集,然后将数据传输到PC,交由上位机进行处理。这里将大概结构分享给大家。

     这套系统以FPGA作为核心控制,数据采集部分采用AD7822,数据传输部分使用CY7C68013A作为USB2.0的核心控制芯片。

     在数据采集部分,AD7822是美国模拟器件公司(AD公司)生产的8位并行单通道半闪速结构模数转换器。AD7822最高采样率为2M,转换时间仅需420ns。使用外部参考电压,需要在采集开始前充电1us时间。由于我们采样率较高,因此使用不自动掉电模式进行工作。

     在实际使用中,发现这块芯片的采样数据就绪信号convst并非每次都只需要420ns,而是420ns到620ns之间。因此芯片并不能如前所述采样率保持在2M。好在本项目只需要1M的采样率,只需要等待convst置位,然后等到1us时间到,则再次进行下一次转换。这样就可以将数据源源不断的以1M的采样率输出了。

     数据输出后,将数据直接传输到USB2.0处,准备发送。

     对于数据传输部分,采用CY7C68013A作为USB2.0的核心控制器。使用slavefifo模式进行数据传输,一个数据包520个字节,使用芯片内部两个fifo缓冲区,每个缓冲区满则通过USB发送,并自动切换到另一个缓冲区缓存数据。

     由于本项目需要上位机发送命令控制数据采集的开始停止以及控制采样速率等信息,因此需要数据的双向传输。其状态机设计较单向数据传输比较复杂,具体设计思路可以参考我的另一篇博文:《slavefifo读命令写数据状态机简述http://bbs.ednchina.com/BLOG_ARTICLE_3001333.HTM

    这样,这个较高速的数据采集传输系统就设计完成了,希望以上内容对各位网友有所帮助。

文章评论3条评论)

登录后参与讨论

用户184317 2015-4-13 17:02

您好,我现在有个项目跟您这个项目很类似,只不过AD要求16位的,您的这个方案是否可以卖给我,主要是fpga的程序,多谢

用户377235 2013-6-21 20:32

〓程序员+美工〓 群 号:39566583

用户245909 2012-2-26 23:12

在哪里是指?我在广州的。。。

用户408448 2012-2-14 22:48

博主,在哪里啊?有问题可以请教你啊,,,

用户1696769 2012-1-6 13:24

欢迎博主!
相关推荐阅读
用户245909 2012-01-29 13:01
(转载)cypress公司USB固件程序hex转iic
在cypress开发包的安装目录下有一个工具 Cypress\USB\Bin\Hex2Bix.exe,并且在Util目录下有他的源代码。你可以用这个工具进行hex到iic文件的转换。     ...
用户245909 2012-01-29 12:59
slavefifo读命令写数据状态机简述
作者:horizon_fei slavefifo模式是cy7c68013芯片的一种常用模式,是将ezusb芯片作为从设备高速写入或读取的重要方式。在此处,我使用FPGA作为主控制器...
用户245909 2012-01-29 12:54
VHDL按键写法(含按键消抖和弹起检测)
作者:horizon_fei      以前用FPGA做了个电子钟,在网上找按键的代码,但是找到的都没有松手检测,对于按下会自加的操作,往往按一下会加很多次,于是自己设计了这个按键的写法,根据...
用户245909 2011-12-17 10:08
Quartus II 9.1 and NIOS II 9.1 on Windows 7 (转载)
I am sharing my personal experience here. I have been using Quartus II 9.1 and NIOS II IDE 9.1 on ...
我要评论
3
26
关闭 站长推荐上一条 /2 下一条