SpaceWire is a computer network designed to connect together high data-rate sensors, processing units, memory devices and telemetry/telecommand sub-systems onboard spacecraft. It provides high-speed (2 to 200 Mbit/s), bi-directional, full-duplex, data links which connect together SpaceWire enabled equipment. Networks can be built to suit particular applications using point-to-point data links and routing switches. Application information is sent along a SpaceWire link in discrete packets. Control and time information can also be sent along SpaceWire links.
Purpose of SpaceWire
The purpose of the SpaceWire standard is:
- to facilitate the construction of high-performance on-board data handling systems
- to help reduce system integration costs
- to promote compatibility between data handling equipment and subsystems
- to encourage re-use of data handling equipment across several different missions
Use of the SpaceWire standard ensures that equipment is compatible at both the component and sub-system levels. Processing units, mass-memory units and down-link telemetry systems using SpaceWire interfaces developed for one mission can be readily used on another mission. This reduces the cost of development, improves reliability and most importantly increases the amount of science that can be achieved within a limited budget.
Advantages of SpaceWire
One of the main advantages of SpaceWire is its low complexity (hence low gate count) and the fact that it can be implemented easily in both ASICs and FPGAs. SpaceWire interfaces can be implemented in around 5000 to 8000 logic gates. This makes it possible to include one or more SpaceWire interfaces together with application logic or a micro-computer on an FPGA or ASIC. SpaceWire uses data-strobe encoding, where a serial data signal and a strobe signal are sent on two differential pairs. The strobe signal is defined so that clock recovery is achieved by simply XORing together the data and strobe signal. No phase-locked loop is required, making it easy to implement a SpaceWire interface in any digital ASIC or FPGA device. Data-strobe encoding also gives good skew tolerance. SpaceWire is bi-directional, using two twisted pairs in each direction. The use of LVDS for the physical level allows complete SpaceWire devices, including LVDS drivers and receivers, to be implemented on a single chip, and provides the fault tolerant properties of LVDS. SpaceWire is a packet switching network that uses worm-hole routing switches for routing packets across the network. Worm-hole routing was adopted because it minimizes the amount of buffer memory needed in the routing switches, an important consideration for implementation in radiation tolerant chips where memory is at a premium. There is no restriction on the topology of a SpaceWire network. A network is constructed from point to point links and routing switches. When more than one link connects a pair of routing switches, group adaptive routing can be used to share the bandwidth of the links or to provide for fault tolerance, with rapid recovery from a link failure. SpaceWire provides support for the distribution of time information to all nodes on a SpaceWire network. This can be done with a resolution of a few microseconds.
The SpaceWire Standard
The SpaceWire standard was authored by Steve Parkes, Managing Director of STAR-Dundee Ltd, with input from engineers from across Europe. SpaceWire is published by the European Cooperation for Space Standarization as ECSS-E50-12A January 2003. The standard can be downloaded from http://spacewire.esa.int The SpaceWire standard is divided into several levels:
- Physical Level which provides connectors, cables and EMC specifications
- Signal Level which defines signal encoding, voltage levels, noise margins and data rates
- Character Level which specifies the data and control characters used to manage the flow of data across a link
- Exchange Level which covers the protocol for link initialisation, flow control, fault detection and link restart
- Packet Level which details how a message is delivered from a source node to a destination node
SpaceWire for Space
SpaceWire is supported by several radiation tolerant ASICs designed for ESA, NASA and JAXA. Current radiation tolerant devices are capable of up to 200 Mbit/s data signalling rate with a data-rate of 160 Mbit/s per link or 152 Mbit/s bi-directional per link. This level of performance meets the demands of many current and future missions.