基于Qt框架的APV25数据采集系统研究
2020-06-16贾世海李沛玉胡守扬赵明锐刘雯迪张昀昱于伟翔李笑梅
贾世海,李沛玉,胡守扬,陈 雷,周 静,赵明锐,智 宇,刘雯迪,张昀昱,于伟翔,李笑梅
(中国原子能科学研究院 核数据重点实验室,北京 102413)
微结构气体探测器是一种位置分辨能力优异且计数率高的探测器,Micromegas(微网探测器)和GEM(气体电子倍增器)是其发展的两个主流方向,广泛应用于各类不同的大型物理实验项目的径迹室来进行粒子位置等测量,是未来探测器发展的方向之一。微结构气体探测器的读出一般是条读出形式,在常用尺寸下,往往需要几百甚至上千的电子学通道进行信号读出。如果采用传统的分立式元器件构成的前放电路,不仅会导致设计非常复杂,体积庞大,而且众多元件之间的一致性也难以保证。所以,使用能将多通道集成的前放芯片进行前置放大是目前此类探测器电子学系统的最优选择。
APV25芯片采用深亚微纳米CMOS工艺生产[1],是一款多通道(128通道)模拟前放成形芯片,该芯片最初计划作为CERN的紧凑缪子线圈中硅微条探测器的多路读出芯片[2]。APV25芯片具有很高的集成度,各通道都有一套完整的前放、滤波和峰保持电路。APV25芯片可对每个通道进行最多31个采样点的连续波形采样,最小采样间隔25 ns。APV25的成形时间为50 ns,微结构气体探测器典型的信号长度为10~100 ns[3],因此基于APV25芯片的电子学适用于微结构气体探测器实验系统。APV25前端卡由意大利国家核物理研究院(INFN)设计[4],该前端卡为板载的APV25芯片提供工作电源以及输入端保护等基本功能。
数据采集软件基于Qt框架编写。Qt框架是1991年由Qt Company开发的具有跨平台特性的C++图形用户界面(GUI)应用程序开发框架,具有强大的跨平台特性以及灵活易用的组件特性[5]。其使用C++语言进行开发,不仅有利于针对不同应用场景由用户进行相应的修改与拓展,而且为对接ROOT以及HDF5等同样使用C++ API的实用软件或文件标准提供了便利。
本文在已开发的512路多通道高速读出系统[6]的基础上,对多个后端板进行集成,通过改进原有的电子学系统结构,开发新的数据采集软件GeoAPV,实现拥有2 048路电子学通道的APV25数据采集系统,为微结构探测器提供一套完整高效的读出方案。软件基于Qt可视化编程框架,使用C++进行编写,可运行于Windows及Linux系统。
1 数据采集系统结构
1.1 系统整体结构
本文开发的APV25数据采集系统的硬件部分主要由计算机、交换机、APVDS电子学数字化板和APV25电子学前端卡构成,如图1所示。
图1 系统整体结构Fig.1 Overall structure of system
APV25数据采集系统通过HIROSE FX10系列140引脚连接器与探测器相连。10 cm×10 cm微结构气体探测器通常需要128通道电子学来进行条读出,则连接1块APV25前端卡即可。APV25前端卡使用HDMI物理接口,通过标准HDMI 2.0 Type A线缆连接至APVDS数字化板。此线缆传输APV25所输出的模拟测量数据和APV25控制信号,并为前端卡供电。数据到达后端板后,通过ADS5242 12位模数转换芯片(德州仪器)进行转换,再由赛灵思Spartan-6系列FPGA芯片进行数据处理,最后通过千兆以太网,由千兆交换机连接至计算机以进行数据交互。
外部APV TTS时钟板可生成统一的50 MHz外部时钟信号,并将其同步分发给各子系统板,从而避免产生不同的后端板时钟信号不统一问题。每个后端板可控制4块前端板共512电子学通道的数据并进行数字化以及数据打包等处理操作。各后端板都有独立的IP地址,通过交换机来与计算机建立通信。数据采集软件支持最多4块APVDS后端板同时工作,在此模式下可采集16块前端卡共2 048路电子学信号。在单块APVDS后端板即512路通道下,每次采样1个点能达到110 kHz的系统触发率。
1.2 数字化板结构
APVDS数字化板采用XC6SLX75 FPGA芯片。FPGA是数字化后端板的核心,负责后端板各子模块的控制与计算机的通信以及对ADC原始数据的处理。在接收到来自ADC的数据后,FPGA内部会先将数据由串行数据转换为并行数据,结合对应事件的触发信息与计数信息输入缓存区,最后由FPGA内的千兆全双工以太网介质访问控制层将缓存内的数据发送至计算机。APVDS数字化板功能层次如图2所示。
图2 数字化板功能层次Fig.2 Function structure of readout board
APVDS后端板还有许多其他的功能,包括生成内部时钟、进行信号电平的转换和控制以太网物理层芯片RTL8211EG等。单个后端数字化板已可独立对4块APV25前端板数据进行相应的处理,且预留了编程接口与指示灯按钮以方便硬件调试与纠错。
2 数据采集软件
为更加准确而且灵活地实现数据采集,本文自主开发了GeoAPV数据采集软件。因为目前探测器数据分析主要采用ROOT@CERN进行,且C++语言贴近底层物理层面,所以使用C++进行项目开发可尽可能兼顾软件速度与应用的灵活性。采用基于Qt框架的图形化用户界面不仅可大幅加快探测器系统的调试速度,而且更能有效兼容现有在Linux系统下的分析软件[7]。
GeoAPV充分利用了计算机多线程处理能力,用户在使用时应尽量用处理器逻辑核心数量在10以上的高性能计算平台。在高计数率情形下,千兆以太网的高速数据收发对存储提出更高要求,应尽可能使用固态硬盘或写速率在1 Gb/s以上的磁盘阵列做数据存储介质,以避免影响数据采集。
2.1 软件结构
GeoAPV软件整体采取多线程设计以实现大量数据的实时解析和结果显示,软件设计采取模块化的设计思想,整体包含3个主要模块:UDP通信模块、数据处理模块和主用户界面,如图3所示。
图3 软件模块结构Fig.3 Software module structure
各模块之间使用Qt框架内的信号槽结构来进行可控的数据传递。为兼容现有的数据分析脚本,获取的数据将会以原数据结合采样方式等信息加以打包并保存。用户对前端卡和后端板的所有各项命令操作均可通过图形用户界面进行,大幅提高了使用效率及易用性。
2.2 UDP通信设计
计算机与后端板的通信基于千兆以太网的UDP(User Datagram Protocol)通信,而UDP通信在接收方缓存不足时将导致数据报丢失,因此引入了累积确认机制:在接收1组8个数据报后,UDP模块会发送确认信息,来确保计算机不会因接收缓冲区满而丢失数据。在实际使用中,如果每次仅接收1组数据报,等待过程会大幅降低传输速度。所以在图4所示的收发流程中,UDP模块会1次发送9个确认请求信息,且在等待接收全部数据的过程中处理其他用户事件,来最大化传输速度。
每个UDP模块对应唯一的IP地址,即1个APVDS后端板,获得的数据报被输送到数据处理模块进行处理。UDP模块的错误处理机制允许用户决定发生等待超时错误时是否自动重连,并在数字化板工作异常时可及时发送出错信息以避免无效数据的产生。
图4 UDP收发流程Fig.4 UDP communication process
2.3 数据处理设计
计算机接收到的数据报是由FPGA打包并发送的,包含相应的事件时间、APV采样点以及12位ADC输出的信号数据等信息。在后端板连接不同数量(1、2或4块)的前端卡时,数据格式也会有所不同。如果欲对数据进行实时的显示分析,必需1个高效且能对原始数据进行解析的模块来进行实时解析。
当接收到数据报时,本数据处理模块会先对数据进行CRC校验,然后提取其中的时间及采样模式等信息并将ADC数据解析成为Qt框架内部的二维向量整数类型,以供实时显示。模块内部引入了HDF5的存储接口,用户可根据需求使用HDF5格式存储。
2.4 主界面设计
GeoAPV主界面使用Qt Designer软件设计,其主界面如图5所示。
图5 软件主界面Fig.5 Main interface of software
界面主要由控制台信息栏、控制栏以及波形显示区域构成。信息栏会显示与程序相关的过程信息以及错误信息,控制栏能直接调节电子学系统的采样模式等状态,波形显示会根据APVDS数量相应调整子窗口数量。界面还预留了能谱窗口栏,可根据具体需要启用能谱分析功能。
波形显示使用QCustomPlot图形库,实现了丰富的交互方式。由于在实际使用中,上千条波形曲线的刷新会占用大量CPU资源,普通屏幕刷新率在60 Hz,故将界面刷新率设置为10、20、50 Hz 3种可选,以适用不同的计算平台和测量场景。
控制栏能对系统工作方式进行调整,在1~31个连续采样数之间进行选择,并可工作在峰采样、反卷积或多重模式下。
3 系统测试
系统测试使用由8块APV前端卡和2块运行在512通道模式下的APVDS数字化板搭建的数据采集系统,如图6所示。
图6 实际采集系统Fig.6 Actual acquisition system
在1 024通道下使用连续的内触发信号对噪声基线进行了测量,以75 ns间隔连续采样24个点,实时显示效果如图7a、b所示。图7a、b分别为两个不同的后端板数据,不同颜色的线条对应不同的APV25前端卡,共8块前端卡,图中虚线为光标;图7c为原数据采集系统数据,仅包含单块APV25前端卡256通道的采样数据,连续采样数为30,没有光标,并进行了缩放,图7c中ADC值0点对应图7a、b中的2 048通道位置。可看到,噪声电平与形状均与现有系统结果一致。
图7 实测噪声波形 Fig.7 Measured waveform of noise signal
为保证测试系统工作时的稳定性和触发率等性能,在高性能计算平台下,对单个噪声信号采用连续的内触发信号连续采样31个点,并以10 Hz刷新率实时测试2 h(不存储原始数据)。测试中计算机以太网速率达715 Mb/s,触发率为1.70 kHz,系统能稳定进行数据采集以及分析显示。对其中采样开始600 s内的计算机与APVDS以太网数据传输速率进行统计,结果如图8所示。
从图8可看出,在采样开始的600 s中,数据传输速度分别稳定在610 Mb/s和710 Mb/s附近,且没有下降趋势,计算得到1 024通道下的传输速率数据相对标准偏差(RSD)为1.7%。
图8 连续触发采样时以太网数据速率变化Fig.8 Ethernet transmission rate in continuous sampling
为研究硬盘写入数据速率,本文在256、512、1 024这3种通道配置下分别进行了600 s的测试,并与之前未储存数据时的以太网速率进行了对比,结果列于表1。
表1 硬盘写入速率统计Table 1 Hard drive writing speed
测试结果显示,在磁盘写入时,传输速率会有所下降。由于在数据采集测试过程中,以太网传输速率以及磁盘写入速率均远低于测试使用的固态硬盘标称速率445 MB/s。这说明传输速率下降是数据存储操作本身造成的影响,可继续优化改进。
4 结论与展望
本文开发了一套新的具有高集成度与高性能的APV25数据采集系统。该数据采集系统主要由APV25前端卡、APVDS数字化后端板、APVTTS外部时钟板和GeoAPV数据采集软件来搭建,是包含2 048路电子学通道的完整电子学系统。系统中除APV25前端卡通过国际合作方式从国外引进,其他各部分都由中国原子能科学研究院中高能物理团队自主研发。系统可工作在多种电子学通道模式下,可在多种采样方式与工作模式下稳定工作。软件系统灵活高效,能平滑衔接现有工作,为未来探测器的发展提供了电子学基础。
在未来的工作中,可使用万兆交换机,避免多个数字化板数据量超过交换机端口速率带来的带宽损失,同时改进数据存储对最大采样率的影响。更进一步可将后端板目前的以太网模块改为SFP光接口万兆以太网模块,在提高最大计数率的同时,提高电磁兼容水平,改善信噪比。