- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于LabVIEW RT的自动测试系统的研究与实现
摘 要:为了解决接收机自动测试系统中由于系统时延与数据缓冲给测试过程中的时间同步与数据对齐带来的一系列难题,提高测试系统的精度,本文对传统的自动测试系统进行了优化。以LabVIEW为平台开发了独立于主工控机的数据采集系统,并对数据缓冲问题提出了解决方案。试验结果表明,该系统较好地解决了时延与数据对齐问题,达到了预期目标。
关键词: 接收机测试; LabVIEW RT; 数据采集
随着全球经济的蓬勃发展,导航被广泛应用在运输车辆监控、服务示范系统工程、石油探测、航天测试系统等方面,用于接收、跟踪、变换和测量导航信号的接收设备——导航接收机也被应用在各种服务、追踪、测试等系统中。
在一些对精度及可靠性要求比较高的系统中,一方面接收机的精度和不确定度评估直接影响了测试验证的可信度;另一方面随着使用时间及机械损耗,接收机的精度会受到一定的影响,为此需要对接收机进行定期标校。
一般的接收机自动测试系统[1]大都把原始数据与接收机接收数据进行对比,在此过程中往往忽略了由于操作系统的非实时性带来的时延以及数据缓冲处理给发送数据与接收数据的对齐造成的误差。
本文在对接收机自动测试系统的构架进行简单介绍的基础上,着重研究如何采用LabVIEW RT 实时系统解决上述问题。
1 测试系统架构
传统导航接收机自动测试系统[2]如图1所示。
工控机记录并通过GPIB总线控制信号源的输出[3];通过天线或射频信号,信号源将产生的信号发送给接收机;接收机接收信号源生成的各类信号并通过429总线将接收的信号传递给工控机;工控机最终将接收机接收到的信号与信号源发射信号进行对比,给出接收机误差补偿。
这一方法在理论上成立,在设计和实现的过程中却会因操作系统的非实时性和接收数据过程中的数据缓冲,给最终数据对比时的时间同步和数据对齐带来问题,进一步影响系统精度。
为了解决这一问题,本文对传统接收机自动测试系统进行了优化,如图2所示。
本系统采用IFR International Ltd.生产的专用航空信号发生器IFR2030作为信号源,Collins的GNLU-930、DME-442以及Honey Well的RNA-34BF作为接收机;通过PCI-GPIB板卡实现工控机与信号源控制单元的通信;此外,新增了Agilent公司的DS07104B型示波器以及E4440A型频谱分析仪,以实时显示跟踪信号的变化情况。
与传统自动测试系统相比,本系统最大的特色是以LabVIEW为平台开发了独立的数据采集系统,其设计方案将在下一节中进行介绍。
2 数据采集
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化编程语言的开发环境。它最大的特点是能够保证应用程序的实时响应[4]只运行在物理内存中;另一特点是并行特性,多线程数据采集任务的编写和执行更加容易和有效[5]。
本系统设计过程中,以LabVIEW为开发平台将数据采集设计为独立的系统就是考虑到了LabVIEW的以上特性,这些特性使系统在运行过程中由于操作系统的非实时性而带来的时延大大减少[6]。此外,在传统的接收机自动测试系统中,工控机承担了包括信号源控制、数据采集、解析与分析处理,以及数据存储的任务,这些多线程操作也给工控机的响应时间带来一定的影响, 本系统中数据采集系统作为一个独立的单元承担了数据采集与解析的任务, 降低了主工控机的负荷。
数据采集系统作为中间过程是用户不可见的,上位机采用TCP/IP协议实现对采集单元的控制及通信。为了使数据采集适应于ETS实时操作系统,采集系统采用了ALTA data公司的CPCI采集卡,系统结构如图3所示。
数据采集流程[7]分为初始化、读取数据、结束采集三大步,其示意图如图4所示。
在初始化分支中要分别对板卡及采集通道进行初始化设置,确立板卡ID号、发送和接收通道编号、总线速率;在读取通道数据分支中调用获取缓存中数据函数,获得接收机数据;在结束采集分支中按照初始化的逆序退出相应的数据采集函数,配置要停止工作的通道编号,调用函数关闭通道[8], 最后再关闭板卡。设计如图5所示。
为了不断接收来自接收机的数据,并对采集到的数据进行解析和显示,在程序编写过程中采用了一个While循环[9],如图6所示。
对于数据解析部分[10],需要根据数据Label,对每个参数单独地进行封装,然后在主程序中进行调用。
工控机与数据采集单元间的通信采用网络TCP协议[11]。通信模块程序框图如图7所示,上部分循环实现向数据采集系统发命令字的功能,下部分循环接收数据采集系统解析后的数据,并显示在工控机面板上。
3 数据缓冲方案
除了系统时延之外,另一个影响系统性能的因素是数据处理与缓冲。
在很多数据采集过程中,对数据的处理是一个顺序过程,即对某一数据包依次进行数据采集、数据解析、数据打包或存储等过程后再进入下一次的采集。这样在数据及数据处理量较小的情况下是可行的,但当数据达到一定的阈值,在每一步上耗费的时间将显著提高,这时就会出现后续处理流程长时间空闲等待前续流程,或者前续流程长时间空闲等待后续流程处理完毕以进入下一个采集过程。这种处理方式容易带来数据丢失或波形失真等问题,更难以保证实时性的要求。
鉴于以上缺陷,本系统对数据采集流程进行了优化,改进的数据采集流程如图8所示。
改进后,各个流程既相对独立,又能够通过缓存实现模块间的交互,使数据处理量在时间维中均匀分布。同时减少了系统在数据量很大却存在进程循环等待这一问题,极大地提高了数据采集系统的性能。
对于数据采集系统内部模块间的交互需要考虑到进程间同步、数据缓存等问题。对于数据采集模块与数据解析处理模块,数据采集系统采用了主从设计模式来实现。主/从设计模式主要用来解决两个或多于两个的同时发生的并且拥有不同运行速率的线程间通信间题。其示意图如图9所示。
数据采集模块作为主循环,数据处理模块作为从循环,它们引用相同的通知器句柄。从循环在程序运行之初处于等待通知器状态,只有当从循环收到主循环完成采集通知才开始进行数据处理,处理完成后将进入下一次等待通知状态。
数据解析处理模块与网络发送模块间的交互采用生产者消费者设计模式。与主从设计模式不同,生产者/消费者设计模式采用了队列的数据存储方式(FIFO)。网络发送模块设置了一个数据存储队列,从数据解析处理模块发送来的数据按照先进先出的方式被存入这一队列。程序运行时,数据解析处理模块与网络发送模块同时运行,前者只负责将数据处理后写入到缓存队列,后者只负责将队列中的数据读取出来并进行下一步操作。
这样的处理过程缓和了在数据量过大时的种种矛盾,在实际处理过程中也达到了预期目标。然而,仍有一些问题需要进一步考虑,主从模式在数据采集速率大于数据处理速率的情况下,容易造成数据的丢失;生产者/消费者模式能够很好地克服上述问题,但是当网络发送速率低于数据处理速率时,队列将会溢出,在LabVIEW中数据发送将被强行停止。因此合理设计各模块间的关系,匹配模块间处理率是系统精益求精的一个设计方向。
4 实验
为了测试对数据采集单元进行优化后的系统性能,除了常规的测试,还进行了一次对比试验:将信号源设定为正弦信号,分别记录下传统自动测试系统与本系统的接收数据,将它们绘制在同一幅图像中。实验结果显示,与未经优化的系统相比,本系统能更好地进行时间同步与数据对齐。同时,采用LabVIEW RT图形化开发环境,应用模块化设计方式,把流程中的各个部分模块化,也有利于程序的修改和维护。本设计系统达到了优化接收机自动测试系统的预期目标。
参考文献
[1] 郑敬华,刘晨,高超. 一种基于GPIB的自动测试系统实现方法研究[J].信息通信,2012,21(01):90-92.
[2] 杨文,黄文涛.通用自动测试系统的软件设计与实现[J].工业控制计算机,2012,12(01):79-83.
[3] 莫畏.一种基于GPIB的自动测试系统的研究与实现[J].电脑开发与应用,2008,08(09):5-8.
[4] 何银菊,夏梦芝,黄运生. 基于Labview的控制器自动测试平台的设计[J].计算机测量与控制,2011,28(12):2928-2930.
[5] 欧阳三泰,周琴,谭梅.基于LabVIEW平台和GPIB接口的在线测控系统[J].湖南工程学院学报(自然科学版),
2006,07(02):4-6.
[6] 李雯,肖凯. 应用LabVIEW RT开发实时测试系统[J].微计算机信息,2003,06(08):42-60.
[7] 宜万兵,秦红磊, 路辉.基于LabView RT的实时采集系统[C].第十七届全国测控计量仪器仪表学术年会,2007,
10(10):276-279.
[8] 赵梅,胡天亮,张倩,等.基于LabVIEW的AMT数据采集系统设计与研究[J]. 山东大学学报(工学版), 2011,25
(06):70-79.
[9] LOVELL T J, JEREMY P. Irish flight validation data gathering and evaluation capabilities[C]. 16th International Flight Inspection Symposium. Beijing, 2010,7:21-25.
[10] Zhang Yiyang, Zhou Shaolei. Signal decoding realization of air data dynamics test System[J]. Electronic Measurement and Instruments, 2007,20(54):156-159.
[11] 刘太阳, 王仕成, 刘志国.基于LabVIEW RT的数据实时传输系统[J]. 计算机测量与控制, 2008,23(02):270-
272.
[12] 郭跃云,郑宾, 吴柯锐. 基于LabVIEW的429总线收发系统的设计[J]. 国外电子测量技术,2009,28(6):36-39.