Using IPbus

From pCT
Revision as of 10:17, 8 September 2020 by Wac002 (talk | contribs)

Main Page -> Control & Readout Software Documentation and Howto's -> Using IPbus

Use case

IPbus is a control protocol that uses UDP/IP to send values into the registers on the readout unit (RU). The software on the host computer uses the Hardware Access Library (uHAL) to send the commands to the RU. Ipbus-conect6.png


Configuration files

There is a main connection file (pRU-connections.xml), this file contains the address and port of the RU, for information on the content of the connection file please see the pRU Ethernet Configurations document.

Following there is a Module registers file (module-address.xml), this file contains a table with all the registers present in the RU.

Finally, there are files for each register

  • global_regs.xml
  • trigger_manager.xml
  • offload.xml
  • alpide_control.xml
  • alpide_data.xml

As of the writing of this page, these files can be found on the production_test repository in the ipbus branch under the BSP folder.

WARNING: To prevent undefined behavior the register files MUST match the firmware version!


Smart Dummy Hardware

To be able to read values from registers, a custom DummyHardwareUdp.exe can be built from this repository: IPbus Custom Repo

NB! If IPBus is built inside the repo folder. It is important to add LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path-to-folder/ipbus-software/uhal/tests/lib/:/path-to-folder/ipbus-software/uhal/log/lib/:/path-to-folder/ipbus-software/uhal/uhal/lib/:/path-to-folder/ipbus-software/uhal/grammars/lib/

This adds a file reader in the DummyHardware.cpp that reads a file in the directory of the executable, the file is called register-values.txt, an example file can be found here: Example file



Additonal information

For more information, please consult the IPbus wiki at: IPbus wiki