JACoW logo

Joint Accelerator Conferences Website

The Joint Accelerator Conferences Website (JACoW) is an international collaboration that publishes the proceedings of accelerator conferences held around the world.

BiBTeX citation export for MOPHA075: EPICS Support Module for Efficient UDP Communication With FPGAs

  author       = {M.G. Konrad and E. Bernal and M.A. Davis},
  title        = {{EPICS Support Module for Efficient UDP Communication With FPGAs}},
  booktitle    = {Proc. ICALEPCS'19},
  pages        = {388--391},
  paper        = {MOPHA075},
  language     = {english},
  keywords     = {EPICS, controls, operation, low-level-rf, machine-protect},
  venue        = {New York, NY, USA},
  series       = {International Conference on Accelerator and Large Experimental Physics Control Systems},
  number       = {17},
  publisher    = {JACoW Publishing, Geneva, Switzerland},
  month        = {08},
  year         = {2020},
  issn         = {2226-0358},
  isbn         = {978-3-95450-209-7},
  doi          = {10.18429/JACoW-ICALEPCS2019-MOPHA075},
  url          = {https://jacow.org/icalepcs2019/papers/mopha075.pdf},
  note         = {https://doi.org/10.18429/JACoW-ICALEPCS2019-MOPHA075},
  abstract     = {The driver linac of the Facility for Rare Isotope Beams (FRIB) contains 332 cavities which are controlled by individual FPGA-based low-level RF controllers. Due to limited hardware resources the EPICS IOCs cannot be embedded in the low-level RF controllers but are running on virtual machines communicating with the devices over Ethernet. An EPICS support module communicating with the devices over UDP has been developed based on the Asyn library. It supports efficient read and write access for both scalar and array data as well as support for triggering actions on the device. Device-related parameters like register addresses and data types are configurable in the EPICS record database making the support module independent of the hardware and the application. This also allows engineers to keep up with evolving firmware without recompiling the support library. The implementation of the support module leverages modern C++ features and relies on timers for periodic communication, timeouts, and detection of communication problems. The latter allows the communication code to be tested separately from the timers keeping the run time of the unit tests short.},