Putting the 'smarts' in SpaceWire cables. By Christophe Rouaud and Matthieu Salanave.
Many spacecraft and space instruments depend on the SpaceWire protocol (ECSS-E50-12A) to provide reliable, high speed communications. It is challenging to validate and debug SpaceWire systems within the physical confines and environmental extremes of these applications. But that's the mission of an instrument in a wire, a feat of electrical and mechanical engineering from Skylab Industries. Based in Toulouse, Skylab partners with space and aerospace engineering clients worldwide to solve tough flight systems in space and aviation systems. These systems must operate under difficult conditions and tight standards. The company focuses on R&D projects for the next generation of flightborne systems. According to ceo Vincent Lavignolle: "We specialise in challenging projects, where the return on investment will be at a minimum three years." Lavignolle said there are three keys to Skylab's business model. "We need to have the best possible products, to be competitively priced and to maintain good margins. We are developing the model today – in three years, we will have two or three generations of our products and the model will be fully realised." As an R&D based company, the process of moving from idea to successful products focuses on collaboration. The company's core strengths lie in developing IP and the collaboration between its electrical and mechanical engineers. Externally, Skylab plans to partner with additional international partners to apply its specialised solutions. One of Skylab's latest products is the SpaceWire smartCable – a high speed SpaceWire bridge and analyser moulded into a USB compatible cable. It serves three purposes: a bridge between USB and SpaceWire; a protocol analyser; and a physical cable. SpaceWire has been developed by the European Space Agency (ESA) to provide a reliable high speed link for spacecraft and space instruments transmitting up to 400Mbit/s (for more, see box). Easing the interconnection of sensors, memories, processing units and downlink telemetry subsystems, SpaceWire links are serial, high speed, bidirectional and full duplex. Data is sent along a SpaceWire link in discrete packets, along with control and time information. "SmartCable is a way for testing SpaceWire; it's a bridge between USB and SpaceWire," explains Stephan Davy, SpaceWire technical engineer. "The smartCable is a complete embedded system in a USB cable. It simplifies SpaceWire prototyping since you can plug either a laptop or a PC directly to the SpaceWire instrument." According to Davy, one of the key difficulties in designing smartCable was strict area constraints on the pcb. "That meant we had to use the smallest chips available. We also had to ensure mechanical solidarity of the board and the USB cabling, as well as compliance with USB speed and current constraints." FPGA based design allowed SpaceWire to meet these system performance specifications. Davy noted: "One of the obvious arguments of using an fpga is that we can integrate more logical features. We actually needed two SpaceWire IP cores in the analyser mode of the smartCable. We integrated a lot of logic modules needed to control the analogue chips and to implement communications features." Altium Designer simplified the multidiscipline design process, starting with design capture and pcb layout. "When we used the schematic and layout feature of Altium Designer," Davy continued, "we were pleased by the way we could implement design goals and check there were no errors before doing the layout. "We were also interested by the bridges that Altium Designer provides, such as those between the fpga constraints file and the I/O on the pcb on the one hand and the mechanical side on the other." These links were critical for spanning design domains and avoiding errors. "We needed to make sure the pcb would fit within the strict mechanical constraints. Mechanical considerations are an important constraint, especially because of the location of the input of the power supply, and on the smartCable project, the size of the connector was a huge constraint." During its mechanical engineering efforts, Skylab used visualisation and error checking features. "It was an excellent way for us to spot some minor errors," Davy observed. The visualisation and autochecking capabilities made a difference in the speed and accuracy of the overall design process. "One key outcome of the design rule checking (DRC) is that we succeeded on our first design with Altium Designer with absolutely no errors in the prototype," Davy said. "I'm sure that's not due to a random fact. We autochecked the schematics many times. Because of the quality of the technology, we could go in deep into the holes, using the DRC. At the same time, automatically generating reports and avoiding manual checks helped us to speed up the design process." "The Altium Designer tutorial was a great starting point," said Mathieu Salanave, another Skylab engineer. "The great thing about Altium Designer," Salanave added, "is that it includes all the disciplines needed for a project: fpga, pcb and mechanical. If there's any problem, the software helps us to spot it. There are many people in the project and there are many separations between the disciplines. Altium Designer makes it simple for different people to share design data." Pulling together all the disciplines and business partners is a key challenge with developing any high technology product. According to Lavignolle, the design environment plays a fundamental role. "It's very important because one of the secrets to innovation and collaboration is to be sure that you have the best tool in your hands. That makes you competitive. You can reduce the design cycle and you enter a market with a great product." "If you have the right tools and you are effective with them, you enter the market very quickly," Davy concluded, "and you have the maximum chance to be successful." Author profiles: Christophe Rouaud is SpaceWire Technical Manager, Matthieu Salanave is an electronics designer with Skylab Industries. SpaceWire key features SpaceWire uses data strobe encoding, in which 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 the data and strobe signal. No phase locked loop is required and the use of LVDS for the physical level allows complete SpaceWire devices, LVDS drivers and receivers to be implemented on one chip. SpaceWire interfaces can be implemented in less than 8000 logic gates, small enough for one or more SpaceWire interfaces to be included with application logic or an mcu on one chip. 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.