基于FPGA的高速数据采集技术毕设论文.docx
- 文档编号:3256932
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:43
- 大小:1.41MB
基于FPGA的高速数据采集技术毕设论文.docx
《基于FPGA的高速数据采集技术毕设论文.docx》由会员分享,可在线阅读,更多相关《基于FPGA的高速数据采集技术毕设论文.docx(43页珍藏版)》请在冰点文库上搜索。
基于FPGA的高速数据采集技术毕设论文
毕业设计说明书(论文)中文摘要
随着计算机技术的突飞猛进以及移动通讯技术在日常生活中的不断深入,数据采集不断地向高速、智能化的方向发展。
本文针对此需求,实现了一种基于FPGA的高速数据采集系统。
该系统利用AD器件对信号进行模数转换,利用FPGA设计内部模块进行ADC的逻辑控制并实现数据缓存功能。
本文首先介绍了高速数据采集技术的国内外发展现状,确定了系统总体方案,完成了FPGA与A/D的芯片选型;利用Protel完成了硬件电路原理图的设计,并使用QuartusII完成了FPGA内部模块的设计,实现了时钟管理模块、数据采集控制模块和数据缓存模块。
最后在RedCyclone开发板上完成了FPGA程序的下载测试,验证了程序的正确性。
关键词FPGA高速数据采集A/D模数转换
毕业设计说明书(论文)外文摘要
TitleFPGABasedHigh-speed
DataAcquisitionTechnology
Abstract
Alongwiththedevelopmentofcomputertechnologybyleapsandboundsandmobilecommunicationstechnologyhasadvancedindailylife,dataacquisitiondevelopstohighspeed,intelligentcontinually.Accordingtotheneeds,thispaperdesignedahigh-speeddataacquisitionsystembasedonFPGA.ThesystemusedADdevicetorealizeA/Dconversion,usedFPGAtodesigninternalmodulesofADClogiccontrolandrealizedcircuitcontroldatacachefunction.
Thispaperfirstlyintroducedthedevelopmentofhigh-speeddataacquisitiontechnologyathomeandabroad,determinedthesystemoverallprogram,completedtheFPGAandADchipselection,finishedthedesignofthehardwarecircuitprinciplebyusingProtel,completedthedesignofFPGAinternalmodulebyusingQuartusII,realizedclockmanagementmodule,dataacquisitioncontrolmoduleanddatacachemodule.FinallyfinishedtheFPGAprogramdownloadtestontheRedCyclonedevelopmentboardtoverifythecorrectnessoftheprogram.
KeywordsFPGAHigh-speedDataacquisitionADconverter
目次
1绪论1
1.1课题背景1
1.2高速数据采集的现状2
1.3课题研究任务及论文结构3
2系统总体设计方案4
2.1需求分析4
2.2系统实现方案4
2.3系统各模块芯片选型6
2.4本章小结8
3硬件电路设计9
3.1硬件电路设计工具介绍9
3.2硬件详细设计9
3.3本章小结14
4程序的设计与实现15
4.1FPGA设计与仿真工具15
4.2时钟管理模块的设计与实现18
4.4数据缓存模块的设计与实现25
4.5总体电路图27
4.6本章小结29
5FPGA下载测试30
5.1FPGA下载简介30
5.2测试结果与分析31
5.3本章小结36
结论37
致谢38
参考文献39
1绪论
1.1课题背景
在工业生产和科学技术研究的各行业中,常常需要对各种数据进行采集,如液位、温度、压力、频率等信息的采集。
在图像处理、瞬态信号检测、软件无线电等一些领域,更是要求高速度、高精度、高实时性的数据采集技术[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.2高速数据采集的现状
数据采集系统的控制芯片在不停发展和进步,从原来的单一的单片机发展到数字处理芯片DSP,嵌入式漆片等更高速、高性能的芯片。
在传统的数据采集系统中,我们通常采用单片机或DSP(数字信号处理器),控制ADC(模数转换器)、存储器以及其他一些外围电路的工作。
但这样的系统存在如下不足[6][7]:
1)单片机的时钟频率较低,需要软件支持来实现其功能,软件的运行时间在整个采样时间中占据很大的比例,效率很低,很难适应高速、高精度数据的采集系统的要求。
2)DSP可以通过软件编程来实现其功能,虽然运算速度快而且擅长处理密集的乘加运算,但是受到DSP本身的性能及程序指令顺序执行的限制,它很难完成对外围的复杂硬件进行逻辑控制。
这些不足远远满足不了高速数据采集技术的要求,而FPGA的出现则大大弥补了以上不足,FPGA有单片机和DSP无法比拟的优势。
FPGA的时钟频率很高,内部时延非常小;全部的控制逻辑都可由硬件完成,速度快,效率高,非常适于大数据量的高速传输控制;而且FPGA的组成形式灵活,可以集成外围控制、译码和接口等各种电路。
通过编程,用户可立刻把一个通用FPGA芯片配置成需要的硬件数字电路,其内部丰富的布线资源给修改、测试和系统升级提供了极大的方便。
目前主流的FPGA内部一般都嵌有可配置的高速RAM,PLL,LVDS,LVTTL以及硬件乘法累加器等功能模块,可以很好的解决并行和速度问题。
FPGA的各种优势都决定了它在高速数据采集技术领域内的重要地位,开发更高性能的FPGA芯片结合更高速的AD成为目前高速数据采集研究的热点,未来高速数据采集系统的发展趋势为:
1)新型快速、高分辨率的数据转换部件不断涌现,大大提高了数据采集系统的性能。
2)高性能单片机的问世和各种数字信号处理器的涌现,进一步推动了数据采集系统的广泛应用。
3)智能化传感器(Smartsnor)的发展,必将对今后数据采集系统的发展产生深远的影响。
4)与微型机配套的数据采集部件的大量问世,大大方便了数据采集系统在各个领域里应用并有利于促进数据采集系统技术的进一步发展。
5)分布式数据采集是数据采集系统发展的一个重要趋势[8]。
综合看来,未来高速数据采集技术将依然是科学研究的热点,会有更高速的硬件更新,加上不断创新的软件开发,数据采集技术一定会在采集速率与采集通道数方面都会不断地突破。
1.3课题研究任务及论文结构
本课题研究了基于FPGA为核心,串行和并行AD的高速数据采集技术,设计了硬件电路图,完成了FPGA内部时钟管理模块、数据采集控制模块程序的编写,最后进行了FPGA的下载测试。
本文具体内容安排如下:
第一章主要介绍了课题背景、高速数据采集的发展现状,同时对本文主要研究工作进行了说明。
第二章确定了系统总体及各子模块实现方案,画出总体框图与工作过程,并对各模块中涉及到的关键芯片进行选型。
第三章主要介绍硬件电路设计。
介绍了硬件电路设计工具,给出了硬件电路的详细设计。
第四章主要介绍了FPGA内部各模块设计。
首先对系统的核心芯片FPGA进行了简单介绍,然后给出了时钟管理模块的设计与仿真,最后详述了采集控制模块与缓冲模块的设计过程并给出了仿真波形。
第五章是对程序的下载测试。
首先介绍了FPGA下载测试的相关知识,然后给出了本课题中所测试的结果,最后对测试结果进行分析。
2系统总体设计方案
2.1需求分析
数据采集系统——DAS(DataAcquisitionSystem)是模拟量与数字量之间的转换接口。
它在自动测试、生产控制、通信、信号处理等领域占有极其重要的地位。
而高速数据采集系统更是航天、雷达、制导、测控、动态检测等高技术领域的关键技术。
高速数据采集系统中的采样频率一般在几十MHz到几百MHz,而微机系统由于操作速度的限制,不能够直接参与数据传输。
为了实现高速数据的采集,本文设计一个高速数据采集系统,该系统的主要功能包括A/D转换、提供数据接口、能够独立控制AD工作。
首先,为了实现A/D转换,系统中需要采用高速的AD,完成数据的高速采样与转换。
其次,为了实现从数据采集到数据输出的高速运行,需要具有能够控制ADC工作的模块,根据ADC的工作时序控制AD的运行。
最后,为了提供系统与其他系统之间的数据接口,需要数据缓存模块,当模拟信号经高速AD数字化后,先直接送缓存区暂存,然后再将数据送至其他系统进行相关的处理、运算。
此外,为了保证整个系统的正常工作,还需要为该系统设计时钟管理模块,为系统各部分提供正常工作的时钟。
2.2系统实现方案
系统总体框图如图2.1所示。
首先对模拟信号进行信号调理,将电信号调整到ADC的输入范围内,然后对信号进行A/D转换。
FPGA将采样得到的数据送到缓存,存放至缓存中的数据通过数据接口送至MCU。
系统的所有时钟由FPGA统一产生,系统的采样、转换与缓存也由FPGA统一协调控制。
系统主要包括三个部分:
时钟管理模块、数据采集控制模块和数据缓冲模块。
其中时钟管理模块由分频程序实现,为系统各个模块提供正常工作所需的时钟;数据采集控制模块通过控制A/D转换器的时序控制AD的工作;数据缓冲模块通过FPGA内部的FIFO来完成。
图2.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来实现数据缓存,同时也不用再选取单独的数据缓存芯片,提高了资源利用率,简化了硬件结构。
2.3系统各模块芯片选型
2.3.1模数转换芯片选型
常用的高速AD一般有两种接口,即并行接口与串行接口。
在本设计中,为了更全面地研究高速数据采集技术,分别选择并行接口和串行接口的AD各一种。
综合采样率、通道数、数据宽度、功耗以及价格等因素,最终决定选择AD9288和AD7278。
2.3.1.1AD9288简介[9]
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内部逻辑结构及外部引脚分别如图2.2、2.3所示,AD9288由两个跟踪/保持放大器,两个A/D变换器,一个逻辑控制器,两个时钟模块,一个内部参考电压模块和两个数据输出模块组成。
图2.2AD9288内部逻辑结构图图2.3AD9288外部引脚图
2.3.1.2AD7278简介[10]
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内部逻辑结构及外部引脚分别如图2.4、2.5所示,AD7278由一个跟踪/保持放大器,一个A/D变换器,一个逻辑控制器组成。
图2.4AD7278内部逻辑结构图2.5AD7278外部引脚图
2.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。
2.4本章小结
本章首先对设计进行了需求分析,结合成本与性能指标等实际情况决定了总体设计方案,给出了系统总体框图,并且结合框图说明了系统的工作过程。
然后对系统的实现方法做了相应的比较,选定了数据缓存模块的设计方案,接着对各模块中所使用的关键芯片进行了选择与介绍。
3硬件电路设计
3.1硬件电路设计工具介绍
Protel是Altium公司在80年代末推出的EDA软件,在电子行业的CAD软件中,排在众多EDA软件的前面,是电子设计者的首选软件,较早就在国内开始使用,在国内的普及率最高。
早期的Protel主要作为印制板自动布线工具使用,运行在DOS环境,对硬件的要求很低,在无硬盘286机的1M内存下就能运行,但功能也较少,只有电路原理图绘制与印制板设计功能,其印制板自动布线的布通率也低,而现今的Protel已发展到DXP2004,完全安装有200多兆,工作在WINDOWS95环境下,具有完整的板级全方位电子设计系统,包含了电路原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有Client/Server(客户/服务器)体系结构,同时还兼容一些其它设计软件的文件格式,如ORCAD,PSPICE,EXCEL等,其多层印制线路板的自动布线可实现高密度PCB的100%布通率。
3.2硬件详细设计
3.2.1硬件整体方案设计
图3.1为硬件设计总体方案框图,硬件设计主要包括电源电路、下载配置电路、外部时钟电路、接口电路及AD9288与AD7278的外围电路。
图3.1硬件设计总体结构
3.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所需电压,加上一些旁路电容,即可满足电压需求。
具体电路如图3.1所示:
图3.1电源及滤波电路
2)下载配置电路
FPGA通过JTAG下载代码到片子里运行,代码存放在RAM里,断电后代码即消失。
因此,FPGA需要非易失性存储器用来存放代码,每次上电后把代码从配置芯片读至FPGA然后运行。
选用ALTERA公司配套的AS模式的配置存储器EPCS1,成本比较低,并且很容易配置,具体电路如图3.2所示:
图3.2下载配置电路
3)外部时钟电路
FPGA内部模块工作时需要一个时钟基准,因此需要一个外部晶振,频率为100MHz,具体电路如图3.3所示:
图3.3外部时钟电路
4)接口电路
为了将FPGA内部缓存的数据读出,并能够读出FPGA内部FIFO的空满状态,需要设计接口电路将这些信号输出,同时为了给AD9288和AD7278接入模拟输入信号,需要用接口将信号引入。
具体电路如图3.4所示:
图3.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。
图3.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。
图3.6AD7278外围电路
7)硬件电路整体图
图3.7为硬件电路整体框图,将以上各部分电路综合布局,置于一张电路图中,合理布局之后,生成硬件电路。
图3.7硬件电路
3.3本章小结
本章主要介绍了本次设计的硬件设计,首先介绍了硬件电路设计工具Protel,然后给出硬件电路设计总体方案,详细设计FPGA及AD的外围电路,最后给出硬件整体电路图。
4程序的设计与实现
在上一章设计的硬件电路的基础上,本章将进行FPGA内部程序的具体设计。
在本系统中,FPGA是控制整个系统工作的核心,首先在其内部实现各模块的设计与仿真,然后设计出顶层电路原理图。
其中数据采集控制模块负责对A/D转换进行时序控制,实现AD转换的正常工作。
FPGA利用时钟管理模块产生时钟用以作为采样时钟,采样数据被送至FIFO进行缓存处理。
4.1FPGA设计与仿真工具
4.1.1FPGA结构
FPGA具有可编程性,可以对其反复烧写,因此采取的是一种支持反复配置的结构而不可能像传统的ASIC一样通过与非门来完成。
当前的主流FPGA采用了基于SRAM的查找表结构,还有一些军用与宇航领域的FPGA使用Flash或者熔丝与反熔丝工艺的查找表结构口。
FPGA通过对文件烧写来配置查找表的内容,使得在同样的电路下实现不同的逻辑功能。
图4.1FPGA的结构原理
图4.1是FPGA的基本结构组成。
在FPGA内部最重要的组成部分是可编程输入输出单元、可编程逻辑单元和嵌入式块RAM。
输入输出单元分布在FPGA四周,是芯片与外界电路的接口,可以配置不同电气特性的接口标准如SSTL、HS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 高速 数据 采集 技术 论文