General information

A hub is, like in any other network, a logical unit that merges the data coming in on different lines and sends it out on every other line.

Hub logic: Example of operation

Let's assume, we have a hub with 5 interfaces. (Whether they are media independent interfaces or application interfaces does not matter, they are all treated the same inside the hub logic). A data transmission is coming in on the init channel of line 1. This data is copied to the init channel of all other lines. Now, we have to wait for the answers on all four channels. Lines 2 and 3 react immediately with a TRM on the reply channel. These TRM are stored until all interfaces have sent their answers. Lines 4 and 5 send back some data. First the data of line 4 is passed to line 1, who initiated the transfer. After the TRM of line 4 is received, the data of line 5 is read and sent to line 1. Now all interfaces have sent their TRM, so the merged TRM of all interfaces is sent to line 1. The transfer is finished and the hub goes back to idle mode.


Each hub can be configured by a large number of generics. The complete table can be found in TrbNetConfiguration.

Control registers

Every hub has its own network address and one slow control interface. This is used to retrieve information about the current status, to switch off unused interfaces or to solve an error condition.

Address Direction Name Description
80-83 STAT HUB_STAT_locked 1 bit per port. '1' when waiting for TRM, '0' otherwise
84 STAT HUB_STAT_active_points 1 bit per port - '1' when link is active, '0' when link is not operational
85 CFG HUB_UPLINKS Lists all uplinks
86 CFG HUB_DOWNLINKS Lists all downlinks
87 STAT IPU_STATUS IPU status register
88-8B STAT HUB_STAT_TIMEOUT timeout of a connected endpoint, one register for each channel. Status is cleared after read
8C-8F STAT HUB_STAT_ACK status for all init obufs: set if obuf is waiting for two acknowledges
90-9F STAT HUB_ERROR_BITS 0-7:LVL1 0-7, 8-15:LVL1 23-16, 16-23:IPU 0-7, 24-31:IPU 23-16
A0-A3 STAT HUB_STAT_ERROR status & error bits per channel
A4 STAT HUB_SCTRL_ERROR combination of errorbits 1,3,6 in slow control channel per port

Address Direction Name Description
C0 CTRL HUB_CTRL_SWITCH_PORTS_CH0 Switch port logically off on channel 0
C4 CTRL HUB_CTRL_SWITCH_INTERFACE completely switch off port (currently: Do NOT use)
C5 CTRL HUB_TIMEOUT_TIME set timeout delay for each channel (4 bits per channel) *
C6 CTRL LOCAL_NETWORK_RESET reset part of network connected to this link

*)Timeout time is a 4 bit value which determines the time the downlink has to answer until a timeout occurs. Time = (2**(value+16))/Clock_freq = 0.66ms * 2**value. 0 switches timeout off.
I Attachment Action Size Date Who Comment
trbnethub.pngpng trbnethub.png manage 29 K 2007-11-27 - 13:09 JanMichel TrbNetHub (red: multiplexer, orange: iobuf, blue: api, purple: hub_logic, gray: hub_base)
Topic revision: r17 - 2010-01-07, JanMichel
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki Send feedback | Imprint | Privacy Policy (in German)