Skip to content

arummler/ipbus-software

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IPbus software

The IPbus protocol is a simple packet-based control protocol for reading and modifying memory-mapped resources within FPGA-based IP-aware hardware devices which have a virtual A32/D32 bus.

The IPbus suite of software and firmware implement a reliable high-performance control link for particle physics electronics, based on the IPbus protocol. This suite has successfully replaced VME control in several large projects, and consists of the following components:

IPbus firmware
A module that implements the IPbus protocol within end-user hardware.
ControlHub
A software application that mediates simultaneous hardware access from multiple uHAL clients, and implements the IPbus reliability mechanism over UDP
uHAL
The Hardware Access Library (HAL) providing an end-user C++/Python API for IPbus reads, writes and RMW (read-modify-write) transactions.

This repository contains the source code for the ControlHub and uHAL.

Further reading

The most recent paper describing IPbus is from the proceedings for TWEPP2014:

C. Ghabrous Larrea, K. Harder, D. Newbold, D. Sankey, A. Rose, A. Thea and T. Williams, "IPbus: a flexible Ethernet-based control system for xTCA hardware", JINST 10 (2015) no.02, C02019. DOI: 10.1088/1748-0221/10/02/C02019

Licence

The ControlHub and uHAL are distributed under the version 3 of the GNU General Public License, which can be found in the LICENCE file in the same directory as this README. They are supported on a best-effort basis, and is provided on an "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 63.5%
  • Erlang 17.2%
  • Python 15.2%
  • Shell 1.8%
  • Makefile 1.8%
  • Batchfile 0.3%
  • Other 0.2%