基于LabVIEW和ARM嵌入式数据采集与远程传输控制系统

发布者:chunying最新更新时间:2015-09-09 来源: eefocus关键字:LabVIEW  ARM  数据采集  远程传输控制 手机看文章 扫描二维码
随时随地手机看文章
 基于嵌入式网络的远程数据采集系统具有不受地理环境、气候、时间的影响,小型便携,使用灵活方便,交互操作性好,传输速率高,可靠性高,功耗低和移动性好等优点。目前常用的嵌入式CPU中,ARM由于性价比在同类产品中比较突出,目前用得越来越多,尤其是结合开源的嵌入式Linux操作系统以后,更是得到越来越多设计者的青睐。LabVIW作为一种功能强大,简单易用和设计灵活的图形化编程语言,已经广泛地被工业界、学术界和研究实验室所接受,越来越多地应用在虚拟仪器、测试测量、数据分析、信号处理以及远程控制中。本设计中,远程数据采集系统采用基于ARM和嵌入式Linux的方案来实现。采用高性能的ARM嵌入式微处理器Samsung S3C2440作为系统的核心,结合数据采集、下变频、存储模块,实现了数据高速实时采集。同时,利用处理器外部配备的以太网控制器CS8900完成与主机上运行的LabVIEW服务器通信,实现数据的传输与系统的远程控制。

  1 系统整体结构

  采用SamsungS3C2440作为前端数据采集系统的核心控制器件。系统的整体设计任务分为信号采集与下变频、数据存储与传输、信号显示与处理分析等。整体设计方案构架见图1。信号采集部分采用ADI公司的AD9244完成,AD9244是一款14 bit,40/65 MSPS的高性能ADC。为了满足AD9244差分输入的要求,在信号的输入端配合了AD8138低失真单端转差分ADC驱动芯片。信号采集完成后,送至ADC6620正交数字下变频器(Digital Down Conversion,DDC)处理,经过抽取和滤波后的I,Q两路正交信号在其输出的数据有效以及I/Q指示信号的配合下,由FPGA产生静态随机存取存储器(static Random Access Memory,SRAM)存储时序并存储至64 K×16 bit的SRAM中。

整体设计方案构架

  在FPGA中主要完成SRAM读写时序产生、SRAM读写地址生成、数据通道选择等工作,FPGA中的逻辑在一个16 bit的控制字寄存器的控制下有序地工作。当SRAM中存储一定量的数据后产生中断信号,提示ARM将数据取走。为了提高系统的速度,ARM采用直接数据存储(Direct Memory Address,DMA)方式读取数据。之后运行在ARM上的客户端程序将数据通过网络发送给远程主机。远程主机上的LabVIEW服务器程序对收到的数据进行显示、频谱分析、存储回放等处理,同时远程主机的控制信号以及为下变频器ADC6620设计的滤波器文件也可以通过网络发送给客户端,实现远程控制。

  2 现场数据采集系统的硬件设计

  2.1 ADC设计

  外部模拟信号从SMA(Sub Miniature-A)接口输入,隔离直流后进入AD8138 ADC驱动芯片,AD8138将单路输入信号变成两路差分信号,送至AD9244转换。AD9244中几个重要引脚的含义及接法:

  a)CML(Common Mode Reference):串联一个0.1μF的电容后接地。

  b)DCS(Duty Cycle Stabilizer):接+5 V电源时表示转换时钟为50%占空比,接地表示转换时钟的上升沿与下降沿均由外界控制。本设计中DCS接+5 V电源。

  c)SENSE(Internal Reference Control):接地时将输入信号峰峰值的范围限制为1 V,接VREF时将输入信号峰峰值的范围限制为2 V。本设计中SENSE接VREF。

  d)DFS(Data Format Select):接+5 V电源时输出数据格式为补码,接地时为直接二进制码输出。由于ADC6620将其输入数据解释成补码,本设计中DFS接+5 V电源。

  2.2 ADC6620设计

  AD6620的任务是将高速数据流变成当前可实时处理的中低速数据流。在本设计中,AD6620数据输入端代表指数含义的3位(EXP0~EXP2)接地,且工作在单输入通道模式下(A/B=3.3 V),以模式0接收来自于ARM的配置信息(MODE=GND),采用并行方式输出数据(PAR/SER=3.3 V)。

  2.3 其它设计

  本设计所采用的ARM开发板是由广州友善之臂公司所生产的QQ2440V3,其上有一个44针的系统总线接口,它与FPGA连接起来完成数据与控制信息的传输。FPGA与SRAM的设计比较简单,这里不再赘述。

  3 数据采集系统的软件设计

  为完成系统任务,需要实现几个方面的软件设计:

  a)正交数字下变频器AD6620滤波器以及控制寄存器设计。

  b)在FPGA上实现系统控制、SRAM读写地址生成、数据通道选择等功能的Verilog HDL程序。

  c)ARM上基于嵌入式Linux操作系统的数据采集硬件驱动程序。

  d)ARM上客户端应用程序。

  e)远程主机上基于LabVIEW的服务器以及显示、频谱分析、存储与回放程序。

  3.1 AD6620滤波器及控制寄存器设计

  AD公司专门针对AD6620芯片推出了滤波器设计软件fltrdsn以及监视控制软件AD6620,但该软件是基于计算机并口与AD6620芯片连接的,不适应设计中远程数据传输与控制、多客户端的任务要求。可以利用该软件将设计成功的滤波器以及配置文件保存下来,利用LabVIEW的文件处理功能自动将信息提取出来,通过网络远程配置AD6620。

  3.2 FPGA逻辑设计

  FPGA内部逻辑电路结构见图2。考虑到后续设计的需要,FPGA内部使用ARM地址总线的低3位来选择当前操作的模块,具体的地址与内部模块对应关系见表1。

具体的地址与内部模块对应关系

FPGA内部逻辑电路结构

  图2中各模块功能进一步说明如下:

  a)Input_db_part:双向数据总线分离。配合由Control_register送来的控制信号,在Conf_6620有效时将数据总线上的数据送至Config_6620模块,完成AD6620配置,在Fetch_sram信号有效时将读SRAM得到的数据传送至ARM数据总线。

  b)Control_register:控制寄存器。内部模块有序工作的核心,具体的控制定义见表2。

具体的控制定义

  c)Config_6620:配置AD6620。此模块在Conf 6620位有效时接收由ARM传来的AD6620配置信息,完成DDC滤波器和控制寄存器配置。它除了本身使用ARM地址总线的3位ARM ADD[3:1]作为FPGA内部模块选择之外,还用了ARM ADD[6:4]作为AD6620的外部接口寄存器地址。Rdy in信号用于指示写入操作成功,ARM检测到此信号有效后,进行下一次的写操作。

  d)PII:锁相环。Cyclone EP1C6Q240中有2个锁相环模块,设计中使用了其中的一个将20 MHz的时钟倍频至50 MHz,供AD9244,AD6620以及FPGA内部使用。

  e)Ad_to_sram:AD6620输出数据写入SRAM时序产生模块。AD6620工作在单通道模式时典型输出时序见图。

  此模块主要完成的功能有:用2个数据锁存器在DV与IQ信号的控制下锁存I路和Q路数据,产生写SRAM所需的地址。由于AD6620抽取率较高的缘故,输出数据率一般较低,在模块中使用了状态机在2次有效数据期间产生写SRAM的时序。此外,当写地址到达设定值时,模块产生写溢出中断,提示ARM改变控制寄存器内容,读取数据。

  a)Read_add_gen:读地址产生。在Fetch_sram位的控制下,产生读SRAM时的地址,当读地址到达设定值时,产生读溢出中断,提示ARM改变控制寄存器内容,进行下一步操作。[page]

  b)Control_logic:控制逻辑。模块在Start_daq有效时选择由Ad_to_sram模块产生的写SRAM的地址、数据与控制总线与SRAM相接,而在Fetch_sram有效时选择读SRAM的地址、数据与控制总线与SRAM相接。与DMA读取有关的请求与响应信号也在此模块中处理。

  3.3 嵌入式Linux驱动程序设计

  驱动程序是硬件与应用程序的接口。针对设计任务与硬件特点,在驱动程序中设计了以下函数:

  a) AD6620_read:申请DMA缓存,睡眠等待写溢出中断到来,DMA传输完成后,将数据从内核空间传送至用户空间,释放DMA缓存。

  b) AD6620_ioctl:核心是一个switch选择结构,根据应用程序中用户命令,完成初始化DMA,写控制寄存器或者配置AD6620的工作。

  c)AD6620 open:主要完成DMA通道参数设置,初始化IO端口和信号量。

  d) AD6620 release:完成与AD6620_open相反的工作,主要是一些清理和释放申请资源的工作。

  函数编写好后,通过下面的file_operations结构体联系起来:

程序

  e) AD6620 init:初始化函数,完成驱动程序注册、中断与中断处理函数注册、创建设备文件节点等。其中的驱动程序注册的核心就是上面的file_operations结构体。

  驱动程序编写好后,用户就可以在应用程序中调用这些函数,实现通过一组标准化的调用来操作底层硬件。

  3.4 客户端应用程序

  客户端应用程序为了保证数据与控制信息的可靠传输,采用的是基于TCP协议的Socket网络编程。本次设计客户端运行在ARM上,采用的是Linux下的C编程;而服务器端运行在远程主机上,利用LabVIEW的图形化语言实现。具体客户端的通信与控制流程图见图4。可以看出。客户端是依赖于读取由远程主机发送的控制字符来完成实时控制,实现与服务器端的交互操作的。因此,无论是客户端还是服务器端,在每一次发送数据与控制信息时,都会发送一个控制字符,接收端就是依靠识别此字符来完成相应的操作。表3中给出了控制字符与所执行操作之间的对应关系。

 

具体客户端的通信与控制流程图

  3.5 LabVIEW服务器程序设计

  服务器端的完整程序见图5。服务器在指定的端口上侦听,等待远程客户端的连接。程序的核心是两个循环框,上面的循环框完成发送数据和控制信息的任务,主要包括传送AD6620滤波器设计与控制寄存器配置文件、实时改变AD6620可动态配置寄存器内容、开始数据采集以及停止系统控制等模块。

服务器端的完整程序

  数据与控制信息内容放在LabVIEW事件框图中,当用户单击前面板上的控制按钮时,相应的信息被发送,这样就避免了系统无休止地查询,节约了系统资源。下面的循环框完成读SRAM数据接收、分离IQ信号、频谱分析与显示等,当用户使得存储文件路径不为空时,可以将此时数据显示控件上的数据保存下来;而当回放文件路径不为空时,用户可以回放之前保存的历史数据。频谱显示控件有线性与对数显示两种格式,它受前面板上的一个系统复选框的控制。

控制字符与对应操作之间的关系

  4 设计结果验证

  采用了3组实验来验证设计的正确性。实验条件:现场数据采集系统IP地址192.168.1.230,远程主机IP地址192.168.1.1,二者位于同一个局域网内。系统工作主频50 MHz,AD6620滤波器为低通滤波器,通带截止频率10 kHz,阻带截止频率15 kHz,通带内衰减0 dB,阻带衰减-60 dB,三级滤波器的抽取系数分别为10,25,2。

  第1组实验的输入信号为单频信号,频率1.005 MHz,幅度250 mV,AD6620中NCO频率字设定为1 MHz。实验恢复的I路信号及其频谱分析见图6(a)。从实验结果来看,系统采集数据频率准确,较好地恢复了信号。第2组实验的输入信号为调幅信号,载波频率1 MHz,幅度250 mV,单音调制信号频率为3 kHz,调制深度30%。AD6620中NCO频率字设定为1 MHz。实验恢复的信号与频谱分析见图6(b)。这时从频谱图上可以清晰地看出差频之后,在零频周围300 Hz处有1根清晰的谱线。第3组实验的输入信号为单频信号,频率1.018 MHz,幅度250 mV,AD6620中NCO频率字设定为1 MHz。实验恢复的I路信号与频谱分析见图6(c)。此时由于信号处于滤波器通带之外,衰减很大,不能恢复信号。I路信号显示图中类似于“毛刺”的信号是由于电路底噪声在AD6620中运算所产生。综合3组实验的结果,本次设计较好地完成了设计任务。

实验恢复的I路信号及其频谱分析

  5 结论

  数据采集与网络远程传输系统是一个高集成,特别讲究软硬件间相互配合的综合系统,强调的是协调、稳定、高速、精准地完成各项数据采样工作。本设计中,在合理设计硬件的基础上,分别对FPGA,ARM以及远程主机上的服务器程序精心设计,解决了以往系统在大量数据采集、传输、储存、读写和处理时的速度以及灵活性问题。利用LabVIEW功能强大、简单易用,设计灵活的图形化编程语言,很容易地实现了对远程数据采集终端的配置与控制。

关键字:LabVIEW  ARM  数据采集  远程传输控制 引用地址:基于LabVIEW和ARM嵌入式数据采集与远程传输控制系统

上一篇:使用调用节点从图形中输出图像
下一篇:LabVIEW不能连接数据采集卡

推荐阅读最新更新时间:2024-03-30 23:04

stm32.cube(七)——arm-gcc.helloworld
一、前言 对与MDK-ARM(keil),EWARM(IAR)和TureSTUDIO(Atollic)这三个ARM常用IDE工具,在cube包里都有对应的例子。 而对于arm-gcc,cube里只提供了例程的源码。由于需要自己写Makefile,因此比起各种IDE来说,配置的复杂度要更高一点。 二、cube.gcc项目建立过程 2.1 移植代码 根据实际应用,拷贝需要用到的HAL、BSP、CMSIS、middleware、RTOS代码到工程文件夹。 比如一个项目用到了触屏,就从middleware目录下拷贝STemWin。 用到的芯片peripheral,就从HAL目录下拷贝相应的hal_xxx_xxx.c和hal_xxx_x
[单片机]
ARM第二代T600系列图形处理器详解
近日,ARM公布了其第二代T600系列图形处理器:T624、T628以及T678。这是继2010年公布T600系列后的进一步重大升级。 ARM多媒体处理部门市场营销副总裁Kevin Smith表示,除了GPU效率提高一倍以上,更重要的是支持了ASTC压缩格式。 ASTC 的官方解释为:ASTC支持广泛的图像格式和比特率,其提供的质量明显优于大多数正在使用的格式。设计厂商可在应用设计中全面使用纹理压缩技术,并根据不同的使用案例选用最佳的格式和比特率。高效的纹理压缩标准更进一步减少了目前市场领先的Mali GPU的内存带宽和内存占用,并同时提高了移动设备的电池续航时间。 Kevin指出,“目前在带宽传输上会消费大量无用功,因此A
[嵌入式]
<font color='red'>ARM</font>第二代T600系列图形处理器详解
富士通的MCU创新:FRAM+ARM
MCU业者除藉由自行研发或取得相关授权IP外,若加上自身研发多年的内存与频率控制等节能技术加值,加上集团企业上中下游端的垂直整合优势,亦可在众多MCU市场中开辟另一个蓝海市场… 部分MCU业者,除自行研发或取得MCU相关IP授权,也强调集团下自有IC设计公司、晶圆厂与封测厂下,在MCU制造前端的技术规格加值及中/后段享有的垂直整合优势。 以富士通半导体为例,其旗下MCU产品线有强调低价高效能8位FFMC8L/8FX系列CISCMCU,主打家电、工业控制、车用电子、居家保全与PC周边;强调价格效能比的16位FFMC16LX/16FX系列CISCMCU,主攻车用电子、工业控制、变频/转换器应用、数字AV视听应用,以及打
[单片机]
ARM嵌入式汽车节能控制系统的设计
由于各种原因,公交车总是不断重复加速-减速或停车-再加速的过程。 通过加装本节能装置,当汽车需要制动时,在主控单元的控制下,可将汽车行驶时具有的巨大动能通过空气压缩机转化成高压气体的势能并储存起来,从而实现汽车减速或停车。当汽车需要启动或加速时,用储存起来的高压气体势能代替燃油来驱动汽车,从而实现汽车能量的回收再利用,达到节能的效果。同时由于汽车在起动或加速时能耗最大,如果汽车是用燃油驱动,则此时油料燃烧不充分,燃烧效果最差,而且产生的噪音最大。 系统工作原理 本系统主要由三部分组成,即检测部分,控制部分和执行机构。检测部分包括踏板位置传感器、曲轴位置传感器、压缩机活塞位置传感器、汽车运行速度传感器、储气罐压力传感器
[单片机]
<font color='red'>ARM</font>嵌入式汽车节能<font color='red'>控制</font>系统的设计
ARM基础知识连载之三
在ARM体系中通常有以下3种方式控制程序的执行流程: **在正常执行过程中,每执行一条ARM指令,程序计数器(PC)的值加4个字节;每执行一条Thumb指令,程序计数器寄存器(PC)加2个字节。整个过程是按顺序执行 。 **跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行。其中,B指令用于执行跳转操作;BL指令在执行跳转操作同时,保存子程 序的返回地址;BX指令在执行跳转操作同时,根据目标地址为可以将程序切换到Thumb状态;BLX指令执行3个操作,跳转到目标地址处执行,保存子程序的返回 地址,根据目标地址为可以将程序切换到Thumb状态。 **当异常中断发生时,系统执行完当前指令后,将跳转到相应
[单片机]
基于ARM+uCLinux的网络控制系统设计与实现
引言 随着网络和通信技术的发展,嵌入式系统现已进入高速发展阶段。并在社会各个领域得到了广泛的应用。本文介绍了一种采用ARM+uCLinux作为开发平台。实现基于TCP/IP的远程系统监控.从而取代传统单片机 来实现数据采集、预处理和通信功能;并依靠互联网将数据向上位机传送,同时支持远端客户对设备进行远程控制,从而实现远程监控功能的具体方法。 1 系统平台的构建 本系统由嵌入式平台服务器 、前端控制器、前端传感器置PC来下载系统和应用软件。嵌入式系统平台能够收集现场数据。并传送到远端客户机,之后由远端客户机对数据进行处理,接着发送控制信号给系统服务器,以便通过前端控制器对设备进行远程控制。其系统结构如图1所示。
[单片机]
基于<font color='red'>ARM</font>+uCLinux的网络<font color='red'>控制</font>系统设计与实现
高精度微功耗数据采集系统设计与应用
    摘要: 高精度微功耗数据采集系统的设计原理,叙述了其关键芯片ADS1212的结构和原理以及使用方法,给出了详细的设计电路图和程序片段。     关键词: 高精度 微功耗 ADS1212 数据采集系统 对于水下弱磁信号的检测和处理,需要一个能连续工作几个月甚至一年以上的采样精度很高的数据采集处理系统,这就要求该系统必须具有高精度微功耗的功能。本文所介绍的就是能满足这一要求的数据采集系统,它在笔者的工作中已经得到了充分的应用和试验。该系统采用ADS1212作为模/数转换器,它是一个具有高精度、宽动态特性的 Δ- ∑型A/D芯片。下面先对该芯片的主要特点和用法进行简要介绍,随后介绍ADS1212与微功耗单片
[应用]
采用ARM和蓝牙无线信号采集系统的设计与应用
  对于近距离的无线传输, 蓝牙 由于采用快速跳频技术,确保了链路的稳定,同时使干扰可能造成的影响变得很小,适合用于存在大量噪声干扰的工业测试环境中,由于无线传输的是数字量,因此在通常情况下没有传输误差,不会影响到系统的准确度,并且可以单芯片实现,体积功耗都能达到很小的水平。 无线测试 技术在工业领域有广泛的应用前景。在连线复杂并需要反复拆装被测设备和测试设备之间连线的场合,使用无线可以降低工作的复杂程度,节约大量的时间,提高测试环节的工作效率,尤其在有时间限制时其优越性更加明显。此外在不适宜连线的场合,如港口、码头、江河湖坝、野外勘测、石油勘探中油井深处环境参数的测量,使用无线测量具有有线测量无法比拟的优越性。 本文针对
[单片机]
采用<font color='red'>ARM</font>和蓝牙无线信号采集系统的设计与应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved