SiTCP

SiTCP is a hardware implementation of TCP/IP network communication protocol, developed by Tomohisa Uchida at KEK. It enables the communication without an involvement of a CPU. Please refer to Uchida-san's and BBT's web sites for detailed usage and the most recent IP core (the component to be linked when developing a firmware).

Like other TCP/IP devices, SiTCP has MAC address and IP address. These are written in EEPROM of SiTCP device, and configured when the device is powered on. Both MAC and IP addresses have to be unique in the network, and MAC address has to be purchased when a new device is manufactured.

MAC address setting

For Kalliope digital board, MAC address is usually indicated on the flat connector (see photo of Kalliope digital board in Hardware section). When MAC address is not explicitly written, follow the procedure below to identify it.

  • Connect the Kalliope device to a data acquisition (DAQ)-PC by an ethernet cable.
  • Start the Kalliope device with a default IP mode (192.168.10.16): set DIP-SW bit4=OFF and turn ON the power.
  • Make sure $ ping 192.168.10.16 returns a response. If not, alternate DIP-SW bit3 and turn on again.
  • Use $ arp -a and find the corresponding MAC address to the IP address. It should start with 7C:F0:98.
  • Otherwise, MAC address has to be installed. Use SiTCPMpcWriter (Windows or Mac application) in the BBT's tools. A file with MAC address information purchased is necessary.

IP address setting

SiTCP uses IPv4 address settings. It consists of four address fields of one byte (e.g. 192.168.10.16) and the subnet mask (e.g. 255.255.255.0), which controls the extent of the local network. The DAQ-PC must have the IP address reachable by the subnet mask (e.g. 192.168.10.254). Default gateway and name server usually do not exist, and may be set as a dummy to the DAQ-PC. To set the IP address, follow the procedure below.

  • Connect the Kalliope device to a DAQ-PC by an ethernet cable.
  • Start the Kalliope device with the default IP mode (192.168.10.16): set DIP-SW bit4=OFF and turn ON the power.
  • Make sure $ ping 192.168.10.16 returns a response. If not, alternate DIP-SW bit3 and turn on again.
  • Run $./SlowControl/WRITE_IP_ADDRESS and follow the instructions.
  • Set DIP-SW bit4=ON and press the reset SW. The Kalliope device should start up with the address set above (user IP mode).

Alternative tool: SiTCP Utility

To change IP address or monitor data flow in UDP and TCP protocols, SiTCP Utility is also available in BBT's tools. It is a Windows program, and is also available in other platforms (beta-release). Check on "access to EEPROM" which is marked in the red square in the figure below. Specify the current IP address and press "show(表示)" button. If the "eye" in the upper right corner blinks and the information is shown, the access was successful. If the current IP address is unknown, start the hardware in the forced default mode (192.168.10.16). Fill in the new IP address to set and press "rewrite(書き替え)" button. This loads the new IP address only to EEPROM, and the current IP address stays the same. To confirm the IP address in EEPROM, press again "show(表示)" button. This address is effective after turning on the harware power next time.

SiTCPUtil
Figure 1: SiTCP Utility

Protocols

SiTCP generally uses UDP protocol for parameter settings for the device to get ready for the data acquision (DAQ). TCP protocol is used for high-speed data transfer from the device to the DAQ-PC. The default port for the UDP connection is 4660 = 0x1234, and TCP connection is 24. Corresponding to the UDP and TCP protocol, Kalliope software packages are categolized in two groups: SlowControl and DAQ programs, such as sitcp_dump (DC-mode) or Run44 (Pulse-mode).

SlowControl uses UDP protocol to configure, setup and change the status of Kallipe devices. The protocol called remote bus controlling protocol (RBCP) is used for the UDP communications. RBCP returns UDP acknowledge for handshaking between the PC and SiTCP. UDP transmits 32 bit address and transmits/receives data in 8 bits synchlonized with the system clock. SiTCP internal registers and the EEPROM are also addressed and may be accessed via RBCP, as has been introduced in WRITE_IP_ADDRESS.

DAQ programs use TCP protorol to transfer data from the device to DAQ-PC in 1 GbE speed. Depending on the DAQ cycle (the timing and frequency that the data is transferred), Kalliope has two families of data acquistion: sitcp_dump for DC-mode and Run44 for Pulse-mode. Since DAQ programs depend on the actual experiments, they branch out to different versions.

TCP generally transmits or receives data in the 8 bit units synchlonized with the system clock; however, the TCP receive action (data from PC to hardware in TCP) is not recommended in SiTCP.

SiTCP does not "keep alive" the connection by default. This causes a session closure in case of very low trigger rate or beam off (~1 trigger / 30 min). To avoide such situation, regularly send a keep alive packet from PC to the SiTCP hardware.