基于FPGA的数据采集系统电路设计.docx

上传人:b****7 文档编号:9250332 上传时间:2023-02-03 格式:DOCX 页数:27 大小:1.13MB
下载 相关 举报
基于FPGA的数据采集系统电路设计.docx_第1页
第1页 / 共27页
基于FPGA的数据采集系统电路设计.docx_第2页
第2页 / 共27页
基于FPGA的数据采集系统电路设计.docx_第3页
第3页 / 共27页
基于FPGA的数据采集系统电路设计.docx_第4页
第4页 / 共27页
基于FPGA的数据采集系统电路设计.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

基于FPGA的数据采集系统电路设计.docx

《基于FPGA的数据采集系统电路设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的数据采集系统电路设计.docx(27页珍藏版)》请在冰豆网上搜索。

基于FPGA的数据采集系统电路设计.docx

基于FPGA的数据采集系统电路设计

 

毕业论文(设计)

 

题目基于FPGA的数据采集系统电路设计

 

物理与信息工程学院电子信息科学与技术专业2007级

学生姓名学号

指导教师职称讲师

完成日期2011年4月2日

 

基于FPGA的数字采集系统电路设计

【摘要】本文介绍了基于FPGA的数据采集系统电路的工作原理和设计过程。

根据数据采集技术原理,以Altera公司的EP2C8Q208C8N芯片为核心器件,通过ADC0809采集数据,并用DAC0832输出数据,在QuartusII平台上,通过VHDL语言编程完成数据采集系统电路的软件设计、编译、调试、仿真和下载,再与外围硬件电路相结合调试,最终设计出数据采集系统电路。

【关键词】FPGA;QuartusII;VHDL;数据采集

 

目录

第一章绪论3

1.1引言3

1.2EDA简介3

1.3FPGA简介3

1.4VHDL语言简介3

1.5QuartusII简介4

1.6数据采集技术简介4

第二章总体设计4

2.1硬件设计4

2.1.1线性电源模块4

2.1.2数据采集模块6

2.1.3数据输出模块8

2.1.4按键控制模块10

2.2软件设计11

2.2.1ADCINT设计11

2.2.2CNT10B设计12

2.2.3RAM8设计12

2.2.4时钟控制设计12

2.2.5系统顶层设计13

第三章系统软硬件调试14

结论15

致谢15

参考文献15

英文翻译17

附录一线性电源、FPGA外围电路和FPGA最小系统连接口PCB18

附录二系统各模块VHDL程序19

 

第一章绪论

1.1引言

随着数字系统的发展,广泛应用于各种学科领域及日常生活,微型计算机就是一个典型的数学系统。

但是它只能对输入的数字信号进行处理,其输出信号也是数字信号。

而在工业检测控制和生活中的许多物理量都是连续变化的模拟量,如温度、压力、流量、速度等,这些模拟量可以通过传感器或换能器变成与之对应的电压、电流或频率等电模拟量。

为了实现数字系统对这些电模拟量进行检测、运算和控制,就需要一个模拟量与数字量之间的相互转换的过程。

即常常需要将模拟量转换成数字量,简称为AD转换,完成这种转换的电路称为模数转换器,简称ADC。

1.2EDA简介

EDA,即电子设计自动化(ElectronicDesignAutomation)的缩写。

它融合了大规模集成电路制造急速、ASIC测试和封装技术、FPGA/CPLD编程下载技术、自动测试技术、计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)设计的设计概念,为现代电子理论和设计的实现和发展提供了可能性[1]。

EDA技术是一种综合性学科,打破了软件和硬件见的壁垒,把计算机的软件技术与硬件技术、设计效率和产品性能结合在一起,它代表了电子设计技术和应用技术的发展方向。

EDA技术一般包括以下内容:

1.大规模可编程逻辑器件;2.硬件描述语言;3.软件开发工具;4.实验开发系统[2]。

1.3FPGA简介

FPGA,即现场可编程门阵列(Field-ProgrammableGateArray)的缩写。

它是一种集成度较高的器件,属于复杂PLD。

FPGA具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点,在产品研发和开发中具有很大的优势。

用FPGA做一些协议实现和逻辑控制,如果协议理解错误或者逻辑需要更改,不需要动PCB。

另外,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。

目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。

本设计用的是Altera公司的EP2C8Q208C8N芯片,里面有68416个逻辑单元,并提供了622个可用的输入/输出引脚和1.1M比特的嵌入式寄存器。

它提高了百分之六十的性能和降低了一半的功耗,而低成本和优化特征使它为各种各样的汽车、消费、通讯、视频处理、测试与测量、和其他最终市场提供理想的解决方案[3]。

1.4VHDL语言简介

诞生于1983年的VHDL,是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage的简称,1987年底,VHDL被作为“IEEE标准1076”发布。

VHDL不仅可以作为系统模拟的建模工具,而且可以作为电路系统的设计工具,能通过QuartusII把VHDL源码自动转化为基本逻辑元件连接图,这极大的推进了电路自动设计[4]。

VHDL能从多个层次对数字系统进行建模和描述,所以大大简化了电路设计的任务,提高了设计效率。

1.5QuartusII简介

由Altera提供的FPGA开发集成环境―QuartusII,因为其运行速度快,界面统一,功能集中,易学易用等特点,迅速占领了市场[5]。

QuartusII支持VHDL、Verilog的设计流程,提供了完整的多平台设计环境,能满足各种特定设计的需要,同时,它还具备仿真功能,因此给系统的软硬件设计和调试带来了很大的便利。

1.6数据采集技术简介

系统利用FPGA直接控制ADC0809对模拟信号进行采样,将转换好的8位二进制数据存储到存储器中,在完成对模拟信号一个或数个周期的采样后,通过DAC0832的输出端将数据读取出来。

第二章总体设计

2.1硬件设计

2.1.1线性电源模块

根据系统要求,需提供+12V、-12V、+5V的电源。

因此我采用了滤波电容、防自激电容、LED灯及固定式三端稳压器LM7905、LM7812和LM7912等器件搭建成能产生精度高、稳定度好的直流输出电压的线性电源电路。

系统的线性电源电路部分原理图如图2.1所示:

图2.1系统的线性电源模块电路

当电路接通后,如果LED灯亮起,则代表能产生出要求的电压。

为了实验的携带方便,我另外再加上电源变压器和整流电桥。

在画PCB的时候,用大面积覆铜,有助于美观和节约实验器材。

实物如图2.2所示:

图2.2系统的线性电源实物图

PCB图见附录一。

2.1.2数据采集模块

系统采用ADC0809进行数据采集。

ADC0809是逐次逼近式A/D转化器,由8位A/D转换器、8路多路开关以及微处理机兼容组成的控制逻辑的CMOS组件。

ADC0809每进行一次比较,即决定数字码中的以为码的去留操作,需要8个时钟的脉冲,而它是8位A/D转换器,所以它完成一次转换需要8*8=64个时钟,这样它的转换时间为t=64*(1/f),f为时钟频率。

系统用的时钟为500KHz,所以ADC0809的转换时间为128us[6]。

因为采样时需要满足采样定理,即采样频率需要大于等于输入信号最高频率的2倍,所以ADC0809能采样的最高频率为3906.25Hz。

ADC0809的主要特性:

1.分辨率为8位。

2.具有转换启停控制端。

3.单个+5V电源供电。

4.模拟输入电压范围0~+5V,不需要零点和满刻度校准。

系统中由可调电位器提供。

5.工作温度范围为-40~+85摄氏度。

6.低功耗,约15mW。

它的内部逻辑结构如图2.3所示:

图2.3ADC0809内部逻辑结构

ADC0809引脚排列如图2.4所示:

图2.4ADC0809引脚排列

ADC0809为28引脚双列直插式封装,各引脚含义如下:

IN0-IN7:

8位模拟量输入引脚。

D0-D7:

8位数字输出量引脚。

START:

A/D转换启动信号输入端。

EOC:

转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。

OE:

输出允许控制端,用以打开三态数据输出锁存器。

CLK:

时钟信号输入端。

VCC:

+5V工作电压。

VREF(+):

参考电压正端。

GND:

地。

VREF(-):

参考电压负端。

ALE:

地址锁存允许信号输入端。

ABC:

地址输入线。

系统的数据采集模块部分电路原理图如图2.5所示:

图2.5系统数据采集模块电路

当ALE高电平有效时,因为ABC接的都是低电平,所以选择的是IN0通道。

当START为上跳沿时,所有内部寄存器清零;下跳沿时,开始A/D转换;在转换期间,START需保持低电平不变。

而当EOC为高电平时,表明A/D转换结束。

当OE=1时,输出转换得来的数据;否则,输出数据线呈高阻态。

PCB图见附录一。

2.1.3数据输出模块

系统采用的数据输出为DAC0832。

DAC0832是8分辨率的D/A转换集成芯片,由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。

它因为价格低廉、接口简单、转换控制容易等优点,而得到了广泛的应用[7]。

DAC0832的主要参数有:

1.分辨率为8位。

2.转换时间为1us。

3.满量程误差为±1LSB。

4.参考电压为-10~+10V。

5.供电电源为+5~+15V。

6.逻辑电平输入与TTL兼容。

它的内部逻辑结构如图2.6所示:

图2.6DAC0832内部逻辑结构

DAC0832引脚排列如图2.7所示:

图2.7DAC0832引脚排列

CS:

片选信号输入线(选通数据锁存器),低电平有效。

WR1:

数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。

AGND:

模拟信号地。

D0~D7:

8位数据输入线。

VREF:

基准电压输入线,范围为-10V~+10V。

Rfb:

反馈信号输入线,可通过改变Rfb端外接电阻值来调整转换满量程精度。

DGND:

数字信号地。

IOUT1:

电流输出端1,其值随DAC寄存器的内容线性变化。

IOUT2:

电流输出端2,其值与IOUT1值之和为一常数。

XFER:

数据传输控制信号输入线,低电平有效。

WR2:

DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。

ILE:

数据锁存允许控制信号输入线,高电平有效。

VCC:

电源输入端,范围为+5V~+15V。

本实验用的是+5V。

DAC0832的输出放大和滤波电路采用TL082芯片搭建。

TL082是一通用J-FET双运算放大器。

它的内部结构和引脚排列如图2.8所示[8]:

图2.8TL082内部结构和引脚排列

TL082为8引脚双列直插式封装,各引脚含义如下:

(1)Output1——输出1;

(2)Invertinginput1——反向输入1;

(3)Non-invertinginput1——正向输入1;

(4)Vcc-——电源-12V;

(5)Non-invertinginput2——正向输入2;

(6)Invertinginput2——反向输入2;

(7)Output2——输出2;

(8)Vcc+——电源+12V。

系统的数据输出电路部分原理图如图2.9所示:

图2.9系统数据输出模块电路

2.1.4按键控制模块

系统采用两个按键开关设计正/负电平输入信号电路,作按键控制模块。

一个按键控制CLR,另一个按键控制WREN。

两个按键开关电路如图2.10所示:

图2.10系统按键控制模块电路

系统实物如图2.11所示:

图2.11系统实物图

在画PCB的时候,用大面积覆铜,有助于美观和节约实验器材。

系统PCB图见附录一。

2.2软件设计

2.2.1ADCINT设计

ADCINT是控制0809的采样状态机。

由ADC0809驱动程序生成的原理图如图2.12所示:

图2.12ADCINT

ADCINT仿真图如图2.13所示:

图2.13ADCINT仿真图

2.2.2CNT10B设计

CNT10B中有一个用于RAM的9位地址计数器,它的工作时钟CLK0由WREN控制:

当WREN=‘1’时,CLK0=LOCK0,LOCK0来自于ADC0809采样控制器,这时处于采样允许阶段,RAM的地址锁存时钟inclock=CLKOUT=LOCK0;这样每当一个LOCK0的脉冲通过ADC0809时采到一个数据,并将它存入RAM中。

当WREN=‘0’时,采样禁止,允许读出RAM中的数据。

把示波器接到DAC0832的输出端就能看到波形。

CNT10B原理图如图2.14所示:

图2.14CNT10B

2.2.3RAM8设计

RAM8是LAM_RAM,它有8位数据线和9位地址线。

WREN是写时能,高电平有效。

RAM8原理图如图2.15所示:

图2.15RAM8

2.2.4时钟控制设计

由芯片EP2C8Q208C8N产生的20MHz的时钟做输入,经过分频以后,一路输出与芯片EP2C8Q208C8N的169引脚相连的500KHz的时钟,另一路则输出给ADC0809供电的10KHz的时钟。

时钟控制原理图如图2.16所示:

图2.16时钟控制

 

2.2.5系统顶层设计

系统顶层原理框图如图2.17所示,图中D为8位数据输入,CLK为系统时钟输入信号频率,由系统时钟信号输入电路控制。

Q为RAM8的8位输出,与DAC0832相接。

图2.17系统顶层原理框图

系统顶层仿真图如图2.18所示:

图2.18系统顶层仿真图

系统引脚锁定示意图如图2.19所示:

图2.19系统引脚连接图

系统各模块VHDL程序见附录二。

第三章系统软硬件调试

根据系统总体要求,把写好的VHDL程序进行引脚锁定,综合,适配,编程下载,调试。

将线性电源模块、数据采集模块、FPGA模块、数据输出模块及按键控制模块连接好,时钟频率由系统时钟信号输入电路提供,然后通过JTAG下载模式在线将生成的配置文件写入芯片中,如图3.1所示:

图3.1程序下载

通过反复调试、修改、功能验证确认无误后,用示波器探头接DAC0832输出端。

测得的实验数据见表1:

表1系统测试数据

输入波形的频率

输出波形的频率

50.050Hz

50.031Hz

99.630Hz

99.611Hz

113.77Hz

113.40Hz

150.24Hz

150.29Hz

199.18Hz

199.22Hz

250.61Hz

250.53Hz

300.54Hz

300.59Hz

350.96Hz

351.03Hz

407.50Hz

407.40Hz

测得的数据范围从50.050Hz到407.50Hz,平均相对误差为0.0039,具有较高的精度,基本达到了设计要求。

结论

本设计从可编程逻辑器件(FPGA)着手,用VHDL语言,结合ADC0809、DAC0832、TL082等芯片实现了数据采集与输出。

首先通过对数据采集原理进行分析,总体上提出实现数据采集与输出方案,通过CNT10B和RAM8等模块的设计,用FPGA实现了数据的采集与输出,并完成了软硬件设计和调试。

其放大电路和滤波电路用的芯片是TL082,其放大倍数合适,低通滤波性能较好,输出波形较为平滑。

同时,设计中还存在一些不足之处,主要表现在以下几个方面。

第一,外围电路的数据采集模块不够理想,成为影响波形输出的主要因素,可以用更好的AD芯片。

第二,滤波部分可以找到更合适的滤波器件,以提高波形的平滑度。

第三,RAM8采用8位,针对输出平坦度不够的问题,可以通过软硬件修正的方法来解决,可以扩充ROM的容量。

致谢

首先要感谢指导老师曾永西的严格指导和亲切关怀,从一开始选题方向的指导,以及VHDL程序上的帮助,又提供了实验室这么好的良好的设计环境和条件,最终才使我能够顺利完成项目的设计,曾老师兢兢业业的工作精神、踏实真诚的处事态度也让我受益匪浅。

值此成文之际,我向曾老师表示衷心的感谢。

同时也感谢同组的同学以及我们专业其他同学,此次设计的顺利完成少不了你们的毫无保留帮助和倾尽全力的支持,在此我衷心感谢你们。

由于自身水平有限,设计中难免存在一些不足之处,敬请各位老师批评指正。

参考文献

[1]潘松,黄继业.EDA技术实用教程(第三版)[M].北京:

科学出版社,2006:

1-2

[2]赵曙光,郭万有.可编程逻辑器件原理、开发与应用[M].西安:

电子科技大学出版社,2000:

80-85

[3]

[4]甘历.VHDL应用与开发实践[M].北京:

科技出版社,2003:

50-51

[5]徐志军.大规模可编程逻辑器件及其应用[M].成都:

电子科技大学出版社,2000

[6]程佩清.数字信号处理教程[M].北京:

清华大学出版社,2001

[7]王金明.数字系统设计与VerilogHDL[M].北京:

电子工业出版社,2001

[8]UweMeyer-Baese.数字信号处理的FPGA实现[M].北京:

清华大学出版社,2002

 

英文翻译

DigitalacquisitionsystemcircuitbasedonFPGA

Physicsandinformationengineeringcollege

Electronicinformationscienceandtechnologymajor070303029BoruiLi

facultyadviserYongxiZenglecturer

【Abstract】:

ThispaperintroducestheworkingprincipleanddesignprocessofthedataacquisitionsystemcircuitbasedonFPGA.Accordingtotheprincipleofdatacollectiontechnology,AlteracompanyinEP2C8Q208C8Nchipinforthecoredevice,collectdatabytheADC0809outputdatabytheDAC0832,throughtheVHDLlanguageprogrammingcompletesimpleoscilloscopesoftwaredesign,compilation,debugging,simulationanddownloadandperipheralhardwarecircuit,andcombiningthefinaldesigndebugging,dataacquisitionsystemcircuitinQuartusIIplatform.

【keywords】:

FPGA;QuartusII;VHDL;dataacquisition

附录一线性电源、FPGA外围电路和FPGA最小系统连接口PCB

线性电源

FPGA外围电路和FPGA最小系统连接口

附录二系统各模块VHDL程序

时钟控制的VHDL源程序:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entityclk_bis

port(clk:

instd_logic;

clk500K,clk10K:

outstd_logic);

endentity;

architecturebehaveofclk_bis

signalclk1,clk2:

std_logic;

signaltemp1:

integerrange0to49;

signaltemp2:

integerrange0to2499;

begin

process(clk)--500kHZ

begin

ifclk'eventandclk='1'then

temp1<=temp1+1;

iftemp1=24then

clk1<=notclk1;temp1<=0;

endif;

endif;

endprocess;

process(clk)--10kHZ

begin

ifclk'eventandclk='1'then

temp2<=temp2+1;

iftemp2=1249then

clk2<=notclk2;temp2<=0;

endif;

endif;

endprocess;

clk500K<=clk1;

clk10K<=clk2;

endbehave;

ADCINT的VHDL源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYADCINTIS

PORT(D:

INSTD_LOGIC_VECTOR(7DOWNTO0);--来自0809转换好的8位数据

CLK:

INSTD_LOGIC;--状态机工作时钟

EOC:

INSTD_LOGIC;--转换状态指示,低电平表示正在转换

ALE:

OUTSTD_LOGIC;--8个模拟信号通道地址锁存信号

START:

OUTSTD_LOGIC;--转换开始信号

OE:

OUTSTD_LOGIC;--数据输出3态控制信号

ADDA:

OUTSTD_LOGIC;--信号通道最低位控制信号

LOCK0:

OUTSTD_LOGIC;--观察数据锁存时钟

Q:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));--8位数据输出

ENDADCINT;

ARCHITECTUREbehavOFADCINTIS

TYPEstatesIS(st0,st1,st2,st3,st4);--定义各状态子类型

SIGNALcurrent_state,next_state:

states:

=st0;

SIGNALREGL:

STD_LOGIC_VECTOR(7DOWNTO0);

SIGNALLOCK:

STD_LOGIC;--转换后数据输出锁存时钟信号

BEGIN

ADDA<='0';--当ADDA<='0',模拟信号进入通道IN0;当ADDA<='1',则进入通道IN1

Q<=REGL;LOCK0<=LOCK;

COM:

PROCESS(current_state,EOC)BEGIN--规定各状态转换方式

CASEcurrent_stateIS

WHENst0=>ALE<='0';START<='0';LOCK<='0';OE<='0';next_state<=st1;--0809初始化

WHENst1=>ALE<='1';START<='1';LOCK<='0';OE<='0';next_state<=st2;--启动采样

WHENst2=>ALE<='0';START<='0';LOCK<='0';OE<='0';

IF(EOC='1')THENnext_st

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

当前位置:首页 > 工作范文 > 行政公文

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

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