基于FPGA的高速数据采集系统实现
创始人
2024-04-12 18:02:55

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》

目录

一、理论基础

二、核心程序

2.1锁存器模块

2.2双口地址计数器模块

2.3双口RAM模块

2.4时钟分频模块

三、测试结果


一、理论基础

       高速数据采集在军用民用领域都有着广泛的应用。高速数据采集系统在自动控制、电气测量、地质物探、航空航天等工程实践中有着极为广泛的应用。如何对高速的信号进行实时采集、实时存储,保证信号不丢失,以满足工业现场的需要,一直是高速数据采集系统研究的一个重要方向。数据采集系统是信号与信息处理系统中不可缺少的重要组成部分,同时也是软件无线电系统中的核心模块。

      高速数据采集系统主要包括以下几个部分:模拟信号调理电路、模数转换器、数据处理器件、数据存储器件、时钟电路、触发电路、传输接口芯片和电源系统等,如图1所示。

图1 高速数据采集系统结构图

      其中,模拟信号调理电路是用来将模拟信号放大调整到ADC的采样量程之内,这样既能充分发挥ADC的性能,又能保证采样数据的完整性;ADC是高速数据采集系统的核心器件,模拟信号输入,数字信号输出;数据处理器件有很多种,可以根据实际的不同需要进行选择;数据存储器件主要用于存储数据,可以进行显示,回放和数据处理等操作;时钟电路是比较重要的,时钟的稳定性和精确性决定着数据采集的结果,所以一般的做法是单独设计稳定的时钟电路;触发电路实现外部对数据采集频率和次数的控制,传输接口用于将数据传输给计算机进行后处理。

           采用单路高速A/D转换器以及存储器构成串行采集系统系统框图如图2所示:

图2 单路高速数据采集框图

       采用单路高速AD转换器和高速存储电路来构成字串行采集系统,系统的采样就属于实时采样,适用于任何形式的信号波形,重复的或不重复的,单次的或连续的。又由于所有采样点是以时间为顺序,因而易于实现波形显示功能。但是采用单片高速A/D芯片和高速存储器件,会大大提高系统开发成本。同时系统的采样率就受到A/D转换器最高转换速率以及存储器写入速度的限制。因此,单通道数据采集系统的采集速度受器件自身参数的限制,很难再大幅度提高其转换速度。

二、核心程序

其整体结构如下所示:

2.1锁存器模块

        系统工作的时候要对数据进行锁存,然后进行传输,通常这样做可以使系统更加稳定的工作,其工作原理比较简单,实现代码如下所示:

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dlatch8 isport(cp: in std_logic;d:  in std_logic_vector(7 downto 0);q:  out std_logic_vector(7 downto 0));end dlatch8;architecture one of dlatch8 isbeginprocess(cp,d)beginif(cp='1') thenq<=d;end if;end process;end;

2.2双口地址计数器模块

       地址计数器用来给RAM存储器产生地址信号。由RAM的写入时钟来控制,每当时钟上升沿到来一次,地址计数器就自动加1,直到进行至RAM的底部,表示此时RAM已经写满。下面给出由VHDL语言实现的地址计数器部分源代码。

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity addrcount isport(clr:in std_logic;clk:in std_logic;eoc: out std_logic;q: buffer std_logic_vector(6 downto 0));end;architecture beha of addrcount isbeginprocess(clr,clk)beginif(clk'event and clk='1') thenif clr='0'thenq<="0000000";elsif(q="1111111")thenq<="1111111";elseq<=q+1;end if;end if;end process;process(q)beginif(q="1111111") theneoc<='0';elseeoc<='1';end if;end process;end beha;

2.3双口RAM模块

       对于高速数据接收,一般发送端和接收端的时钟是异步的,这就涉及到异步时钟域数据的传输的问题,此外在不同时钟控制的时钟域中传递数据时,了避免发生亚稳态和产生毛刺,应该做好异步时钟域之间的隔离处理。通常,可采用DPRAM以数据缓冲的形式来作为异步时钟域之间的隔离接口。

LIBRARY ieee;
USE ieee.std_logic_1164.all;
LIBRARY altera_mf;
USE altera_mf.all;
ENTITY lpm_ram_dp ISPORT(clock		: IN STD_LOGIC ;data		: IN STD_LOGIC_VECTOR (7 DOWNTO 0);rdaddress		: IN STD_LOGIC_VECTOR (7 DOWNTO 0);wraddress		: IN STD_LOGIC_VECTOR (7 DOWNTO 0);wren		: IN STD_LOGIC  := '1';q		: OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
END lpm_ram_dp;
ARCHITECTURE SYN OF lpm_ram_dp ISSIGNAL sub_wire0	: STD_LOGIC_VECTOR (7 DOWNTO 0);COMPONENT altsyncramGENERIC (address_aclr_a		: STRING;address_aclr_b		: STRING;address_reg_b		: STRING;indata_aclr_a		: STRING;intended_device_family		: STRING;lpm_type		: STRING;numwords_a		: NATURAL;numwords_b		: NATURAL;operation_mode		: STRING;outdata_aclr_b		: STRING;outdata_reg_b		: STRING;power_up_uninitialized		: STRING;read_during_write_mode_mixed_ports		: STRING;widthad_a		: NATURAL;widthad_b		: NATURAL;width_a		: NATURAL;width_b		: NATURAL;width_byteena_a		: NATURAL;wrcontrol_aclr_a		: STRING);PORT (wren_a	: IN STD_LOGIC ;clock0	: IN STD_LOGIC ;address_a	: IN STD_LOGIC_VECTOR (7 DOWNTO 0);address_b	: IN STD_LOGIC_VECTOR (7 DOWNTO 0);q_b	: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);data_a	: IN STD_LOGIC_VECTOR (7 DOWNTO 0));END COMPONENT;
BEGINq    <= sub_wire0(7 DOWNTO 0);altsyncram_component : altsyncramGENERIC MAP (address_aclr_a => "NONE",address_aclr_b => "NONE",address_reg_b => "CLOCK0",indata_aclr_a => "NONE",intended_device_family => "Cyclone",lpm_type => "altsyncram",numwords_a => 256,numwords_b => 256,operation_mode => "DUAL_PORT",outdata_aclr_b => "NONE",outdata_reg_b => "CLOCK0",power_up_uninitialized => "FALSE",read_during_write_mode_mixed_ports => "DONT_CARE",widthad_a => 8,widthad_b => 8,width_a => 8,width_b => 8,width_byteena_a => 1,wrcontrol_aclr_a => "NONE")PORT MAP (wren_a => wren,clock0 => clock,address_a => wraddress,address_b => rdaddress,data_a => data,q_b => sub_wire0	); END SYN;

2.4时钟分频模块

       一般在高速系统中,时钟的生产有两种方法实现,PLL锁相环法和计数器分频法。下面我们对两种方法做简单的介绍。

    计数器分频器的设计比较简单,其主要通过计数器来控制时钟发现跳板的周期,这里我们对其工作原理就不做介绍了。本系统由于使用的分频器比较简单,因此在这个系统中,我们将实用计数器分频器来设计时钟。

    其实现的VHDL代码如下所示:

LIBRARY IEEE;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fredivid isport(clkin:in std_logic;clkout: out std_logic);end fredivid;architecture one of fredivid issignal q:std_logic_vector(1 downto 0);beginprocess(clkin)beginif(clkin'event and clkin='1')thenif(q="11")thenq<="00";elseq<=q+1;end if;end if;end process;process(q)beginif(q(1)='1') thenclkout<='1';elseclkout<='0';end if;end process; end;

三、测试结果

     最后,对于设计完成的系统,我们得对其资源做分析。本系统其资源实用情况如所示:

图1 资源使用分析

本系统,我们共实用逻辑单元2048个。

图2 时序分析报表

     其中tsu,tco,tpd,th分别为7.098ns,14.272ns,9.109ns,0.227ns。后面的输入信号频率基本在200M左右,达到高速传输的要求。

A28-35

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...