樊瑞睿 梁晓华 孟祥承
(中国科学院高能物理研究所 北京 100049)
VME总线(VERSAmodule Eurocard bus)是基于Eurocard接口的总线系统,起源于1981年。最初设计传输速度为 40 MB/s,VME64(1994)与 VME64x(1997)的最高传输速率已达160 MB/s[1],远高于早先高能物理及核物理实验中使用的 CAMAC(Computer Automated Measurement And Control)总线系统(1 MB/s)以及FastBus总线系统,故VME总线成为高能物理及核物理实验数据获取系统的主要应用总线系统。
北京谱仪BESIII升级改造中[2],大量使用基于9U VME机箱的ADC及TDC插件进行数据转换,第一级事例在VME机箱层面进行集中,当触发系统给出信号判断,机箱中的PowerPC就将数据并行读出。在线软件主要基于Linux操作系统通过C++、C、JAVA等语言编写,可实现海量数据存储和在线监测等功能。类似的大规模获取系统设计也应用在斯坦福直线加速器 BABAR实验[3]、欧洲核子中心ATLAS(A Toroidal LHC Apparatus)[4]等大型实验中。
VME系统不仅用于高能物理实验和核试验中,在工业控制、核医学等领域的应用也日趋广泛。这类大型获取系统结构及功能复杂,维护成本较高。普通实验室的探测系统往往比较简单,数据量低,并大量使用不同公司的插件产品。随着 VME系统的普及,功能简单、易于使用及扩展移植的实验室数据获取系统成为迫切需要解决的问题。
本文介绍一个适合于探测器实验室使用的基于VME的获取系统程序,并给出用这套系统得到的碲锌镉(CZT)探测器的测试结果。
VME总线获取系统包括硬件与软件。硬件功能为模数转换、VME-PCI转换及数据存储。软件最基本的功能为在线监测、数据存储。
硬件方面传统连接方式为:ADC通过机箱控制机与计算机PCI插件通信,完成VME-PCI转换。此连接方式适合多机箱数据的汇总和传递,但普通实验室的单VME机箱系统至少需两个单元插件来完成 VME-PCI转换,且需单独的台式计算机作为数据存储和在线监测载体,这在很大程度上使硬件复杂化。本文将其简化为 ADC插件、数据获取单板计算机以及支持系统,VME机箱为德国 Wiener公司的 VME64,ADC为意大利 CAEN公司的V785N,单板计算机为英国Concurrent Technologies公司的基于VME机箱的VX407。该单板计算机集成了机箱控制器、PCI插件和计算机功能,简化了系统的复杂度,提高了数据传输速率。
基于ROOT平台中通用库文件及Universe II芯片驱动程序进行数据获取软件编译,通过单板计算机与 ADC插件进行数据传递,并将数据解码、存储,同时通过一维直方图(Histogram)显示各通道数据作为在线监测。程序设计使用定时或定计数获取功能,可满足用户的一般需要。
V785N型ADC为16通道、12位,支持A24/A32选址模式,也支持 D16、D32、BLT32、MBLT64模式,及链式数据块读出(CBLT32/CBLT64)。数据存储在特定子地址存储器中,通过BLT模式将数据读出。
数据存储器为可存储 32个事件的 FIFO寄存器,一个事件数据为64位(8字节)至576位(72字节)。数据以32位为一单元(Block),分为头、尾和若干数据部分。头单元包含插件地址、头单元标志位、机箱编号及响应通道数;尾单元包含插件地址、尾单元标志位和总计数;数据单元为通道信息及ADC数值。插件存储器包含读取指针和写入指针,每执行读取或写入一次指针+1并循环。当写入指针改变至读取指针+1时,表示寄存器已经写满,此时存储器存储了32组事件;当读取指针改变至写入指针+1时,表示寄存器已经清空。通过控制程序查询读取指针变化,可得到是否有新事件产生,从而进行确定继续等待或传送数据。数据通过VME总线传输至VX407单板计算机进行处理,同时单板计算机还控制查询插件状态及最终的数据存储。VX407单板计算机为单宽6U插件,可使用通用于普通计算机的 Windows及 Linux操作系统,并支持通过Tundra® Universe IIDTM系列芯片与VME插件通信,同时通过传统PCI总线接受Universe芯片数据传输。
Universe系列芯片是最常见的 VME-PCI总线转换芯片,可实现VME插件的大部分功能,将VME总线信号转换为PCI总线信号,其主要功能如图1所示[5]。其内部分为5个主要通道,分别实现VME从属插件功能(VMEbus Slave)、数据的直接读写功能(DMA)、寄存器读写功能(Register)、中断响应功能(Interrupt)及 VME总线转 PCI总线功能(PCI Target)。
图1 Universe II芯片功能示意图Fig.1 The schematic of Universe II.
获取程序主要使用芯片中 PCI Target Channel功能,通过提供的驱动程序读取V785N存储器内数据,并转换为PCI总线信号传送至CPU进行处理和存储。Universe芯片具有较高的传输速率,在持续传输的情况下可达到60–70 MB/s。
ROOT[6]数据分析平台是 CERN开发的基于C++语言的开源数据分析平台,系从PAW数据分析系统改进而来。其最大改进之处在于将整个数据分析程序基于面向对象语言(C++)进行改造,从而大大拓展了ROOT 的应用领域,丰富了ROOT 平台的内容。本文程序主要使用ROOT的Histogram和Tree的数据存储方式,以及GUI界面功能。其中ROOT的GUI库采用Win95风格界面,支持X11及Win32系统。界面所使用的模块都基于 TVirtualX基类。根据不同操作系统,TVirtualX类可以支持TGWin32、TGQt、TGX11等类别的图形界面,从而使程序实现在Windows和Linux中的兼容。基于C++语言利用面向对象语言的特点,将整个程序分为若干不同类,按功能可分为:DAQ、VIEWER、GUI。
DAQ与硬件紧密结合,调用硬件驱动程序对插件实现读写功能,负责数据的传输与存储。DAQ较VIEWER、GUI灵活,可根据不同的硬件配置进行改编;VIEWER为显示界面,读取内存中监视直方图数据,并使用ROOT标准画板显示。同时可在画板中进行拟合、截图等简单操作;GUI管理程序的用户操作,负责调用DAQ及VIEWER,同时负责将用户参数(如文件名、插件地址等)发给 DAQ 程序,定制DAQ过程,在获取完毕后结束DAQ过程,并存储数据。
GUI利用C++语言对不同操作系统的兼容性及ROOT平台支持不同系统,我们在测试中用Visual C++及GNU gcc进行编译,得到的数据获取程序均稳定可靠,确保了程序的可移植性。生成的数据格式为 ROOT标准格式,也可在不同系统中使用ROOT平台进行分析。图2为在WIN 7操作系统下的获取程序GUI界面。左边为主界面,包括两个卡片式窗口:Control(控制)和Option(选项)。控制窗口负责 DAQ获取模式选择、插件地址输入和监视通道选择,并给出反馈内容;选项窗口负责选择获取的模式和保存文件名。其中获取模式可为定时获取、定计数获取或无限制获取。右边的主窗口给出监视通道的谱,可实时获得获取数据的信息。
图2 获取程序界面Fig.2 GUI of the DAQ software.
数据获取程序流程见图3。用户输入参数并进行获取模式的选择,之后进入硬件及软件初始化。通过用户给定的地址询问寄存器状态信息,如有新数据产生则读出并将寄存器指针+1,以便进行新数据的写入。若未收到用户的停止信息,则继续询问寄存器;若收到用户的停止信息,则推出询问并将已获得数据存盘。
硬件控制驱动程序提供三种通信模式:PCI镜像、VME镜像、直接内存读写(DMA)。VME通信中使用了A32选址及D32数据通信模式。以一次传输典型时间约为1 μs计算,获取程序典型的传输速度可以达到4 MB/s。在实际应用中,该数据获取系统成功地测试了碲锌镉半导体探测器的能谱响应。
图3 获取程序流程图Fig.3 Flow chart of the DAQ software.
CZT半导体化合物探测器是由碲化镉掺杂少量碲化锌形成,常用于辐射和光学测量等。CZT的带宽因不同组分而为1.4–2.2 eV,高于单晶硅的1.1 eV,可在室温下应用,无需制冷,尤宜于野外探矿等便携式X荧光探测等。CZT探测器的筛选和测试的主要性能指标,是探测效率及能量分辨率。我们用241Am放射源进行这一工作,数据获取系统流程如图4所示。CZT探测器信号通过ORTEC 142AH型前放,将信号进行前期放大,一路进入CAEN公司N842恒分甄别器进行甄别,并通过N93B定时器给出适当的门信号;另一路进入ORTEC 572A主放大器进行整形放大,最终进入 ADC进行模数转换。图5为用该CZT探测器测得的241Am的59 keV γ射线能谱图,59 keV全能峰能量分辨为13.6%,说明这套数据获取程序可满足一般实验室探测器实验的要求。
图4 CZT探测器测试系统示意图Fig.4 Schematics of DAQ system for testing a CZT detector.
随着VME系统的普及,小型探测器实验系统也将使用功能与操作简单、易于移植的获取系统。本文介绍的基于 ROOT平台的获取系统,可在Windows及Linux系统中方便移植,独立的模块化设计利于基于不同硬件设计的改造,可以直接作为实验室工作人员在探测器实验中使用的通用数据获取系统,在引入新的模块后可以满足不同实验的特殊需要。随着进一步的改进和优化,必将在实验室测试环境中得到更广泛的应用。
图5 CZT探测器获得59 keV射线能谱Fig.5 Spectrum of 241Am 59 keV γ-ray collected with the CZT de tector.
1 谢一冈, 陈昌, 王曼, 等著. 粒子探测器与数据获取[M]. 北京: 科学出版社, 2003: 407 XIE Yigang, CHEN Chang, Wang Man,et al. Particle detector and data acquisition[M]. Beijing: Science Press,2003: 407
2 LI Fei, ZHU Kejun, CHEN Liping,et al. Online Data Processingand Analyzing in BESIII DAQ[C]. Real Time Conference, 2009, RT’09. 16thIEEE-NPSS: 458–460
3 Aubert B, Bazan A, Boucham A,et al. The BABAR Detector[J]. Nucl Instrum Meth A, 2002, 479: 1–116
4 ATLAS Collaboration. ATLAS high-level trigger, Data Acquisition and Controls Technical Design Report, 2003
5 “Universe II VME-to-PCI Bus Bridge Manual”, June 2009
6 http://root.cern.ch [OL]