0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于LPC2142微控制器和EP1C3T100器件实现高速数据采集卡的设计

电子设计 来源:电子设计工程 作者:占林松 , 夏应清 2020-04-23 07:46 次阅读

1、 引言

随着现代工业生产和科学研究对数据采集要求的日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要高速采集数据。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,存在以下缺点:安装复杂,价格昂贵,受计算机插槽数量、地址、中断资源限制,可扩展性差,在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。

本数据采集卡采用Philips公司LPC2142微控制器(基于ARM7内核,内置了宽范围的USB 2.0串行通信接口),有效地解决了传统高速数据采集卡的缺陷。

2、 基于ARM的数据采集卡原理

本系统主要由双通道模/数转换器AD9238、ARM微控制器及FPGA器件EP1C3T100组成。结构框图如图1所示。AD9238具有A、B两个通道,前端的差分放大器模拟信号放大后送至AD9238,由AD9238将模拟信号转换成12位的数字信号,同时送至FPGA中的FIFO缓存器。由LabVIEW设件制作的界面向LPC2142发送控制指令,LPC2142读取FIFO缓存器中的数据并通过USB端口发送给主机。主机还可通过界面菜单选择采样频率、采样的起始点、模拟信号调理及读取精度测频数据等。

基于LPC2142微控制器和EP1C3T100器件实现高速数据采集卡的设计

3、 数据采集卡的硬件结构

3.1 AD9238简介

AD9238是美国模拟器件公司(ADI)推出的12位、双通道模数转换器。该转换器分为3种型号,采样率最高分别可达20 MS/s,40 MS/s和65 MS/s。它提供与单通道A/D转换器同样优异的动态性能,但是具有比采用2个单通道A/D转换器更好的抗串扰性能;采用单3 V供电(2.7 V~3.6 V);Rsn=70 dBc;Rsfd=85 dBc;ENOB=11.3 b;差分输入时有500 MHz的3 dB带宽;带有片上的参考电压和SHA;1~2 Vpp的模拟输入范围;输出数据格式为偏移一进制码或者一进制补码。

AD9238的两个通道分别采用一个AD8138做为运放驱动器。I/O两路中频模拟信号分别经过2个AD8138变为差分信号送给A/D转换器(第2,3,14,IS引脚)。

高速ADC时钟的占空比很敏感,一般来说需要有50%(±5%)的占空比。AD9238给每个通道单独提供时钟(引脚CLK_A和CLK_B),当2个通道的采样时钟同频同相时,性能较好,当2个通道不同步时,性能会有所下降。

本数据采集卡采用40 MHz的AD9238,单双通道选择和转换频率可由软件控制。

3.2 Cyclone系列FPGA器件

由于高速数据采集系统的特殊要求,在众多FPGA器件中选择了Altera公司的Cyclone系列器件。Cyclone系列基于先进的Stratix的工艺构架,为高速应用提供了极高的性价比,此外Cyelone系列器件内部RAM存储器可以生成FIFO缓存器,为高速采样提供缓存空间。

Altera公司的Quartus II软件是一款易于使用的综合开发工具,它集成了Altera的FPGA/CPLD开发流程中所涉及的所有工具和第三方软件接口,界面友好,为设计提供了便利条件。

这里FPGA器件主要完成数据缓存、等精度测频、采样频率分频及触发控制等工作。

3.3 FPGA在触发控制中的应用

由于此数据采集卡是高速缓存式的,缓存空间有限,所以不能采用连续式采集方式,而采用触发式采集方式。为了提高数据采集卡的适用能力,不仅可以采集周期信号,而且可以采集触发信号,还可手动触发采集,笔者增加了触发点捕捉电路。系统主要由AD8561电压比较器和FPGA器件组成,AD8561转换速度很高,可满足判断速度足够高的要求。首先模拟信号送到AD8561比较器的正输入端,负输入端连接至LPC2142的D/A转换器输出端,LPC2142的D/A转换器输出电压作为AD8561比较器的参考电压,此参考电压可以通过向LPC2142的D/A转换器的寄存器写入不同值进行调节,此调节最终通过由LabVIEW制作的界面控制。当输人信号电压高于参考电压时,AD8561的输出端TOUT拉高,TOUT的电平可以通过向AD8561的LATCH端输入高电平进行锁存。触发控制电路图如图2所示。

在手动采集方式下,TRIENO为低电平,TRIEN1高电平,当缓存器为空即FWr_FUL为高电平,通过LabVIEW制作的界面控制QSTART为高电平时,FWr_EN被拉高进行数据采集。当缓存器满时FWr_FUL被拉低,停止采集数据。

在输入信号触发方式下,TRIEN0和QSTART为低电平,当缓存器为空即FWr_FUL为高电平,输入信号电压高于比较器的参考电压时,TOUT被拉高,FWr_EN被拉高进行数据采集。当缓存器满时FWr_FUL被拉低,停止采集数据。拉高TRIEN1后读取缓存数据。

采集周期信号和输入信号触发方式相似,只是保持TRIEN1为高电平。在读取缓存数据时.触发信号到来后采集数据。

4、 高速数据采集卡的软件设计

4.1 基于μC/OS-II的USB驱动编程

μC/OS-II提供了多任务实时操作系统的内核。在应用该操作系统时,通常需要用户自己编写基于μC/OS-II的外围器件驱动程序,以使外围器件能在操作系统的协调下更好地为用户服务。为了使软件可移植性强、易维护,笔者在编写LPC2142 USB固件时综合考虑USB协议、LPC2142 USB硬件条件,把驱动程序分为5层,如图3所示。图中的双向线表示用户软件与USB固件之间存在着数据交换,单向线表示上层软件对下层软件的调用,这样使得固件结构分明。

拥有了USB驱动程序,用户可在此平台上完成用户软件所要实现的任务,如图4所示。单向线表示主任务对读写任务的控制。主任务通过信号量控制读/写任务的运行状态,从而实现对FIFO缓存器的读和写;双向线表示各个模块之间存在着数据交换。为了加快大量数据的收发,本程序把LPC2142USB的逻辑端点1作为控制命令的传输通道,把端点2作为数据的传输通道。

主任务不断的读取端点1,当接收到PC机发来的读命令时,就激活高优先级读任务的准备就绪信号量。读任务被唤醒进入读中断服务程序,将缓存器的数据通过USB总线发送给PC机,发送完毕后就关闭读任务的就绪信号量,返回到主任务的循环中,等待PC机发来的下一个命令。写任务与此相似,不再叙述。

4.2 基于LabWindow/CVI的主机软件编程

4.2.1 LabWindows/CVI简介

作为虚拟测量仪器,关键是要具有易于生成良好操作界面和强大数据处理能力的工具软件。本系统的程序设计是用LabVIEW开发的。LabVIEW是美国NI公司开发的基于C/C++的专门用于虚拟仪表及过程控制的可视化编程语言,采用LabVIEW提供的控制件库(包括开关、旋钮、图表等)很容易地设计出符合实际要求、新颖美观的操作界面。此外LabVIEW具有很强的数据处理功能,它提供了丰富的库函数用于数据输入接口、数据处理(FFT等)和图形显示等功能,为开发应用软件带来极大方便。图5为LabVIEW开发的系统操作界面。

4.2.2 程序设计

整个设计程序包括四个部分:面板设计、初始化、数据采集、数据处理和结果显示,通过精心设计程序,基本完成了预定的各项测量功能。并保证了系统的运行速度。各部分功能介绍如下。

(1) 面板设计:提供友好的操作界面,符合常规测量仪器的操作习惯。

(2) 初始化:完成系统初始化功能,包括复位、送工作方式字、设置程序运行参数等。

(3) 数据采集:LabVIEW不能直接访问用户自己设计的硬件,作为一个开放式开发平台,LabVIEW提供了DLL接口,使用户在LabVIEW平台上能调用其他软件平台编译的模块。并提供对象连接和嵌入技术(简称OLE)的支持。笔者利用VC++6.0编写了DLL文件,并在LabVIEW环境下调用该文件,实现了LabVIEW程序与数据采集卡的数据通信

下面即为读写USB设备所创建的DLL编译项目的相关文件:

DLLBulk.h:声明变量或功能函数的头文件。

DLLBulk.def:模块定义文件,是由若干个描述DLL模块参数的语句组成的文本文件。

DLLBulk.cpp:是DLL的主要代码文件。

对DLLBulk.dsw下的各个文件进行编译之后,在菜单栏中选择Build-》Build DLLBulk.dll就生成了可以被LabVIEW调用的DLL文件。

(4) 数据处理及显示:对内存中的采样数据进行各种处理用于不同测量目的。包括信号波形实时显示、自动测量信号幅度和时间、图盘、删除图形以及回放等附加功能。限于篇幅,程序清单此处略。

5、 结束语

文中所述的整个虚拟测量系统完全在人机交操作下运行,并随时可更改测量参数及进行各种信号处理。系统各项指标为:最高采样率为40 MHz,并可按1/2、1/4、1/8…1/128程控分频采样,双路模拟输入;ADC精度为12位;模拟输入范围为0 V~2V;在板数据缓存4 KB字节/路,传输方式为块传输。该系统可进行实时信号波形、信号最大值、最小值、峰峰值显示,同时提供了显示图形文件存盘、回放、删除处理功能。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6812

    浏览量

    147648
  • FPGA
    +关注

    关注

    1603

    文章

    21326

    浏览量

    593230
  • 数据采集
    +关注

    关注

    38

    文章

    4530

    浏览量

    112316
收藏 人收藏

    评论

    相关推荐

    关于数据采集卡选型

    各位大虾,我想请问下,USB-6009数据采集卡是否具有计数I/O功能,能否labview编程实现输出PWM波?如果不行,哪一款数据采集卡可以实现
    发表于 12-19 16:18

    教你如何更详细的为数据采集卡选型

    协议IP核,同样能实现你的目标,但是难度很大.第四步,选择采集卡处理。对于功能强大的数据采集卡,你需要选择专用的处理来预处理
    发表于 02-27 15:02

    高速数据采集卡选型时的一些关键判别要素

    高速数据采集卡的参考时钟。c,系统集成选项:PCIe接口PCIe的接口适合与主机(PC)结合,高速的PCIe接口可实现最高3.2 GByt
    发表于 03-08 10:41

    高速数据采集卡的中子检测解决方案

    高速数据采集卡,单块板卡可实现2通道、14bit、1GS/s的快速、高精度脉冲数据采集,整个系统可实现
    发表于 03-28 15:11

    数据采集卡设计

    1.概述(定位) 开发一款数据采集卡,用于模拟电压高速采集,解决目前高频模拟信号采集的瓶颈;同时板卡还包括模拟电压输出、数字I/O输出和数字
    发表于 12-17 09:09

    数据采集卡入门

    数据采集(DAQ),是指从传感和其它待测设备等模拟和数字被测单元中自动采集非电量或者电量信号,送到上位机中进行分析,处理。 数据采集卡,即实现
    发表于 01-10 10:59

    如何选择数据采集卡

    IO接口的数量是否够用,以及IO接口的电平标准是否合适。 (3)选择数据采集卡的其它功能。除了上述功能外,有些数据采集卡还有DA输出,PWM输出,计数等功能。如果执行
    发表于 01-14 09:13

    数据采集卡的功能

    `(1数据采集卡可以连接外部传感。比如温度传感、压力传感、旋转编码等等。因此,使用
    发表于 01-15 10:53

    数据采集卡如何运用

    USB数据采集卡分带缓存和不带缓存的。不带缓存的和带缓存的FIFO存储机制的需要在线传输。带缓存的大容量(相对采集速率来说)RAM存储机制的可以采集之后再转存,不过前提是要有控制信号
    发表于 01-17 15:13

    FPGA实现数据采集的方式对比(传统串口、数据采集卡及外设计接口)

    并口,虽然它的传输速率可达到1 Mb/s以上,但由于探测与主机相距较远,因此走线比较复杂。②采用通用的高速数据采集卡高速
    发表于 01-07 07:00

    用凌华9848数据采集卡实现数据采集

    小白一枚,想请教用凌华PXIE9848数据采集卡实现传感电压,温度等数据采集,其与NI数据采集卡
    发表于 09-02 00:21

    二手回收NI数据采集卡

    )PXI-6229, M系列250kS/s 32路 16bit低价位数据采集卡,带4路16bit模拟输出和48路DIOPXI-6250, M系列1.25MS/s 16路 16bit高速数据采集卡,带24路
    发表于 03-12 14:09

    请问怎样去设计高速数据采集卡

    高速数据采集卡系统的硬件怎样去设计?高速数据采集卡系统的软件怎样去设计?
    发表于 04-28 06:16

    LPC2142单芯片微控制器相关资料推荐

    概述:LPC2142是飞利浦半导体公司生产的一款控制器,它为64脚封装。
    发表于 05-19 06:03

    基于ARM处理器LPC2142高速数据采集卡设计

    提出了一种基于LPC2142且具有USB (通用串行总线) 接口的高速数据采集卡的设计方案,给出了基于ARM7处理器LPC2142和FPGA芯片的软硬件设计方法,该设计方案解决了
    发表于 03-07 10:05 9次下载