Concept B2B-Lite

Table of Contents

Principle

b2b_principle.png
Figure: Extraction (R1) and injection (R2) rings are operated at different harmonic numbers. Shown are filled buckets (solid red circles) and empty bucket (red circles). The first bucket within the h=1 RF-signal is marked by 1st (#1) for extraction (injection). The positions of virtual cavities, kickers and beam line are indicated.

The situation with B2B lite is the following.

  • the frequency of h=1 Group DDS-RF signals is exactly known and can be calculated from LSA values
  • the propagation of h=1 signals only depends on the phase measured at time t
  • two methods can be applied for matching the higher harmonics signals
    • frequency beating
    • phase shift
  • a precision of ~1 degree of the RF phase is sufficient; for typical RF frequencies this corresponds to about 1ns
  • BuTiS and White Rabbit are phase locked to each other

Hence, all measurements can be done with the Timestamp Latch Unit (TLU) of a standard White Rabbit Timing Receiver (TR).

Procedure

B2B_Transfer_Timing_Chart_freqBeating_rev003.png
Figure: B2B lite procedure. Shown are source (blue) and target (yellow) rings. The B2B system is started upon event EVT_KICK_START. The system basically replaces the so-called 'Timing Generator'.

The figure above depicts the procedure of the B2B system. Once the flat top is reached and the beam shall be transferred between ring machines, the system is started by the timing event EVT_KICK_START. First, the phase of the two h=1 Group DDS signals is measured and transferred to the Central B2B Unit (CBU). Here phase matching is achieved. For the first version only frequency beating is considered: The CBU calculated when the phases of the two rings match and immediately broadcasts timing events for triggering the kicker electronics. The procedure in detail:
  1. EVT_KICK_START starts the process at the CBU
  2. the CBU sends timing messages requesting the PM(s) to perform h=1 Group DDS phase measurement(s)
  3. the PM send timing messages including the measurement results to the CBU
  4. the CBU determines when phase matching is achieved
  5. the CBU sends timing messages requesting the KD(s) to trigger the kicker electronics
  6. the KD
    • generate an LVTTL signal triggering the electronics
    • timestamp an (output) signal from the electronics
    • timestamp an signal from the kicker magnet probe
    • send timing messages including the transfer results and kicker timestamps

Remark: The freeze of the phase corrections at the group DDS is not required (yet), as control loops are not yet implemented.

Operation Modes

As true 'bunch to bucket' is not always required, the B2B system supports a couple of different operation modes.

Mode Off

The B2B system can be configure not to react on EVT_KICK_START at all.

Mode Event Kick Start

The mode 'Event Kick Start' (EKS) triggers the kicker electronics at the same time as EVT_KICK_START. This mode is of use for testing the kicker or when beam extraction is not required to be synchronized with the RF-system.

Mode Bunch 2 Extract

The mode 'Bunch 2 Extract' (B2E) is used when beam shall be extracted in sync with the RF-system. Here, only the extraction kicker is triggered. The primary use of this mode is so-called 'fast extraction' to a fixed target.

Mode Bunch 2 Coasting Beam

The mode 'Bunch to Coasting Beam' (B2C) has been the primary mode of operation for beam transfer from SIS18 to ESR in the past years of operation. Here, extraction happens in sync with the RF-system and injection is done into a ring with inactive RF system. From the technical point of view, the only difference to mode B2E is that the injection kicker is triggered.

Mode Bunch 2 Bucket

Finally, the mode 'Bunch 2 Bucket' (B2B) provides extraction of bunches from the source ring and their transfer into RF-buckets at the target ring. The main task in addition to mode B2C is the synchronizing the RF-systems of the two rings.

Setup

See here

Data Flow

The B2B system makes use of the White Rabbit network to transfer data with upper bound latency. This communication must not be in conflict with the one by the Data Master of the timing system. Thus, the number of messages that are sent within a specified time slot must be considered by the Data Master and LSA. The format as well as event numbers and group numbers have been agreed on with other stakeholders in the control system.

Event Format Dialect

The B2B system deviates from the regular event format.

Datum Ident Difference
FID X  
GID X  
EVTNO X  
Flags   always '0x8'
SID X  
BPID   unused
Reserved   bit 0 set: error PM extraction
    bit 1 set: error KD extraction
    bit 2 set: error PM injection
    bit 3 set: error KD injection
    bit 4 set: error CBU
Param   event specific
Table: Event format differences with respect to FID 0x1.

GID

GID (d) GID (x) Name Description Source
  0x12c SIS18_RING (exists: CMD_B2B_TRIGGER... are sent here) SIS18 CBU
  0x154 ESR_RING (exists: CMD_B2B_TRIGGER... are sent here) ESR CBU
  0x0d2 CRYRING_RING (exists: CMD_B2B_TRIGGER... are sent here) CRYRING CBU
  0x136 SIS100_RING (exists: CMD_B2B_TRIGGER... are sent here) SIS100 CBU
0d928 0x3a0 SIS18_B2B_EXTRACT B2B internal: extraction from SIS18 SIS18 CBU
0d929 0x3a1 SIS18_B2B_ESR B2B internal: transfer SIS18 to ESR SIS18 CBU
0d930 0x3a2 SIS18_B2B_SIS100 B2B internal: transfer SIS18 to SIS100 SIS18 CBU
0d933 0x3a5 ESR_B2B_EXTRACT B2B internal: extraction from ESR ESR CBU
0d934 0x3a6 ESR_B2B_CRYRING B2B internal: transfer ESR to CRYRING ESR CBU
0d938 0x3aa CRYRING_B2B_EXTRACT B2B internal: extraction from CRYRING CRYRING CBU
0d944 0x3b0 SIS100_B2B_EXTRACT B2B internal: extraction from SIS100 SIS100 CBU
... ... ... ...  
Table: Group numbers used for internal communication by the B2B system.

The table above is not complete and needs to be extended for upcoming machines like CR, HESR using the following scheme:
  • < ring A >_B2B_< ring b >: transfer between rings
  • < ring A >_B2B_PP: transfer from a ring to PHELIX; (special case, requires synchronizing with laser instead of RF)
  • < ring A >_B2B_EXTRACT: extraction from a ring; the target is unspecified and might be an experiment (FRS, PRIOR ...)

EvtNo

!EvtNo (d) !EvtNo (x) Name Parameter Field TEF Description
0d2048 0x800 CMD_B2B_PMEXT high 8 bit: harmonic number; next 4 bit: b2b mode; low 52 bit: h=1 DDS period [as, uint] high 16 bit: ext kick corr [us, float]; low 16 bit: inj kick corr [us, float] [2] B2B internal: request phase measurement (extraction)
0d2049 0x801 CMD_B2B_PMINJ high 8 bit: harmonic number; next 4 bit: reserved; low 52 bit: h=1 DDS period [as, uint] high 16 bit: phase corr [us float] [2]; low 16 bit: reserved B2B internal: request phase measurement (injection)
0d2050 0x802 CMD_B2B_PREXT 64 bit: phase h=1 DDS period [ns, uint] high 16 bit: error fractional phase [ps]; low 16 bit: fractional phase [ps] B2B internal: send result of phase measurement (extraction) [3]
0d2051 0x803 CMD_B2B_PRINJ 64 bit: phase h=1 DDS period [ns, uint] high 16 bit: error fractional phase [ps]; low 16 bit: fractional phase [ps] B2B internal: send result of phase measurement (injection) [3]
0d2052 0x804 CMD_B2B_TRIGGEREXT default high 16 bit: offset of 'ready' to CBS [us, float]; low 16 bit: offset PRE to CBS [us, float] B2B: trigger kicker electronics (extraction) [1]
0d2053 0x805 CMD_B2B_TRIGGERINJ default N/A B2B: trigger kicker electronics (injection) [1]
0d2054 0x806 CMD_B2B_DIAGKICKEXT high 32 bit: electronics delay [ns, uint]; low 32 bit: probe delay [ns, uint] N/A B2B: kick diagnostic (extraction) [1]
0d2055 0x807 CMD_B2B_DIAGKICKINJ high 32 bit: electronics delay [ns, uint]; low 32 bit: probe delay [ns, uint] N/A B2B: kick diagnostic (injection) [1]
0d2056 0x808 CMD_B2B_DIAGEXT high 32 bit: phase diag [ns, float]; low 32 bit: match diag [ns, float] N/A B2B internal: diagnostic (extraction)
0d2057 0x809 CMD_B2B_DIAGINJ high 32 bit: phase diag [ns, float]; low 32 bit: match diag [ns, float] N/A B2B internal: diagnostic (injection)
... ... ... ...
0d2079 0x81f CMD_B2B_... reserved til here
Table: Event numbers used for internal communication of the B2B system. Only 0x800..0x805 are used for operation. Other event numbers serve for optional run-time diagnostics.

[1] CMD_B2B_TRIGGER.... will be sent to the relevant group. Example: CMD_B2B_TRIGGEREXT is sent to SIS18_RING when the extraction kicker shall be triggered.

[2] the set-values are informative only; due to the reduced precision (16 bit float) they are rounded to about one per mil and may differ slightly from the LSA values.

[3] the value assigned to 'error fractional phase' is presently (May 2023) the window defined by max/min, see here.

Phase Matching Algorithm

Due to White Rabbit, timing receivers share a common notion of time. Hence, it is easy to solve phase matching in the time domain. In addition, the lm32 soft-cores don't support floating point calculations and adding numbers is match faster compared to (emulated) divisions. In order to minimize uncertainties due to rounding of numbers, the algorithm described here uses a timescale in atoseconds.

beat-algorithm-a-new.png
Figure: Two rings with exact match of higher harmonics. Shown are markers of h=1 rf-periods for extraction (bottom) and injection (top).

The figure above shows a situation with two ring machines; there is no beating and the h=1 signals are perfectly matched.

beat-algorithm-b-new.png
Figure: Two rings with frequency beating at higher harmonics. Shown is a situation, where the h=1 frequency of the injection machine is increased slightly. Dashed markers indicate how the red markers of the injection machine evolves compared to the extraction machine. After one iteration, the time difference between red markers is Tdiff. Beating can be observed by the time differences (TD0..D2) between the (almost) matching solid red markers, which becomes smaller with each iteration.

The figure above shows a situation for frequency beats. From the point of view of the extraction machine, the red marker of the injection machine 'comes closer' with every iteration. One just has to wait until the red marker of the injection machine matches/passes the one of the extraction machine. This is predictable. Tdiff is known from LSA values and TD0 is the time difference between the phase measurements at the two machines, see remark (2). The ratio TD0 / Tdiff is just the number of iterations until phase matching of the h=1 signals will be achieved; the length of one iteration is known too.

Remark (2)
  • the algorithm has to distinct between two cases, depending which machine is detuned in which direction
  • for practical reasons, the starting conditions of the algorithm has to be chosen such, that TD0 is smaller than the shortest rf-period. This can easily be achieved by shifting the measured phase values by their periods
  • the algorithm implies
    • rf-control loops are frozen prior to the start of the phase matching procedure
    • rf-control loops for stabilization are based on a phase shifting method; in this case the rf frequencies are identical to LSA values

-- DietrichBeck - 27 Sep 2023
I Attachment Action Size Date WhoSorted ascending Comment
B2B_Transfer_Timing_Chart_freqBeating_rev003.pngpng B2B_Transfer_Timing_Chart_freqBeating_rev003.png manage 470 K 04 Dec 2020 - 10:12 DietrichBeck principle
b2b_principle.pngpng b2b_principle.png manage 73 K 04 Dec 2020 - 09:49 DietrichBeck b2b lite: principle
b2b_setup.pngpng b2b_setup.png manage 86 K 04 Dec 2020 - 10:36 DietrichBeck b2b lite: setup
beat-algorithm-a-new.pngpng beat-algorithm-a-new.png manage 25 K 26 Feb 2021 - 18:11 DietrichBeck new beat algorithm (no beating)
beat-algorithm-b-new.pngpng beat-algorithm-b-new.png manage 49 K 26 Feb 2021 - 18:12 DietrichBeck new beat algortithm (beating)
Topic revision: r48 - 03 Nov 2023, DietrichBeck
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback