当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]现代电子侦查技术要求能够对外部模拟信号进行精确提取和分析,从而对数据采集的精度提出了很高的要求,本文提出了一种以FPGA 作为主控制器的高精度500M 数据采集系统设计方

现代电子侦查技术要求能够对外部模拟信号进行精确提取和分析,从而对数据采集的精度提出了很高的要求,本文提出了一种以FPGA 作为主控制器的高精度500M 数据采集系统设计方法,详细地阐述了各硬件平台的具体构成。最后利用QUARTUS 内部的嵌入式逻辑分析仪(SignalTap ii)可以观察到被采集到的信号并且对数据的有效位数及性能进行简略分析。

0 引言

随着数字通信技术的逐步发展,高速数据采集系统已经逐步取代传统的数据采集系统,其广泛应用在众多场合。新一代可编程逻辑器件FPGA 都拥有较多的IO 端口以及强大的数据处理能力,这也为高速高精度数据采集系统的研发提供了基础条件。

1 工作原理

本文设计的数据采集卡硬件原理框图1 如下所示。

 


如图1 所示,前端模拟电路将外界的模拟信号转化成为ADC能够接收到的数据格式;高速时钟电路提供500MHz 的高速时钟,ADC 在此时钟作用下,进行ADC 变换。在整个数据采集卡中,FPGA 是进行采集控制,以及数据接收的核心。FPGA 按照1 :4 的比率对将接收到的500MHz 的LVDS 差分数据流进行分流和降速。

数据分流之后由于数据速率与USB 接口数据传输速度不同,所以还要进行FIFO 缓冲。FIFO 的写时钟与串行收发器保持同步,当FIFO 缓冲器被写满之后,由FPGA 读取FIFO 缓冲器中的数据,并且将数据通过USB 接口芯片传输到上位机中进行显示或者存储。

2 系统设计

数据采集卡主要包括高速A/D 转换模块、FPGA 主控模块和USB 接口电路三个模块。

2.1 高速A/D 转换模块

ADC 芯片作为模数转换的核心,设计采用TI 公司推出的ADS5463,其采用流水线型结构,最高采样速度500MSPS,精度12位,拥有高速差分数字接口LVDS.

对于高速ADC 采样电路,模拟信号输入接口的设计不仅要保证足够的传输带宽而且要完成将单端的输入信号变成差分信号的功能。本设计使用射频变压器将单端输入转换为差分输入,并通过TI 公司生产的可级联中频放大器THS9001 芯片实现中频信号放大的功能。

在A/D 转换模块中,采样始终的质量非常重要。在本文的设计中,采用了锁相环芯片CDCM61001 生成采样时钟,并利用FPGA内部PLL 资源倍频生成采样时钟作为备用的采样时钟。本设计是用25M 的时钟倍频20 倍生成500M 以LVPECL 格式的差分电平形式。

高速A/D 转换模块的原理图如图2 所示:

 


2.2 FPGA 主控模块

FPGA 是整个采集模块的控制核心,其主要的功能是接收数据,并且对数据进行降速、分流以及缓冲,并且将数据传通过USB接口传输给上位机。在本文的设计设计中,选择Cyclone II 系列的EP2C35F672C6,它属于一款中等密度的FPGA,相比较于ASIC低得多的成本在单片机上实现复杂的数字系统。

设计使用FPGA 的Bank3 和Bank4 接收来自ADS5463 输出的高速LVDS 数据,包括DRY(数据输出准备好)以及OVR(数据溢出位)。Bank5 和Bank6 用于USB 接口芯片的控制,其余BANK 留作扩展之用。

在FPGA 主控模块中,AD 输出信号和时钟信号被传输到FPGA 中的DIFFIO_RX p/n 通道上。其中p 表示正差分通道信号,而n 表示负差分通道信号。在这部分的软件设计中,使用altvds模块接收ADC 的输出数字信号、始终信号,并且利用DMUX 对数据流进行串行- 并行转换,以方便对输入信号的后续操作。

数据流在DMUX 模块的仿真结果如图3 所示。

 


如图3 所示,Data_in 是一路500MHz 的数据流,而dout1,2,3,4 为Data_in 通过DMUX 进行降速和分流之后的结果。从图中可以看出,500MHz 的高速数据流经过DMUX 降速、分流之后的输出较干净、平滑,在高速状态下,达到这种结果是比较理想的,对系统设计上也是很有利的。

经过DMUX 降速之后的数据流已经达到了FPGA 的处理要求,但是由于FPGA 的处理速度和与上位机相连的USB 接口速率不匹配,为此需要采用FIFO 来进行缓冲。在本文的设计中,采用两个容量为4K,宽度为32 位的FIFO 来来作为FPGA 与USB 接口之间的数据缓冲。FPGA 接收高速DMUX 降速后的数据流,并且写入到FIFO 中,当FIFO 写满8K 之后,启动读始终,将FIFO 中的数据通过USB 接口分批读取到上位机中。

2.3 USB 接口电路设计

USB 接口的主要功能是将FPGA 缓冲区中的数据读取到上位机中。在本文的设计中,USB 接口电路采用CYPRESS 公司CY7C68013A 芯片。CY7C68013A 芯片集成了串行接口引擎来方便读取FPGA 中的数据。芯片采用2MHz 的时钟信号,同时使用外部EEPROM 存储固件程序。在USB 接口电路的初始化过程中,首先需要从EEPROM 中读取固件程序。FPGA 通过USB 接口与上位机进行数据传送的流程图如图4 所示。

 


如图4 所示,EZ-USB FX2 芯片中包含有GPIF 和SlavFIFO 两种接口方式,可以满足不同数据流速度以及用户对数据处理实时性的要求。在CY7C68013A 芯片中,其接口时钟与FPGA中的IFCLK 引脚连接,从而在FPGA 中的FIFO 缓冲写满时,FPGA可以控制USB 接口电路开始从FIFO 缓冲区中读取数据。

USB 接口的主要工作室实现对FIFO 缓冲区中数据的读取,因此其设计的逻辑也主要是对FIFO 读、写状态机的监控,其实现的流程如下:在接收到数据读指令之后,分成8 次读取FIFO中的128 位数据,并且将这些数据一起存放到FPGA 控制寄存器组中;将FPGA 的FIFO 中的数据读出,并且写入到EP6 端点缓冲区中。状态机先由空闲状态进入等待状态;当EP2 不为空时,进入读状态EP2 ;当读命令有效时,那么就进行数据的读取并且发送相应的命令,之后回到空闲状态;在等待状态下,当EP2 为空,EP6 不满时,开始写EP6,写满后也回到空闲状态。[!--empirenews.page--]

3 系统测试采用以产生频率为20MHz 的高频信号发生器,峰值为2.36Vpp 的正弦波作为模拟输入。系统的测试采用SignalTapII来获取两路数据采样数据,并且模拟转后后存入到FIFO 中的数据和信号。采样数据的模拟波形图如图5 所示。

 


从图5 可以看出,由于两路输入的信号存在一定的增益和偏移误差,从而导致所收集数据的信号增幅值之间,产生了不一致现象。采用快速傅里叶变化分析法,首先在输入的输入信号上采集N 个点做快速傅里叶变换,假设信号谱线在K 和N-K-1 之间,那么就可以得到信噪谐波比SINAD :

 

为避免信号频谱泄露,要求波形的采样率fs 和输入信号频率f0,满足其f0=fs*M/N,其中M 为一个合适的正整数。

 

此方法可以进行ADC 的有效位数的测试,实验ENOB,将其取6 次得到的平均结果约为6.2.后面还要将采集到的数据进行进一步的分析,来检验通道间的不匹配对系统性能的影响。

4 结论

介绍了一种基于FPGA 基于FPGA 和USB2.0 的高精度数据采集系统,通过FPGA 对AD 的工作方式,进行合理的配置,并充分利用其内部自带的逻辑资源,实现对数据的缓存,避免使用其他微处理器进行的数据处理,本设计可以很好的减少芯片数和空间体积,更有利于FPGA 的发挥,具有简单、灵活、功能多样的特点。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

隔膜计量泵,作为一种精确控制液体输送的设备,广泛应用于化工、医药、食品等行业。它通过内部的隔膜进行往复运动,从而实现液体的吸入和排出,具有高精度、高可靠性以及耐腐蚀等特点。本文将详细阐述隔膜计量泵的工作原理、结构特点、性...

关键字: 隔膜计量泵 精确控制 高精度

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计
关闭
关闭