SpaceWire 101 Webex Seminar February 15th, 2006 www.aeroflex.com/spacewire
SpaceWire 101 What is SpaceWire Protocol, Links, Basic Communication Architecture Physical Layer Interface and Network Components How to use SpaceWire Aeroflex Product Descriptions Test Equipment Value Proposition
What Is SpaceWire? The SpaceWire Standard is a self-managing serial protocol that provides a high speed, low power serial interface while offering a flexible simple user interface SpaceWire uses LVDS High Speed data rates from 2 to 400Mbits/sec Low Power LVDS Drivers use 80% Less current than PECL devices Distances up to 30 feet SpaceWire is an Industry Standard The protocol is derived from IEEE 1355-1995 ECSS-E-50-12A* Managed by the SpaceWire Working Group *Available at http://www.estec.esa.nl/tech/spacewire/standards/
What Is SpaceWire? SpaceWire is different from the typical command and response communication of 1553 SpaceWire is a serial protocol that allows simultaneous transmit and receive (Full duplex) communication Simple User Interface 9 or 10 Bit Transmit & Receive FIFOs are typical Supports Variable Packet Size and Data Rates Accepted by a Growing Number of Organizations ESA, NASA, and DoD High Speed and Low Power LVDS Physical Interface
What Is SpaceWire? Physical Layer LVDS Aeroflex is the Industry leader in RadHard LVDS www.aeroflex.com/lvds Protocol Handler Manages the SpaceWire flow of data Memory Typically FIFOs, though other types of memory are not precluded Router Allows networking with SpaceWire
What Is SpaceWire? SpaceWire is Self Managing SpaceWire will not send data until it gets a request to do so from the other side Transmitter Receiver User 1 Places Blocks Wait for a message to send more blocks 8 Blocks Sent User 2 Removes Blocks (Unaware of how they got there) Send 8 Blocks Out of Blocks or 8 Blocks have been removed Since SpaceWire performs Simultaneous Transmit and Receive, each side of the link is doing the simple process shown above
Overview of Protocol During normal operation, a SpaceWire (Initiator) node manages data by sending Tokens to the (Receiver) node on the other end of the link Each Token indicates to the Receiver, the Initiator has 8 bytes of available buffer space The Receiver uses a credit counter to record each Token as it is received Therefore, three tokens received indicates there are 24 bytes of available buffer space on the Initiator s side Host (Initiator) Send 3 Flow Control Tokens to Subsystem Flow Example 1 2 Subsystem (Receiver) Receive 3 Flow Control Tokens From Host Host receives 24 bytes from Subsystem 4 3 Subsystem sends 24 * bytes to Host * The Subsystem will begin sending data upon receiving the first token if it has data in it s Xmit memory
Overview of Protocol Since both nodes have receive and transmit FIFO s, both nodes are Initiators and Receivers Additionally, each Initiator will send Tokens intermixed with data and other characters as long as there is at least 8 bytes of data space available in the Initiator s receive FIFO Each side keeps a running count of the number of Tokens sent and received
The SpaceWire Standard The Standard Defines the following levels Signal Level Physical Level Character Level Exchange Level Packet Level Network Level
Signal Level: Data and Strobe DS (Data Strobe) Encoding A Strobe signal is sent along with the data. The clock is extracted by XORing the Data and Strobe signals Data Strobe Clock
Physical Level A Single Point to Point Link Up to 10 meters D OUT1 D IN2 S OUT1 S IN2 D IN1 D OUT2 S IN1 S OUT2
Physical Level Cabling Up to 10m length terminated at each end by nine-pin micro-miniature D-type plugs
Character Level The SpaceWire Character Level Protocol is derived from IEEE 1355-1995 It also includes time codes to facilitate distribution of system time The standard defines two types of characters Control Characters Data Characters
Character Level Control Character 4 bit character P DC C 0 C 1 Bit P Bit DC Parity Bit (Odd Parity) Data Control Bit. High for Control. Bits C 0 & C 1 Control Code
Character Level Control Character Definitions FCT P 1 0 0 Flow Control Token. Used to help manage data flow and initialization. It is considered a Link Character 1 EOP EEP P 1 0 1 Normal End of Packet. Normal Character 2 P 1 1 0 Error End of Packet. Normal Character ESC P 1 1 1 Escape. Link Character 1. A Link Character does not get passed from the Exchange Level to the Packet Level. 2. A Normal Character gets passed from the Exchange Level to the Packet Level.
Character Level Data Character 10 bit Field P DC D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 Bit P Parity Bit (Odd Parity) Bit DC Data Control Bit. LOW for Data Bits D 0 to D 7 Data sent LSB to MSB
Character Level The two other Control Characters are formed from the previous combinations of the 4 bit Control Character and the Data Character NULL Character Formed from an ESC Character followed by an FCT Character. It is considered a Link Character P 1 1 1 0 1 0 0 Time Code Formed from an ESC Character followed by a Data Character. Also considered a Link Character P 1 1 1 1 0 T 0 T 1 T 2 T 3 T 4 T 5 T 6 T 7
Character Level Time Code Character P 1 1 1 1 0 T 0 T 1 T 2 T 3 T 4 T 5 T 6 T 7 Bits T 0 to T 5 Time Bits Bits T 6 to T 7 Timing Control Flags (reserved for future use by the SPWG) System Time Management TICK_IN - when asserted tells the node to send a Time Code Character Only one node in the system should have an active TICK_IN TICK_OUT - When asserted tells the user that a Time Code Character has been received
Character Level Character Summary
Character Level Typical Data Transfer NULLs are sent when there are no other characters to send This is to avoid a Link Disconnect NULL NULL Data NULL NULL ESC FCT ESC FCT ESC FCT ESC FCT D 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 S Clk
Character Level Parity Coverage Shown below in brackets, it is odd parity covering the current DC bit and the previous Data Bits or Control Code Bits DC Bit Control Code Bits NULL NULL Data NULL NULL D 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 P P P P P P P P S Clk
SpaceWire Architecture Simplified Block Diagram FIFO Implementation SpaceWire Protocol Handler Tx Clk Initialize Time Code Signals D O S O D I S I Xmit Clk Rec Rcv Data Transport (User Interface) Rcv FIFO Xmit FIFO Xmit FIFO Interface Rec FIFO Interface
Exchange Level Initialization Flow Control Detection of Disconnect Errors Detection of Parity Errors
Exchange Level Initialization A State Machine is used along with handshaking to initialize both ends of the link
Exchange Level Flow Control A SpaceWire Link is only able to send Data Characters if it is told there is space for them on the receiving side An FCT is sent to the link indicating there is space for 8 bytes of data. If multiple FCT s are sent there is a corresponding amount of data space available When a reset occurs the Credit count shall be set to zero The priority for sending characters is as follows Time Code (Highest Priority) FCT N-Characters Null (Lowest Priority)
Exchange Level Detection of Disconnect Errors A link disconnect is detected when there is more than 850 ns of gap between bits The link will attempt to recover using the initialization process Detection of Parity Errors Parity errors that occur in a Control or Data Character are detected when the next character is sent The error will get flagged to the system level
Packet Level The Standard essentially defines a packet as the transmission of a destination address followed by a data character or multiple data characters and terminated by an EOP or an EEP character
Packet Level Packet Format Destination Address A list of 0 or more Data Characters that represent the destination identity Cargo Data Characters sent to the Destination End of Packet Marker EOP or EEP Characters
Packet Level Interpretation of The Packet Format To the SpaceWire Protocol Handler Logic, the Destination Address is just another Data Character The Packet can contain any number of Data Characters A Packet is terminated by the EOP or EEP Character
Network Level Typical Network Configuration
How Is SpaceWire Used? The SpaceWire Standard specifies point to point configurations Physical Layer Not Shown Transmit and Receive constitutes One SpaceWire Link D SpaceWire Protocol Handler Transmit Receive S D S SpaceWire Protocol Handler
How Is SpaceWire Used? Typical Primary Redundant Configuration Router LVDS LVDS LVDS LVDS SpaceWire Router IC 8 Ports LVDS Primary LVDS LVDS LVDS LVDS LVDS Dual Link Protocol Handler CCA Primary Router LVDS LVDS LVDS LVDS SpaceWire Router IC 8 Ports LVDS Redundant LVDS LVDS LVDS LVDS LVDS CCA Redundant Dual Link Protocol Handler
Networking With SpaceWire Routers allow Networking Each Node can talk to any of the other Nodes through the Router SpaceWire Node SpaceWire Node SpaceWire Router SpaceWire Node SpaceWire Node
SpaceWire Solutions Dual Redundant SpaceWire System Examples Primary SpaceWire Links CCA 1 Each CCA includes a dual link protocol handler on board REDUNDANT Processor or other type of processing unit Aeroflex UTMC SpaceWire 8 Port Router CCA 2 Aeroflex UTMC SpaceWire 8 Port Router CCA 3 Could have a processor Or less powerful processing unit FPGA MicroController CCA 4
SpW PHY Product Description Implements low level SpaceWire Physical Layer allowing for predictable system performance and margin Operates on a 3.3 Volt Power Supply Two transmit and two receive LVDS differential signals for SpaceWire Interface External resets for the TX and RX flip-flops. Separate output enables for the TX and RX outputs LVTTL Compatible Inputs (5 volt tolerant) 3.3 Volt CMOS Outputs Cold Sparing on LVDS pins 28-lead flatpack Loopback feature for self test Mode select pins Bus width select pins Empty/full flag Read flag
SpW Phy Chip vs Standard LVDS PHY Chip Better for FPGA Designs FPGA s can have high worst case skew on I/O s Allows the Protocol Handler to run slower Each Device is a single link Better for redundancy systems Provides a buffer between connector and the Protocol Handler Standard LVDS Suitable for ASIC SpaceWire Implementations Provides a buffer between connector and the Protocol Handler
SpaceWire Protocol Handler Description Dual Link SpaceWire Interface ECSS-50-12A compliant Data Rates from 2 to 2000Mbps 10-bit transmit and receive FIFO 2.5 volt core, 3.3 volt logic interface Radiation-Hardened Available QML
PCI & SpaceWire Complete Not Designed
SpW Card Product Description 125Mbps Dual Link SpaceWire Interface 32-bit, 33MHz PCI Parallel Port Flow Control Process DMA Channel Logic Guaranteed Delivery Protocol 25 o C Operation
SpaceWire Test Solutions On September 15 th 2005, Aeroflex Signed a Distribution Agreement with 4Links Limited Milton Keynes England The Agreement allows Aeroflex to sell 4Links SpaceWire Test Equipment to it s US and Canada Customers Development Cards Bus Monitors & Analyzers SpaceWire Components/IP Conformance Testing Flight Cards System Developer Foreign entities (ITAR issues)
Reasoning Behind 4Links Agreement Development Cards Bus Monitors & Analyzers SpaceWire Components/IP Conformance Testing Flight Cards Aeroflex Colorado Springs The 4Links agreement places Aeroflex one step closer to a Complete SpaceWire Solutions Provider System Developer
About 4Links Limited 4Links Offers a variety of test solutions for SpaceWire Single and Multi Port Test Units Flexible configurations including monitor and error injection capabilities Up to 400Mbits/sec Simple to set up and easy to use Cables and other peripherals also available
Aeroflex RadHard SpaceWire Value Proposition SpaceWire Standard Products Reduced Risk SpaceWire Links Interoperability Faster Design Cycles No NRE Guaranteed Radiation Assurance Levels, QML-Q, QML-V Qualified Low Power High Speed LVDS Physical Interfaces Aeroflex Colorado Springs has developed over 14 RadHard LVDS Products The distribution agreement with 4Links will simplify the acquisition of test and validation equipment for Aeroflex customers
Thank you for your participation! Aeroflex Colorado Springs www.aeroflex.com/spacewire Sam Stratton SpaceWire Applications Engineer 719-594-8224 sam.stratton@aeroflex.com Info-ams@aeroflex.com