目录

一、理论基础

二、核心程序

三、测试结果


一、理论基础

数据采集是指将模拟量采集转换成数字量后,再由计算机进行存储、处理、显示或打印的过程,相应的系统称为数据采集系统。随着科技进步,人们对数据采集的要求也越来越高,比如采样频率,分辨率等等。基于单片机的数据采集系统数据处理能力比较低,已经无法达到某些要求。科技的不断创新及半导体工业的发展使得我们将可编程逻辑器件的技术应用到数据采集系统的研究上。同时利用CPLD 强大的数字处理功能和高密集成的特点,降低了硬件的成本,简化了电路设计,具有很好的经济效益和社会效益。有此看出,数据采集系统日趋成熟,应用越来越广泛,发展前景是相当广阔的。

在计算机广泛应用的今天,数据采集的重要性是十分显著的。它是计算机与外部物理世界连接的桥梁。在工业,工程,生产车间等部门,尤其是在对信息实时性能要求较高或者恶劣的数据采集环境中更突出其应用的必要性。这就要求数据采集系统必须具备更高的采样频率,更高的分辨率,来提供更多的原始数据。以前的数据采集系统一般都是以单片机为核心的,随着数据采集要求的不断提高,单片机为核心的数据采集系统已经不能满足要求了。科技进一步发展,就出现了现在的高速数据采集系统,本课题我们将设计基于CPLD的数据采集系统。

设计一个基于FPGA的数据采集系统,以上述信号为主,其中上路信号的周期为117.6ms。采集计算出t1 t2 t3 t4后,然后计算:

m1=-0.5*(cos((6.2831*t1)/117.6)- cos((6.2831*(t1+t2)/117.6)+ cos((6.2831*(t1+t2+t3)/117.6)- cos((6.2831*(t1+t2+t3+t4)/117.6))

m2=-0.5*(sin((6.2831*t1)/117.6)- sin((6.2831*(t1+t2)/117.6)+ sin((6.2831*(t1+t2+t3)/117.6)- sin((6.2831*(t1+t2+t3+t4)/117.6))时间单位是ms,并记录m1m2的值,得到一系列数据。

时间单位是ms,并记录m1,m2的值,得到一系列数据,这个信号很短,最多30s就停止了。仿真时我认为可以给系统指定信号,用来验证系统是否准确。

数据采集是指将模拟量采集转换成数字量后,再由计算机进行存储、处理、显示或打印的过程,相应的系统称为数据采集系统。随着科技进步,人们对数据采集的要求也越来越高,比如采样频率,分辨率等等。基于单片机的数据采集系统数据处理能力比较低,已经无法达到某些要求。科技的不断创新及半导体工业的发展使得我们将可编程逻辑器件的技术应用到数据采集系统的研究上。同时利用FPGA 强大的数字处理功能和高密集成的特点,降低了硬件的成本,简化了电路设计,具有很好的经济效益和社会效益。有此看出,数据采集系统日趋成熟,应用越来越广泛,发展前景是相当广阔的。

在计算机广泛应用的今天,数据采集的重要性是十分显著的。它是计算机与外部物理世界连接的桥梁。在工业,工程,生产车间等部门,尤其是在对信息实时性能要求较高或者恶劣的数据采集环境中更突出其应用的必要性。这就要求数据采集系统必须具备更高的采样频率,更高的分辨率,来提供更多的原始数据。以前的数据采集系统一般都是以单片机为核心的,随着数据采集要求的不断提高,单片机为核心的数据采集系统已经不能满足要求了。科技进一步发展,就出现了现在的高速数据采集系统,本课题我们将设计基于FPGA的数据采集系统。

由于数字信号的抗干扰性和精度等方面都比模拟信号信号优越,所以在现代信号处理中,一般都是将模拟信号采样、量化、编码成为数字信号之后再处理。奈奎斯特(Nyquist)采样定理告诉我们:对于一个频带有限信号x(t),其频带限制在内,如果以不小于的采样率对x(t)进行等间隔采样,得到时间离散的采样信号x(n),原信号x(t)就能被采样信号x(n)完全恢复。

从数学上可以进一步证明Nyquist采样定理,也就是推导用离散采样值x(n)表示带限信号x(t)的数学表达式,多种文献对此有详细推导,故这里不再赘述,只给出结果。

AD芯片型号比较多,但是工作原理基本一致,本章节,我们以最常见的AD0809为例子来介绍AD芯片的工作原理。

ADC0809 是8位逐次逼近型A/D转换器。它由一个8路模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。三态输出锁器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。

其中,IN0-IN7为8 条模拟量输入通道;电压范围是0-5V;地址输入和控制线:4条。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输。

数字量输出及控制线:11条,ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ。

算法的具体步骤如下所示:

步骤一:边沿检测

步骤二:计数器计数

当系统接收到质量信号的时候,则计数器开始技术,当系统检测到F的第一个高电平的时候,则检测时间t1的计算公式如下所示:

将N1的值通过上述的公式进行计算,得到t1,然后计数器同时清零,然后计数器重新开始计数,当检测第二个F的高电平的时候,依次类推,计算对应的时间t2,t3,t4。

根据上述的原理,可以得到四个时间如下所示:

步骤三:计算值得量化处理

由于数字信号处理过程中,其对应的值都是二进制整数数值,而公式3.8的计算结果往往是带小数的。这里以一个实际例子来分析在CPLD中的处理过程。

二、核心程序

always @(posedge i_clk or posedge i_rst)
beginif(i_rst)begincnt1 <= 16'd0;cnt2 <=  4'd0;o_t1s<= 16'd0;o_t2s<= 16'd0;   o_t3s<= 16'd0;o_t4s<= 16'd0;      end
else beginif(i_command==1'b1 | o_edge==1'b1)cnt1 <= 16'd0;if(i_command==1'b0 & o_edge==1'b0)cnt1 <= cnt1+16'd1;    if(i_command==1'b0 & o_edge==1'b1)cnt2 <=  cnt2 + 4'd1;if(i_command==1'b1 & o_edge==1'b0)cnt2 <=  4'd0;      if(cnt2 == 0 & o_edge==1'b1)o_t1s <= cnt1;if(cnt2 == 1 & o_edge==1'b1)o_t2s <= cnt1;if(cnt2 == 2 & o_edge==1'b1)o_t3s <= cnt1;if(cnt2 == 3 & o_edge==1'b1)o_t4s <= cnt1;    end
end
assign o_t1_cur = i_t0    +o_t1s+1;
assign o_t2_cur = o_t1_cur+o_t2s+1;
assign o_t3_cur = o_t2_cur+o_t3s+1;
assign o_t4_cur = o_t3_cur+o_t4s+1;
always @(posedge i_clk or posedge i_rst)
beginif(i_rst)begino_t1 <= 16'd0;o_t2 <= 16'd0;o_t3 <= 16'd0;o_t4 <= 16'd0;end
else beginif(cnts == i_T)begino_t1 <= 16'd0;o_t2 <= 16'd0;o_t3 <= 16'd0;o_t4 <= 16'd0;end if(cnts < i_T & cnt2 == 3 & o_edge==1'b1)begino_t1 <= o_t1_cur+i_cycle*cnt0;o_t2 <= o_t2_cur+i_cycle*cnt0;o_t3 <= o_t3_cur+i_cycle*cnt0;o_t4 <= o_t4_cur+i_cycle*cnt0;end

三、测试结果

A28-10

基于FPGA的数据采集系统相关推荐

  1. 基于FPGA多通道数据采集系统verilog设计

    本设计实现多通道数据采集系统,该系统包括多通道数据采集和数据传输,使用verilog语言设计. 本设计实现功能:采集8路16位的AD数据,并发送到串口助手. 该设计架构图如下: 顶层模块代码如下: m ...

  2. stm32采集脉冲信号_基于STM32+FPGA的数据采集系统的设计与实现

    引言 由于火控系统工作环境特殊,所需采集信号复杂多样,传统的以微控制器或PC为主的采集系统往往难以胜任.针对上述问题,提出了一种基于STM32+FPGA的数据采集系统的设计方案,该方案不仅能够完成对多 ...

  3. 基于MQTT的数据采集系统

    基于MQTT的数据采集系统 1.实验目的 本次研究推出一款实用的轻量型智能家居系统,本系统采用STM32为主控芯片,将MQTT通信协议移植到STM32中,将其作为一个MQTTClient.该系统的核心 ...

  4. 基于单片机的数据采集系统

    摘 要:本文以AT89C51单片机为核心,设计一个基于单片机的数据采集系统.系统可以采集16路模拟量,精度为12位,16路开关量和2路脉冲量,并将采集到的数据每隔一分钟通过串口发送到PC机. 关键字: ...

  5. 基于FPGA的高速数据采集系统实现

    欢迎订阅<FPGA学习入门100例教程>.<MATLAB学习入门100例教程> 目录 一.理论基础 二.核心程序 2.1锁存器模块 2.2双口地址计数器模块 2.3双口RAM模 ...

  6. labview数据采集保存mysql_【源程序】基于Labview多通道数据采集系统 数据库存储...

    多通道数据采集系统包括采集温度.转速等信号,具有登录.数据采集.数据存储.数据分析等: 数据存储等等采用数据库完成,利用Labview完成与数据库的交互! 登录界面:输入用户名及密码,具有添加用户.编 ...

  7. 基于Python的数据采集系统

    因为年底公司确实是没有什么事情干(是要被开除了嘛),真的是闲的慌啊...最近一直在研究python的语法,但是感觉没有什么目标,所以也没有好好的研究,所以嘛,先定个小目标,做起来可能就会有些动力了,因 ...

  8. 基于labview的温湿度数据采集_【零偏原创】基于FPGA的多路SPI接口并行数据采集系统...

    摘 要:本文简述了SPI协议,建立了基于FPGA的SPI接口电路模型,并说明其输入输出端口和数据发送和接收过程,仿真验证了在主状态机控制下10个SPI接口并行采集数据,并在FPGA开发板上进行验证. ...

  9. 基于ZigBee的物联网环境数据采集系统

    1.概述 鉴于ZigBee技术适合用于数据采集系统的的特点, 提出了基于ZigBee的数据采集系统的设计方案, 着重探讨ZigBee节点的硬件设计及其组网设计. 并详细讨论了基于CC2530芯片的数据 ...

最新文章

  1. nstimer循环引用_解决NSTimer循环引用导致内存泄漏的六种方法
  2. python统计个数的函数_Python
  3. 超图预览osgb格式倾斜摄影文件
  4. spark 调度模块详解及源码分析
  5. php.c drcom,校园网绕过Drcom安装自动登录程序到路由器
  6. 线性表:链式队列算法实现
  7. SSH远程连接:简单的连接
  8. android 3.10. 内核,编译android 3.10内核源码时出错
  9. idea 包存在提示不存在
  10. C#常量——const和readonly(2)
  11. Linux平台驱动分析
  12. 史秀峰计算机网络技术与应用第二版,史秀峰版《计算机网络技术与应用》期中测试.doc...
  13. 写一个自己的javascript库
  14. excel查找空值快捷键_『EXCEL定位条件快捷键』excel定位空值填充
  15. dvr服务器系统,DVR监控软件 V1.0
  16. php对接抖音快手小红书短视频去水印接口的代码
  17. App Store榜单优化:App出海必须掌握的ASO技巧
  18. NCE4 L11 How to grow old
  19. java如何控制分屏显示,intellij idea 分屏设置 与快捷键
  20. 关于AE动画文件如何导出 cocos-creater所需的序列帧动画的方法

热门文章

  1. CSS之iconfont导入方式
  2. 学习c++的50条忠告(转自C++百度贴吧)
  3. 【Pandas】解决在pandas中的两个正数相乘结果为负值
  4. ng-zorro nz-menu修改样式
  5. 英语日常口语对话(3)
  6. Vue路由传参(params 与 query)
  7. 夜雨寄北 文/江湖一劍客
  8. A-SPICE 进程概要和 CL 计算方法
  9. 用HTML做一个圆形,css如何制作圆?
  10. 【C基础练习题】第一章:输入和输出 | 基础练习题 | 提供题解