基于FPGA的ADC采集系统的设计.docx
《基于FPGA的ADC采集系统的设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的ADC采集系统的设计.docx(46页珍藏版)》请在冰点文库上搜索。
基于FPGA的ADC采集系统的设计
摘要
基于FPGA在高速数据采集方面有单片机和DSP无法比拟的优势,FPGA具有时钟频率高,内部延时小,全部控制逻辑由硬件完成,速度快,效率高,组成形式灵活等特点。
因此,本文研究并开发了一个基于FPGA的数据采集系统。
FPGA的IO口可以自由定义,没有固定总线限制更加灵活变通。
本文中所提出的数据采集系统设计方案,就是利用FPGA作为整个数据采集系统的核心来对系统时序和各逻辑模块进行控制。
依靠FPGA强大的功能基础,以FPGA作为桥梁合理的连接了ADC、显示器件以及其他外围电路,最终实现了课题的要求,达到了数据采集的目的。
关键词FPGAA/D转换
Abstract
FPGAisbetterthanmicrocontrollerandDSPinhighspeeddataacquisition,FPGAhashigherinternalclockfrequency,smallerdelaythanDSP,andallthecontrollogicofFPGAiscompletedbyhardware,FPGAhasfastspeed,highefficiency,andsoon.Therefore,thispaperintroducesanddevelopsadataacquisitionsystemwhichisbasedonFPGA.TheI/OpinofFPGAcanbedefinedyourselfwithoutfixedlimit,it’sveryflexible.ThisdesignofdataacquisitionsystemuseFPGAasthedataacquisitionsystemcoretocontrolthetimingandthelogiccontrolmodule.RelyingonthepowerfulfunctionofFPGA,FPGAcanconnectADC,displaydevicesandotherperipheralcircuits,finallywecanachievetherequirementsofthesubject,andthepurposeofthedatacollection。
KeywordsFPGAA/D
基于FPGA的ADC采集系统的设计
第1章绪论
1.1课题背景及国内外研究概况
传统的数据采集系统,通常采用单片机或DSP作为主要控制模块,控制ADC,存储器和其他外围电路的工作。
随着数据采集对速度性能的要求越来越高,传统采集系统的弊端就越来越明显。
单片机的时钟频率较低且需用软件实现数据采集,这使得采集速度和效率降低,此外软件运行时间在整个采样时间中也占很大比例,而FPGA有单片机无法比拟的优势。
FPGA时钟频率高内部时延小,全部控制逻辑由硬件完成,速度快,效率高[1]。
数字信号处理是以数字形式对信号进行采集,变换,滤波估值,增强,压缩,识别等处理,从而得到符合需要的信号形式。
而信号的处理目前有两种方式:
使用信号处理器DSP通过软件编程实现;应用FPGA实现。
利用软件编程虽然有很大的灵活性,但DSP所有指令的执行时间均为单周期,而且受到串行指令流的限制每个时钟周期所有的操作数有限难以实现高速大规模运算。
现在大容量,高速度的FPGA采用硬件描述语言VHDL实现整个系统,允许设计人员利用并行处理技术实现高速信号处理算法并只需单个处理器就能通过模块化设计实现所期望的性能,很好的解决了上述矛盾。
趋势:
随着便携式设备需求的增长,对FPGA的低压,低功耗的要求日益迫切,芯片向大规模系统芯片靠近,力求在大规模应用中取代ASIC,位增强市场竞争力,各大厂商都在积极推广其知识产权和核心库,动态课重构技术的发展将带来系统设计方法的转变[2]。
A/D转换器是用来通过一定的电路将模拟量转变为数字量。
模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。
但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各种物理量转换成电压信号。
A/D转换器的工作原理:
逐次逼近法,双积分法,电压频率转换法。
A/D转换四步骤:
采样、保持、量化、编码。
1.2现场可编程门阵列FPGA
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。
一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。
FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
FPGA有如下特点:
1.采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
2.FPGA可做其它全定制或半定制ASIC电路的中试样片。
3.FPGA内部有丰富的触发器和I/O引脚。
4.FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5.FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活,非常适用于数据采集方向的应用。
1.3课题的建立以及本文完成的主要工作
本文主要包括以下内容:
1完成ADC采集系统的硬件搭建和仿真工作;
2.使用Verilog语言编写硬件电路接口驱动,完成VerilogHDL程序的仿真工作;
3.完成项目的性能指标的设计。
第2章AltiumDesigner及QuartusII简介
2.1AltiumDesigner简介
AltiumDesigner是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在WindowsXP操作系统。
这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。
电路设计自动化EDA(ElectronicDesignAutomation)指的就是将电路设计中各种工作交由计算机来协助完成。
如电路原理图(Schematic)的绘制、印刷电路板(PCB)文件的制作、执行电路仿真(Simulation)等设计工作。
随着电子科技的蓬勃发展,新型元器件层出不穷,电子线路变得越来越复杂,电路的设计工作已经无法单纯依靠手工来完成,电子线路计算机辅助设计已经成为必然趋势,越来越多的设计人员使用快捷、高效的CAD设计软件来进行辅助电路原理图、印制电路板图的设计,打印各种报表。
AltiumDesigner是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在WindowsXP操作系统。
这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。
AltiumDesigner除了全面继承包括Protel99SE、ProtelDXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。
该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。
由于AltiumDesigner在继承先前Protel软件功能的基础上,综合了FPGA设计和嵌入式系统软件设计功能,AltiumDesigner对计算机的系统需求比先前的版本要高一些。
图2-1AltiumDesigner
主要功能:
1.原理图设计
2.印刷电路板设计
3.FPGA的开发
4.嵌入式开发等等
在本设计中主要用到了AltiumDesigner的原理图设计及PCB板设计的功能
2.2quartusII简介
先打开AltiumDesigner,先新建一个工程文件:
点击文件菜单,依次点击新建-工程
QuartusII支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。
目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。
Altera在QuartusII中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。
QuartusII提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:
可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;
芯片(电路)平面布局连线编辑;
LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;
1.功能强大的逻辑综合工具;
2.完备的电路功能仿真与时序逻辑仿真工具;
3.定时/时序分析与关键路径延时分析;
4.可使用SignalTapII逻辑分析工具进行嵌入式的逻辑分析;
5.支持软件源文件的添加和创建,并将它们链接起来生成编程文件;
6.使用组合编译方式可一次完成整体设计流程;
7.自动定位编译错误;
8.高效的期间编程与验证工具;
9.可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;
10.能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。
设计中主要用到了VerilogHDL程序的编写模块,以及生成相应模块之后的仿真工作。
2.3小结
本章主要介绍了设计中用到的两款软件AltiumDesigner和QuartusII。
第3章系统硬件概况
3.1系统概况
总体设计方案见如图3-1所示。
图3-1系统设计方案图
第1部分是放大器电路。
程控放大器的作用是将传感器产生微弱的模拟信号进行放大处理。
放大器把信号放大到与A/D转换器满量程电压相应的电平值,以便充分利用A/D转换器的分辨率,放大器的放大倍数可以通过设计放大电路来进行实时控制。
放大器的频率特性包括两个方面:
幅度频率特性和相位频率特性。
第2部分是A/D模数转换电路。
其功能是将放大后的模拟信号转换为计算机能够识别的数字信号。
A/D转换器是采样通道的核心,所以A/D转换器是影响数据采集系统采样速率和精度的主要因素之一。
第3部分是数据缓存电路。
受限于显示电路的响应速度,A/D转换后的数据信息一般不能直接传送到显示电路中,所以在送入显示电路或其他处理设备之前应该增加数据缓存模块,而FPGA内部有FIFO可以作为缓存来存储数据,这样能有利于将数据送入显示电路显示。
第4部分是时钟控制电路,为系统和各个子功能模块提供时钟。
第5部分是液晶显示器。
数据缓存区的数据传输至液晶显示器。
最终在液晶显示器上显示出结果。
第6部分FPGA部分它可以通过在FPGA里面编程来控制程控放大器、A/D模数转换器、数据缓存等单元,并实现与显示电路的通信。
3.2功能模块
程序选择的模块如表3-1所示。
表3-1采集系统配置清单表
序号
部件名称
型号
数量(套)
1
FPGA
EP2C8
1
2
液晶显示器
33XY-LCD
1
3
电源
AMS1117
1
4
电源
AMS1117-ADJ
1
5
AD模数转换器
ADS7945
1
6
Sram
IS61LV51216
1
7
晶振
5*750MHZ
1
8
Ref参考电源
REF5010
1
9
EPCS
EPCS4*2
1
10
JTAG
JTAG
1
3.2.1FPGA模块
EP2C8是ALTERA的cyclone2系列中的一款芯片。
在AltiumDesigner中画的原理图如下图3-2所示Pcb封装如下图3-3所示
图3-2原理图图3-3封装
EP2C8的I/O口如下图3-4所示
FPGA的IO口可以自由定义,是本设计采用FPGA的一个理由。
EP2C8有共8个bank,在本设计中主要使用了3.3V的CMOSIO口。
图3-4IO口
EP2C8的电压如下图3-5所示,其中内核电压为1.2V,外围IO电压为3.3V。
图3-5电压
CLK控制BLK锁相环电路如下图3-6所示。
图3-6CLK控制BLK
3.2.2液晶显示器模块
液晶显示模块采用采用了4.3寸XY-LCD彩色显示器。
其封装如下图3-7所示
各引脚定义如下
图3-7显示器接口定义
彩色液晶显示采用的是RGB模式,RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。
RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于两者亮度之总和,越混合亮度越高,即加法混合。
有色光可被无色光冲淡并变亮。
如蓝色光与白光相遇,结果是产生更加明亮的浅蓝色光。
知道它的混合原理后,在软件中设定颜色就容易理解了。
红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色,加法混合的特点:
越叠加越明亮。
红、绿、蓝三个颜色通道每种色各分为255阶亮度,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。
当三色数值相同时为无色彩的灰度色,而三色都为255时为最亮的白色,都为0时为黑色。
RGB颜色称为加成色,因为您通过将R、G和B添加在一起(即所有光线反射回眼睛)可产生白色。
加成色用于照明光、电视和计算机显示器。
例如,显示器通过红色、绿色和蓝色荧光粉发射光线产生颜色。
绝大多数可视光谱都可表示为红、绿、蓝(RGB)三色光在不同比例和强度上的混合。
这些颜色若发生重叠,则产生青、洋红和黄。
液晶的时序图如下图3-8所示
图3-8液晶时序图
因为是液晶大部分不用焊接到板子上,只要有引脚就行所以用AtiumDesigner画出的原理图如下图3-9所示
图3-9液晶原理图及pcb
3.2.3电源模块
FPGA需要两种电源,3.3V和1.2V其中3.3V产生原理图如图3-10所示
图1-103.3V电源
1.2V产生模块如下图3-11所示
图3-111.2V电源
AMS1117系列稳压器有可调版与多种固定电压版,设计用于提供1A输出电流且工作压差可低至1V。
在最大输出电流时,AMS1117器件的压差保证最大不超过1.3V,并随负载电流的减小而逐渐降低。
AMS1117的片上微调把基准电压调整到1.5%的误差以内,而且电流限制也得到了调整,以尽量减少因稳压器和电源电路超载而造成的压力。
所以采用AMS1117来获得3.3V和1.2V电源。
3.2.4AD模数转换器模块
ADS7945是14位,取样率位2MSPS,双通道,差分单端的超低功耗模数转换器
ADS7945引脚配置如下图3-12所示。
图3-12ADS7945原理图
其中C12是参考电压的去耦电容C13是3.3V电源的去耦电容,R10、C16和R13、C17分别组成了模拟信号输入端的端接电阻和去耦电容。
R14和R16分别是SDO和SCLK的端接电阻,可以防止控制器带来的数字信号因阻抗不匹配对AD产生影响。
AD的引脚定义:
PIN
PIN名
功能
描述
1
GND
数/模
2
AVDD
模拟
ADC电源
3
REF
模拟
4
REFGND
模拟
5
AIN0
模拟输入
积极模拟输入,接口0
6
AIN0GND
模拟输入
接地模拟输入,接口0
7
AIN1GND
模拟输入
接地模拟输入,接口1
8
AIN1
模拟输入
积极模拟输入,接口1
9
NC
-
没有内部连接,建议外部接口接地
10
NC
-
没有内部连接,建议外部接口接地
11
CHSEL
数字输入
这个引脚设置模拟输入的接口低=接口0,高=接口1,CS处于下降沿半个时钟后它会在一个时钟周期内改变接口,这保证在采样开始前设置好多路复用器
12
PDEN
数字输入
如果它是高电平且CS处于上升沿,则断电
13
CS
数字输入
芯片选择信号,低电平有效
14
SCLK
数字输入
串行SPI时钟
15
SDO
数字输入
串行数据输出
16
DVDD
数字
数字I/O口
ADS7945的直流特性
电气特性:
微分
参数
实验条件
MINTYPMAX
单位
数字输入/输出
逻辑系列
CMOS
逻辑电平
VIH
0.7DVDD
V
VIL
0.3DVDD
V
VOH
SDOload20pF
0.8DVDD
V
VOL
SDOload20pF
0.2DVDD
V
输入漏电流
IIH,IIL
0±20
Na
外部引用
2.5AVDD
V
所需供电电压
AVDD
2.73.35.25
V
DVDD
1.653.3AVDD
V
AVDD供电电流
IDYNAMIC
AVDD=3.3V,fSAMPLE=2MSPS
3.54
mA
AVDD=5V,fSAMPLE=2MSPS
45
mA
ISTATIC
AVDD=3.3V,SCLKoff
2.3
mA
AVDD=5V,SCLKoff
2.53
mA
DVDD供电电流
DVDD=3.3V,fSAMPLE=2MSPS,750μASDOload20pF
750
μA
电源状态
PD-DYNAMIC
SCLK=40MHz
550
μA
供电电流
IPD-STATIC
SCLKoff
2.5
μA
通电时间
从掉电状态使用pden口
1
μs
温度范围
保证性能
–40+125
°C
时序图:
ADS7945时序图3-13
图3-13AD时序
ADC的时间参数
参数
实验条件
Mintypmax
单位
tCONV转换时间
16
SCLK
Tacq收集时间
80
ns
FSAMPLE抽样频率
SCLK=40MHz,16-clockframe
2
MSPS
Td1延时第一个数据输出时cs低电平
DVDD=1.8V
25
ns
DVDD=3V
14.5
ns
DVDD=5V
8.5
ns
Tsu1SCLK的第一个上升沿时cs低电平
DVDD=1.8V
3.5
ns
DVDD=3V
3.5
ns
DVDD=5V
3.5
ns
Td2CLK趋向SDO
DVDD=1.8V
11
ns
DVDD=3V
9
ns
DVDD=5V
7.1
ns
Th1保持时间,数据有效信号下降
DVDD=1.8V
4
ns
DVDD=3V
3
ns
DVDD=5V
2
ns
Td3延时,cs升高到sdo3-date
DVDD=1.8V
15
ns
DVDD=3V
12.5
ns
DVDD=5V
8.5
ns
Td4延时,转换结束时cs在上升沿