《虚拟仪器技术》结课论文
题
学
目 基于 LABVIEW 的串口数据采集系统设计
名
专业班级
学
号
院 (系)
完成时间
电子信息工程 14-01
电子信息工程学院
2017 年 5 月 30 日
基于 LABVIEW 的串口数据采集系统设计
摘要:本文介绍用于飞行控制实验平台的舵机信号采集方法。该系统由单片机和加速
度传感器组成, 在虚拟仪器软件 LabVIEW 环境下,用图形化编程语言实现串口通信,
使上位 PC 机软件对四路舵机反馈信号可进行实时监控。详细介绍了软件平台的数
据处理、 数据存储模块,最终实现了四路舵机数据采集、 实时显示、 存储等功能,
解决了舵机反馈数据量较大、通信速度快、不易观察的问题。
关键词:LabVIEW ,数据采集,串口通信
1 引言
1.1 虚拟仪器的应用背景
随着数字电子技术的飞速发展, 数字变量的实时观察和对存储数据的分析在工
业测控和实物仿真实验中有着广泛的应用。在飞行控制实验中, 对舵机信号的实时
显示、 存储、 分析具有十分重要的作用。传统仪器通常只能对静态参数和缓慢的变
化量进行测量, 而且使用不方便。虚拟仪器[1]是计算机技术和测量技术相结合的
产物,它的出现给测量技术带来了变革。与传统仪器相比,虚拟仪器提高了仪器资源
的可再用性、系统可靠性、 测量精度等性能。
1.2 LabVIE 简介
LabVIEW 是美国国家仪器公司[2]NI( National Instrument) 开发的一种虚拟仪
器平台, 它提供了丰富的数据采集、 显示、 分析和存储库函数以及各种仪器通信
标准的所有功能函数。图形化编程语言[3]便于设计、观察和修改,因此大大降低
了测试系统开发周期、 编程量,提高了开发效率。本系统的基本任务是在 LabVIEW
环境下,实时采集显示受控舵机舵角反馈信息, 用来检测舵机性能和飞行控制算法
的准确性。
2 系统的总体构成
文中的数据采集系统的硬件构成如图 1 所示,主要包括舵机执行机构( 包含四
个舵机以及电位计),带有信号调理电路、A /D 采样卡、舵机驱动电路以及 DSP[4]
的舵机控制系统,PC 机、PCI—1612C 串口卡以及电缆。
2.1 舵机执行机构以及舵机控制系统
图 1 系统总体硬件结构
舵机执行机构的内部主要由步进电机和电位计构成。步进电机步距角细分是通电
机相电流的方法来实现的。通常采用电流矢量恒幅均匀旋转的细分方法,即同时改变
电机两相电流和的大小, 使电流合成矢量等幅均匀旋转。当舵机接收到控制系统的
旋转指令时,舵机内步进电机开始旋转,引起可变电阻的阻值发生变化从而引起了电
压的变化, 通过电位计将变化的电压信号传送至信号调理电路中。
舵机控制系统的作用分为两个部分,一是控制舵机转动,舵机驱动电路接至 DSP
的 I/O 口,按照高低电平的排列组合不同控制电机的正反旋转; 二是采集舵机反馈信
号。舵机反馈信号进入调理电路进行调理达到最优采样精度后,供 A /D 采集卡采样。
DSP 将采集到的电压信号[5]进行解算,变化成舵机角度信号。舵机控制系统再将
数据以数组的形式通过 RS422 串口实时发送给上位机,PC 机串口接收到串口数据,
进行解包、计算,并实时显示、存储。
2.2 上位机的构成
上位机是插有 PCI-1612CU 串口卡的 PC 机。PCI-1612CU 串口卡支持
RS232、 RS422、RS485 三种串口通讯接口模式,共有四个串口。可以连接多个外部
设备。在板卡上,可以用跳线 JP1、JP5,JP2、JP6,JP3、JP7,JP4、JP8 分别设置四
个通道的通讯方式,每个通道可以单独设置。对于数据量较小、传输速度慢的串口通
信,可以选择 RS232 方式。由于舵机控制系统串口通信传输的数据量较大,所以选
用波特率为 230400bps 的 RS422 串口通信模式。
3 系统的软件设计
即上位机 LabVIEW 程序设计。
3.1 串口数据采集
目前,有多种软件平台可开发串口通信,颇为常用的方法有基于 VC++6.0 开
发的串口通信程序、 基于 LabVIEW 开发的串口通信程序等。在 VC++6.0 环境下
开发的串口通信程序通常利用 MSComm 控件、 WindowsAPI 函数、 CSerialPort 类
来实现。
MSComm 是微软公司提供的简化 Windows 串行通信编程的 ActiveX 控件。虽
然简单易用,但是存在实时性不高、高速通信时准确性较差、处理速度较慢等缺陷。
WindowsAPI 函数具有很强的灵活性,但是由于编程比较繁琐,要求编程人员了解一
些复杂的 API 函数,所以开发周期比较长。CSerial 是由 MuMega Technologies 提
供的一个免费的 VC++类,该类具有简单明了的接口,但多线程开发可能会导致冲突。
文中是基于 LabVIEW 环境下开发的串口数据采集平台,图形化语言方便简洁,功能
强大,实时性与可靠性高。
LabVIEW 提供了丰富的仪器控制功能, 支持 VISA、 SCIP 和 IVI 等程控软
件标准。在串口通信方面,串口操作的功能节点均使用 VISA 节点[ 68] 。VISA 是
调用低层驱动器的高层的 API, 本身并不具备编程能力,使用之前需要事先安装驱
动。文中主要使用了四个 VISA 节点:
( 1) VISA 配置函数( VISA Configure Serial Port)[9]。用于串口的初始化, 选择
串口,设置波特率、数据位、停止位和校验位,文中的串口波特率为 230400bps,8 位
数据位,1 位停止位,无奇偶校验位。
( 2) VISA 读取函数( VISA Read) 。将指定串口接收缓冲区中的数据按指定字节
数读取到计算机内存中。是本程序的重要节点。
( 3) VISA 串口字节数函数 ( VISA Bytes at Serial Port)。返回指定串口接收缓冲区
中的数据字节数。
( 4) VISA 关闭( VISA Close)。结束与指定的串口资源会话,关闭串口资源。利
用串口配置函数设置好串口参数[ 10,11], 添加一个 While 循环来随时监测串口
缓冲区中的数据,并且利用串口字节数函数判断缓冲区中是否存在字节,如果有字节
开始数据处理、显示、存储。如图 2 所示:
图 2 上位机程序流程图
3.2 数据处理、存储以及显示单元
(1) 数据处理模块主要是用来将下位机 DSP 传递到给上位机 PC 机的数据进行解
算处理成真正的舵机角位信息。下位机每帧发送的数据格式为 8 字节十六进制数,
其中每 2 个字节可以换算成一路舵机角位信息。串口读取函数[ 12] 在缓冲区读
取的都是字符串格式,需要通过字符串至字节数组转换成字节数组。文中利用整数拼
接将索引出数组中的元素拼接起来,进行计算,使计算结果可以真实反映舵机角位信
息。数据处理局部框图见图 3
图 3 数据处理局部框图
(2) 数据的存储是在将处理后的数据进行保存,便于事后分析和参考。本程序在
舵机信息实时显示之前,先要完成数据的存储,目的是当发现显示数据有误时可以分
析存储数据, 以找出出错环节。LabVIEW 中具备与测量文件有关的各种文件 I /O
节点, 例如文本文件的读写、 电子表格文件的读写、 二进制文件的读写等。文中
利用写入文本文件节点实现对数据的存储。需要注意的是, 在每次从 Whlie 循环进
入读取数据和数据处理的条件结构时,写入文本文件节点写入新的数据时都默认将原
有数据覆盖, 这样影响了数据的完整保存。文中在文本文件节点之前利用打开 /创
建 /替换文件节点和设置文件位置节点对写入新的数据的位置进行了设置, 使其每
帧新的数据
续写在旧数据之后, 保证了数据的完整保存,并将数据利用数组至电子表格转
换节点设置精度和格式, 便于读取。具体程序图如图 4 所示。
图 4 具体程序图
(3) LabVIEW 的一个突出特点是具有对采集到的数据处理和显示的强大功能。并
对显示的图形附加个性化功能,比如局部放大、显示时间波形位置等。最常用的两个
显示数据的空间就是波形图表控件和波形图控件。它们的区别在于前者能够显示历史
数据,将新得到的数据追加到原有数据上显示,而后者不保存历史数据,一次性显示
完整波形。本程序为了实时观察舵机反馈的角位信号,所以选择波形图表控件来显示。
4 实验结果
使用上述程序采集下位机 DSP 转发的舵机反馈信号,进行数据处理[ 13,14]、
显示、存储。实现了在程序界面上实时显示四路舵机动态的角位信息,图 5 所示为采
集到的舵机 1 角位信息。实验表明,整个串口数据采集系统具有以下特点:
4.1 动态数据的实时显示
上位机能够动态接收串口数据,并且经过数据解包处理,实时地显示在界面波形
图上,便于实时观察,频率可以高达 200Hz。
4.2 数据完整存储
上位机软件能够实时存储接收到的数据,并且以便于事后分析的格式完整存储,
其存储数据可以直接导入 MATLAB 等软件经行分析。
4.3 波形图的操作和存储功能
用户可以根据需要改变前面板波形图的幅值,XY 轴,局部放大图像和
导出简化波形。可以使用户对提取的波形进行实时分析,或者对某一区域进行分
析。
4.4 串口和传输速率的更改功能
本程序是基于 PCI - 1612 串口卡进行设计,在程序中共有 4 个 RS232 串口
和 4 个 RS422 串口可以随时更改,传输波特率可以从 10bps 至 921600bps 进行设定。
5 总结
文中介绍了应用于某飞行控制实验平台的串口数据采集系统。实践证明,该平台
操作简单,界面直观,能够方便操作人员实时监测舵机反馈的角位数据的正确性,也
可以事后分析存储下的数据。程序方便更改、扩展,具有很强的通用性。
参考文献
[1]刘君华。基于 LabVIEW 的虚拟仪器设计[ M].北京: 电子工业出版社,2003:
45-53.
[2]唐 鸣,邹东华,田 玲.节流调速控制台的虚拟仪器设计[ J].液压与气动,
2009( 8) : 32-34.
[3] 阮奇桢.我和 LabVIEW [ M].北京: 北京航空航天大学出版社,2009.
[4] 谭 营,许化龙, 吴 琳. 基于 LabVIEW 的舵机测试系统设计[ J].微计
算机信息,2007( 31) : 133-134.
[5]戴 鹏,刘 剑,符 晓.基于 TMS320F2812 与 LabVIEW 的串口通信[ J].计
算机工程,2009( 2) : 94-96.
[6] 吕向锋,高洪林. 基于 LabVIEW 串口通信的研究[ J] . 理论与方法,
2009,28( 12) : 27-30.
[7] 戴鹏飞, 王胜开, 王格芳, 等. 测试工程与 LabVIEW 应用[M].北京:
电子工业出版社,2006: 158-161.
[8] 郑祥波. 基于 LabVIEW 与 DSP 串口数据采集系统[ J].微计算机信息,
2004,20( 2) : 45-46.
[9] Topal T, Polat H. Software Development for the Analysis ofHeart Sounds of
LabVIEW in Diagnosis of Cardiovascular Disease[ J].Springer Science & Business
Media,2008,32: 409-421.
[10] 杨乐平,李海涛, 杨 磊. LabVIEW 程序设计与应用[ M].北京: 电子
工业出版社,2005: 431-439.
[11] 陈真诚,陈晓俐. 基于虚拟仪器和远程心电监护系统的研制[ J].医疗卫
生装备,2009( 4) : 45-46.
[12] Gao Jingge,Wang Shuqiang. Research on Monitoring Systemfor Granary Based
on LabVIEW [ C ] / /Proceedings of the 8thInternational Symposium on Test and
Measurement.[s.l.]:[s.n.],2008: 1683-1686.
[13] 张会香,成谢锋. LabVIEW 平台上的心音分析虚拟仪器设计[ J].计算机
技术与发展,2010,20( 11) : 217-220.
[14] Barabiuk R G. Compressive Sensing[ J] . IEEE Signal Processing Magazine,
2007,24( 4) :