"Multi Time-Code for SpaceWire"
Glenn P. Rakow
NASA Goddard Space Flight CenterAbstract
SpaceWire has become an accepted and increasing common high-speed (>200Mbps) on-board communications bus for satellite applications. The Time-Code feature of SpaceWire provides for low latency broadcast pulses to be sent over the network. Time-Codes have a time value associated with them, which is not really used for time information but as a self-destruct counter to stop the Time-Codes from infinitely propagating on the network, which may have loops. This is a very useful feature that will be used on three NASA satellite, James Webb Space Telescope (JWST), Geostationary Orbit Environmental (GOES)-R and the Lunar Reconnaissance Orbiter (LRO). Most of the time the Time-Code is used for the 1 Pulse Per Second (PPS), which is used to synchronize spacecraft time. This is fine if only one Time-Code is required, which is the restriction in the SpaceWire standard; permits only one Time-Code master. The standard has two extra reserved bits in the Time-Code field, which the NASA SpaceWire Intellectural Property (IP) core has taken advantage of to allow up to four Time-Code masters, simultaneously. This feature may be disabled and become fully SpaceWire compliant. However, the Multi Time-Code feature gives more flexibility to system engineers by allowing them to use these extra Time-Codes for interrupts, event signaling and hand shaking between nodes. The LRO mission uses this feature and eliminates discrete hard lines between sub-systems. This paper will describe the implementation of the Multi Time-Code and potential applications.