基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx

上传人:b****2 文档编号:4700271 上传时间:2023-05-03 格式:DOCX 页数:34 大小:978.97KB
下载 相关 举报
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第1页
第1页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第2页
第2页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第3页
第3页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第4页
第4页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第5页
第5页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第6页
第6页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第7页
第7页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第8页
第8页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第9页
第9页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第10页
第10页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第11页
第11页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第12页
第12页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第13页
第13页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第14页
第14页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第15页
第15页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第16页
第16页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第17页
第17页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第18页
第18页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第19页
第19页 / 共34页
基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx

《基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx(34页珍藏版)》请在冰点文库上搜索。

基于FPGA的高速数据采集系统设计与仿真Word格式文档下载.docx

2.2硬件详细设计8

2.2.1硬件整体方案设计8

2.2.2详细电路设计9

3程序的设计与实现13

3.1FPGA设计与仿真工具13

3.1.1FPGA结构13

3.1.2FPGA设计流程14

3.1.3QuartusII介绍15

3.1.4硬件描述语言VHDL简介16

3.2时钟管理模块的设计与实现16

3.3数据采集控制模块的设计与实现17

3.3.1状态机介绍18

3.3.2AD9288时序控制的设计与仿真18

3.3.3AD7278时序控制的设计与仿真20

3.4数据缓存模块的设计与实现23

3.4.1FIFO介绍23

3.4.2FIFO的实现与仿真24

3.5总体电路图25

3.5.1并行AD控制电路25

3.5.2串行AD控制电路26

结论27

参考文献28

致谢29

(xxxxxx电气化及其自动化,甘肃兰州,730070)

摘要:

本文介绍了以FPGA为核心逻辑控制模块的高速数据采集系统。

通过高性能的FPGA芯片与高速ADC相结合来实现高速采集数据的目的。

文中详细的介绍了并行接口和串行接口的AD芯片、FPGA芯片的选型,硬件电路设计及其硬件电路设计工具、FPGA程序设计所使用的工具和语言。

接着介绍了FPGA内部各模块设计,其中分别介绍了FPGA芯片、时钟管理模块的设计与仿真、采集控制模块与缓冲模块的设计过程并给出了仿真波形。

关键词:

FPGA数据采集VHDL语言

DesignandSimulationofhigh-speeddataacquisitionsystembasedonFPGA

Xxxxxx

(MajorinAgriculturalElectrificationandxxxxxUniversity,GansuLanzhou,730070)

Abstract:

ThispaperintroducesahighspeeddataacquisitionsystemisthecorelogiccontrolmodulebasedonFPGA.ThroughtheFPGAchipwithhighperformanceandspeedADCtorealizethecombinationofhighspeeddataacquisitionobjective.ThispaperdescribesindetailtheselectionofADchip,parallelinterfaceandserialinterfaceoftheFPGAchip,toolandtoolforthedesignofFPGAprogramlanguage,usedinthedesignofhardwarecircuitdesignandhardwarecircuit.AndthenintroducesthedesignofeachmoduleinFPGA,whichwereintroducedbyFPGAchip,theclockmanagementmoduledesignandsimulation,acquisitioncontrolmoduleandbuffermoduledesignprocessandgivesthesimulationwaveforms.

Keywords:

FPGAdataacquisitioninVHDLlanguage

前言

在工业生产和科学技术研究的各行业中,常常需要对各种数据进行采集,如液位、温度、压力、频率等信息的采集。

在图像处理、瞬态信号检测、软件无线电等一些领域,更是要求高速度、高精度、高实时性的数据采集技术[1]。

数据采集系统的任务,就是将采集传感器输出的模拟信号进行处理并转换成计算机能识别的数字信号,由计算机进行相应的计算和处理来满足不同的需要,得出所需的数据。

数据采集系统性能的好坏,是由它的精度和速度来决定的。

在保证精度的前提下,应当用尽可能高的采样速度,这样才能满足实时采集、实时处理和实时控制对速度的要求[2]。

在传统的数据采集系统中,A/D的控制和数据的转存均是通过CPU或者MCU来完成。

在这种方式下,将A/D转换的结果读入,然后再转存到片外的存储器中这一过程至少需要4个机器周期。

即使对于ARM芯核的单片机(CPU采用流水线结构一个机器周期占一个CLK),使用33MHz的晶振,它的最高转存数据速度也只达到8Mbyte/s。

在高速数据采集系统中,这种方式一方面占用太多CPU资源,另外也远远不能满足高速采集的速度要求[3]。

在许多应用场合,如雷达、声纳、图像处理、语音识别、地质勘探、光时间域反射测量等,特别是在实时性要求比较高的情况下,往往都需要高速或超高速(UltraHighSpeed)数据采集系统。

比如相较于供电传输线上高达几千伏的电压变化,浪涌电流的持续时间仅仅是数百纳秒,因此数据采集系统必须具有极高的通过速率才能准确的探测浪涌电流的变化过程;

又如在航空航天领域中,无论是航天器颤振和抖振特性测试,还是运载火箭喷气流量动态测试,抑或高空拍摄图像传输等均要求使用高速采集技术来加以实现;

此外,高速数据采集技术在等离子体诊断,生物光谱与激光化学等其它各类科学研究中同样有很广泛的应用[4]。

FPGA(现场可编程门阵列)凭借其在数据采集控制方面的高性能和便于系统集成、易扩展等优势逐渐受到广泛应用。

高性能的FPGA和高速的A/D应用于数据采集系统中,不仅可以大大提高系统的测量精度、数据采集处理速度、数据传输速度等[5],还可以产生巨大的经济效益,因此,对其做进一步研究具有十分重要的现实意义。

1系统总体方案设计

1.1需求分析

数据采集系统——DAS(DataAcquisitionSystem)是模拟量与数字量之间的转换接口。

它在自动测试、生产控制、通信、信号处理等领域占有极其重要的地位。

而高速数据采集系统更是航天、雷达、制导、测控、动态检测等高技术领域的关键技术。

高速数据采集系统中的采样频率一般在几十MHz到几百MHz,而微机系统由于操作速度的限制,不能够直接参与数据传输。

为了实现高速数据的采集,本文设计一个高速数据采集系统,该系统的主要功能包括A/D转换、提供数据接口、能够独立控制AD工作。

首先,为了实现A/D转换,系统中需要采用高速的AD,完成数据的高速采样与转换。

其次,为了实现从数据采集到数据输出的高速运行,需要具有能够控制ADC工作的模块,根据ADC的工作时序控制AD的运行。

最后,为了提供系统与其他系统之间的数据接口,需要数据缓存模块,当模拟信号经高速AD数字化后,先直接送缓存区暂存,然后再将数据送至其他系统进行相关的处理、运算。

此外,为了保证整个系统的正常工作,还需要为该系统设计时钟管理模块,为系统各部分提供正常工作的时钟。

1.2系统实现方案

系统总体框图如图1.1所示。

首先对模拟信号进行信号调理,将电信号调整到ADC的输入范围内,然后对信号进行A/D转换。

FPGA将采样得到的数据送到缓存,存放至缓存中的数据通过数据接口送至MCU。

系统的所有时钟由FPGA统一产生,系统的采样、转换与缓存也由FPGA统一协调控制。

系统主要包括三个部分:

时钟管理模块、数据采集控制模块和数据缓冲模块。

其中时钟管理模块由分频程序实现,为系统各个模块提供正常工作所需的时钟;

数据采集控制模块通过控制A/D转换器的时序控制AD的工作;

数据缓冲模块通过FPGA内部的FIFO来完成。

图1.1系统总体方案

系统工作过程为:

模拟信号先经过由模数转换器将模拟信号转化为数字信号后送入FPGA,FPGA再将数据写入FIFO存储芯片,FPGA对FIFO发出读命令后,FPGA可以将数据从FIFO中读取之后送到读数接口,后续的MCU即可获取所采集的数据。

下面主要对数据缓存部分进行讨论与研究。

数据缓存在很多情况下用来协调吞吐速率不一致的设备之间的数据传送,CPU中的缓存也起着减少读取时间,加快读取速度的作用。

在本设计中,数据缓存器主要是用来解决输入输出速率不一致的问题。

可以用来实现缓存的数据存储载体有很多,比如DRAM(动态随机存储器)、SRAM(动态随机存储器)、SDRAM(步动态随机存储器)、DDRSDRAM(倍速率同步动态随机存储器)、FIFO(先进先出存储器)以及DPRAM(双端口随机存储器)和SPRAM(单端口随机存储器)等。

各种存储器各有其特点及适用范围。

比如FIFO一般可用作不同时钟域的数据传输。

与普通存储器相比,FIFO遵循着先进先出的读写规律,没有外部读写地址,简化了使用方式。

但缺点在于只能顺序写入或读出数据,数据地址由内部指针自动加1,不能像普通存储器一般通过地址线决定当前操作地址。

DDRSDRAM具有速度快、成本低,容量大的优点。

与SDRAM相比,其采用了更先进的同步电路,使得地址、数据的输入输出既保持独立,又能与CPU同步。

但是它的控制比较复杂,时序要求非常苛刻,需要严格的逻辑与时序来对其进行控制。

考虑到充分利用FPGA内部的丰富资源,本设计选用由FPGA内置IP核产生的FIFO来实现数据缓存,同时也不用再选取单独的数据缓存芯片,提高了资源利用率,简化了硬件结构。

1.3系统各模块芯片选型

1.3.1模数转换芯片选型

常用的高速AD一般有两种接口,即并行接口与串行接口。

在本设计中,为了更全面地研究高速数据采集技术,分别选择并行接口和串行接口的AD各一种。

综合采样率、通道数、数据宽度、功耗以及价格等因素,最终决定选择AD9288和AD7278。

1.3.1.1AD9288简介[6]

AD9288是8bit双通道并行模/数转换器,具有低功耗、体积小、动态特性好、性价比高的特点。

其性能如下:

1)双通道8bits、最高采样速率达100MSPS;

2)低功耗:

每个通道90mw(工作在100MHz时);

3)带宽高:

每个通道475MHz的模拟带宽;

4)较高的信噪比:

SNR=47DB(在41MHz时);

5)每个通道的模拟输入范围:

峰峰电压值为1V;

6)输出方式可编码:

补码形式或偏移码形式;

7)电平兼容TTL/CMOS;

8)模拟输入峰峰电压为:

1.024Vp-p,AD9288片内提供准确的参考电压为1.25伏;

也可以选用外部提供的参考电压。

AD9288内部逻辑结构及外部引脚分别如图1.2、1.3所示,AD9288由两个跟踪/保持放大器,两个A/D变换器,一个逻辑控制器,两个时钟模块,一个内部参考电压模块和两个数据输出模块组成。

图1.2AD9288内部逻辑结构图图1.3AD9288外部引脚图

1.3.1.2AD7278简介[7]

AD7278是一款8位高速、低功耗的逐次逼近型ADC。

工作电压为:

2.35V至3.6V单电源,最高吞吐量可达3MSPS。

内部包含一个低噪声、宽带宽采样/保持放大器,可处理30MHz以上的输入频率。

1)高吞吐量:

3MSPS;

2)额定电压(VDD):

2.35V至3.6V;

3)低功耗:

13.5mW(3MSPS,3V电源);

4)宽输入带宽:

70dB信噪比(1kHz输入频率);

5)灵活的功耗/串行时钟速度管理;

6)无流水线延迟;

7)高速串行接口;

8)SPI/QSPI/MICROWIRE/DSP兼容;

9)省电模式:

最大1μA。

AD7278内部逻辑结构及外部引脚分别如图1.4、1.5所示,AD7278由一个跟踪/保持放大器,一个A/D变换器,一个逻辑控制器组成。

图1.4AD7278内部逻辑结构图1.5AD7278外部引脚图

1.3.2FPGA芯片选型

本设计使用FPGA来提供采样时钟、实现数据采集控制与缓存以及对全局时钟的控制,因此是最为关键的中央处理芯片。

目前FPGA的产品Altera公司和Xilinx公司的产品系列为主。

其中Altera的主流FPGA分为两大类,一种侧重低成本应用,容量中等,性能可以满足一般的逻辑设计要求,如Cyclone,CycloneII;

还有一种侧重于高性能应用,容量大,性能满足各类高端应用,如Startix,StratixII等。

本设计在综合了接口数量及内部LE数量及实际价格等因素后,最终选择Altera公司Cyclone系列的EP1C6Q240C8芯片,该芯片主要特性为:

1)采用240引脚、贴片封装;

2)拥有6030个LE;

3)26个M4K片上RAM(共计239616bits);

4)2个高性能PLL;

5)多达185个用户自定义IO。

1.4系统的采集速度与FIFO的存储容量

1.4.1系统的采集速度

数据采集系统所使用的计算机会极大地影响数据采集的速度,计算机的数据传送能力也会极大地影响数据采集系统的性能。

数据传送方式会影响数据采集设备的数据吞吐量。

限制采集大量数据的因素常常是硬盘,磁盘的访问时间和硬盘的分区会极大地降低数据采集和存储到硬盘的最大速率。

对于要求采集高频信号的系统,就需要为PC选择高速硬盘,从而保证有连续(非分区)的硬盘空间来保存数据。

此外,要用专门的硬盘进行采集并且在把数据存储到磁盘时使用另一个独立的磁盘运行操作系统。

本课题所选芯片AD9288最高采样速率达100MSPS;

AD7278最高高吞吐量3MSPS,他们会较大的影响到系统的采集速度。

由于本人能力有限,对于整个系统的采集速度不做更多的研究。

1.4.2FIFO存储容量

FIFO的存储量即FIFO的深度,它指的是FIFO可以存储多少个N位的数据(如果宽度为N)。

如一个8位的FIFO,若深度为8,它可以存储8个8位的数据,深度为12,就可以存储12个8位的数据,FIFO的深度可大可小。

在FIFO实际工作中,其数据的满/空标志可以控制数据的继续写入或读出。

在一个具体的应用中也不可能由一些参数算数精确的所需FIFO深度为多少,这在写速度大于读速度的理想状态下是可行的,但在实际中用到的FIFO深度往往要大于计算值。

一般来说根据电路的具体情况,在兼顾系统性能和FIFO成本的情况下估算一个大概的宽度和深度就可以了。

而对于写速度慢于读速度的应用,FIFO的深度要根据读出的数据结构和读出数据的由那些具体的要求来确定。

2硬件电路设计

2.1硬件电路设计工具介绍

Protel是Altium公司在80年代末推出的EDA软件,在电子行业的CAD软件中,排在众多EDA软件的前面,是电子设计者的首选软件,较早就在国内开始使用,在国内的普及率最高。

早期的Protel主要作为印制板自动布线工具使用,运行在DOS环境,对硬件的要求很低,在无硬盘286机的1M内存下就能运行,但功能也较少,只有电路原理图绘制与印制板设计功能,其印制板自动布线的布通率也低,而现今的Protel已发展到DXP2004,完全安装有200多兆,工作在WINDOWS95环境下,具有完整的板级全方位电子设计系统,包含了电路原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有Client/Server(客户/服务器)体系结构,同时还兼容一些其它设计软件的文件格式,如ORCAD,PSPICE,EXCEL等,其多层印制线路板的自动布线可实现高密度PCB的100%布通率。

2.2硬件详细设计

2.2.1硬件整体方案设计

图2.1为硬件设计总体方案框图,硬件设计主要包括电源电路、下载配置电路、外部时钟电路、接口电路及AD9288与AD7278的外围电路。

图2.1硬件设计总体结构

2.2.2详细电路设计

1)电源电路

本系统外部电源采用5V输出开关电源。

系统中,FPGA的IO的电源电压是3.3V,内核的电压是1.5V,AD9288及AD7278的供电电压均可设为3.3V。

利用SMV1117电源芯片分别将5V转到3.3V,将3.3V转到1.5V,再利用电容与电感电路由1.5V产生FPGA内部PLL所需电压,加上一些旁路电容,即可满足电压需求。

具体电路如图2.1所示:

图2.1电源及滤波电路

2)下载配置电路

FPGA通过JTAG下载代码到片子里运行,代码存放在RAM里,断电后代码即消失。

因此,FPGA需要非易失性存储器用来存放代码,每次上电后把代码从配置芯片读至FPGA然后运行。

选用ALTERA公司配套的AS模式的配置存储器EPCS1,成本比较低,并且很容易配置,具体电路如图2.2所示:

图2.2下载配置电路

3)外部时钟电路

FPGA内部模块工作时需要一个时钟基准,因此需要一个外部晶振,频率为100MHz,具体电路如图2.3所示:

图2.3外部时钟电路

4)接口电路

为了将FPGA内部缓存的数据读出,并能够读出FPGA内部FIFO的空满状态,需要设计接口电路将这些信号输出,同时为了给AD9288和AD7278接入模拟输入信号,需要用接口将信号引入。

具体电路如图2.4所示:

图2.4接口电路

5)AD9288外围电路

AD9288供电电压范围为2.7~3.6V,本设计用FPGA外围电路产生的3.3V电压供电,模拟电源VD和数字电源VDD,分开供电。

为了保证电源质量,在各自的电源引脚与地之间加入了0.1μF的去耦电容。

AD9288提供了两种信号输入方式,分别是单端输入与差分输入,其中差分输入方式可以减少信号噪声以及电磁的干扰,单端输入模式的性能会有所下降,但考虑到本设计属于低成本的应用,单端输入可保证较好的性能,因此选择单端输入方式,为了保护输入信号,通过50Ω的电阻接地,并串联0.1μF的电容。

引脚S1、S2可以用来选择多种操作模式,在使用中,常令S1=1,S2=0,两个通道采集相互独立。

AD9288内部有一个稳定精确的1.25V电压参考,通过将REFINA和REFINB接REFOUT实现内部电压参考。

本设计因为是单通道采集系统,所以只用通道A采样数据,输入电压信号范围为-0.5V~+0.5V。

图2.5AD9288的外围电路

6)AD7278外围电路

AD7278供电电压范围为2.35~3.6V,本设计用FPGA外围电路产生的3.3V电压供电。

为了保证电源质量,在电源引脚与地之间并联了0.1μF和680nF的去耦电容。

AD7278只有单端模拟输入方式,信号通过VIN从外部接口输入,输入电压范围为0~VDD(即3.3V)。

SCLK为通道时钟输入引脚,设为50MHz,由FPGA内部逻辑提供。

SDATA与数据采集控制模块的输入相连接,由FPGA控制其进行串并转换之后并写入FIFO。

图2.6AD7278外围电路

7)硬件电路整体图

图2.7为硬件电路整体框图,将以上各部分电路综合布局,置于一张电路图中,合理布局之后,生成硬件电路。

图2.7硬件电路

3程序的设计与实现

在上一章设计的硬件电路的基础上,本章将进行FPGA内部程序的具体设计。

在本系统中,FPGA是控制整个系统工作的核心,首先在其内部实现各模块的设计与仿真,然后设计出顶层电路原理图。

其中数据采集控制模块负责对A/D转换进行时序控制,实现AD转换的正常工作。

FPGA利用时钟管理模块产生时钟用以作为采样时钟,采样数据被送至FIFO进行缓存处理。

3.1FPGA设计与仿真工具

3.1.1FPGA结构

FPGA具有可编程性,可以对其反复烧写,因此采取的是一种支持反复配置的结构而不可能像传统的ASIC一样通过与非门来完成。

当前的主流FPGA采用了基于SRAM的查找表结构,还有一些军用与宇航领域的FPGA使用Flash或者熔丝与反熔丝工艺的查找表结构口。

FPGA通过对文件烧写来配置查找表的内容,使得在同样的电路下实现不同的逻辑功能。

图3.1FPGA的结构原理

图3.1是FPGA的基本结构组成。

在FPGA内部最重要的组成部分是可编程输入输出单元、可编程逻辑单元和嵌入式块RAM。

输入输出单元分布在FPGA四周,是芯片与外界电路的接口,可以配置不同电气特性的接口标准如SSTL、HSTL、LVDS和PCI等;

可编程逻辑单元通常都是由查找表(LUT)和寄存器(Register)构成。

FPGA含有数量巨大的基本可编程逻辑单元。

它们是可编程逻辑的主体,通过其内部配置的改变可以实现多种不同的逻辑功能;

嵌入式块RAM即通过FPG内部嵌入可编程BlockRAM,极大的扩展了FPGA的应用范围。

一般说来,不同器件厂商或者不同器件族的内嵌BlockRAM结构有所不同,但基本都可以灵活配置成各种常用存储结构比如单口RAM、双口RAM、伪双口RAM、CAM以及FIFO等。

除了以上模块,FPGA还可能包括了如DSP、高速串行收发器等其它模块口。

具体选择时要综合考虑设计需求、成本与规模、速度、封装还有所需要的专用功能模块等因素[8]。

3.1.2FPGA设计流程

FPGA产品发展到现在,已经有完整的开发系统与设计流程。

通常说来,比较完整的FPGA设计流程主要包括设计输入、功能仿真、综合、功能仿真(综合后仿真)、布局布线、时序仿真(后仿真)和调试几个部分。

流程图如图3.2所示:

图3.2FPGA的设计流程

FPGA的设计输入主要有硬件描述语言HDL、状态图和原理图三种输入方式。

原理图设计输入法在早期比较常见,但在现在的大型设计中它的可维护性较差。

由于硬件描述在可移植性和规范性上面的优势,现在的大多数设计采用了HDL开发平台,其中应用最广泛的语言是VHDL和VerilogHDL[9]。

3.1.3QuartusII介绍

QuartusII是Altera公司推出的目前应用非常广泛的一款EDA开发系统。

它是一个完整的多平台设计环境。

它可以轻松满足特定设计的需要,并且提供可编程片上系统(SOPC)设计的综合开发平台,是SOPC设计的基础。

QuartusII将设计、综合、布局、仿真验证、和编程下载以及第三方EDA工具集成在一个无缝的环境中,可以进行系统级设计、嵌入式系统级设计和可编程逻辑器件设计。

QuartusII开发工具提供了完全集成,且与电路结构无关的数字逻辑设计环境,以及SOPC设计的嵌入式系统开发

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

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2