Blog | 大科学领域

触发和束流同步数据采集的新方法

G. Theidel, P. Bucher, @Paul Scherrer Institutte

R. Modic, T. Šuštar @Cosylab

新型自由电子雷射器设备SwissFEL是一台740 米长的加速器,能在100 赫兹的频率和1至0.7纳米的波长下,提供6至30飞秒长的光脉冲[1][2]。为了支持逐次光子诊断[1]并将测量结果与机器上属于同一机器脉冲的其他测量结果链接起来,我们开发了新的触发和数据采集系统,并引入了一种新协议。该协议下,通过一个全双工光纤连接器可以进行确定性触发、配置和数据传输。测量数据带有一个独特的脉冲标识符,该脉冲从SwissFEL计时系统[2][5]发送。另外,开发出的读数和控件接口,可以支持将数据传递到数据采集调度层[1] [3]并用于控制系统。

介绍

为触发传感器电子读数设备并传输测量数据,我们需要一种解决方案。与此同时,慢速控件和状态数据必须通过相同的全双工光纤连接器进行传输。将唯一的脉冲ID发送给电子读数设备,并将每个触发脉冲发送到启用数据确定性标记,以用于以后的分析。由于没有可用的协议可以满足所有要求,因此必须指定一个新协议。作为两个节点之间的双向链接,该协议首次使用就大获成功。同时,证明该协议在其他系统中也很有用。

系统总览

确定性事件延迟光纤接口(DELFI)链接用于SwissFEL中的前端电子设备柜和控制器柜之间。一个放置在传感器附近,另二个安装在较远位置的19英寸机架中。前端电子柜由通信板(Comm.Board)组成,该通信板可连接模数转换器(ADC)和模拟前端(即电子设备)。模拟前端负责在模拟信号进入ADC之前对其进行调节。控制器硬件基于VME单板计算机IFC1210。该计算机备有Virtex-6 FPGA和P2020处理器[6],并连接有4端口SFP FMC模块。该模块可实现与SwissFEL事件计时系统和DELFI设备的光纤连接。配置参数、状态和测量数据通过EPICS通道访问(CA)协议公开,测量数据也传输至(束流同步)数据采集调度层(BS DAQ系统)[1] [3]。DELFI Link可以同时启动触发、传输测量数据以及传输控件和状态参数。

Figure 1: System overview

DELFI协议

DELFI协议是轻量级的系统级协议,允许确定性事件传输以及高速和低速延迟数据传输。DELFI核心层不对数据本身做任何假设,而在附加的数据定义层,内存映射接口和数据流接口组合在一起。路由层作为可选项,允许在各种系统拓扑中路由数据包。DELFI具有很好的可扩展性,并且可以在每个系统甚至子系统的基础上调整许多参数,例如最大的事件数据大小或链接数据速率。

需求

DELFI协议旨在满足以下要求:

  • 数据和事件传输
  • 事件具有最高优先级和固定的确定性延迟
  • 单个访问和突发(块)传输的数据包
  • 数据流传输到不同的通道(端口)
  • 低数据传输延迟,低协议开销
  • 易于实现,FPGA资源使用低
  • 可以按系统或子系统选择链接数据速率
  • 开源,免费许可证和独立制造商

数据包类型

DELFI协议定义了具有不同优先级的数据包类型。 DELFI内核保证始终使用确定性延迟发送最高优先级的数据包,即事件数据包。其他优先级较低的数据包负责时钟补偿、链路管理和数据传输。存在支持不同读写操作的不同类型的数据包,例如,单寄存器读取、单寄存器写入、块读取和块写入。如果链接空闲,则表示正在传输特殊的空闲序列。协议使用8b/10b编码[4]。特殊的K字符用作开始和结束字符,或用作其他信号。

图2:不同的数据包类型,按优先级排列。该协议保证事件数据包始终与确定性延迟一起发送。

控制系统集成

单板计算机(SBC)IFC1210 [6]作为SwissFEL的标准控件系统计算平台,具有Virtex 6 FPGA和处理器(POWER PC P2020)。为了它们之间的通信,硬件供应商提供了一个特殊的设计工具包,包括用于FPGA的设计工具(TOSCA II [7])和用于处理器的相应EPICS驱动程序[8]。此外,为支持通过DELFI链接进行通信,集成到SwissFEL环境的其他子系统以及图形用户界面(图形用户界面),还编写了一个由FPGA网关软件和EPICS输入/输出控制器(IOC)组成的应用程序。

该应用程序对通过DELFI传输的两种数据类型进行区分:慢速数据(控件和状态参数)以及快速数据(测量数据)。测量数据被复制到共享的内存中,而控件和状态参数则通过TOSCA-II直接传给处理器。

图3:FPGA和EPICS IOC框架图

FPGA

嵌入式事件接收器(EVR)[2][5] FPGA内核用于直接在FPGA上与事件计时系统直接对接。DELFI Core FPGA组件提供4个接口:事件接口、数据接口、短路状态和管理接口,本应用程序中不使用后者。事件接口仅在方向主机(IFC1210)到从机(Comm.Board)的方向上使用,以触发数据采集并将脉冲 ID传递到Comm.Board。TX数据处理程序块向从站发送(慢速)配置写入和状态读取请求。RX数据处理程序块捕获这些请求的响应,并将它们与(快速)测量数据区分开来,并路由到其他位置。慢速数据最终存储在RX缓冲区中,该缓冲区通过TOSCA II直接开放给处理器,而快速数据则通过多阶段路由给共享内存。数据包FIFO中的正确接收需事先进行检查,所有不完整或错误的数据包都将丢弃在数据包FIFO中。

Figure 4: TX and RX data handling blocks on the FPGA

EPICS IOC

EPICS IOC将所有配置参数、状态和测量数据公开为EPICS过程变量(PV)。它由三个主要部分组成:FPGA控件(公开特定于FPGA的应用特定配置)、Comm. Board控件(公开Comm. Board(慢速数据)的参数)和测量数据处理(公开了测量数据(快速数据))。此外,测量数据处理通过已备好的用于此目的的EPICS驱动程序(epics_bsread),将测量数据发送到束流同步数据采集调度层。

对于机器的每个脉冲,测量数据的处理都遵循以下过程(图5):对于每个脉冲,唯一的脉冲ID从定时系统传输到FPGA。IFC1210 FPGA上的嵌入式事件接收器接收脉冲ID,并作为DELFI事件数据发送到Comm. Board。当通过DELFI链路将数据发送回FPGA时,Comm. Board会获取数据并将脉冲 ID添加到数据帧的标题中。这样,就可以用正确的脉冲ID可靠地标记数据。EPICS IOC通过通道访问(CA)协议公开所有数据,并将数据流传输到束流同步数据采集调度层。

图5:机器脉冲的时序图

用户界面

在CaQtDm[9]中开发了一个图形用户界面,该界面为应用程序的各部分都提供了完整的控件,例如在Comm. Board上通过更改数据采集参数配置模拟前端,配置嵌入式EVR。

挑战性

该应用程序最初设计为处理IFC1210上的15个DELFI链接和1个事件时序链接。目前,尚不清楚校准程序将在IFC1210上运行还是离线进行。事实证明,在IFC1210上执行了校准后,处理器无法在可用时间内处理如此大量的测量数据。每个IFC1210的链接数减少了。当前,所有安装中每个IFC1210仅使用一个DELFI链接。

EPICS IOC的大多数内容是用EPICS数据库文件编写的,该文件难以维护。在某些情况下,它也限制了功能。该应用程序的某些部分稍后必须重写为C。

经观察,传输到束流同步数据采集调度层的数据并不总是一致的,所以进行测试以确认不一致,同时,为解决这个问题,应用程序的某些部分正在改进。

结论

开发DELFI协议,旨在在同一全双工串行接口上​​进行确定性触发和数据采集。它已集成到SwissFEL环境中,在实践中证明可行,并计划将其用于Paul Scherrer研究所的其他设施。

REFERENCES

[1] C.Milne, et al.,“SwissFEL: The Swiss X-Ray Free-Electron Laser”, inApplied Sciences (Switzerland), vol. 7, no. 7, article 720, Jun. 2018

[2] Kalantari and R. Biffiger, “SwissFEL Timing System: First Operational Experience”, inProc. 16th Int. Conf. on Accelerator and Large Experimental Control Systems (ICALEPCS’17), Barcelona, Spain, Oct. 2017, pp. 232-237. doi:10.18429/JACoW-ICALEPCS2017-TUCPL04

[3] G. Ebner et al., “SwissFEL – Beam Synchronous Data Acquisition – The First Year”, inProc. 16th Int. Conf. on Accelerator and Large Experimental Control Systems (ICALEPCS’17), Barcelona, Spain, Oct. 2017, pp. 276-279. doi:10.18429/JACoW-ICALEPCS2017-TUCPA06

[4] A. Franaszek and A. X. Widmer,“A DC-Balanced, Partitioned-Block, 8B/10B Transmission Code” inIBM Journal of research and development, vol. 27, no. 5.,1983

[5] Kalantari, R. Biffiger, S. Skube, T. Slejko, T. Šuštar, “SwissFEL Event Timing System”, poster atAnnual meeting of the Swiss Physical Society, Lausanne, Switzerland, 2018.

[6] IOxOS Technologies AS, “IFC_1210 – Intelligent FPGA Controller P2020 VME64x Single Board Computer”, Data Sheet, 2011

[7] IOxOS Technologies AS, “TOSCA II Xilinx Virtex-6T FPGA Design Kit”, Data Sheet, 2010

[8] IOxOS Technologies AS, “EPICS Driver for TOSCA II Infrastructure IFC_1210”, Data Sheet, 2013

[9] http://epics.web.psi.ch/software/caqtdm/

本文最初发表在澳大利亚墨尔本的IPAC19上。

来自本作品的内容可以在CC BY 3.0许可条款下使用(©2019)。本作品的任何发行必须归属于作者、作品的标题、出版商和DOI。

10th Int. Particle Accelerator Conf., IPAC2019, Melbourne, Australia.
JACoW Publishing, ISBN: 978–3–95450–208–0
DOI: 10.18429/JACoW-IPAC2019-THPTS054

Others Also Read