and Device Interfaces from CCSDS Electronic Data Sheets

Slides:



Advertisements
Similar presentations
MDI 2010, Oslo, Norway Behavioural Interoperability to Support Model-Driven Systems Integration Alek Radjenovic, Richard Paige The University of York,
Advertisements

CESG, Fall 2011, 5 th November 2011 Stuart Fowell, SciSys Device Virtualisation and Electronic Data Sheets.
Certification Test Tool Jon Wheeler Test Lead Microsoft Corporation.
CCSDS XML Telemetric and Command Exchange (XTCE)
November 2011 At A Glance GREAT is a flexible & highly portable set of mission operations analysis tools that increases the operational value of ground.
Exemplar CFS Architecture
1. 2 Purpose of This Presentation ◆ To explain how spacecraft can be virtualized by using a standard modeling method; ◆ To introduce the basic concept.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
ITEC224 Database Programming
SOIS Dictionary of Terms Usage in Tool Chain. Summary of DoT in SOIS Tool Chain The details hidden by the compression of this diagram will appear in subsequent.
Add intro to concept of electronic data sheets PnP based on use of this Can describe s/w as well as h/w.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
SOIS APP Working Group Overview. Presentation Overview Application Support Services Electronic Datasheets ESA Project History and Plans Standards Documentation.
March 2004 At A Glance autoProducts is an automated flight dynamics product generation system. It provides a mission flight operations team with the capability.
Overview of SOIS Electronic Data Sheets (EDS) & Dictionary of Terms (DoT) SOIS APP WG Fall 2012.
Overview of the Automated Build & Deployment Process Johnita Beasley Tuesday, April 29, 2008.
SOIS EDS and Onboard Architectures. ESA ‘de-facto’ Architecture PUS Services Mission Applications Data Handling PUS TM/TC Internal Datapool API System.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
1. 2 Purpose of This Presentation ◆ To explain how spacecraft can be virtualized by using a standard modeling method; ◆ To introduce the basic concept.
07-Apr-2014-cesg-1 Jonathan Wilmot (WG Chair) Ramon Krosley (DWG Chair) SPACECRAFT ONBOARD INTERFACES SERVICES (SOIS) AREA APP WG.
Software Systems Division (TEC-SW) ASSERT process & toolchain Maxime Perrotin, ESA.
C Copyright © 2009, Oracle. All rights reserved. Using SQL Developer.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Chapter 10 Application Development
Databases and DBMSs Todd S. Bacastow January 2005.
Space Plug-and-Play Architecture (SPA) and SSM
Test Executive Trades (1)
cFS Workshop Ground Systems & Kits
Simulink Interface Layer (SIL)
SOIS APP Working Group Overview
Muen Policy & Toolchain
EDS Demo SOIS WG Autumn 2016.
© 2002, Cisco Systems, Inc. All rights reserved.
Visit for more Learning Resources
Flight Software Development Through Python
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Code Generation from SEDS
Exemplar CFS Architecture
Overview of SOIS Electronic Data Sheets (EDS) & Dictionary of Terms (DoT) SOIS APP WG Fall 2012.
SOIS Dictionary of Terms
Key Ideas from day 1 slides
Add intro to concept of electronic data sheets
TECH SESSION #1 STANDARDS AND BUILD TOOLS
SOIS-APP Working Group Report Jonathan Wilmot (WG Chair)
Chapter 2: System Structures
TECH SESSION #1 ELECTRONIC DATA SHEETS
Introduction to Operating System (OS)
Design and Implementation of Spacecraft Avionics Software Architecture based on Spacecraft Onboard Interface Services and Packet Utilization Standard Beijing.
Using Electronic Datasheet for Testing
SPACECRAFT ONBOARD INTERFACES SERVICES
SOIS EDS Interoperability
CFS Community Day Core Flight System Command and Data Dictionary Utility December 4, 2017 NASA JSC/Kevin McCluney December 4, 2017.
Integrating CCSDS Electronic Data Sheets into Flight Software
cFS Systems Technology Roadmap
Study of Tools for Command and Telemetry Dictionaries
Adam Schlesinger NASA - JSC October 30, 2013
Data, Databases, and DBMSs
QGen and TQL-1 Qualification
QGen and TQL Qualification
Using JDeveloper.
Chapter 1 Introduction(1.1)
Analysis models and design models
NASA/ Johnson Space Center
GSFC cFS Product Status
Using CCDD to Automate Software development on AA2
Creating Computer Programs
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Creating Computer Programs
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

and Device Interfaces from CCSDS Electronic Data Sheets Autocoding Software and Device Interfaces from CCSDS Electronic Data Sheets December 2018 Jonathan Wilmot NASA/GSFC Code 582 1

Agenda Definitions Overview State Machines and Activities Tools for development and Systems Integration Lunar Orbital Platform - Gateway Use Case Summary and Status

Definitions An Electronic Data Sheet (EDS) is a formal specification of a device, system, or software interface in a machine readable format Unambiguous and machine verifiable specification Written in Extensible Markup Language (XML) Delivered with the device, (sub)system, or software component It is not an Interface Control Document (ICD) in that it does not specify how a system or mission will use the device or software EDS specifies black box view of interfaces: data formats, conversions, limits, exchange protocols (state machines) An EDS is different from an XML Telemetric and Command Exchange™ (XTCE™) database in that XTCE is targeted to operational command and telemetry systems and does not define network stacks or interface interaction patterns

Electronic Data Sheet Definition Definitions Consultative Committee for Space Data Systems CCSDS International standards organization A CCSDS Spacecraft Onboard Interface Services (SOIS) EDS (SEDS) is an EDS defined using the SOIS Dictionary of Terms and the SOIS EDS XML schema Electronic Data Sheets and Common Dictionary of Terms - Overview and Rationale (Green 870.1) XML Specification for Electronic Data Sheets for Onboard Devices and Software Components (Magenta 876.0) Specification for Dictionary of Terms for Electronic Data Sheets for Onboard Components (Blue 876.1) SEDS schema and dictionary of terms are keep in SPACE ASSIGNED NUMBER AUTHORITY(SANA) REGISTRY http://sanaregistry.org/r/sois/sois.html Provides a standard to exchange system, device and software interface definitions between organizations and agencies

Device and Software Component SEDS Star trackers Thrusters Sun sensors EDS EDS EDS EDS EDS EDS Software tools Goal: Device manufactures provide an SEDS with each component

Current EDS Tool Prototypes Development and Operations Products Models Models Models

Primary Use Cases for Devices Devices are delivered with a SEDS that also contains device specific information, version, serial number, calibrations… SEDS has placeholders for project deployment configuration (MAC address, MIL1553 RT, … These SEDS will not validate with generic XML tools (XML Spy) SEDS used to autocode interface tests that are run against that specific device to verify compliance to the data sheet prior to shipping SEDS is a input to systems integration tools Flight project can used those tests or autocode test set specific tests to verify the device is compliant and preforms as stated Autocoding of device drivers Autocoding of device models

Primary Use Cases for Software Components Software components are delivered with a SEDS SEDS has placeholders for project deployment configuration These SEDS will not validate with generic XML tools (XML Spy) SEDS are configuration managed with the component Any interface changes must be reflected in the SEDS SEDS is a input to system integration tools These tools create a new SEDS with all the variables populated SEDS are used to autocode integration tests Interface black box (not a unit test) Flight project can used those tests or autocode test set specific tests to verify the component matches it’s EDS interface Autocoding component models in a modeling language

State Machines and Activities Examples

State Machine and Activity Diagram Examples Examples from CCSDS interoperability tests UML State Diagram for GetExtendedStatusMode

Complex SEDS State Machine Example State machine in graphical format State transitions in table format

Tools for Development and Systems Integration

SEDS Work Flow / Tool Chain (GSFC) 1. Supplied by user 2. Supplied with cFS Applications (multiple) Project- Specific Config Project- Specific Test EDS (xml) Source Code Test Procedures (Lua) EDS Processor C Compiler Test Executive (EDS-Lua Bindings) 3. Intermediate Output Products 4. Final Output Products Binaries Test Results

Integration Toolchain Overview CCDD (JSC) Binary Table Files FSW Default Table Table Definitions Devices cFS Command Data Dictionary (CCDD) EDS Apps EDS App Table Generator Default Tables Design Parameters cFE Code Generator EDS Header Files Runtime Data Dictionary Mission Mnemonics Constraints Bus Definitions SIL & Embedded Coder Model-Based-App Mission Database Subnetwork schedule In work EDS Runtime Library CCDD tool provides consistent data definitions system wide

cFS Command and Data Dictionary tool NASA cFS Command and Data Dictionary tool (CCDD) Database of system data exchange and configuration Auto-generation of design, code, and configuration artifacts Graphical User Interface for viewing and editing Inputs: Component EDSs System design parameters Outputs: Component EDSs (as modified by design parameters) Ground system databases (XTCE, ITOS) System configuration files “C” header files for software components Parameter table definition files Bus definitions for modeling tools (Mathworks Simulink) System documentation

Lunar Orbital Platform - Gateway Use Case

Lunar Orbital Platform - Gateway Elements Conceptual View SEDS use with Lunar Orbital Platform - Gateway (LOP-G) international partners with varied tool chains and software architectures Comm. Thermal I/O Vehicle Management I/O Comm. Power Time-Triggered Ethernet Backbone GN&C ECLSS Propulsion I/O I/O

LOP-G Use Case Program has international partners potentially using different software architectures Think of it as a International Space Station (smaller) at the Moon International partners may provide devices to another partners system/subsystem SEDS defines the formats and interaction patterns of those interfaces SEDS can describe ECSS PUS interfaces and cFS Software Bus(SB)/Software Bus Network(SBN) interfaces SEDS includes the full subnetwork stack to access the interface Example: Space Packet -> UDP-> IP -> Ethernet SEDS is used as input into each partners architecturally specific tool chains SEDS provides the internationally recognized standard to exchange those interface definitions

Summary and Status Devices and software components are developed and delivered with a SEDS The SEDS is an input into tools that generate system configuration, documentation, test procedures, operations procedures and other artifacts SEDS is an open international standard allowing exchange of interface definitions that can be used in multiple architectures across agencies Through tooling, devices and software components can be made interoperable SEDS standards books have completed final agency review and interoperability test and are in the CCSDS queue for publication SEDS standards books are included in the LOP-G requirements ESA and NASA are actively developing tools support SEDS in flight projects Active project to integrate Time-Space Partitioning architecture and time- triggered network (AES funded) Effort to expand SEDS to cover device thermal and power attributes

Acronyms

Backup cFS SEDS Work Flow Details

EDS Work Flow: Pre-build 1. Supplied by user 2. Supplied with cFS Applications (multiple) Project- Specific Config Project- Specific Test EDS (xml) Source Code (C?) Test Procedures (Lua) EDS processor reads all supplied EDS files from all applications and merges with project configuration Produces C header files that can be directly used (#include'ed) by C source code Produces a runtime database with only basic types and sizes Produces a second database to augment the runtime database with full information including names, display formats, etc. EDS Processor 3. Intermediate Output Products

EDS Work Flow: Compilation 1. Supplied by user 2. Supplied with cFS Applications (multiple) Project- Specific Config Project- Specific Test EDS (xml) Source Code (C?) Test Procedures (Lua) All source code compiled using generated header files for message formats and enumeration values Binaries may link in only runtime EDS DB (small size) or both DBs (full features) C Compiler 3. Intermediate Output Products 4. Final Output Products Binaries Test Results

EDS Work Flow: Verification 1. Supplied by user 2. Supplied with cFS Applications (multiple) Project- Specific Config Project- Specific Test EDS (xml) Source Code (C?) Test Procedures (Lua) Test procedures written in a procedural language (Lua) specify a sequence of inputs and expected results Tests are based on messages defined in the EDS Combined with project-specific test configuration, tests are executed against running binaries Test Executive (EDS-Lua Bindings) 3. Intermediate Output Products 4. Final Output Products Binaries Test Results

EDS Results: Development Cycle Changes to a any application's EDS get reliably, automatically propagated to all other entities that rely on the definition Debug tools and control systems are always in sync Tedious and error-prone manual propagation is eliminated Improved quality and usability of debug tools Instead of showing binary traces, debug tools can fully decode all messages and show in user-friendly formats Expands options available to developers No longer locked into only developing in “C” EDS can drive bindings to Lua, Perl, Python, Javascript or even more Improves code-sharing opportunities and portability to other platforms Problems such as Space Packet APID conflicts are greatly reduced EDS will detect and report any issues at an early stage

EDS Results: Run Time Much more runtime code is able to be “common” Historically, each app received messages from the SB and validated them individually based on size and content. Now the validation code is based on the EDS “runtime” DB and can be validated by SB code itself. More complete and consistent message verification with and simpler application code EDS solves many CPU endianness problems EDS “runtime” DB has all needed information in order to reliably byte swap / re-pack messages between a “native” format and a “wire” format Optimized for fast operation in case the wire format matches the native CPU format (pass through) Project can choose which endian to use “on the wire” to best match the architecture of the actual CPUs in use. Swapping/Re-pack done by the “Gateway” application to external devices. No additional code needed in app to support this!

EDS Results: Verification Greatly improves the ability to perform “black-box” style testing Each app can supply an individual “isolated” test procedure that checks the basic inputs and outputs, independent of deployment details such as APIDs, physical uplink type, or other apps running on the target. Uses Lua, a fully-featured embeddable programming language, so the tests can be as complex as they need to be (variables, if statements, for/while loops, function calls, etc) Actual I/O messages are driven by EDS so they get automatically updated if EDS is ever updated, and they are not specific to any particular target CPU architecture. The project can choose to extend the tests beyond just single-app tests Additional test procedures defined at the top-level can exercise dependencies between running applications and check for the correct system responses. When combined with a simulation environment / virtual target machine, testing can be done frequently in completely automated and repeatable fashion