Architectural Software-Hardware Co-Modeling a Real-World Cyber-Physical System: Arduino-Based ArduPilot Case

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...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autor principal: Sergey Staroletov
Formato: article
Lenguaje:EN
Publicado: FRUCT 2021
Materias:
apm
cps
Acceso en línea:https://doaj.org/article/ed59bbdf5ba64b098ee12544faeee524
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
Descripción
Sumario: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.