Systèmes embarqués · Temps réel · Environnement nucléaire

Logiciel embarqué en C d'un ROV pour ORANO

Contexte

Développement du logiciel embarqué d’un ROV pour ORANO, destiné au nettoyage des piscines de réacteurs nucléaires. Le système embarqué pilotait différents capteurs et équipements du robot pour contribuer à sa localisation, à son déplacement, et transmettait son état et ses mesures aux autres calculateurs du ROV.

Le développement s’effectuait en C, directement sur un microcontrôleur intégré à une carte électronique conçue par le bureau d’études Hardware. J’étais seul en charge du firmware, sur l’ensemble du périmètre décrit ci-dessous ; le projet nécessitait par ailleurs une collaboration étroite avec l’équipe Hardware, notamment pour définir et valider les interfaces entre le microcontrôleur, les capteurs, les actionneurs et les autres calculateurs du robot.

Démarche

Le logiciel couvrait le pilotage des capteurs embarqués utilisés pour la localisation et le déplacement du ROV, l’acquisition et le traitement de leurs mesures, la gestion des informations de déplacement transmises aux calculateurs de niveau supérieur, la communication avec les autres calculateurs du robot (mesures, états, informations de supervision), les échanges avec la carte électronique dans le respect des contraintes et interfaces définies par le bureau d’études Hardware, et la gestion des états et erreurs des équipements pilotés.

Le développement était orienté temps réel, avec prise en compte des contraintes de fréquence d’acquisition, de disponibilité des données et de réactivité du système. Les périphériques matériels étaient abstraits pour séparer autant que possible la logique applicative des spécificités des interfaces électroniques, et les défauts et états dégradés des capteurs et des communications étaient gérés pour que les autres calculateurs du ROV disposent d’informations fiables sur l’état du système. Les choix d’architecture et d’interface étaient réalisés en collaboration avec le bureau d’études Hardware, afin de garantir la cohérence entre les contraintes électroniques de la carte et le comportement attendu du logiciel embarqué.

Solution

L’architecture logicielle reposait sur une séparation entre les drivers et l’abstraction hardware (interface avec les périphériques du microcontrôleur et les capteurs), l’acquisition (récupération et mise en forme des mesures), le traitement des données (préparation et exploitation des informations de localisation et de déplacement), la communication inter-calculateurs (transmission des données et états vers les autres calculateurs du ROV en MODBUS maître/esclave), la logique applicative embarquée (orchestration du fonctionnement et gestion des états du robot), et la gestion des erreurs (détection et traitement des défauts liés aux capteurs ou aux communications).

Résultat

Le microcontrôleur a été intégré et validé sur cible, sur la carte électronique du ROV, en confrontant le comportement du logiciel aux contraintes réelles de la carte et des équipements embarqués. Il constituait une brique embarquée intermédiaire entre les capteurs/actionneurs et les calculateurs de niveau supérieur du robot, leur fournissant des données exploitables et fiables pour les fonctions de localisation, de déplacement et de supervision, au sein d’un système robotique multi-calculateurs destiné à intervenir en environnement nucléaire.

C · Microcontrôleur · MODBUS (maître/esclave) · Acquisition capteurs · Communication inter-calculateurs · Debug hardware/software

Un besoin similaire ?

Parlons de votre projet