SpaceWire's modulation and data formats generally follow the data strobe encoding - differential ended signaling (DS-DE) part of the IEEE Std 1355-1995. SpaceWire utilizes asynchronous communication and allows speeds between 2 Mbit/s and 200 Mbit/s, with initial signalling rate of 10 Mbit/s.[1] DS-DE is well-favored because it describes modulation, bit formats, routing, flow control, and error detection in hardware, with little need for software. SpaceWire also has very low error rates, deterministic system behavior, and relatively simple digital electronics. SpaceWire replaced old PECL differential drivers in the physical layer of IEEE 1355 DS-DE by low-voltage differential signaling (LVDS). SpaceWire also proposes the use of space-qualified 9-pin connectors.
SpaceWire and IEEE 1355 DS-DE allows for a wider set of speeds for data transmission, and some new features for automatic failover. The fail-over features let data find alternate routes, so a spacecraft can have multiple data buses, and be made fault-tolerant. SpaceWire also allows the propagation of time interrupts over SpaceWire links, eliminating the need for separate time discretes.
Link layer
Each transferred character starts with a parity bit and a data-control flag bit. If data-control flag is a 0-bit, an 8-bit LSB character follows. Otherwise one of the control codes, including end of packet (EOP).[2]
Network layer
The network data frames look as follows:
Address byte
Address byte...
Protocol ID
Frame data
One or more address bytes are used for the routing. Addresses are either physical ones (0โ31), or logical ones. The difference is that the physical addresses are deleted from the frame header during routing - which is used for hop-based routing (based on path specified in the frame itself). Logical addresses may be deleted as well, depending on the router configuration.
Interconnection
The hardware devices may be connected either directly, or via a SpaceWire router. In the former case, usually pairs of devices are used to guarantee a fail-safe operation, which is handled by the software.
A SpaceWire router is usually a crossbar switch-type device, operating in wormhole switching mode. This also may limit the speed of the communication to the lowest common speed.[3] The routing decisions are based on the programmed routing table and the initial incoming frame contents.