Skip to main content

Image

Space engineering

Foreword

This Standard is one of the series of ECSS Standards intended to be applied together for the management, engineering and product assurance in space projects and applications. ECSS is a cooperative effort of the European Space Agency, national space agencies and European industry associations for the purpose of developing and maintaining common standards. Requirements in this Standard are defined in terms of what shall be accomplished, rather than in terms of how to organize and perform the necessary work. This allows existing organizational structures and methods to be applied where they are effective, and for the structures and methods to evolve as necessary without rewriting the standards.

This Standard has been prepared by the ECSS-E-ST-50-11C Working Group, reviewed by the ECSS Executive Secretariat and approved by the ECSS Technical Authority.

Disclaimer

ECSS does not provide any warranty whatsoever, whether expressed, implied, or statutory, including, but not limited to, any warranty of merchantability or fitness for a particular purpose or any warranty that the contents of the item are error-free. In no respect shall ECSS incur any liability for any damages, including, but not limited to, direct, indirect, special, or consequential damages arising out of, resulting from, or in any way connected to the use of this Standard, whether or not based upon warranty, business agreement, tort, or otherwise; whether or not injury was sustained by persons or property or otherwise; and whether or not loss was sustained from, or arose out of, the results of, the item, or any services that may be provided by ECSS.

Published by:     ESA Requirements and Standards Division
    ESTEC, P.O. Box 299,
    2200 AG Noordwijk
    The Netherlands
Copyright:     2019© by the European Space Agency for the members of ECSS

Change log

ECSS-E-ST-50-11C


15 May 2019


First issue


Scope

SpaceFibre is a very high-speed serial link and network technology, designed specifically for use on board spacecraft. SpaceFibre is able to operate over fibre-optic and electrical cable and supports data rates of up to 5 Gbit/s (6,25 Gbit/s data signalling rate). It complements the capabilities of the widely used SpaceWire on-board networking standard: improving the data rate by a factor of 10, reducing the cable mass and providing galvanic isolation. Multi-laning improves the data rate further to well over 20 Gbit/s.

SpaceFibre provides a coherent quality of service mechanism able to support bandwidth reserved, scheduled and priority-based qualities of service. It substantially improves the fault detection, isolation and recovery (FDIR) capability compared to SpaceWire.

SpaceFibre aims to support high data-rate payloads, for example synthetic aperture radar and hyper-spectral optical instruments. It provides robust, long distance communications for launcher applications and supports avionics applications with deterministic delivery constraints through the use of virtual channels. SpaceFibre enables a common on-board infrastructure to be used across many different mission applications resulting in cost reduction and design reusability. SpaceFibre uses a packet format which is the same as SpaceWire enabling simple connection between existing SpaceWire equipment and high-speed SpaceFibre links and networks. Applications developed for SpaceWire can be readily transferred to SpaceFibre.

The SpaceFibre standard specifies the interfaces to the user application and to the physical medium. Intermediate interfaces between protocol layers are also specified. The functions that a SpaceFibre interface has to implement are specified. Connector and cable characteristics for SpaceFibre optical and copper implementations are also specified.

This standard may be tailored for the specific characteristics and constraints of a space project in conformance with ECSS-S-ST-00.

Normative references

The following normative documents contain provisions which, through reference in this text, constitute provisions of this ECSS Standard. For dated references, subsequent amendments to, or revision of any of these publications do not apply. However, parties to agreements based on this ECSS Standard are encouraged to investigate the possibility of applying the more recent editions of the normative documents indicated below. For undated references, the latest edition of the publication referred to applies.

ECSS-S-ST-00-01


ECSS system - Glossary of terms


ECSS-E-ST-50-52


Space engineering - SpaceWire – Remote memory access protocol


ECSS-Q-ST-70-02


Space product assurance - Thermal vacuum outgassing test for the screening of space materials


ECSS-Q-ST-70-21


Space product assurance - Flammability testing for the screening of space materials


ECSS-Q-ST-70-29


Space product assurance - Determination of offgassing products from materials and assembled articles to be used in a manned space vehicle crew compartment


ESCC 2263420:2017


Evaluation Test programme for optical fibre cable assemblies, ESCC Basic Specification, issue 1, June 2017


ESCC 3401/090:2018


High Data Rate Connectors Savers, Plugs based on type AxoMach, ESCC Detailed Specification, issue 1, 2018


ESCC 3409:2018


High Data Rate Cable Assemblies, ESCC Generic Specification, issue 1, 2018


ESCC 3409/001:2018


High Data Rate Harnesses based on type AxoMach, ESCC Detailed Specification, issue 1, 2018


ESCC 3420:2017


Optical Fibre Cable Assemblies with Single Fibre Ferrules, ESCC Generic Specification, issue 1, June 2017


ESCC 3420/001:2017


Optical Fibre Cable Assemblies with Single Fibre Ferrules, ESCC Detail Specification, issue 1, June 2017


IEC 60793-2-10:2015


Optical fibres - Part 2-10: Product specifications - Sectional specification for category A1 multimode fibres, IEC, 2015


IEC 61754-5:2005


Fibre optic connector interfaces - Part 5: Type MT connector family, IEC, 2005


IEC 61755-3-31:2015


Fibre optic interconnecting devices and passive components - Connector optical interfaces - Part 3-31: Connector parameters of non-dispersion shifted single mode physically contacting fibres - Angled polyphenylene sulphide rectangular ferrules


IEC 61755-3-32:2015


Fibre optic interconnecting devices and passive components - Connector optical interfaces - Part 3-32: Connector parameters of non-dispersion shifted single mode physically contacting fibres - Angled thermoset epoxy rectangular ferrules


IEEE 802.3:2012


IEEE Standard for Ethernet, IEEE Standards Association, 28 December 2012


MIL-PRF-49291, Revision D, Amendment 1, 20 November 2014


Performance Specification, Fiber, Optical, (Metric) General Specification


Serial ATA Revision 3.0:2009



Serial ATA Revision 3.0, clause 6.6.1, Serial ATA International Organization, June 2, 2009, Gold Revision


Terms, definitions and abbreviated terms

Terms defined in other standards

For the purpose of this Standard, the terms and definitions from ECSS-S-ST-00-01 apply.

Terms specific to the present standard

active lane
unidirectional lane or bi-directional lane which is in the Active state

asymmetric link
multi-lane link that includes one or more unidirectional lanes

available bandwidth
number of data words or control words sent since the bandwidth credit was last updated

bandwidth credit
amount of link bandwidth that a virtual channel has accumulated

bandwidth credit limit
maximum amount of positive or negative bandwidth credit that a virtual channel is allowed to accumulate

bandwidth utilisation
measure of how much bandwidth allocated to a virtual channel has been used recently, allowing for loss of measured use of bandwidth when either the positive or negative bandwidth credit limit is reached

bi-directional lane
active lane or inactive lane which has the TX_EN and RX_EN configuration bits asserted at both ends of the link, so that when active it can send information in both directions of the link

bit error rate
ratio of the number of bits received in error to the total number of bits sent across a link

bit interval
duration of a bit travelling over a serial interface

broadcast frame
broadcast message which has been encapsulated using an SBF at the front of the broadcast message and an EBF at the end of the broadcast message

broadcast message
eight bytes of application data sent to every node on the network, along with an eight-bit broadcast type, which determines the meaning of the application data

byte
eight bits

cargo
information for transferring from a source to a destination which is encapsulated in a packet

character
data character or control character

coding
act of translating a set of bits into another set of bits which are more appropriate for transmitting across a medium

comma
K28.5 or K28.7 control symbol

configuration port
port in a routing switch or node that gives access to a configuration node

configuration node
type of node whose purpose is to configure the routing switch that it is part of

continuous mode
mode of virtual channel operation which ignores flow control so that data can always be accepted from the Network layer but if the virtual channel buffer is full that data will be discarded

control character
character containing 8-bits of control information

control symbol
K-symbol

control word
word used for control of the SpaceFibre protocol comprising a comma, or the K-code of an EBF, EDF, FCT or RXERR, followed by three data characters or Fills

current running disparity
accumulated disparity of a bit stream from when it started to the present moment in time

data character
character containing 8-bits of data information

data frame
segment of N-Chars and Fills from one or more packets which have been encapsulated using an SDF, for each lane, at the front of the segment and an EDF, for each lane, at the end of that segment

Data Link layer
protocol layer which is responsible for transferring packets and broadcast messages over the link, for the quality of service over the link, and for recovery from errors on the link

Data Link layer control word
ACK, NACK, FULL, RETRY, SDF, EDF, SBF, EBF, SIF, or FCT control word

data rate
rate at which the application data is transferred across a link

data-receiving lane
active, receive enabled lane, which is connected to a data-sending lane so that it can receive Data Link layer words

Receive enabled lane means RX_EN asserted at the near-end of the link.

data segment
group of up to N×64 sequential data words from one or more packets, where N is an integer less than or equal to the "maximum number of data-sending lanes" parameter

The term ”segment” is synonymous.

data-sending lane
active, transmit enabled lane which when provided with Data Link layer words, sends them to the data-receiving lane at the far-end of the link

Transmit enabled lane means TX_EN asserted at the near-end of the link.

data signalling rate
rate at which the bits constituting control and data symbols are transferred across a link

data symbol
D-symbol

data word
word of data comprising four SpaceFibre N-Chars or Fill characters

decoding
act of translating an encoded set of bits back into the original set of bits prior to encoding

device
node or routing switch

de­serialisation
transformation of a serial bit stream into parallel data

deserialiser
circuit that converts a sequence of bits from a serial bit stream into parallel data

destination
end-point that a packet is being sent to

destination address
route to be taken by a packet in moving from source to destination or an identifier specifying the destination

destination node
node that is the destination of one or more SpaceFibre packets

disparity
number of ones in a bit stream minus the number of zeros in that bit stream

driver
electronic circuit that transmits signals across a particular transmission medium

D-code
9-bit representation of an 8-bit data character which is transmitted using 8B/10B encoding comprising a D/K flag, which is set to zero, and the 8-bit data character

D-symbol
10-bit symbol formed by 8B/10B encoding of a D-code

D/K flag
1-bit flag forming part of a D-code or K-code, which when set to zero indicates the code is a D-code or when set to one, is a K-code

end of packet marker (EOP)
N-Char which indicates the end of a packet

end-point
interface between the network and a host system providing a single port into the network

error end of packet marker (EEP)
N-Char which indicates the end of a packet in which an error has occurred

FarEndActive
indication that the far-end of a lane is in the Active state, the indication being sent in an ACTIVE control word over any lane forming part of a multi-lane link

Fill
character used in a PAD control word or used for word alignment which can occur in a data frame between the end of one packet and the beginning of the next one, or after reset, before the beginning of the first packet

flow control token (FCT)
control word used to manage the flow of data across a link and which is exchanged for M×64 data words, where M is an integer in the range 1 to 8

frame
data frame, broadcast frame or idle frame

header deletion
removal of the leading data character of a packet by a routing switch after it has been used to determine the output port that the packet is forwarded to and before the packet is switched to that output port, that leading data character being replaced by a Fill

host interface
interface to a host system

host system
system that is connected to a SpaceFibre network via an end-point and which uses the services of that SpaceFibre network

hot redundant lane
active, transmit enabled lane, which is not a data-sending lane and which is ready to replace a failed data-sending lane

Transmit enabled lane means TX_EN asserted at the near-end of the link.

idle frame
frame of pseudo-random data which is sent when there are no data frames or broadcast frames to be sent

inactive lane
unidirectional lane or bi-directional lane which is NOT in the Active state

Initialisation comma
K28.5 control symbol

input port
receive side of a port

invalid symbol
symbol that does not occur in the 8B/10B decoding table

That is not a valid symbol for a D-code or K-code.

jitter
deviation from true periodicity of a nominally periodic signal

K-code
9-bit representation of an 8-bit control character which is transmitted using 8B/10B encoding comprising a D/K flag, which is set to one, and an 8-bit control character set to one of 12 possible valid values

K-symbol
10-bit symbol formed by 8B/10B encoding of a K-code

lane
SpaceFibre physical connection between two devices

Lane layer control word
SKIP, IDLE, INIT1, iINIT1, INIT2, iINIT2, INIT3, STANDBY or LOST_SIGNAL control word

LaneReset
reset of the Lane layer of a SpaceFibre link, without resetting the Data Link layer

LaneStart
management parameter set by hardware or software which when asserted causes the SpaceFibre lane to start initialisation by sending INIT1s

leading data character
very first data character sent over a link or the first data character following the EOP or EEP that terminated the previous SpaceFibre packet

line
medium between a driver and a receiver

line driver
electronic circuit that drives signals across a particular transmission medium

line receiver
electronic circuit that receives signals sent across a particular transmission medium

link
bi-directional connection between two ports, that incorporates one or more lanes, used to transfer packets and broadcast messages between the two ports

link bandwidth
number of data words and control words that can be sent over a SpaceFibre link in one second

link reset
reset of the Data Link and lower layers of a SpaceFibre link

logical address
data character which identifies the destination for the packet

management parameter
configuration parameter, control parameter or status value of a SpaceFibre node or routing switch used to manage its operation

Multi-Lane layer control word
ACTIVE or ALIGN control word

multi-lane link
link comprising two or more lanes

N-Char
SpaceFibre data character, EOP or EEP

negative bandwidth credit limit
minimum value of bandwidth credit that a virtual channel is allowed to drop to

negative disparity
more zeros than ones in a bit stream

network
two or more nodes connected together via one or more links and zero or more routing switches

network manager
node that configures, controls and monitors the status of the SpaceFibre network

neutral disparity
same number of ones and zeros in a bit stream

node
source or destination of SpaceFibre packets and broadcast messages comprising one or more end-points, each providing an interface between a port and a host system

normalised expected bandwidth
link bandwidth that a virtual channel is expected to use as a proportion of the overall link bandwidth

NoSignal
signal indicating that the input at the receiver is below the level needed for correct operation

output port
transmit side of a port

packet
sequence of N-Chars comprising a destination address, cargo and an end of packet marker

PAD
control word, comprising a K28.7 comma followed by three Fills, used in a multi-lane link for padding unused words in a row

parallel interface
interface which transfers several bits simultaneously

path address
series of one or more data characters at the start of a packet which define the route to be taken across a SpaceFibre network from source to destination

permanent error
error on a lane that cannot be recovered

persistent error
error on a lane that can be recovered only by re-initialising the faulty lane and resending the data

Physical layer
protocol layer which specifies the cables, connectors, cable assemblies, line drivers, line receivers, serialisation and de-serialisation

point to point link
link connecting two nodes

port
SpaceFibre interface or parallel interface comprising an input port and an output port

port of arrival
port on which a packet or broadcast message arrives

positive bandwidth credit limit
maximum value of bandwidth credit that a virtual channel is allowed to reach

positive disparity
more ones than zeros in a bit stream

previous port of arrival
port on which a broadcast message arrived before the current broadcast message arrived in the same broadcast channel

priority precedence
static precedence value of a virtual channel derived from the setting of the priority quality of service management parameter for that virtual channel

ready virtual channel
virtual channel with data ready to send and space in the input virtual channel buffer at the far-end of the link

receive error indication control word
control word, RXERR, generated by the Lane layer when it detects an error in the information received over the SpaceFibre link and passed to the Data Link layer to indicate that an error has occurred

receive only lane
active lane or inactive lane which has the TX_EN configuration bit de-asserted and the RX_EN bit asserted at the near-end of the link, thus forming the receive end of a unidirectional lane

receiver
receiving end of a SpaceFibre lane or link

receiving row
set of words that is received in parallel from all data-receiving lanes at approximately the same time, i.e. within the time it takes to receive one word by one lane, which is the bit period times 40

reserved bandwidth
portion of link bandwidth that is set aside for use by a specific virtual channel

reset
power on reset, other hardware reset or software commanded reset

return loss
10log10(Pi/Pr) = -10log10(Pr/Pi) = -20 log10(Vr/Vi) where Pi is the incident power, Pr is the reflected power, Vi the incident voltage and Vr the reflected voltage, and which has a positive value when the reflected signal is less than the incident signal

router
see “routing switch

routing switch
device comprising several SpaceFibre ports and a switch matrix that switches packets arriving on one port out of another port according to the destination address of the packet and the contents of a routing table, that validates and broadcasts broadcast messages out of all of the ports except the one on which the broadcast message arrived, and which includes a configuration port for configuring the ports and the routing switch itself

The term “router” is synonymous.

routing table
table in a routing switch that is used to look-up the output port for sending a packet through, using the leading data character of the packet as an index into that table

row
sending row or receiving row

schedule
list of time-slots during which a virtual channel is permitted to send data frames

segment
see “data segment

sending row
set of words that is sent in parallel by all data-sending lanes at approximately the same time,

The same time means within the time it takes to transmit one word

serialisation
transformation of a sequence of control or data symbols into a serial bit stream

serialiser
circuit that converts parallel data into a sequence of bits in a serial bit stream

signal
measurable quantity that varies with time and propagates along a transmission medium to transfer information across that medium

skew
difference in time between the expected position of the rising or falling edge of a signal and the actual position of that signal

source
originator of a packet, signal or other form of information

source node
node that is the source of one or more SpaceFibre packets

SpaceFibre interface
interface able to send information across a SpaceFibre link, and receive information from that SpaceFibre link

SpaceFibre port
port which has a SpaceFibre interface

switch matrix
non-blocking switch that passes a packet arriving at an input port of a routing switch to the appropriate output port

symbol
D-symbol or K-symbol

symbol rate
rate at which symbols can be handled in the transmitter and receiver

symbol word
group of four consecutive symbols that when decoded forms a data word or control word

time-slot
identified interval of time used for scheduling the transmission of data frames

transient error
error on a link that can be recovered from by resending the data without re-initialising the link

transmission medium
medium over which data is transferred

For example screened twisted-pair wires

transmit only lane
active lane or inactive lane which has the TX_EN configuration bit asserted and the RX_EN configuration bit de-asserted at the near-end of the link, thus forming the transmit end of a unidirectional lane

transmitter
sending end of a SpaceFibre lane or link

transmitting lane
active lane or inactive lane which has the TX_EN configuration bit asserted at the near-end of the link and which can operate as a data-sending lane or hot redundant lane

unidirectional lane
lane that sends information in one direction only

unit
entity, which contains zero or more nodes and zero or more routing switches and which contains at least one node or one routing switch

Instrument processor and mass memory are examples of an entity.

unrecognised symbol
symbol that does not appear in the 8B/10B symbol table

used bandwidth
amount of data, sent by a particular virtual channel in the last data frame, which is zero for all virtual channels except the one that sent the last data frame

valid symbol
symbol that does not produce a disparity error and is found in the 8B/10B decoding table

virtual channel
independent channel that can carry information across a single link in parallel with other independent, information carrying channels

virtual network
logical network that runs in parallel with other logical networks over a single physical network

word
data word or control word

Abbreviated terms

The following abbreviations are defined and used within this standard:

Abbreviation


Meaning


8B/10B


8-bit/10-bit


AC


alternating current


ACK


acknowledgement


ACT_LS


active least significant


ACT_MS


active most significant


ACTIVE


active control word


ALIGN


align control word


ASIC


application specific integrated circuit


ATA


advance technology attachment


AVIM


aviation intermediate maintenance


B_TYPE


broadcast type


BC


broadcast channel


BER


bit error rate


CDR


clock data recovery


CML


current mode logic


COMMA


comma K28.7


CRC


cyclic redundancy code


DC


direct current


D/K


data/control


DMA


direct memory access


EBF


end broadcast frame


EDF


end data frame


EEP


error end of packet


EGSE


electronic ground support equipment


EM


electro-magnetic


EMI


electro-magnetic interference


EOP


end of packet


ER


extinction ratio


FCT


flow control token


FDIR


fault detection, isolation and recovery


FIFO


first in first out


FPGA


field programmable gate array


FULL


full control word


Gbit/s


giga bits per second


GND


ground


I2C


inter-integrated circuit


IDLE


idle control word


iINIT1


inverse initialisation control word 1


iINIT2


inverse initialisation control word 2


iLANES


inverse lane field


iLLCW


inverse Lane layer control word


INIT1


initialisation control word 1


INIT2


initialisation control word 2


INIT3


initialisation control word 3


ITU


International Telecommunication Union


LANE


lane field


LFSR


linear feedback shift register


LLCW


Lane layer control word


LoS


loss of signal indication


LOS


loss of signal


LOST_SIGNAL


lost signal control word


LS


least-significant


LSB


least-significant bit


LVCMOS


low voltage complementary metal oxide semiconductor


LVDS


low voltage differential signalling


LVPECL


low voltage positive emitter coupled logic


LVTTL


low voltage transistor – transistor logic


MS


most-significant


MT


mechanically transferable


NACK


negative acknowledgement


N-Char


normal character


NO SIG


NoSignal


OM


optical multimode


OMA


optical modulation amplitude


OSI


Open Systems Interconnection


PAD


pad control word


PCB


printed circuit board


PD


photo detector


PIN


p-type semiconductor, intrinsic semiconductor, ntype semiconductor


PLL


phase locked loop


PRBS


pseudo-random bit sequence


QoS


quality of service


RC


resistor - capacitor


RETRY


retry control word


RIN


relative intensity noise


RMAP


remote memory access protocol


RX


receive


RX_EN


receive enable


RXERR


receive error control word


SBF


start of broadcast frame


SDF


start of data frame


SEQ_NUM


sequence number


SerDes


serialiser-deserialiser


SIF


start of idle frame


SKIP


skip control word


SMA


sub-miniature version A


STANDBY


standby control word


STATUS


status field


TX


transmit


TX_EN


transmit enable


UI


unit interval


UML


universal modelling language


VC


virtual channel


VCB


virtual channel buffer


VCSEL


vertical cavity surface emitting laser


VDIFF


voltage differential


VDIFF-PK


voltage differential peak


VDIFF-PK-PK


voltage differential peak to peak


VML


voltage mode logic


VN


virtual network


XOR


exclusive OR


Conventions

Numbers

In this document hexadecimal numbers are written with the prefix 0x, for example 0x34 and 0xDF15.

Binary numbers are written with the prefix 0b, for example 0b01001100 and 0b01.

Decimal numbers have no prefix.

A comma is used as a decimal point.

Multiplication

The symbol × is used to indicate multiplication. For example, N×64 means N times 64.

Differential signals

The two signals making up a differential pair are given the suffixes + and – to indicate the positive and negative components of the differential signal, respectively.

Order of sending bits in symbols

The bits of a 10-bit symbol are sent least significant bit first.

The four symbols of a symbol word are sent least significant symbol first.

An arrow is added to relevant diagrams to illustrate the direction that the data moves and which bit is sent first, as shown in Figure 31.

Image Figure 31: Convention for first bit to be sent

Graphical representation of packets

Packets and their component fields are represented graphically as shown in Figure 32. The arrow indicates the direction that the packet is travelling, so the destination address field is sent first.

Image Figure 32: Graphical packet notation

State diagram notation

State diagrams are used to represent the behaviour of several parts of the SpaceFibre protocol. All state diagrams in this Standard use the style shown in Figure 33. States are represented by ellipses with the state name written inside the ellipse in bold. Actions to take while in a particular state are written in italics inside the ellipse underneath the state name. Transitions from one state to another are indicated by arrows. The event that causes a transition is written alongside the arrow. Unconditional transitions are indicated by arrows without an event name written next to them. Reset conditions are indicated by transition arrows that start in empty space.

A condition in a state relates to that state only, unless there is a specific statement to the contrary. For example, the condition “When three INIT3 control words are received” expressed in a particular state, means three INIT3 control words being received while in that state.

Image Figure 33: State diagram style

UML diagram notation

UML diagrams in this document use the notation illustrated in Figure 34.

Image Figure 34: UML notation

Each entity (or object) is shown as a rectangle divided in two by a horizontal line. The name of the entity is at the top above the line and a list of key attributes is below the line. Only those attributes that are particularly relevant to understanding a diagram are shown, for example “Last Time-Code” in the Time-Code Register.

A diamond is used to represent aggregation and is translated as “is made up of”, hence in Figure 34 a node is made up of one or more (1..M) end-points and zero or more (0..M) time-code registers. The number at the end of the line shows the cardinality of the relationship and is either a number (e.g. 1) or a range (e.g. 1..M) with M representing more or many.

A triangle represents generalisation in one direction (reading in the direction the triangle is pointing) and specialisation in the other. So, in Figure 34, a destination node is a special type of node. Reading in the other direction, a node is a generalisation of destination node, source node and configuration node.

Other associations between entities are shown as lines connecting the two objects. A name capturing the intent of the association is written alongside the line. If the association is general, no name needs to be given to it. Hence, in Figure 34, each end-point is associated with zero or more time-code registers and each time-code register is associated with 1 or more end-points.

D/K notation for 8B/10B characters

The 8B/10B encoding scheme uses a particular type of notation for describing data and control characters. A data character is in the format D/xx.y where xx is the decimal representation of the least significant 5 bits of the data byte being sent and y is the decimal representation of the most significant three bits of the data byte being sent. Similarly, a control character is represented by K/xx.y. This is illustrated in Figure 35 along with two examples.

Image Figure 35: D/K notation for 8B/10B characters

Nomenclature

The following nomenclature applies throughout this document:

The word “shall” is used in this Standard to express requirements. All the requirements are expressed with the word “shall”.
The word “should” is used in this Standard to express recommendations. All the recommendations are expressed with the word “should”.

It is expected that, during tailoring, recommendations in this document are either converted into requirements or tailored out.

The words “may” and “need not” are used in this Standard to express positive and negative permissions, respectively. All the positive permissions are expressed with the word “may”. All the negative permissions are expressed with the words “need not”.
The word “can” is used in this Standard to express capabilities or possibilities, and therefore, if not accompanied by one of the previous words, it implies descriptive text.

In ECSS “may” and “can” have completely different meanings: “may” is normative (permission), and “can” is descriptive.

The present and past tenses are used in this Standard to express statements of fact, and therefore they imply descriptive text.

Principles

SpaceFibre purpose

SpaceFibre is a multi-Gigabit/s data link and network technology specifically designed for spaceflight applications including high data-rate payload data-handling such as synthetic aperture radar (SAR), multi-spectral imaging systems and fast mass-memory units. SpaceFibre data links are full-duplex and run over either electrical or fibre-optic media. SpaceFibre includes built-in, very efficient, quality of service (QoS) and fault detection, isolation and recovery (FDIR) techniques, which simplify the use of SpaceFibre enormously; providing substantial system level benefits without requiring the implementation of complex, performance limiting, software protocols.

SpaceFibre is backwards compatible with SpaceWire (ECSS-E-ST-50-12) at the packet level allowing easy bridging between SpaceWire and SpaceFibre, so that existing SpaceWire devices can be incorporated into a SpaceFibre network and take advantage of its performance, and QoS and FDIR capabilities. SpaceFibre provides robust, long distance communications for launcher applications and supports avionics applications with deterministic delivery constraints. SpaceFibre enables a common on-board network technology to be used across many different mission applications resulting in cost reduction and design reusability. SpaceFibre performs the following:

Supports high data rate payloads,

Carries data from existing SpaceWire instruments,

Performs low latency time-distribution,

Provides low latency event signalling,

Provides deterministic data delivery to support guidance and navigation control applications,

Supports any network topology.

SpaceFibre overview

An overview of the SpaceFibre protocol stack is provided in Figure 41.

Image Figure 41: Overview of SpaceFibre protocol stack

There are five conceptual layers to the SpaceFibre protocol: Network layer, Data Link layer, Multi-Lane layer, Lane layer and Physical layer.

The Network layer is responsible for the transfer of application information over a SpaceFibre network. It provides two services: Packet Transfer service and Broadcast Message service. The Packet Transfer service transfers SpaceFibre packets over the SpaceFibre network, using the same packet format and routing concepts as SpaceWire uses. SpaceFibre supports both path and logical addressing. The Broadcast Message service is responsible for broadcasting short messages (8 bytes) to all nodes on the network. These messages can carry time and synchronisation signals and be used to signal the occurrence of various events on the network.

The Data Link layer is responsible for providing quality of service (QoS) and managing the flow of information over a SpaceFibre link, using one or more virtual channels with independent flow control. It frames the information to be sent over the link to support QoS and optionally scrambles the packet data to reduce electromagnetic emissions. The Data Link layer is also responsible for error recovery, by resending frames and control words that have been detected by the far-end of a link as erroneous or missing. SpaceFibre is very resilient to transient errors.

The Multi-Lane layer is responsible for operating several SpaceFibre lanes in parallel to provide higher data throughput. In the event of a lane failing the Multi-Lane layer provides support for graceful degradation, automatically spreading the traffic over the remaining working lanes. A SpaceFibre link is the logical data link, which can comprise one or more physical lanes. The use of multiple lanes is optional.

The Lane layer is responsible for establishing communications across a SpaceFibre lane, for encoding data and control words into symbols, for sending and receiving symbols over the lane, for decoding the received symbols into data and control words, and for re-establishing communications across the lane when an error occurs on a lane. 8B/10B encoding is used which provides a DC balanced signal that can be AC coupled to provide galvanic isolation.

The Physical layer is, on the transmitter side, responsible for serialising the 8B/10B symbols and for sending them over the physical medium. On the receiver side, the Physical layer is responsible for recovering the clock and data from the serial bit stream. Both electrical cables and fibre-optic cables are supported by SpaceFibre.

The Management Information Base is responsible for configuring, controlling and monitoring the status of all the layers in the SpaceFibre protocol stack.

The service interface specifications for each OSI layer within the SpaceFibre protocol stack are provided in clause 6.

The connectors, cable and cable assemblies specified in the Physical layer are divided into several types. For example, for the electrical medium, the following types are specified:

Type-A connectors, cables and cable assemblies are specific, fully specified parts for flight use.

Type-B provides a generic specification of the electrical properties needed allowing a range of different flight capable solutions to be implemented.

Type-C are specific, fully defined parts for electronic ground support applications.

Type-D provides a generic specification of the electrical properties for electronic ground support cables.

Type-A and Type-C are for immediate use, Type-B and Type-D allow for innovation and more capable solutions to be developed in future.

Requirements

Overview

Clause 5 provides the normative requirements for SpaceFibre. It is separated into the following functional layers.

Clause 5.2 specifies the SpaceFibre protocol stack and conceptual architecture of a SpaceFibre port.

Clause 5.3 specifies the formats of the control words, characters, frames and packets used by SpaceFibre.

Clause 5.4 specifies the Physical layer which covers the specification of the serialiser, deserialiser, line drivers, line receivers, connectors, cables, and cable assemblies.

Clause 5.5 specifies the Lane layer which performs lane initialisation, encoding of characters into symbols, receive symbol and word synchronisation, decoding of symbols into characters, and compensation for differences in clocking speeds at the two ends of the lane.

Clause 5.6 specifies the Multi-Lane layer which supports several lanes operating together to provide a single link of higher bandwidth than a single lane.

Clause 5.7 specifies the Data Link layer which provides link quality of service (QoS) and fault detection, isolation and recovery (FDIR).

Clause 5.8 specifies the network layer which covers SpaceFibre packets, nodes, routing switches, networks and broadcast messages.

Clause 5.9 specifies the Management Information Base.

Protocol stack and interface architecture

General

The SpaceFibre protocol stack shall have a Network layer, Data Link layer, Multi-Lane layer, Lane layer, Physical layer and Management Information Base.

  • 1    The SpaceFibre protocol stack is illustrated in Figure 51 for a single lane and in Figure 52 for a multi-lane link. The service interfaces for each layer of the SpaceFibre protocol stack are specified in clause 6.
  • 2    From the perspective of the layers of the OSI Model, the Lane layer and the Multi-Lane layer are sublayers of the Data Link layer. The Data Link, Multi-Lane and Lane layers form one layer from the implementation perspective. The separation into layers has been done to group related functionalities together for ease of understanding.
    The Multi-Lane layer may be omitted, when only a single lane is being used.
    Image Figure 51: SpaceFibre protocol stack - single-lane

Image Figure 52: SpaceFibre protocol stack - multi-lane

Network layer

The SpaceFibre Network layer shall provide two principal services:

  • A Packet Transfer service which sends and receives packets over a SpaceFibre network.
  • A Broadcast Message service which sends and receives broadcast messages over a SpaceFibre network. A SpaceFibre implementation shall support the Packet Transfer service and the Broadcast Message service.
    The SpaceFibre Network layer shall accept service requests from user applications.
    The SpaceFibre Network layer shall use the services of the SpaceFibre Data Link layer.

The SpaceFibre Data Link layer shall provide three services:

  • A Virtual Channel service, supporting multiple virtual channels with independent flow control, which sends and receives N-Chars and Fills, the components of packets, over a SpaceFibre link.
  • A Broadcast service which sends and receives broadcast messages over a SpaceFibre link.
  • A Schedule Synchronisation service which receives current time-slot information in order to synchronise the scheduled QoS. The Data Link layer shall accept service requests from the Network layer.
    The Data Link layer shall use the services of the SpaceFibre Multi-Lane or Lane layer.

Multi-Lane layer

The SpaceFibre Multi-Lane layer is an optional layer which shall provide three services:

  • A Transfer Word service which sends data and control words over a SpaceFibre link and which receives data and control words over a SpaceFibre link.
  • A Link Reset service which resets all the lanes of a link.
  • A Capabilities service which sets the capabilities of each lane at the near-end of a link and reports the capabilities of each lane at the far-end of the link. The Multi-Lane layer shall accept service requests from the Data Link layer.
    The Multi-Lane layer shall use the services of the SpaceFibre Lane layer.

Lane layer

The SpaceFibre Lane layer shall provide three services:

  • A Transfer Word service which sends data and control words over a SpaceFibre lane and which receives data and control words over a SpaceFibre link.
  • A Control service which controls the operation of the lanes in a link, using the TxOnly, RxOnly, FarEndActive, and LaneReset signals for each lane and which provides the current state of the Lane Initialisation state machine.
  • A Capabilities service which sets the capabilities of each lane at the near-end of a link and reports the capabilities of each lane at the far-end of the link. The Lane layer shall accept service requests from the SpaceFibre Data Link layer or Multi-Lane layer.
    The Lane layer shall use the services of the SpaceFibre Physical layer.

Physical layer

The SpaceFibre Physical layer shall provide two services:

  • A Transfer Symbol service which serialises the symbols provided by the Lane layer and transmits them over the physical medium, and which receives the data signal from the physical medium, de-serialises it to produce 10-bit parallel data and passes it to the Lane layer.
  • A Control service which controls the operation of the line driver, line receiver and SerDes and which reports the status of the line receiver and SerDes. The SpaceFibre Physical layer shall accept service requests from the Lane layer.

Management Information Base

The SpaceFibre Management Information Base shall provide one service:

  • A Management service which writes control or configuration information to all SpaceFibre layers and which reads the status or current configuration or control values of all SpaceFibre layers. The SpaceFibre Management Information Base shall accept service requests from a user application.
    The SpaceFibre Management Information Base shall have direct access to the relevant configuration parameters, control parameters and status parameters in the Network layer, Data Link layer, Multi-Lane layer, Lane layer and Physical layer.

Formats

Control words and encoding/decoding

Several types of control words shall be used by SpaceFibre:

  • Lane control words.
  • Multi-Lane control words.
  • Data Link control words.
  • Receive error indication control word, which is generated in the receiver and is not sent over the SpaceFibre link. SpaceFibre shall encode/decode information to send over a lane using 8B/10B encoding/decoding.

8B/10B encode/decode

The SpaceFibre port shall use 8B/10B encoding to encode each 8-bit data character or control character into a 10-bit symbol that is transmitted.
To ensure DC balancing of the transmitted signal, account shall be kept of the current running disparity in the transmitter.
When an 8-bit data character or control character is being encoded and the current running disparity is positive, the symbol for that data character or control character which has negative or neutral disparity shall be used.
When an 8-bit data character or control character is being encoded and the current running disparity is negative, the symbol for that data character or control character which has positive or neutral disparity shall be used.
Upon reset the current running disparity shall be set to plus one or minus one.
To detect disparity errors, account shall be kept of the current running disparity in the receiver.
If the current running disparity is more than plus one or less than minus one, the receiver shall indicate a disparity error.
When a disparity error occurs, the current running disparity in the receiver shall be set to plus one if it was greater than plus one and to minus one if it was less than minus one.
When a symbol is received, it shall be decoded into an 8-bit data character or control character using the 8B/10B symbol table.
The 8B/10B encoder shall encode the least-significant five-bits of a data character or control character as specified in Table 51 and the most significant three bits as specified in Table 52.
Table 51: 5B/6B encoding

Input


Output


Data Input


Data bits 43210


EDCBA


Current Running Disparity -ve


abcdei


Current Running Disparity +ve


abcdei


D00.y


00000


100111


011000


D01.y


00001


011101


100010


D02.y


00010


101101


010010


D03.y


00011


110001


D04.y


00100


110101


001010


D05.y


00101


101001


D06.y


00110


011001


D07.y


00111


111000


000111


D08.y


01000


111001


000110


D09.y


01001


100101


D10.y


01010


010101


D11.y


01011


110100


D12.y


01100


001101


D13.y


01101


101100


D14.y


01110


011100


D15.y


01111


010111


101000


D16.y


10000


011011


100100


D17.y


10001


100011


D18.y


10010


010011


D19.y


10011


110010


D20.y


10100


001011


D21.y


10101


101010


D22.y


10110


011010


D/K23.y


10111


111010


000101


D24.y


11000


110011


001100


D25.y


11001


100110


D26.y


11010


010110


D/K27.y


11011


110110


001001


D28.y


11100


001110


K28.y


11100


001111


110000


D/K29.y


11101


101110


010001


D/K30.y


11110


011110


100001


D31.y


11111


101011


010100


Table 52: 3B/4B encoding

Input


Output


Data Input


Data bits 765


HGF


5B/6B Disparity -ve


fghj


5B/6B Disparity +ve


fghj


D/Kxx.0


000


1011


0100


Dxx.1


001


1001


Kxx.1


001


0110


1001


Dxx.2


010


0101


Kxx.2


010


1010


0101


D/Kxx.3


011


1100


0011


D/Kxx.4


100


1101


0010


Dxx.5


101


1010


Kxx.5


101


0101


1010


Dxx.6


110


0110


Kxx.6


110


1001


0110


Dxx.7


111


1110/0111


0001/1000


Kxx.7


111


0111


1000


Lane control words

General

The lane control words shall be used to initialise a SpaceFibre lane, to indicate loss of signal, and to indicate that a lane is about to go into standby.

The lane control words are constructed as shown in Table 53.

Table 53: Lane control words

Name


Control word


Function


SKIP


Comma, LLCW, SKIP, SKIP


K28.7, D14.6, D31.3, D31.3



Sent every 5000 control words or data words to support the receiver elastic buffer operation.


IDLE


Comma, LLCW, IDLE, IDLE


K28.7, D14.6, D15.6, D15.6


Sent when the link is initialised and the Data Link or Multi-Lane layer does not provide valid words to be sent.


INIT1


Init Comma, LLCW, INIT1, INIT1


K28.5, D14.6, D6.2, D6.2


Sent as part of the initialisation handshake.


D6.2 has neutral disparity.


inverse INIT1


Init Comma, iLLCW, iINIT1, iINIT1


K28.5, D17.1, D25.5, D25.5


Received as part of the initialisation handshake if the Physical layer signals are inverted.


D25.5 has neutral disparity.


INIT2


Init Comma, LLCW, INIT2, INIT2


K28.5, D14.6, D6.5, D6.5


Sent as part of the initialisation handshake.


D6.5 has neutral disparity.


inverse INIT2


Init Comma, iLLCW, iINIT2, iINIT2


K28.5, D17.1, D25.2, D25.2


Received as part of the initialisation handshake if the Physical layer signals are inverted.


D25.5 has neutral disparity.


INIT3


Init Comma, LLCW, INIT3, Capability


K28.5, D14.6, D24.1, D0.0-D31.7


Sent as part of the initialisation handshake.


The Capability field describes the capability of the end of the lane sending the INIT3. This can be used to exchange information about the capability of the SpaceFibre interface at the other end of the lane, so that the two ends of the lane can operate in the most efficient way possible.


STANDBY


Comma, LLCW, STBY, Reason


K28.7, D14.6, D30.3, D0.0-D31.7


Indicates that the transmitter is moving to the Standby state and about to tri-state its driver. This can be used to save power when the host has no data to transmit and no data is currently being received. The Standby Reason field can be used to indicate the reason why the STANDBY control word was sent or provide other status information.


LOST_SIGNAL


Comma, LLCW, LOS, Reason


K28.7, D14.6, D4.3, D0.0-D2.0


Indicates that the end of the link sending the LOST_SIGNAL control word has lost signal on its receiver. The Reason field is used to indicate the cause of the NoSignal.


SKIP control word

The SKIP control word shall begin with a comma, K28.7, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the SKIP control word shall be the Lane Layer Control Word, LLCW, identifier, which has the value D14.6 and identifies the control word as being a control word generated and used by the Lane layer.
The third symbol in the SKIP control word shall identify the Lane layer control word as being a SKIP control word, and has the value D31.3.
The fourth and final symbol in the SKIP control word shall be a copy of the third symbol.

The SKIP control word is used to support operation of the data signalling rate compensation in the SpaceFibre receiver, see 5.5.3.

IDLE control word

The IDLE control word shall begin with a comma, K28.7, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the IDLE control word shall be the Lane Layer Control Word, LLCW, identifier, which has the value D14.6 and identifies the control word as being a control word generated and used by the Lane layer.
The third symbol in the IDLE control word shall identify the Lane Layer Control Word as being an IDLE control word, and has the value D15.6.
The fourth and final symbol in the IDLE control word shall be a copy of the third symbol.

The IDLE control word is sent, after initialisation, to keep the lane running when there is no other information to send.

INIT1 control word

The INIT1 control word, used during lane initialisation, shall begin with an initialisation comma, K28.5, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the INIT1 control word shall be the Lane Layer Control Word, LLCW, identifier, which has the value D14.6 and identifies the control word as being a control word generated and used by the Lane layer.
The third symbol in the INIT1 control word shall identify the Lane Layer Control Word as being an INIT1 control word, and has the value D6.2.
The fourth and final symbol in the INIT1 control word shall be a copy of the third symbol.

Inverse INIT1 control word

The Inverse INIT1 control word, iINIT1, shall begin with an initialisation comma, K28.5, which is in the least significant symbol position of the control word and is received first.
The second symbol in the Inverse INIT1 control word shall be the Inverse Lane Layer Control Word, iLLCW, identifier, which has the value D17.1 and identifies the control word as being a control word generated and used by the Lane layer.
The third symbol in the Inverse INIT1 control word shall identify the Lane Layer Control Word as being an Inverse INIT1 control word, and has the value D25.5.
The fourth and final symbol in the Inverse INIT1 control word shall be a copy of the third symbol.
The Inverse INIT1 control word shall not be generated by the SpaceFibre port.

The Inverse INIT1 is formed when the PCB layout in a SpaceFibre transmitter or receiver crosses over the two signals, CML+ and CML-, making up the differential signal.

INIT2 control word

The INIT2 control word, used during lane initialisation, shall begin with an initialisation comma, K28.5, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the INIT2 control word shall be the Lane Layer Control Word, LLCW, identifier, which has the value D14.6 and identifies the control word as being a control word generated and used by the Lane layer.
The third symbol in the INIT2 control word shall identify the Lane Layer Control Word as being an INIT2 control word, and has the value D6.5.
The fourth and final symbol in the INIT2 control word shall be a copy of the third symbol.

Inverse INIT2 control word

The Inverse INIT2 control word, iINIT2, shall begin with an initialisation comma, K28.5, which is in the least significant symbol position of the control word and is received first.
The second symbol in the Inverse INIT2 control word shall be the Inverse Lane Layer Control Word, iLLCW, identifier, which has the value D17.1 and identifies the control word as being a control word generated and used by the Lane layer.
The third symbol in the Inverse INIT2 control word shall identify the Lane Layer Control Word as being an Inverse INIT2 control word, and has the value D25.2.
The fourth and final symbol in the Inverse INIT2 control word shall be a copy of the third symbol.
The Inverse INIT2 control word shall not be generated by the SpaceFibre port.

The Inverse INIT2 is formed when the PCB layout in a SpaceFibre transmitter or receiver crosses over the two signals, CML+ and CML-, making up the differential signal.

INIT3 control word

The INIT3 control word, used during lane initialisation, shall begin with an initialisation comma, K28.5, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the INIT3 control word shall be the Lane Layer Control Word, LLCW, identifier, which has the value D14.6 and identifies the control word as being a control word generated and used by the Lane layer.
The third symbol in the INIT3 control word, which has the value D24.1, shall identify the Lane Layer Control Word as being an INIT3 control word.
The fourth and final symbol in the INIT3 control word, Capability, shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing control flags and information about the capability of the lane.

It is not necessary for the Capability field to have valid inverse symbols, since by the time INIT3s are being sent any necessary receiver inversion is already completed.

The Capability data character shall contain several fields as follows:

  • Bit 0: the INIT3LinkResetFlag.
  • Bit 1: the INIT3LaneStart flag.
  • Bit 2: the INIT3DataScrambled flag.
  • Bit 3: the INIT3Multi-LaneCapable flag.
  • Bit 4: the INIT3RoutingSwitch flag.
  • Bits 5 to 7: reserved, which are set to zero when transmitted and ignored when received. The INIT3LinkResetFlag shall take on one of the following values:
  • INIT3LinkResetFlag=0, which means that at least one lane of the SpaceFibre port sending the INIT3 control word has been in the Active state at least once since the last link reset or power on reset.
  • INIT3LinkResetFlag=1, which means that the SpaceFibre port sending the INIT3 control word has not had any lane in the Active state since the last link reset or power on reset.

The reset values of various parameters are specified in clause 5.9.

The INIT3LaneStart flag shall take on one of the following values:

  • INIT3LaneStart=0, which means that the SpaceFibre lane sending the INIT3 control word has its LaneStart management parameter NOT set.
  • INIT3LaneStart=1, which means that the SpaceFibre lane sending the INIT3 control word has its LaneStart management parameter set. The INIT3DataScrambled flag shall take on one of the following values:
  • INIT3DataScrambled=0, which means that the SpaceFibre port sending the INIT3 control word does NOT scramble data in its data frames.
  • INIT3DataScrambled=1, which means that the SpaceFibre port sending the INIT3 control word does scramble data in its data frames. The INIT3Multi-LaneCapable flag shall take on one of the following values:
  • INIT3Multi-LaneCapable=0, which means that the SpaceFibre lane sending the INIT3 control word is NOT capable of operating as a lane in a multi-lane link.
  • INIT3Multi-LaneCapable=1, which means that the SpaceFibre lane sending the INIT3 control word is capable of operating as a lane in a multi-lane link. The INIT3RoutingSwitch flag shall take on one of the following values:
  • INIT3RoutingSwitch=0, which means that the SpaceFibre lane sending the INIT3 control word is NOT a lane belonging to a link of a routing switch.
  • INIT3RoutingSwitch=1, which means that the SpaceFibre lane sending the INIT3 control word is a lane belonging to a link of a routing switch.

STANDBY control word

The STANDBY control word shall begin with a comma, K28.7, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the STANDBY control word shall be the Lane Layer Control Word, LLCW, identifier, which has the value D14.6 and identifies the control word as being a control word generated and used by the Lane layer.
The third symbol in the STANDBY control word shall identify the Lane Layer Control Word as being a STANDBY control word, and has the value D30.3.
The fourth and final symbol in the STANDBY control word, Standby Reason field, shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing information about the reason that the STANDBY symbol was sent.
The Standby Reason field may be set to D0.0, if the SpaceFibre interface does not support the sending of the reason for the lane standby.

The STANDBY control word is used to inform the far-end of a lane that the SpaceFibre interface is about to go into standby mode with its line driver turned off.

The Standby Reason data character shall contain several fields as follows:

  • Bit 0: When set to 1, indicates that the reason field is supported and the other bits are valid, while when set to 0, indicates that the reason field is not supported and the other bits are all set to 0 on transmit and ignored when received.
  • Bit 1: When set to 1, indicates that the sender of the STANDBY asserted AutoStart after the lane disconnects, which allows the receiver of the STANDBY to start the lane again, while when set to 0, means that AutoStart is de-asserted after the lane disconnects, so the receiver of the STANDBY cannot decide to start the lane again.
  • Bit 2: When set to 1, indicates that the sender of the STANDBY can later assert LaneStart and try to start the lane, while when set to 0, indicates that LaneStart remains de-asserted.
  • Bit 3: When set to 1, indicates that bits 4-7 of the Standby Reason field contain implementation dependent information, while when set to 0, indicates that bits 4-7 of the Standby Reason field are reserved.
  • Bits 4 to 7: When bit 3 is set to 1, bits 4 to 7 contain implementation dependent information about the reason of the lane being disabled, while when bit 3 is set to 0, bits 4 to 7 are reserved being set to zero when transmitted and ignored when received.

LOST_SIGNAL control word

The LOST_SIGNAL control word shall begin with a comma, K28.7, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the LOST_SIGNAL control word shall be the Lane Layer Control Word, LLCW, identifier, which has the value D14.6 and identifies the control word as being a control word generated and used by the Lane layer.
The third symbol in the LOST_SIGNAL control word shall identify the Lane Layer Control Word as being a LOST_SIGNAL control word, and has the value D4.3.
The fourth and final symbol in the LOST_SIGNAL control word, Lost Signal Reason field, shall be a data symbol with any value from D0.0 to D2.0 and encode a data character containing information about the cause of the loss of signal.
The Lost Signal Reason data character shall contain two fields as follows:

  • Bit 0 to 1: the LOS_Cause status bits.
  • Bits 2 to 7: reserved, which are set to zero when transmitted and ignored when received. The LOS_Cause status bits shall take on one of the following values:
  • LOS_Cause=0b00, which means that the receiver in the SpaceFibre port sending the LOST_SIGNAL control word is not receiving a strong enough signal.
  • LOS_Cause=0b01, which means that the receiver in the SpaceFibre port sending the LOST_SIGNAL control word is detecting too many receive errors to operate reliably.
  • LOS_Cause=0b10, which means that the receiver in the SpaceFibre port sending the LOST_SIGNAL control word received an INIT1 while in the Active state and the lane is not an RxOnly lane.

Multi-Lane control words

General

Multi-Lane control words shall be used to align control words flowing over multiple lanes and to support the initialisation of unidirectional lanes in an asymmetric link.

Multi-Lane control words are constructed as illustrated in Table 54.

Table 54: Multi-Lane control words

Name


Control word


Function


ACTIVE


Comma, ACTIVE, ACT_LS, ACT_MS


K28.7, D0.1, D0.0-D31.7, D0.0-D31.7


Unidirectional lane initialisation.


The ACT_LS and ACT_MS fields together contain 16 bits, one for each possible lane, with bit N corresponding to lane N. When a particular bit is set, it indicates that the corresponding lane at the end of the link sending the Active control word is in the Active state. The ACTIVE control word is sent simultaneously over all active lanes.


ALIGN


Comma, ALIGN, LANES, iLANES


K28.7, D23.3, D0.0-D31.7, D0.0-D31.7


Multi-Lane alignment.


The LANES field contains two sub-fields: Number of Lanes and Lane Number. The Number of Lanes field (#Lanes) is 4 bits in length and contains the number of active lanes at the end of the link sending the ALIGN control word. The Lane Number field is 4 bits in length and contains the number of the lane sending the ALIGN control word. For a multi-lane link with several active lanes, the ALIGN control word sent over each lane is unique, each containing their lane number.


The iLANES field is the bit-wise inverse of the LANES field used for checking the integrity of the information.


PAD


Comma, Fill, Fill, Fill


K28.7, K27.7, K27.7, K27.7


Multi-Lane padding.


The three symbols after the Comma are all K27.7, Fill, which identify the word as being a PAD word.


ACTIVE control word

The ACTIVE control word shall begin with a comma, K28.7, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the ACTIVE control word shall identify the control word as being an ACTIVE control word, and has the value D0.1.
The third symbol in the ACTIVE control word shall contain the least-significant 8 bits of the 16-bit ACT field which has one bit for each possible lane, with bit N corresponding to lane N.
The fourth symbol in the ACTIVE control word shall contain the most-significant 8 bits of the 16-bit ACT field.
When a particular bit is set in the ACT field of an ACTIVE control word, it shall indicate that the corresponding lane at the end of the link sending the ACTIVE control word is in the Active state.

ALIGN control word

The ALIGN control word shall begin with a comma, K28.7, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the ALIGN control word shall identify the control word as being an ALIGN control word, and has the value D23.3.
The third symbol in the ALIGN control word shall contain the 8-bit LANES field which comprises two sub-fields: #Lanes, bits 0-3, and Lane Number, bits 4-7.
The 4-bit #Lanes field of the ALIGN control word shall contain the number of lanes that are in the Active state at the end of the link sending the ALIGN control word, where a value of 0b0000 means that 16 lanes are in the Active state.
The 4-bit Lane Number field of the ALIGN control word shall contain the lane number of the lane used to send the ALIGN control word.
The fourth and final symbol in the ALIGN control word shall contain the bitwise inverse of the third symbol, which is used to confirm the integrity of the LANES field when received before its contents are acted upon.

PAD control word

The PAD control word shall begin with a comma, K28.7, which is in the least significant symbol position of the control word and is sent first.
The second, third and fourth symbols in the PAD control word shall all have the same value, K27.7, identifying the control word as being a PAD control word.

Framing control words

Use of framing control words

Framing control words shall be used to encapsulate the data frames, broadcast frames, and idle frames being sent across the link.

  • 1    Framing control words are illustrated in Table 55.
  • 2    The specific values of the K-codes and D-codes used in the control words have been designed to maximize the Hamming distance between one symbol and any other symbol, helping to reduce the likelihood of an undetected error.
    Table 55: Data framing control words

Name


Control word


Function


SDF


Comma, SDF, VC, Reserved


K28.7, D16.2, D0.0-D31.0, D0.0


Start of Data Frame.


Contains type of frame and virtual channel, number in the range 0 to 31.


EDF


EDF, SEQ_NUM, CRC_LS, CRC_MS


K28.0, D0.0-D31.7, D0.0-D31.7, D0.0-D31.7


End of Data Frame.


The SEQ_NUM is a Sequence Number added to the EDF by the Data Link layer to check for missing, duplicate or out of sequence data frames, broadcast frames and FCTs.


CRC is a 16-bit CRC, which is used to ensure that the data frame does not contain any errors.


Note that the EDF starts with K28.0 which is not a comma. This code differentiates all other control words from the EDF control word.


Note the sequence number is over the link NOT per VC.


SBF


Comma, SBF, BC, B_TYPE


K28.7, D29.2, D0.0-D31.7, D0.0-D31.7


Start of Broadcast Frame.


Contains type of frame, broadcast channel (BC), a number in the range 0 to 255 giving the number of the broadcast channel, and broadcast type (B_TYPE), a number in the range 0-255 which identifies the type of broadcast message.


EBF


EBF, STATUS, SEQ_NUM, CRC


K28.2, D0.0-D1.0, D0.0-D31.7, D0.0-D31.7


End of Broadcast Frame.


The STATUS field has six reserved bits, a DELAYED flag and a LATE flag. The DELAYED flag is set when a broadcast message is delayed in a routing switch because a previous broadcast message is still in the process of being sent or several broadcast messages arrive at the same time. The LATE flag is set when a broadcast message has been delayed because of an error. The LATE flag is used in the broadcast mechanism to prevent duplication of a broadcast message when a copy of the broadcast message is delayed.


The SEQ_NUM is a Sequence Number added to the EBF by the Data Link layer to check for missing, duplicate or out of sequence data frames, broadcast frames and FCTs.


CRC is an 8-bit CRC used to ensure that the broadcast frame does not contain any errors.


Note that the EBF starts with K28.2 which is not a comma. This code differentiates all other control words from the EBF control word.


Note the sequence number is over the link NOT per VC.


SIF


Comma, SIF, SEQ_NUM, CRC


K28.7, D4.2, D0.0-D31.7, D0.0-D31.7


Start of Idle Frame.


Contains the type of frame, a sequence number and a CRC.


The SEQ_NUM is a Sequence Number added to the SIF by the Data Link layer to check for missing, duplicate or out of sequence data frames, broadcast frames and FCTs.


CRC is an 8-bit CRC used to ensure that the SIF control word does not contain any errors.


Note there is no end of idle frame control word.


Sequence Number

The Sequence Number, SEQ_NUM, used in the Start of Idle Frame, SIF, End of Data Frame, EDF, End of Broadcast Frame, EBF, and in the FCT and ACK, NACK and FULL control words, shall contain two fields as follows:

  • Bit 0 to 6: a 7-bit sequence count.
  • Bit 7: a sequence count polarity flag.

See clause 5.3.5.2 for details of the FCT, and clause 5.3.5.3 for details of ACK, NACK and FULL.

The 7-bit Sequence Count field shall contain a modulo-128 integer, which is incremented immediately prior to the sending of a new data frame, broadcast frame or FCT.
The 7-bit Sequence Count field shall be set to zero following a link reset.
The polarity flag shall be set to zero following a link reset.
If the polarity flag is zero, the polarity of the Sequence Number shall be considered positive.
If the polarity flag is one, the polarity of the Sequence Number shall be considered negative.
The polarity flag shall be inverted every time a new error recovery is started.

The polarity flag is used to distinguish frames, ACKs and NACKs sent before an error recovery procedure starts, indicated by a RETRY control word, from those that follow the start of the error recovery. Each time a new error recovery procedure starts and a RETRY control word is sent, the polarity bit is flipped to distinguish the new sequence of frames etc. from the old sequence. See clause 5.7.7.3.

Start of data frame control word (SDF)

The SDF control word shall be used to indicate the start of a data frame.
The SDF control word shall begin with a comma, K28.7, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the SDF control word shall identify the control word as being an SDF control word, and has the value D16.2.
The third symbol in the SDF control word shall be a data symbol with any value from D0.0 to D31.0 and encode a data character containing the virtual channel number, VC0 to VC31 respectively, that this data frame is travelling over.

  • 1    All other values (except D0.0 to D31.0) are reserved.
  • 2     D0.0 to D31.0 all have the three most significant bits set to zero.
    The fourth and final symbol in the SDF control word is reserved and shall be set to D0.0.

End of data frame control word (EDF)

The EDF control word shall be used to indicate the end of a data frame.
The EDF control word shall begin with the control character K28.0, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the EDF control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing the Sequence Number of the current data frame.
The third symbol of the EDF control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing the least significant byte of a 16-bit CRC which covers the part of the entire data frame sent on this lane, including the SDF and EDF, excluding the 16-bit CRC field in the EDF.
The fourth symbol of the EDF control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing the most significant byte of a 16-bit CRC which covers the part of the entire data frame sent on this lane, including the SDF and EDF, excluding the 16-bit CRC field in the EDF, which is used to confirm the integrity of the data frame before its contents are acted upon.

The CRC includes the data value of the K-codes in the data frame, i.e. ignoring the value of the D/K flag.

Start of broadcast frame control word (SBF)

The SBF control word shall be used to indicate the start of a broadcast frame.
The SBF control word shall begin with a comma, K28.7, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the SBF control word shall identify the control word as being an SBF control word, and has the value D29.2.
The third symbol in the SBF control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing the broadcast channel number that this broadcast frame is travelling over.
The fourth and final symbol in the SBF control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing the Broadcast Type, B_TYPE.

The Broadcast Type determines the type of the broadcast message, e.g. time message, error message, event signalling message, and the priority with which it is forwarded by a router when several different broadcast messages arrive at the same time.

End of broadcast frame control word (EBF)

The EBF control word shall be used to indicate the end of a broadcast frame.
The EBF control word shall begin with the control character K28.2, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the EBF control word shall be a data symbol with any value from D0.0 to D3.0 and encode a data character containing the following flags:

  • The DELAYED flag in bit 1, which when set indicates that the current broadcast frame has been delayed because of another broadcast frame.
  • The LATE flag in bit 0, which when set indicates that the broadcast frame has been delayed by a transient or persistent error occurring on a link or no link being available to forward the broadcast frame.
  • 1    The DELAYED flag is set by the Network layer when a broadcast message is delayed in a routing switch because a previous broadcast message is still in the process of being sent or several broadcast messages arrive at the same time. The DELAYED flag is used to indicate that the broadcast message has been subject to a short delay and ought not be used for time synchronisation purposes.
  • 2    The latency of a broadcast message where the DELAYED flag and LATE flag are not set, is implementation dependent and ought to be specified in the data sheet for a particular device.
  • 3    The LATE flag is set when there is an error in the Data Link layer or there is no active lane to forward the broadcast frame over. The LATE flag is used to discard old broadcast messages and to avoid broadcast message duplication. See clause 5.8.12.2.
    The remaining bits, bits 2 to 7, of the second data character of the EBF control word shall be reserved, set to zero when transmitted and ignored when received.
    The third symbol in the EBF control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing the Sequence Number of the current broadcast frame.
    The fourth symbol of the EBF control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing an 8-bit CRC covering the entire broadcast frame including the SBF and EBF, excluding the 8-bit CRC field in the EBF, which is used to confirm the integrity of the broadcast frame before its contents are acted upon.

The CRC includes the data value of the K-codes in the broadcast frame, i.e. ignoring the value of the D/K flag.

Start of idle frame control word (SIF)

The SIF control word shall be used to indicate the start of an idle frame.
The SIF control word shall begin with a comma, K28.7, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the SIF control word shall identify the control word as being an SIF control word, and has the value D4.2.
The third symbol in the SIF control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing the Sequence Number of the last data frame, FCT or broadcast frame sent over the SpaceFibre link.
The fourth symbol of the SIF control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing an 8-bit CRC covering the first three characters of the control word, excluding the 8-bit CRC field itself, which is used to confirm the integrity of the SIF control word before its contents are acted upon.

  • 1    There is no end of idle frame control word. Idle frames are ended by an SDF, SBF or SIF.
  • 2    The CRC includes the data value of the K-code in the SIF control word, i.e. ignoring the value of the D/K flag.

Flow control word

The Flow control word shall be used to support flow control across virtual channels.

The Flow control word is illustrated in Table 56.

Table 56: Flow control word

Name


Control word


Function


FCT


FCT, Multiplier/Channel#, SEQ_NUM, CRC


K28.3, D0.0-D31.7, D0.0-D31.7, D0.0-D31.7


Flow Control Token (FCT)


Indicates that the receive buffer for a specific virtual channel has room for another complete data frame.


FCT is a K-code, K28.3, indicating that this control word is an FCT.


Multiplier is a 3-bit field that determines the value of the FCT.


Channel number identifies the virtual channel which this FCT is for.


The SEQ_NUM is a Sequence Number added to the FCT by the Data Link layer to check for missing, duplicate or out of sequence data frames, broadcast frames and FCTs.


CRC is an 8-bit CRC used to ensure that the FCT does not contain any errors.


The FCT control word shall be used to indicate that the receive buffer for the specified virtual channel has room for another complete data frame.
The FCT control word shall begin with the K28.3 control character which is in the least significant symbol position of the control word and is sent first.
The second symbol in the FCT control word shall be a data symbol with any value from D0.0 to D31.7, which comprises two fields:

  • a 3-bit Multiplier field in bits 7:5.
  • a 5-bit Channel Number field in bits 4:0. The Multiplier field shall indicate the value of the FCT, the FCT being exchanged for M×64 data words, where M is the value of the FCT Multiplier field plus 1, so that M=1 to 8 corresponds to field values of 0 to 7 respectively.
    The Channel Number field shall contain the virtual channel number that this FCT is for.
    The third symbol in the FCT control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing the Sequence Number of the current FCT.

The FCT shares the same Sequence Numbers as the data frames and broadcast frames.

The fourth and final symbol in the FCT control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing an 8–bit CRC covering the first three characters of the FCT, excluding the 8-bit CRC field itself, which is used to check the integrity of the FCT when received, before it is acted upon.

The CRC includes the data value of the K-code in the FCT, i.e. ignoring the value of the D/K flag.

Error recovery control words

General

Error recovery control words shall be used to acknowledge data frames, broadcast frames and FCTs that are received correctly and to negatively acknowledge those that are received incorrectly.

The error recovery control words are constructed as illustrated in Table 57.

Table 57: Error recovery control words

Name


Control word


Function


ACK


Comma, ACK, SEQ_NUM, CRC


K28.7, D2.5, D0.0-D31.7, D0.0-D31.7


Frame Acknowledge.


Indicates that a data frame, broadcast frame or FCT has been received without error and in order.


Sequence number is the Sequence Number, SEQ_NUM, from the data frame, broadcast frame or FCT that is being acknowledged.


CRC is an 8-bit CRC that is used to confirm the integrity of the ACK.


NACK


Comma, NACK, SEQ_NUM, CRC


K28.7, D27.5, D0.0-D31.7, D0.0-D31.7


Frame Negative Acknowledge.


Indicates that a data frame, broadcast frame or FCT has not been received correctly.


Sequence number is the Sequence Number, SEQ_NUM, of the last correctly received data frame, FCT, or broadcast frame.


CRC is an 8-bit CRC that is used to confirm the integrity of the NACK.


FULL


Comma, FULL, SEQ_NUM, CRC


K28.7, D15.3, D0.0-D31.7, D0.0-D31.7


Error recovery buffer full indication.


Indicates that an error recovery buffer has become full. To alleviate this situation, the other end of the link sends an acknowledgement to a previously received frame/FCT which when received results in space in the error recovery buffers being freed.


Sequence number is the Sequence Number, SEQ_NUM, of the last data frame, FCT, or broadcast frame sent over the SpaceFibre link.


CRC is an 8-bit CRC that is used to confirm the integrity of the FULL.


FULL is not normally sent, provided that the error recovery buffers are large enough to handle approximately twice the number of characters that can fit on the line. Hence, FULL only occurs when an implementation has small error recovery buffers and is operating with a very long cable or the link is disconnected while sending data.


RETRY


Comma, RETRY, Reserved, Reserved


K28.7, D7.4, D0.0, D0.0


Error recovery indication.


Indicates to the far-end of a link that a NACK has been received and the contents of the error recovery buffer are about to be transmitted.


Acknowledgment control word (ACK)

ACK control word shall be used to indicate that a data frame, FCT, or broadcast frame has been received without error and in the correct order.
The ACK control word shall begin with a comma, K28.7, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the ACK control word shall identify the control word as being an ACK control word, and has the value D2.5.
The third symbol in the ACK control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing a Sequence Number, SEQ_NUM, which is the Sequence Number of the data frame, FCT, or broadcast frame that is being acknowledged.

The item being acknowledged has been correctly received at the far-end of the link.

The fourth and final symbol in the ACK control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing an 8-bit CRC covering the first three characters in the ACK control word, excluding the 8-bit CRC field itself, which is used to confirm the integrity of the ACK when received before its contents are acted upon.

The CRC includes the data value of the K-code in the ACK, i.e. ignoring the value of the D/K flag.

Negative Acknowledgment control word (NACK)

The NACK control word shall be used to indicate that a data frame, FCT, or broadcast frame has not been received correctly.
The NACK control word shall begin with a comma, K28.7, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the NACK control word shall identify the control word as being a NACK control word, and has the value D27.5.
The third symbol in the NACK control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing a Sequence Number, SEQ_NUM, which is the Sequence Number of the last correctly received data frame, FCT, or broadcast frame.

All data frames, FCTs, and broadcast frames that have already been sent following that sequence indicated in the NACK are resent, possibly in a different order.

The fourth and final symbol in the NACK control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing an 8-bit CRC covering the first three characters in the NACK control word, excluding the 8-bit CRC field itself, which is used to confirm the integrity of the NACK when received before its contents are acted upon.

The CRC includes the data value of the K-code in the NACK, i.e. ignoring the value of the D/K flag.

Full control word (FULL)

The FULL control word shall be used to indicate that an error recovery buffer has become full.
The FULL control word shall begin with a comma, K28.7, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the FULL control word shall identify the control words as being a FULL control word, and has the value D15.3.
The third symbol in the FULL control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing a Sequence Number, SEQ_NUM, of the last data frame, FCT or broadcast frame sent over the SpaceFibre link.
The fourth and final symbol in the FULL control word shall be a data symbol with any value from D0.0 to D31.7 and encode a data character containing an 8-bit CRC covering the first three characters in the FULL control word, excluding the 8-bit CRC field itself, which is used to confirm the integrity of the FULL when received before its contents are acted upon.

The CRC includes the data value of the K-code in the FULL, i.e. ignoring the value of the D/K flag.

RETRY control word

The RETRY control word shall be used to indicate that the contents of the error recovery buffer are about to be sent.
The RETRY control word shall begin with a comma, K28.7, which is in the least significant symbol position of the control word and is sent first.
The second symbol in the RETRY control word shall identify the control word as being a RETRY control word, and has the value D7.4.
The third and fourth symbols in the RETRY control word are reserved and shall be set to D0.0 when transmitted and ignored when received.

Receive error indication control word (RXERR)

The receive error indication control word shall be used by the Lane layer to indicate that a disparity error, invalid code error or other form of error was detected in the received data stream.

The receive error indication control word is not sent over the SpaceFibre link. It is used within the receiver to indicate to higher protocol layers that an error has occurred. The receive error indication control word is illustrated in Table 58.

Table 58: Receive error indication control word

Name


Control word


Function


RXERR


Error, Reserved, Reserved, Reserved


K0.0, D0.0, D0.0, D0.0


Receive error indication (RXERR).


Indicates that an error has been detected in the received data stream by the decoder.


Any word containing one or more symbols in error is replaced by the RXERR control word.


The received data stream is replaced by RXERR control words whenever the receive synchronisation state machine is not in the ready state.


The RXERR control word, shall be used to indicate that the received data or control word contained an error or is likely to have contained an error.
The RXERR control word shall comprise one error symbol, K0.0, followed by three symbols each set to D0.0.
Since the receive error indication control word contains invalid symbols it shall not be transmitted, and is only used in the receiver to indicate receive errors to higher layers.
When loss of signal, (LoS), is detected, at least one RXERR word shall be passed up to the Multi-Lane or Data Link layer
Data and control words shall not be passed up to the Multi-Lane or Data Link layer when the receiver has no signal on its inputs, LoS.
The RXERR control word may be passed up to the Multi-Lane or Data Link layer continuously when the receiver has no signal on its inputs, LoS.

Characters

N-Chars

SpaceFibre data characters shall be directly represented by data symbols D0.0 to D31.7.

  • 1    For example, SpaceFibre data character 0x39 is represented by data symbol D25.1.
  • 2    SpaceFibre N-Chars, data characters, EOPs and EEPs are equivalent to SpaceWire N-Chars, data characters, EOPs and EEPs carrying the same type of information, although with a different encoding.
  • 3    The SpaceFibre N-Chars are constructed as illustrated in Table 59.
    Table 59: SpaceFibre N-Char Symbols

Name


Symbol


Function


Data


D0.0 to D31.7


Each SpaceFibre character contains one byte of data. Data byte 0x00 is represented by symbol D0.0, data byte 0x01 by D01.0, and so on up to data byte 0xFF which is represented by D31.7.


EOP


K29.7


Represents a SpaceFibre EOP. This can occur at any point in the data field of a data frame, indicating the end of a SpaceFibre packet. The data byte following the EOP is the first byte of the next packet.


EEP


K30.7


Represents a SpaceFibre EEP. This can occur at any point in the data field of a data frame, indicating that the SpaceFibre packet has terminated with an error. The data byte following the EEP is the first byte of the next packet.


The SpaceFibre EOP shall be represented by K29.7.
The SpaceFibre EEP shall be represented by K30.7.
No more than one EOP or EEP character shall be allowed to appear in the same word of a data frame.
The EOP and EEP characters shall indicate the end of a SpaceFibre packet.
Data characters in any particular word of a data frame shall come from the same SpaceWire packet.
The data character following an EOP or EEP character shall be the first data character of the subsequent SpaceFibre packet.

Fill control character

The Fill control character shall be represented by K27.7

  • 1    The Fill control character is constructed as illustrated in Table 510.
  • 2    This character is called a Fill control character because it is used to fill out space at the beginning or end of a SpaceFibre packet.
    Table 510: Fill control character symbol

Name


Symbol


Function


Fill


K27.7


Used when there is not a multiple of 4 N-Chars in an output VCB to be sent.


The Fill character shall be used in a data word containing an EOP or EEP to fill otherwise empty characters that follow the EOP or EEP.

  • 1    This can be used to support 32-bit alignment of the VCBs. For example, if there are three N-Chars in an output VCB and the last one is an EOP, it is important to send this tail end of the SpaceFibre packet, without waiting for data from another packet to be added to the buffer. Since SpaceFibre sends data in words of four N-Chars each, it is necessary to have a character that fills out the space at the beginning or end of the words when needed.
  • 2    An example showing two small packets in part of a frame, 32-bit aligned, is shown in Figure 53, where D represents a data character, E an EOP or EEP, and F a Fill.

D


D


D


D


D


E


F


F


D


D


D


D


D


D


D


D


E


F


F


F


Figure 53: Fills at the end of packets

Fill characters shall only be sent between the EOP or EEP at the end of a packet and the first data character of the next packet.

  • 1    Fill characters are added at the beginning of a packet, to align a path address which is not a multiple of four data characters in length or to fill spaces that were previously occupied by a path address.
  • 2    This allows the leading SpaceFibre path address bytes to be removed by a router and replaced by Fill characters in order to keep the word-alignment of the SpaceWire cargo when it arrives at the destination. It also allows some fills to be added to the start of a packet to ensure that the cargo of the packet is 32-bit aligned when there is a path address that is not a multiple of four data characters. An example is illustrated in Figure 54, where D represents a data character, E an EOP or EEP, F a Fill, and P a data character which is a path address.

F


F


F


P


P


P


P


P


D


D


D


D


D


D


D


D


E


F


F


F


Figure 54: Fills at the start and end of a packet

Fills shall be transported across the SpaceFibre link and placed in the input virtual channel buffer at the receiving end of the link.
In a single-lane link, a data word which contains four Fills should not be transmitted over the link.

In a multi-lane link data is sent over several lanes in parallel. It is possible that, in a row of data being sent over the multi-lane link at the start or end of a packet, one or more lanes contain data while the remaining lanes contain only fills.

Frames

General

A frame shall contain user data, from a virtual channel or broadcast channel, or idle data.
Three types of frame shall be supported: data frame, broadcast frame, idle frame.

Data frame

A data frame shall start with a start of data frame, SDF, control word.

The data frame for a single-lane is illustrated in Figure 55.

0 7


8 15


16 23


24 31


COMMA


SDF


VC


RESERVED


DATA 1 LS


DATA 1


DATA 1


DATA 1 MS


DATA 2 LS


DATA 2


DATA 2


DATA 2 MS


...


...


...


...


DATA N LS


DATA N


DATA N


DATA N MS


EDF


SEQ_NUM


CRC_LS


CRC_MS


Figure 55: Data frame format for a single lane

A data frame shall end with an end of data frame, EDF, control word.
A data frame shall contain between one and N×64 data words each, where N is an integer less than or equal to the "maximum number of data-sending lanes" parameter.
Each data word shall contain four SpaceFibre N-Chars or Fills.
The virtual channel, (VC), field in the start of data frame, SDF, shall identify the VC sending the data frame and into which it is received, as specified in 5.3.5.1.3d.
The reserved field in the start of data frame, SDF, is reserved and shall be set to D0.0 and ignored by the receiver when the word is identified, as specified in 5.3.5.1.3e.
The Sequence Number, SEQ_NUM, in the end of data frame, EDF, shall contain the Sequence Number for the current frame, as specified in 5.3.5.1.4c.
The end of data frame, EDF, shall contain a 16-bit CRC covering the SDF control word, the data in the data frame, and the EDF control word, as specified in 5.3.5.1.4d and 5.3.5.1.7e.

Idle frames

An idle frame shall start with an idle frame control word.

An idle frame is illustrated in Figure 56.

0 7


8 15


16 23


24 31


COMMA


SIF


SEQ_NUM


CRC


PRBS 1 LS


PRBS 1


PRBS 1


PRBS 1 MS


PRBS 2 LS


PRBS 2


PRBS 2


PRBS 2 MS


...


...


...


...


PRBS N LS


PRBS N


PRBS N


PRBS N MS


Figure 56: Idle frame format

An idle frame shall contain between zero and N×64 data words each, where N is an integer less than or equal to the "maximum number of data-sending lanes" parameter.

An idle frame contains at least a start of idle frame, SIF, control word.

An idle frame shall end with the start of a data frame, broadcast frame, or next idle frame.

There is no end of idle frame control word.

The Sequence Number, SEQ_NUM, shall be the Sequence Number of the last sent data frame, broadcast frame or FCT.
The PRBS field in an idle frame shall contain a pseudo-random bit sequence.

Sending a PRBS avoids EMI emission peaks when idle frames are being transmitted.

The PRBS shall be generated using the algorithm specified in clause 5.7.6.2.3.
The PRBS seed used to compute the first idle frame following a link reset shall be set to 0xFFFF.
In a multi-lane link, the PRBS words shall have the same value in each lane.

The PRBS words are then replicated across all words in a row, see clause 5.6.4.1. This is so that a single PRBS generator can be used rather than having one for each lane or a single PRBS generator running L times faster, where L is the number of lanes.

The pseudo-random bit generator shall carry on generating the random bit sequence from one idle frame to the next.
An idle frame shall be terminated on a word boundary as soon as there is a broadcast frame, or data frame to send.
An idle frame shall be terminated in any case when 64 PRBS words have been sent over the same lane.

This means that the length of the idle frame can contain zero to 64 data words for each lane depending on when there are more broadcast or data frames to send.

If an idle frame is terminated and there is nothing else to send, another idle frame shall be sent immediately.

Broadcast frame

A broadcast frame shall start with a start of broadcast frame, SBF, control word.

The broadcast frame is illustrated in Figure 57.

0 7


8 15


16 23


24 31


COMMA


SBF


BC


B_TYPE


DATA 1 LS


DATA 1


DATA 1


DATA 1 MS


DATA 2 LS


DATA 2


DATA 2


DATA 2 MS


EBF


STATUS


SEQ_NUM


CRC


Figure 57: Broadcast frame format

A broadcast frame shall end with an end of broadcast frame, EBF, control word.
A broadcast frame shall contain two data words each containing four data bytes.
The broadcast channel, BC, field in the SBF control word shall identify the broadcast channel transmitting and receiving the broadcast frame.
The B_TYPE field shall identify the type of broadcast message.
The B_TYPE field shall contain a broadcast type, which indicates the type of broadcast message and the meaning of the subsequent eight data bytes.
The end of broadcast frame shall contain a STATUS field which contains three sub-fields: a 6-bit Reserved sub-field, a 1-bit DELAYED flag in bit-1 and a 1-bit LATE flag in bit-0, the least significant bit position.
The Reserved sub-field in the EBF shall be set to zero when transmitted and ignored when received.
If a broadcast frame is delayed in a routing switch because a previous broadcast frame is still in the process of being sent or several broadcast frames arrive at the same time, the DELAYED flag in the STATUS field of the end of the broadcast frame, EBF, shall be set to one, otherwise, the DELAYED flag is not changed.

The DELAYED flag is set when there are one or more pending broadcasts either in the process of being sent or waiting to be sent. If the broadcast frame contains time synchronisation, the end user application can decide to ignore the broadcast message because it was delayed. If the broadcast message contains event signalling information it can still be useful to the application even though it has been delayed. The maximum delay depends upon how many broadcast frames are sent by the routing switch before the current broadcast frame can be sent.

If a broadcast frame is not sent immediately because a transient or persistent error occurred on a link or because there was no active link over which to send the broadcast message, the LATE flag in the STATUS field of the end of broadcast frame, EBF, shall be set to one, otherwise the LATE flag is not changed.

The LATE flag is set when there is a transient or persistent error on a link, which causes the broadcast frame to be delayed, or when there is no active link to forward the broadcast frame and it remains pending. The maximum delay depends upon the type of error encountered and the number of errors that occur across the link. For a single, transient error, the delay is a few µs.

The Sequence Number, SEQ_NUM, in the end of broadcast frame shall contain the sequence number of the frame.

This sequence number is used to support error recovery.

The end of broadcast frame shall contain an 8-bit CRC covering the SBF control word, the data in the data frame, and the first three characters of the EBF control word, excluding the 8-bit CRC field itself, which is used to check the integrity of the broadcast when received, before it is acted upon.

The CRC includes the data value of the K-code in the broadcast SBF and EBF control words, i.e. ignoring the value of the D/K flag.

Packets

A SpaceFibre packet shall comprise a destination address, a cargo and an end of packet, EOP, or error end of packet, EEP, marker.

This is the same format as a SpaceWire packet.

The destination address shall comprise zero or more data characters that describe the path to or the identity of the destination of the packet.
The cargo shall contain the data that is transferred from the source of the packet to the destination of the packet.
A SpaceFibre packet shall be terminated by one of the following N-Chars to signal the end of one packet and the start of the next packet:

  • An EOP marker, which indicates that the packet has been received in full.
  • An EEP, which indicates that the packet has been terminated prematurely because of an error. When an error has occurred in a packet resulting in some of the data in the packet being lost, the packet shall be terminated by an EEP.
    The data character following an EOP or EEP marker shall be the first data character of the next packet, which is usually the destination address or the first part of the destination address.
    A SpaceFibre packet shall be able to take on any length.
    Packets of zero length shall not be generated by a packet source.

Zero length packets are formed by an EOP or EEP followed immediately by another EOP or EEP and can occur on a network after an error, but are discarded by a routing switch.

Control word and frame precedence

During lane initialisation, prior to a link being established, only the following Lane Layer Control Words shall be sent: INIT1, INIT2, INIT3.

  • 1    iINIT1 and iINIT2 are not transmitted but can be created from an INIT1 or INIT2 if the TXp and TXn or RXp and RXn signals are crossed resulting in the bits of the control symbols being inverted.
  • 2    SKIP control words are not sent during lane initialisation since there is an initialisation time-out timer which causes the lane initialisation state machine to start to re-initialise after 5000 words have been sent.
  • 3    IDLE control words are not sent during the lane initialisation as they contain the Comma, K28.7, and can move the lane initialisation state machine to the ClearLine state if sent during exchange of INIT3 control words.
    During lane initialisation the Lane Layer Control Words shall have the following precedence:
  • INIT1, INIT2 and INIT3, highest precedence.
  • Data words containing a PRBS which can also occur during initialisation, lowest precedence. Once one or more lanes have been established to form a link, the control words and frames shall have the following precedence:
  • SKIP, highest precedence.
  • LOST_SIGNAL.
  • STANDBY.
  • ALIGN.
  • ACTIVE.
  • RETRY.
  • Broadcast frame in error recovery buffer to be resent.
  • Broadcast frame.
  • ACK/NACK.
  • FCT in error recovery buffer to be resent.
  • FCT.
  • FULL.
  • Data frame in error recovery buffer to be resent.
  • Data frame.
  • Idle frame.
  • IDLE, lowest precedence.

It is not possible for an ACK and NACK to be waiting to be sent at the same time: one replaces the other.

A SKIP control word shall be able to be inserted within a data frame, broadcast frame or idle frame.
A LOST_SIGNAL control word shall be able to be inserted within a broadcast, data or idle frame.
A STANDBY control word shall be able to be inserted within a broadcast, data or idle frame.
An ALIGN control word shall be able to be inserted within a broadcast, data or idle frame.
An ACTIVE control word shall be able to be inserted within a broadcast, data or idle frame.
A RETRY control word shall be able to be inserted within a broadcast, data or idle frame.
A broadcast frame shall be able to be inserted within a data frame.
An ACK control word shall be able to be inserted within a data or idle frame.
A NACK control word shall be able to be inserted within a data or idle frame.
An FCT control word shall be able to be inserted within a data or idle frame.
A FULL control word shall be able to be inserted within a data or idle frame.
An idle frame shall be sent only when there are no data frames, broadcast frames or control words to send.
An IDLE control word shall be sent only when there are no other frames or control words to send.
While any broadcast frames in the error recovery buffer are being resent, new broadcast frames cannot be sent and shall wait for the error recovery buffer to finish resending any broadcast frames it contains.

See clause 5.7.7 for details of error recovery.

While any broadcast frames or FCTs in the error recovery buffer are being resent, new FCTs cannot be sent and shall wait for the error recovery buffer to finish resending any broadcast frames or FCTs it contains.

See clause 5.7.7 for details of error recovery.

While any broadcast frames or FCTs or data frames in the error recovery buffer are being resent, new data frames cannot be sent and shall wait for the error recovery buffer to finish resending any broadcast frames or FCTs or data frames it contains.

See clause 5.7.7 for details of error recovery.

K-code summary

The meaning of K-codes within SpaceFibre shall be as in Table 511.
Table 511: Meaning of K-codes

K-code


Meaning


Disparity


K0.0


Rx Error


N/A


K28.0


EDF


neutral


K28.1


Not used


+2 or -2


K28.2


EBF


+2 or -2


K28.3


FCT


+2 or -2


K28.4


Not used


neutral


K28.5


Initialisation Comma


+2 or -2


K28.6


Not used


+2 or -2


K28.7


Comma


neutral


K23.7


Not used


neutral


K27.7


SpaceFibre Fill


neutral


K29.7


SpaceFibre EOP


neutral


K30.7


SpaceFibre EEP


neutral


Control word symbol summary

The data values assigned to particular control word symbols within SpaceFibre shall be as in Table 512.
Table 512: Meaning of control word symbols

D-code


Meaning


Disparity


D0.1


ACTIVE


-2 or +2


D2.5


ACK


-2 or +2


D4.2


SIF


-2 or +2


D4.3


LOST_SIGNAL


-2 or +2


D6.2 / D25.5


INIT1/iINIT1


neutral


D6.5 / D25.2


INIT2/iINIT2


neutral


D7.4


RETRY


-2 or +2


D14.6 / D17.1


LLCW/iLLCW


neutral


D15.3


FULL


-2 or +2


D15.6


IDLE


-2 or +2


D16.2


SDF


-2 or +2


D23.3


ALIGN


-2 or +2


D24.1


INIT3


-2 or +2


D27.5


NACK


-2 or +2


D29.2


SBF


-2 or +2


D30.3


STANDBY


-2 or +2


D31.3


SKIP


-2 or +2


Physical layer

Physical layer responsibilities

The SpaceFibre Physical layer shall serialise and de-serialise SpaceFibre symbols, transmit and receive the SpaceFibre serial data signals over the physical medium, and define the cables, connectors, cable assemblies and PCB tracks that make up that physical medium.
The Physical layer shall receive TX Symbols from the Lane layer.
The Physical layer shall pass RX 10-bit data to the Lane layer.
The Physical layer shall accept the following control signals from the Lane layer:

  • Line driver enable.
  • Line receiver enable.
  • Line clock data recovery enable.
  • Invert RX polarity. The Physical layer shall provide a NoSignal indication to the Lane layer.
    The Physical layer shall emit a TX Signal to the Physical layer at the far-end of the physical connection.
    The Physical layer shall receive an RX signal from the Physical layer at the far-end of the physical connection.
    The Physical layer shall be controlled by the following management parameters from the Management Information Base:
  • Near-end serial loopback enable.
  • Far-end serial loopback enable.

The interfaces to and from the Physical layer are illustrated in Figure 58.

Image Figure 58: Interfaces to the Physical layer

Serialisation

Serialiser/deserialiser

10-bit symbols shall be transmitted serially over the physical medium.
A serialiser shall be used to convert each parallel 10-bit symbol for transmission into a serial bit stream with each bit of the symbol being sent one after the other.

One, two or four symbols are provided to the serialiser in parallel.

The least significant bit of the 10-bit symbol shall be transmitted first.
The received digital signal from the line receiver shall be sampled by a clock-data recovery circuit to recover the serial bit stream.
The clock-data recovery circuit should indicate, in a status register, when bit synchronisation is achieved.

This is for status information only.

The recovered serial bit stream shall be converted to 10-bit parallel form by a deserialiser.

The deserialiser does not necessarily produce a stream of 10-bit symbols because the boundary of the symbols is not known by the deserialiser. One, two or four sets of 10-bit parallel data are provided by the deserialiser, depending upon the implementation.

When a valid serial bit stream appears on the input of the de-serialiser, it shall be ready to start recovering data from that serial bit stream after no more than 150000 bits have been received.

  • 1    This assumes that any PLL or similar circuit related to the clock-data recovery is locked.
  • 2    It takes around a further 42000 bits after bit synchronization has been achieved for a lane to reach the Active state. The initialisation time-out timer is set to the time it takes to send 200000 bits (5000 words). 200000 – 42000 bits leads to the 150000 bit requirement.
    When Invert RX Polarity is asserted, each bit of the 10-bit parallel output from the deserialiser shall be inverted.

It is possible to do this by inverting the serial data entering the deserialiser or inverting each bit on the output of the deserialiser.

Serial loopback

A serial loopback facility should be provided in the SpaceFibre port for test purposes.
The near-end serial loopback shall connect the bit stream output from the serialiser in the transmitter, directly into the serial input of the deserialiser in the receiver.
The far-end serial loopback shall connect the digital signal from the output of the line receiver directly to the input of the line driver.

Data signalling rates

The data signalling rate for a SpaceFibre lane shall be the same, ±0,01% in each direction of the lane.
The data signalling rate for a SpaceFibre lane shall be one of the following: 1 Gbit/s, 1,25 Gbit/s, 2 Gbit/s, 2,5 Gbit/s, 3,125 Gbit/s, 5 Gbit/s or 6,25 Gbit/s within ±0,01%.
The data signalling rate for a SpaceFibre lane may be any rate, provided that the two ends of the lane are at the same data signalling rate, ±0,01%.

A multi-lane implementation has each lane running at the same data signalling rate from the same clock or reference clock, see clause 5.6.2.

Loss of signal

When the level of the RX Signal received by the Physical layer is below the minimum threshold value of the receiver or when the transition density is below a certain value, NoSignal shall be asserted.
When a receiver does not provide a loss of signal indication, the NoSignal signal may either:

  • Be always de-asserted indicating that there is always a signal present at the receiver.
  • Have its value determined in some other way.

For example, the value of NoSignal can be determined by counting the number of bit transitions at the output of the receiver in a given period of time and asserting NoSignal when the bit transition density is above a suitable threshold.

Electrical physical layer

General

The electrical physical layer shall comprise a line driver, electrical cable assembly or PCB track, and line receiver.

One direction of the Physical layer is illustrated in Figure 59.

Image Figure 59: One direction of electrical Physical layer, showing series capacitors, discharge resistors, and different grounds

Electrical serial output

The serial output shall generate the differential signals listed in Table 513.
Table 513: Serial output interface

Signal


Function


TXp


Positive side of the differential serial output.


TXn


Negative side of the differential serial output.


The serial output shall be AC coupled using 100 nF to 200 nF series capacitors on both transmit signals, TXp and TXn.

AC coupling protects the driver and receiver in the event of a failure that results in a high DC voltage on the signal lines. It helps to prevent fault propagation. It also prevents DC ground loops. The serial input is also AC coupled on the input side, see clause 5.4.3.3.

If a particular SerDes requires different AC coupling capacitors, values outside the 100 nF to 200 nF range may be used.
100 kohm ±10% discharge resistors shall be connected from the connector side of the series coupling capacitors to local circuit ground on both transmit signals, TXp and TXn.

The series capacitors and discharge resistors are illustrated in Figure 59.

The serial output line driver shall use Current Mode Logic, CML.

The differential CML output signal is illustrated in Figure 510. It is possible to convert Voltage Mode Logic, VML, to CML using a resistor network. For example, see Nick Holland, “Interfacing Between LVPECL, VML, CML, and LVDS Levels”, Texas Instruments, Application Report SLLA120, December 2002.

Image Figure 510: Serial output signals

When a SerDes serial interface in an FPGA or ASIC uses a different type of driver technology than CML, the serial output line drive may use that different technology other than CML provided that it meets the signal specifications in requirements 5.4.3.2g to 5.4.3.2k
When terminated by a pair of 50 Ω ±1 Ω termination resistors, as shown in Figure 511, and measured using a wide bandwidth oscilloscope with a combined bandwidth of at least three times the bit rate, the output signals shall conform to the following:

  • Amplitude of each signal, VTXp-PK and VTXn-PK individually, of between 0,2 Volt and 0,4 Volt.
  • Differential peak-to-peak amplitude, VDIFF-PK-PK, which is twice the maximum, absolute value of TXp minus TXn, of between 0,8 Volt and 1,6 Volt.
  • Jitter of less than 35 % of the bit interval, Jitter ≤ ±0,175UI.

The corresponding eye pattern masks for the near-end differential signals are illustrated in Figure 512.

Image Figure 511: Serial output test circuit

Image Figure 512: Serial eye pattern mask

For data signalling rates in the range 1 Gbit/s to 3,125 Gbit/s, the serial eye pattern mask shall have the intervals specified in Table 514.

The near-end values are measured at the transmitter outputs and the far-end values are measured at the receiver inputs.

Table 514: Serial eye pattern mask intervals 1 Gbit/s to 3,125 Gbit/s

Symbol


Near-End Value


Far-End Value


Units


X1


0,175


0,275


UI


X2


0,390


0,400


UI


A1


400


100


mV


A2


800


800


mV


For data signalling rates in the range above 3,125 Gbit/s to 6,25 Gbit/s, the serial eye pattern mask shall have the intervals specified in Table 515.
When operating between 3,125 Gbit/s and 6,125 Gbit/s and the receiver has a lower input threshold voltage, the far-end value of A1 may be 50 mV.

This allows greater distances to be covered using electrical media, when the receiver is capable of detecting smaller signals.

Table 515: Serial eye pattern mask intervals above 3,125 Gbit/s to 6,25 Gbit/s

Symbol


Near-End Value


Far-End Value


Units


X1


0,165


0,3


UI


X2


0,4


0,5


UI


A1


400


100


mV


A2


800


800


mV


The driver characteristics shall have the values listed in Table 517 and Table 518.

Jitter is specified in terms of total jitter (TJ) and deterministic jitter (DJ). The random component of the jitter can be determined and related to the required BER using the following formulae and Table 516.

Jp-p = 2Jm-p

where: Jp-p is the peak to peak jitter and Jm-p is the mean to peak jitter.

TJp-p ≤ DJp-p – RJp-p

RJp-p = αRJrms

where α is given by

Values of α are tabulated for various BER in Table 516.

For further information refer to the following application notes from Maxim Integrated: HFAN-4.0.2, HFAN-4.0.3 and HFAN-4.0.4.

Table 516: Coefficient α for different values of BER

BER


α


10-5


8.530


10-6


9.507


10-7


10.399


10-8


11.224


10-9


11.996


10-10


12.723


10-11


13.412


10-12


14.069


10-13


14.698


10-14


15.301


10-15


15.883


10-16


16.444


Pre-emphasis or de-emphasis of the differential transmit signals may be used, when the transmitter supports them.

Pre-emphasis compensates for the “RC” effect of a cable in the transmitter, opening the eye pattern at the receiver. De-emphasis reduces the signal level of subsequent bits which have the same value as the current bit. De-emphasis reduces inter-symbol interference.

Table 517: Driver and receiver characteristics 1 Gbit/s to 3,125 Gbit/s

Parameter


Value


Comment


Bit rate


1 Gbit/s ± 0,01%


1,25 Gbit/s ± 0,01%


2 Gbit/s ± 0,01%


2,5 Gbit/s ± 0,01%


3,125 Gbit/s ± 0,01%


These are the standard bit rates. Other bit rates in the range 1 Gbit/s to 3,125 Gbit/s are possible


Unit Interval


Nominal Values


1000 ps


800 ps


500 ps


400 ps


320 ps


1 Gbit/s


1,25 Gbit/s


2 Gbit/s


2,5 Gbit/s


3,125 Gbit/s


Output Amplitude Differential Peak-to-Peak


1600 mV max


800 mV min



Input Threshold Differential


±100 mV max


The specific threshold is dependent on the SerDes being used.


Load


80 to 120 ohm


100 ohm nominal


Jitter


Near-end Jitter
Total
Deterministic
Far-end Jitter
Total
Deterministic



≤ ±0,175 UI peak from mean


≤ ±0,085 UI peak from mean



≤ ±0,275 UI peak from mean


≤ ±0,185 UI peak from mean




The total jitter figure is for a BER of 10-12, i.e. with this level of jitter, a BER of10-12 can be expected.


Signal coupling


AC


100-200 nF capacitor at the near-end and at the far-end.


Differential input return loss


≥ 10 dB


100 ohm reference


100 MHz to 0,5x bit-rate


Common mode input return loss


≥ 6 dB


25 ohm reference


Table 518: Driver and receiver characteristics above 3,125 Gbit/s to 6,25 Gbit/s

Parameter


Value


Comment


Bit rate


4 Gbit/s ± 0,01%


5 Gbit/s ± 0,01%


6,25 Gbit/s ± 0,01%


These are the standard bit rates. Other bit rates are possible.


Unit Interval


Nominal Values


250 ps


200 ps


160 ps


4 Gbit/s


5 Gbit/s


6,25 Gbit/s


Output Amplitude Differential Peak-to-Peak


1600 mV max


800 mV min



Input Threshold Differential


±100 mV max


The specific threshold is dependent on the SerDes being used.


Load


80 to 120 ohm


100 ohm nominal


Output Jitter


Near-end Jitter
Total
Deterministic
Far-end Jitter
Total
Deterministic



≤ ±0,165 UI peak from mean


≤ ±0,085 UI peak from mean



≤ ±0,3 UI peak from mean


≤ ±0,23 UI peak from mean







The total jitter figure is for a BER 10-12 i.e. with this level of jitter a BER 10-12 can be expected.


Signal coupling


AC


100-200 nF capacitor at the near-end and at the far-end.


Differential input return loss


≥ 8 dB


100 ohm reference


100 MHz to 0,5x bit-rate


Common mode input return loss


≥ 6 dB


25 ohm reference


A positive differential signal at the output of the line driver, VTXp > VTXn, shall be used to transmit a logic 1.
A negative differential signal at the output of the line driver, VTXp < VTXn, shall be used to transmit a logic 0.
The line driver shall be operational when the line driver enable signal is asserted.
When the line driver supports a low-power, non-operational state, the line driver shall enter the low-power, non-operational state when the line driver enable signal is de-asserted.

Electrical serial input

The serial input shall accept the differential signals listed in Table 519.
Table 519: Serial input interface

Signal


Function


RXp


Positive side of the differential serial input.


RXn


Negative side of the differential serial input.


The receiver characteristics shall have the values listed in Table 517 and Table 518.
The serial input shall be AC coupled using 100 nF to 200 nF series capacitors on both the receive signals, RXp and RXn.

AC coupling protects the driver and receiver in the event of a failure that results in a high DC voltage on the signal lines. It helps to prevent fault propagation. It also prevents DC ground loops. The serial output is also AC coupled on the output side, see clause 5.4.3.2.

If a particular SerDes requires different AC coupling capacitors, values outside the 100 nF to 200 nF range may be used.
100 kohm ±10% discharge resistors shall be connected from the connector side of the series coupling capacitors to local circuit ground on both receive signals, RXp and RXn.
Each half of the serial input differential signal shall be terminated by a 50 ohm ±20 % impedance to a termination voltage of 0 Volt to 2,5 Volt.

  • 1    The limitation of the termination voltage is to prevent a high voltage spike on the line when the unit is switched on/off. In practice the termination voltage is determined by the receiver circuit.
  • 2    This is illustrated in Figure 59.
    An equivalent form of termination of the input signal may be used, when needed by a particular receiver device.

For example, see Nick Holland, “Interfacing Between LVPECL, VML, CML, and LVDS Levels”, Texas Instruments, Application Report SLLA120, December 2002.

Post-emphasis of the differential receive signals may be used, when the receiver supports post-emphasis.

Post-emphasis compensates for the low-pass characteristics of the cable in the receiver, opening the eye pattern at the receiver.

A differential signal (RXp – RXn) greater than +100 mV shall result in logic 1 at the line receiver output.

The differential receive signal and its components are illustrated in Figure 513.

A differential signal (RXp – RXn) less than -100 mV shall result in logic 0 at the receiver output.
Image Figure 513: Serial input signals

A differential signal that does not meet the ±100 mV minimum input differential voltage may be used, provided that the received differential voltage is sufficient for the receiver and the maximum signal level at the receiver is not greater than the receiver can tolerate.

TLK2711-SP has a min differential signal of 220 mV and a maximum of 1600 mV. This equates to ±220 mV threshold and a maximum signal level of ±1600 mV.

When measured at the inputs to the line receiver using a wide bandwidth oscilloscope with differential probes and a combined bandwidth of at least three times the bit rate, the receiver shall operate correctly under the far-end conditions listed in Table 514 and Table 515.

The differential signal requirements for the receiver are illustrated in the eye pattern mask of Figure 512.

When access to the inputs of the line receiver is restricted, the receive eye pattern may be measured within 1 cm of the receiver pins on the integrated circuit or further away provided that compensation for the signal difference between the measurement point and the receiver inputs is applied.
The receiver shall have a differential return loss of more than 10 dB from 100 MHz to the maximum operating frequency of the link.

The maximum operating frequency of a link is half the bit rate, i.e. a 3,125 Gbit/s link has a maximum operating frequency of 1,5625 GHz.

The receiver shall have a common mode return loss of more than 6 dB from 100 MHz to the maximum operating frequency of the link.
The line receiver shall be operational when the line receiver enable signal is asserted.
When the line receiver supports a low-power, non-operational state, the line receiver shall enter the low-power, non-operational state when the line receiver enable signal is de-asserted.

Electrical serial lane budget

The SpaceFibre electrical connection from line driver to line receiver, including PCB traces, connectors and cable assemblies, shall have an insertion loss of less than 12 dB, at three times the frequency corresponding to the maximum specified operating bit rate.

  • 1    This corresponds to the minimum transmit signal level of ±400 mV being reduced to the minimum acceptable signal level at the receiver, ±100 mV. The frequency corresponding to a maximum specified bit rate of 5 Gbit/s is 2,5 GHz.
  • 2    A insertion loss of 12 dB results in a maximum cable length of 3,6 m, using Type-B connectors and cable assemblies as defined in clause 5.4.4.4.
    When a line driver provides a higher signal level, the acceptable insertion loss may be higher than 12 dB.

Electrical medium

General

The differential characteristic impedance of the electrical medium shall be 100 ohm ±10% from 100 MHz to twice the frequency corresponding to the maximum bit rate.

If the bit rate is 3,125 Gbit/s, the frequency corresponding to this is 1,5625 GHz and twice this frequency is 3,125 GHz.

PCB tracks

The PCB tracks for electrical SpaceFibre shall be 100 ohm ±10 ohm differential impedance.
Two pairs of differential PCB tracks shall be used for a bi-directional SpaceFibre lane, one pair for each direction.

Type-A flight electrical medium

Type-A flight electrical connectors

For flight equipment and cable assemblies, Type-A connections conforming to ESCC Specification 3409/001 shall be used.
Male two-way connectors shall conform to ESCC 3409/001 variant 10.

A two-way connector has two pairs of contacts, one pair for each direction, and a total of four contacts.

Female two-way connectors shall conform to ESCC 3409/001 variant 11.
Female two-way PCB panel mounting connectors shall conform to ESCC Specification ESCC 3401/090 variant 7.

Type-A flight cable

Flight cable shall be coaxial cable that conforms to the cable specification in ESCC Generic Specification 3409 and ESCC Detailed Specification 3409/001.

Type-A flight cable assemblies

Male two-way connectors conforming to clause 5.4.4.3.1 shall be used on flight cable assemblies.
The flight cable assembly shall use the coaxial cable specified in clause 5.4.4.5.2.
The connector contacts for Type-A flight cable assemblies shall be terminated as shown in Table 520.

This is illustrated in Figure 514.

The length of the coaxial cables used in the flight cable assembly shall be of the same length within ±2 mm.
Table 520: Type-A electrical flight cable assembly connector contact terminations

Signal at A end


Pin at A end


Connections


Pin at B end


Signal at B end


A-TXp


1


Coaxial (i) Signal Wire


4


B-RXp


A-TXn


2


Coaxial (ii) Signal Wire


3


B-RXn


A-RXn


3


Coaxial (iii) Signal Wire


2


B-TXn


A-RXp


4


Coaxial (iv) Signal Wire


1


B-TXp


A-braids, shields of the 4 signal wires


Shell


Coaxial Shields


Shell


B-braids, shields of the 4 signal wires


Image Figure 514: Type-A electrical flight cable assembly

Type-A flight connector savers

One male two-way connector and one female two-way connector conforming to clause 5.4.4.3.1 shall be used on flight connector savers.
The flight connector saver shall use the coaxial cable specified in clause 5.4.4.3.2 to wire between the connectors.
The connector contacts for Type-A flight connector savers shall be terminated as shown in Table 521.

This is illustrated in Figure 515.

The length of the coaxial cables used in the flight connector saver shall be of the same length within ±1 mm and of maximum length 100 mm.
Table 521: Type-A electrical flight connector saver connector contact terminations

Signal at A end


Pin at A end


Connections


Pin at B end


Signal at B end


A-TXp


1


Coaxial (i) Signal Wire


1


B-TXp


A-TXn


2


Coaxial (ii) Signal Wire


2


B-TXn


A-RXn


3


Coaxial (iii) Signal Wire


3


B-RXn


A-RXp


4


Coaxial (iv) Signal Wire


4


B-RXp


A-braids, shields of the 4 signal wires


Shell


Coaxial Shields


Shell


B-braids, shields of the 4 signal wires


Image Figure 515: Type-A electrical flight connector saver

Type-B flight electrical medium

General

Type-B flight electrical medium from and including the Type-B connector at one end of a lane to and including the Type-B connector at the other end of that lane, shall:

  • Maintain a signal path of 50 ohm ±5 ohm single-ended impedance or 100 ohm ±10 ohm differential impedance.
  • Have an insertion loss of less than 2,2 dB/m plus 2 dB per connector pair at a maximum operating bit rate specified for the SpaceFibre electrical medium.
  • Have a return loss of more than 10 dB.
  • Have a near-end crosstalk isolation of better than 35 dB.
  • Have a far-end crosstalk isolation of better than 35 dB.
  • Have a signal skew between TXp and TXn, measured at the receiving end of a lane, of less than the larger of:
    • ±20 ps.
    • ±10 % of the shortest bit interval that the medium is used for.

±20 ps corresponds to a difference in path length of around ±2 mm. 10 Gbit/s = 100 ps bit time, which is around 15 mm signal length. 10 % of this length is 1,5 mm which is difficult to manufacture.

A specific Type-B flight electrical medium shall be referred to by a unique descriptive name based on the type of connector used in the following format: SpFi-TypeB-Connector, where Connector is the name or type of the connector.

For example, a Type-B flight electrical medium using SMA connectors has the name SpFi-TypeB-SMA.

Type-B flight electrical connectors

Type-B flight electrical connectors shall be of matched impedance of either of the following:

  • 50 ohm ±5 ohm single–ended impedance, for single signal contacts.
  • 100 ohm ±10 ohm differential impedance, for differential signal contacts. Male connectors shall be used for Type-B cable assemblies.
    Female connectors shall be used for Type-B EGSE to flight adaptor cable assemblies.
    Female PCB panel mounting connectors or female PCB mounting connectors shall be used for connecting to a PCB.

Type-B flight cable

Type-B flight cable shall be either

  • 50 ohm ± 5 ohm single–ended impedance.
  • 100 ohm ± 10 ohm differential impedance.

Cable with single-ended impedance is cable with a single signal conductor and shield, such as coaxial cable. Two of these cables make a differential pair. Cable with differential impedance is cable with signal wires arranged in pairs, such as twisted pair or twin-axial cable.

Flight cable shall contain one or several signal wires or pairs of signal wires with individual shields or an overall shield or both individual and overall shields.

Type-B flight cable assemblies

Type-B flight cable assemblies shall carry the following four signals: TXp, TXn, RXp, RXn, for each lane supported by the cable assembly.
Type-B flight cable assemblies shall carry one or more lanes.
Male connectors conforming to clause 5.4.4.4.2 shall be used on Type-B flight cable assemblies.
When a Type-B flight cable assembly has the same kind of connector at each end, that cable assembly should be referred to by a unique name in the following format: SpFi-TypeB-Connector where Connector is the kind of connector used at each end of the cable assembly.

A cable assembly using SMA connectors is referred to as SpFi-TypeB-SMA.

A Type-B flight cable assembly may use different kinds of connector at each end of the cable assembly.
When Type-B flight cable assembly has different kinds of connector at each end, that cable assembly should be referred to by a unique name in the following format: SpFi-TypeB-ConnectorA-ConnectorB, where ConnectorA is the kind of connector used at one end of the cable assembly and ConnectorB is the kind of connector used at the other end of the cable assembly.

A cable assembly using SMA connectors at one end and a 38999 connector at the other end is referred to as SpFi-TypeB-SMA-38999.

The Type-B flight cable assembly shall use the cable specified in clause 5.4.4.4.3.
The connector contacts for each lane of a Type-B flight cable assembly shall be terminated as shown in Table 522.
The length of the coaxial cables used in the Type-B flight cable assembly shall be of the same length within ±2 mm.
Table 522: Type-B electrical flight cable assembly connector contact terminations

Signal at A end


Connections


Signal at B end


A-TXp


Signal Wire (i)


B-RXp


A-TXn


Signal Wire (ii)


B-RXn


A-RXp


Signal Wire (iii)


B-TXp


A-RXn


Signal Wire (iv)


B-TXn


Connector Shell


Shields


Connector Shell


Type-C EGSE electrical medium

Type-C EGSE electrical connectors

For electrical ground support equipment, EGSE, external serial ATA connectors shall be used as specified in Serial ATA Revision 3.0:2009, clause 6.5.1.

Type-C EGSE cable

For electrical ground support equipment, EGSE, external serial ATA cable shall be used, as specified in Serial ATA Revision 3.0:2009, clause 6.6.1.

Type-C EGSE cable assemblies

For electrical ground support equipment, EGSE, a crossover external serial ATA cable shall be used.
The EGSE cable assembly shall be terminated at each end by an External Serial ATA cable receptacle as specified in Serial ATA Revision 3.0:2009, clause 6.5.1 and Figure 93 of the specification.
The EGSE cable assembly shall use the external serial ATA cable specified clause 5.4.4.5.2.
The connector contacts for Type-C EGSE cable assemblies shall be terminated as shown in Table 523.

This is illustrated in Figure 516.

Table 523: Type-C electrical EGSE cable assembly connector contact terminations

Signal at A end


Pin at A end


Connections


Pin at B end


Signal at B end


GND


1


Shields Pairs 1 & 2


7


GND


A-TXp


2


Pair 1 Signal Wire (i)


6


B-RXp


A-TXn


3


Pair 1 Signal Wire (ii)


5


B-RXn


GND


4


Shields Pairs 1 & 2


4


GND


A-RXn


5


Pair 2 Signal Wire (i)


3


B-TXn


A-RXp


6


Pair 2 Signal Wire (ii)


2


B-TXp


GND


7


Shields Pairs 1 & 2


1


GND


Image Figure 516: Type-C electrical EGSE cable assembly

Type-C EGSE to flight adaptor cable assemblies

The EGSE to flight adaptor cable assembly shall allow a SpaceFibre EGSE unit to connect to a flight cable assembly.
One end of the EGSE to flight adaptor cable assembly shall be terminated by an External Serial ATA cable receptacle as specified in Serial ATA Revision 3.0:2009, clause 6.5.1 and Figure 93 of that specification.
The other end of the EGSE to flight adaptor cable assembly shall be terminated by a female 2-way connector conforming to clause 5.4.4.3.1.
The EGSE to flight adaptor cable assembly shall use the cable specified in clause 5.4.4.5.2
The connector contacts for Type-C EGSE to flight adaptor cable assemblies shall be terminated as shown in Table 524 and illustrated in Figure 517.
Table 524: Type-C electrical EGSE to flight adaptor cable assembly connector contact terminations

Signal at A end


Pin at A end


Connections


Pin at B end


Signal at B end


GND


1


Coaxial (i) Shield


Shell



A-TXp


2


Coaxial (i) Signal Wire


1


B-RXp


A-TXn


3


Coaxial (ii) Signal Wire


2


B-RXn


GND


4


Coaxial (ii) & (iii) Shields


Shell



A-RXn


5


Coaxial (iii) Signal Wire


3


B-TXn


A-RXp


6


Coaxial (iv) Signal Wire


4


B-TXp


GND


7


Coaxial (iv) Shield


Shell



Image Figure 517: Type-C electrical EGSE to flight adaptor cable assembly

Type-D EGSE electrical medium

General

Type-D EGSE electrical medium from and including the Type-D connector at one end of a lane to and including the Type-D connector at the other end of that lane, shall:

  • Maintain a signal path of 50 ohm ± 5 ohm single-ended impedance or 100 ohm ± 10 ohm differential impedance.
  • Have an insertion loss of less than 2,2 dB/m plus 2 dB per connector pair at a maximum operating bit rate specified for the SpaceFibre electrical medium.
  • Have a return loss of more than 9 dB.
  • Have a near-end crosstalk isolation of better than 30 dB.
  • Have a far-end crosstalk isolation of better than 30 dB.
  • Have a signal skew between TXp and TXn of less than the larger of:
    • ±20 ps.
    • ±10% of the shortest bit interval that the medium is used for.

±20 ps corresponds to a difference in path length of around ±2 mm and is Signal skew 10 Gbit/s = 100 ps bit time, around 15 mm signal length, 10 % is 1,5 mm which is difficult to manufacture.

A specific Type-D EGSE electrical medium shall be referred to by a unique descriptive name based on the type of connector used in the following format: SpFi-TypeD-Connector, where Connector is the name or type of the connector.

For example, a Type-D EGSE electrical medium using SMA connectors has the name SpFi-TypeD-SMA.

Type-D EGSE electrical connectors

Type-D EGSE electrical connectors shall be of matched impedance of either of the following:

  • 50 ohm ±5 ohm single–ended impedance, for single signal contacts.
  • 100 ohm ±10 ohm differential impedance, for differential signal contacts. Male connectors shall be used for Type-D EGSE cable assemblies.
    Female connectors shall be used for Type-D EGSE to flight adaptor cable assemblies.
    Female PCB panel mounting connectors or female PCB mounting connectors shall be used for connecting to a PCB.

Type-D EGSE cable

Type-D EGSE cable shall be either:

  • 50 ohm ±5 ohm single–ended impedance.
  • 100 ohm ±10 ohm differential impedance.

Cable with single-ended impedance is cable with a single signal conductor and shield, such as coaxial cable. Two of these cables make a differential pair. Cable with differential impedance is cable with signal arranged in pairs, such as twisted pair or twin-axial cable.

Type-D EGSE cable shall contain one or several signal wires or pairs of signal wires with individual shields or an overall shield or both individual and overall shields.

Type-D EGSE cable assemblies

Type-D EGSE cable assemblies shall carry the following four signals: TXp, TXn, RXp, RXn, for each lane supported by the cable assembly.
Type-D EGSE cable assemblies shall carry one or more lanes.
Male connectors conforming to clause 5.4.4.6.2 shall be used on Type-D EGSE cable assemblies.
When a Type-D EGSE cable assembly has the same kind of connector at each end, that cable assembly should be referred to by a unique name in the following format: SpFi-TypeD-Connector where Connector is the kind of connector used at each end of the cable assembly.

A cable assembly using SMA connectors is referred to as SpFi-TypeD-SMA.

A Type-D EGSE cable assembly may use different kinds of connector at each end of the cable assembly.
When a Type-D EGSE cable assembly has different kinds of connector at each end, that cable assembly should be referred to by a unique name in the following format: SpFi-TypeD-ConnectorA-ConnectorB, where ConnectorA is the kind of connector used at one end of the cable assembly and ConnectorB is the kind of connector used at the other end of the cable assembly.

A cable assembly using SMA connectors at one end and a 38999 connector at the other end is referred to as SpFi-TypeD-SMA-38999.

The Type-D EGSE cable assembly shall use the cable specified in clause 5.4.4.6.3.
The connector contacts for each lane of a Type-D EGSE cable assembly shall be terminated as shown in Table 525.
Table 525: Type-D electrical EGSE cable assembly connector contact terminations

Signal at A end


Connections


Signal at B end


A-TXp


Signal Wire (i)


B-RXp


A-TXn


Signal Wire (ii)


B-RXn


A-RXp


Signal Wire (iii)


B-TXp


A-RXn


Signal Wire (iv)


B-TXn


Connector Shell


Shields


Connector Shell


The lengths of the signal wires used in the Type-D EGSE cable assembly should be matched to within ±2 mm.

Fibre optic physical layer

General

The fibre optic physical layer shall comprise one of the following sets of components:

  • A fibre optic transmitter, fibre optic connector, fibre optic cable assembly, connector and fibre optic receiver.
  • An active optical cable with an electrical connector, fibre optic transmitter, fibre optic cable, fibre optic receiver, and electrical connector.

One direction of each of these alternatives for the fibre optic Physical layer is illustrated in Figure 518 and Figure 519.

Image Figure 518: One direction of fibre optic Physical layer, showing fibre optic transmitter, receiver, connectors and cable

Image Figure 519: One direction of active optical cable type of fibre optic Physical layer

Fibre optic serial output

The fibre optic transmitter shall have CML inputs, TXp and TXn, for the serial data to be transmitted over the optical lane, as specified in clause 5.4.3.3.
The fibre optic transmitter should provide a Transmitter Failed indication, which is asserted when failure of the transmitter is detected.

This signal is useful for diagnostic purposes. It is not necessary for the operation of the SpaceFibre protocol, because a failed transmitter is detected by the receiver at the far-end of the link. Since the SpaceFibre link is bidirectional, this results in the LOST_SIGNAL control word being sent back to the near-end. The Transmitter Failed indication can be implemented using LVTTL, LVCMOS, or open drain signals, or using I2C or a similar serial control and monitoring status interface.

When a fibre optic transmitter has an I2C or similar serial control and status monitoring interface, this interface may be used to provide the Transmitter Failed indication in place of a dedicated signal.
The fibre optic transmitter shall support a nominal operating wavelength of 830 nm to 860 nm, 850 nm nominal.

Normally the fibre optic transmitter uses a VCSEL which is able to achieve the target bandwidth with an OM3 fibre. In line with current state of practice in the industry the term “Driver” is used to refer to the electrical amplifier used to drive the VCSEL, whereas “Transmitter” includes the “driver” as well as the VCSEL laser diode.

The fibre optic transmitter shall have an average output power of between 0,25 mW and 2 mW, -6 dBm to 3 dBm.

  • 1    The average output power is for the 8B/10B encoding used in SpaceFibre. The values 0,25 mW and 2 mW, -6 dBm to 3 dBm, are in line with current state of practice for VCSEL-based transceivers.
    The fibre optic transmitter shall support the operating data signalling rate of the link.
    The bandwidth of the fibre optic transmitter shall be sufficient for sending an 8B/10B encoded signal at the operating data signalling rate.

For example, a data signalling rate of 3,125 Gbit/s requires a maximum frequency of greater than 0,7 times the data rate which is 2,2 GHz and a minimum frequency of less than 312,5 MHz. The lower operating frequency results from the fact that there is a maximum of 5 consecutive ones or 5 consecutive zeros in an 8B/10B encoded data stream. It is necessary to allow these consecutive bits to pass through the fibre optic transceiver.

The fibre optic transmitter shall tolerate an optical return loss of 12 dB without reduction in jitter performance.
The fibre optic transmitter shall have the characteristics as specified in Table 526 or Table 527. according to its operating data rate.

  • 1    The corresponding eye patterns are illustrated in Figure 520 and Figure 521.
  • 2    The Differential Input requirements for the fibre optic transmitter are defined in clause 5.4.3.3.
    Image Figure 520: Electro-optical eye pattern for 1 Gbit/s to 5 Gbit/s transmitters

Table 526: Electro-optical characteristics for 1 Gbit/s to 5 Gbit/s transmitters

Parameter


Symbol


Min


Type


Max


Units


Note


Optical Output Power


POUT


-6,5


-5


+3


dBm


850nm VCSEL


Extinction Ratio, 1 or 1,25 Gbit/s


ER


7


10



dB


Exceeds OMA for GbE, 1FC


Extinction Ratio, 2, 2,5 and 3,125 Gbit/s


ER


5




dB


Exceeds OMA for 2FC


Extinction Ratio, 5 Gbit/s


ER


5




dB


Exceeds OMA for 4FC


Optical Wavelength


λOUT


830


850


860


nm



Spectral Width, r.m.s.


Δλ




0,85


nm



Relative Intensity Noise


RIN




-117


dB/Hz


1000BASE-S Standard (IEEE 802.3 Clause 38.3)


Transmitter Differential Input Impedance


Zin


90


100


110


ohm


AC coupled Internally


Differential Input Voltage


Vin_d


250



2200


mVp-p


CML, 100 ohm


Eye mask jitter definition, 1 and 1,25 Gbit/s


X1




0,135


UI p-p


Jp-p = 2*X1 in transmitter mask diagram.


Eye mask jitter definition, 2, 2,5 and 3,125 Gbit/s


X1




0,15


UI p-p


Jp-p = 2*X1 in transmitter mask diagram.


Eye mask jitter definition, 5 Gbit/s


X1




0,175


UI p-p


Jp-p = 2*X1 in transmitter mask diagram.


Image Figure 521: Electro-optical eye pattern for 1 Gbit/s to 10 Gbit/s transmitters

Table 527: Electro-optical characteristics for 1 Gbit/s to 10 Gbit/s transmitters

Parameter


Symbol


Min


Type


Max


Units


Notes


Optical Output Power, Avg


POUT


-5



+3


dBm


850nm VCSEL, 10GBASE-SR @ 10,3125 Gbit/s


Optical Output Power – OFF CONDITION


POUT-OFF




-30


dBm


IEEE 802.3 Clause 52.5


Optical Return Loss Tolerance





12


dB


IEEE 802.3ae Clause 52.5 Compliant


Extinction Ratio


Er


3


5



dB


IEEE802.3 Clause 52.5


Optical Wavelength


λOUT


840


850


860


nm


IEEE802.3 Clause 52.5


Spectral Width, r.m.s.


Δλ




0.4


nm



Relative Intensity Noise


RIN




-128


dB/Hz


IEEE802.3 Clause 52.5


Transmitter Differential Input Impedance


ZIN


90


100


110


ohm


AC coupled Internally


Differential Input Voltage


Vin_d


180



800


mVp-p


CML, 100 ohm


Transmitter eye mask definition


(X1, X2, X3, Y1, Y2, Y3)




(0,25, 0,40, 0,45, 0,25, 0,28, 0,40)



Actual mask values, not maximum values


A transmitter operating over the 1 Gbit/s to 10 Gbit/s range shall comply with 10GBASE-SR jitter and eye-mask margin at 10,3125 Gbit/s as specified in IEEE802.3 Clause 52.5.
Multi-rate transmitters operating over the range 1 Gbit/s to 10 Gbit/s, shall follow the specifications for 10 Gbit/s transmitters.

Fibre optic serial input

The fibre optic receiver shall have CML outputs, RXp and RXn, for the serial data received over the optical lane, as specified in clause 5.4.3.2.
The fibre optic receiver should provide a NoSignal indication, which is asserted when the optical signal at the receiver is at the specified level below the minimum specified receiver sensitivity level needed for reliable detection of the optical signal.
The NoSignal indication shall be de-asserted when the optical input signal level is above the specified sensitivity level of the receiver.

The NoSignal, indication can be implemented using LVTTL, LVCMOS, or open drain signals, or using I2C or a similar serial control and monitoring status interface.

When NoSignal is asserted the CML outputs of the fibre optic receiver should remain fixed at a value representing a logic 1 or logic 0, see requirement 5.4.3.2l and 5.4.3.2m.
The fibre optic receiver shall support a nominal operating wavelength of 840 nm to 860 nm, 850 nm nominal, as specified in IEEE802.3 Clause 52.5.
The fibre optic receiver shall support the operating data signalling rate of the link.
The bandwidth of the fibre optic receiver shall be sufficient for receiving an 8B/10B encoded signal at the operating data signalling rate.
The fibre optic receiver shall have a sensitivity as specified in Table 528 or Table 529 according to its operating data rate.

It is quite difficult to have one design that is truly optimized for a wide range of data rates. Table 528 provides values for individually-optimized receiver units. Note that the electrical differential output requirements for the fibre optic receiver are defined in clause 5.4.3.2.

Table 528: Electro-optical characteristics for 1 Gbit/s to 5 Gbit/s receivers

Parameter


Symbol


Min


Type


Max


Units


Notes


Receiver Sensitivity








Sensitivity, BER 10-12, PRBS 2-7-1, Er 10 dB


PIN



-22,5


-19


dBm


PIN PD @ 1,25 Gbit/s


Sensitivity, BER 10-12, PRBS 2-7-1, Er 10 dB


PIN



-22,5



dBm


PIN PD @ 2,5 Gbit/s


Sensitivity, BER 10-12, PRBS 2-7-1, Er 10 dB


PIN



-18,5



dBm


PIN PD @ 3,2 Gbit/s


Sensitivity, BER 10-12, PRBS 2-7-1, Er 10 dB


PIN



-18



dBm


PIN PD @ 4,25Gbit/s


Sensitivity, BER 10-12, PRBS 2-7-1, Er 10 dB


PIN



-17,5


-16


dBm


PIN PD @ 5 Gbit/s


Overload, BER 10-12, PRBS 2-7-1


PIN


-1




dBm


@1,25Gbit/s or @ 5 Gbit/s


Optical Wavelength


λIN


770



860


nm


IEEE802.3 Clause 38.3


Receiver Differential Output Impedance


Zout



100



ohm


AC coupled internally


Differential Output Voltage Swing


Vout_d


600



1200


mVp-p


CML, 100 ohm


NoSignal Assert Level


NOSIG


-30


-24



dBm


@ 1,25Gbit/s


NoSignal Hysteresis


NOSIGHYS


1,25


2,3



dB


@ 1,25Gbit/s


Table 529: Electro-optical characteristics for 1 Gbit/s to 10 Gbit/s receivers

Parameter


Symbol


Min


Type


Max


Units


Notes


Receiver Sensitivity








Sensitivity, BER 10-12, PRBS 2-7-1, Er 5 dB


PIN



-14


-11


dBm


PIN PD @ 10,3 Gbit/s


Overload, BER 10-12, PRBS 2-7-1


PIN


0




dBm



Optical Wavelength


λIN


830



860


nm



Receiver Differential Output Impedance


Zout



100



ohm


AC coupled internally


Differential Output Voltage Swing


Vout_d


300



850


mVp-p


CML, 100 ohm


NoSignal Assert Level


NOSIG


-30


-19



dBm


@ 10,3 Gbit/s


NoSignal Hysteresis


NOSIGHYS


0,5


2,0



dB



Optical loss budget

The optical loss over the optical link from transmitter to receiver at the data rate specified for the SpaceFibre link shall be less than the worst case transmitter output minus the worst case receiver sensitivity minus the 3 dB margin at end of life.

  • 1    The optical loss budget includes for example the following: connection loss for each connector pair, cable loss and cable installation loss i.e. degradation due to squeezing, and routing of cable.
  • 2    This takes into account degradation due to temperature, aging and radiation.
    The overall return loss shall be more than 12 dB at beginning of life.

Fibre optic medium

Type-A fibre optic medium

Type-A fibre optic connector

The Type-A fibre optic connector shall be a mini AVIM connector as specified in Optical fibre cable assemblies based on Type Mini-Avim ESCC Detail Specification: ESCC 3420/001:2017.
The Type-A fibre optic adaptor shall be a mini AVIM adaptor as specified in Optical fibre cable assemblies based on Type Mini-Avim ESCC Detail Specification: ESCC 3420/001:2017.

The Adaptor allows two mini AVIM connectors to be connected together to provide a through connection.

The adaptor may be incorporated in the housing of the transceiver.

Type-A fibre optic cables

The Type-A fibre optic cable shall contain a single multi-mode, graded index, 50/125 µm fibre as specified in MIL-PRF-49291/1-01:2014.
The minimum quality level shall be IEC 60793-2-10 A1a.2:2015.

These correspond to OM3 respectively. This is needed to achieve 10 Gbit/s over a link length of 300 meters (IEEE802.3:2012 Clause 52.5). Optical Multi-mode (OM) describes the modal bandwidth of the fibre by quantifying the modal dispersion characteristics of the optical fibre.

The Type-A fibre shall have an attenuation of less than 5 dB per km at beginning of life.

This gives an operating link of 100 m length at end of life, after taking into account effects due to radiation and temperature.

The buffer and jacket of the Type-A fibre optic cable shall use materials suitable for space applications as specified in the following ECSS standards:

  • ECSS-Q-ST-70-02 Thermal vacuum outgassing test for the screening of space materials.
  • ECSS-Q-ST-70-21 Flammability testing for the screening of space materials.
  • ECSS-Q-ST-70-29 The determination of off-gassing products from materials and assembled articles to be used in a manned space vehicle crew compartment.

Type-A fibre optic cable assemblies

Male connectors conforming to requirements from clause 5.4.6.1.1 shall be used on Type-A flight fibre optic cable assemblies.
The Type-A flight cable assembly shall use the fibre optic cable specified in clause 5.4.6.1.2.
The Type-A flight cable assembly shall comprise a Type-A cable with Type-A connectors fitted to each end.
The Type-A fibre optic cable assembly shall meet the specifications specified in Optical fibre cable assemblies ESCC Generic Specification: ESCC 3420:2017.

A Type-A fibre optic cable assembly contains a single fibre. A bidirectional SpaceFibre lane has two of these cable assemblies, one for each direction.

The Type-A fibre optic cable assembly shall follow the test procedures specified in Evaluation Test programme for optical fibre cable assemblies ESCC Basic Specification: ESCC 2263420:2017.
The Type-A fibre optic cable assembly shall have a minimum bend radius of less than 25 mm.
The Physical layer of a SpaceFibre lane using Type-A cable assemblies shall comprise two cable assemblies connected as specified in Table 530.

The Physical layer of a SpaceFibre lane using Type-A fibre optic cable assemblies is illustrated in Figure 522.

Table 530: Connection of SpaceFibre lane using Type-A flight fibre optic cable assemblies

Signal at A end


Connection


Signal at B end


A-TX1


- Connection -


B-RX1


A-RX1


- Connection -


B-TX1


A-TX2


- Connection -


B-RX2


A-RX2


- Connection -


B-TX2


A-TX3


- Connection -


B-RX3


A-RX3


- Connection -


B-TX3





A-TXy


- Connection -


B-RXy


A-RXy


- Connection -


B-TXy


Image Figure 522: SpaceFibre lane comprising two Type-A fibre optic flight cable assemblies, one for each direction

Type-B fibre optic medium

General

A specific Type-B flight fibre optic medium shall be referred to by a unique descriptive name based on the type of insert and connector used in the following format: SpFi-TypeB-Insert-Connector, where Insert is the type of insert and Connector is a unique name for the type of connector and its specific contact allocation.

  • 1    For example, a Type-B flight fibre optic medium using MT inserts in a 38999 connector with a specific contact allocation (D) is given the name SpFi-TypeB-MT-38999D.
  • 2    The Type-B fibre optic medium is intended to be a generic specification of a cable assembly without defining the insert or connector body to be used.

Type-B fibre optic connector

The Type-B fibre optic connector shall use a rugged fibre optic connector.
Expanded beam should be used.

This technique gives better performance.

When a Type-B fibre optic connector uses one or more MT ferrule contacts they shall be as specified in mechanical specification IEC 61754-5:2005 and optical interface specification IEC 61755-3-31:2015 or IEC 61755-3-32:2015 which cover two different materials.

The IEC 61754-5:2005, IEC 61755-3-31:2015 and 61755-3-32:2015 definitions give the worst case performance.

Type-B fibre optic cables

The Type-B fibre optic cable shall contain two or more multi-mode, graded index, 50/125 µm fibres as specified in MIL-PRF-49291/1-01:2014.
The minimum quality level shall be IEC 60793-2-10 A1a.2:2015.

This corresponds to OM3, which achieve 10 Gbit/s over a link length of 300 m (IEEE802.3:2012 Clause 52.5) in a commercial grade fibre optic cable assembly.

The Type-B fibre shall have an attenuation of less than 5 dB per km.
The buffer and jacket of the Type-B fibre optic cable shall use materials suitable for space applications as specified in the following ECSS standards:

  • ECSS-Q-ST-70-02 Thermal vacuum outgassing test for the screening of space materials.
  • ECSS-Q-ST-70-21 Flammability testing for the screening of space materials.
  • ECSS-Q-ST-70-29 The determination of off-gassing products from materials and assembled articles to be used in a manned space vehicle crew compartment.

Type-B fibre optic cable assemblies

Male connectors conforming to clause 5.4.6.2.2 shall be used on Type-B flight fibre optic cable assemblies.
The Type-B flight cable assembly shall use the fibre optic cable specified in clause 5.4.6.2.3.
The Type-B fibre optic cable assembly shall contain one or more pairs of fibre with each pair connected as specified in Table 531.

A Type-B fibre optic cable assembly containing two fibres is illustrated in Figure 523.

Table 531: Type-B flight fibre optic cable assembly connector contact terminations for each SpaceFibre lane

Signal at A end


Connection


Signal at B end


A-TX1


- Connection -


B-RX1


A-TX2


- Connection -


B-RX2





A-TXy


- Connection -


B-RXy





A-RXy


- Connection -


B-TXy





A-RX2


- Connection -


B-TX2


A-RX1


- Connection -


B-TX1


Image Figure 523: Type-B fibre optic flight cable assembly with one lane

A Type-B fibre optic cable assembly comprising several pairs should put the transmit signals at one side of the fibre optic cable assembly and the receive signals on the other side.

This is illustrated in the Type-B fibre optic cable assembly of Figure 524.

A Type-B fibre optic cable assembly comprising several pairs where only some pairs are being used should place the unused fibres between the transmit fibres and the receive fibres.
Image Figure 524: Type-B fibre optic flight cable assembly with several lanes

A Type-B fibre optic cable assembly being used for an asymmetric, multi-lane SpaceFibre interface shall be asymmetric with more fibres operating in one direction than in the other direction.

This is illustrated in the Type-B fibre optic cable assembly of Figure 525.

Image Figure 525: Type-B fibre optic flight cable assembly for an asymmetric link

The Type-B fibre optic cable assembly shall meet the specifications specified in Optical fibre cable assemblies ESCC Generic Specification: ESCC 3420:2017.
The Type-B fibre optic cable assembly shall follow the test procedures specified in Evaluation Test programme for optical fibre cable assemblies ESCC Basic Specification: ESCC 2263420:2017.
The Type-B fibre optic cable assembly should have a minimum bend radius of less than 25 mm.

Type-C Active Optical Cable

General

The Type-C active optical cable shall include the fibre optic transceiver in the male connector on the cable assembly.

This means that the connectors are electrical connectors and all the fibre optic components are integrated in the cable assembly. This makes assembly, integration and test much simpler.

Type-C fibre optic connector

The Type-C fibre optic connector shall provide the electrical signals listed in Table 532.

The Type-C fibre optic connector is not defined. It provides an electrical interface. The Type-C cable assembly is an active optical cable assembly with fibre optic transceivers incorporated in the connector housing of the cable assembly.

Table 532: Type-C flight active optical cable connector terminations for each SpaceFibre lane

Signal Name


Signal Type


Signal Function


TXp


CML +


Serial Data Transmit +


TXn


CML -


Serial Data Transmit -


RXp


CML +


Serial Data Receive +


RXn


CML -


Serial Data Receive -


NOSIG


LVTTL/LVCMOS


NoSignal Indication


TX FAIL


LVTTL/LVCMOS


Transmitter Fault Indication


TX_EN


LVTTL/LVCMOS


Transmitter Enable


RX_EN


LVTTL/LVCMOS


Receiver Enable


PWR


3,3 Volt Power


3,3 Volt ±10 %, 1 Watt Power Supply


GND


Ground


Ground


When more than one lane is provided in an active optical cable assembly, it shall provide one set of the signals listed in Table 532 for each lane.
When more than one lane is provided in an active optical cable assembly, the NOSIG and TX FAIL indications may be accessed by a shared interface.

For example, using I2C or a similar serial interface.

When more than one lane is provided in an active optical cable assembly, the power connection may be shared provided that it can provide sufficient power for all of the transceivers.
The Type-C connector on the equipment shall be a female connector.

Type-C active optical cable assemblies

Male connectors conforming to clause 5.4.6.3.2 shall be used on Type-C flight active optical cable assemblies.
The Type-C fibre optic cable assembly shall contain one or more pairs of fibre with each pair connected as specified in Table 533.

A Type-C fibre optic cable assembly containing two fibres is illustrated in Figure 526.

When more than one lane is provided in an active optical cable assembly, it shall provide one set of the connections listed in Table 533 for each lane.
Table 533: Type-C flight active optical cable assembly connector contact terminations for each SpaceFibre lane

Signal as A end


Connection


Signal at B end


TXp


- Connection -


RXp


TXn


- Connection -


RXn


RXp


- Connection -


TXp


RXn


- Connection -


TXn


NOSIG end A


No Connection


NOSIG end B


TX FAIL end A


No Connection


TX FAIL end B


PWR end A


No Connection


PWR end B


GND end A


No Connection


GND end B


Image Figure 526: Type-C flight active optical cable assembly

The Type-C active optical cable assembly shall have a minimum bend radius of less than 25 mm.
The Type-C active optical cable assembly shall use materials suitable for space applications as specified in the following ECSS standards:

  • ECSS-Q-ST-70-02 Thermal vacuum outgassing test for the screening of space materials.
  • ECSS-Q-ST-70-21 Flammability testing for the screening of space materials.
  • ECSS-Q-ST-70-29 The determination of off-gassing products from materials and assembled articles to be used in a manned space vehicle crew compartment.

The specific form of the Type-C fibre optic cable is not defined. Any fibre optic cable is acceptable provided that it meets the requirements for the Type-C active optical cable assemblies.

Lane layer

Lane layer responsibilities

The Lane layer shall establish communications across a SpaceFibre lane, encode data and control words into symbols, send and receive symbols over the lane, decode the received symbols into data and control words, and re-establish communications across the lane after errors that occur on the lane.

From the perspective of the implementation and the layers of the OSI Model, the Lane layer is a sub-layer of the Data Link layer.”

For a single lane link, the Lane layer shall receive data words and Data Link layer control words from the Data Link layer.
For a single lane link, the Lane layer shall pass data words and Data Link layer control words to the Data Link layer.
For a multi-lane link, the Lane layer shall receive data words, Multi-Lane control words and Data Link layer control words from the Multi-Lane layer.
For a multi-lane link, the Lane layer shall pass data words, Multi-Lane layer control words and Data Link layer control words to the Multi-Lane layer.
The Lane layer shall accept LaneReset commands from the Data Link or Multi-Lane layers.
The Lane layer shall accept near-end capability control information from the Data Link or Multi-Lane layer.
The Lane layer shall report far-end capability information received in the INIT3 Capability field to the Data Link or Multi-Lane layer.
The Lane layer shall accept RxOnly, TxOnly and FarEndActive lane control information from the Multi-Lane layer.
The Lane layer shall provide lane state information to the Multi-Lane layer or to the Data Link layer in the case of a single-lane link.
The Lane layer shall pass transmit symbols to the Physical layer.
The Lane layer shall receive 10-bit parallel data from the Physical layer.
The Lane layer shall control the Physical layer using the following signals:

  • Line driver enable.
  • Line receiver enable.
  • Line clock data recovery enable.
  • Invert RX polarity. The Lane layer shall be informed by the Physical layer when there is no signal present at the receiver input, NoSignal.
    The Lane layer shall be controlled by the following management parameters from the Management Information Base, where i is the lane number:
  • LaneStart(i).
  • AutoStart(i).
  • LaneReset(i).
  • Parallel Loopback(i), when implemented.
  • Standby reason(i). The Lane layer shall provide the following status information to the Management Information Base:
  • Lane State(i).
  • Error Information(i).
  • Loss of Signal Information(i).
  • Far End Capabilities (i).
  • Receive Polarity(i).

The interfaces to and from the Lane layer are illustrated in Figure 527 for a single lane link and in Figure 528 for a multi-lane link.

Image Figure 527: Interfaces to the Lane layer for a single lane link

Image Figure 528: Interfaces to the Lane layer for a multi-lane link

Lane initialisation and standby management

General

The Lane Initialisation state machine shall control the initialisation of a SpaceFibre lane: establishing the connection and responding to standby management requests.

  • 1    The state diagram for the lane initialisation state machine is illustrated in Figure 529.
  • 2    As is normal for a state machine, the conditions that result in transitions in the lane initialisation state machine, e.g. Start, AutoStart, RxOnly, TxOnly and the values of the management parameters, are evaluated continuously.
    Image Figure 529: Lane initialisation state machine

RXERR word counter

An RXERR word counter shall be used to check the BER on the lane.
On LaneReset the value of the RXERR word counter shall be zero.

The way in which the RXERR words counter operates is detailed in clause 5.5.2.11.

FarEndActive

A FarEndActive indication shall be provided for each lane.
FarEndActive for a lane shall be asserted when the Lane Initialisation state machine at the far-end of that lane is in the Active state, as determined by a valid ACTIVE control word received by any lane at the near-end.

See clause 5.6.9.2.

For a single lane link FarEndActive shall be de-asserted.

ClearLine state

The Lane Initialisation state machine shall enter the ClearLine state on one of the following conditions:

  • On LaneReset command.
  • From the Started state, when the initialisation timeout timer expires.
  • From the InvertRxPolarity state, when the initialisation timeout timer expires.
  • From the Connecting state, when the initialisation timeout timer expires.
  • From the Connected state, when the initialisation timeout timer expires.
  • From the Connected state, when a comma, K28.7, is received.
  • From any state where clock-data recovery (CDR) is enabled when 3 consecutive LOST_SIGNAL words are received.
  • From any state where CDR is enabled when 3 consecutive STANDBY words are received.
  • From the InvertRxPolarity state, when NoSignal is detected at the receiver and the TxOnly signal is not asserted.
  • From the Connecting state, when NoSignal is detected at the receiver and the TxOnly signal is not asserted.
  • From the Connected state, when NoSignal is detected at the receiver and the TxOnly signal is not asserted.
  • From the PrepareStandby state, after sending 32 STANDBY control words.
  • From the LossOfSignal state, after sending 32 LOST_SIGNAL control words.

The initialisation timeout timer is started in the Started state and stopped in the Active state. It times out if initialisation takes longer than the time to send 5000 words. The time to transmit 5000 words allows plenty of time for the receive clock-data recovery at the far-end of the lane to lock onto the transmitted signal, a response to be generated and returned to the near-end.

When in the ClearLine state the Lane Initialisation state machine shall initiate the following actions:

  • Start a 2 µs timeout timer.
  • Do NOT reset the Lane management parameter registers.
  • Switch off receiver bit inversion.
  • Disable the transmitter driver. When in the ClearLine state the Lane Initialisation state machine should disable the receiver and receive clock-data recovery circuitry.

This is to save power and also resets the clock recovery logic in case there has been a problem causing the SerDes to fail and the lane to disconnect in consequence.

The Lane Initialisation state machine shall leave the ClearLine state on the following condition:

  • When the 2 µs timeout timer expires, move to the Disabled state.

This is more than long enough for signals to propagate through the longest permitted fibre optic cable, 100m, and back again, and to allow time for the signals to be processed at each end of the cable.

Disabled state

The Lane Initialisation state machine shall enter the Disabled state on the following condition:

  • From the ClearLine state, after waiting there for 2 μs. When in the Disabled state the Lane Initialisation state machine should disable the transmitter driver, receiver and related receive clock-data recovery (CDR).
    The Lane Initialisation state machine shall leave the Disabled state on one of the following conditions, which are evaluated in the order given:
  • When LaneReset is asserted, move to the ClearLine state.
  • When LaneStart or AutoStart is asserted, move to the Wait state.

Wait state

The Lane Initialisation state machine shall enter the Wait State on the following condition:

  • From the Disabled state, when LaneStart or AutoStart is asserted. When in the Wait State the Lane Initialisation state machine shall initiate either one of the following actions:
  • Enable the receiver including the NoSignal detection circuit.
  • Enable only the NoSignal detection circuit. When in the Wait state the Lane Initialisation state machine should disable the transmitter driver.

This is to save power.

When in the Wait state, the Lane Initialisation state machine should disable the receiver clock-data recovery, CDR, circuit.
When in the Wait state and TxOnly is asserted, the Lane Initialisation state machine should disable the receiver.
The Lane Initialisation state machine shall leave the Wait State on one of the following conditions, which are evaluated in the order given:

  • When LaneReset is asserted, move to the ClearLine state.
  • When LaneStart and AutoStart are both de-asserted, move to the Disabled state.
  • When LaneStart is asserted or No_Signal is de-asserted, move to the Started state.

Started state

The Lane Initialisation state machine shall enter the Started state on the following condition:

  • From the Wait state, when LaneStart is asserted or No_Signal is de-asserted. When in the Started state the Lane Initialisation state machine shall initiate the following actions:
  • On entry to the state, start an initialisation timeout timer, set to the time needed to transmit 5000 words.
  • When RxOnly is not asserted, enable the transmitter driver.
  • When TxOnly is not asserted, enable the receiver and CDR.
  • Send INIT1 control words.
  • Receive Lane layer control words, LLCW.

The time to transmit 5000 words allows plenty of time for the receive clock-data recovery at the far-end of the lane to lock onto the transmitted signal, a response to be generated and returned to the near-end.

When in the Started state and RxOnly is asserted the Lane Initialisation state machine should disable the transmitter driver.

This is to save power.

When in the Started state and TxOnly is asserted, the Lane Initialisation state machine should disable the receiver and the CDR.
When in the Started state the Lane Initialisation state machine may repeatedly send an INIT1 control word followed by up to 64 pseudo-random data words.

Replacing the stream of INIT1s by INIT1s followed by up to 64 pseudo-random data words reduces EM emissions during initialisation and supports adaptive equalisation which is likely to be necessary for data signalling rates above 5 Gbit/s.

The Lane Initialisation state machine shall leave the Started state on one of the following conditions, which are evaluated in the order given:

  • When LaneReset is asserted, move to the ClearLine state.
  • When the FarEndActive condition is asserted, move to the Connecting state.
  • When a total of 1023 words, including at least one INIT1 or INIT2 control word, are received without any intervening RXERR control words, move to the Connecting state.
  • When three inverse INIT1 or three inverse INIT2 control words are received without any intervening RXERR control words, move to the InvertRxPolarity state.
  • When the initialisation timeout timer expires, move to the ClearLine state.
  • When three consecutive LOST_SIGNAL or three consecutive STANDBY control words have been received, move to the ClearLine state.

The FarEndActive condition is received from a bi-directional lane of a multi-lane link, see clause 5.6.9.2. For a single lane link FarEndActive is de-asserted.

InvertRxPolarity state

The Lane Initialisation state machine shall enter the InvertRxPolarity state on one of the following conditions:

  • From the Started state, when three inverse INIT1 control words are received without any intervening RXERR control words.
  • From the Started state, when three inverse INIT2 control words are received without any intervening RXERR control words. When in the InvertRxPolarity state the Lane Initialisation state machine shall initiate the following actions:
  • When RxOnly is not asserted, enable the transmitter driver.
  • When TxOnly is not asserted, enable the receiver and CDR.
  • Invert received bits.
  • Send INIT1 control words.
  • Receive Lane layer control words, LLCW. When in the InvertRxPolarity state and RxOnly is asserted the Lane Initialisation state machine should disable the transmitter driver.
    When in the InvertRxPolarity state and TxOnly is asserted, the Lane Initialisation state machine should disable the receiver and CDR.

This requirement has been added for symmetry with the other states, but the InvertRxPolarity state cannot be reached when TxOnly is asserted, as nothing can be received.

When in the InvertRxPolarity state the Lane Initialisation state machine may repeatedly send an INIT1 control word followed by up to 64 pseudo-random data words.
The Lane Initialisation state machine shall leave the InvertRxPolarity state on one of the following conditions, which are evaluated in the order given:

  • When LaneReset is asserted, move to the ClearLine state.
  • When NoSignal is detected at the receiver inputs and the TxOnly signal is not asserted, move to the ClearLine state.
  • When the FarEndActive condition is asserted, move to the Connecting state.
  • When a total of 1023 words, including at least one INIT1 or INIT2 control word, are received without any intervening RXERR control words, move to the Connecting state.
  • When the initialisation timeout timer expires, move to the ClearLine state.
  • When three consecutive LOST_SIGNAL or three consecutive STANDBY control words have been received, move to the ClearLine state.

Connecting state

The Lane Initialisation state machine shall enter the Connecting state on one of the following conditions:

  • From the Started state, when FarEndActive is asserted.
  • From the Started state, when a total of 1023 words, including at least one INIT1 or INIT2 control word, are received without any intervening RXERR control words.
  • From the InvertRxPolarity state, when FarEndActive is asserted.
  • From the InvertRxPolarity state, when a total of 1023 words, including at least one INIT1 or INIT2 control word, are received without any intervening RXERR control words. When in the Connecting state the Lane Initialisation state machine shall initiate the following actions:
  • When RxOnly is not asserted, enable the transmitter driver.
  • When TxOnly is not asserted, enable the receiver and CDR.
  • Send INIT2 control words.
  • Receive Lane layer control words, LLCW. When in the Connecting state and RxOnly is asserted the Lane Initialisation state machine should disable the transmitter driver.
    When in the Connecting state and TxOnly is asserted, the Lane Initialisation state machine should disable the receiver and CDR.
    When in the Connecting state the Lane Initialisation state machine may repeatedly send an INIT2 control word followed by up to 64 pseudo-random data words.
    The Lane Initialisation state machine shall leave the Connecting state on one of the following conditions, which are evaluated in the order given:
  • When LaneReset is asserted, move to the ClearLine state.
  • When NoSignal is detected at the receiver inputs and the TxOnly signal is not asserted, move to the ClearLine state.
  • When RxOnly is asserted, move to the Connected state.
  • When the FarEndActive condition is asserted, move to the Connected state.
  • When three INIT2 control words are received without any intervening RXERR control words, move to the Connected state.
  • When three INIT3 control words are received with the same initialisation parameters and without any intervening RXERR control words, move to the Connected state.
  • When the initialisation timeout timer expires, move to the ClearLine state.
  • When three consecutive LOST_SIGNAL or three consecutive STANDBY control words have been received, move to the ClearLine state.

Connected state

The Lane Initialisation state machine shall enter the Connected state on one of the following conditions:

  • From the Connecting state, when FarEndActive is asserted.
  • From the Connecting state, when RxOnly is asserted.
  • From the Connecting state, when three INIT2 control words are received without any intervening RXERR control words.
  • From the Connecting state, when three INIT3 control words are received with the same initialisation parameters and without intervening RXERR control words. When in the Connected state the Lane Initialisation state machine shall initiate the following actions:
  • When RxOnly is not asserted, enable the transmitter driver.
  • When TxOnly is not asserted, enable the receiver and CDR.
  • Send INIT3 control words with the initialisation parameters set in the most significant character, the Capability field, as follows:
    • Bit 0: the INIT3LinkResetFlag.
    • Bit 1: the INIT3LaneStart Flag.
    • Bit 2: the INIT3DataScrambled Flag.
    • Bit 3: the INIT3Multi-LaneCapable Flag.
    • Bit 4: the INIT3RoutingSwitch Flag.
    • Bits 5 to 7: reserved bits that are set to zero when transmitted and ignored when received.
  • Receive Lane layer control words, LLCW.
  • Store the initialisation parameters supplied by the INIT3 control word most significant character, the Capability field.
  • When three INIT3 control words are received with the same initialisation parameters and without any intervening RXERR control words, pass the INIT3 Capability field value to the Data Link or Multi-Lane layer and to the Management Information Base.
  • Clear the RXERR words counter to zero. When in the Connected state and RxOnly is asserted the Lane Initialisation state machine should disable the transmitter driver.
    When in the Connected state and TxOnly is asserted, the Lane Initialisation state machine should disable the receiver and CDR.
    The Lane Initialisation state machine shall leave the Connected state on one of the following conditions, which are evaluated in the order given:
  • When LaneReset is asserted, move to the ClearLine state.
  • When NoSignal is detected at the receiver inputs and the TxOnly signal is not asserted, move to the ClearLine state.
  • When RxOnly is asserted, move to the Active state.
  • When the FarEndActive condition is asserted and at least one INIT3 control word has been sent, move to the Active state.
  • When three INIT3 control words are received with the same initialisation parameters and without any intervening RXERR control words and at least three INIT3 control words have been sent, move to the Active state.
  • When the initialisation timeout timer expires, move to the ClearLine state.
  • When three consecutive LOST_SIGNAL or three consecutive STANDBY control words have been received, move to the ClearLine state.
  • When a Comma, K28.7, is received, move to the ClearLine state.

Requirement 5.5.2.10.e.8 reduces the error recovery time when INIT3 control words are lost for any reason. Since LOST_SIGNAL and STANDBY both start with a Comma, requirement 5.5.2.10.e.8 will preempt requirement 5.5.2.10.e.7. Requirement 5.5.2.10.e.7 is therefore strictly unnecessary but is retained for clarity, since LOST_SIGNAL and STANDBY are valid control words rather than an error condition.

Active state

The Lane Initialisation state machine shall enter the Active state on the following conditions:

  • From the Connected state, when FarEndActive is asserted and at least one INIT3 control word has been sent.
  • From the Connected state, when RxOnly is asserted.
  • From the Connected state, when three INIT3 control words with the same Capability field value have been received without intervening RXERR control words and at least three INIT3 control words have been sent.

The Lane Initialisation state machine enters the Active state when initialisation is complete.

When in the Active state the Lane Initialisation state machine shall initiate the following actions:

  • Stop the initialisation timeout timer.
  • When RxOnly is not asserted, enable the transmitter driver.
  • When TxOnly is not asserted, enable the receiver and CDR.
  • Enable transmission of data and control words from the Multi-Lane or Data Link layer.
  • Pass received data and control words up to the Multi-Lane or Data Link layer.
  • Increase the RXERR words counter by one every time an RXERR is received.
  • Decrease the RXERR words counter by one every time 15000 to 16384 more words have been received.
  • When a LOST_SIGNAL, STANDBY or INIT1 control word is received, pass an RXERR word up to the Multi-Lane or Data Link layer.
  • Filter out Lane control words, see Table 53, so that they are not passed up to the Multi-Lane or Data Link layer.

Lane control words are used by the Lane Initialisation state machine and nothing is passed up to the Multi-Lane layer or Data Link layer in their place.

When in the Active state and RxOnly is asserted the Lane Initialisation state machine should disable the transmitter driver.
When in the Active state and TxOnly is asserted, the Lane Initialisation state machine should disable the receiver and CDR
The Lane Initialisation state machine shall leave the Active state on one of the following conditions, which are evaluated in the order given:

  • When LaneReset is asserted, move to the ClearLine state.
  • When NoSignal is asserted indicating that there is a loss of signal at the receiver and TxOnly is not asserted, move to the LossOfSignal state.
  • When the RXERR words counter reaches 255 and TxOnly is not asserted, move to the LossOfSignal state.
  • When an INIT1 control word is received and RxOnly is not asserted, move to the LossOfSignal state.
  • When the LaneStart and AutoStart signals are both de-asserted, move to the PrepareStandby state.
  • When three consecutive LOST_SIGNAL or three consecutive STANDBY control words have been received, move to the ClearLine state.
  • When leaving this state, pass at least one RXERR word up to the Multi-Lane or Data Link layer.

If the RXERR words error counter reaches 255, the bit error rate in the lane is very high and the lane is reinitialised to try to recover correct operation.

PrepareStandby state

The Lane Initialisation state machine shall enter the PrepareStandby state on the following condition:

  • From the Active state, when LaneStart and AutoStart signals are both de-asserted. When in the PrepareStandby state the Lane Initialisation state machine shall initiate the following action:
  • When RxOnly is not asserted, enable the transmitter driver.
  • When TxOnly is not asserted, enable the receiver and CDR.
  • Send 32 STANDBY control words.
  • 1    32 STANDBY control words are sufficient to make sure that three STANDBY control words have passed through the receive pipeline and receive elastic buffer at the far-end of the lane, before the subsequent NoSignal at receiver, caused by the near-end of the lane entering the ClearLine state, is detected by the far-end receiver.
  • 2    When the near-end of a SpaceFibre lane enters the PrepareStandby state, the far-end enters the ClearLine state due to reception of three STANDBY control words and not via the LossOfSignal state due to detecting NoSignal.
    When in the PrepareStandby state and RxOnly is asserted the Lane Initialisation state machine should disable the transmitter driver.
    When in the PrepareStandby state and TxOnly is asserted, the Lane Initialisation state machine should disable the receiver and CDR.
    The Lane Initialisation state machine shall leave the PrepareStandby state on one of the following conditions, which are evaluated in the order given:
  • When LaneReset is asserted, move to the ClearLine state.
  • When 32 STANDBY control words have been sent, move to the ClearLine state.
  • When three consecutive LOST_SIGNAL or three consecutive STANDBY control words have been received, move to the ClearLine state.

LossOfSignal state

The Lane Initialisation state machine shall enter the LossOfSignal state on the following conditions:

  • From the Active state when an INIT1 is received and RxOnly is NOT asserted.
  • From the Active state when NoSignal at Receiver signal is asserted, indicating that there is no signal present on the receiver inputs, and TxOnly is NOT asserted.
  • From the Active state when the RXERR words counter overflows and TxOnly is NOT asserted.

A counter increases its value every time an RXERR word is received, and periodically decreases its value. This type of counter is known as a leaky-bucket counter. The overflow of this counter causes the exit condition from Active state and an indication of a persistent error.

When in the LossOfSignal state the Lane Initialisation state machine shall initiate the following action:

  • When RxOnly is not asserted, enable the transmitter driver.
  • When TxOnly is not asserted, enable the receiver and CDR.
  • Send 32 LOST_SIGNAL control words.

When the near-end of the SpaceFibre lane enters the LossOfSignal state and sends LOST_SIGNAL control words, the far-end of the link enters the Clearline state due to reception of three LOST_SIGNAL control words and not due to detecting No_Signal.

When in the LossOfSignal state and RxOnly is asserted the Lane Initialisation state machine should disable the transmitter driver.
When in the LossOfSignal state and TxOnly is asserted, the Lane Initialisation state machine should disable the receiver and CDR.

This requirement has been added for symmetry with the other states, but technically if it is in LossOfSignal the lane cannot be TxOnly, as it was receiving symbols.

The Lane Initialisation state machine shall leave the LossOfSignal state on one of the following conditions, which are evaluated in the order given:

  • When LaneReset is asserted, move to the ClearLine state.
  • When 32 LOST_SIGNAL control words have been sent, move to the ClearLine state.
  • When three consecutive LOST_SIGNAL or three consecutive STANDBY control words have been received, move to the ClearLine state.

Data signalling rate compensation

The transmitters at each end of a lane shall send data at the same nominal data signalling rate.
The maximum permitted difference in the data signalling rates, when each end of the lane is operating at nominally the same data signalling rate, shall be ± 0,01 %.

The data signalling rate of a transmitter at one end of a lane and a receiver at the other end of a lane can be different due to differences in the local clocks being used at each end of the lane. Since crystal oscillators are normally specified in parts per million, ppm, note that ± 0,01 % is equal to ±100 parts per million. Typical crystal oscillators are better than ±100 parts per million.

A receive elastic buffer shall be used to compensate for differences in the data signalling rate at each end of the lane.
SKIP control words shall be inserted every 5000 words in the transmit data stream, once the lane state machine has reached the Active state.
The SKIP control word shall be used to compensate for any slight difference in the data signalling rate between the two ends of the lane.

IDLE words

When there is no other data or control word to send, an IDLE word shall be sent.

It is essential not to have gaps in the data being sent because the CDR in the receiver has to maintain lock on the incoming data stream.

When received, IDLE control words shall be discarded when they are read out of the receive elastic buffer.

Parallel loopback

When a serial loopback is not provided, see clause 5.4.2.2, a parallel loopback facility shall be provided in the SpaceFibre port for test purposes.
When a serial loopback is provided, a parallel loopback facility may also be provided in the SpaceFibre port for test purposes.
When enabled, the near-end parallel loopback shall replace the words in the receive stream, after data rate adjustment, with the words from the transmit stream.
When enabled, the far-end parallel loopback shall replace the words in the transmit stream, with the words from the receive stream after data rate adjustment.

Symbol synchronisation

The boundary between symbols shall be determined by detecting the comma sequences.
The Positive Comma sequence shall be 0011111.
The Negative Comma sequence shall be 1100000.

At least all 7-bits of the bit comma sequence are used for symbol synchronisation.

Both positive and negative commas shall be detected and used for synchronisation.
Synchronisation may be performed on only positive commas or only negative commas when using legacy SerDes devices.
The 10-bit wide input stream shall be aligned or realigned to form a stream of correctly aligned symbols so that each 10-bit group contains one complete symbol.
The 10-bit wide input stream shall be realigned every time a comma sequence is detected in a different position to the position of the last comma detected.

Word synchronisation

A symbol word shall comprise four symbols.
The first symbol to be transmitted in a symbol word shall be the least significant symbol.
A comma shall only occur in the least significant symbol position of a symbol word.
Word synchronisation shall be performed whenever a comma sequence is received.
Word synchronisation shall be achieved by selecting symbols in consecutive groups of four so that the comma sequence appears in the least significant symbol position.
On word synchronisation, the first word shall comprise a comma control symbol in the least significant symbol position, together with the following three symbols.
Each subsequent group of four symbols shall form each of the following symbol words.
Word realignment shall occur when any of the following conditions occur:

  • The 10-bit wide data stream is realigned, see requirement 5.5.6g.
  • A comma occurs in any position other than the least significant symbol position of a word. When word realignment occurs, the current word being received shall be set to the RXERR control word.
    If a disparity error occurs, it shall be indicated to the receive synchronisation state machine and the current symbol set to Rx Error, K0.0.
    If an unrecognised symbol is received then a symbol error shall be indicated to the receive synchronisation state machine and the current symbol set to Rx Error, K0.0.
    If a word contains an Rx Error, K0.0, symbol indicating an error, that word together with the previous word shall be set to the RXERR control word.

An 8B/10B disparity error is detected in the next symbol that has disparity of ±2. All control words have at least one symbol with ±2 disparity with the exception of the EDF control word where the disparity depends on the specific values of the symbols following the EDF symbol in the EDF control word. It is therefore possible for the EDF control word to have zero disparity. The SpaceFibre protocol ensures that an EDF is always followed by a control word with at least one symbol with ±2 disparity. When an error is detected using disparity, both the word in which the error occurred and the previous word are changed to RXERR. This ensures that data frames containing an error are not passed to the upper layers without an error being flagged.

Receive synchronisation state machine

General

A receive synchronisation state machine shall be used to determine when incoming symbols and words are synchronised.

The state diagram for the receive synchronisation state machine is illustrated in Figure 530.

Image Figure 530: Receive synchronisation state machine

LostSync State

The LostSync state shall be entered on one of the following conditions:

  • LaneReset command.
  • From the CheckSync state, when word realignment occurs or when a total of more than four symbols are received that are invalid or contain a disparity error.
  • From the Ready state, when word realignment occurs. When in the LostSync state the Receive Synchronisation state machine shall initiate the following action:
  • Replace any received data and control words with RXERR control words. The Receive Synchronisation state machine shall leave the LostSync State on the following condition:
  • When a comma sequence is received, move to the CheckSync state.

CheckSync State

The CheckSync state shall be entered on one of the following conditions:

  • From the LostSync state, when a comma sequence is received.
  • From the Ready state, when a disparity error occurs or an invalid symbol is detected. When in the CheckSync state the Receive Synchronisation state machine shall initiate the following actions:
  • Receive symbols.
  • Count the number of words received that contain an invalid symbol or contain a disparity error. The Receive Synchronisation state machine shall leave the CheckSync State on one of the following conditions, which are evaluated in the order given:
  • When LaneReset is asserted, move to the LostSync state.
  • When word realignment occurs, move to the LostSync state.
  • When a total of more than four words are received that contain an invalid symbol or contain a disparity error, move to the LostSync state.
  • When all symbols within a word are valid, move to the Ready state.

Ready State

The Ready state shall be entered on the following condition:

  • From the CheckSync state, when all symbols within a word are valid. When in the Ready state the Receiver Synchronisation state machine shall initiate the following action:
  • Receive symbols. The Receiver Synchronisation state machine shall leave the Ready state on one of the following conditions, which are evaluated in the order given:
  • When LaneReset is asserted, move to the LostSync state.
  • When a disparity error occurs or an invalid symbol is received, move to the CheckSync state.
  • When word realignment occurs, move to the LostSync state.

Multi-Lane layer

Multi-Lane layer responsibilities

The Multi-Lane layer shall coordinate the operation of multiple lanes as a single SpaceFibre link, and, when possible, recover from lane failures.

From the perspective of the implementation and the layers of the OSI Model, the Multi-Lane layer is a sub-layer of the Data Link layer.

The Multi-Lane layer shall send and receive data words and Data Link layer control words over several lanes operating together as a single link.

The Multi-Lane layer allows several lanes to operate together to provide higher bandwidth than a single lane can provide.

The Multi-Lane layer shall receive data words and Data Link layer control words from the Data Link layer.
The Multi-Lane layer shall pass data words and Data Link layer control words received from the Lane layer to the Data Link layer.
The Multi-Lane layer shall pass data words and Data Link and Multi-Lane layer control words to the Lane layer.
The Multi-Lane layer shall receive data words and Data Link and Multi-Lane layer control words from the Lane layer.
The Multi-Lane layer shall inform the Lane layer when the lane is a transmit only lane, TxOnly.
The Multi-Lane layer shall inform the Lane layer when the lane is a receive only lane, RxOnly.
The Multi-Lane layer shall inform the Lane layer when the far-end of the lane is in the Active state, FarEndActive.

In a single lane link FarEndActive is de-asserted.

The Multi-Lane layer shall be able to assert LaneReset individually to one or more near-end lane interfaces.

The Multi-Lane layer is then able to perform a LaneReset on each lane in the Lane layer independently.

The Multi-Lane layer shall be informed by the Lane layer of the state of each lane.

See clause 5.6.9.

The Multi-Lane layer shall accept near-end capability control information from the Data Link.
The Multi-Lane layer shall report far-end capability information for all lanes, which is received in the INIT3 Capability field, to the Data Link layer.
The Multi-Lane layer shall pass near-end capability control information to the Lane layer.
The Multi-Lane layer shall receive far-end capability information, which is received in the INIT3 Capability field for each lane, from the Lane layer.
The Multi-Lane layer shall have a management parameter which determines which lanes are allowed to send, TxEn, and receive, RxEn.
The Multi-Lane layer shall provide the following status information to the Management Information Base:

  • Data-sending lanes.
  • Data-receiving lanes.
  • Alignment state.

The interfaces to and from the Multi-Lane layer are illustrated in Figure 531.

Image Figure 531: Interfaces to Multi-Lane layer

A multi-lane SpaceFibre link shall contain two or more lanes that operate together to provide greater bandwidth than a single lane can provide.
Each lane in a Multi-Lane layer shall have a lane number, starting at 0 and incrementing for each lane.

So if there are four lanes they are numbered 0, 1, 2 and 3.

The maximum number of lanes shall be 16.
Lane number L at one end of the link shall be connected to lane number L at the other end of the link.
A multi-lane interface with a given number of lanes shall be able to be connected to a multi-lane interface with a different number of lanes, provided that lanes of the same number are connected together.

A multi-lane link with different number of lanes at each end of the link is illustrated in Figure 532.

All lanes in a multi-lane link shall operate at the same data signalling rate from the same clock or reference clock.
Image Figure 532: Multi-Lane link with different number of lanes at each end

Multi-Lane bypass

Multi-Lane operation shall be able to be switched off or bypassed, so that the SpaceFibre link operates over one lane only.

Multi-Lane distribution

Multi-Lane rows

Data and control words to be sent over a multi-lane link shall be distributed across the data-sending lanes of the link.
The set of data and control words passed, one to each data-sending lane, shall together form a row of words across the data-sending lanes.

Multi-Lane distribution is illustrated in Figure 533. There are three active data-sending lanes in this example and one which is not active. The word numbering is for data words from data frames. Control words from the Lane layer are replicated across all lanes.

Image Figure 533: Words forming a row across a multi-lane link

A row shall comprise a set of L words where L is the number of data-sending lanes.
When sending data link control words, each data link control word shall be replicated and sent over all data-sending lanes forming a row filled with the same control word, with the exception of the EDF control words which have different CRC values.

  • 1    The data link control words can then be generated and processed at a rate that is independent of the number of lanes being used. This lower, fixed rate simplifies the implementation.
  • 2    The CRC16 field of an EDF is different for each lane according to the data sent in that lane.
    When receiving the replicated Data Link control words sent over all data-sending lanes forming a row, any one of them shall be selected and passed to the Data Link layer.

Laning of data frames

A sequence of data words including EOPs, EEPs and Fills from a data frame shall be spread across the sending row, so that the first data word goes over the lowest number data-sending lane, the next over the following lowest number data-sending lane, up to the highest number data-sending lane.

This is illustrated in Figure 534. The lowest number data-sending lane transfers the first data word of the row, the next data-sending lane the next data word of the row, and so on to the highest number data-sending lane which transfers the last data word of the row.

Image Figure 534: Spreading data across a multi-lane link

If the size of a data frame is not a multiple of the number of data-sending lanes, PAD control words shall be used for padding any unused words in the sending row at the end of the data frame, prior to the EDF, with the number of PAD control words being less than the number of data-sending lanes.

An example is shown in Figure 535.

Image Figure 535: PAD control words in a multi-lane link

Data scrambling shall be applied over each data-sending lane independently.
The 16-bit CRC shall be computed over each data-sending lane independently.

  • 1    This simplifies the computation of the 16-bit CRC of a data frame for a multi-lane link. It does mean that the 16-bit CRC does not detect if data words are read in a different lane order than they were sent. This is not an issue because the alignment state machine is defined to be robust against multiple receive errors and any number of lanes being added and removed at any time.
  • 2    The independent computation per lane keeps the same burst error detection capabilities of the CRC16 used in a single lane. If CRC16 is computed across the row, detection of two consecutive bitflip/symbol errors in one lane is not guaranteed.
    EOP, EEP and Fill control characters shall be included in the 16-bit CRC computed for each column of data in the data frame, with only the data field of the K-code being included and the K-flag being ignored.

The column of data being the data in a particular lane.

PAD words shall not be included in the 16-bit CRC computed for each column of data in the data frame.

A PAD is not part of the original data frame generated in the Data Link layer so it is not included in the 16 bit CRC, which is defined in the Data Link layer.

At the end of a data frame, when the EDF control word is placed in each Active lane, the 16-bit CRC computed independently for each data-sending lane shall be placed in the CRC_LS and CRC_MS fields of the EDF control words.
The generation and checking of the 16-bit CRC may be done in the Lane or Multi-Lane layer.
The maximum number of words in a data frame shall be N×64, where N is an integer less than or equal to the "maximum number of data-sending lanes" parameter.

This increases the data frame size when using multi-laning so the protocol overhead does not increase due to the replication of control words.

Laning of broadcast messages

A data word from a broadcast frame shall be replicated and sent over all data-sending lanes in the same sending row.

This means that broadcast messages in a multi-lane system occupy L times the bandwidth that they occupy in a single lane configuration, where L is the number of data-sending lanes.

Laning of idle frames

Each PRBS data word in an idle frame shall be replicated and sent over all data-sending lanes in the same sending row.

Laning of Lane layer control words

The Multi-Lane layer shall indicate to all lanes simultaneously when a SKIP control word is sent.

The SKIP control words are then sent over all lanes simultaneously, i.e. all active lanes contain a SKIP control word.

IDLE control words shall not be sent from any of the active lanes.
The Multi-Lane layer shall always pass words to the active lanes, so that there is no need for the Lane layer to insert an IDLE control word.
An implementation may send IDLE control words from active lanes provided they are sent over all active lanes simultaneously.

A complete row of IDLE control words is then sent.

Multi-Lane concentration

A set of alignment FIFOs, one for each lane, shall be responsible for ensuring that data and control words received by each lane are correctly aligned into rows before they are read.

Alignment is necessary in case one lane has a slightly longer delay than the other lanes in a multi-lane link. The word it is transferring can be delayed and end up in the wrong row.

When a data or control word arrives over a lane, it shall be placed in its alignment FIFO.
When receiving data words from a data frame, the lowest number data-receiving lane shall receive the first data word of the row, the next data-receiving lane the next data word of the row, and so on to the highest number data-receiving lane which receives the last data word of the row.
When information in the alignment FIFOs is aligned, data or control words shall be read out in parallel, a row at a time, from the alignment FIFOs of all the data-receiving lanes.
Only one Data Link layer control word from a receiving row of identical Data Link layer control words shall be passed to the Data Link layer.
When a receiving row is invalid or contains an RXERR, the entire row shall be discarded and a single RXERR control word passed to the Data Link layer.

Lane Alignment

General

Lane Alignment shall ensure that each of the active lanes of a link are correctly aligned so that when information is read from the lanes the words of a complete row are read together.

Slight differences in delay through the various lanes of a link can result in one lane having its word in a row available slightly earlier or later than words in the same row from other lanes. This can result in the wrong data being read for a row. Row alignment ensures that the delay differences are compensated and that all the words of a row are lined up ready to be read together.

After Alignment the first row read shall contain the first set of L words received, the next row the next set of L words, and so on.

Row alignment is illustrated in Figure 536.

Valid and invalid receiving rows

A valid receiving row shall fulfil one of the following conditions:

  • Contain only data words or a mix of data words and PAD control words.
  • Contain only control words without any PAD control words.
  • 1    See clause 5.6.4.2 for details of Pads.
  • 2    It is possible that some invalid rows, for example "SDF SDF EDF", is considered a valid row even if it is not legal. However, in this case, detecting this sequence as invalid row is not necessary because the error is detected later in the Data Link layer. Control words are only received from one of the lanes. In this example, if first lane or third lane is used, everything is fine and no retry is needed. If the second lane is used, the word identification state machine detects the error. Therefore, it is not necessary to check that control words in all lanes are equivalent, which requires increasing logic when the number of lanes is increased.
    An invalid receiving row shall fulfil both of the following condition:
  • Contain one or more data words or PAD control words.
  • Contain one or more control words other than a PAD.

EOP, EEP and Fill are control characters that can appear in a data frame. They are not control words.

ACTIVE and ALIGN control words

ACTIVE control words shall be sent by each end of a multi-lane link to signal to the other end of the link which lanes are active lanes.
An ACTIVE control word shall be valid when two consecutive ACTIVE control words are received with the same value.
ALIGN control words shall be used to align a row across the active lanes.
When the link needs to align its lanes it shall repeatedly send over all active lanes seven ACTIVE control words followed by one ALIGN control word, until all the lanes in the link are aligned.

See clause 5.6.7.

A received ALIGN control word shall be correct when it has an iLANES field which is the bitwise inverse of its LANES field.
An incorrectly received ALIGN control word shall be ignored, not used for word alignment and no error flagged.

The incorrectly received ALIGN control word is in fact treated the same as any other word, other than correctly received ALIGN or ACTIVE words.

A correctly received ALIGN control word shall be valid when all of the following conditions are fulfilled:

  • The #Lanes field of the ALIGN control word is equal to the number of active lanes with receive enable (RxEn asserted) at the end of the link receiving the ALIGN control word.
  • The lane number contained in the Lane Number field of the ALIGN control word is the same as the lane number of the lane in which the ALIGN control word is received. A correctly received ALIGN control word shall be invalid when any of the following conditions are fulfilled:
  • The #Lanes field of the ALIGN control word is NOT equal to the number of active lanes with receive enable (RxEn asserted) at the end of the link receiving the ALIGN control word.
  • The lane number contained in the Lane Number field of the ALIGN control word is NOT the same as the lane number of the lane in which the ALIGN control word is received. When a receiving row is not full of ACTIVE words but contains one or more ACTIVE words, that receiving row shall be discarded and an RXERR control word passed to the Data Link layer

Alignment FIFO

One alignment FIFO shall be provided for each lane.
Each alignment FIFO shall be able to store three or four words.

A row with ALIGNs is sent one in 8 words. Limiting the size of the alignment FIFO to less than 8 words avoids mixing the reception of ALIGNs sent in different rows. Typical skew is 1 or 2 words maximum.

When a data or control word arrives from the Lane layer, it shall be placed in the alignment FIFO for that lane.
When the next word to be read out of the alignment FIFO is a valid ALIGN control word, it shall not be read from the alignment FIFO, unless the next word to be read from all the data-receiving lanes is a valid ALIGN control word.
When the next word to be read is a data word or a control word other than a valid ALIGN control word, that word shall be read from the alignment FIFO.
When the next word to be read from the alignment FIFO of every data-receiving lane is a valid ALIGN control word, the row is fully aligned and all the ALIGN control words shall be read out of the alignment FIFO simultaneously.
When the row is fully aligned and the ALIGN control words have been read, each following row contains aligned data and control words and each row shall be read, until a misalignment condition occurs and the Alignment state machine enters the Not Ready state.

  • 1    See clause 5.6.7 for the specification of the Alignment state machine.
  • 2    The Alignment of a row is illustrated in Figure 536.
  • 3    The misalignment condition is specified in requirement 5.6.7.1c.
    Image Figure 536: Row alignment across a multi-lane link

If one alignment FIFO is full when a word is written to it, all alignment FIFOs shall be flushed.

This can occur when one ALIGN control was lost and replaced by an RXERR control word.

When a lane enters the Active state, the alignment FIFO for that lane shall be flushed.

This is to ensure that the alignment FIFO does not contain words from the past, when the lane was previously receiving, as it starts the alignment process.

Alignment state diagram

General

The alignment state machine shall be responsible for ensuring that the row of data from all the active lanes is aligned before any word is passed to or from the Data Link layer.

The state diagram for the Alignment state machine is illustrated in Figure 537.

Image Figure 537: Alignment state machine

The Aligned condition shall arise when all of the following conditions occur:

  • All lanes are aligned.
  • The far-end lanes in the active state are the same as the near-end lanes in the active state.

Lane alignment is specified in requirement 5.6.6.4f.

The Misaligned condition shall arise when one or more of the following conditions occur:

  • The near-end lanes in the Active state have changed.
  • The far-end lanes in the Active state have changed.
  • An alignment FIFO overflows.
  • A correctly received, invalid ALIGN control word is received.
  • An invalid receiving row is received.
  • An RXERR occurs within 4 µs of entering the Near-End Ready state.

When the Near-End Ready state is entered it is important not to lose words, which are replaced by RXERR control words until the worst case round trip delay elapses, 4 µs with a 100 meter cable. After the round-trip delay time, the near-end receives words from the far-end that were generated after the far-end received the indication that the near-end is ready. Only then can it be allowed to receive RXERRs that possibly replace ACTIVE control words sent. Before that time, it is important to receive any ACTIVE control word sent by the far-end or get an RXERR and assume the worst case and move to Not Ready.

Not Ready state

The Alignment state machine shall enter the Not Ready state on one of the following conditions:

  • Link Reset.
  • From Near-End Ready state, when the Misaligned condition occurs.
  • From the Both Ends Ready state, when the Misaligned condition occurs. When in the Not Ready state the Alignment state machine shall perform the following actions:
  • Repeatedly send seven ACTIVE control words on all active lanes followed by one ALIGN control word on those lanes.
  • Pass RXERR words to the Data Link layer.

No data words are sent in the Not Ready state.

The Alignment state machine shall leave the Not Ready state and move to the Near-End Ready state when the Aligned condition is fulfilled.

Near-End Ready state

The Alignment state machine shall enter the Near-End Ready state on one of the following conditions:

  • From the Not Ready state, when the Aligned condition is fulfilled.
  • From the Both Ends Ready state, when an ACTIVE control word is received. When in the Near-End Ready state the Alignment state machine shall perform the following actions:
  • Receive data words and Data Link layer control words from the Data Link layer and pass them to the active lanes for sending.
  • Receive data words and Data Link layer control words from the active lanes and pass them up to the Data Link layer.
  • Repeatedly send one ALIGN control word every seven data or control words on each near-end, active lane. The Alignment state machine shall leave the Near-End Ready state on one of the following conditions, which are evaluated in the order given:
  • When Link Reset is asserted, move to the Not Ready state.
  • When the Misaligned condition occurs, move to the Not Ready state.
  • When a data word is received in one or more lanes and the active lanes are aligned, NOT Misaligned, move to the Both-Ends Ready state.

Both-Ends Ready state

The Alignment state machine shall enter the Both-Ends Ready state from the Near-End Ready state, when all of the following conditions occur:

  • A data word is received in one or more lanes.
  • The active lanes are NOT Misaligned. When in the Both-Ends Ready state the Alignment state machine shall initiate the following actions:
  • Receive data words and Data Link layer control words from the Data Link layer and pass them to the active lanes for sending.
  • Receive data words and Data Link layer control words from the active lanes and pass them up to the Data Link layer.

ACTIVE or ALIGN control words are not sent in the Both-Ends Ready state.

The Alignment state machine shall leave the Both-Ends Ready state on one of the following conditions, which are evaluated in the order given:

  • When Link Reset is asserted, move to the Not Ready state.
  • When the Misaligned condition occurs, move to the Not Ready state.
  • When an ACTIVE control word is received, move to the Near-End Ready state.

A link shall be able to have some lanes that are unidirectional, sending information in one direction only, provided that at least one lane is able to send information in both directions.

So that unidirectional lanes can be correctly initialised, each link containing one or more unidirectional lanes has at least one lane which is a bi-directional lane.

One end of a unidirectional link shall be transmit only and the other end of that link receive only.

A multi-lane link incorporating some unidirectional lanes is illustrated in Figure 538.

Image Figure 538: Multi-Lane link incorporating some unidirectional lanes

Each end of a lane shall have a send enable TxEn and receive enable RxEn management parameter with the following function:

  • When TxEn = 1 and RxEn = 1 the end of the lane operates as a bi-directional lane.
  • When TxEn = 1 and RxEn = 0, the end of the lane operates as a transmit only, unidirectional lane, sending from the end with the TxEn parameter set to 1.
  • When TxEn = 0 and RxEn = 1, the end of the lane operates as a receive only, unidirectional lane, receiving data at the end with the RxEn parameter set to 1.
  • When TxEn = 0 and RxEn = 0, the end of the lane is disabled and neither sends nor receives information.

Initialisation of unidirectional lanes

General

The ACTIVE control word shall be used to indicate to the far-end of a link, the lanes at the near-end which are in the Active state, with bit L of the ACT field in the ACTIVE control word indicating the state of lane L as follows:

  • Bit L = 0, indicates that lane L is not in the Active state.
  • Bit L = 1, indicates that lane L is in the Active state. The ACTIVE control word shall be sent by all bi-directional and transmit only lanes.

The ACTIVE control word is also used to indicate when an RxOnly lane has detected an error and exited the Active state so that the other end of the lane, that is a TxOnly lane, is notified and reset.

The Multi-Lane layer shall pass the following information to each lane in the Lane layer for use in initialising unidirectional lanes:

  • TxOnly, which instructs the lane to operate as a transmit only lane.
  • RxOnly, which instructs the lane to operate as a receive only lane.
  • FarEndActive, which informs the lane initialisation state machine of a transmit only lane that the initialisation state machine at the far-end of the link has locked to the initialisation information and has reached the Active state.

FarEndActive

When a valid ACTIVE control word is received with bit L = 1, the FarEndActive corresponding to lane L shall be set to 1.
When a valid ACTIVE control word is received with bit L = 0, the FarEndActive corresponding to lane L shall be cleared to 0.
When the lane initialisation state machine for lane L is in the ClearLine state, the FarEndActive corresponding to lane L shall be cleared to 0.

TxOnly

TxOnly for lane L, TxOnly(L), shall be asserted when either of the following conditions occur:

  • LaneState(L) is not ClearLine AND TxEn(L) = 1 AND RxEn(L) = 0.
  • LaneState(L) = Started AND FarEndActive(L). TxOnly for lane L, TxOnly(L), shall be de-asserted when any of the following conditions occur:
  • TxEn(L) = 0.
  • RxEn(L) = 1.
  • LaneState(L) = ClearLine.

RxOnly

RxOnly for lane L, RxOnly(L), shall be asserted when all of the following conditions occur:

  • At least one bi-directional lane in the asymmetric, multi-lane link is in the Active state.
  • TxEn(L) = 0 AND RxEn(L) = 1. RxOnly for lane L, RxOnly(L), shall be de-asserted when any of the following conditions occur:
  • TxEn(L) = 1.
  • RxEn(L) = 0.

LaneReset

The reset for lane L, LaneReset(L), shall be asserted when any of the following conditions occur:

  • LinkReset is asserted.
  • LaneState(L) = Active AND TxOnly(L) is asserted AND FarEndActive(L) is not asserted.
  • LaneState(L) = Active AND TxOnly(L) is asserted AND there is not a bidirectional lane in active state. The reset for lane L, LaneReset(L), shall be de-asserted when the following condition occurs:
  • LaneState(L) = ClearLine AND LinkReset is de-asserted.

Hot redundant lanes

To support rapid switching to a redundant lane in the event of a lane failure, it shall be permitted to include one or more hot redundant lanes in a multi-lane link.

The number of hot redundant lanes can be different on each side of the link. This is so that hot redundancy can be provided in asymmetric links.

A hot redundant lane shall initialise in the same way as a normal lane.
Once initialised a hot redundant lane shall send Lane layer and Multi-Lane layer control words, and not send any Data Link layer word.
If the number of active transmitting lanes is less than or equal to the value of the “maximum number of data-sending lanes” configuration parameter, all active transmitting lanes shall be data-sending lanes.
If the number of active transmitting lanes is greater than the value of the “maximum number of data-sending lanes” configuration parameter, the active transmitting lanes shall be configured as follows:

  • The active transmitting lanes with the lowest lane numbers are data-sending lanes, where the number of data-sending lanes is the maximum specified in the “maximum number of data-sending lanes” configuration parameter.
  • The other active transmitting lanes, with higher lane numbers, are hot redundant lanes. The Data Link layer shall only pass information to data-sending lanes.
  • 1    A hot redundant lane is an active lane that is not a data-sending lane.
  • 2    Data, Broadcast and Idle frames are not sent over the hot redundant lane, to simplify the logic needed for mapping the stream of data from the Data Link layer to the several lanes.
    A hot redundant lane shall send a PRBS sequence with the polynomial and initial seed value specified in requirements 5.7.6.2.3b, 5.7.6.2.3c, 5.7.6.2.3d, unless it has Lane layer or Multi-Lane layer control words to send.

The PRBS minimises EM emissions.

Hot redundant lanes shall have higher lane numbers than active lanes that are not hot redundant.
When an ALIGN control word is sent by a hot redundant active lane, its fields LANES and iLANES shall be both set to zero.

This indicates that the lane is a hot redundant lane.

When an ALIGN control word is received by an active lane, that lane shall be a data-receiving lane, unless the LANES and iLANES fields of the ALIGN control word are both zero, in which case the lane is NOT a data-receiving lane.

Only lanes that are data-receiving lanes are permitted or expected to receive Data Link layer words. If a lane is not a data-receiving lane it means that the far-end of the lane is a hot redundant lane.

A lane that is NOT a data-receiving lane shall only act on the Lane layer and Multi-Lane layer control words it receives, and any other received word is discarded.

If the far-end of the lane is an active transmitting lane, it is a hot redundant lane. In this case, the PRBS words received are discarded.

When a data-sending lane fails and is disconnected, the Multi-Lane layer shall automatically promote the hot redundant lane with the lowest lane number to a data-sending lane.

  • 1    This is much faster than activating a cold redundant lane which requires time for the lane to initialise.
  • 2    When a data-sending lane fails, a new alignment occurs and the new ALIGN control words indicate to the far-end of the link which lanes are data-receiving lanes and are therefore expected to receive Data Link layer words.

The Data Link layer shall manage the flow of information over the link, send and receive N-Chars and Fills, send and receive broadcast messages, provide quality of service, and, when possible, recover from errors that occur on the link.
The Data Link layer shall receive N-Chars and Fills and Broadcast Messages from the Network layer.
The Data Link layer shall pass N-Chars and Fills and Broadcast Messages to the Network layer.
The Data Link layer shall receive information identifying the current time-slot from the Network layer.
The Data Link layer shall pass data and control words to the Multi-Lane or Lane layer.
The Data Link layer shall receive data and control words from the Multi-Lane or Lane layer.
The Data Link layer shall control the Multi-Lane or Lane layer using the following signals:

  • Link Reset, for the Multi-Lane layer.
  • LaneReset, for the Lane layer. The Data Link layer shall pass near-end capability control information to the Multi-Lane or Lane layer.
    The Data Link layer shall receive far-end capability information, which is received in the INIT3 Capability field for each lane, from the Multi-Lane or Lane layer.
    The Data Link layer shall be controlled by the following management parameters from the Management Information Base:
  • QoS parameters for each virtual channel.
  • Normalised Expected Broadcast Bandwidth parameter.
  • DataScrambled.
  • Link Reset.
  • Interface Reset.

Reset of a link can be commanded via the Management Information Base. The link reset can also be automatically executed when the other end indicates that it has been link reset.

The Data Link layer shall provide the following status information to the Management Information Base:

  • Virtual channel status for each virtual channel.
  • Error Information.
  • FarEndLinkReset.

The interfaces to and from the Data Link layer are illustrated in Figure 539 and Figure 540.

Image Figure 539: Interfaces to the Data Link layer for a single lane link

Image Figure 540: Interfaces to the Data Link layer for a multi-lane link

Virtual channels

General

The network layer interface to the SpaceFibre port shall comprise one or more output virtual channel buffers and one or more input virtual channel buffers.

Normally, there is the same number of output and input virtual channel buffers.

A SpaceFibre port shall have a maximum of 32 virtual channels.
Each virtual channel shall have a unique number in the range 0 to 31.
Virtual channel numbers 32 to 255 shall be reserved.
Virtual channels in a SpaceFibre port shall be numbered consecutively starting from zero.
A particular virtual channel shall be identified by its virtual channel number.
Each virtual channel should have an output virtual channel buffer and an input virtual channel buffer.

Output virtual channel buffer

An output virtual channel buffer should be large enough to hold at least 256 SpaceFibre N-Chars or Fills.

This corresponds to one full SpaceFibre data frame when using a single-lane link. To support high data rates or long cable lengths for a particular virtual channel, the size of the output virtual channel buffer is made larger. Normally, the buffer size is sufficient for at least 512 SpaceFibre N-Chars and Fills.

To send a SpaceFibre packet over a particular virtual channel, the Data Link layer shall accept the N-Chars and Fills forming the SpaceFibre packet from the Network layer, placing them into the virtual channel buffer, starting with the leading N-Chars or Fills of the SpaceFibre packet.
If the output virtual channel buffer becomes full, the Data Link layer shall not accept more N-Chars or Fills from the Network layer for that virtual channel, until there is more room in the output virtual channel buffer.

SpaceFibre packets can be any length. Packets greater than the size of the output virtual channel buffer cannot fit into the buffer and are written into the buffer when space is made available as data is read out and sent over the SpaceFibre link.

As soon as one SpaceFibre packet has been written into the output virtual channel buffer, the next SpaceFibre packet to be sent over that virtual channel shall start to be written to that output virtual channel buffer, provided that there is room in the output virtual channel buffer for at least one more N-Char or Fill.

This means that it is possible to have many small packets waiting for transmission in the output virtual channel buffer.

SpaceFibre packets shall be sent over a virtual channel in the order in which they are written into the output virtual channel buffer for that virtual channel.
N-Chars and Fills written into an output virtual channel buffer at one end of a SpaceFibre link shall be transferred via the SpaceFibre link to the input virtual channel buffer at the other end of the SpaceFibre link with the same virtual channel number.
When Link Reset is asserted, the following actions shall take place:

  • All output virtual channel buffers are flushed.
  • For each output virtual channel buffer, if the last character written by the user application was not an EOP, EEP or Fill, all new data characters are discarded up to and including the next EOP or EEP.

This is similar to SpaceWire error handling, which spills the current packet being transmitted when a disconnection error occurs. This ensures that the receiver does not get an incomplete packet with an invalid header.

A continuous mode of operation should be included which is activated individually for each virtual channel by a configuration parameter, Continuous Mode (VC).
When the virtual channel of the output virtual channel buffer is configured to be in continuous mode and either the buffer is going to become full, or there is no lane in the Active state and the buffer is not empty, the following actions shall take place:

  • The output virtual channel buffer is flushed.
  • An EEP is placed in the output virtual channel buffer.
  • If the last character written by the user application was not an EOP, EEP or Fill, all new data characters are discarded up to and including the next EOP or EEP.
  • 1    A virtual channel in continuous mode is always able to accept N-Chars and Fills from the Network layer and prevents packets from being stuck due to a lane failure, a persistent lack of space at the destination or an unexpected low bandwidth utilisation.
  • 2    Loss of data could occur when a virtual channel is configured in continuous mode. In this case, newer data is considered more important than older data.

Input virtual channel buffers

When segments of SpaceFibre packets are received, they shall be placed in the input virtual channel buffer for the virtual channel that they were sent over.

SpaceFibre N-Chars appear in an input virtual channel buffer in the same order in which they were written into the corresponding output virtual channel buffer at the other end of the link.

An input virtual channel buffer shall be large enough to hold at least 256 SpaceFibre N-Chars or Fills.

This value is implementation dependent. To support high data rates or long cable lengths for a particular virtual channel, the size of the input virtual channel buffer is made larger. Normally, the buffer size is sufficient for at least 1024 SpaceFibre N-Chars and Fills.

When there are N-Chars available in an input virtual channel buffer, the Data Link layer shall inform the Network layer that there is data available to read from that input virtual channel buffer.
When Link Reset is asserted, the following actions shall take place:

  • All input virtual channel buffers are flushed.
  • If the last character read from an input virtual channel buffer was not an EOP, EEP or Fill character, an EEP is the next character read from the input virtual channel buffer.

This is equivalent to SpaceWire error handling, which uses the EEP to indicate at the receiver side that the link was disconnected and that the last packet provided was incomplete and in error.

Flow control

Output virtual channel flow control

Each output virtual channel buffer shall keep track of the space available in the corresponding input virtual channel at the far-end using an FCT credit counter, which indicates how much more data it is permitted to send.
An output virtual channel buffer shall indicate to the medium access controller that it has a data segment ready to send when both of the following conditions are fulfilled:

  • The FCT credit counter is greater than zero.
  • The output virtual channel buffer contains N×64 data words or it contains an EOP or EEP, or it is full, where N×64 is the maximum number of data words allowed in a data frame for that virtual channel and N is an integer less than or equal to the "maximum number of data-sending lanes" parameter.

See clause 5.3.8.2 for further information on the data frame.

When a host is able to provide words continuously at the full transmit rate with no gaps, the host may inform an output virtual channel buffer of this condition and the output virtual channel buffer then indicates to the medium access controller that it has frames ready to send.

This allows the latency to be reduced when a continuous stream of packets or a large packet is sent.

When informed that it is now permitted to send another data segment over the SpaceFibre link, an output virtual channel buffer shall pass up to N×64 data words to the medium access controller for sending over the SpaceFibre link, where N is an integer less than or equal to the "maximum number of data-sending lanes" parameter.

If the port between the SpaceFibre interface and the host system is larger than 32 data bits, more Fills can be needed for filling to maintain packet cargo word alignment.

On LinkReset, the FCT credit counter shall be set to zero.
On LaneReset, the FCT credit counter shall not be modified.
When an FCT is received for a particular virtual channel, M×64 shall be added to the FCT credit counter for that virtual channel, where M is the value of the Multiplier field in the FCT plus 1.

The FCT indicates that the virtual channel buffer at the far-end of the link is able to accept another M×64 data words, see clause 5.3.5.2.

When a data segment is sent by a particular virtual channel to the medium access controller, the number of data words sent shall be subtracted from the FCT credit counter.
If the FCT credit counter overflows, the FCT credit counter shall remain unchanged, saturated to its maximum value, and the error reported in a status register.
The size of the FCT credit counter shall be at least 1×64×M, corresponding to one FCT.
The size of the FCT credit counter should be at least 4×64×M, corresponding to four FCTs.

At 2,5 Gbit/s data signalling rate a 4×64×M buffer allows the maximum data rate to be achieved over 100 m with that virtual channel. At 6,25 Gbit/s six FCTs are needed.

Input virtual channel flow control

When a data segment is received, the data words it contains shall be placed in the appropriate input virtual channel buffer.
An input virtual channel buffer shall request an FCT to be sent after LinkReset for each M×64 data words of space in the input virtual channel buffer, where M is the value of the Multiplier field in the FCT plus 1.

After link reset this can result in several FCTs being sent for a virtual channel, if its input buffer can hold more than M×64 data words, see clause 5.3.5.2.

An input virtual channel buffer shall request an FCT to be sent when the network layer reads M×64 data words from the input virtual channel buffer, where M is the value of the Multiplier field in the FCT plus 1.

  • 1    These M×64 data words can be read over a period of time, i.e. not all at the same time.
  • 2    If a frame contains an EOP or EEP, it is possible that as well as N-Chars it contains some Fills which are used to pad out the number of N-Chars to a multiple of four, i.e. complete data word. At the link level these Fills are treated in the same way as N-Chars and are transferred across the link and placed in the input virtual channel buffer at the far-end of the link.
  • 3    An FCT is effectively exchanged for M×64 data words, where M is the value of the Multiplier field in the FCT plus 1, see clause 5.3.5.2.
  • 4    When there are more than 8 lanes in a multi-lane link, two FCTs are sent because the FCT multiplier, see 5.3.4.2e, has a maximum value of 8. This means the protocol overhead increases slightly when there are more than 8 lanes in a link.
    When FCTs are being requested to be sent simultaneously for several different virtual channel buffers, they shall be arbitrated fairly.
    If an input virtual channel buffer overflows, the SpaceFibre link shall be reset and an error reported.

An input virtual channel buffer should never overflow. This condition indicates a fatal error for which the only option is to reset the link.

Medium access controller

Medium access control

A medium access controller shall determine which virtual channel is allowed to send the next data segment.
Only output virtual channel buffers indicating that they have data ready to form a data segment, shall be permitted to compete for sending the next data segment.
Only virtual channels whose FCT credit counter indicates that its input virtual channel buffer at the far-end of the SpaceFibre link has room to accept the data words to be sent in the next data segment shall be permitted to compete for sending the next data segment.
Each output virtual channel buffer, with data words ready to send in its output virtual channel buffer and space available in its input virtual channel buffer at the far-end of the SpaceFibre link, a ready virtual channel, shall compete for sending the next data segment, if it is allowed to do so in the current time-slot.

Clause 5.7.4.3 provides details of time-slots and permission to send in a time-slot.

Quality of service

Each virtual channel shall support the following qualities of service: priority, bandwidth reservation and scheduled.
When hardware resources are extremely limited and there are no more than two virtual channels in a link, bandwidth reservation or scheduled QoS may be not supported.

This limits the usefulness and interoperability of the device and means that babbling node protection is not provided.

The quality of service parameters of each virtual channel shall be able to be set individually so that different qualities of service can be applied to different virtual channels.

Scheduled QoS

Time shall be split into 64 time-slots of equal duration specified at the system level.

Typical time-slot duration is in the range 100 μs to 16 ms and is application dependent. The number of time-slots, 64, is backwards compatible with SpaceWire time-codes.

The network layer shall provide an indication of when one time-slot finishes and the next one starts, together with the number of that time-slot.

In this way, the network layer is able to synchronise the scheduled QoS in each routing switch or node.

The schedule shall indicate in which time-slots a particular virtual channel is permitted to send data frames.

For each virtual channel there is a list of time-slots in which it is allowed to send data.

Several virtual channels shall be able to be scheduled to send data in the same time-slot.
If two or more virtual channels are scheduled to send data in the same time-slot, the medium access controller shall send data from the virtual channel with the highest precedence

See clause 5.7.4.4 for information on precedence.

When a time-slot starts, for which a specific virtual channel is scheduled to send data, has data ready to send in its output virtual channel buffer and has space in its input virtual channel buffer at the far-end of the SpaceFibre link, it shall compete with other virtual channels for sending data frames over the link based on its precedence.
A virtual channel that is not scheduled in the current time-slot shall not be allowed to compete for sending data over the link.
At the end of the time-slot, any virtual channel sending data segments shall cease sending them after the current data segment has been sent, unless that particular virtual channel buffer is also scheduled to send data in the next time-slot.

The scheduling of traffic from virtual channels over the SpaceFibre link has to leave room for any data segment left to be sent over the link from the previous time-slot, i.e. started being sent but not finished before the end of the time-slot.

When a SpaceFibre network is not needed to use the scheduling quality of service, the schedule for each virtual channel shall be set to use all time-slots.

Precedence

A virtual channel shall compete with other virtual channels for sending segments over the link, based on the current precedence of the virtual channel and its schedule.
The medium access controller shall use the precedence of each virtual channel to determine which ready virtual channel is permitted to send a data segment.
The precedence of the virtual channels shall be compared when the last word of the previous data segment is being read from the output virtual channel buffer by the medium access controller.
The virtual channel buffer that is ready and which has the highest precedence shall be permitted to send the next data segment.
The precedence of a virtual channel shall be determined by its quality of service parameters and its bandwidth credit.
The precedence of a virtual channel shall be calculated as the sum of the priority precedence plus the current value of bandwidth credit for that virtual channel.

  • 1    Precedence = Priority Precedence + Bandwidth Credit
  • 2    The priority precedence for a virtual channel is derived directly from its priority level parameter.
  • 3    Precedence is calculated taking into account the quality of service mechanisms outlined in Table 534.
  • 4    If the bandwidth credit is below the Minimum Bandwidth Credit Threshold, the Priority Precedence is set to zero, see clause 5.7.4.5.
    Table 534: Precedence for different qualities of service

Quality of Service


Precedence


Priority


A priority virtual channel is normally only allowed to send data when no other virtual channel with a higher priority setting is ready to send data.


Several priority levels are supported.


If two or more priority virtual channels set to the same priority level are both ready to send data, the one with the highest bandwidth credit is permitted to send a data segment first.


If a SpaceFibre network is needed to operate using priority only, each virtual channel is assigned a different priority level. Normally, priority operates together with bandwidth reservation.


Best effort quality of service is obtained when a virtual channel has its priority quality of service parameter set to the lowest priority.


Bandwidth Reserved


Bandwidth reservation determines the precedence of a virtual channel based on the link bandwidth reserved for that virtual channel and its recent link utilisation.


Each virtual channel computes a bandwidth credit based on the link bandwidth reserved for that virtual channel and its recent link utilisation.


A virtual channel with large reserved bandwidth and low recent bandwidth utilisation has high bandwidth credit. A virtual channel with similar reserved bandwidth and higher recent bandwidth utilisation has lower bandwidth credit.


Within a specific priority level, virtual channels compete for sending the next data segment based on their current bandwidth credit.


A bandwidth reserved virtual channel is normally only allowed to send data when there are no other virtual channels with higher priority that are ready to send data, and the virtual channel has the highest bandwidth credit of all of the virtual channels of the same priority level that are ready to send data.


If a SpaceFibre network that just uses bandwidth reservation is needed, this can be achieved by simply setting all virtual channels to use the same priority level.


Scheduled


Scheduled quality of service provides a means of ensuring fully deterministic allocation of SpaceFibre network resources.


Time is separated into a series of time-slots during which a virtual channel can be scheduled to send data. When a time-slot arrives in which a virtual channel is scheduled, it can send data based on its precedence.


During all the other time-slots, when the virtual channel is not scheduled to send data, it is not permitted to send any data even when no other virtual channel has data to send.


If a virtual channel scheduled in the current time-slot does not have data to send during its time-slot or does not have space in its input VCB at the far-end of the link, other virtual channels allowed to transmit in the current time-slot are permitted to use the otherwise wasted bandwidth.


If each virtual channel uses a different slot to send data, a simple scheduled quality of service is provided, without considering priority or bandwidth reservation.


Bandwidth credit

Each output virtual channel shall maintain a measurement of the Bandwidth Credit for that virtual channel.
The Bandwidth Credit shall be updated every time a data segment has been sent on any virtual channel.
If no data segment is sent, the Bandwidth Credit shall be updated after an interval approximately equal to the time it takes to send a full data frame, or less.

When no data is sent the Used Bandwidth is zero, see requirement 5.7.4.5g.

The Available Bandwidth shall be measured for the SpaceFibre link as the number of data or control words sent over the SpaceFibre link from all virtual channels, since the Bandwidth Credit was last updated.

When specifying a bandwidth allocation for a virtual channel, it is useful to think in terms of the percentage of overall link capacity being allocated. It is then straightforward to allocate a percentage of the bandwidth to each virtual channel, leaving some spare capacity for possible broadcast messages and general contingency. When setting the bandwidth allocations each virtual channel is allocated a little bit more bandwidth than it is expected to use, so that the counter is nominally saturated, and the sum of all virtual channel bandwidth allocations is less than 100%, to leave some margin for broadcasts, ACKs, FCTs, etc.

A virtual channel shall be allocated a portion of the Link Bandwidth that it expects to use, its Normalised Expected Bandwidth, which includes the overhead due to the use of frame delimiters and other control words.

  • 1    This information is provided, using management parameters, for all virtual channels regardless of the quality of service they are providing.
  • 2    The Normalised Expected Bandwidth assigned to each virtual channel has to account for any protocol overhead. When data is being sent in one direction only, the transmit side sends SDF-DATA-EDF, the receive side sends FCT-ACK, the transmit side replies with an ACK to the receive side FCT. This means that the best-case protocol overhead for unidirectional transmission is: 2+1/64+2+1 ~ 4% or 64/64+2+1 ~ 96% of effective bandwidth. For a link with a data signalling rate of 2,5 Gbit/s this results in a maximum user data throughput of 1,91 Gbit/s. When data is being sent in both directions at the same time, the transmit side sends the following control words in addition to those sent over a unidirectional link: an ACK for the receive-side data frame and its corresponding FCT to allocate more data space. This means that the best-case protocol overhead for bidirectional transmission is: 2+1+2/64+2+1+2 ~ 7% or 64/64+2+1+2 ~ 93% of effective bandwidth. For a link with a data signalling rate of 2,5 Gbit/s this results in a maximum user data throughput of 1,86 Gbit/s. When sending small data frames or many broadcast messages, the overhead can be higher.
    Used Bandwidth shall be the number of data frame words sent by a particular virtual channel, including frame delimiters, since the last time the Bandwidth Credit was updated.

This is zero for all virtual channels except for the one that sent a data frame.

Bandwidth Credit shall be calculated independently for each virtual channel as follows:
Image where Image is summation over previous frames or words, n is an integer representing the series of frames or words sent previously, and c is the virtual channel number of the virtual channel for which BandwidthCredit is being calculated.

The Bandwidth Credit value obtained by this formula saturates at plus or minus the Bandwidth Credit Limit, see requirement 5.7.4.5j. This means that the Bandwidth Credit represents the recent history of the virtual channel utilisation.

When there is an advantage to be gained in efficiency, another method of determining the bandwidth credit may be used provided that it gives equivalent results as 5.7.4.5g.
When the Normalised Expected Bandwidth is zero, the virtual channel shall not be permitted to send any data.
Bandwidth Credit shall be permitted to go negative.

A negative value indicates that the virtual channel is using more than its expected amount of link bandwidth.

Bandwidth Credit shall saturate at plus or minus the Bandwidth Credit Limit.

  • 1    Therefore, when the Bandwidth Credit exceeds the Bandwidth Credit Limit, it is set to the value of the Bandwidth Credit Limit.
  • 2    The specific value of the Bandwidth Credit Limit is implementation dependent. If the Bandwidth Credit Limit was set to the Link Bandwidth, that virtual channel reaches positive saturation after 1 second when no data is being sent by that virtual channel. After this period of time no further credit is given to the virtual channel until its Bandwidth Credit drops below the limit. Setting the Bandwidth Credit limit to Link Bandwidth/1000 means that the virtual channel starts to forget how much data it has sent after 1 ms. This gives a less accurate measurement of Bandwidth Credit, but requires counters with fewer bits. It makes the overuse mechanism kick in earlier.
    When the Bandwidth Credit for a virtual channel reaches the Positive Bandwidth Credit Limit and stays at that value for at least the Virtual Channel Idle Time Limit, the virtual channel shall indicate in a status register that it is idle and using much less bandwidth than expected.
  • 1    A network management application is able to use this information to check correct utilization of link bandwidth by its various virtual channels.
  • 2    The Virtual Channel Idle Time Limit is a configuration parameter that applies to all virtual channels. A typical value is 1 ms.
    A Minimum Bandwidth Credit Threshold shall be set, below which a virtual channel is deemed to be using more than its allocated bandwidth.
    The Minimum Bandwidth Credit Threshold shall be set at approximately 90 % of the value of the Negative Bandwidth Credit Limit.
    When the Bandwidth Credit for a virtual channel reaches the Minimum Bandwidth Credit Threshold it shall indicate in a status register that the virtual channel is using more bandwidth than expected.
    When the Bandwidth Credit value for a virtual channel is below the Minimum Bandwidth Credit Threshold, it shall temporarily set the priority precedence of that virtual channel to zero, until its Bandwidth Credit value goes above the minimum bandwidth credit threshold.

This prevents a virtual channel with high priority from hogging much more bandwidth that it is expected to use.

Bandwidth Credit shall be set to zero on interface reset.
Upon interface reset, the Normalised Expected Bandwidth for virtual channel zero, VC0, shall be set to approximately 10% and all the other virtual channels set to their minimum value.

  • 1    After interface reset the local application or a remote application can set the Normalised Expected Bandwidth of each virtual channel as needed.
  • 2    Virtual channel zero, VC0, is used for configuration, control and monitoring of the SpaceFibre network. See requirements 5.8.3z, 5.8.3aa, 5.8.3bb

Priority

A SpaceFibre port shall support Q priority levels numbered 0 to Q-1, where 0 is the priority level with the highest precedence.
A SpaceFibre port shall have a minimum of four priority levels: 0 to 3, where priority level 0 has the highest precedence and 3 has the lowest precedence.
A SpaceFibre port may support more than four priority levels.
Each priority level shall have a Priority Precedence value of 2B(Q1R)+B, where Q is the number of priority levels, R is the priority level, and B is equal to the Bandwidth Credit Limit.

  • 1    Precedence = Priority Precedence + Bandwidth Credit
  • 2    A precedence at one priority level cannot overlap with that of an adjacent priority level, regardless of the current Bandwidth Credit value.
  • 3    For example in an implementation with 16 priority levels, priority level 15 has a Priority Precedence value of B, priority level 14 has a Priority Precedence value of 3B, and priority level 0 has a Priority Precedence value of 31B.
    Each virtual channel shall be able to be assigned any of the priority levels.
    More than one virtual channel shall be able to be set to the same priority level.
    When more than one virtual channel has the same priority level, the one with the highest Bandwidth Credit value shall have the highest precedence.
    Upon interface reset, the quality of service for each virtual channel shall be set to lowest priority.

Integrated quality of service

When a particular time-slot arrives, virtual channels that are scheduled to send data in that particular time-slot and are ready to send, shall compete with other virtual channels that are also scheduled to send in that time-slot, based on their precedence.

When a particular time-slot arrives, virtual channels that are scheduled to send data in that particular time-slot, are ready to send, and have the same Priority Precedence, compete based only on the bandwidth credit of that virtual channel. If all virtual channels use the same priority level, bandwidth reserved quality of service is used. If a virtual channel exceeds its allocated bandwidth, babbling node protection sets its priority to the lowest level.

Broadcast flow control

A Broadcast Bandwidth Credit Counter shall be associated with the broadcast mechanism to monitor and limit the amount of link bandwidth used by broadcast messages.
The medium access controller shall have one Broadcast Bandwidth Credit Counter for all the broadcast channels.
The Broadcast Bandwidth Credit Counter shall monitor and control the aggregate bandwidth of all the broadcast channels.
On link reset the Broadcast Bandwidth Credit Counter shall be set to zero.
The Broadcast Bandwidth Credit Counter shall be decreased by one every time a broadcast frame has been sent.

The broadcast frame has a fixed size of four words so for the Broadcast Bandwidth Credit the measurement unit is 4 words or a broadcast frame.

A management parameter, called the Normalised Expected Broadcast Bandwidth, shall specify a portion of the Link Bandwidth that is reserved for the broadcast messages, including the overhead of the broadcast frame delimiters.
The Broadcast Bandwidth Credit Counter shall saturate at the Broadcast Bandwidth Credit Limit.

Therefore, when the Broadcast Bandwidth Credit exceeds the Broadcast Bandwidth Credit Limit, it is set to the value of the Broadcast Bandwidth Credit Limit.

The Broadcast Bandwidth Credit Limit shall be a constant set to 256 broadcast frames.

This allows up to 256 broadcast messages to be sent by a broadcast channel before it is inhibited, preventing broadcast messages being sent until more credit has been accumulated. 256 broadcast frames is 1024 words.

The Broadcast Bandwidth Credit Counter shall never be allowed to go negative.
When the Broadcast Bandwidth Credit Counter is zero, no broadcast frames shall be sent.
The Broadcast Bandwidth Credit shall be increased by one after the interval equal to the time it takes to send the number of words of 4 divided by the Normalised Expected Broadcast Bandwidth.

Framing

Data encapsulation

Data segments shall be encapsulated in a data frame with an SDF being added before the data segment and an EDF being added afterwards, prior to them being passed to the Lane or Multi-Lane layer.
Broadcast messages shall be encapsulated in a broadcast frame with an SBF being added before the broadcast message and an EBF being added afterwards, prior to them being passed to the Lane or Multi-Lane layer.
When a link reset condition occurs, the current data frame or broadcast frame shall stop being passed to the Lane or Multi-Lane layer and a new data frame or broadcast frame started.

EM emission mitigation

Data scrambling

When the DataScrambled management parameter is set, the data words of data frames shall be scrambled prior to transmission of the frame by bit-wise multiplication of the data with a sequence of random numbers produced from a scrambling polynomial.

  • 1    Bit-wise multiplication is the XOR function.
  • 2    This scrambler belongs to the family of the additive scramblers. The scrambler is illustrated in Figure 541, which is included for clarity. The scrambler can be implemented in other ways.
    Image Figure 541: Scrambler / de-scrambler

The scrambling polynomial to use shall be G(x) = X16 + X5 + X4+ X3+ 1.
The seed for the scrambler shall be 0xFFFF.

0xFFFF results in all flip-flops in the random number generator being set to one.

The scrambler shall be re-seeded at the start of every new data frame.
The single bit output sequence from the random number generator shall be XORed with the bit sequence from the data word.

The random number generator only generates bits when there are data bits to be scrambled, i.e. the random number generator stops when no data is being XORed. For example, when an FCT is interleaved within a data frame, the random number generator only runs for the data in the data frame.

The least-significant bit of the least-significant character in each word shall be scrambled first.
When an EOP or EEP or Fill occurs in the data it shall not be replaced by scrambled data, although the random number generator continues to generate random numbers normally as if the EOP or EEP or Fill were a data character.

  • 1    If the data value is scrambled while maintaining the K-flag, invalid K-codes are generated from the EOP/EEP/Fill characters. Scrambling of a K-code is likely to result in an invalid K-code which cannot be encoded by the 8B/10B encoder.
  • 2    Figure 542 shows an example of a not scrambled data frame and the corresponding scrambled data frame. The top table shows the not scrambled data frame and bottom table shows the corresponding scrambled data frame. When data is scrambled the CRC is calculated on the scrambled data.

0 7


8 15


16 23


24 31


COMMA


SDF


0x00


0x00


0x00


0x01


0x02


0x03


0x04


0x05


0x06


0x07


0x08


EOP


Fill


Fill


EDF


0x22


0x28


0xA8


Original (not scrambled) data frame


0 7


8 15


16 23


24 31


COMMA


SDF


0x00


0x00


0xFF


0x16


0xC2


0x17


0xB6


0xE2


0x04


0x85


0x7A


EOP


Fill


Fill


EDF


0x22


0x98


0xDA


Scrambled data frame


Figure 542: Example of scrambling of a short data frame

Data Unscrambling

When data frames are received and the INIT3DataScrambled flag from the Lane layer is set, indicating that the data received is scrambled, the data shall be unscrambled by multiplying, XORing, the received data with the same scrambling sequence as was used for scrambling.
The control characters representing EOP or EEP or Fill shall not be unscrambled.

Idle frame scrambling

The PRBS field of idle frames shall be filled with a pseudo-random bit sequence produced from a pseudo-random bit sequence generation polynomial.

This PRBS sequence spreads the EM emission spectrum from the idle frames. It can also be used to help measure transmitter and receiver eye patterns when the lane is idle and just sending idle frames.

When a new idle frame is started, the PRBS generator for idle frames shall not be re-seeded.
The pseudo-random bit sequence generation polynomial to use shall be
On link reset, the initial seed for the PRBS generator shall be 0xFFFF.

0xFFFF results in all flip-flops in the random number generator being set to one.

The initial seed value 0xFFFF shall be used to calculate the first idle word after link reset.

After link reset, the first idle frame contains the values specified in Figure 543.

BYTE 1


BYTE 2


BYTE 3


BYTE 4


COMMA


SIF


SEQ_NUM


CRC


0xFF


0x17


0xC0


0x14


0xB2


0xE7


0x02


0x82


0x72


0x6E


0x28


0xA6


Figure 543: Effect of scrambling on an idle frame

The single bit output sequence from the random number generator shall form the PRBS in the idle frame.
The least-significant bit of the least-significant character in each word shall be filled with PRBS first.
The random number generator shall stop temporarily when a control word is embedded in the idle frame.

For example, when an FCT is embedded in the idle frame.

A PRBS field in an idle frame which does not follow the needed PRBS sequence shall not cause an error.

Sequence Numbering

Sequence Numbers on transmission

A single 7-bit Transmit Sequence Counter shall be maintained in the transmit side of the SpaceFibre port to hold the 7-bit Sequence Count in the SEQ_NUM of the last data frame, broadcast frame or FCT control word that was sent.
The 7-bit Transmit Sequence Counter shall operate modulo 128.
A Transmit Polarity Flag shall be associated with the 7-bit Transmit Sequence Counter together forming the Sequence Number, SEQ_NUM.

See clause 5.7.7.3 for information on the Transmit Polarity Flag and what it is used for.

The Transmit Sequence Counter shall be cleared to zero on link reset of the SpaceFibre port.
The Transmit Polarity Flag shall be cleared to zero on link reset of the SpaceFibre port.
The Transmit Polarity Flag shall be inverted each time a new error recovery operation begins.
The Transmit Sequence Counter and associated polarity flag shall provide Sequence Numbers for data frames, FCTs, broadcast frames, idle frames and FULL words.
Immediately prior to an end of data frame, end of broadcast frame, or FCT control word being passed from the Data Link layer to the Lane layer, or to the Multi-Lane layer, the current value of the Transmit Sequence Counter shall be incremented and the new value together with the current value of the polarity flag placed in the Sequence Number, SEQ_NUM, field of the end of data frame, end of broadcast frame, or FCT control word.

  • 1    Every 128 sequence numbers the counter rolls over repeating the series of sequence numbers.
  • 2    The first frame, typically an FCT, sent after link reset has SEQ_NUM set to +1 because of this clause, i.e. the Sequence Counter is reset to zero and then incremented to +1 immediately before the EDF, EBF, or FCT is sent.
    When a FULL control word or an idle frame is passed from the Data Link layer to the Lane layer, or to the Multi-Lane layer, the current value of the Transmit Sequence Counter together with the current value of the polarity flag shall be placed in the Sequence Number, SEQ_NUM, field of the start of idle frame, SIF or FULL control word.

Sequence Numbers on reception

A single 7-bit Receive Sequence Counter shall be maintained in the receive side of the SpaceFibre port to hold the 7-bit Sequence Count in the SEQ_NUM of the last data frame, broadcast frame or FCT control word that was received correctly.
The 7-bit Receive Sequence Counter shall operate modulo 128.
A Receive Polarity Flag together with the 7-bit Receive Sequence Counter form the Receive Sequence Number, the value of which shall be checked against received Sequence Numbers, SEQ_NUM.
The Receive Polarity Flag shall be determined by the Receive Error state machine.
The Receive Sequence Counter shall be cleared to zero on link reset of the SpaceFibre port.
The Receive Polarity Flag shall be cleared to zero on link reset of the SpaceFibre port.
The Receive Sequence Counter shall not be modified on LaneReset of the SpaceFibre port.
The Receive Polarity Flag shall not be modified on LaneReset of the SpaceFibre port.
The 7-bit Receive Sequence Counter together with the Receive Polarity Flag shall be used to check the sequence numbers of data frames, FCTs broadcast frames, idle frames and FULL control words.
When an EDF, EBF, SIF, FCT, or FULL control word with a valid CRC passes into the Data Link layer from the Lane or Multi-Lane layer, its Sequence Number, SEQ_NUM, shall be checked against the current value of the Receive Sequence Counter and Receive Polarity Flag.
If the Sequence Count of the SEQ_NUM of a received EDF, EBF or FCT is one more than the Receive Sequence Counter and the polarity flag of the SEQ_NUM matches the Receive Polarity Flag, the data frame, broadcast frame or FCT shall be accepted.
If the Sequence Number, SEQ_NUM, of a received SIF or FULL has the same value as the Receive Sequence Counter and the polarity flag of the SEQ_NUM matches the Receive Polarity Flag, the idle frame or FULL shall be accepted.

An idle or FULL frame carries the Sequence Number of the last data frame, broadcast frame or FCT transmitted.

When a data frame, FCT or broadcast frame is accepted, the Receive Sequence Counter shall be incremented.
If the Sequence Count of the SEQ_NUM of a received EDF, EBF or FCT is not one more than the Receive Sequence Counter or the polarity flag of the SEQ_NUM is not the same as the Receive Polarity Flag, a sequence error has occurred and the data frame, FCT or broadcast frame shall be discarded.

A sequence error occurs when the Sequence Count in a SEQ_NUM of a data frame, broadcast frame or FCT is not one more, using modulo 128 arithmetic, than the value in the Receive Sequence Counter or the polarity flag is different. It also occurs when the Sequence Number of an idle frame or FULL control word does not match the value of the Receive Sequence Number. See clause 5.7.7.2.2 for information on what happens when a sequence error occurs. See clause 5.7.7.3 for more information about the value of the polarity flag of the Receive Sequence Number.

If the Sequence Count of the SEQ_NUM of a received SIF or FULL is not the same as the Receive Sequence Counter or the polarity flag of the SEQ_NUM is not the same as the Receive Polarity Flag, a sequence error has occurred and the idle frame or FULL shall be discarded.
When a data frame, FCT or broadcast frame is discarded, the Receive Sequence Counter shall not be incremented.

CRC for data frame

A 16-bit CRC checksum shall be applied to data frames.

A single bit error on the line does not result in a CRC error in the data frame because an RXERR occurs and the data frame is discarded before the CRC is checked. A CRC error in a data frame therefore indicates that a multi-bit error occurred. See requirement 5.5.7j It is possible that a disparity error in a frame is not detected until the word following an EDF. The word where the disparity error is detected and the previous word, i.e. the EDF, are both set to RXERR, see requirement 5.5.7l, so the single bit error in a data frame is always detected by disparity not by the CRC.

The CRC shall cover an entire data frame, from and including the comma in the start of data frame control word, up to and including the Sequence Number in the end of data frame control word.

The CRC covers the entire data frame in a single-lane link. In a multi-lane link there is a separate CRC for each lane covering the part of the data frame sent over that lane.

The K-flag shall not be included in the CRC calculation, only the data value of K-codes and D-codes is used.

For example, the comma code K28.7 is replaced by D28.7 in the CRC calculation.

When an EOP or EEP or Fill occurs in the data, the data value of the K-code representing the EOP or EEP or Fill shall be included in the CRC generation.

For example, an EOP is represented by K29.7 so the value D29.7 is included in the CRC calculation. Including an EOP or EEP or Fill in the CRC calculation means that they are protected by the CRC checksum.

When the data in the frame is scrambled, the CRC shall be calculated using the scrambled data.
The ITU polynomial X16+X12+X5+1 shall be used to generate the 16-bit CRC for each data frame.
The 16-bit CRC seed shall be 0xFFFF.
The least-significant bit of the least-significant character in each word shall be computed first.

  • 1    This implies that the CRC computed is the reflected value of the register bits in the LFSR, when a LFSR is used to calculate the CRC, see Figure 545.
  • 2    If the CRC generation procedure is applied to the bytes covered by the CRC including the two CRC bytes, the output of the CRC generation procedure is zero if no errors have been detected and non-zero if an error has been detected.
  • 3    The examples provided in Figure 544 give some short data frames with their CRC values. Each word has D/K codes of 8 bits plus the K flag bit. The K flag bit is not included in the computation of the CRC. The leftmost D/K code is computed first, e.g. comma K28.7. The CRC is computed starting from bit 0. For each data or CRC value the leftmost hexadecimal character contains the most significant bit. The CRC value is 0x978A in the first example. The data is usually scrambled under normal operation. Scrambling has been disabled in this example for clarity.
  • 4    The ordering of bits is important for the CRC calculation. Figure 545 shows the bit ordering during calculation of the CRC.
    When an implementation can be simplified, the 16-bit CRC calculation may be carried out in the Multi-Lane or Lane layer.

From the perspective of the implementation, the Multi-Lane and Lane layers are effectively sub-layers forming part of the Data Link layer.

0 7


8 15


16 23


24 31


COMMA


SDF


0x02


0x00


0x00


0x00


0x00


0x00


EOP


Fill


Fill


Fill


EDF


0x41


0x8A


0x97


0 7


8 15


16 23


24 31


COMMA


SDF


0x01


0x00


0x00


EOP


Fill


Fill


EDF


0x7D


0x3D


0x35


0 7


8 15


16 23


24 31


COMMA


SDF


0x01


0x00


0x00


0x01


0x02


EOP


EDF


0x7E


0xA1


0xB7


Figure 544: Examples of CRC calculation for a short data frame

Image Figure 545: Illustration of bit ordering during 16-bit CRC calculation

CRC for broadcast frame, FCT, ACK, NACK and SIF

An 8-bit CRC checksum shall be applied to broadcast frames, SIFs, FCTs, FULLs, ACKs and NACKs.
The 8-bit CRC shall cover an entire broadcast frame, from and including the comma in the start of broadcast frame control word, up to and including the Sequence Number in the end of broadcast frame control word.
When a control character is included in the CRC calculation, its corresponding data value shall be used.

For example, K28.7 the comma code is replaced by D28.7 in the CRC calculation.

The 8-bit CRC calculation procedures shall:

  • use modulo 2 arithmetic for polynomial coefficients.
  • use a systematic binary (n+16,n) block code, where (n+8) is the number of bits of the code word Image and n is divisible by 8; n is the number of bits covered by the CRC.
  • use the following generating polynomial: Image
  • use byte format as input and output, for which the bits are represented as: Image where Image is the most significant bit and Image is the least significant bit.The 8-bit CRC generation procedure shall behave as follows:
  • The procedure accepts an n-bit input which is used to construct Image , where:
    • the n-bit input is defined to be the set of bits Image grouped into Image bytes where Image is the byte index and Image is the bit index.
    • the Image input bytes correspond to the fields covered by the CRC excluding the CRC byte; the first byte transmitted has index Image ; the last byte transmitted has index Image .
      Image
    • is a polynomial Image having binary coefficients Image .
      Image
    • can be represented as an n-bit vector where coefficient Image of the highest power of Image is the most significant bit and coefficient Image of the lowest power of Image is the least significant bit.
    • the bit vector representation of Image is formed by concatenating the Image bytes of the input in transmission order, where the least significant bit Image of each byte is taken first and the most significant bit Image of each byte is taken last:
      Image Image Image
  • The procedure generates the remainder polynomial Image given by the equation: Image where Image and Image are binary coefficients.* The Header and Data CRC are formed from the 8-bit vector representation of Image ; the least significant bit Image of the CRC byte is coefficient Image of the highest power of Image , while the most significant bit Image of the CRC byte is coefficient Image of the lowest power of Image :     Image
  • 1    The codeword Image is formed by concatenating the bit vector representations of Image andImage .
  • 2    When a Galois version of a Linear Feedback Shift Register is used for CRC generation, its initial value is zero.
    The 8-bit CRC seed shall be 0x00.
    If the CRC generation procedure is applied to the bytes covered by the CRC excluding the CRC byte, the generated CRC shall be compared directly with the expected CRC byte.
    If the generated and expected CRC bytes specified in requirement 5.7.6.5g are equal, no errors shall be detected.
    If the generated and expected CRC bytes specified in requirement 5.7.6.5g are different, an error shall be detected.
    If the CRC generation procedure is applied to the bytes covered by the CRC including the CRC byte, the output of the CRC generation procedure shall be zero if no errors have been detected and non-zero if an error has been detected.
  • 1    When the codeword Image is input to the CRC generator then the remainder is the syndrome: Image .
  • 2    The codeword Image is the concatenation of the Header or Data bytes covered by the CRC, followed by the CRC byte.
  • 3    The example provided in Figure 546 gives a broadcast frame with its CRC value. Each word has D/K codes of 8 bits plus the K flag bit. The K flag bit is not included in the computation of the CRC. The leftmost D/K code is computed first, e.g. comma K28.7. The CRC is computed starting from bit 0. For each data or CRC value the leftmost hexadecimal character contains the most significant bit.
  • 4    The ordering of bits for the 8-bit CRC calculation is illustrated in Figure 547.
    When an implementation can be simplified, the 8-bit CRC calculation may be carried out in the Multi-Lane or Lane layer.

From the perspective of the implementation, the Multi-Lane and Lane layers are effectively sub-layers forming part of the Data Link layer.

0 7


8 15


16 23


24 31


COMMA


SBF


0x00


0x00


0x00


0x00


0x00


0x00


0x01


0x01


0x01


0x01


EBF


0x00


0x41


0x29


0 7


8 15


16 23


24 31


FCT


0x01


0x01


0x4F


Figure 546: Examples of CRC calculation for a broadcast frame and FCT

Image Figure 547: Illustration of bit ordering during 8-bit CRC calculation

Idle frames

Idle frames shall be generated when there are no data frames, FCTs, broadcast frames or FULLs to send.
The Sequence Number field in the start of idle frame shall be set to the current value of the Transmit Sequence Number, including the polarity flag.

After a link reset this counter is set to zero so if an idle frame is the first frame sent after link reset, its Sequence Number field is zero. If a data frame, FCT, or broadcast frame is the first frame sent after a link reset its Sequence Number field is one.

The start of idle frame control word shall be followed by a series of pseudo-random data words which forms a pseudo random bit sequence when transmitted as specified in clause 5.7.6.2.3.

Frame reception

When a complete data frame is received without a CRC error and in the correct sequence, as indicated by its sequence number, the data segment contained in that data frame shall be written into the appropriate input virtual channel buffers, as determined by its virtual channel number.
When a data frame is received with a CRC error or out of sequence, it shall be discarded.
When a complete broadcast frame is received without a CRC error and in the correct sequence, as indicated by its sequence number, the broadcast message contained in that broadcast frame shall be written to the broadcast message interface.
When a broadcast frame is received with a CRC error or out of sequence, it shall be discarded.
When an FCT is received without a CRC error and in the correct sequence, as indicated by its sequence number, the FCT shall be passed to the output flow control mechanism of the virtual channel indicated by the virtual channel number in the FCT.
When an FCT is received with a CRC error or out of sequence, it shall be discarded.

Error recovery

Error recovery buffer

Data segments, FCTs and broadcast messages shall be temporarily placed in an error recovery buffer prior to passing them to the Multi-Lane or Lane layer for sending over the SpaceFibre link, so that they can be resent if an error occurs.
The error recovery buffer shall be able to store at least one FCT regardless of how many data segments and broadcast messages it contains.
The error recovery buffer shall be able to store at least one broadcast message regardless of how many data segments and FCTs it contains.

The total number of frames or FCT words that can be stored in the error recovery buffer after they are sent is less than 128, because of the size of SEQ_NUM.

The data segments, FCTs and broadcast messages in the error recovery buffer shall be referenced by the Sequence Number, SEQ_NUM, given to them when they are sent over the SpaceFibre link.

Sequence numbering is specified in clause 5.7.6.3.

When the contents of the error recovery buffer are resent, the broadcast frames shall always be sent before FCT and data frames, even if the broadcast frames were not sent before the NACK was received.

The frame precedence specified in clause 5.3.10 prevails.

When a small size, limited functionality SpaceFibre interface is needed and the sending and receiving of low latency broadcast messages is not important, the contents of the error recovery buffer may be resent in any order.
When the contents of the error recovery buffers are resent they shall be given new Sequence Numbers following on from the last correctly received Sequence Number at the far-end, as indicated by the SEQ_NUM field received in the NACK control word, plus one and incrementing with each frame/FCT that is retried or otherwise sent.

The data frames, FCTs, and broadcast frames that are resent have the polarity flag in the SEQ_NUM set to the new polarity value of the Transmit Polarity Flag determined in clause 5.7.6.3.1.

On link reset, the error recovery buffer shall be emptied.
On LaneReset, the error recovery buffer shall not be emptied.
The number of error recovery attempts shall be incremented when a RETRY control word is sent.
The number of error recovery attempts shall be recorded and made available in a status register.
The number of error recovery attempts shall be cleared by power-on reset or interface reset, or by command from the Management Information Base.
The size of the error recovery buffer shall be implementation dependent.

  • 1    An appropriate size for the error recovery buffer is long enough to hold all the data and control words that can fit on the line for as long as it takes to send them and receive an ACK in reply.
  • 2    When multiple lanes are used, proportionally more data can be held on the line.
    The error recovery buffer shall be considered as full when there is insufficient space in the buffer to store either an FCT, broadcast frame or all or part of a data frame.
    When the error recovery buffer becomes full, or when a total of 127 frames or FCTs are waiting to be acknowledged, no more data segments, FCTs and broadcast messages shall be accepted.
    When the error recovery buffer is full, only FULLs, ACKs and NACKs shall be sent by the Data Link layer.
    When the error recovery buffer is full, FULL control words shall be sent.
  • 1    Control word precedence is specified in clause 5.3.10.
  • 2    The control word precedence of requirement 5.3.10c means that a broadcast frame is sent before a FULL, when there is no space to store a data frame, but there is space to store a broadcast frame.
    When a total of 127 frames or FCTs are pending to be acknowledged FULL words shall be sent.

127 is the maximum number of frames or FCTs that can be outstanding due to the size of the Sequence Number.

When an RXERR or CRC error occurs, a FULL control word should be sent if all of the following conditions occur:

  • All output virtual channel buffers are empty.
  • There are no data frames, FCTs or broadcast frames to send.
  • The error recovery buffer is not empty.

If an ACK control word is not received because of an error, a new ACK will be received only if a new data frame, broadcast frame or FCT is sent. This clause guarantees that in this situation a new ACK is received and the error recovery buffer is emptied.

ACK/NACK control

Sending ACKs

When a data frame, broadcast frame, FCT or FULL is received without a sequence error or CRC error, an ACK shall be requested to be sent.
ACKs shall be sent as soon as possible after being requested, while respecting control word precedence.

  • 1    Control word precedence is specified in clause 5.3.10.
  • 2    ACKs are not buffered before they are sent.
    After an ACK is sent, a minimum of 15 words shall be sent before another ACK is sent.

This ensures that the bandwidth reserved quality of service works independently of the size of data frames.

If another data frame, broadcast frame, FCT or FULL is received while an ACK is pending, only one ACK shall be sent.

An ACK can cover one or more data frames, broadcast frames, FCTs or FULLs.

When an ACK is sent, it shall contain the current value of the Receive Sequence Counter and the Receive Polarity Flag.
When a NACK is requested to be sent, any pending ACK shall be cancelled and not sent.

Sending NACKs

A NACK shall be requested to be sent under any of the following conditions:

  • The Data Word Identification state machine is in the RxDataFrame, RxBroadcastFrame, or RxData&BroadcastFrame state and an RXERR control word is received or a CRC error occurs.
  • When a sequence error is detected in a control word with a valid CRC.
  • 1    The intention is only to send a NACK when an error recovery operation is needed. Therefore, a NACK is not sent when the Data Word Identification state machine is in the RxNothing or RxIdle state, even when an error is detected.
  • 2    The Sequence Number of the FULL control word or idle frame ought to have the same sequence number as the last correctly received data frame, FCT, or broadcast frame i.e. be the same as the current value of the Receive Sequence Counter. If this is not the case, a sequence error has occurred indicating that a frame that has been sent has not been received. A NACK is then sent to indicate to the far-end the last correctly received data frame, FCT or broadcast frame.
  • 3    When an idle frame is received that has the correct Sequence Number there is no need to send an ACK. The correct Sequence Number indicates that the last data frame, FCT or broadcast frame has been received correctly. If the ACK sent for this frame has gone missing, it does not matter unless the frame error recovery buffer fills up which does not happen unless more data frames, FCTs or broadcast frames are sent. In which case other ACKs are sent.
    A NACK shall not be requested to be sent if an unrecognized control word is received.

This is to permit forward compatibility with future versions of the SpaceFibre standard.

A NACK requested to be sent shall be sent as soon as possible, while respecting control word precedence.

  • 1    A NACK that is requested to be sent which cannot be sent immediately means that a NACK is pending to be sent. The pending NACK is sent as soon as possible.
  • 2    See clause 5.3.9 for the specification of precedence.
    When a NACK is sent, it shall use the current value of the Receive Sequence Counter with the Receive Polarity Flag determined by the Receive Error state machine.

See clause 5.7.7.3 which specifies the value of the Receive Polarity Flag.

When an ACK is requested to be sent, any pending NACK shall be cancelled and not sent.

Receiving ACKs

When an ACK is received it shall be checked for errors using its CRC.
An ACK shall be considered valid when it has a valid CRC and the polarity flag of its Sequence Number has the same value as the Transmit Polarity Flag.
When a valid ACK is received, all data frames, broadcast frames, and FCTs sent with a Sequence Count less than or equal to the Sequence Count in the ACK shall be deleted from the error recovery buffer, including counter roll over effects using modulo 128 arithmetic.
When a valid ACK is received with a Sequence Count that is different to the Sequence Count of the previous valid ACK or NACK received, and there is no data frame, FCT or broadcast frame in the error recovery buffer with the Sequence Count of the ACK, the SpaceFibre link shall be reset and the Link Reset Caused by Protocol Error status parameter asserted.

Receiving NACKs

When a NACK is received it shall be checked for errors using its CRC.
A NACK shall be considered valid when it has a valid CRC and the polarity flag of its Sequence Number has the same value as the Transmit Polarity Flag.
When a valid NACK is received the following actions shall be executed in the specified order:

  • Delete all data frames, FCTs and broadcast frames, sent with a Sequence Count less than or equal to the Sequence Count in the NACK, from the frame error recovery buffer, including counter roll over effects using modulo 128 arithmetic.
  • Set the Transmit Sequence Counter to the value of the NACK sequence Count.
  • Send a RETRY word before the contents of the error recovery buffer are sent.
  • Invert the polarity flag of the Transmit Sequence Number.
  • Follow the precedence indicated in clause 5.3.10 when resending data frames, FCTs and broadcast messages.
  • Resend the data frames, FCTs or broadcast frames left in the error recovery buffer since the NACK has signalled that they have not been received correctly.
  • Give new sequence numbers to the data frames, broadcast frames and FCTs, when they are resent.
  • 1    The data frames, FCTs or broadcast frames left in the error recovery buffer are those which have a Sequence Count greater than that of the NACK.
  • 2    See clause 5.7.7.2.2 for reasons why a NACK is transmitted.
    A NACK received with the polarity flag in the Sequence Number, SEQ_NUM, which is different to the Transmit Polarity Flag shall be ignored and not cause error recovery.

This prevents an error from causing multiple error recovery attempts.

When a valid NACK is received with a Sequence Count that is different to the Sequence Count of the previous valid ACK or NACK received, and there is no data frame, FCT or broadcast frame in the error recovery buffer with the Sequence Count of the NACK, the SpaceFibre link shall be reset and the Link Reset Caused by Protocol Error status parameter asserted.

Receive Error state machine

General

The Receive Error state machine shall be used to determine the state of the Receive Polarity Flag field of the Receive Sequence Number.

The state diagram for the Receive Error state machine is illustrated in Figure 548

Image Figure 548: Receive Error state machine

Valid Positive State

The Valid Positive state shall be entered on the following conditions:

  • LinkReset command.
  • From the Error Positive state, when an ACK is requested to be sent. When in the Valid Positive state, the Receive Polarity Flag shall be positive.

ACKs are therefore sent with a positive Sequence Number.

The Receive Error state machine shall leave the Valid Positive state on the following conditions:

  • When a NACK is requested to be sent, move to the Error Negative state, before sending the NACK.

Note the NACK is therefore sent with a positive Sequence Number, because NACKs are sent with the opposite polarity of that indicated by the Receive Error state machine.

Valid Negative State

The Valid Negative state shall be entered on the following conditions:

  • From the Error Negative state, when an ACK is requested to be sent. When in the Valid Negative state, the Receive Polarity Flag shall be negative.

ACKs are therefore sent with a negative Sequence Number.

The Receive Error state machine shall leave the Valid Negative state on the following conditions:

  • When a NACK is requested to be sent, move to the Error Positive state, before sending the NACK.

Note the NACK is therefore sent with a negative Sequence Number.

Error Positive State

The Error Positive state shall be entered on the following conditions:

  • From the Valid Negative state, when a NACK is requested to be sent.
  • From Error Negative state, when an invalid Sequence Number is received with negative polarity. When in the Error Positive state, the Receive Polarity Flag shall be positive.

NACKs are therefore sent with negative Sequence Numbers as NACKs are sent with the opposite polarity to that indicated by the Receive Error state machine.

The Receive Error state machine shall leave the Error Positive state on the following conditions:

  • When an ACK is requested to be sent, move to the Valid Positive state, before sending the ACK.
  • When a data frame, broadcast frame, FCT, SIF or FULL is received containing a positive Sequence Number but an incorrect, out of sequence, Sequence Count, move to the Error Negative state, before sending any NACK in response to this error.

Note the ACK is therefore sent with a positive Sequence Number.

Error Negative State

The Error Negative state shall be entered on the following conditions:

  • From the Valid Positive state, when a NACK is requested to be sent.
  • From Error Positive state, when an invalid Sequence Number is received with positive polarity. When in the Error Negative state, the Receive Polarity Flag shall be negative.

NACKs are therefore sent with positive Sequence Numbers.

The Receive Error state machine shall leave the Error Negative state on the following conditions:

  • When an ACK is requested to be sent, move to the Valid Negative state, before sending the ACK.
  • When a data frame, broadcast frame, FCT, SIF or FULL is received containing a negative Sequence Number but an incorrect, out of sequence, Sequence Count, move to the Error Positive state, before sending any NACK in response to this error.

Note the ACK is therefore sent with a negative Sequence Number.

Data word identification state machine

General

The Data Word Identification state machine shall be used to identify which type of frame a data word belongs to, in order to support de-multiplexing of different frame types.

The state diagram for the Data Word Identification state machine is illustrated in Figure 549.

Unknown control words shall not cause an error when received.

Unknown control words are ignored which ensures forwards compatibility with future developments of SpaceFibre.

Image Figure 549: Data Word Identification state machine

RxNothing state

The RxNothing state shall be entered on one of the following conditions:

  • Following a link reset.
  • From the RxDataFrame state, when an EDF is received.
  • From the RxBroadcastFrame state, when an EBF is received.
  • From any state when an RXERR, a RETRY, a sequence error, a CRC error or an unexpected control word or incorrect frame length is received.
  • 1    A sequence error occurs when the Sequence Count in a SEQ_NUM of a data frame, FCT or broadcast frame is not one more, using modulo 128 arithmetic, than the value in the Receive Sequence Counter or the polarity flag is different to the Receive Polarity flag. It also occurs when the Sequence Number of an idle frame or a FULL word does not match the value of the Receive Sequence Number.
  • 2    Unexpected control words are valid control words at an unexpected time. Therefore, unexpected control words are handled differently to unknown control words.
    When in the RxNothing state the Data Word Identification state machine shall initiate the following actions:
  • Indicate that no frame data is being received.
  • Discard any EBF and EDF that are received. The Data Word Identification state machine shall leave the RxNothing State on one of the following conditions:
  • When an SBF is received, move to the RxBroadcastFrame state.
  • When an SDF is received, move to the RxDataFrame state.
  • When an SIF is received, move to the RxIdleFrame state.

No action is taken in the RxNothing state when an EDF or EBF is received.

RxDataFrame state

The RxDataFrame state shall be entered on one of the following conditions:

  • From the RxNothing state, when an SDF is received.
  • From the RxIdleFrame state, when an SDF is received.
  • From the RxBroadcast&DataFrame state, when an EBF is received. When in the RxDataFrame state the Data Word Identification state machine shall initiate the following actions:
  • Indicate that data words being received belong to a data frame.
  • Count the number of data words being received in the data frame. The Data Word Identification state machine shall leave the RxDataFrame state on one of the following conditions, which are evaluated in the order given:
  • When a RETRY is received, move to the RxNothing state.
  • When an RXERR is received, move to the RxNothing state.
  • When a CRC error is detected, move to the RxNothing state.
  • When a sequence error is detected, move to the RxNothing state.
  • When an SBF is received move to the RxBroadcast&DataFrame state.
  • When an EDF is received, move to the RxNothing state.
  • When one or more of the following conditions occurs, flag a Frame Error and move to the RxNothing state:
    • an SDF is received.
    • an SIF is received.
    • an EBF is received.
    • the data word counter exceeds the maximum permitted amount of data in a data frame.

The maximum permitted amount of data in a data frame is L×64, where L is the value of "maximum number of data-sending lanes" parameter.

RxBroadcastFrame state

The RxBroadcastFrame state shall be entered on one of the following conditions:

  • From the RxNothing state, when an SBF is received.
  • From the RxIdleFrame state, when an SBF is received. When in the RxBroadcastFrame state the Data Word Identification state machine shall initiate the following actions:
  • Indicate that data words being received belong to a broadcast frame.
  • Count the number of data words being received in the broadcast frame. The Data Word Identification state machine shall leave the RxBroadcastFrame state on one of the following conditions, which are evaluated in the order given:
  • When a RETRY is received, move to the RxNothing state.
  • When an RXERR is received, move to the RxNothing state.
  • When a CRC error is detected, move to the RxNothing state.
  • When a sequence error is detected, move to the RxNothing state.
  • When an EBF is received and the broadcast word counter is equal to the permitted number of data words in a broadcast frame, move to the RxNothing state.
  • When one or more of the following conditions occurs, flag a Frame Error and move to the RxNothing state:
    • an SDF is received.
    • an SBF is received.
    • an SIF is received.
    • an EDF is received.
    • an EBF is received and the broadcast word counter is not equal to the permitted number of data words in a broadcast frame.
    • the broadcast word counter exceeds the permitted number of data words in a broadcast frame.

RxBroadcast&DataFrame state

The RxBroadcast&DataFrame state shall be entered on the following condition:

  • From the RxDataFrame state, when an SBF is received. When in the RxBroadcast&DataFrame state the Data Word Identification state machine shall initiate the following actions:
  • Indicate that data words being received belong to a broadcast frame.
  • Count the number of data words being received in the broadcast frame. The Data Word Identification state machine shall leave the RxBroadcast&DataFrame state on one of the following conditions, which are evaluated in the order given:
  • When a RETRY is received, move to the RxNothing state.
  • When an RXERR is received, move to the RxNothing state.
  • When a CRC error is detected, move to the RxNothing state.
  • When a sequence error is detected, move to the RxNothing state.
  • When an EBF is received and the broadcast word counter is equal to the permitted number of data words in a broadcast frame, move to the RxDataFrame state.
  • When one or more of the following conditions occurs, flag a Frame Error and move to the RxNothing state:
    • an SDF is received.
    • an SBF is received.
    • an SIF is received.
    • an EDF is received.
    • an EBF is received and the broadcast word counter is not equal to the permitted number of data words in a broadcast frame.
    • the broadcast word counter exceeds the permitted number of data words in a broadcast frame.

RxIdleFrame state

The RxIdleFrame state shall be entered on one of the following conditions:

  • From the RxNothing state, when an SIF is received. When in the RxIdleFrame state the Data Word Identification state machine shall initiate the following actions:
  • Indicate that data words being received belong to an idle frame.
  • Count the number of data words being received. The Data Word Identification state machine shall leave the RxIdleFrame state on one of the following conditions, which are evaluated in the order given:
  • When a RETRY is received, move to the RxNothing state.
  • When an RXERR is received, move to the RxNothing state.
  • When a CRC error is detected, move to the RxNothing state.
  • When a sequence error is detected, move to the RxNothing state.
  • When an SBF is received, move to the RxBroadcastFrame state.
  • When an SDF is received, move to the RxDataFrame state.
  • When one or more of the following conditions occurs, flag a Frame Error and move to the RxNothing state:
    • an EDF is received.
    • an EBF is received.
    • the data word counter exceeds the maximum permitted amount of data in an idle frame.

When an SIF is received, the Data Word Identification state machine remains in the RxIdleFrame state.

Control Words

FCT, ACK, NACK, FULL and RETRY control words shall be able to be received in any state.
Unknown control words shall be ignored and no action taken when they are received.

This is to maintain compatibility with future developments of the SpaceFibre standard.

General

The Link Reset state machine shall be used to ensure that both ends of a link are reset, when one or other end of that link is reset.

The state diagram for the Link Reset state machine is illustrated in Figure 550.

Image Figure 550: Link Reset state machine

Configuration Reset state

The Configuration Reset state shall be entered on one of the following conditions:

  • When Power On Reset is asserted.
  • When the Interface Reset management parameter is set. When in the Configuration Reset state the Link Reset state machine shall initiate the following action:
  • Reset all the configuration parameters.
  • Assert Link Reset.
  • Assert LaneReset of all lanes.

The sequence counters and related logic are reset when Link Reset is asserted, see requirement 5.3.5.1.2c for example.

The Link Reset state machine shall leave the Configuration Reset state unconditionally and move to the Near-End Reset state.

Near-End Reset state

The Near-End Reset state shall be entered on one of the following conditions:

  • Unconditionally from the Configuration Reset state.
  • When the Link Reset management parameter is set.
  • From the Link Initialised state, when all lanes are NOT Active and Lane Capability information is received from the Lane or Multi-Lane layer, with the INIT3LinkResetFlag field set to 1, indicating that the far-end has been reset. When in the Near-End Reset state, the Link Reset state machine shall initiate the following actions:
  • Assert Link Reset.
  • Assert LaneReset of all lanes.
  • Reset the sequence counters and related logic. The Link Reset state machine shall leave the Near-End Reset state on one of the following conditions, which are evaluated in the order given:
  • When Power On Reset is asserted, move to the Configuration Reset state.
  • When the Interface Reset management parameter is set, move to the Configuration Reset state.
  • Unconditionally, move to the Check Far-End Reset state.

Check Far-End Reset state

The Check Far-End Reset state shall be entered on the following condition:

  • Unconditionally from the Near-End Reset state. When in the Check Far-End Reset state the Link Reset state machine shall initiate the following actions:
  • Pass Lane Capability information to the Lane layer or Multi-Lane layer with the INIT3LinkResetFlag field set to 1. The Link Reset state machine shall leave the Check Far-End Reset state on one of the following conditions, which are evaluated in the order given:
  • When Power On Reset is asserted, move to the Configuration Reset state.
  • When the Interface Reset management parameter is set, move to the Configuration Reset state.
  • When the Link Reset management parameter is set, move to the Near-End Reset state.
  • When Lane Capability information is received from the Lane or Multi-Lane layer with the INIT3LinkResetFlag field set to 1, indicating that the far-end has been reset, move to the Link Initialised state.

The Link Initialised state shall be entered on the following condition:

  • From the Check Far-End Reset state, when Lane Capability information is received from the Lane or Multi-Lane layer with the INIT3LinkResetFlag field set to 1, indicating that the far-end has been reset. When in the Link Initialised state, the Link Reset state machine shall initiate the following actions:
  • Pass near-end Lane Capability information to the Lane layer or Multi-Lane layer with the INIT3LinkResetFlag field set to 0. The Link Reset state machine shall leave the Link Initialised state on one of the following conditions, which are evaluated in the order given:
  • When Power On Reset is asserted, move to the Configuration Reset state.
  • When the Interface Reset management parameter is set, move to the Configuration Reset state.
  • When the Link Reset management parameter is set, move to the Near-End Reset state.
  • When all lanes are NOT active and Lane Capability information is received from the Lane or Multi-Lane layer with the INIT3LinkResetFlag field set to 1, indicating that the far-end has been reset, move to the Near-End Reset state.

When link reset is asserted the following actions shall take place, for all virtual channels operating over the link:

  • All packets being written to output virtual channels of the link stop being written to the output virtual channel.
  • The data inside the output virtual channel buffers are flushed.
  • The remainder of the packets not yet written to the output virtual channels are discarded.
  • All packets being read from input virtual channels of the link stop being read from the input virtual channels.
  • The data inside the input virtual channel buffer is flushed.
  • The part of the packet that has already been read from each virtual channel of the link is terminated with an EEP, indicating that the rest of the packet was not received.
  • If the last character read out of the input virtual channel by the user when the link became inoperative was an EOP, EEP or Fill, an EEP is not added to that packet. When link reset is asserted, the following actions shall take place:
  • Stop passing the current data frame or broadcast frame to the Lane or Multi-Lane layer.
  • Set the Broadcast Bandwidth Credit Counter to zero as per requirement 5.7.5d.
  • Set the initial seed for the PRBS generator to 0xFFFF and use this value to calculate the first idle word after link reset as per requirements 5.7.6.2.3d and 5.7.6.2.3e.
  • Clear the Transmit Sequence Counter to zero as per requirement 5.7.6.3.1d.
  • Clear the Transmit Polarity Flag to zero as per requirement 5.7.6.3.1e.
  • Clear the Receive Sequence Counter to zero as per requirement 5.7.6.3.2e.
  • Clear the Receive Polarity Flag to zero as per requirement 5.7.6.3.2f.
  • Empty the error recovery buffer as per requirement 5.7.7.1h.
  • Move the Data Word Identification state machine to the RxNothing state as per requirement 5.7.8.2a.1.
  • Move the Link Reset state machine to the Near-End Reset state as per requirement 5.7.9.3a.2.

Network layer

Network layer responsibilities

The SpaceFibre network layer shall transfer SpaceFibre packets, and broadcast messages over a SpaceFibre network.

The interfaces to and from the Network layer are illustrated in Figure 551.

Image Figure 551: Interfaces to the Network layer

The Network layer shall receive Packets and Broadcast Messages from the User Application, for sending over the SpaceFibre network.
The Network layer shall pass Packets and Broadcast Messages that have been received over the SpaceFibre network, to the User Application layer.
The Network layer shall pass N-Chars and Fills to the Data Link layer for sending over a virtual channel of a link in the network.
The Network layer shall receive N-Chars and Fills from the Data Link layer that have been received through a virtual channel of a link in the network.
The Network layer shall pass Broadcast Messages for sending over the SpaceFibre network to the Data Link layer.
The Network layer shall receive Broadcast Messages that have travelled over the SpaceFibre network from the Data Link layer.
The Network layer shall pass the current time-slot to the Data Link layer.
The Network layer shall be controlled by the following management parameters from the Management Information Base:

  • Routing switch virtual network to virtual channel mapping.
  • Routing switch routing table. The Network layer shall provide the following status information to the Management Information Base:
  • Routing switch status.
  • End-point status.

SpaceFibre network

Components of a SpaceFibre network

A SpaceFibre network shall comprise one or more nodes and zero or more routing switches interconnected with SpaceFibre links.

The UML diagram in Figure 552 illustrates the components of a SpaceFibre network.

Image Figure 552: Components of a SpaceFibre network

The SpaceFibre ports of nodes and SpaceFibre routing switches shall be interconnected with links.

A link shall connect two ports together, on the same or different SpaceFibre devices.

Nodes

Nodes shall host the applications using the services of a SpaceFibre network.
Nodes shall transfer packets and broadcast messages from one or more applications over one or more SpaceFibre ports.
End-points and Broadcast Interfaces shall provide the interface between the user application and the SpaceFibre network.

Routing Switch

A routing switch shall be used to interconnect many nodes together so that they can communicate, one with another, without having to have a dedicated point to point link from each node to every other node that it wishes to communicate with.
A SpaceFibre routing switch shall transfer packets from the input port of the switch where the packet arrives, to one or more output ports determined by an address carried at the front of the packet, together with the routing table.

Network

A SpaceFibre network shall transfer packets from source nodes to destination nodes.
Packets from a source node shall travel across a SpaceFibre link to a routing switch or a destination node.
Packets from a routing switch shall travel across SpaceFibre links to other routing switches or to destination nodes.
A SpaceFibre network shall support the broadcast of broadcast messages across the network.

Virtual networks

One or more virtual networks shall run over a SpaceFibre network.

The relationships of a virtual network are illustrated in Figure 553.

Image Figure 553: Relationships of a SpaceFibre virtual network

Two or more applications shall be interconnected and communicate via a virtual network.
It shall be possible to connect an application to one or more virtual networks.
An application shall send packets to and receive packets from any other application, that it is interconnected to, via a virtual network.
Packets shall travel within a single virtual network.
Packets shall be sent from an application through an end-point and across a virtual network.
Packets shall be received by an application over a virtual network through an end-point.
Each end-point shall provide an interface to one virtual channel.
A virtual channel shall be configured to belong to a virtual network, by giving it a virtual network number.

The virtual network number maps the virtual channel to a virtual network.

A virtual network shall support the transfer of packets from one end-point on that virtual network to any other end-point on that virtual network.
Each virtual network shall have an identifier from VN0 to VN63.
Virtual network identifiers VN64-VN255 are reserved and shall not be used.
Packets sent over a virtual network shall travel over only that virtual network from source end-point to destination end-point.

Packets are not permitted to travel over different virtual networks from source end-point to destination end-point.

Each virtual network shall operate independently from the other virtual networks.

Each virtual network behaves like a separate SpaceWire network.

In a virtual network, N-Chars from one packet shall not be interleaved with N-Chars from another packet.

The N-Chars in packets flowing over different virtual networks are interleaved at the data link level to provide appropriate QoS for each virtual network.

A virtual network shall use some or all of the links in a SpaceFibre network.
A virtual network shall comprise one virtual channel on each of the links it uses in a SpaceFibre network.

The virtual channels on the links used by the virtual network are each a part of the virtual network.

A virtual network shall use one and only one virtual channel in each of the links used by the virtual network.
A virtual network shall be mapped to one virtual channel on each output port of a node or a routing switch, connected to a link that the virtual network uses.

For example, virtual network VN1 can be mapped to VC3 of port 1 of a routing switch, to VC3 of port 2 and to VC 2 of port 4, and not mapped to any of the other ports.

A virtual network shall only send packets over the virtual channels on the links that are part of the virtual network.

Continuing with the previous example, virtual network VN1 can send packets through port 1, 2 and 4 but not port 3.

A virtual network shall not send packets over virtual channels that are not part of the virtual network.
A virtual network shall not send packets over links that are not part of the virtual network.
A virtual network shall be permitted to be mapped to different virtual channels on different SpaceFibre links used by the virtual network.

For example, virtual network VN1 can be mapped to VC3 of one link and VC6 of another link. In a routing switch each output port has a virtual network to virtual channel mapping. A packet arriving on a specific virtual network of an input port can be switched to any of the output ports that have a mapping to that virtual network (see clause 5.8.8.3). For example, a routing switch configured with VN1 mapped to VC1 on port 2, VN1 mapped to VC4 on port 3 and VN1 mapped to VC 2 on port 4, is able to route a packet arriving on VN1 on port 2 to port 3 (VC4) and port 4 (VC2).

The QoS of a virtual channel on a particular link in a network shall define the QoS of the corresponding virtual network at that point in the network.
It shall be possible for the QoS of a virtual channel, used by a virtual network on one link, to be different to that of other virtual channels on other links used by that same virtual network.
Virtual network VN0 shall be used for sending network control, configuration and housekeeping information to and from SpaceFibre nodes and routing switches.
When a node has a limited number of virtual channels available, virtual network VN0 may be used for control, configuration and housekeeping information for other equipment attached to that node.
Virtual network VN0 shall be mapped to virtual channel VC0.

Virtual network VN0 is not permitted to be mapped to any other virtual channel.

A link shall connect two ports of the same type together.
A link shall comprise one or more lanes.
A link shall contain two or more virtual channels.
When a link is being used in a simple point to point link application or is being used for configuration, control and monitoring purposes only, it may contain one virtual channel.
A virtual channel shall have the same virtual channel number at each end of the link.

A virtual channel has the quality of service defined by the Data Link layer management parameters.

Packet format

A SpaceFibre packet shall comprise one or more data characters followed by an end of packet marker, EOP, or error end of packet marker, EEP.

The format of a SpaceFibre packet is illustrated in Figure 554. It is identical to the format of a SpaceWire packet.

Image Figure 554: SpaceFibre packet format

The start of a packet shall be either:

  • The first data character placed in a virtual channel after a link is reset.
  • The data character that immediately follows an EOP or EEP on a virtual channel.

The data character that immediately follows an EOP or EEP is the first data character after the end of the previous packet.

The end of a packet shall be indicated by an EOP or EEP.
The packet shall contain one or more data characters.
A packet may contain zero data characters.

This can happen, for example, if the header is deleted from a packet containing just one data character. In this case, the zero length packet is discarded by the first routing switch that it encounters.

Zero or more data characters at the front of a packet shall form a destination address.
The remaining data characters, following the destination address and up to the EOP or EEP, shall form the cargo.

Sending a packet

To send a SpaceFibre packet over a virtual network, the network layer shall write the N-Chars forming the SpaceFibre packet to an end-point on that virtual network, starting with the leading N-Chars of the SpaceFibre packet.
If the end-point on the virtual network becomes temporarily unable to accept more N-Chars, the network layer shall wait until the end-point is able to accept more N-Chars.
After one SpaceFibre packet has been written to the end-point on a virtual network, the next SpaceFibre packet to be sent over that virtual network shall start to be written, provided that the end-point is able to accept more N-Chars.

Receiving a packet

When N-Chars are received at an end-point on a virtual network, the network layer shall be informed that there is data available to read from that end-point.
The network layer shall read data from an end-point at any time, provided that there is data available at that end-point.
When Link Reset is asserted and the last character read from an end-point was not an EOP, EEP or Fill character, an EEP shall be the next character read from that end-point.

This is equivalent to SpaceWire error handling, which uses the EEP to indicate at the receiver side that the link was disconnected and that the last packet provided was incomplete and in error.

Routing switch

Routing switch

A SpaceFibre routing switch shall forward a packet, arriving at one port, towards its needed destination, through another port or, when self-addressing is enabled, back through the same port as determined by the first data character of the packet and the contents of the routing table.

A packet can be forwarded through two or more ports when packet multicast is being used, see clause 5.8.11.

A SpaceFibre routing switch shall always forward a packet over the same virtual network as that on which the packet arrived at the routing switch.
A SpaceFibre routing switch shall comprise:

  • Three to 32 ports, which include SpaceFibre ports that interface to the SpaceFibre network and parallel ports that provide a parallel interface into the routing switch.
  • A switch matrix, which connects virtual channels in input ports to virtual channels in output ports.
  • A routing table, which together with the leading byte of a packet, the destination address, determines the port a packet is forwarded through.
  • A configuration node, which is accessible through the routing switch using port address 0 and which is used to configure the routing switch including the routing table and parameters for each SpaceFibre port.
  • One broadcast mechanism, which validates and broadcasts broadcast messages.
  • 1    To item 1: The minimum of three ports covers two ports plus a configuration port. A parallel port is the means by which parallel interfaces of various forms can be connected into the router, including large FIFO interfaces, DMA and parallel buses.
  • 2    The UML diagram in Figure 555 illustrates the components of a SpaceFibre routing switch.
    Image Figure 555: Components of a SpaceFibre routing switch

A port in a routing switch shall be bi-directional and contain an input port, an output port and one or more virtual channels.
A SpaceFibre port shall be made up of one data link and between one and sixteen lanes.
A virtual channel shall be configured to belong to a virtual network, by giving it a virtual network number.

The virtual network number maps the virtual channel to a virtual network.

A virtual channel shall pass packets received from the virtual network, associated with that virtual channel, to the switch matrix.
The switch matrix shall forward a packet to a virtual channel in the same or another port connected to the switch matrix.
The switch matrix shall only pass packets between virtual channels belonging to the same virtual network.

Virtual channels belonging to the same virtual network have the same virtual network number.

A virtual channel shall accept packets from the switch matrix for sending over the virtual network associated with that virtual channel.
All ports, except for the configuration port, shall contain at least two virtual channels in a port.
A port shall have a maximum of 32 virtual channels.
It shall be possible for the number of virtual channels in one port to be different from the number of virtual channels in another port.
A configuration node in the routing switch shall be used to configure, control and monitor the status of the routing switch.
When a routing switch is embedded in a unit, the configuration node in the routing switch may be used to configure, control and monitor the status of other equipment associated with the routing switch.

It is permitted for the configuration port of a routing switch embedded in some unit to be used to configure, control and monitor the unit, as well as configuring, controlling and monitoring the routing switch.

The configuration node in a routing switch shall be accessed via port 0, the configuration port, which is connected to the switch matrix.
The configuration port shall have only one virtual channel which is given the virtual network number VN0.
A routing switch configuration port shall be accessed using path addressing only.
The broadcast mechanism shall contain one or more broadcast channels.

Routing table

A routing switch shall use the leading data character of a packet to determine which output port the packet is forwarded through.
A routing table within the routing switch shall specify the mapping from the value of the leading data character to the output port or ports and also whether the leading data character is removed before the packet is switched to the output port.
The routing table shall interpret the leading data character of a SpaceFibre packet as specified in Table 535.

A leading data character with a value of 0 results in the packet being routed to the routing switch configuration port. A leading data character with a value of 6 results in the packet being routed to output port 6. A leading data character with a value of 49 results in the packet being routed to the output port that is referred to in location 49 of the routing table within the routing switch.

Table 535: Routing switch addresses

Leading data character


Address type


Port packet is routed to


Leading data character deletion


0


0x00


Path


Internal Configuration Port.


Always deleted.


1-31


0x01-0x1F


Path


Physical Output Ports 1-31 respectively.


Always deleted.


32-254


0x20-0xFE


Logical


A look-up table specifies the mapping from the leading data character, logical address, to the output port or ports the packet is forwarded through. There is one entry in this table for each value of the logical address, 32-255. Each entry is configured to specify the output port or ports to be used for each possible logical address.


A logical address is not normally deleted, unless it is part of a regional logical address, see clause 5.8.9.3. The leading data character is deleted if the physical output port is a gateway between distinct regions. The leading data character can also be deleted on final link to a node.


255


Logical


Reserved


Reserved logical address, which is treated in the same way as any other logical address.


Treated in the same way as a logical address.


A configuration port shall be assigned port address 0.
SpaceFibre and parallel ports shall be assigned port addresses 1-31, so that there is a maximum of 31 external ports on a routing switch.
An invalid routing table entry shall be one that is undefined or not yet configured.
Address 255 is reserved for future use and shall not be used.

Routing switch operation

When a packet arrives at a routing switch the output port that it is forwarded through shall be determined from the leading data character of the packet and the routing table.
A packet shall be switched to the virtual channel in the specified output port that has the same virtual network number as the virtual channel on which the packet arrived in the routing switch input port.

The packet, therefore, remains within the same virtual network.

If the virtual channel in the output port is not currently transmitting a packet, it shall be allocated to transmit the newly arrived packet.

Allocating the packet to the output port effectively connects the input virtual channel to the output virtual channel.

Once a connection has been made between the input port virtual channel and the output port virtual channel, N-Chars and Fills shall be forwarded from the input virtual channel to the output virtual channel as they arrive, provided that the output virtual channel is able to accept them and considering Fill deletion.

Fill deletion is specified in clause 5.3.7.2.

If the output virtual channel is not able to accept more N-Chars and Fills, the input virtual channel shall hold them until the output virtual channel becomes ready to accept more N-Chars and Fills.
The connection between a virtual channel in an input port and a virtual channel in an output port shall not change until the packet that is currently being transmitted has finished being sent or is terminated following an error.
If a virtual channel in an input port is waiting for packet characters to arrive, the virtual channel in the output port that it is connected to shall also wait.
If the virtual channel in the needed output port is busy sending a packet from another input port, the newly arrived packet shall wait at the input port until the assigned output port is free to transmit the new packet.
If two or more input ports are waiting to send a packet to the same virtual channel in an output port, arbitration shall be used to determine which input port is allowed to send the next packet to that output virtual channel.
After a virtual channel in an output port has accepted the EOP or EEP at the end of a packet, that virtual channel output port shall be available to accept a packet from another input port.
If the specified output port does not have a virtual channel with the same virtual network number as that on which the packet arrived in the input port, the packet shall be discarded and an invalid output port error recorded by the routing switch.
A routing switch receiving an empty packet, shall discard it by deleting the second EOP or EEP.

An EOP or EEP received immediately after an EOP or EEP represents an empty packet which does not have a destination address.

Virtual channel time-out

A configurable virtual channel time-out shall be used by all virtual channels to detect a packet that has become stuck.
When available logic resources permit, a separate configurable virtual channel time-out may be used for each virtual channel.
A packet shall be regarded by a virtual channel as being stuck when the following conditions are all fulfilled:

  • The first data character of the packet has been passed to the output virtual channel.
  • The EOP or EEP for that packet has not yet been passed to the output virtual channel.
  • The time since the last data character was sent from the input virtual channel to the output virtual channel is longer than the virtual channel time-out period. When a packet is stuck in a routing switch, the following actions shall be taken to clear the stuck packet:
  • The packet currently being transferred is discarded by the input virtual channel.
  • An EEP is placed in the output virtual channel. When a packet is stuck in a routing switch with virtual channel time-outs enabled, a stuck packet error condition should be registered.

The fact that this error has occurred can then be read via the routing switch configuration port.

The virtual channel time-out shall be able to be disabled, so that it does not time-out when a packet is stuck.

Routing switch reset

On reset of a routing switch the following shall occur:

  • All ports are reset.
  • Entries in the routing table for all logical addresses are set to not valid, so that a packet arriving with that logical address is discarded, until the corresponding entry in the routing table is configured.
  • Virtual network to virtual channel mapping is set to default values.
  • All configuration parameters are set to their default values.
  • Header deletion for regional logical addressing is disabled.
  • Group adaptive routing is disabled.
  • Packet multicast is disabled.

Virtual network mapping is specified in clause 5.8.3. Default configuration parameters are detailed in clause 5.9.3. Group adaptive routing is specified in clause 5.8.10 and packet multicast in clause 5.8.11.

Packet addressing

Path addressing

A path address shall describe the path through the SpaceFibre network from the source of the packet to its destination.

Table 535 summarises the function of each type of address.

A path address shall comprise one or more data characters at the start of a packet, with each data character in the range 0-31.

The first data character specifies the output port of the first routing switch encountered by the packet, the second data character the output port of the second routing switch, and so on for all the routing switches on the path through the network from source to destination.

When the leading data character of a packet has a value of 0, the packet shall be routed to the routing switch configuration port.
When a SpaceFibre packet arrives at a routing switch and the leading data character is in the range 0 to 31, the leading data character shall be removed and replaced by the Fill character, and the packet switched out of the port indicated by that data character.

For example, a leading data character with a value of 6 results in the packet being routed to port 6. Removing the leading path address character after it has been used exposes the next path address character for use at the next router on the path to the destination.

If, after the leading data character has been removed and replaced by a Fill character, the first word of a packet contains only Fill characters, it shall be deleted.
The complete path address shall comprise a sequence of data characters, one for each router to be encountered on the path from the packet source to the packet destination.
A SpaceFibre routing switch shall support path addressing.

Logical addressing

A logical address shall comprise a single data character at the start of a packet, with a value in the range 32 to 255.
The logical address shall be used by all routing switches on the path from source to destination to look up the needed output port numbers in their routing tables.

Table 535 summarises the function of each type of address.

When a SpaceFibre packet arrives at a routing switch and the leading data character is in the range 32 to 255, the leading data character shall be used as an index into a routing table in the routing switch to determine which port the packet is forwarded through.

For example, a leading data character with a value of 49 results in entry 49 of the routing table specifying the output port that the packet is forwarded through. If entry 49 contains the value 7, the packet is forwarded through port 7.

Address 255 shall be reserved and not used.
The logical address shall not be removed from the packet when the packet is forwarded.

If regional logical address deletion is being used, see clause 5.8.9.3, it is possible to have more than one logical address at the start of a packet.

A SpaceFibre routing switch should support logical addressing.

Regional logical addressing

SpaceFibre shall also support regional logical addressing which is a special case of logical addressing.
A routing switch shall be configurable to remove the logical address character at the start of a packet and replace it with a Fill character when a packet is forwarded.

  • 1    The deletion of a logical address is used to expand the number of nodes that can be accessed using logical addressing. A large network is divided into regions where a logical address applies. When crossing a boundary between regions, the logical address is deleted exposing a new logical address that applies to the next region. Regions using logical addressing can be connected to regions using path addressing. This mechanism enables more than 223 nodes to be accessed using a series of logical addresses.
  • 2    A regional logic address can be used wherever a logical address is used.
    When a leading character is deleted by a routing switch only one data character shall be deleted by that routing switch.

Addressing errors

If a port with a specific number does not exist in the routing switch, a packet arriving with a leading data character that references that non-existent port shall be discarded.
A packet arriving with a leading data character that references a non-existent port should result in an invalid address error being registered.
If the leading data character is a logical address that refers to an entry in the routing table that has not been configured or has been configured to refer to a port that does not exist in the routing switch, all the N-Chars in the packet shall be discarded as they are received by the routing switch.
A packet arriving with a leading data character that references an entry in the routing table which does not contain a valid port number should result in an invalid address error being registered.

The default behaviour of logical address 255 is the same as other logical addresses.

If an output port referenced by the leading data character of a packet does not have a virtual channel configured to the same virtual network as that on which the packet arrived, the packet shall be discarded and an invalid address error and invalid virtual network error registered.

Group adaptive routing

Group adaptive routing shall be optional in a routing switch.
A routing switch that supports group adaptive routing shall be able to route a packet with a logical address to one of several ports which is known as group adaptive routing.
A routing switch that supports group adaptive routing shall:

  • Have entries for each logical address in the routing table which specify one or more output ports that a packet with that logical address is able to be routed to.
  • Route a packet arriving with a leading data character that is a logical address to one port, from the set of ports specified in the routing table, which is ready to send packets, where the virtual channel, with the same virtual network number as that on which the packet arrived, is not currently being used to send a packet.
  • When all of the set of output ports specified for a logical address are already sending packets over their virtual channels that have the same virtual network number as that on which the packet arrived, arbitrate between all the input ports waiting to use the specified set of output ports as each of the virtual channels in the output ports becomes free.
  • When an input port wins the arbitration, connect its input virtual channel to the output virtual channel in the output port that it competed for. A routing switch shall not support group adaptive routing for path addresses.

Packet multicast

Packet multicast, sending of a particular packet to several destinations, shall be optional in a source node.

  • 1    It is not necessary for a source node to implement packet multicast.
  • 2    Use packet multicasting with extreme care, as it introduces many new ways to block or deadlock sections of a virtual network.
    Packet multicast in a routing switch shall be optional.

It is not necessary for a routing switch to implement packet multicast.

A routing switch that supports packet multicast shall provide that support as follows:

  • The routing table in the routing switch specifies the set of ports, the multicast set, that a packet with a particular logical address is sent through concurrently.
  • When a packet arrives with a logical address that is configured for multicast, the packet is sent to each of the output ports in the multicast set.
  • The packet to be multicast is sent to the designated output ports only when all of them are ready to accept a new packet.
  • If one or more of the output ports in the multicast set is not ready, all the output ports wait and the packet is not sent to any of the multicast output ports until they are all ready. When one or more of the ports in the multicast set are disabled, the routing switch should continue to forward packets to other ports in that multicast set.
    Only virtual channels on the same virtual network shall be used for packet multicast.

Virtual channels are on the same virtual network when they are configured with the same virtual network number.

Broadcast messages

Broadcast channels

256 broadcast channels should be supported by each SpaceFibre router.
Each broadcast channel shall be identified by a broadcast channel number.
A broadcast message shall remain in the broadcast channel in which it was introduced in the network.
A broadcast channel shall be associated with one node or routing switch configuration node only.
The node or routing switch configuration node that is associated with a broadcast channel shall be the sole source of broadcast messages on that broadcast channel.

This means that a total of 256 nodes or routing switches can be sources of broadcast messages. Other nodes that are not sources of broadcast messages can be included in the network. The broadcast channel number indicates the source of the broadcast message.

It shall be possible for a node to not be associated with a broadcast channel, in which case that node is unable to send broadcast messages but is able to receive them.

Broadcast mechanism

When a broadcast message arrives at a routing switch, the port on which it arrived, port of arrival, shall be compared to the port on which the previous broadcast message arrived for the same broadcast channel, previous port of arrival.
The broadcast message shall be accepted to be broadcasted on any of the following conditions:

  • It is the first broadcast message on that broadcast channel following reset of the routing switch.
  • The port of arrival is the same as the previous port of arrival of the last accepted broadcast.
  • It has been longer than the broadcast time-out interval since the last broadcast message on the same broadcast channel was accepted, and the LATE flag of the broadcast message is clear, indicating that the broadcast message is not late.

This method guarantees that the same broadcast message cannot be received more than once by the same node. It also does not limit the rate at which broadcast messages with the same channel can be generated, except in the case of a permanent link error or network topology change, in which case, the node has to wait for the duration of the broadcast time-out interval before sending a new broadcast message to ensure that the broadcast is not discarded.

The broadcast time-out interval shall be set to slightly longer than the time needed for a broadcast message to travel through the longest path of the network when all links in the network are operating.
A broadcast message shall be broadcast through the ports of the routing switch, excluding the port on which the broadcast message arrived.
A broadcast message shall only be broadcast through active ports of a routing switch which are enabled for message broadcasting.

SpaceFibre nodes

A SpaceFibre node shall act as any of the following:

  • A source of packets and broadcast messages sent over a SpaceFibre network.
  • A destination for packets and broadcast messages received over a SpaceFibre network.
  • Both a source and destination of packets and broadcast messages. A SpaceFibre node shall comprise the following:
  • One or more SpaceFibre ports or parallel ports, which each contain one or more virtual channels.
  • One or more end-points, each of which provides an interface between a virtual channel of a port and the host system.
  • Zero or one broadcast mechanism, which broadcasts broadcast-messages over the ports and broadcast-interface of the node.
  • Zero or one broadcast interface, which provides the interface from applications hosted by the node to the broadcast mechanism.

The UML diagram in Figure 556 illustrates the components and specialisations of a SpaceFibre node.

Image Figure 556: Components and specialisations of a SpaceFibre node

A port shall be bi-directional and contain an output port, an input port and one or more virtual channels.

An asymmetric multi-lane link, with more lanes in one direction than in the other, is still a bi-directional link and hence the ports at each end are bi-directional ports.

An end-point shall provide the means by which an application is able to interface to a virtual channel in a port and send and receive SpaceFibre packets over a network.
An end-point shall belong to the same virtual network as the virtual channel with which the end-point is associated.
To send a packet out of a port over a specific virtual network, the host system shall pass the packet to the port’s end-point that has its virtual channel mapped to the specific virtual network.
To receive a packet from a port sent over a specific virtual network, the host system shall read the packet from the port’s end-point that has its virtual channel mapped to the specific virtual network.
A SpaceFibre node shall support virtual network number VN0 and at least one other virtual network.
When logic resources are extremely limited, a SpaceFibre node may support only one virtual network.

A node with only one virtual network is not recommended, as many of the benefits of SpaceFibre are lost when only one virtual network is supported.

A configuration node shall have only one virtual channel which is assigned the virtual network number VN0.
A broadcast interface shall accept broadcast messages from an application for broadcasting over the SpaceFibre network using a broadcast channel.
A broadcast interface shall pass broadcast messages received over a broadcast channel from the SpaceFibre network to applications on the node.

SpaceFibre units

A SpaceFibre unit shall comprise zero or more nodes and zero or more routing switches.
A SpaceFibre unit shall comprise at least one node or routing switch.

The components of a SpaceFibre unit are illustrated in the UML diagram of Figure 557.

Image Figure 557: Components and specialisations of a SpaceFibre unit

A SpaceFibre unit shall contain one or more applications which use the services of a SpaceFibre network.

Examples of a SpaceFibre unit include a routing switch, an instrument with a SpaceFibre interface, a processor with a SpaceFibre interface and a mass memory with either an internal SpaceFibre network connecting memory modules or external SpaceFibre interfaces.

Management Information Base

Management Information Base responsibilities

The SpaceFibre Management Information Base shall configure, control and monitor the operation of the other SpaceFibre layers.

Network management

The Remote Memory Access Protocol, (RMAP) in compliance with the ECSS-E-ST-50-52, shall be used for remote configuration, control and monitoring of SpaceFibre networks.
Network configuration, control and monitoring should be carried out using virtual network VN0 only.
Network configuration, control and monitoring shall only be carried out by network managers.
Only network managers shall be permitted to be RMAP initiators on virtual network VN0.

Since only VN0 is used for network configuration, control and monitoring and only network managers can be RMAP initiators on VN0, this prevents any other node from inadvertently accessing the configuration, control and monitoring space of the routing switches and nodes in a SpaceFibre network.

Configuration parameters

Configuration parameters shall be readable and writable via the management interface.
The configuration parameters listed in Table 536 shall be provided.
The configuration parameters shall be set to the value provided in Table 536 upon power-on or interface reset.
When an application requires specific default values, upon interface reset the configuration parameters may be set to values different to values specified in Table 536.
Table 536: SpaceFibre configuration parameters

Layer


Parameter


Description


Reset value


Network


Routing Table


Routing switch routing table which specifies for each logical address the port or ports that a packet is forwarded through.


All ports mapped to “invalid” indicating the logical address has not been programmed and a packet arriving with that logical address is discarded.



Router Virtual Network Mapping


Routing switch virtual network to virtual channel mapping for each port.


VN0 mapped to VC0, VN1 to VC1, and so on with VNy mapped to VCy.


Data Link


Priority level (VC)


Priority level assigned to a particular virtual channel.


The priority level with the lowest precedence which is supported by the implementation, e.g. 4 if there are four priority levels.



Normalised Expected Bandwidth (VC)


The fraction of overall link bandwidth assigned to a particular virtual channel.


See requirement 5.7.4.5r.



Allocated Time Slots (VC)


The time-slots in which a particular virtual channel is permitted to send data frames.


This parameter is an array of 64 bits, where 64 is the number of time-slots in the schedule. A bit is set to one to indicate that the virtual channel can send data in the corresponding time-slot.


All ones



Virtual Channel Idle Time Limit


Determines the maximum time a channel can be idle without sending data before the underuse indication is raised. The period value can be hardcoded or can be provided by an optional configuration parameter for all VC channels or for each VC channel independently.


1 ms


Data Link


Bandwidth Credit Limit


Determines the maximum credit that can be accumulated by a virtual channel. When the maximum credit is reached the Bandwidth Credit Counter saturates and starts to forget the previous bandwidth utilisation of the link. The Bandwidth Credit Limit consequently determines how long the Bandwidth Credit Counter remembers previous use of bandwidth. This parameter is normally hardwired. If an implementation includes it as a management parameter, one value serves all virtual channels.


Implementation dependent



Normalised Expected Broadcast Bandwidth


The fraction of the overall link bandwidth assigned to broadcast messages.


10%



Continuous Mode (VC)


Indicates whether the virtual channel is set in Continuous mode (see requirement 5.7.2.2.h).


Not in Continuous Mode



DataScrambled


Determines whether data frames travelling over the SpaceFibre link are scrambled or not.


Scrambled



FCT Multiplier (M)


FCT Multiplier (M) is an integer in the range 1 to 8 which determines the value of each FCT. This parameter is normally hardwired. If an implementation includes it as a management parameter, it is only updated when the link is reset, i.e. when the Link Reset State Machine is not in Link Initialised state.


Set to 1, when the Multi-Lane layer is not implemented. Otherwise set to the value of the Maximum Number of Data-Sending Lanes parameter.



Data Segment Multiplier (N)


Data Segment Multiplier (N) is an integer less than or equal to the number of data-sending lanes in a link, including both active lanes and inactive lanes. This parameter is normally hardwired. If an implementation includes it as a management parameter, it is only updated when the link is reset, i.e. when the Link Reset State Machine is not in Link Initialised state.


Set to 1, when the Multi-Lane layer is not implemented. Otherwise set to the value of the Maximum Number of Data-Sending Lanes parameter.


Data Link


Link Reset


Performs a link reset, for example, when the link is disconnected from a device and then connected to a different device.


De-asserted



Interface Reset


Resets the link and all configuration parameters


N/A


Multi-Lane layer


Maximum Number of Data-Sending Lanes


The maximum number of data-sending lanes that are permitted in a link. This parameter is only acted upon following a link reset.


Implementation dependent



RxEn(lane)


Lanes that are able to receive.


Asserted for all lanes capable of receiving



TxEn(lane)


Lanes that are able to transmit.


Asserted for all lanes capable of transmitting


Lane Layer


Start mode (lane)


Asserts or de-asserts LaneStart for the corresponding lane.


De-asserted



Autostart (lane)


Asserts or de-asserts AutoStart for the corresponding lane.


Asserted



LaneReset (lane)


Asserts or de-asserts LaneReset for the corresponding lane.


De-asserted



Parallel Loopback (lane)


Enables or disables the parallel loopback for the corresponding lane.


De-asserted



Standby Reason (lane)


Reason for setting lane to standby. It sets bits 4 to 7 of the Standby Reason Field in the STANDBY control words. The values used are up to the user or implementation.


Bits 4 to 7 of the Standby Reason field are set to zero.


Physical Layer


Near-End Serial Loopback (lane)


Enables or disables the near-end serial loopback for the corresponding lane.


De-asserted



Far-End Serial Loopback (lane)


Enables or disables the far-end serial loopback for the corresponding lane.


De-asserted


Status parameters

Status parameters shall be readable via the management interface.
The mandatory status parameters shall be as listed in Table 537.
Implementations may provide additional status information for debugging purposes.
The way the status parameters are cleared shall be implementation dependent.
The status parameters shall be cleared on Link Reset Command.
Table 537: SpaceFibre status parameters

Layer


Parameter


Description


Network


Node End-Point Status


Status information for each end-point in a node.


Routing Switch Status


Status information for a routing switch.


Data Link


BW over use (VC)


Indicates that the virtual channel is using much more bandwidth than expected and has reached the minimum bandwidth credit value.



BW under use (VC)


Indicates that the virtual channel is using less bandwidth than expected and that the bandwidth credit has remained at its maximum value for a certain time, the Virtual Channel Idle Time Limit.



Has Credit (VC)


Indicates that there is space in the input buffer at the other end of the link, the destination.



Input buffer overflow (VC)


Indicates that an input buffer is receiving data when it is full. This ought not to happen and indicates a fatal protocol error.



FCT Credit Counter overflow (VC)


Indicates that the FCT credit counter for a particular virtual channel has overflowed.



16-bit CRC error


Set when a 16-bit CRC error has occurred. This indicates that one or multiple lanes are receiving multiple bit errors, which is not expected under nominal operation.



Frame Error


Set when a Frame error has occurred as indicated by the Data words identification state machine.



CRC-8 error


Set when a CRC-8 error occurs. This can occur under nominal operation.



Sequence error


Set when a sequence error occurs. This can occur under nominal operation.



Error recovery buffer empty


Set when the error recovery buffer is empty. This indicates that all data frames, broadcast frames and FCTs that have been sent have been acknowledged.


Data Link


Number of error recovery attempts


The number of error recovery attempts made by the SpaceFibre port. Incremented by one for every error recovery attempt that is initiated.



Link Reset Caused by Protocol Error


Set when an ACK or NACK is received with an inconsistent Sequence Count.



Far-End Link Reset


Set when the Link Reset state machine at the near-end of the link, moves from the Link Initialised state to the Near-End Reset state, because the Lane Capability information is received from the Lane or Multi-Lane layer with the INIT3LinkResetFlag field set to 1.


Multi-Lane Layer


Data-sending lanes


Indicates which lanes are data-sending lanes



Data-receiving lanes


Indicates which lanes are data-receiving lanes



Alignment State


State of Alignment state machine.


Lane Layer


Lane State (lane)


Indicates the current state of the Lane Initialisation state machine in a lane.



RXERR Counter (lane)


Value of the RXERR word counter. Can be used to obtain the current BER.



RXERR Overflow (lane)


Set when RXERR word counter overflows in Active state.



Far-End Standby (lane)


Set when the STANDBY words are received from the far-end of the link, indicating that the far-end is going into standby. Optionally, the Standby Reason can be provided.



Timeout (lane)


Set when a connection timeout occurs.



Far-End Lost Signal (lane)


Set when LOST SIGNAL control words are received from the far-end of the link, indicating that the far-end has lost the signal from the near-end. Optionally, the value of the Reason field of the LOST SIGNAL control words can be provided.



Far-End Capabilities (lane)


Reports the value of the Capabilities field of the last correctly received INIT3 control word.



RX Polarity


(lane)


Set when the receiver polarity is inverted.


Physical Layer


NoSignal (lane)


Asserted when no signal is detected at the receiver.



Bit-synchronisation (lane)


Indicates when bit synchronisation is achieved.


Service interfaces

Overview

Clause 6 provides the service interfaces to the OSI layers of the SpaceFibre standard, which are the Network layer, Data-Link layer and Physical layer. Note that in the OSI model the Multi-Lane layer and Lane layer are sub-layers of the Data Link layer so do not have service interfaces. A service interface to the Management Information Base is also provided.

Network layer service interface

Network layer services

The services that shall be associated with the Network layer are:

  • Packet Transfer service.
  • Broadcast message service.

Packet Transfer service

Service primitives

The service primitives that shall be associated with the Packet Transfer service are:

  • SEND_PACKET.request.
  • READ_PACKET.indication.

SEND_PACKET.request

Function

The SEND_PACKET.request primitive shall be used to send a SpaceFibre packet across a SpaceFibre network through a virtual network.

Semantics

The SEND_PACKET.request primitive shall provide the following parameters:

  • SEND_PACKET.request (Virtual Network, SpaceFibre Packet).

When generated

When the user has a packet to send over the SpaceFibre network, it shall generate a SEND_PACKET.request primitive to request to send a SpaceFibre packet over the network using a specific virtual network.

Effect on receipt

On receipt of the SEND_PACKET.request primitive the SpaceFibre node receiving the request shall send the SpaceFibre packet over the SpaceFibre network using the specified virtual network.

READ_PACKET.indication

Function

A SpaceFibre node receiving a SpaceFibre packet shall pass a READ_PACKET.indication primitive to the Read SpaceFibre Packet Transfer service user to indicate that a SpaceFibre packet has arrived over a particular virtual network and is waiting to be read.

Semantics

The READ_PACKET.indication primitive shall have the following parameters:

  • READ_PACKET.indication (Virtual Network, SpaceFibre Packet, Terminated by EEP).

When generated

The READ_PACKET.indication primitive shall be passed to the Read Packet Transfer service user when a SpaceFibre packet is received.

Effect on receipt

The effect on receipt of the RX_PACKET.indication primitive by the Read Packet Transfer service user shall be that the service user reads the received SpaceFibre packet.

Broadcast message service

Service primitives

The service primitives that shall be associated with the broadcast message service are:
BROADCAST_MESSAGE.request.BROADCAST_MESSAGE.indication.#### BROADCAST_MESSAGE.request

Function

The BROADCAST_MESSAGE.request primitive shall be used by the SpaceFibre network layer to request a SpaceFibre node to send a broadcast message over the SpaceFibre network.

Semantics

The BROADCAST_MESSAGE.request primitive shall provide the following parameters:

  • BROADCAST_MESSAGE.request (Broadcast Channel, Broadcast Type, Message).

When generated

When the SpaceFibre user has a broadcast message to send it shall generate a BROADCAST_MESSAGE.request primitive to request a SpaceFibre node to send the broadcast message of a particular type over a specific broadcast channel.

Effect on receipt

On receipt of the BROADCAST_MESSAGE.request primitive the SpaceFibre node shall send the broadcast message over the specified broadcast channel immediately, subject to link priority rules.

BROADCAST_MESSAGE.indication

Function

The function of the BROADCAST_MESSAGE.indication primitive shall be to indicate to the SpaceFibre user that a broadcast message has arrived over a particular broadcast channel and to pass that message to the SpaceFibre user.

Semantics

The BROADCAST_MESSAGE.indication primitive shall have the following parameters:

  • BROADCAST_MESSAGE.indication (Broadcast Channel, Broadcast Type, STATUS, Message).

When generated

The BROADCAST_MESSAGE.indication primitive shall be passed to the SpaceFibre user, when a valid broadcast message is received.

Effect on receipt

The effect on receipt of the BROADCAST_MESSAGE.indication primitive by the SpaceFibre user shall be for the user to read the broadcast message.

The services that shall be associated with the Data Link layer are:

  • Virtual Channel service.
  • Broadcast Message service.
  • Schedule synchronisation service.

Virtual Channel service

Service primitives

The service primitives that shall be associated with the Virtual Channel service are:

  • TX_N-CHAR.request.
  • RX_N-CHAR.indication.

TX_ N-CHAR.request

Function

The TX_N-CHAR.request primitive shall be used to send an N-Char or Fill through a Virtual Channel of a SpaceFibre link.

Semantics

The TX_N-CHAR.request primitive shall provide the following parameters:

  • TX_N-CHAR.request (Virtual Channel, N-Char/Fill).

When generated

When the user has an N-Char or Fill to send over a specific virtual channel of the SpaceFibre link, it shall generate a TX_N-CHAR.request primitive to request to send the N-Char or Fill over that Virtual Channel.

Effect on receipt

On receipt of the TX_N-CHAR.request primitive, the SpaceFibre interface shall send the N-Char or Fill over the specified Virtual Channel as soon as permitted by the SpaceFibre medium access controller.

RX_N-CHAR.indication

Function

The SpaceFibre interface shall pass an RX_N-CHAR.indication primitive to the SpaceFibre network layer to indicate that an N-Char or Fill has arrived over a particular Virtual Channel.

Semantics

The RX_N-CHAR.indication primitive shall have the following parameters:

  • RX_N-CHAR.indication (Virtual Channel, N-Char/Fill).

When generated

The RX_N-CHAR.indication primitive shall be passed to the SpaceFibre network layer when an N-Char or Fill is received.

Effect on receipt

The effect on receipt of the RX_N-CHAR.indication primitive by the SpaceFibre network layer shall be that the received N-Char or Fill is read from the specified Virtual Channel by the SpaceFibre network layer.

Broadcast message service

Service primitives

The service primitives that shall be associated with the broadcast channel service are:

  • TX_BROADCAST.request.
  • RX_BROADCAST.indication.

TX_BROADCAST.request

Function

The TX_BROADCAST.request primitive shall be used by the SpaceFibre network layer to request the SpaceFibre interface to send a broadcast message through a SpaceFibre broadcast channel.

Semantics

The TX_BROADCAST.request primitive shall provide the following parameters:

  • TX_BROADCAST.request (Broadcast Channel, Broadcast Type, STATUS, Message).

When generated

When the SpaceFibre network layer has a broadcast message to send it shall generate a TX_BROADCAST.request primitive to request the SpaceFibre interface to send the broadcast message over a specific broadcast channel.

Effect on receipt

On receipt of the TX_BROADCAST.request primitive the SpaceFibre interface shall send the broadcast message over the specified broadcast channel as soon as the current word has been sent or, when a broadcast frame is already being sent, at the end of that broadcast frame.

RX_BROADCAST.indication

Function

The function of the RX_BROADCAST.indication primitive shall be to indicate to the SpaceFibre network layer that a broadcast message has arrived over a particular broadcast channel and to pass that message to the SpaceFibre network layer.

Semantics

The RX_BROADCAST.indication primitive shall have the following parameters:

  • RX_BROADCAST.indication (Broadcast Channel, Broadcast Type, STATUS, Message).

When generated

The RX_BROADCAST.indication primitive shall be passed to the SpaceFibre network layer, when a valid broadcast message is received.

Effect on receipt

The effect on receipt of the RX_BROADCAST.indication primitive by the SpaceFibre network layer shall be for the network layer to validate and forward valid broadcast messages.

Schedule synchronisation service

Service primitives

The service primitives that shall be associated with the schedule synchronisation service are:

  • SCHEDULE.request.

SCHEDULE.request

Function

The SCHEDULE.request primitive shall be used by the SpaceFibre network layer to pass current time-slot information to the Data Link layer in order to synchronise the scheduled QoS in each Data Link of a network.

Semantics

The SCHEDULE.request primitive shall provide the following parameters:

  • SCHEDULE.request (Time-Slot).

When generated

When a routing switch or node receives new time-slot information within a broadcast message, the SpaceFibre network layer shall generate a SCHEDULE.request primitive to inform the Data Link layer of the value of the new time-slot.

Effect on receipt

On receipt of the SCHEDULE.request primitive the Data Link layer shall use the time-slot information to end the previous time-slot and start the next one.

Physical layer service interfaces

Physical layer services

The services that shall be associated with the Physical layer are:

  • Transfer Symbols service.
  • Control service.

Transfer symbols service

Service primitives

The service primitives that shall be associated with the Transfer Symbols service are:

  • TX_SYMBOL.request.
  • RX_10BITS.indication.

TX_SYMBOL.request

Function

The Lane layer shall pass a TX_SYMBOL.request primitive to the Physical layer to send a symbol over the SpaceFibre link.

Semantics

The TX_SYMBOL.request primitive shall provide the following parameters:

  • TX_SYMBOL.request (Symbol).

When generated

The TX_SYMBOL.request primitive shall be passed to the Physical layer when the Lane layer has a symbol to send over the SpaceFibre link.

Effect on receipt

On receipt of the TX_SYMBOL.request primitive the Physical layer shall serialise the symbol and send it over the SpaceFibre link.

RX_10BITS.indication

Function

The Physical layer shall pass an RX_10BITS.indication primitive to the Lane layer to indicate that a symbol has been received and de-serialised.

Semantics

The RX_10BITS.indication primitive shall have the following parameters:

  • RX_10BITS.indication (10-bits).

When generated

The RX_10BITS.indication primitive shall be passed to the Lane layer when a symbol is received over the SpaceFibre link and de-serialised.

Effect on receipt

The effect on receipt of the RX_10BITS.indication primitive by the Physical layer shall be that the symbol is passed to the Lane layer.

Control service

Service primitives

The service primitives that shall be associated with the Control service are:

  • PHYSICAL_CONTROL.request.
  • PHYSICAL_STATUS.indication.

PHYSICAL_CONTROL.request

Function

The Lane layer shall pass a PHYSICAL_CONTROL.request primitive to the Physical layer to control the operation of the Physical layer.

Semantics

The PHYSICAL_CONTROL.request primitive shall provide the following parameters:

  • PHYSICAL_CONTROL.request (Enable TX, Enable RX, Invert RX Polarity).

When generated

The PHYSICAL_CONTROL.request primitive shall be passed to the Physical layer when the Lane layer needs to control the operation of the Physical layer.

Effect on receipt

On receipt of the PHYSICAL_CONTROL.request primitive the Physical layer shall set the operating mode of the Physical layer according to the control parameters passed in the PHYSICAL_CONTROL.request primitive.

PHYSICAL_STATUS.indication

Function

The Physical layer shall pass a PHYSICAL_STATUS.indication primitive to the Lane layer to indicate that the status of the Physical layer has changed.

Semantics

The PHYSICAL_STATUS.indication primitive shall have the following parameters:

  • PHYSICAL_STATUS.indication (LossOfSignal).

When generated

The PHYSICAL_STATUS.indication primitive shall be passed to the Lane layer when the Physical layer status has changed.

Effect on receipt

On receipt of the PHYSICAL_STATUS.indication primitive the Lane layer shall react depending on the Physical layer status.

Management Information Base service interface

Management Information Base services

The services that shall be associated with the Management Information Base are:

  • Link Management service.

Service primitives

The service primitives that shall be associated with the Link Management service are:

  • SET_MANAGEMENT_PARAMETER.request.
  • GET_MANAGEMENT_PARAMETER.request.

SET_MANAGEMENT_PARAMETER.request

Function

The function of the SET_MANAGEMENT_PARAMETER.request primitive shall be to set a management parameter of a SpaceFibre node or routing switch on the SpaceFibre network.

Semantics

The SET_MANAGEMENT_PARAMETER.request primitive shall provide parameters as follows:

  • SET_MANAGEMENT_PARAMETER.request (Parameter Identifier, New Parameter Value).

When generated

The SET_MANAGEMENT_PARAMETER.request primitive shall be generated to change a management parameter in the SpaceFibre port.

Effect on receipt

The effect on receipt of the SET_MANAGEMENT_PARAMETER.request primitive shall be to update the specified management parameter with the new value provided in the request.

GET_MANAGEMENT_PARAMETER.request

Function

The function of the GET_MANAGEMENT_PARAMETER.request primitive shall be to get the value of a management parameter from the SpaceFibre interface.

Semantics

The GET_MANAGEMENT_PARAMETER.request primitive shall provide parameters as follows:

  • GET_MANAGEMENT_PARAMETER.request (Parameter Identifier).

When generated

The GET_MANAGEMENT_PARAMETER.request primitive shall be generated to read the value of a management parameter in the SpaceFibre interface.

Effect on receipt

The effect on receipt of the GET_MANAGEMENT_PARAMETER.request primitive shall be for the SpaceFibre interface to provide the value of the specified management parameter.

Bibliography

ECSS-ST-S-00


ECSS system - Description, implementation and general requirements


ECSS-E-ST-50-12


Space engineering - SpaceWire - Links, nodes, routers and networks


HFAN-4.0.2


Maxim Integrated Application Note HFAN-4.0.2, Converting between RMS and Peak-to-Peak Jitter at a Specified BER, Rev.2, April 2008.


HFAN-4.0.3


Maxim Integrated Application Note HFAN-4.0.3, Jitter in Digital Communication Systems, Part 1, Rev.1, April 2008.


HFAN-4.0.4


Maxim Integrated Application Note HFAN-4.0.4, Jitter in Digital Communication Systems, Part 2, Rev.0, March 2002.


Texas Instruments, Application Report SLLA120, December 2002, N. Holland


Interfacing Between LVPECL, VML, CML, and LVDS Levels