基于LabVIEW串口通信的数据采集串口收录系统设计

发布者:RainbowJoy最新更新时间:2016-07-27 来源: eepw关键字:LabVIEW  串口通信  数据采集  串口收录系统 手机看文章 扫描二维码
随时随地手机看文章
可视化编程软件LabVIEW不仅能很轻松地将各种软硬件连接起来,还提供了强大的后续数据处理能力。与传统仪器相比,虚拟仪器提高了仪器资源的可再用性和可移植性,只需在原有基础上作相应改动即可增强它的功能,无需更换硬件设备[1]。基于此,本文在研究LabVIEW的基础上,开发了基于LabVIEW的串口收录系统,以单片机为核心的硬件部分作为前端数据采集系统,可实现200 kHz的采样速率、16 bit的分辨率,具有采样率高、应用性强等优点。该收录系统将采集数据以曲线方式显示在上位机上,以二进制.dat格式记录,并且可回放记录的数据,这是该系统的创新点。

1 系统总体方案

系统总体方案框图如图1所示,主要由前端数据采集和上位机波形显示记录两大部分组成。前端数据采集部分以单片机AT89C52为核心,8 KB内部ROM空间,硬件部分采集到的数据通过串口通信传送给上位机,收录系统实时显示、记录、回放接收的数据。


2 硬件部分的设计

2.1 数据采集部分

该部分采用美信公司的MAX306芯片和ADI公司的AD976芯片。MAX306内部提供16个信号通道,可在程序编程中指定某通道,通道选择端由单片机P1口低4位控制,信号经过某通道后送入A/D;AD976采样率为200 kHz/s、分辨率为16 bit,采集信号范围为-10 V~+10 V,精度为(1/216)×VREF=(1/216)×20=0.305 mV。A/D数据传送端和单片机P0口相连,A/D控制端和P1口高4位相连。

2.2 串口通信部分

上位机和下位机通过RS-232串口进行数据接收和发送,传输介质为二芯屏蔽电缆,简单易用。下位机采用TTL电平,串口采用RS-232电平,因此串口通信需经过电平转换,电路采用MAX232电平转换芯片,串口采用母头接法。通信前先进行初始化,包括串口工作方式、通信波特率设定等,这在下位机软件中实现。

3 软件部分的设计

3.1下位机软件部分

下位机软件部分采用C51语言编写,这是专门为51系列单片机设计的高效率C语言编译器,符合ANSI标准,程序代码运行效率高,比汇编语言更简单易用[2]。

下位机软件程序流程图如图2所示。BUSY为转换结束状态标志位,BUSY=1表示转换完成可以读取,否则,继续转换。将读取结果送给AT89C52处理,转换为十进制后传送给液晶和上位机,喂狗部分防止程序跑飞。软件实现定点叠加平均数据处理、看门狗定时复位和冗余避错功能,将连续采集的3次数据求平均值,使得采集结果更准确。

其中十进制的转换是关键,转化公式是:
实际模拟量=(1/216)×VREF×ValueP0。
其中,VREF为A/D参考电压20 V,ValueP0为A/D转换后的二进制结果。

3.2 上位机软件部分

上位机软件部分采用LabVIEW语言编写,程序中用到VISA资源包。VISA是虚拟仪器软件构架的缩写,是仪器编程的标准I/O API,可控制GPIB、串口、USB、以太网、PXI或VXI仪器,并根据使用仪器的类型调用相应的驱动程序,用户无需学习各种仪器的通信协议

LabVIEW收录系统程序流程图如图3所示。按下开始读取按钮后,程序进行串口配置,串口配置好后通信分两路实现,分别用于数据读取和数据存储:读取的数据显示在波形图标中;数据以二进制格式.dat文件存储在硬盘中。存储之前程序弹出对话框让用户指定存储路径。波形显示采集数据的同时,还可以回放之前已存储的数据文件,实现采集和回放同时进行。

3.2.1 上位机软件实现过程

软件编写要用到VISA Configure Serial Port.vi、VISA Property Node.vi、VISA read.vi、VISA Close.vi、Write To Binary File.vi及Graph Chart.vi[1]。其功能分别是:
(1)VISA Configure Serial Port.vi用于串口配置,如串口资源名、波特率、数据位数、停止位、校验位等的设置。
(2)VISA Property Node.vi用于读取属性,将接收到的数据全部读出来。
(3)VISA Read.vi用于读取串口接收来的数据。
(4)VISA Close.vi释放串口资源,关闭函数。
(5)Write To Binary File.vi将接收数据以二进制形式保存起来。
(6)Graph Chart.vi用于显示采集波形。

3.2.2 LabVIEW系统界面和程序

根据上位机软件设计流程图,利用NI公司的可视化编程软件LabVIEW编写完成的系统界面如图4所示。运行前,用户只需设置串口资源,选择串口号、波特率大小、传输数据位数、停止位、校验位等。串口工作在方式1,传输1帧信息为10 bit,其中1 bit起始位、8 bit数据位(先低位后高位)、1 bit停止位[4]。

图4上面部分为开始读数据、停止读取、回放、停止回放和退出系统5个控制按键。两个图形控件分别显示读取波形和回放波形,读取值以数字形式显示在读取值窗口。系统界面还可以利用LabVIEW自身强大的数据处理能力,借助内部处理函数进行波形调理、波形测量、FFT变换和滤波等。


4 测试与结论

将下位机程序下载到单片机,打开电源,按下采集独立按键,给MAX306某通道加上2 V左右的电压信号,测得结果如图4所示。借助信号发生器给单片机输入-10 V~+10 V范围内的任意波形,在上位机均可得到相应波形。

本文利用单片机采集数据,使用LabVIEW编写串口接收数据界面,将结果以二进制.dat格式存储起来,带查看回放功能,较好地实现了数据采集的实时显示和存储,达到了系统的设计要求和预期目标。该LabVIEW显示界面可应用于其他具有串口接口的数据采集系统,目前已应用于航空物探部分数据的收录。

关键字:LabVIEW  串口通信  数据采集  串口收录系统 引用地址:基于LabVIEW串口通信的数据采集串口收录系统设计

上一篇:基于LabVIEW的蓄电池在线监测系统设计
下一篇:labview中应用的一些小操作

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

使用NI智能相机和LabVIEW来开发零件精加工和检测系统
  在去除之后,机器人会用NI 1722智能照相机随机检查表面缺陷,比如裂痕,压痕,擦痕以及在表面的加工痕迹。   挑战:   自动去除毛刺并为飞机引擎的涡轮机翼进行最终检查。   解决方案:   基于NI LabVIEW建立一个机器人单元以精确地去除毛刺并用NI 1722 智能相机 为涡轮机翼进行质量检查。   “通过使用NI硬件和软件,我们可以用先前开发的解决方案实现材料移除和检测解决方案的无缝结合。”   为了能自动去除毛刺并为飞机引擎的涡轮机翼进行检查,AV&R Vision & Robotics设计了使用六轴机器人的系统操控机翼,从而将两个关键操作结合在一起。首先,我们用特定的工具选择去除机
[测试测量]
使用NI智能相机和<font color='red'>LabVIEW</font>来开发零件精加工和检测<font color='red'>系统</font>
学习51单片机晶振这21问题搞懂了学单片机就简单了
在初学51单片机的时候,总是伴随很多有关与晶振的问题,其实晶振就是如同人的心脏,是血液的是脉搏,把单片机的晶振问题搞明白了,51单片机的其他问题迎刃而解…… 有关51单片机有关晶振的问题一并总结出来,希望对学51的童鞋来说能有帮助。 一,为什么51单片机爱用11.0592MHZ晶振? 其一:因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。 其二:用11.0592晶振的原因是51单片机的定时器导致的。用51单片机的定时器做波特率发生器时,如果用11.0592Mhz的晶振,根据公式算下来需要定时器设
[单片机]
学习51单片机晶振这21问题搞懂了学单片机就简单了
LabVIEW中测试测量数据的存储(6)
接着介绍LabVIEW中的另外两种文件格式。首先是Bytestream。 这个文件格式说穿了就是二进制文件。就两个VI,分别是读和写。基本支持LabVIEW中的任何类型的数据。只要你在LabVIEW中能造出的数据,都可以用这种文件格式存储。可以猜测,其实这两个VI做的事情也比较简单,直接把LabVIEW在内存中的这部分数据写到文件中就行了,当然这样做的话,效率也比较高,因为没什么运算的步骤。但是也有部分缺点,比如直接把数据写到文件中也不见得好,真正的问题是如何管理这些数据。例如,读文件的时候也需要知道究竟这些文件存储了什么类型的数据,究竟存储在文件的什么位置等等。 总的来说,如果用户追求纯
[测试测量]
LabVIEW 8.2的概率与统计计算
  如表详细列出了概率与统计子选板中函数和VI节点的图标、接线端、名称和功能。   如表 概率与统计节点
[测试测量]
<font color='red'>LabVIEW</font> 8.2的概率与统计计算
基于ISA总线的高速同步数据采集系统设计
    摘要: 一种基于ISA总线的高速同步数据采集扩展卡,讨论了经合理的逻辑控制以协调高速A/D转换与快速存储操作的总线接口技术,以及用极少的PC机I/O口地址资源实现数据的快速交换的方法。应用表明,其高速的数据采集、灵活的双向数据交换能力及数据的同步性,可广泛用于信号测量的各种领域。     关键词: 高速数据采集 ISA总线 接口 随着大规模集成的电路的飞速发展,PC机性能不断提高。在PC机扩展槽中嵌入以高性能微处理器为核心的智能型功能卡,可以组成综合性能极佳的分布式控制系统。这种结构方式可充分利用微处理器的控制功能、PC机的快速数据处理能力,以及多任务工作方式等特点。对于这种分布式控制系统,主机要频敏接
[应用]
对于51单片机和arm9开发板串口通信问题的分析
距离毕设的时间还剩20天左右,这几天一直忙着做毕设,今天终于将51单片机和串口通信的问题解决了,抽出点时间,写一下遇到的问题。不然,过几天又忘了,记录下来也给后续学习的技术宅能提供一点帮助。 我的串口实验是:ARM9 控制板通过串口发送一个指令,51接受到这个指令后,根据这个指令控制小车的运行方式。(为什么不用arm9直接控制小车而采用51控制小车呢? 答:我的想法是电机驱动这一块直接交付给下一级控制器,程序简单,容易实现,况且通过串口,只需解析一个指令就可以实现)。 1、做此类串口通信一定要记得共地,我采用的方法是直接用5v直流输出引出了两个接口,分别为两个控制板供电,这样的话串口通讯的电压没有一点问题。 2、做串口通讯的
[单片机]
matlab与stm32之间利用串口通信记录
1、涉及到的函数 serial,fopen,fclose, instrfindall,instrhwinfo, fprintf,fscanf,fwrite,fread,isempty 1.1 串口函数 scom = serial('com6','BaudRate',115200,'BytesAvailableFcnMode','byte'); fopen(scom); . fclose(scom); 或者对串口属性单独设置,如下: scom = serial(com); scom.BaudRate = 115200; scom.InputBu
[单片机]
ARM的串口通信配置
#include Usart.h #include stdio.h void usart_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; USART_ClockInitTypeDef USART_ClockInitStructure; ////////////////////////////////////////////////////////////////// // USART_ClockI
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved