CANopen On-Board Protocol Stack
CANopen is a communication protocol for embedded systems, standardized by CAN-in-Automation (CiA) group. It is designed to work on data link provided by CAN (Controller Area Network) – a robust standard, highly popularized by the automotive industry – all modern cars are required to include that bus in their diagnostic link.
Due to popularity, robustness and availability of high-quality components ready for CANopen protocol deployments, ECSS (European Cooperation for Space Standardization) standardizing committee created a version of CANopen applicable for on-board use in spacecrafts (ECSS-E-ST-50-15C).
ESA (European Space Agency) issued an open-call for development of open-source library providing CANopen stack implementation according to ECSS standard. Consortium led by N7 Space won this call in 2019 and the activity is planned to finish by the end of 2021.
N7 Space chose to reuse an existing and field-tested by robotic industry open-source library – lely-core by Lely Industries. It is an extensive, feature-rich, of high code-quality, configurable and well documented software, which is a great candidate for critical systems.
The space-grade lely-core library provides:
- Complete implementation of all CANopen services according to CiA 301 and ECSS-E-ST-50-15C standard:
- Support for ECSS-based bus redundancy in NMT service.
- Support for ECSS “time objects”.
- ECSS criticality level B validation test suite and documentation:
- Static memory allocation.
- No external libraries dependencies.
- Pure C99/C11 interface.
- 100% line, branch and MD/DC coverage by unit-tests.
- Complete ECSS-required documentation set.
- Static code generator from DCF device configuration files (CiA 306).
- For non-critical software: Linux and Windows based C++ wrapping libraries for convenient communication with embedded devices.
- Compatibility with other lely-core parts that are not related to ECSS standard (e.g. TIME service).
N7 Space performs all the activities in openly and community-friendly manner, using company’s fork, which will be merged by the Lely back to the original code (see Lely’s news). In the scope of the project two additional repositories were created – Test Environment (a framework for creating validation tests) and Test Suite (repository for the tests themselves).
The tests are executed on a space-grade ARM microcontroller (SAMV71 on ATSAMV71-XULT development board) wrapped in a custom-made equipment prepared by BD Sensors Space and connected to PC via JTAG and CAN dongles.
If you are interested in using lely-core in your project, do not hesitate to contact us. We can provide support in target deployment and adaptations of test suite for particular project needs.
Disclaimer: This work performed during this project was carried out under a programme of, and funded by, the European Space Agency. The views expressed here can in no way be taken to reflect the official opinion of the European Space Agency.