LEAPS-INNOV WP5 D5.3 Definition of a standard protocol for synchronisation between beamline components
Full text
Deliverable no. D5.3 Page 1 of 18 Project information Project full title LEAPS pilot to foster open innovation for accelerator-based light sources in Europe Project acronym LEAPS-INNOV Grant agreement no. 101004728 Instrument Research and Innovation Action (RIA) Duration 01/04/2021 – 31/03/2025 Website Deliverable information Deliverable no. D5.3 Deliverable title Protocol for Synchronization of beamline components at synchrotron radiation facilities Deliverable responsible DESY, ALBA Related WorkPackage/Task WP5 “POSIT” / Task 5.3 “Synchronization” Type (e.g. Report; other) Deliverable Author(s) Jose Avila Abellan, Xavier Serra, Oliver Seeck Dissemination level Document Version 1.0 Date 24.05.2024 Download page Document information Version no. Date Author(s) Comment
Deliverable no. D5.3 Page 2 of 18 [Table of Contents] Introduction…………………………………………………………………………………………………………………………………… 2 General remarks to the synchronization protocol…………………………………………………………………………… 2 The format of the synchronization protocol…………………………………………………………………………………… 4 Examples………………………………………………………………………………………………………………………………………… 10 The JSON scheme…………………………………………………………………………………………………………………………… 12 Introduction. Synchrotron radiation sources are pulsed X-ray sources with typical pulse lengths of 100 ps and interpulse distance of some nanoseconds up to about 200 ns. This pulsed source can be accounted as continuous for standard applications with acquisition times of more than 0.01 s and relatively slow change of actuators or other devices, with “slow” meaning a speed of one X-ray beam diameter per 0.01 seconds. Should an experiment require much higher speeds, e.g. for pump-probe measurements, the granularity of the X-ray beam has to be considered or is even required to collect meaningful data. For this a synchronization of beamline devices, such as detectors, the accelerator clock and external fields is realized by means of fast electronics. In the future, with detectors operating at acquisition rates of more than 100 kHz and with voice coil and piezo stages reaching speeds of 1m/s, synchronization will be required even for non-pump-probe measurements. By offering a humanand machine-readable protocol, which describes the synchronization tasks for an experiment, the installation of an experiments becomes straight forward at the different synchrotron radiation sources. The protocol should useful for users and for the staff of these X-ray sources. This protocol, as presented here, is the result of the Task 5.3 “Synchronization of beamline components” of the LEAP-INNOV project. It needs still rigorous testing and gets therefore version number 0.9 General remarks to the synchronization protocol The experimentalist comes to the facility with a certain equipment/hardware to run the experiment. The synchronization of this equipment with the beamline and the accelerator is key for the success of the experiment. He/she must describe the synchronization that this equipment needs by submitting a form. The output of this form is a JSON data file. This data file is processed to 1) check that it fits the beamline capabilities 2) configure the beamline synchronization equipment for that experiment. Each required signal will be defined independently. The format of the protocol is strictly defined and contains following notations:
Deliverable no. D5.3 Page 3 of 18 - Key words are in the following printed with bold characters. - The setup with synchronized hardware devices is controlled via Signals. - Each Signal is described by mandatory Descriptors. - Each Signal must have a Descriptor ‘Name’. The Descriptors ‘Name’ of all Signals must not be pairwise identical. The names of Descriptors are marked by single quotation marks. - Each Descriptor has at least one Value with given Type and, if applicable, given Unit. - Numbers are of Type Integer or Float. The third valid Type is Text, a case sensitive string. - A Descriptor can contain other Descriptors. - The value of Values can be restricted to certain KeyWords. KeyWords are marked by double quotation marks. The symbol # is used to separate the protocol content
Deliverable no. D5.3 Page 4 of 18 The format of the synchronization protocol The format for Signal is as follows. Multiple Signals with different Descriptors ‘Name’ can be combined for one experiment. The They JSON scheme is listed at the end of this document. Signal: Name: Text Description: Text Direction: Input | Output FormFactor: BNC | SMA | LEMO_00 | FO Type: Trigger | Gate | Analog Reference: None | RF_signal | External_Clk | Internal_Clk | Event | Signal | Analog Inhibit: None | Signal DigitalParameters: #Required fields if 'Trigger' or 'Gate' are selected as Type Signaling: TTL | LVTTL | CMOS | 50Ohm | OpenCollector | OpenEmitter | Voltage Polarity: ActiveHigh | ActiveLow # For trigger: Active High = rising edge ActiveTime: Integer [ps] DeadTime: Integer [ps] RiseTime: Integer [ps] FallTime: Integer [ps] MaxJitter: Integer [ps] HighVoltage: Float [V] #Required field if 'Voltage' is selected as Signaling LowVoltage: Float [V] #Required field if 'Voltage' is selected as Signaling AnalogParameters: #Required fields if 'Analog' is selected as Type MaxVoltage: Float [V] BitDepth: Integer ReferenceParameters: REventNumber: Intege r #Required field if 'Event' is selected as Reference RSignalName: Text #Required field if 'Signal' is selected as Reference RAnalogMin: Float #Required field if 'Analog' is selected as Reference RAnalogMax: Float #Required field if 'Analog' is selected as Reference InhibitParameters: ISignalName: Text #Required field if 'Signal' is selected as Reference IPolarity: ActiveHigh | ActiveLow #Required field if 'Signal' is select. as Reference ModifierParameters: Divider: Integer #Required field if 'Trigger' or 'Gate' are selected as Type Holdoff: Integer [ps] #Required field if 'Trigger'or 'Gate' is selected as Type Delay: Integer [ps] #Required field if 'Trigger'or 'Gate' is selected as Type ADivider: Float #Required field if 'Analog' is selected as Type
Deliverable no. D5.3 Page 5 of 18 Detailed description of the mandatory descriptors of signal ‘Name’ of Type Text. All ‘Names’ of all Signals in an experiment must be pairwise different. ‘Description’ of Type Text. ‘Direction’ of Type case sensitive string. Can only be one of the following KeyWords: “Input” or “Output”. The KeyWords mean the following: “Input” This Signal does not create and output (e.g. detector) “Output” This Signal creates an output signal ‘Formfactor’ of Type case sensitive string. Can only be one of the following KeyWords: “BNC” or “SMA” or “LEMO_00” or “FO”. The KeyWords mean the following: “BNC” Plug is BNC “SMA” Plug is SMA “LEMO_00” Plug is Lemo 00 “FO” Fiber Optics ‘Type’ of Type case sensitive string. Can only be one of the following KeyWords: “Trigger”, “Gate”, “Analog”. The KeyWords mean the following: “Trigger” raising or falling edges as input or outputs “Gate” switches between low and high state “Analog” creates or receives analog values (e.g. from ADC, encoder etc) ‘Reference’ of Type case sensitive string. Can only be one of the following KeyWords: “None”, “RF_Signal”, “External_Clock”, “Internal_Clock”, “Event”, “Signal” or “Analog”. The ‘Reference’ determines, how the input/output of ’Signal’ is handled. ‘Reference’ contains Descriptors (see below). The KeyWords mean the following: “None” The signal does not follow a reference (e.g. a detector would be of ‘Direction’ “Input” and doesn’t require a ‘Reference’. “RF_Signal” An RF-signal is expected as input, e.g. the bunch clock signal. If ‘Direction’ equals “Output” Signal is equal to “Reference”, modified by ‘Modifier’ (see later) and formed by ‘DigitalParameters’.
Deliverable no. D5.3 Page 6 of 18 “External_Clock” An external clock signal is expected as input, e.g. from a frequency generator. If ‘Direction’ equals “Output” Signal is equal to “Reference”, modified by ‘Modifier’ and formed by ‘DigitalParameters’. “Internal_Clock” The device produces an internal clock signal. If ‘Direction’ equals “Output” Signal is equal to “Reference”, modified by ‘Modifier’ and formed by ‘DigitalParameters’. “Event” Signal waits for clock events over a digital bus. If ‘Direction’ equals “Output” Signal is equal to “Reference”, modified by ‘Modifier’ and formed by ‘DigitalParameters’. “Signal” The reference is formed by the output of another Signal (e.g. named “OtherSignal”). If ‘Direction’ equals “Output” Signal is equal to “Reference”, modified by ‘Modifier’ and formed by ‘DigitalParameters’. An example would be, that a Signal “ClockSignal” creates TTL-Triggers from the an “Internal_clock”. The Signal “DelaySignal” expects “ClockSignal” as reference and delays the reference to form an output. “Analog” Signal waits for an analog reference to be within a certain limit. Then an action is created. If Type is “Trigger” Signal produces a new trigger, if Type is “Gate” Signal swaps the level, modified by ‘Modifier’ and formed by ‘DigitalParameters’. If Type is “Analog” Signal is modified by ‘Modifier’ and formed by ‘AnalogParameters’ ‘Inhibit’ of Type case sensitive string. Can only be one of the following KeyWords: “None” or “Signal”. ‘Reference’ contains Descriptors (see below). The KeyWords mean the following: “None” No effect “Signal” Another Signal acts as input to inhibit this Signal. This Signal must deliver a TTL signal ‘DigitalParameters’ Only to be defined if ‘Type’ equals “Trigger” or “Gate”. ‘DigitalParameters’ contains Descriptors (see below)
Deliverable no. D5.3 Page 7 of 18 ‘AnalogParameters’ Only to be defined if ‘Type’ equals “Analog”. ‘AnalogParameters’ contains Descriptors (see below) ‘ReferenceParameters’ A Descriptor which handles descriptions of the reference. Contains Descriptors (see below) ‘InhibitParameters’ Only to be defined if ‘Inhibit’ equals “Signal”. ‘InhibitParameters’ contains Descriptors (see below) ‘ModifierParametrers’ A Descriptor which handles modifications on the signal. ‘Modifier’ contains Descriptors (see below) In the following, all Descriptors which are contained inside the parent Descriptors (‘DigitalParameters’, ‘AnalogParameters’, ‘ReferenceParameters’, ‘InhibitParameters’, ‘ModifierParameters’) are described: ‘DigitalParameters’ is only to be defined if ‘Type’ equals “Trigger” or “Gate”. Contains the following Descriptors: ‘Signaling ‘ of Type case sensitive string. Can only be one of the following KeyWords: “TTL”, “LVTTL”, “CMOS”, “50Ohm”, “OpenCollector”, “OpenEmitter”, “Voltage” ‘Polarity’ Only to be defined if ‘Signaling’ does not equal “Voltage”. Is of Type case sensitive string. Can only be one of the following KeyWords: “ActiveHigh” or “ActiveLow”. In case of ‘Type’ = “Trigger” the KeyWord “ActiveHigh” means trigger on rising edge and “ActiveLow” means trigger on falling edge. In case of ‘Type’ = ‘Gate’ the meaning is clear. ‘ActiveTime’ of Type Integer measured in pico seconds. The value specifies how long a signal needs to be active to be valid. ‘DeadTime’ of Type Integer measured in pico seconds. The value is the time between two signals making both signal valid. ‘RiseTime’ of Type Integer measured in pico seconds. The value specifies how long it takes for a valid signal to rise from low to high. ‘FallTime’ of Type Integer measured in pico seconds. The value specifies how long it takes for a valid signal to fall from high to low.
Deliverable no. D5.3 Page 8 of 18 ‘MaxJitter’ of Type Integer measured in pico seconds. The value specifies the maximum time. ‘HighVoltage’ Only to be defined if ‘Signaling’ equals “Voltage”. Is of Type Float. It determines the voltage which corresponds to the high-state ‘LowVoltage’ Only to be defined if ‘Signaling’ equals “Voltage”. Is of Type Float. It determines the voltage which corresponds to the low-state ‘AnalogParameters’ is only to be defined if ‘Type’ equals “Analog”. It contains the following Descriptors: ‘MaxVoltage’ of Type Float measured in Volts. Specifies the maximum voltage allowed. ‘BitDepth’ of Type Integer. Specifies the with how many bits the voltage is sampled. ‘ReferencesParameters’ contains the following Descriptors. If ‘Reference’ equals “None” none of the Descriptors are to be defined. ‘REventNumber’ Only to be defined if ‘Reference’ equals “Event”, of Type Integer and expects the event number. ‘RSignalName’ Only to be defined if ‘Reference’ equals “Signal”. This means that the Reference is defined by another Signal. Is of Type case sensitive string and expects the ‘Name’ of another Signal. ‘RAnalogMin’ Only to be defined if ‘Reference’ equals “Analog”, of Type Float and expects a Voltage the event number. Signal waits for an analog reference to be within a certain limit. The Value of ‘RAnalogMin’ is the minimum Value of this limit. If the analog reference is between ‘RAnalogMin’ and ‘RAnalogMax’. ‘RAnalogMax’ Only to be defined if ‘Reference’ equals “Analog”, of Type Float and expects a Voltage the event number. Signal waits for an analog reference to be within a certain limit. The Value of ‘RAnalogMax’ is the maximum Value of this limit. If the analog reference is between ‘RAnalogMin’ and ‘RAnalogMax’.
Deliverable no. D5.3 Page 9 of 18 ‘InhibitParameters’ contains the following Descriptors. If ‘Inhibit’ equals “None”, no Descriptors are defined: ‘ISignalName’ Only to be defined if ‘Inhibit’ equals “Signal”. This means that the ‘Inhibit’ input is defined by another Signal which must be TTL-compatible. Is of Type case sensitive string and expects the ‘Name’ of another Signal. ‘IPolarity’ Only to be defined if ‘Inhibit’ equals “Signal”. Is of Type case sensitive string. Can only be one of the following KeyWords: “ActiveHigh” or “ActiveLow”. Signal is inhibited, as long as ‘Inhibit’ is active. ‘ModifierParameters’ contains the following Descriptors: ‘Divider’ Only to be defined if ‘Modifier’ equals “Trigger” or “Gate”. Is of Type Integer. The frequency of switching from active to inactive is deaccelerated by this amount. ‘Holdoff’ Only to be defined if ‘Modifier’ equals “Trigger”. Of Type Integer measured in pico seconds. The Value specifies the length of time after a trigger before the next trigger can occur. “Delay” The actual Values in “Output”-‘Direction’ are delayed by this value in pico seconds ‘ADivider’ Only to be defined if ‘Modifier’ equals “Analog”. Is of Type positive number Float. The Value of the analog Signal is multiplied by this factor. The resulting Value cannot be larger than ‘MaxVoltage’ of ‘AnalogParameters’.
Deliverable no. D5.3 Page 16 of 18 The JSON scheme for the examples mentioned above. In the following the JSON schemes match the examples from above: 1) An X-ray detector with external trigger, no inhibit, no divider, no holdoff and no delay *** JSON of Example 1 { "Signal": { "Name": "Detector", "Description": "Pilatus 300k, gets input from Bunch Clock", "Direction": "Input", "FormFactor": "BNC", "Type": "Trigger", "Reference": "None", "Inhibit": "None", "DigitalParameters": { "Signaling": "TTL", "Polarity": "ActiveHigh", "ActiveTime": 100000, "DeadTime": 1000, "RiseTime": 1000, "FallTime": 1000, "MaxJitter": 1000 }, "ModifierParameters": { "Divider": 1 "Holdoff": 0 "Delay": 0 } } }
Deliverable no. D5.3 Page 17 of 18 2) A signal which is generated by using the accelerator RF-signal, with delay 59 ns and divider of 10 *** JSON of Example 2 { "Signal1": { "Name": "Bunch Clock", "Description": "Bunch Clock Signal as Reference for some Instruments, e.g. Detector ", "Direction": "Output", "FormFactor": "LEMO_00", "Type": "Gate", "Reference": "Signal", "Inhibit": "None", "DigitalParameters": { "Signaling": "TTL", "Polarity": "ActiveHigh", "ActiveTime": 100000, "DeadTime": 1000, "RiseTime": 1000, "FallTime": 1000, "MaxJitter": 1000 }, “ReferenceParameters”: { “RSignalName”: RF-Signal }, "ModifierParameters": { "Divider": 10, "Holdoff": 0, "Delay": 59000 } } }
Deliverable no. D5.3 Page 18 of 18 3) A detector triggered by reference and inhibited by signal created by an event delayed by 10ns *** JSON of Example 3 { "Signal1": { "Name": " Inhibit for Detector ", "Description": "Input signal to inhibit Detector acquisition", "Direction": "Output", "FormFactor": "LEMO_00", "Type": "Trigger", "Reference": "Event", "Inhibit": "None", "DigitalParameters": { "Signaling": "LVTTL", "Polarity": "ActiveHigh" }, "ReferenceParameters": { "REventNumber": 195 } }, "Signal2": { "Name": "Detector", "Description": " Pilatus 300k, gets reference from RF-Signal and inhibit from Signal1", "Direction": "Input", "FormFactor": "BNC", "Type": "Trigger", "Reference": "RF_signal", "Inhibit": "Signal", "DigitalParameters": { "Signaling": "TTL", "Polarity": "ActiveHigh", "ActiveTime": 100000, "DeadTime": 1000, "RiseTime": 1000, "FallTime": 1000, "MaxJitter": 1000 }, "InhibitParameters": { "ISignalName": "Inhibit for Detector", "IPolarity": "ActiveHigh" }, "ModifierParameters": { "Divider": 1, "Holdoff": 0, "Delay": 10000 } } }