基于FPGA的高速数据采集系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的高速数据采集系统

摘要

在这篇论文中,信号采集系统对于连续波测距有两种显示方式。一种是硬件设计,另一种是装置设计和使用FPGA且携带USB2.0接口的应用程序设计,这种系统的抽样率可达到300Msps。通过使用FPGA和512M RAM对这种信号的相关性和积累进行处理。实验结果显示,它可以在多种系统中应用。

关键词:FPGA;数据采集;VHDL

I.介绍

随着对数据采集系统需求的增加,对于数据采集系统来说使用MCU或DSP为主要控制器的缺陷变得很明显,低时钟频率的MCU和DSP大大降低了数据采集的速度和效率。随着高速的FPGA和AD技术的发展,基于FPGA的数据采集系统的优势越来越明显。

FPGA的内部延迟很小,所有的控制逻辑由硬件完成,这种技术可以满足高速数据采集的需求,因此我们可以设计基于FPGA的高速数据采集系统。这篇论文详细的介绍了驱动电路基于FPGA的AD9211,AD9740和CY7C68001的VHDL编码设计。在ISE和ModelSim 的软件上对编码仿真,我们得到了满意的结果和并且完成了实际的硬件调试。

II 硬件设计

A.系统结构

在图片1中展示了该论文设计的高速数据采集系统的结构。它包括五部分:A/D,D/A,USB接口,FPGA处理器模块儿,保留的可扩展接口。

图片1 系统结构

FPGA的主要任务是生成控制信号和驱动系统不同部分的时钟信号,完成整个系统的逻辑控制以及A/D,D/A.和USB芯片组的驱动。系统使用60MHz的晶振输入,DCM的合成频率输出为250M。我们使用此为A/D的样本抽样率。

AD9211是高效能的10位的集成抽样模数转换块,低功耗且容易使用。此模块最高转换速率可达300MSPS,并且在宽频带载体和宽频带系统中的动态特性表现最佳。

数字输出是低压差分信号兼容的,并且支持两种由二进制偏移得到的补码和格雷码。一种数据时钟输出对于适当的数据输出定时是有效的。AD9211具有SPI接口,此接口允许使用者为了实现特殊功能或在ADC中通过结构化的寄存器空间完成特定的操作重新配置转换器。

AD9740是具有10位分辨率,宽频带,第三代TxDAC系列的高性能低功耗的CMOS D/A 转换器。AD9740的主要硬件设计电路包括外部电路设计,运行时钟模块儿和数据输出模块儿,以及配置电路设计。

USB接口装置CY7C68001在此应用,它有一个内置的USB数据收发器和串行接口驱动(SIG),连同用于收发USB数据的指令解码器。控制器具有4个端点,共用一个4KB的堆栈空间以具有最大化弹性和输出,且此堆栈空间控制0端点。它有3个地址引脚和可选择的8位或16位的数据总线以便控制数据指令的输入输出。

在此使用赛灵思公司高成本效益的FPGA XC3S400作为核心控制器。它为数据获取提供了足够多得逻辑单元,它同时拥有方便与其他设备连接的足够的I/O引脚。在此篇论文中,我们使用此FPGA的DCM作为主要的时钟发生模块儿。在它的内部具有足够的RAM可用于直接的数据缓冲器。

B.模拟信号处理

在此模块儿中,主要包括模拟信号放大,过滤信号,以便使信号幅度满足抽样电路放大的条件,我们也可以通过DA的输出来调节放大器的增益。

2.6 保留的可扩展接口

可扩展接口是为系统扩展保留的。此项功能增加了系统的弹性和容易使系统硬件升级。

III.软件设计

A. AD9211驱动设计

当系统启动时,FPGA重置和A/D,D/A以及USB芯片的初始化,这使得它们以我们希望的方式工作。FPGA初始化设备通过SPI接口,AD9211的初始化时钟在图2中显示。

图片2 SPI时序图

在FPGA中,我们设计了SPI的模块儿,然后通过此模块儿向AD9211写初始化数据,它能够很容易的改变A/D的工作模式。SPI在ModelSim上的仿真时序图在图片3中显示。此模块儿在FPGA的设计在图片4中显示。

图片3 SPI 仿真时序图

图片4 SPI模块儿

初始化以后,当FPGA为AD9211提供了工作时钟脉冲以后,数据开始输出。数据率同时由时钟信号和数据率模式决定。AD9211有两种数据率模式:单数据率模式和双数据率模式。时序图在图片5和6中展示。

图片5 单数据率模式

图片6 双数据率模式

我们在此为两种数据率设计了两种模块儿,在使用时,我们可以根据实际的情形选择适当的数据率。驱动时钟由FPGA中的DCM的频率合成器生成。当DCM的锁定信号是高电平时,时钟信号也是锁定的并且数据是有效的。不同时钟信号的FPGA输出在ModelSim上的仿真在图片7中显示。

图片7 差异时钟信号输出

B.AD9740驱动设计

AD9740驱动设计主要包括数据写入时序图模块儿和时钟产生模块儿。时钟产生模块儿也是应用FPGA中的DCM。在时钟的下降沿,FPGA将数据写入数据总线且在写一个上升沿AD9740输出模拟信号。

C.CY7C68001驱动设计

USB应用程序设计被分成9个模块儿且通过状态机实现,它被当做指令传输接口进行使用。我们通过此应用程序可以将抽取后的获得的数据发给PC。此程序模块儿主要包括3个部分:工作模式控制器,数据输入输出模块儿和时序控制模块儿。这里我们使用指令异步写入,在ModelSim上的时序仿真将在图片8中显示。

图片8 指令异步写入时序

我们在此将不再讨论其他的工作时序模式,整个模块儿组将在图片9中显示。

图片9 USB2.0 驱动模块

D. 数据采集系统控制模块

在FPGA中,我们将使用一个控制器来协调模块儿间的工作时序,它的主要作用是根据实际的工作环境调节工作模式以使各模块儿协调工作。它使得系统在不同的工作环境达到最佳的工作状态。它主要包括工作时序控制模块儿和工作模式控制模块儿。

E.模块儿间连接

模块儿间的连接在图片10中显示。

经过实际的硬件调试操作后,关于AD9211的LVDS输出的数据眼被显示在图片11中。

图片10 FPGA中各模块连接图

相关文档
最新文档