ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:372.59KB ,
资源ID:593368      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/593368.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA数据采集系统方案.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于FPGA数据采集系统方案.docx

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

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

3、速度比较快时,CPU或单片机的慢速工作时序将极限制A/D高速性能的利用。当采用FPGA对其进行控制时,由于FPGA的时钟频率可达100MHZ以上,从而可实现数据的高速采集,还可以把采样数据实时存入FPGA部的高速RAM中。本设计是利用FPGA直接控制高速ADC08200对模拟信号进行采样,采集速度可达200MS/s,然后将转换好的8位二进制数据迅速存储到FPGA部的FIFO存储器中。在完成对模拟信号一个周期的采样后,由外部电路系统将存储器中的采样数据读出处理。采用自顶向下的设计方法可将本设计分为控制器模块和FIFO缓冲模块 。1.系统的模块设计与功能仿真 ad转换模块与高速存储模块结合调理电路

4、与数据处理电路就构成了一个完整的系统。调理电路和模拟信号经由a/d转换器adc08200转换模块后变为数字信号,传给同样由fpga控制的先进先出存储器fifo这样就弥补了由单片机控制带来的速度低的缺点.fpga存储的数字信号可由单片机系统来读取和处理.在quartus2平台下使用原理图输入方式可以使设计得到简化.系统的连接图如图4所示.其中clk为时钟信号;rst为复位信号;d7.0转换后的数字信号,接a/d的输出;wr/rd为读写控制;rdclk为读时钟;aclr为清零信号;adclk接a/d转换器的时钟clk;adpd接adc08200的pd;wrfull;rdempty为写满,读空显示信

5、号;q7.0为输出数据.2.控制器模块设计2.1 ADC08200芯片功能介绍ADC08200是美国国家半导体公司生产的单通道、低功耗、高速8位模数转换器。它具有成本低、功耗低、体积小和易于使用等优点。最高采样频率达200MS/s。在掉电模式下ADC08200仅消耗1mw。独特的结构在50MHZ标准信号的输入情况下可达到7.3有效采样位。单电源3v或2.5v的供电,带高质量参考源和高性能采样保持电路。主要端口:Clk:时钟输入端;Vin模拟信号输入端;PD:掉电保护,当PD为低时,D0-D7正常输出,当PD为高时,D0-D7输出保持;D0-D7:数据输出端口。D0为数据最低位,D7为最高位;图

6、3为ADC08200的工作时序图和外围接口电路图。 图3 ADC08200接口电路图2.2 基于VHDL控制器设计VHDL是一种硬件描述语言,它可以对电子电路和系统的行为进行描述。基于这种描述,结合相关的软件工具,可以得到所期望的实际电路与系统。根据ADC08200的特点,可通过硬件描述语言设计一个状态机,最后下载到FPGA芯片上,通过FPGA芯片控制ADC08200的工件。时钟由外部引入,由分频模块得到想要的时钟。设计过程为编写VHDL代码,然后在Quartus II平台下进行编译,仿真。最后下载到FPGA芯片中。2.3高速存储模块的设计FIFO是一种存储器参数可设置模块库,在高速数字系统中

7、常用作缓存。在高速数据传输和实时显示领域中,需要对数据进行快速储存和发送,要实现快速的数据采集、顺序储存和传送,传统的RAM型存储器已经无法满足要求。目前许多高速系统都采用FIFO作为缓存体。因为FIFO的写入(读出)时间只需要一个时钟周期,不需要对地址进行加1操作,大大提高了存储速度。利用LPM中的宏功能块LPM_FIFO,在Quartus II平台下定制一个高速的先进先出FIFO根据需要对所使用的宏功能块的参数进行适当调整,由此生成一个满足自己特定需要的模块。二VHDL软件设计1.主控制模块VHDL程序library ieee;use ieee.std_logic_1164.all;ent

8、ity adc08200 is port(rst:in std_logic; clk:in std_logic; d:in std_logic_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 istype ad_states is (state0_type,state1

9、_type);signal sta_g_currentstate:ad_states;signal sta_g_nextstate:ad_states;signal ctl_gp_latchflag:std_logic;signal chipselect:std_logic;begin:process(sta_g_currentstate)begincase sta_g_currentstate iswhen state0_type=adclk=1;ctl_gp_latchflag=1;dclk=0;sta_g_nextstateadclk=0;ctl_gp_latchflag=0;dclk=

10、1;sta_g_nextstateadclk=0;ctl_gp_latchflag=0;dclk=1;sta_g_nextstate=state1_type;end case;end process ;reg:process(clk,rst)begin if rst=0then sta_g_currentstate=state0_type;elsif(clkevent and clk=1)thensta_g_currentstate=sta_g_nextstate;end if;end process reg;latch:process(ctl_gp_latchflag)beginif rst

11、=0 then data0);elsif(ctl_gp_latchflagevent and ctl_gp_latchflag=1)then data=d;end if;end process latch;chipselect=ctloe;adpd=not chipselect;end architecture bhv;2.LPM-FIFO宏模块的调用 1.1在设计数据采集系统前,必须首先完成对采集转换数据缓存和存放的设计。利用MegaWizardPlug-In Manager 定制FIFO宏功能块。设计步骤如下: (1)打开MegaWizard Plug-In Manager 初始对话框。在

12、Tools 菜单中选择MegaWizardPlug-In Manager,产生如图7-5 所示的界面,选择Create a new custom 项(如果要修改一个已编辑好的LPM 模块,则选择Edit an existing custom 项),即定制一个新的模块。单击Next 按钮后,产生如图7-6 所示的对话框,在左栏选择memory compiler项下的LPM_FIFO,再选择Cyclone 器件和VHDL 语言方式;最后输入FIFO文件存放的路径和文件名:F:adc08200fifo(定制的fifo元件文件名),单击Next按钮。 (2)选择ROM 控制线、地址线和数据线。在如图7

13、-7 和图7-8 所示的对话框中选择地址线位宽和ROM 中数据数分别为6 和64;选择地址锁存控制信号inclock。(3)单击Next按钮后出现图7-9的界面。在“What should the fifo”栏选择默认的“Auto”。在适配中,Quartus II将根据选中的目标器件系列,自动确定嵌入fifo模块的类型。生成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

14、STD_LOGIC ; data : IN STD_LOGIC_VECTOR (7 DOWNTO 0); rdreq : IN STD_LOGIC ; wrreq : IN STD_LOGIC ; empty : OUT STD_LOGIC ; full : OUT STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); usedw : OUT STD_LOGIC_VECTOR (9 DOWNTO 0) );END fifo;ARCHITECTURE SYN OF fifo IS SIGNAL sub_wire0 : STD_LOGIC_VECTO

15、R (9 DOWNTO 0); SIGNAL sub_wire1 : STD_LOGIC ; SIGNAL sub_wire2 : STD_LOGIC_VECTOR (7 DOWNTO 0); SIGNAL sub_wire3 : STD_LOGIC ; COMPONENT scfifo GENERIC ( add_ram_output_register : STRING; intended_device_family : STRING; lpm_numwords : NATURAL; lpm_showahead : STRING; lpm_type : STRING; lpm_width : NATURAL; lpm_widthu : NATURAL; overflow_checking : STRING; u

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

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