03 — Systèmes embarqués

Des logiciels conçus
au plus près du système physique.

Les systèmes embarqués fonctionnent sous des contraintes physiques, de calcul et de communication. AUKIAN conçoit les logiciels, les interfaces matérielles, les protocoles et les architectures connectées comme les composants d’un système cohérent plutôt que comme des couches techniques isolées.

01 — Du composant au système

Déterminer où
se situe chaque responsabilité.

Un produit embarqué se résume rarement à un programme exécuté sur un microcontrôleur isolé. Il peut combiner processeurs, capteurs, interfaces utilisateur, modules radio, stockage et équipements externes, avec différents composants chargés de traiter, présenter ou transmettre des informations.

L’architecture commence par déterminer quelles opérations doivent être effectuées localement, quelles données doivent être stockées, comment les composants communiquent, quelles fonctions restent disponibles en cas de perte de connectivité et quelles responsabilités appartiennent aux systèmes externes.

Ces décisions façonnent le produit avant même le choix des technologies précises. Une tâche de traitement triviale sur un serveur peut nécessiter une stratégie totalement différente lorsqu’elle doit fonctionner avec une mémoire limitée, une consommation énergétique contrainte ou une communication intermittente.

AUKIAN aborde le système embarqué dans son ensemble : entrées physiques, traitement local, interaction utilisateur, communications et services externes doivent fonctionner ensemble avec des limites clairement définies.

SENSORS / INPUTS physical information
LOCAL EMBEDDED LOGIC processing / state / decisions
LOCAL INTERFACE display / controls
COMMUNICATION radio / wired / network
EXTERNAL SYSTEM platform / service / control

02 — Logiciel embarqué & bas niveau

Maîtriser l’exécution
là où les ressources comptent.

Un logiciel embarqué peut gérer directement les interfaces matérielles, les événements, le traitement local, la communication entre composants, l’état du système et les tâches concurrentes. La mémoire, le temps CPU, le stockage, la bande passante et la consommation énergétique deviennent des contraintes architecturales plutôt que des ressources que l’on peut simplement considérer comme disponibles.

01

Modèle d’exécution

Organiser les tâches, les événements et les opérations sensibles au temps en fonction du comportement réellement attendu de l’appareil.

02

Maîtrise des ressources

Concevoir en fonction de la mémoire disponible, de la puissance de calcul, du stockage, de la bande passante et des contraintes énergétiques.

03

État local

Maintenir l’état du système explicite afin que le démarrage, l’arrêt, la récupération et le fonctionnement en mode dégradé restent compréhensibles.

04

Exécution concurrente

Séparer les tâches et les responsabilités de synchronisation lorsque plusieurs opérations doivent progresser simultanément.

Interfaces matérielles & périphériques

Maintenir les dépendances matérielles
là où elles doivent être.

Le logiciel embarqué relie le comportement attendu du produit aux capteurs, écrans, contrôleurs, modules de communication, mémoires, périphériques spécialisés ou autres microcontrôleurs. Chaque interface possède sa propre fréquence, son volume de données, sa latence et ses modes de défaillance.

Couche d’intégration

Séparer l’accès au matériel de la logique du produit.

L’accès au matériel est isolé du comportement applicatif lorsque cela est pertinent, afin qu’un changement de capteur, de contrôleur ou de périphérique de communication ne se propage pas inutilement dans l’ensemble du code.

Capteurs

Lire les entrées physiques

Acquérir, valider et transformer les informations issues de l’environnement physique.

Écrans

Présenter les informations locales

Piloter les écrans et les interfaces embarquées en respectant les contraintes graphiques et mémoire de l’appareil.

Contrôleurs

Coordonner les périphériques

Intégrer proprement les bus, les contrôleurs locaux et les composants matériels spécialisés.

Interfaces utilisateur embarquées

Une interaction utile
dans les limites des contraintes physiques.

La résolution fixe, les ressources graphiques, la mémoire, les méthodes de saisie et les conditions physiques d’utilisation influencent directement la conception de l’interface. L’objectif reste le même : présenter les informations utiles et rendre les actions importantes compréhensibles sans ignorer les limites de l’appareil.

Affichage

Contraintes visuelles fixes

Concevoir en fonction de l’écran réel, des ressources graphiques et de la densité d’informations disponibles sur l’appareil.

Interaction

Commandes tactiles ou physiques

Adapter les actions au mode d’entrée et au contexte réel dans lequel le produit est utilisé.

Réactivité

Assez immédiate pour inspirer confiance

Équilibrer le comportement visuel et le coût de traitement afin que l’interface reste claire et réactive sur un matériel aux ressources limitées.

03 — Communications & protocoles

La communication fait
partie du produit.

Transmettre des octets d’un appareil à un autre n’est que le début. Le système doit définir ce qui est envoyé, à qui, dans quel ordre, avec quelle identité, ainsi que la manière dont sont gérés les échecs, les nouvelles tentatives, la fragmentation ou les déconnexions temporaires.

APPLICATION meaning / commands
MESSAGE payload / identity
PROTOCOL order / validity / errors
TRANSPORT radio / serial / network
HARDWARE device / transceiver
APPLICATION meaning / commands
MESSAGE payload / identity
PROTOCOL order / validity / errors
TRANSPORT radio / serial / network
HARDWARE device / transceiver

Selon le système, les protocoles peuvent devoir identifier les appareils, structurer les messages, détecter les erreurs, fragmenter les données, préserver leur ordre ou contrôler la durée de validité des informations.

Les réseaux radio et intermittents ajoutent des contraintes supplémentaires : la bande passante peut être limitée, la latence variable et la connectivité temporairement indisponible. Le logiciel doit donc être conçu en considérant les interruptions comme une condition de fonctionnement prévisible plutôt que comme une exception.

Des limites de communication clairement définies facilitent également le diagnostic, l’évolution du système et sa connexion à de futurs appareils ou services.

Systèmes connectés

Le firmware n’est
qu’une partie de l’architecture.

Les appareils peuvent envoyer des données locales à une API ou une plateforme et recevoir en retour des paramètres, des commandes, des mises à jour ou des informations externes. La décision de conception essentielle concerne alors la frontière entre le logiciel de l’appareil, l’infrastructure de communication et les services environnants.

01

Appareil physique

Capteurs, commandes, actionneurs et contraintes matérielles.

02

Logiciel embarqué

Pilotes, état, traitement local, tâches et interaction utilisateur.

03

Communication

Protocoles, radio, liaisons filaires et comportement réseau.

04

Services

API, traitement des données, systèmes de contrôle et plateformes externes.

05

Utilisateurs

Applications, interfaces web, supervision et outils opérationnels.

04 — Fiabilité

Concevoir pour
des défaillances prévisibles.

Les systèmes embarqués peuvent fonctionner pendant de longues périodes, être difficiles d’accès une fois installés ou fonctionner dans des environnements où une intervention manuelle n’est pas toujours possible. Les défaillances de communication, les périphériques indisponibles, les données invalides ou les redémarrages ne doivent pas automatiquement placer le produit dans un état incohérent.

01

Récupération

Définir comment le système revient à un état de fonctionnement valide après une défaillance, un redémarrage ou une interruption temporaire.

02

États explicites

Maintenir les états normaux, dégradés et d’erreur compréhensibles afin que le produit réagisse de manière cohérente.

03

Diagnostic local

Utiliser la journalisation, les informations d’état et les contrôles d’intégrité lorsque le diagnostic ne peut pas dépendre d’une connectivité permanente.

04

Service dégradé

Préserver les fonctions locales utiles lorsque les systèmes externes ou les communications sont temporairement indisponibles.

Sécurité

Protéger le système
au niveau de ses véritables frontières.

Lorsqu’un appareil échange des informations ou accepte des commandes, l’identité, l’authenticité, la confidentialité et l’autorisation deviennent des enjeux d’architecture. La sécurité doit être adaptée aux capacités du matériel et aux menaces réelles auxquelles le produit est exposé.

01 Identité de l’appareil

Identifier l’appareil ou le composant participant à un échange.

02 Authenticité des messages

Vérifier que les commandes et informations sensibles proviennent d’une source attendue.

03 Confidentialité

Protéger les informations en transit lorsque le contexte exige des communications confidentielles.

04 Autorisation

Restreindre les opérations sensibles en fonction du rôle de l’appareil, de l’utilisateur ou du service externe.

05 Approche de bout en bout

Considérer ensemble le firmware, le protocole de communication et les services connectés plutôt que de sécuriser une seule couche isolée.

05 — Ressources & évolution

Les contraintes physiques
façonnent la conception logicielle.

Dans les systèmes embarqués, les ressources font partie des données d’entrée de la conception. Une fonctionnalité qui paraît triviale sur un serveur peut nécessiter une architecture différente lorsque la mémoire, l’énergie, la bande passante ou la latence sont fortement contraintes.

EMBEDDED SYSTEM
CPU
MEMORY
POWER
STORAGE
NETWORK
LATENCY
SOFTWARE ARCHITECTURE

Modularité

Préparer
la prochaine révision matérielle.

Les capteurs, les modules de communication, les interfaces utilisateur et les générations de microcontrôleurs peuvent évoluer. L’objectif n’est pas de tout abstraire, mais d’isoler les responsabilités susceptibles d’évoluer afin que les futures révisions du produit ne nécessitent pas de reconstruire toute l’architecture logicielle.

01

Accès au matériel

Maintenir les interfaces propres au matériel clairement délimitées.

02

Communications

Séparer les responsabilités liées au transport et au protocole.

03

Logique du produit

Maintenir la logique fonctionnelle indépendante lorsque cela est pertinent.

04

Stockage

Définir explicitement la persistance et la responsabilité des données.

05

Interface embarquée

Séparer les problématiques de présentation de la gestion bas niveau du matériel.

06

Services externes

Traiter les plateformes connectées comme des frontières explicites du système.

Prototype, preuve de concept & R&D

Valider les inconnues
avant de fiabiliser le produit.

Certains systèmes nécessitent une phase d’expérimentation avant qu’une architecture définitive puisse être justifiée : portée des communications, performances du microcontrôleur, comportement de l’interface, utilisation des ressources, protocoles expérimentaux ou coopération entre plusieurs appareils peuvent devoir être testés en conditions réelles.

01

Hypothèse

Identifier l’hypothèse technique qui doit être validée.

02

Prototype

Construire le plus petit système réel capable de fournir des résultats exploitables.

03

Mesurer

Observer les performances, les communications, l’utilisation des ressources et le comportement dans des conditions réalistes.

04

Fiabiliser

Conserver ce qui a été validé et restructurer les parties qui nécessitent un niveau de fiabilité et de maintenabilité adapté à la production.

Du prototype au système exploitable

Un matériel fonctionnel
n’est qu’une étape.

La reproductibilité, la configuration, la gestion des versions, le diagnostic, la journalisation, les tests et les procédures de mise à jour deviennent de plus en plus importants à mesure qu’un projet passe de l’expérimentation à un produit déployable.

PHYSICAL WORLD sensors · controls · peripherals · displays
EMBEDDED SOFTWARE drivers · processing · state · tasks · embedded UI
COMMUNICATION LAYER protocols · radio · wired · networking
SERVICES / PLATFORM API · data · processing · control
USERS application · web · supervision

Technologie

Choisir pour le système,
pas pour l’étiquette.

Les technologies dépendent du matériel, des contraintes temporelles, du modèle de communication, de la durée de vie attendue et de l’environnement de déploiement. Ce sont des outils sélectionnés pour répondre au comportement attendu du système, et non une architecture à elles seules.

C C++ ESP32 Microcontrollers RTOS Embedded Linux Hardware Interfaces Serial Communications Buses Radio Network Protocols Embedded UI

Quand AUKIAN peut intervenir

Du composant ciblé
au système connecté complet.

L’expertise en systèmes embarqués peut accompagner la création d’un nouveau produit complet ou intervenir sur une partie spécifique d’un système existant lorsque les performances, les communications, l’architecture ou la maintenabilité deviennent une contrainte.

01

Logiciel embarqué

Concevoir le comportement logiciel d’un produit ou équipement embarqué.

02

Communication multi-appareils

Permettre à plusieurs appareils d’échanger des informations par radio, liaisons filaires ou protocoles personnalisés.

03

Intégration de périphériques

Intégrer des capteurs, des écrans, des mémoires, des contrôleurs ou du matériel spécialisé.

04

Interfaces embarquées

Créer des interfaces utilisateur locales, graphiques ou physiques, adaptées à l’appareil.

05

Architecture connectée

Connecter des appareils embarqués à des API, des services logiciels et des plateformes opérationnelles.

06

Prototype & validation

Tester les hypothèses techniques incertaines avant de s’engager sur l’architecture définitive du produit.

Une architecture de bout en bout

Matériel, logiciel et communication
font partie du même produit.

Les produits embarqués se situent à l’intersection de plusieurs disciplines. Le matériel impose des contraintes, le logiciel définit le comportement, les communications relient les composants, les interfaces rendent le système utilisable et les services externes peuvent superviser ou enrichir les informations produites.

AUKIAN privilégie une approche système : comprendre comment les différentes parties interagissent, définir clairement les responsabilités et construire une architecture dans laquelle le matériel, le logiciel et les communications contribuent à un produit cohérent.

Un système embarqué à concevoir ?

Partir du matériel,
des contraintes et du comportement attendu.

Décrivez le contexte, le matériel envisagé et les contraintes déjà connues. La première étape consiste à déterminer l’architecture réellement adaptée au système.

Échanger sur un projet embarqué