队列缓存技术在虚拟多道脉冲幅度分析中的应用
摘 要:介绍一种在LabVIEW平台下开发虚拟伽玛能谱仪中的实现方案中,为解决数据采集与计算机的脉冲幅度分析之间的运行速度不协调,利用LabVIEW中的队列缓存Queue技术,使核脉冲数据的采集和虚拟多道脉冲幅度分析之间能够达到协调运行,而不会发生丢失数据的现象。此方案体现出一定的优势。
关键词:Queue技术;LabVIEW;伽玛能谱仪;多道脉冲幅度分析
中图分类号:TH842,TP274 文献标识码:B 文章编号:1004373X(2008)1617202
Application of Queue Technology in Virtual Multichannel Pulse Amplitude Analysis
YE Quanyi,LE Renchang,CAI Sijing,HE Zhijie,HONG Jinquan
(School of Physics and Optoelectronic Technology,Fujian Normal University,Fuzhou,350007,China)
Abstract:A LabVIEWbased scheme for virtual Gammaray spectrum is introduced in this paper,in order to solve the lack of coordination between the data acquisition and analysis of computer pulse amplitude.By using of Queue technology,nucleus′s data collecting and virtual multichannel pulse amplitude analysis can achieve the coordinated,therefore data will not be lost.That embodies some advantages.
Keywords:Queue;LabVIEW;Gammaray spectrum;multichannel pulse amplitude analysis
伽玛射线能谱测量是一种重要的核地球物理方法,在地球科学、核科学及环境科学中应用广泛,相关的研究是颇有意义的。传统伽玛能谱仪的组成部分是:探测器、多道分析器、计算机。具体工作原理是探测器将信号输入到谱分析器,多道脉冲幅度分析器将信号放大、整形,经过A/D转换后,将经过幅度分析后的数据输入计算机。其中多道脉冲幅度分析器是最主要的模块之一。但是,虚拟仪器技术的出现,改变了原来几乎所有的实验都必须依靠传统仪器才能实现的局面。虚拟仪器(Virtual Instrument)是指由计算机作为控制以及数据显示、记录、处理部分的功能,加上一些板卡与外界的探测器或其他计算机不能集成的功能模块、仪器所组成的系统,而实现仪器的功能,主要靠软件来完成,即通常所说的“软件即仪器”。因此多道脉冲幅度分析器的功能也就理所当然地被软件所取代。
由于核脉冲信号的特殊性,决定了这里需要以高的采样率对其进行采集,才能采集到比较完整的脉冲顶信号。这就产生了一个问题:即由于高采率所带来的大量的数据,计算机是否来得及进行多道脉冲幅度分析,如果来不及,就将造成大量数据的丢失,或者说造成死时间的显著增加。所以,必须寻找一种新的方法,使数据采集与计算机的脉冲幅度分析之间达到协调运行。而队列缓存Queue技术正是本文所要讨论的解决方法。
1 问题概述
一般来说,虚拟伽玛能谱仪设计的思路是:首先通过采集控制,读入原始数据,经过脉冲幅度分析,进行谱显示。随后就可以根据相应的要求将数据进行谱平滑、谱寻峰、感兴趣区分析,含量计算等谱处理控制。系统结构框图如图1所示。
其中数据采集、多道脉冲幅度分析、谱数据显示分别由于3个不同的子VI来完成,传统的做法是首先进行数据采集,然后进行多道脉冲幅度分析,最后进行分析后的谱数据的显示,之后又进行下一轮的采集、分析、显示,如此周而复始,循环进行。程序框图可由图2描述。
从图2中,可以很明显地看出,核脉冲的数据采集、多道脉冲幅度分析、谱数据的显示按照一定的顺序进行。一般来说,核数据采集程序是在后台运行,并将采集到的数据放置于预先开辟好的内存缓冲区,当内存缓冲区满时,采集程序将采集到的数据又从头开始放于内存缓冲区,即将覆盖内存缓冲区中原来的数据。而多道脉冲幅度分析程序负责从内存缓冲区取得数据,并进行分析。但是由于多道脉冲幅度分析需要一定的时间,这样就有可能导致数据丢失的现象产生。可以设想一下,当多道脉冲幅度分析程序的速度比数据采集程序的运行速度慢时的情况:
(1) 核采集程序采集数据,并将数据送到内存缓冲区;
(2) 多道脉冲幅度分析程序从内存缓冲区取得新数据,进行分析;
(3) 核采集程序继续采集数据,但在内存缓冲区满时,将覆盖内存缓冲区中原来的数据。而多道脉冲幅度分析程序仍然在分析第一次的数据。它并没有得到新数据时,内存缓冲区的数据就已经被覆盖。
这样,由于两个程序运行速度不协调,造成了核数据的丢失,使虚拟伽玛能谱仪的死时间增加。而如何使程序运行过程中,不会发生数据的丢失,正是本文所要解决的关键问题。
2 Queue技术的应用
为了更好地解决以上问题,这里提出在程序中应用队列缓存Queue技术,并且为核脉冲的数据采集、多道脉冲幅度分析、谱数据的显示分别建立一个任务,使3个任务并行运行。数据采集程序和多道脉冲幅度分析程序之间通过队列联系起来,而多道脉冲幅度分析程序和谱数据的显示程序之间通过全局变量联起来。程序流程图如图3所示。
通过使用Queue技术,并将3个任务并行运行,程序在运行过程时不会再发生丢失数据的现象。因为采集程序通过队列与多道脉冲幅度分析程序相联系。在数据采集任务中,将内存缓冲区中读取的数据放入队列中,而多道脉冲幅度分析程序则从队首取出数据进行分析。当数据采集速度过快,而多道脉冲幅度分析程序较慢时,从内存缓冲区读取的数据将依次入队列,多道脉冲幅度分析程序则负责从队首取得数据进行分析,对那些由于采集速度过快而产生的数据,将在队列中保存,直到被取走为至。这样就不会造成内存缓冲区中的数据因为还没有分析而被覆盖。源程序如图4所示,其中的3个While循环分别代表3个任务。多道脉冲幅度分析程序使用动态链接库实现。正是由于Queue结构会起到缓存的作用,如果某一个任务运行得过快或过慢,Queue就会起到约束或补偿作用,从而保证任务之间能够协调运行。
3 实验结果及结论
图5为实测得到的.137Cs伽玛射线能谱(2 048道)。应用Queue技术开发的虚拟伽玛能谱仪,所有采集到的数据均能得到有效的分析,也就是死时间将约等于0。从实验的结果来看,这里引入队列缓存技术得到了比较好的效果,其性能也相当稳定。当然仪器其他各项性能指标还须进一步的完善,这里相信随着虚拟仪器的发展,纯软件设计的合理的多道脉冲幅度分析器将是发展方向。
参 考 文 献
[1]杨乐平.LabVIEW高级程序设计\.北京:清华大学出版社,2003.
[2]方方.野外地面伽玛射线全谱测量研究\.成都:成都理工大学,2001.
[3]刘松秋.虚拟多道脉冲分析系统的设计\.核电子学与探测技术,2001,21(6):433.
[4]张晓华.虚拟仪器技术在多道分析系统中的应用研究\.北京:中国原子能科学研究院,2004.
[5]Measurement Computing Corp.PCIDAS4020/12 User′s Guide,2002.
[6]蔡思静,乐仁昌,何志杰.虚拟仪器法设计数据快速采集γ射线能谱仪\.核技术,2007,30(5):463466.
[7]胡宾鑫.一种新型现场多道核能谱数据采集系统的设计\.信息与电子工程,2004,2(2):129132.
作者简介 叶全意 女,1982年出生,江西上饶人,现为福建师范大学物理与光电信息科技学院硕士研究生。