A transmitter is only allowed to transmit N-Chars (normal characters, which are data characters, EOP or EEP), if there is space for them in the receive FIFO at the other end of the link. The receive FIFO indicates that there is space for eight more N-Chars by requesting the link transmitter to send a flow control token (FCT). The FCT is received at the other end of the link (end B) enabling the transmitter at end B to send up to eight more N-Chars. If there is more room in the receive FIFO, multiple FCTs can be sent, one for every eight spaces in the receive buffer. Correspondingly, if multiple FCTs are received then it means that there is a corresponding amount of space available in the receive FIFO e.g. four FCTs means that there is room for 32 N-Chars. Each FCT is exchanged in this way for 8 N-Chars. The operation of flow control is illustrated in Figure 41.
Figure 41 Flow Control With FCTs
The FCT sent by End B and received by End A (1), permits End A to send eight more N-Chars (2). The FCT goes in the opposite direction to the data that it is exchanged for. The SpaceWire link in Figure 41, is sending data in both directions of the link so FCTs are also being sent in both directions.