樊瑞睿 梁曉華 孟祥承
(中國科學院高能物理研究所 北京 100049)
VME總線(VERSAmodule Eurocard bus)是基于Eurocard接口的總線系統(tǒng),起源于1981年。最初設計傳輸速度為 40 MB/s,VME64(1994)與 VME64x(1997)的最高傳輸速率已達160 MB/s[1],遠高于早先高能物理及核物理實驗中使用的 CAMAC(Computer Automated Measurement And Control)總線系統(tǒng)(1 MB/s)以及FastBus總線系統(tǒng),故VME總線成為高能物理及核物理實驗數(shù)據(jù)獲取系統(tǒng)的主要應用總線系統(tǒng)。
北京譜儀BESIII升級改造中[2],大量使用基于9U VME機箱的ADC及TDC插件進行數(shù)據(jù)轉換,第一級事例在VME機箱層面進行集中,當觸發(fā)系統(tǒng)給出信號判斷,機箱中的PowerPC就將數(shù)據(jù)并行讀出。在線軟件主要基于Linux操作系統(tǒng)通過C++、C、JAVA等語言編寫,可實現(xiàn)海量數(shù)據(jù)存儲和在線監(jiān)測等功能。類似的大規(guī)模獲取系統(tǒng)設計也應用在斯坦福直線加速器 BABAR實驗[3]、歐洲核子中心ATLAS(A Toroidal LHC Apparatus)[4]等大型實驗中。
VME系統(tǒng)不僅用于高能物理實驗和核試驗中,在工業(yè)控制、核醫(yī)學等領域的應用也日趨廣泛。這類大型獲取系統(tǒng)結構及功能復雜,維護成本較高。普通實驗室的探測系統(tǒng)往往比較簡單,數(shù)據(jù)量低,并大量使用不同公司的插件產品。隨著 VME系統(tǒng)的普及,功能簡單、易于使用及擴展移植的實驗室數(shù)據(jù)獲取系統(tǒng)成為迫切需要解決的問題。
本文介紹一個適合于探測器實驗室使用的基于VME的獲取系統(tǒng)程序,并給出用這套系統(tǒng)得到的碲鋅鎘(CZT)探測器的測試結果。
VME總線獲取系統(tǒng)包括硬件與軟件。硬件功能為模數(shù)轉換、VME-PCI轉換及數(shù)據(jù)存儲。軟件最基本的功能為在線監(jiān)測、數(shù)據(jù)存儲。
硬件方面?zhèn)鹘y(tǒng)連接方式為:ADC通過機箱控制機與計算機PCI插件通信,完成VME-PCI轉換。此連接方式適合多機箱數(shù)據(jù)的匯總和傳遞,但普通實驗室的單VME機箱系統(tǒng)至少需兩個單元插件來完成 VME-PCI轉換,且需單獨的臺式計算機作為數(shù)據(jù)存儲和在線監(jiān)測載體,這在很大程度上使硬件復雜化。本文將其簡化為 ADC插件、數(shù)據(jù)獲取單板計算機以及支持系統(tǒng),VME機箱為德國 Wiener公司的 VME64,ADC為意大利 CAEN公司的V785N,單板計算機為英國Concurrent Technologies公司的基于VME機箱的VX407。該單板計算機集成了機箱控制器、PCI插件和計算機功能,簡化了系統(tǒng)的復雜度,提高了數(shù)據(jù)傳輸速率。
基于ROOT平臺中通用庫文件及Universe II芯片驅動程序進行數(shù)據(jù)獲取軟件編譯,通過單板計算機與 ADC插件進行數(shù)據(jù)傳遞,并將數(shù)據(jù)解碼、存儲,同時通過一維直方圖(Histogram)顯示各通道數(shù)據(jù)作為在線監(jiān)測。程序設計使用定時或定計數(shù)獲取功能,可滿足用戶的一般需要。
V785N型ADC為16通道、12位,支持A24/A32選址模式,也支持 D16、D32、BLT32、MBLT64模式,及鏈式數(shù)據(jù)塊讀出(CBLT32/CBLT64)。數(shù)據(jù)存儲在特定子地址存儲器中,通過BLT模式將數(shù)據(jù)讀出。
數(shù)據(jù)存儲器為可存儲 32個事件的 FIFO寄存器,一個事件數(shù)據(jù)為64位(8字節(jié))至576位(72字節(jié))。數(shù)據(jù)以32位為一單元(Block),分為頭、尾和若干數(shù)據(jù)部分。頭單元包含插件地址、頭單元標志位、機箱編號及響應通道數(shù);尾單元包含插件地址、尾單元標志位和總計數(shù);數(shù)據(jù)單元為通道信息及ADC數(shù)值。插件存儲器包含讀取指針和寫入指針,每執(zhí)行讀取或寫入一次指針+1并循環(huán)。當寫入指針改變至讀取指針+1時,表示寄存器已經寫滿,此時存儲器存儲了32組事件;當讀取指針改變至寫入指針+1時,表示寄存器已經清空。通過控制程序查詢讀取指針變化,可得到是否有新事件產生,從而進行確定繼續(xù)等待或傳送數(shù)據(jù)。數(shù)據(jù)通過VME總線傳輸至VX407單板計算機進行處理,同時單板計算機還控制查詢插件狀態(tài)及最終的數(shù)據(jù)存儲。VX407單板計算機為單寬6U插件,可使用通用于普通計算機的 Windows及 Linux操作系統(tǒng),并支持通過Tundra? Universe IIDTM系列芯片與VME插件通信,同時通過傳統(tǒng)PCI總線接受Universe芯片數(shù)據(jù)傳輸。
Universe系列芯片是最常見的 VME-PCI總線轉換芯片,可實現(xiàn)VME插件的大部分功能,將VME總線信號轉換為PCI總線信號,其主要功能如圖1所示[5]。其內部分為5個主要通道,分別實現(xiàn)VME從屬插件功能(VMEbus Slave)、數(shù)據(jù)的直接讀寫功能(DMA)、寄存器讀寫功能(Register)、中斷響應功能(Interrupt)及 VME總線轉 PCI總線功能(PCI Target)。
圖1 Universe II芯片功能示意圖Fig.1 The schematic of Universe II.
獲取程序主要使用芯片中 PCI Target Channel功能,通過提供的驅動程序讀取V785N存儲器內數(shù)據(jù),并轉換為PCI總線信號傳送至CPU進行處理和存儲。Universe芯片具有較高的傳輸速率,在持續(xù)傳輸?shù)那闆r下可達到60–70 MB/s。
ROOT[6]數(shù)據(jù)分析平臺是 CERN開發(fā)的基于C++語言的開源數(shù)據(jù)分析平臺,系從PAW數(shù)據(jù)分析系統(tǒng)改進而來。其最大改進之處在于將整個數(shù)據(jù)分析程序基于面向對象語言(C++)進行改造,從而大大拓展了ROOT 的應用領域,豐富了ROOT 平臺的內容。本文程序主要使用ROOT的Histogram和Tree的數(shù)據(jù)存儲方式,以及GUI界面功能。其中ROOT的GUI庫采用Win95風格界面,支持X11及Win32系統(tǒng)。界面所使用的模塊都基于 TVirtualX基類。根據(jù)不同操作系統(tǒng),TVirtualX類可以支持TGWin32、TGQt、TGX11等類別的圖形界面,從而使程序實現(xiàn)在Windows和Linux中的兼容?;贑++語言利用面向對象語言的特點,將整個程序分為若干不同類,按功能可分為:DAQ、VIEWER、GUI。
DAQ與硬件緊密結合,調用硬件驅動程序對插件實現(xiàn)讀寫功能,負責數(shù)據(jù)的傳輸與存儲。DAQ較VIEWER、GUI靈活,可根據(jù)不同的硬件配置進行改編;VIEWER為顯示界面,讀取內存中監(jiān)視直方圖數(shù)據(jù),并使用ROOT標準畫板顯示。同時可在畫板中進行擬合、截圖等簡單操作;GUI管理程序的用戶操作,負責調用DAQ及VIEWER,同時負責將用戶參數(shù)(如文件名、插件地址等)發(fā)給 DAQ 程序,定制DAQ過程,在獲取完畢后結束DAQ過程,并存儲數(shù)據(jù)。
GUI利用C++語言對不同操作系統(tǒng)的兼容性及ROOT平臺支持不同系統(tǒng),我們在測試中用Visual C++及GNU gcc進行編譯,得到的數(shù)據(jù)獲取程序均穩(wěn)定可靠,確保了程序的可移植性。生成的數(shù)據(jù)格式為 ROOT標準格式,也可在不同系統(tǒng)中使用ROOT平臺進行分析。圖2為在WIN 7操作系統(tǒng)下的獲取程序GUI界面。左邊為主界面,包括兩個卡片式窗口:Control(控制)和Option(選項)??刂拼翱谪撠?DAQ獲取模式選擇、插件地址輸入和監(jiān)視通道選擇,并給出反饋內容;選項窗口負責選擇獲取的模式和保存文件名。其中獲取模式可為定時獲取、定計數(shù)獲取或無限制獲取。右邊的主窗口給出監(jiān)視通道的譜,可實時獲得獲取數(shù)據(jù)的信息。
圖2 獲取程序界面Fig.2 GUI of the DAQ software.
數(shù)據(jù)獲取程序流程見圖3。用戶輸入?yún)?shù)并進行獲取模式的選擇,之后進入硬件及軟件初始化。通過用戶給定的地址詢問寄存器狀態(tài)信息,如有新數(shù)據(jù)產生則讀出并將寄存器指針+1,以便進行新數(shù)據(jù)的寫入。若未收到用戶的停止信息,則繼續(xù)詢問寄存器;若收到用戶的停止信息,則推出詢問并將已獲得數(shù)據(jù)存盤。
硬件控制驅動程序提供三種通信模式:PCI鏡像、VME鏡像、直接內存讀寫(DMA)。VME通信中使用了A32選址及D32數(shù)據(jù)通信模式。以一次傳輸?shù)湫蜁r間約為1 μs計算,獲取程序典型的傳輸速度可以達到4 MB/s。在實際應用中,該數(shù)據(jù)獲取系統(tǒng)成功地測試了碲鋅鎘半導體探測器的能譜響應。
圖3 獲取程序流程圖Fig.3 Flow chart of the DAQ software.
CZT半導體化合物探測器是由碲化鎘摻雜少量碲化鋅形成,常用于輻射和光學測量等。CZT的帶寬因不同組分而為1.4–2.2 eV,高于單晶硅的1.1 eV,可在室溫下應用,無需制冷,尤宜于野外探礦等便攜式X熒光探測等。CZT探測器的篩選和測試的主要性能指標,是探測效率及能量分辨率。我們用241Am放射源進行這一工作,數(shù)據(jù)獲取系統(tǒng)流程如圖4所示。CZT探測器信號通過ORTEC 142AH型前放,將信號進行前期放大,一路進入CAEN公司N842恒分甄別器進行甄別,并通過N93B定時器給出適當?shù)拈T信號;另一路進入ORTEC 572A主放大器進行整形放大,最終進入 ADC進行模數(shù)轉換。圖5為用該CZT探測器測得的241Am的59 keV γ射線能譜圖,59 keV全能峰能量分辨為13.6%,說明這套數(shù)據(jù)獲取程序可滿足一般實驗室探測器實驗的要求。
圖4 CZT探測器測試系統(tǒng)示意圖Fig.4 Schematics of DAQ system for testing a CZT detector.
隨著VME系統(tǒng)的普及,小型探測器實驗系統(tǒng)也將使用功能與操作簡單、易于移植的獲取系統(tǒng)。本文介紹的基于 ROOT平臺的獲取系統(tǒng),可在Windows及Linux系統(tǒng)中方便移植,獨立的模塊化設計利于基于不同硬件設計的改造,可以直接作為實驗室工作人員在探測器實驗中使用的通用數(shù)據(jù)獲取系統(tǒng),在引入新的模塊后可以滿足不同實驗的特殊需要。隨著進一步的改進和優(yōu)化,必將在實驗室測試環(huán)境中得到更廣泛的應用。
圖5 CZT探測器獲得59 keV射線能譜Fig.5 Spectrum of 241Am 59 keV γ-ray collected with the CZT de tector.
1 謝一岡, 陳昌, 王曼, 等著. 粒子探測器與數(shù)據(jù)獲取[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]