The CCSDS Spacecraft Onboard Interface Services (SOIS) Standards An Introduction Stuart Fowell 6th October 2009 Overview SOIS SOIS SOIS SOIS 2 Standardisation, OSI and SOA Architecture Services Prototyping and Reference Implementation SOIS Introduction CCSDS SOIS Standardisation The Consultative Committee for Space Data Standards (CCSDS) developing recommendations for communication services onboard a spacecraft, handled by the Spacecraft Onboard Interface Services (SOIS) area SOIS aims to provide a consistent interface to various low-level access methods, enabling a common interface to the application software This is achieved through the providing a uniform set of services over any subnetwork Eventual goal is reusable software that can be easily ported to new missions and run on a range of onboard buses without substantial modification Beyond the uniform set of services over any subnetwork, this goal is to standarise interfaces to devices Late configuration changes, e.g. relocation of thermistor, can be accommodated through simple spacecraft database changes without affecting onboard software Consistent interface should provide an enabler for more complex, higher-level software architectures, e.g. fault-tolerant, distributed, software frameworks and autonomous, onboard mission planners 3 SOIS Introduction SOIS, OSI and SOA SOIS defined with reference to OSI, similar to aspects of SOA SOIS defined as a layered architecture and services provided by each layer Each service defined in terms of: Service interface offered to higher layers Protocol engine (procedures and PDUs) May include time-outs on receiving PDUs Required services from lower layers Management Information Base (MIB) All defined using structured English Abstract definition, with no reference to implementation in hardware or software, programming languages, APIs etc. 4 SOIS Introduction SOIS Architecture Mission Specific Applications Application Layer Communication Management Application Support Layer CMD & Data Acquisition Services Transfer Layer Time Access Service File & Packet Store Services Message Transfer Service Device Enumeration Service Transport Protocol Network Protocol Subnetwork Layer Memory Access Service Packet Service Synchronisation Service Device Discovery Service Test Service Datalink Convergence Protocols Milbus Organised into layers: SpaceWire CAN Wireless Subnetwork Layer provides access to the Data Link medium and provides a set of SOISdefined services over the subnetwork defined by that medium Transfer Layer optionally provides Transport- and Network-layer services based on existing protocols Application Support Layer provides a number of capabilities commonly required onboard a spacecraft Application Layer consists of mission-dependent applications that make use of the SOISdefined services All managed by Communication Management 5 SOIS Introduction Typical subnetwork Subnetwork = Data Link Protocol Data Link Protocol Physical I/F Physical I/F Datalink = Basic communication protocol Physical = Connector, Pinout, electrical 6 Data Link Protocol Data Link Protocol RS422 RS422 ECSS Milbus Ext protocol ECSS Milbus Ext protocol Milbus Milbus ECSS SpaceWire Datalink ECSS SpaceWire Datalink ECSS SpaceWire Physical ECSS SpaceWire Physical SOIS Services SOIS Subnetwork Layer Device Commanding, Data Acquisition & Virtualisation File and Packet Store Access Onboard Time Access Message Transfer Device Plug-and-Play 7 SOIS Introduction SOIS Subnetwork Layer Standardise basic communication services to be provided by a subnetwork Services are mapped onto protocols and services provided by different data medium e.g. SpaceWire, MIL-STD-1553B and CAN Not all services need to be provided by a subnetwork type Provision against system requirement should be used to drive subnetwork selection Packet Service – providing packet delivery over a single subnetwork Memory Access Service – providing direct access (memory location read/write, includes block move and read/modify/write) to device memory Synchronisation Service – providing spacecraft time and event synchronisation Test Service – providing establishment of subnetwork functionality and availability 8 SOIS Introduction SOIS Subnetwork Layer Mappings MIL-STD-1553B ECSS-E-ST-50-13C, “Interface and communication protocol for MIL-STD-1553B data bus onboard spacecraft”, 15 November 2008 Influenced by early drafts of SOIS services Prototype mapping for BCs done by Astrium, RUAG Recommended mapping for BCs and RTs to be produced in SOIS prototype SpaceWire CAN 9 ECSS-E-ST-50-12C, “SpaceWire - Links, nodes, routers and networks”, 31 July 2008 ECSS-E-ST-50-51C, “SpaceWire protocol identification”, 5 February 2010 ECSS-E-ST-50-52C, “SpaceWire - Remote memory access protocol”, 5 February 2010 ECSS-E-ST-50-53C, “SpaceWire - CCSDS packet transfer protocol”, 5 February 2010 QoS being addressed in variety of R&D projects, e.g. SpaceWire-RT/T/D protocols from SpaceNet project (University of Dundee) Prototype mappings done by SciSys, UoD Recommended mapping to be produced in SOIS prototype ECSS working group in progress Mapping to SOIS included in WG charter Draft expected end 3Q 2010 SOIS Introduction Device Commanding, Data Acquisition & Virtualisation Typically used to access spacecraft hardware devices such as sensors and actuators Allows reconfiguration of subsystems (e.g. change location, port etc) or replacement of devices (Star Tracker type A -> B) without affecting users Device Access Service – device-dependant driver providing basic reading from and writing to devices regardless of location Encapsulates access methods (protocol and addressing) to devices Mapped onto subnetworks’ Memory Access and/or Packet Services May be driven by Electronic Data Sheets (dynamic or build-time auto-code generation) Device Data Pooling Service – maintaining an image of the states of a number of devices Periodic data acquisitions from devices Device Virtualisation Service – standard device driver providing reference to a device using a virtual, i.e., generic, image of a physical device Standardise device interfaces into classes and associated functions Map class interfaces to actual interfaces – “virtualisation” May be driven by Electronic Data Sheets (dynamic or build-time auto-code generation) 10 SOIS Introduction Device Commanding, Data Acquisition & Virtualisation OBC User Applications Device 1 Device 1 Functionality Device 2 Device 1 Class & Type Device 3 Class & Type Device 2 Class & Type Device 2 Functionality Device 2 Memory Locations (e.g. Status and Command Registers) Device Virtualisation Service Device Access Service Device 1 Value ID to Access Protocol Mapping Device 1 Access Protocol Device 1 Access Protocol Device 3 Value ID to Driver Mapping Device 2 Value ID to Address Translation Subnetwork Packet Service Subnetwork Packet Service Device 3 Driver Subnetwork Memory Access Service Subnetwork-Specific Packet Protocol Subnetwork-Specific Packet Protocol Subnetwork-Specific Memory Access Protocol Device 3 Functionality 11 SOIS Introduction Subnetwork-Specific Packet Protocol File and Packet Store Access Provides access to the spacecraft storage system Encapsulates access methods (protocol and addressing) to storage systems (e.g. mass memories) Can be provided at 2 levels: Network file access protocol, e.g. NFS, mapped onto subnetwork’s Packet Service Remote block storage protocol, e.g. ATA, mapped onto subnetwork’s Memory Access Service, e.g. RMAP, or subnetwork’s Packet Service File Access Service – allows access to files and portions of their contents in local or remote file stores File Management Service – allows management of files and directories in local or remote file stores Packet Store Access Services – allows storage, retrieval and deletion of packets in a local or remote packet store Packet Store Management Services – allows management of packet stores in local or remote packet store systems 12 SOIS Introduction File Services OBC User Applications SSMM providing a File System I/F Data Storage File Access and Management Services Service Primitives File System 13 File System Network File Access Protocol Network File Access Protocol Subnetwork Packet Service Subnetwork Packet Service Subnetwork-Specific Packet Protocol Subnetwork-Specific Packet Protocol SOIS Introduction SSMM providing flat Memory I/F Data Storage Data Storage Remote Block Storage Protocol Remote Block Storage Protocol Subnetwork Packet Service Subnetwork Packet Service Subnetwork-Specific Packet Protocol Subnetwork-Specific Packet Protocol Onboard Time Access Providing access to a local time source Local time source may be synchronised with a master time source using a subnetwork’s Synchronisation Service Time Access Service – providing access to, one-shot alarms and metronomes based on local time source 14 SOIS Introduction Message Transfer Discrete message transfer between applications/higher-level services Isolates users from location For inter-processor comms, maps onto subnetwork’s Packet Service For intra-processor comms can use RTOS message queues Four messaging models: Send/receive Query/response Publish/subscribe Announce (similar to multi-cast) Can be used as basis for middlewares/software bus or for inter-partition communication Message Transfer Service – providing application-to-application message exchange 15 SOIS Introduction Device Plug-and-Play Plug-and-play of devices Device (and network) discovery E.g. discovery of powered up 1553 RTs or SpaceWire links, routers etc. Management of subnetwork E.g. allocation of addressing, configuration of routing Service discovery E.g. by reading Electronic Data Sheets (xTEDS) from device User notification of discovered devices Subnetwork Device Discovery Service – providing dynamic device recognition Device Enumeration Service – providing support for dynamic spacecraft configuration 16 SOIS Introduction SOIS Recommendations Latest draft documents can be found in the SOIS working group’s collaborative working environment (CWE) http://cwe.ccsds.org/sois/default.aspx CCSDS SOIS Informational Report, CCSDS 850.0-G-1, June 2007 2nd issue being published in 2010 Published as standard: SOIS Subnetwork Packet Service, CCSDS 851.0-M-1, December 2009 SOIS Subnetwork Memory Access Service, CCSDS 852.0-M-1, December 2009 SOIS Subnetwork Synchronisation Service, CCSDS 853.0-M-1, December 2009 SOIS Subnetwork Device Discovery Service, CCSDS 854.0-M-1, December 2009 SOIS Subnetwork Test Service, CCSDS 855.0-M-1, December 2009 Under Publication SOIS Device Access Service, CCSDS 871.0-R-2.1, March 2010 SOIS Device Data Pooling Service, CCSDS 871.1-R-2.1, March 2010 SOIS Time Access Service, CCSDS 872.0-R-2.1, March 2010 About to undergo 2nd and final agency review: SOIS File and Packet Store Services, CCSDS 873.0-R-1.5, March 2010 About to undergo 1st agency review: SOIS Message Transfer Service, CCSDS 875.0-R-0.4, March 2010 Under developmment: SOIS Device Virtualisation Service, CCSDS 871.2-R-0.2, January 2009 SOIS Device Enumeration Service, CCSDS 871.3-R-0.1, January 2009 17 SOIS Introduction SOIS Reference Implementation SOIS Reference Implementation Study ESA TRP Jan 2008 – Feb 2009 SciSys prime, EADS Astrium sub-contractor Objectives Prototype the SOIS Software Suite within ESA’s RASTA facility Provide feedback on the outcome of the prototyping in order to refine and complete the CCSDS SOIS recommendations 18 SOIS Introduction RASTA Test Facility RASTA 01 RASTA Monitor Ground PC RASTA 02 RASTA 03 SpW router Ground PC Power strip RASTA Server Reference Avionics System Test-bench Activity (RASTA) RASTA OBC supplied by Aeroflex Gaisler LEON2 ASIC (100 MHz) @ ESA or LEON3 FPGA (40 MHz) @ SciSys 3 x SpaceWire links 2 x MIL-STD-1553B BC, RT or BM + others (CAN, Ethernet, UART and Direct I/O) RTEMS 4.6.5 + drivers STARDundee USB-SpaceWire Router & Linux PCs PCI MIL-STD-1553B cards & Linux PCs 19 SOIS Introduction SOIS Software Suite Acceptance Testing – Reference Mission Platform OBC Payload OBC MIL-STD-1553B SpaceWire Link SpaceWire Link SpaceWire Link SpW Router SpaceWire Link SpaceWire Link Star Tracker Reaction Wheel TM/TC Module Data Storage Instrument Low Cost, Single Instrument, Earth Observation Mission 20 SOIS Introduction SOIS Proof of Concept SOIS Proof of Concept Study ESA TRP December 2009 – January 2011 SciSys prime, EADS Astrium sub-contractor, Gaisler equipment supplier Objectives: Standardise SOIS APIs Implement all SOIS services, running over SpaceWire and MIL-STD-1553B Inc. mapping onto ECSS-E-ST-50-13C for MIL-STD-1553B (BC and RT) Optimise and characterise implementation of SOIS services on RASTA Integrate SOIS services with other Avionics Components TM/TC Module and Ground Unit, PUS, CFDP SpaceWire-based Advanced Mass Memory & File Store Legacy MIL-STD-1553B Remote Terminal Units Prototype use of Electronic Data Sheets for SOIS Plug-and-Play Develop SOIS Demonstrator Provide Feedback to CCSDS 21 SOIS Introduction