Fast Acquisition Data Stream Archiver

Author: Michael Abbott, Diamond Light Source

Introduction

The FA archiver comprises a suite of tools for acquiring, storing and processing the Fast Acquisition data stream generated by Libera EBPMs or other data sources using the Diamond FA communication controller.

The core components of the archiver suite are:

fa_sniffer

The Fast Acquisition communication network communicates with the FA archiver through a communication controller FPGA firmware image installed on a Virtex-5 PCI Express development board, the LXT ML555 development kit. The FA sniffer firmware was developed by Isa Uzun at Diamond Light Source.

With this card installed the fa_sniffer device driver provides a buffered character device interface to FA data stream allowing the entire data stream from up to 255 attached devices to be captured without interruption. The associated data rate is around 20 MB per second.

fa-archiver

The archiver software runs on the same machine as the sniffer card and its firmware. The data stream is read continuously and archived in a rolling circular archive and simultaneously retransmitted through a socket interface to interested clients.

At Diamond we use a 6TB archive, using two 3TB disks joined into a single /dev/mapper block device (as the archiver can only archive to a single targe file). This gives us access to just under 4 1/2 days of archive of 183 FA data sources (both electron BPMs and other sources).

Live data is available for any of the 255 FA sources at full data rate, or at a low pass filtered decimated rate (1/10 rate by default). Archived data is also available at full rate and at two different binned rates (1/64 and 1/16384 by default), also called decimated -- these are useful for generating overviews of the stored data.

fa-prepare
The archive file used by the archiver must be prepared before use, in particular the set of FA ids to archive and the operating parameters must be set. The fa-prepare tool is used to do this.

The following tools make use of the server interface to the archiver:

fa-viewer
The viewer provides a direct view of the live data from a single data source, and can display the spectrum and integrated power spectrum. This can be a very powerful diagnostic tool.
fa_zoomer
This is a matlab script that interfaces to the archive and provides an overview of the entire content of the archive. Regions of the archived data can be zoomed into and viewed at any required level of data.
fa-capture
This command line tool interfaces directly to the archive server to capture both live and archived data.
fa-audio
Occasionally the FA data stream can be instructive as an audio stream. This is particularly successful as the FA data rate of 10kHz is a good match for audio.

The following supporting libraries are also worth noting:

falib
This is a Python library used in the implementation of the Python tools listed above.
fa_load
This is a matlab wrapper around the fa-capture tool.

See Also

fa_sniffer, fa-archiver, fa-prepare, fa-capture, fa-viewer, fa-audio, falib, fa_zoomer, fa_load