基于FPGA数据采集系统说明书.doc

上传人:h**** 文档编号:130746 上传时间:2018-07-09 格式:DOC 页数:43 大小:710.50KB
下载 相关 举报
基于FPGA数据采集系统说明书.doc_第1页
第1页 / 共43页
基于FPGA数据采集系统说明书.doc_第2页
第2页 / 共43页
基于FPGA数据采集系统说明书.doc_第3页
第3页 / 共43页
基于FPGA数据采集系统说明书.doc_第4页
第4页 / 共43页
基于FPGA数据采集系统说明书.doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

1、 1 基于 FPGA数据采集系统 一引言 传统的数据采集系统 , 通常采用单片机或 DSP 作为主要控制模块 , 控制ADC、存储器和其他外围电路的工作。随着数据采集对速度性能的要求越来越高 ,传统采集系统的弊端就越来越明显。单片机的时钟频率较低且需用软件实现数据采集 , 这使得采集速度和效率降低 , 此外软件运行时间在整个采样时间中也占很大的比例。而 FPGA(现场可编程门阵列 )有单片机无法比拟的优势。 FPGA 时钟频率高 , 内部延时小 , 全部控制逻辑由硬件完成 , 速度快、效率高。在此技术 基础上 , 为了满足数据采集对速度的要求 , 本文就着重介绍了一种基于 FPGA, 采用 V

2、HDL硬件描述语言设计实现的高速数据采集系统。 二设计思路 本设计采用 FPGA器件 EP1C12Q240C8实现对高速 A/D转换芯片 ADC08200的采样控制,解决了传统方法的速度问题。使用 VHDL语言采用电路结构图为顶层向下的方法;结合 FIFO存储器的设计实现了高速 A/D采集转换和转换后数据存储,并给出了采样系统框图及 FPGA内部设计框图。 图 1 系统框图 2 图 2 FPGA内部结构 一硬件设计 对 A/D 转换器进行采样控制 ,传统方法一般是用 CPU或单片机完成的。其优点是编程简单、控制灵活,但缺点是控制周期长 、 速度慢 , 例如 MCS51系列单片机最高时钟频率为

3、12MHZ, AT89C2051单片机为 24MHZ, 这样当 A/D 本身的采样速度比较快时, CPU或单片机的慢速工作时序将极大地限制 A/D高速性能的利用。当采用 FPGA对其进行控制时 , 由 于 FPGA的时钟频率可达 100MHZ以上,从而可实现数据的高速采集 , 还可以把采样数据实时存入 FPGA内部的高速 RAM中 。 本设计是利用 FPGA 直接控制高速 ADC08200对模拟信号进行采样 , 采集速度可达 200MS/s, 然后将转换好的 8位二进制数据迅速存储到 FPGA内部的 FIFO存储器中。在完成对模拟信号一个周期的采样后 , 由外部电路系统将存储器中的采样数据读出

4、处理 。 采用自顶向下的设计方法可将本设计分为控制器模 块和 FIFO缓冲模块 。 1.系统的模块设计与功能仿真 ad转换模块与高速存储模块结合调 理电路与数据处理电路就构成了一个完整的系统。调理电路和模拟信号经由 a/d转换器 adc08200转换模块后变为数字信号 ,传给同样由 fpga控制的先进先出存储器 fifo这样就弥补了由单片机控制带来的速度低的缺点 .fpga存储的数字信号可由单片机系统来读取和处理 .在 quartus2平台下使用原理图输入方式可以使设计得到简化 .系统的连接图如图 4所示 .其中clk 为时钟信号 ;rst为复位信号 ;d【 7.0】 转换后的数字信号,接 a

5、/d的输出 ;wr/rd为读写控制 ;rdclk为读时钟 ;aclr为清零信号 ;adclk接 a/d转换器的时钟 clk;adpd接adc08200的 pd;wrfull;rdempty为写满 ,读空显示信号 ;q7.0为输出数据 . 2.控制器模块设计 2.1 ADC08200芯片功能介绍 ADC08200是美国国家半导体公司生产的单通道、低功耗 、 高速 8位模数转换器 。 它具有成本低、功耗低、体积小和易于使用等优点 。 最高采样频率达200MS/s。 在掉电模式下 ADC08200仅消耗 1mw。 独特的结构在 50MHZ标准信号的输入情况下可达到 7.3有效采样位。单电源 3v 或

6、 2.5v 的供电 , 内带高质量参考源和 高性能采样保持电路 。 主要端口: 3 Clk: 时钟输入端; Vin模拟信号输入端; PD: 掉电保护 ,当 PD为低时 ,D0-D7 正常输出 ,当 PD为高时 ,D0-D7输出保持 ; D0-D7:数据输出端口。 D0为数据最低位 , D7为最高位 ; 图 3为 ADC08200的工作时序图和外围接口电路图。 图 3 ADC08200接口电路图 2.2 基于 VHDL控制器设计 VHDL是一种硬件描述语言,它可以对电子电路和系统的行为进行描述 。 基于这种描述 , 结合相关的软件工具 , 可以得到所期望的实际电路与系统 。 根据ADC08200

7、的特点,可通过硬件描述语言设计一个状态机 , 最后下载到 FPGA芯片上 ,通过 FPGA芯片控制 ADC08200的工件。时钟由外部引入 , 由分频模块得到想要的时钟 。 设计过程为编写 VHDL代码 , 然后在 Quartus II平台下进行编译 , 仿真 。 最后下载到 FPGA芯片中。 2.3高速存储模块的设计 FIFO是一种存储器参数可设置模块库,在高速数字系统中常用作缓存 。 在高速数据传输和实时显示领域中 , 需要对数据进行快速储存和发送 , 要实现快速的数据采集 、 顺序 储存和传送 , 传统的 RAM型存储器已经无法满足要求 。 目前许多高速系统都采用 FIFO作为缓存体 。

8、 因为 FIFO的写入 ( 读出 ) 时间只需要一个时钟周期,不需要对地址进行加 1操作 , 大大提高了存储速度 。 利用 LPM中的宏功能块 LPM_FIFO,在 Quartus II平台下定制一个高速的先进先出 FIFO根据需要对所使用的宏功能块的参数进行适当调整 ,由此生成一个满足自己特定需要的模块。 4 二 VHDL软件设计 1.主控制模块 VHDL程序 library ieee; use ieee.std_logic_1164.all; entity adc08200 is port(rst:in std_logic; clk:in std_logic; d:in std_logic

9、_vector(7 downto 0); ctloe:in std_logic; adclk:out std_logic; adpd:out std_logic; data:out std_logic_vector(7 downto 0); dclk:out std_logic); end entity adc08200; architecture bhv of adc08200 is type ad_states is (state0_type,state1_type); signal sta_g_currentstate:ad_states; signal sta_g_nextstate:

10、ad_states; signal ctl_gp_latchflag:std_logic; signal chipselect:std_logic; begin com:process(sta_g_currentstate) begin case sta_g_currentstate is when state0_type=adclkadclkadclk0); elsif(ctl_gp_latchflagevent and ctl_gp_latchflag=1)then data=d; end if; end process latch; chipselect=ctloe; adpd=not

11、chipselect; end architecture bhv; 2.LPM-FIFO宏模块的调用 1.1在设计数据采集系统前,必须首先完成对采集转换数据缓存和存放的设计。利用MegaWizard Plug-In Manager 定制 FIFO宏功能块。设计步骤如下: ( 1)打开 MegaWizard Plug-In Manager 初始对话框。在 Tools 菜单中选择 MegaWizard Plug-In Manager,产生如图 7-5 所示的界面,选择 Create a new custom 项(如果要修改一 个已编辑好的 LPM 模块,则选择 Edit an existing c

12、ustom 项),即定制一个新的模块。单 击 Next 按钮后,产生如图 7-6 所示的对话框,在左栏选择 memory compiler 项下的LPM_FIFO,再选择 Cyclone 器件和 VHDL 语言方式;最后输入 FIFO 文件存放的路径和文件名: F:adc08200fifo(定制的 fifo元件文件名),单击 Next按钮。 6 ( 2)选择 ROM 控制线、地址线和数据线。在如图 7-7 和图 7-8 所示的对话框中选择 地址线位宽和 ROM 中数据数分别为 6 和 64;选择地址锁存控制信号 inclock。 ( 3) 单击 Next按钮后出现图 7-9的界面。在“ Wha

13、t should the fifo”栏选择默认的 “ Auto”。在适配中, Quartus II将根据选中的目标器件系列,自动确定嵌入 fifo模块的类型。 7 8 9 10 生成 FIFO模块如下: 1.2其 FIFO内部 VHDL语言程序: LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY altera_mf; USE altera_mf.all; ENTITY fifo IS PORT ( clock : IN STD_LOGIC ; data : IN STD_LOGIC_VECTOR (7 DOWNTO 0); rdreq : IN STD_LOGIC ; wrreq : IN STD_LOGIC ;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。