Real-Time Embedded CORBA over SpaceWire (RECS)

To investigate effective DSP processor to SpaceWire integration, the University of Dundee has developed a DSP board using one of the latest DSP processors from Analog Devices and a SpaceWire router. The SpaceWire DSP board comprises an eight-port SpaceWire router connected to an Analog Devices 21160 SHARC (Super-Harvard ARChitecture) DSP processor. The 21160 processor has six SHARC links which are high-speed, half-duplex, bi-directional, point-to-point communication links designed to connect together several SHARC processors in a parallel processing array. These links form the bridge between the SHARC processor and the SpaceWire router. Data to be sent out from the DSP processor are formed into SpaceWire packets with an appropriate destination address header and the cargo (i.e. the data to be sent in the packet). The packet is then transmitted across the SHARC link to the SpaceWire router with an end of packet marker code being appended to the packet. Data is received in a similar way with the SpaceWire packet being transferred across the SHARC link.

Driver software has been written for the SpaceWire DSP using the Visual DSP Kernel (VDK) model from Analog Devices. The driver is written in C with assembly language used for the interrupt service routines. The driver provides functionality to transmit and receive SpaceWire packets through SHARC links in the DSP using DMA. Packets are transmitted through a thread-safe, priority driven queue. However, the receive function is specific to a single thread, using DMA to transfer packets directly into data memory. This low-level driver has also been integrated with a third party TCP/IP stack.

The SpaceWire DSP board has been designed for research purposes and is being used by SciSys to implement a lightweight distributed object system (micro-ORB) running over SpaceWire. This work is funded by the British National Space Centre (BNSC) as part of the Real-time Embedded CORBA over SpaceWire (RECS) project.