Proceedings of the XXth Conference of Open Innovations Association FRUCT (Oct 2021)
Architectural Software-Hardware Co-Modeling a Real-World Cyber-Physical System: Arduino-Based ArduPilot Case
Abstract
The study of good practices of architectural organization software systems for real-world cyber-physical systems (CPS) is possible to conduct on solutions with open-source code, which are developed by large communities of enthusiasts. Such solutions have tested many times on real devices in various natural environments. The construction of various models using the program code allows us to understand stable architectural solutions, to present them in a graphical form and take a regard on proper organization. While UML models are suitable to represent relations between classes and show software design patters, to create reliable software for CPS one should study patterns on organization such systems that take into account both software and hardware parts. AADL (Architecture Analysis & Design Language) aims to establish a clear, generally accepted semantics to express architectural models of interconnected hardware components as well as system software structure. Using the semantics, we can easily obtain graphical representations of the models to apply in the hardware design process. Also, having a formal architectural description, we can validate some valuable system properties. In this paper, we create extended models for hardware parts and software components of a cheap reprogrammable controller for RC-based DIY systems based on the ArduPilot Mega board. The models are fully based on the actual open-source code, existing sample models and reference datasheets. We review most of the hardware and software parts, discuss the scheduler, all running tasks and their relations. Then we discuss our solution with interconnected distributed controllers using SPI and CAN bus connection.
Keywords