SpaceWire has emerged as one of the main data-handling networks for use onboard spacecraft since the SpaceWire standard was published in January 2003. It is now being used on many ESA, NASA and JAXA spacecraft and by research organisations and space industry across the world. Below is a quick overview, and there's plenty more information around the knowledge base. If you would like to read the full standard, you can download the SpaceWire Standard here.
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 Mbits/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.
The purpose of the SpaceWire standard is:
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.
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 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:
SpaceWire is supported by several radiation tolerant ASICs designed for ESA, NASA and JAXA. Current radiation tolerant devices are capable of up to 200 Mbits/s data signalling rate with a data-rate of 160 Mbits/s per link or 152 Mbits/s bi-directional per link. This level of performance meets the demands of many current and future missions.