作者: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
这样,这个较高速的数据采集传输系统就设计完成了,希望以上内容对各位网友有所帮助。
用户184317 2015-4-13 17:02
用户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