基于FPGA的高速数据采集卡的设计毕业设计.docx

上传人:b****0 文档编号:12507931 上传时间:2023-04-19 格式:DOCX 页数:45 大小:412.68KB
下载 相关 举报
基于FPGA的高速数据采集卡的设计毕业设计.docx_第1页
第1页 / 共45页
基于FPGA的高速数据采集卡的设计毕业设计.docx_第2页
第2页 / 共45页
基于FPGA的高速数据采集卡的设计毕业设计.docx_第3页
第3页 / 共45页
基于FPGA的高速数据采集卡的设计毕业设计.docx_第4页
第4页 / 共45页
基于FPGA的高速数据采集卡的设计毕业设计.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

基于FPGA的高速数据采集卡的设计毕业设计.docx

《基于FPGA的高速数据采集卡的设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的高速数据采集卡的设计毕业设计.docx(45页珍藏版)》请在冰豆网上搜索。

基于FPGA的高速数据采集卡的设计毕业设计.docx

基于FPGA的高速数据采集卡的设计毕业设计

 

本科毕业设计说明书

 

基于FPGA的高速数据采集卡的设计

DESIGNOFHIGH-SPEEDDATAACQUISITIONCARD

BASEDONFPGA

 

学院(部):

电气与信息工程学院

专业班级:

学生姓名:

指导教师:

年月日

基于FPGA的高速数据采集卡的设计

摘要

论文还从宏观和微观两个方面来分析数据采集卡的各个组成部分。

从宏观上分析了采集系统中各个芯片间的数据流向、速度匹配和具体通信方式的选择等问题。

使用乒乓机制降低了数据处理的速度,来降低FPGA中的预处理难度,使FPGA处理时序余量更加充裕。

在ARM与FPGA通信方式上使用DMA传输,大大提高了数据传输的速率,并解放了后端的ARM处理器。

设计从宏观上优化数据传输的效率,充分发挥器件的性能,并提出了一些改进系统性能的方案。

从微观实现上,数据是从前端数据调理电路进入AD转换器,再由FPGA采集AD转换器输出的数据,后经过数据的触发、成帧等预处理,预处理后的数据再传输给后端的ARM处理器,最后由ARM处理器送给LCD显示。

微观实现的过程中遇到了很多问题,主要是在AD数据的采集和采集数据的传输上。

在后期的系统调试中遇到了采集数据错位、ARM与FPGA通信效率低下,还有FPGA中预处理时序紧张等问题,通过硬件软件部分的修改,问题都得到一定程度的解决。

在整个数据采集卡的设计过程中还遇到高速PCB设计、硬件设计可靠性、设计冗余性和可扩展性等问题,这些都是硬件设计中的需要考虑和重视的问题,在论文的最后一章有详细论述。

 

关键词:

高速数据采集,触发,高速PCB设计,高速ADC

 

DESIGNOFHIGH-SPEEDDATAACQUISITIONCARD

BASEDONFPGA

ABSTRACT

 

Dateacquisitionisthepremiseofmeasure,thefoundationofanalysisandthebeginningofcognition.Mostprecisedeviceisbasedonthedateacquisition.Withthedevelopmentoftheelectronicanddigitaltechnology,thespeedofdatetransmissionandthecalculationofCPUarefasterandfaster;thereforetherequirementsofdataacquisitionandprocessingaremoreseverethanbefore.

ThispaperanalyzesthesystemfromMacro-andmicrorespect.Fromthemacropointofviewitanalyzesdataflowing,speedmatchingandtheselectionofspecificmeansofcommunicationofacquisitionsystemandsoon.Weadaptping-pongmechanismtoreducethespeedofanalyzingdataandpre-difficultofFPGAwhichleadtotheeaseofprocessingTimingMarginofFPGA.DMAtransferisusedascommunicationbetweenARMandFPGAwhichimprovedatatransmissionrates,andliberatetheback-endARMprocessor.Fromthemicropointofview,dataenterintotheA/Dconverterfromthefront-endconditioningcircuitry,FPGAcollectingdataontheoutputofA/Dconverterandgothroughthepre-operationoftriggeringandframingofdata.Aftertheseoperations,dataaretransmittedtotheback-endoftheARMprocessorandthendisplayontheLCD.AlotofdifficultexitedinthesuccessfuloperationinthemicrorespectwhichismainlyaboutA/Ddatacollectionandtheoftransmissiondata.Alloftheseissueshavebeensettledbytherevisingofhardwareandsoftware.

 

KEYWORDS:

High-speedDataAcquisition,Triggering,High-speedPCBHigh-speed,A/Dconverter

1绪论

1.1引言

数计算机技术在飞速发展,微机应用日益普及深入,微机在通信、自动化、工业自动控制、电子测量、信息管理和信息系统等方面得到广泛的应用。

在冶金、化工、医学和电器性能测试等许多应用场合需要同时对多通道快变的模拟信号进行采集、预处理、暂存和向上位机传送,再由上位机进行数据分析处理、自动报表生成、信号波形显示和输出打印等处理。

随着大规模集成电路技木的迅速发展,微处理器、存储器、输入/输出等外围接

口器件的性能不断提高,体积越来越小,价格越来越低,使数据采集器不断向智能化、

小型化发展,使智能化仪器的研制已经成为当今研制的主要方向。

模拟仪器存在输出

动态范围小,对大动态信号处理线性差,因而精度低、信号不可记录等缺点。

在模拟

电子技术领域中,由于使用了包括模数转换器件在内的数字器件,因而在精度、简化

电路结构、灵活、方便等方面取得很大的进步。

模拟技术和数字技术混合运用以综合

发挥两者的优势己是电子技术发展的必然趋势。

而且微处理器由于价格越来越低,功

能也不断增强。

以数字化仪器为主的数据采集处理技术越来越广泛地应用于工业过程

控制及实时观察工业生产的动态及趋势。

传统获取现场数据的方法,效率低、误差大、

难以输入计算机。

而数据采集器是一种具有现场实时数据采集、处理功能的自动化设

备,它具备实时采集、自动存储、即时显示、即时反馈、自动处理、自动传输等功能。

为现场数据的真实性、有效性、即时性、可用性提供了保证,并能方便输入计算机,

已广泛应用在工业、农业、商业、交通、物流、仓储等行业。

1.2数据采集与处理系统概述

数据采集与处理系统的任务,就是采集传感器输出的模拟信号并转换成计算机能

识别的数字信号,送进计算机处理、存储、传输和显示,以便实现对某些物理量的监视;其中一部分数据还将被生产过程中的计算机控制系统用来控制某些物理量。

随着计算机技木的飞速发展和普及,数据采集系统也迅速地得到应用。

在生产过

程中,应用这一系统可对生产现场的工艺参数进采集、监视和记录,为提高产品质量、降低成本提供信息和手段。

在科学研究中,应用数据采集系统可获得大量的动态信息,是研究瞬间物理过程的有力工具也是获取科学奥秘的重要手段之一。

总之,不论在哪个应用领域中,数据采集与处理越及时工作效率就越高,取得的经济效益就越大。

数据采集系统性能的好坏,主要取决于它的精度和速度。

在保证精度的条件下应有尽可能高的采样速度,以满足实时采集、实时处理和实时控制对速度的要求。

1.3数据采集卡主要的性能指标

根据设计要求,本课题研制的数据采集卡主要有以下的技术指标和要求:

1.单通道模拟输入,信号最高采样率为250MSPS;

2.分辨率:

8bits

3.单通道模拟输出,14位分辨率,采样率最高175MSPS;

4.支持电平、上升/下降沿等常见触发;

5.支持RS232输出;

6.八路数字I/O输出。

1.4本文主要研究工作

论文的主要任务是基于FPGA的高速数据采集卡的硬件设计,并且针对具体的方案讨论如何提高采集的性能。

这一部分在今后的进一步研究中有重要的意义,具体的研究内容如下:

1.数据采集卡的整体设计方案选择和芯片选型。

2.各芯片间数据通信方案选择,各部分处理速度分析。

3.高速PCB设计与调试。

4.前端采集与FPGA预处理,整个系统的逻辑控制。

5.高速DAC内部寄存器配置,控制模拟数据输出。

 

2系统设计概述和主要器件选型

2.1系统设计方案

整个系统是由前端模拟通道、触发电路、FPGA数据采集预处理、数据模拟输出四部分组成。

FPGA数据采集预处理分为A/D数据采集、触发控制、帧控制、SDRAM控制器四个部分,模拟数据经过A/D装换后在FPGA中缓冲,缓冲之后使用触发控制将采集到的数据分成512个数据点组成的数据帧,数据按照帧的顺序传输,经过SDRAM存储后。

具体的数据采集系统的硬件结构图如下图2-1所示:

图2-1数据采集卡硬件结构图

2.2ADC芯片选型

A/D转换器是整个采集系统的核心,系统前端模拟电压调理电路、FPGA数据采集和后端的采集控制部分都与A/D直接相关,A/D芯片的选择不但关系到系统设计的性能,而且直接决定了整板设计的难度。

基于综合考虑我们选用了AnalogDevice公司生产的AD9480芯片,AD9480采样率高达250MSPS、8位转换精度,同时保持士0.25LSB优良的微分线形误差(DNL)。

该DNL技术指标比具有相同转换速率的同类IC高两倍。

为了减小系统的功耗,芯片采用3.3V电源供电,工作时钟为差动解码时钟,内置有基准电压源和采样跟踪保持电路。

AD9480支持多路分配的TTL/CMOS输出逻辑和低电压差分信号(LVDS)输出。

在CMOS多路分配模式下,AD9480可以交叉存储模式或并行模式以半时钟速率在两个8bit通道中移动数据。

当工作在LVDS输出模式时,AD9480通过单一输出通道以全时钟速率输出数据,以达到最佳的输出性能。

由于AD9480在DNL方面的优良性能,使其适合运用在数字示波器和网络分析仪等要求精确明显输入信号较小的应用中,同时也适合要求高采样率和高宽带宽的应用场合。

因此,AD9480是本设计中所需ADC的最佳选择。

AD9480的模拟输入驱动着一个高带宽的跟踪保持电路;然后经过一个8bit的ADC内核对其信号进行采样、量化;最后把量化的数字信号通过LVDS输出。

同时内部还包括了一个可以接受TTL、CMOS、LVPECL等输入电平的基准电压源,以确保AD9480更容易的使用。

由于PCB设计时使用两层板设计,为了保证输出信号的回流面积尽可能小,数据输出和采集时钟都选择LVDS。

2.3DAC芯片选型

为了输出高性能的模拟信号,DAC采用采样率高达175M的高速DAC。

AD970X系列DAC针对低功耗特性进行了优化,同时仍保持出色的动态性能,适合用于手持便携式仪器等需要有效地合成宽带信号的场合。

AD9707精度高达14位,采样率为175MSPS,内部集成边沿触发式输入锁存器,1V温度补偿带隙基准电压源和自校准功能,使AD9707能提供真14位INL与DNL性能。

AD9707还具有共模电位移动能力,当与其他模拟器件连接时无需电平移动电路;并简化了模拟电路的设计并且降低了小型便携式设计中的印制电路板面积。

AD9707的具体特性如下:

1.低电压:

完整的CMOSDAC操作电压3.6V-1.7V。

3.3V时功耗50mW,1.8V时功耗12mW。

DAC满刻度电流可以为低功耗操作而减小。

可以为休眠和掉电模式提供低功耗的空闲周期。

2.自校准:

自校准可以正确发挥AD9707的14-bitINL和DNL性能。

3.二进制补码支持:

数据输入支持二进制补码或直接二进制数据编码。

4.灵活的时钟输入:

可选择的高速单端、差分CMOS时钟输入。

支持175MSPS转换速率。

5.设备配置:

设备可以通过引脚短接配置,也可以通过SPI控制进行高级编程。

6.易与其它元件连接:

可调节的通用输出模式易于和其他0-1.2V的信号连接。

7.片上参考电压:

AD9707包含一个1.0V的内部基准电压参考。

2.4FPGA芯片

在现代采集系统中FPGA往往被用做通信系统的中枢,负责了大量的数据采集和前期处理和控制工作,FPGA作为系统的中间级主芯片承担着承前启后的重大任务。

常见的FPGA一般由六部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。

1.可编程输入/输出单元

大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可适应不同的电器标准与I/O物理特性;可以调整匹配阻抗特性,上拉下拉电阻;可以调整输出驱动电流的大小等。

2.基本可编程逻辑单元

FPGA的可编程逻辑单元基本是由查找表(LUT)和寄存器(Register)组成的。

FPGA一般依赖寄存器完成同步时序逻辑设计。

一般来说,比较经典的基本可编程单元的配置是一个寄存器加一个查找表。

学习底层配置单元的LUT和Register比率的一个重要意义在于器件选型和规模估算。

器件选型是一个综合性问题,需要将设计的需要、成本的压力、规模、速度等级、时钟资源、I/O特性、封装、专用功能模块等诸多因素综合考虑。

3.嵌入式块RAM

目前大多数FPGA都有内嵌的块RAM。

嵌入式块RAM可以配置为单端口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等存储结构。

根据设计需求,块RAM的数量和配置方式也是器件选型的一个重要标准。

4.丰富的布线资源

布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。

根据工艺、长度、宽度和布局位置而划分为以下不同的等级:

1)全局性的专用布线资源:

以完成器件内部的全局时钟和全局复位/置位的布线;

2)长线资源:

用以完成器件Bank间的一些高速信号和一些第二全局时钟信号的布线;

③短线资源:

用来完成基本逻辑单元间的逻辑互连与布线;

④其他:

在逻辑单元内部还有着各种布线资源和专用时钟、复位等控制信号线。

由于在设计过程中,往往由布局布线器自动根据输入的逻辑网表的拓扑结构和约束条件选择可用的布线资源连通所用的底层单元模块,所以常常忽略布线资源。

其实布线资源的优化与使用和实现结果有直接关系。

5.底层嵌入功能单元

底层嵌入功能单元的概念比较模糊,这里我们指的是那些通用程度比较高的嵌入式功能模块,比如PLL(PhaseLockedLoop)、DLL(DelayLockedLoop)、DSP和CPU等。

随着FPGA的发展,这些模块被越来越地嵌入到FPGA的内部,以满足不同场合的需要。

6.内嵌专用硬核

内嵌专用硬核与“底层嵌入单元”是有区别的,这里指的硬核主要是那些通用性相对较弱,不是所有FPGA器件都包含硬核。

如高速串并收发单元、PCI-e接口硬核等。

系统所选用的EP3C25Q240C8N是AlteraCyclone系列的第三代产品。

CycloneIII系列FPGA前所未有地同时实现了低功耗、低成本和高性能,进一步扩展了FPGA在成本敏感的大批量领域中的应用。

EP3C25拥有24624个逻辑单元,内部集成66个M9K嵌入式存储器模块,内部RAM资源多达608Kbits,66个嵌入式18*18乘法器,4个内部PLL,最大用户I/O引脚数量148个,83个差分通道。

系统中AD输出为LVDS,因此需要多达十组的LVDS通道,数据缓冲需要大量的内部RAM资源,EP3C25内部的66个M9K资源可以很好的满足设计要求。

AD采样时钟由FPGA片内PLL倍频获得,而且多个片内PLL更加有利于AD时钟的分频与控制。

2.5FPGA的设计步骤

1.电路设计与输入

电路设计与输入是指通过某些规范的描述方式,将工程师电路构思输入给EDA工具。

常见的使用HDL语言编程和原理图输入两种方式。

2.功能仿真

使用HDL描述完电路后,要用专业的仿真工具对设计进行功能仿真,验证电路功能是否符合设计要求。

功能仿真一般称为前仿真,主要使用的软件是ModelSim。

通过仿真能及时的发现设计中的错误,加快设计进度,提高设计的可靠性。

3.综合优化

综合优化其实就是将我们编写好的HDL语言用FPGA内部的与非门、触发器和RAM等基本逻辑单元实现,并按照目标与要求优化所生成的逻辑连接。

通常我们的做法是直接使用器件厂商自带的综合工具进行综合,在根据目标优化方面做的很不足。

常见的综合优化工具有Synplicity公司的Synplify。

4.综合后仿真

综合完成后需要检查综合结果是否与原设计一致,那就要做综合后仿真,它一般就是指带门延时的仿真。

特别是当遇到布局布线后仿真时发现有电路结构与设计意图不符的现象,则常常要回溯到综合后仿真以确认是否是由于综合歧义造成的问题。

5.实现与布局布线

基本逻辑单元组成的网表,它与芯片的实际结构还是有差别的,这时需要使用FPGA厂商自己的工具,根据所选芯片的型号,将综合输出的逻辑网表适配到具体FPGA上,这就是实现过程。

布局是指将逻辑网表中的硬件原语或者底层单元合理的适配到FPGA内部的固有硬件结构上,布局的优劣对设计的最终实现结构(在速度和面积两方面)影响很大;布线是指根据布局的拓扑结构,利用FPGA内部的各种连线资源,合理正确连接各个元件的过程。

在高速电路设计中,对时序约束和布局布线有很高的要求,这是在设计初期就已经决定好的。

6.时序仿真和验证

将布局布线的延时信息反标注到网表中,进行的仿真就叫时序仿真,也称为后仿真。

7.板级仿真与验证

在有些高速设计的情况下需要使用第三方的板级验证工具进行仿真验证,如

MentorHyperlynx等可以通过对设计的IBIS、HSPICE等模型的仿真,能较好的分析高速设计的信号完整性、电磁干扰等电路特性。

8.调试与加载配置

将配置文件加载到FPGA中,再使用示波器、逻辑分析仪等仪器分析输出信号,在一些简单的设计中可以使用QuartusII内嵌的SignalTapII对设计进行在线逻辑分析。

2.6FPGA核心电路设计

FPGA各系列的最小系统板的单元组成基本相同,仅具体电路中存在着差异。

一般可以把其组成分为七部分:

FPGA主芯片、PROM存储芯片、电源电路、全局时钟发生电路、JTAG接口电路、下载模式选择电路和接口引出插针。

以该最小系统板作为控制核心,外加所需的接口电路就可以实现各种设计。

整个系统的FPGA部分都是围绕EP3C25设计,其他外围的器件的选择都是根据它的特点设计。

由于EP3C25的配置文件大小为5.8M,因此外围的PROM配置芯片选用EPCS16;FPGA除了核心供电1.2V外,I/O供电上还必须区分,因为FPGA的bank5和bnak6与AD的LVDS直接相连,因此在这两个bank上的I/O供电必须是2.5V;全局时钟的发生电路主要由50M的有源晶振组成,在晶振电源上加入磁珠和电容用来吸收和滤除高频分量,保证电源输入的稳定,时钟输出端串联一个33Ω电阻保持时钟输出信号完整性;JTAG电路中的VCCIO必须使用2.5V与其他的电路使用3.3V不同;配置方式的选择依然可以通过MSEL[0..2]的不同接法决定。

具体的FPGA外围电路见附录2。

3数据采集与触发电路设计

FPGA高速采集和采集后的触发控制是系统设计的关键部分,它直接决定了数据的正确性和稳定性。

本章主要是对FPGA数据采集、触发控制和存储器控制三个方面加以论述,再结合实验中遇到的问题,对FPGA数据采集和触发控制中的关键部分进行分析,来达到高效高速采集的目的。

3.1AD前端调理电路

前端调理电路目的就是将被测信号调理到AD9480模拟输入的电压范围。

被测信号经过前端阻抗变换网络之后,进入后级运算放大器,后级选择高阻抗低噪声运算放大器ADA4817,输入阻抗高达500GΩ。

后级信号经过调理之后输入AD8351中,AD8351主要是将输入的单端信号转换为AD9480需要的差分信号。

与多数高速、高动态范围的A/D一样,AD9480也是采用差分模拟输入。

模拟信号采用差分输入可以改善很多性能,其中最主要的一点就是差分结构对模拟输入信号的偶次谐波有较高的抑制性,而且对共模噪声有着非常好的抑制作用。

设计中使用AD8351将单端信号转换为差分输出来驱动AD9480。

AD8351是ADI公司推出的一款低功耗、高带宽差分放大器。

它采用10引脚的MSOP封装,在宽泛范围内能具有良好的低噪声和失真特性。

因此AD8351是设计高精度采样系统的最佳选择,AD8351还可实现信号的单端变差分。

下图3-1为AD8351单端转差分的典型电路:

 

图3-1AD8351单端转差分的典型电路

 

模拟信号经过AD8351转换为差分信号之后进入AD9480。

设计中可以使用S1引脚来选择数据输出格式和占空比,当输出LVDS格式数据时,LVDSBIAS必须通过3.75KΩ接地,来调整LVDS输出电流。

可以由SENSE来决定满刻度的大小,通过变化跳线来改变SENSE引脚的电压来实现不同的满刻度范围,SENSE默认为接地,表示ADC使用内部1V作为满刻度范围,同时外部参考引脚VREF接地。

下图3-2为AD9480功能模块图,通过配置上述功能引脚后AD9480即可以正常工作。

下图3-2为AD9480功能模块图:

 

图3-2AD9480功能模块图

3.2FPGA数据采集

设计中使用FPGA内部的RAM来缓冲AD输出的数据,EP3C25内部的RAM资源总共有608Kbits,使用这些内部的RAM作为数据缓冲单元,既可以节约成本,又可以提高硬件采集的性能。

使用FPGA内部的RAM资源,设计中可以非常容易的构建前端数据缓冲所需要的双口RAM或者FIFO。

FPGA内部RAM的存在形式一般有以下几种,分别为512bit的M512,4kbit的M4K,以及9kbit的M9K。

EP3C25内部就有66个M9K嵌入式存储器模块,它们均匀散布在FPGA的各个bank中,用M9K实现真正的双口RAM。

C8等级的FPGA实现双口RAM的最高的工作为238MHZ,而AD9480最大的采样率为250M,因此使用FPGA来缓冲数据完全可以满足设计要求。

在设计之前就要根据采集信号的频率和AD采样频率来综合决定使用RAM的大小,过多的使用M9K模块会使得后期设计资源短缺,过少的使用M9K模块会使得一次采集数据不够。

FPGA内部的M9K模块数量是固定的,分布在FPGA内部的区域也是固定的,如果一味的追求大容量的数据缓冲而使用多个不同位置的M9K模块,在各个模块之间可能也会出现难以控制的时序问题。

由于数据采集卡上的FPGA部分可以由ARM处理器灵活的配置,因此在系统设计上我们就有更大的灵活度。

系统调试时使用一个M9K模块组成1024*8bits的双口RAM,作为前级的数据缓冲模块,下图3-3为典型的双口RAM模块图。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1