0% ont trouvé ce document utile (0 vote)
17 vues39 pages

Cours de Système Embarqué 26

Transféré par

raibaeraibae
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
17 vues39 pages

Cours de Système Embarqué 26

Transféré par

raibaeraibae
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ENSEIGNEMENT SUPERIEUR ET UNIVERSITAIRE

INSTITUT SUPERIEUR TECHNIQUE DU LUALABA


« ISTL/KOLWEZI »

Faculté des Sciences Informatiques.

COURS D’INFORMATIQUE EMBARQUE ET TEMPS REEL


Promotion : Bac 3 Informatique.

Ir Ass Roger Abedi Lukate

+243 97 34 81 921

[email protected]

Année académique 2025 - 2026

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
Chapitre I : Introduction aux Systèmes embarqués

Les systèmes embarqués sont des systèmes informatiques spécialisés, conçus pour effectuer
des tâches spécifiques et intégrés dans des appareils ou des machines plus grandes.
Contrairement aux ordinateurs généraux, les systèmes embarqués sont optimisés pour une
fonction particulière et sont souvent contraints par des ressources limitées, telles que la
mémoire et la puissance de calcul. On les retrouve dans de nombreux dispositifs quotidiens,
comme les téléviseurs, les voitures, les appareils médicaux, et bien d'autres.

Les systèmes temps réel, quant à eux, sont une catégorie particulière de systèmes embarqués
qui doivent répondre à des contraintes temporelles strictes. Cela signifie qu'ils doivent
effectuer certaines tâches dans un délai déterminé pour assurer le bon fonctionnement du
système global. Par exemple, dans une voiture, un système temps réel pourrait être
responsable de la gestion des freins, où un délai de réponse trop long pourrait entraîner des
accidents.

Ces deux types de systèmes sont essentiels dans le monde moderne, car ils permettent
d'automatiser et de contrôler divers aspects de nos vies avec précision et fiabilité.

I.1. Définition

Par définition, un système embarqué est défini comme un système électronique et


informatique autonome, souvent temps réel, spécialisé dans une tâche bien précise. Le terme
désigne aussi bien le matériel informatique que le logiciel utilisé. Ses ressources sont
généralement limitées. Cette limitation est généralement d'ordre spatial (encombrement
réduit) et énergétique (consommation restreinte).

Un système embarqué est un système servant à résoudre des fonctions et des tâches
spécifiques et limitées. Associé à contraintes en temps réel

• Souvent conçu en matériel avec des parties en logiciel.


• La complexité du système et des fonctions varient largement
• Contrôleur d’un lave-vaisselle
• Portable MP3
• Contrôleur de missiles
• Le logiciel est utilisé pour la flexibilité
• Le matériel est utilisé pour la performance et la consommation.

Quelle que soit la nature et la complexité du système, on décompose un système embarqués


en :

• Le système contrôlé = environnement (procédé) équipé d'une instrumentation qui


réalise l'interface avec le système de contrôle,
• Le système de contrôle = éléments matériels (microprocesseurs…) et logiciels dont la
mission est d'agir sur le procédé via les actionneurs en fonction de l'état de ce
Ir Roger Abedi Lukate
[email protected]
+243 97 34 81 921
procédé indiqué par les capteurs de manière maintenir ou conduire le procédé dans un
état donné

Un système électronique embarqué ou enfoui est un élément constitutif d'un système plus
complexe pour lequel il rend des services bien précis (contrôle, surveillance, communication…).
Il est constitué de parties matérielles et logicielles qui sont conçues spécifiquement pour
réaliser une fonction dédiée. Système embarqué = Système électronique/informatique conçu
pour réaliser une ou plusieurs tâches précise. Les caractéristiques principales d'un système
électronique embarqué sont :

• Autonomes : Une fois enfouis dans l'application ils ne sont (le plus souvent) plus
accessibles,
• Temps réel : Les temps de réponses de ces systèmes sont aussi importants que
l'exactitude des résultats,
• Réactifs : Il doit réagir à l'arrivée d'informations extérieures non prévues.

I.2. Caractéristiques des systèmes embarqués


Les systèmes embarqués fonctionnent généralement en Temps Réel (TR) : les opérations de
calcul sont alors faites en réponse à un événement extérieur (interruption matérielle). La
validité et la pertinence d'un résultat dépendent du moment où il est délivré. Une échéance
manquée induit une erreur de fonctionnement qui peut entraîner soit une panne du système
(plantage), soit une dégradation non dramatique de ses performances.
Dans les systèmes embarqués autonomes, la consommation d'énergie est un point critique
pour le coût. En effet, une consommation excessive augmente le prix de revient du système
embarqué, car il faut alors des batteries de forte capacité.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
I.3. Complexité des systèmes embarqués
Les systèmes embarqués requièrent souvent un faible encombrement (faible poids)
PDA(Personal Digital Assistant), Internet et téléphone mobiles, …). Leur technologie fait
alors appel à une électronique et à des applications portables où l'on doit minimiser aussi bien
l'encombrement que la consommation électrique. Par conséquent, la réalisation du packaging
afin de faire cohabiter sur une faible surface de l'électronique analogique, de l'électronique
numérique, des composantes RF (Radiofréquence) sans interférences est une tâche difficile.
En effet, les performances des systèmes sur carte deviennent obsolètes dans le contexte
des besoins actuels. Dans les stratégies de conception actuelles, un système embarqué est
généralement intégré sur un support silicium unique constituant ainsi un système complet
intégré sur une puce SoC(System on a Chip).
Les systèmes sur puce contiennent généralement une grande variété de dispositifs
programmables tels que des microcontrôleurs, des processeurs de traitement de signaux DSP
(Digital-Signal Processor) et des ASIC qui sont développés pour des applications complexes
nécessitant une production en grande série. Les mémoires (ROM et RAM) y sont intégrés
pour le stockage des données et des programmes. Ces composants digitaux cohabitent
généralement sur le même support de silicium avec des composants analogiques et m ixtes
divers tels que des composantes radiofréquence (RF) comme moyen de communication, des
composantes optiques pour le transfert de données à haut débit, des MEMS (Micro Electro
Mechanical System) pour l'interfaçage avec le monde externe, des convertisseurs
analogiques/numérique et numérique/analogique requis pour le dialogue interne. L'objectif
est d'obtenir une coopération harmonieuse entre composants embarqués afin de garantir des
services globaux. Des contraintes d'implémentation physique sont liées à la consommation de
ressources et au contexte de déploiement tel que le poids, la taille physique, la résistance
aux vibrations, ou aux irradiations, …, etc.

I.4. Classification des système embarqués


• Temps réel dur (‘hard real-time’) : le non-respect des contraintes temporelles
entraîne la faute du système – Exemple : contrôle de trafic aérien, système de
conduite de missile, ...
• Temps réel souple (‘soft real-time’) : le respect des échéances est important mais le
non-respect des échéances n’a pas de graves conséquences – Exemple : système
d'acquisition de données pour affichage
• Temps réel ferme (‘firm real-time’) : temps réel souple, mais si l’échéance est
dépassée le résultat obtenu n’a plus de valeur (et est donc écarté) – Exemple :
Projection vidéo.
I.4.1. Système Transformationnel
Activité de calcul, qui lit ses données et ses entrées lors de son démarrage, qui fournit ses
sorties, puis meurt.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
Un système embarqué transformationnel est un type de système embarqué qui
effectue des calculs ou des traitements sur des données fournies lors de son
initialisation. Contrairement aux systèmes réactifs ou interactifs, les systèmes
transformationnels n'ont pas de contraintes temporelles strictes. Cela signifie que
les données sont disponibles au lancement, et les résultats sont produits sans
exigence de temps spécifique.

En d'autres termes, un système transformationnel lit ses données d'entrée au


démarrage, effectue les traitements nécessaires, puis fournit les résultats avant de
s'arrêter. Ce type de système est souvent utilisé dans des applications où le temps
de traitement n'est pas critique, comme certaines applications de traitement de
données ou de calcul scientifique.

I.4.2. Système Interactif


Système en interaction quasi permanente avec son environnement, y compris après
l'initialisation du système ; la réaction du système est déterminée par les
événements reçus et par l'état courant (fonction des événements et des réactions
passés) ; le rythme de l'interaction est déterminé par le système et non par
l'environnement.
Un système embarqué interactif est conçu pour interagir avec son environnement en
temps réel. Cela signifie qu'il réagit aux stimuli externes, comme des capteurs ou
des commandes utilisateur, et modifie son comportement en conséquence.
Contrairement aux systèmes transformationnels, les systèmes interactifs doivent
souvent répondre rapidement aux événements pour garantir un fonctionnement
correct.
Les systèmes embarqués interactifs doivent être conçus pour traiter des
événements imprévus et offrir une réponse rapide et fiable. Cela implique souvent
une programmation complexe et des tests rigoureux pour garantir que le système
peut gérer toutes les situations possibles.

I.4.3. Système Réactif ou temps Réel


Système en interaction permanente avec son environnement, y compris après
l'initialisation du système ; la réaction du système est déterminée par les
événements reçus et par l'état courant (fonction des événements et des réactions
passées) ; mais le rythme de l'interaction est déterminé par l'environnement et non
par le système.
Les systèmes réactifs sont essentiels dans de nombreux domaines, des transports
aux soins de santé, en passant par l'industrie et les télécommunications. Leur

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
conception et leur mise en œuvre nécessitent des compétences spécifiques pour
garantir qu'ils peuvent gérer efficacement les événements en temps réel.

I.5. Système électronique et informatique autonome

Les systèmes électroniques et informatiques autonomes sont des systèmes conçus pour
fonctionner de manière indépendante, sans intervention humaine continue. Ces systèmes sont
souvent équipés de capteurs, d'actuateurs, de processeurs et de logiciels intelligents qui leur
permettent de prendre des décisions en temps réel en fonction des données qu'ils reçoivent.

Parmi les exemples courants de systèmes autonomes, on trouve :

• Les voitures autonomes : Ces véhicules utilisent une combinaison de capteurs, de


caméras, de radars et de logiciels d'intelligence artificielle pour naviguer et conduire
sans intervention humaine.
• Les drones : Utilisés dans divers domaines tels que l'agriculture, la surveillance, et la
livraison, les drones autonomes peuvent effectuer des missions précises basées sur
des instructions programmées.
• Les robots industriels : Ces machines peuvent effectuer des tâches répétitives dans
les usines, comme l'assemblage de composants ou le soudage, avec une grande
précision et efficacité.
• Les systèmes domotiques : Ces systèmes intelligents gèrent automatiquement divers
aspects de la maison, comme l'éclairage, la température, et la sécurité.

Ces systèmes sont le résultat de l'intégration de diverses technologies avancées, y compris


l'intelligence artificielle, le traitement des données en temps réel, et les réseaux de
communication. Leur développement ouvre la voie à des innovations qui peuvent transformer
de nombreux aspects de notre vie quotidienne.

I.6. Interaction avec l'extérieur

L'interaction des systèmes autonomes avec l'extérieur est cruciale pour leur fonctionnement
efficace. Voici quelques-unes des façons dont ces systèmes interagissent avec leur
environnement :

1. Capteurs : les capteurs sont les "yeux" et les "oreilles" des systèmes autonomes. Ils
recueillent des données sur l'environnement, telles que la température, l'humidité, la
pression, la lumière, le mouvement, etc. Par exemple, une voiture autonome utilise des
capteurs LiDAR, des caméras, et des radars pour détecter les obstacles et la
signalisation routière.

2. Actuateurs ou actionnaire : les actionnaires sont les composants qui permettent au


système de répondre aux données recueillies par les capteurs. Ils peuvent inclure des

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
moteurs, des servomoteurs, des relais, etc. Par exemple, dans un drone, les actuateurs
contrôlent les hélices pour ajuster la direction et la hauteur de vol.

3. Communication : les systèmes autonomes utilisent divers protocoles de communication


pour échanger des informations avec d'autres systèmes ou avec des utilisateurs
humains. Cela peut inclure le Wi-Fi, le Bluetooth, la communication cellulaire, et même
des réseaux dédiés comme Zigbee pour les appareils domestiques intelligents.

4. Traitement de données en temps réel : les systèmes doivent être capables de traiter
les données en temps réel pour prendre des décisions rapides. Cela est
particulièrement crucial pour les systèmes temps réel où les décisions doivent être
prisesç dans un délai strict. Par exemple, un robot industriel doit ajuster ses actions
instantanément en fonction des variations de la ligne de production.

5. Interfaces utilisateur : pour certaines applications, les systèmes autonomes doivent


interagir directement avec les utilisateurs via des interfaces intuitives. Cela peut
inclure des écrans tactiles, des commandes vocales, ou des applications mobiles. Par
exemple, un système domotique peut être contrôlé via une application sur smartphone.

Ces interactions permettent aux systèmes autonomes de fonctionner de manière efficace et


d'accomplir les tâches pour lesquelles ils ont été conçus, en assurant la sécurité et
l'efficacité dans des environnements variés.

I.6. Interface des systèmes embarqué

Les interfaces des systèmes embarqués sont essentielles pour permettre la communication
entre le système embarqué lui-même et les autres composants ou utilisateurs. Voici les
principales composantes et types d'interfaces dans les systèmes embarqués :

I.6.1. Types d'Interfaces

1. Interfaces Matérielles (Hardware Interfaces) :

• Ports Série : Utilisés pour la communication série, comme RS232, UART, SPI,
et I2C. Ces interfaces permettent des communications simples et fiables entre
différents composants matériels.

• Ports Parallèle : Utilisés pour la communication parallèle, souvent dans des


systèmes où la vitesse de transfert de données est cruciale.

• Interfaces USB : Utilisées pour connecter divers périphériques comme des


claviers, des souris, des imprimantes, etc.

• Interfaces réseau : Incluent Ethernet, Wi-Fi, et Bluetooth, permettant la


connexion à des réseaux locaux ou à Internet.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
• Interfaces de capteurs : Utilisées pour connecter différents types de
capteurs (température, pression, lumière, etc.) au système embarqué.

2. Interfaces Logicielles (Software Interfaces) :

• Pilotes de périphériques : Logiciels qui permettent au système d'exploitation


de communiquer avec le matériel.

• API (Application Programming Interface) : Fournit des fonctions et des


protocoles permettant aux logiciels de communiquer entre eux.

• Middleware : Logiciel intermédiaire qui facilite la communication et la gestion


des données entre différentes applications ou services.

I.6.2. Importance des Interfaces dans les Systèmes Embarqués

• Interopérabilité : Assure que différents composants peuvent travailler ensemble sans


problème.

• Fiabilité : Une bonne interface assure une communication fiable et rapide entre les
composants.

• Efficacité : Les interfaces bien conçues améliorent l'efficacité globale du système


en réduisant les délais de communication et en optimisant l'utilisation des ressources.

Les interfaces jouent donc un rôle critique dans le bon fonctionnement des systèmes
embarqués, en facilitant la communication et l'interaction avec l'environnement externe.

I.7. Motivation

La motivation principale derrière les systèmes embarqués temps réel réside dans la nécessité
de garantir des réponses déterministes et rapides aux événements extérieurs. Voici quelques
raisons clés qui poussent à utiliser ces systèmes :

1. Criticité des Applications

Dans de nombreuses applications, la précision temporelle est cruciale. Par exemple :

• Automobile : Les systèmes de freinage antiblocage (ABS) et les airbags doivent réagir
en quelques millisecondes pour assurer la sécurité des passagers.

• Aéronautique : Les systèmes de contrôle de vol doivent répondre instantanément aux


commandes du pilote pour garantir la sécurité de l'avion et de ses occupants.

2. Fiabilité et Stabilité

Les systèmes temps réel offrent une grande fiabilité et stabilité grâce à leur capacité à
respecter des contraintes de temps strictes, ce qui est essentiel dans les environnements
critiques comme :
Ir Roger Abedi Lukate
[email protected]
+243 97 34 81 921
• Secteur médical : Les dispositifs tels que les pacemakers et les machines de support
vital doivent fonctionner de manière fiable sans marge d'erreur.

3. Optimisation des Ressources

Les systèmes temps réel sont conçus pour fonctionner avec des ressources limitées en
optimisant l'utilisation de la mémoire et de la puissance de calcul. Cela les rend idéaux pour
des applications embarquées où l'espace et l'énergie sont des contraintes ma jeures.

4. Efficacité Opérationnelle

Dans les industries comme la production manufacturière, les systèmes temps réel sont
utilisés pour assurer la synchronisation et la coordination des processus en temps réel, ce qui
améliore l'efficacité opérationnelle et réduit les temps d'arrêt.

5. Réactivité

La capacité à réagir rapidement aux changements de l'environnement est essentielle pour


des applications telles que :

• Robots industriels : qui doivent ajuster leurs actions instantanément en fonction des
modifications de la ligne de production.

• Systèmes de surveillance : qui doivent détecter et répondre aux menaces ou


anomalies en temps réel.

6. Sécurité

Dans certains contextes, la sécurité des utilisateurs dépend de la capacité du système à


réagir rapidement et de manière prévisible. Par exemple, les systèmes de contrôle de la
circulation ferroviaire et les systèmes de contrôle des infrastructures critiques doivent
garantir une opération sécurisée sous des contraintes de temps précises.

En résumé, les systèmes embarqués temps réel sont essentiels pour des applications où les
délais de réponse et la fiabilité sont critiques, permettant d'assurer des performances
élevées et une sécurité maximale dans des environnements variés.

I.8. Différence entre le système embarqué et le système classique

Systèmes Embarqués

1. Spécialisation de la tâche :

• Les systèmes embarqués sont conçus pour effectuer des tâches spécifiques.
Par exemple, le système de contrôle d'un lave-linge ou d'un réfrigérateur.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
2. Intégration :

• Ils sont intégrés dans des appareils ou des dispositifs plus grands, et ne sont
généralement pas utilisés seuls.

3. Ressources Limitées :

• Ils opèrent souvent avec des ressources limitées en termes de mémoire,


puissance de calcul et énergie.

4. Taille compacte :

• Les systèmes embarqués sont généralement très compacts pour s'intégrer


dans des dispositifs de petite taille.

5. Fiabilité et Robustesse :

• Ils doivent fonctionner de manière fiable dans des environnements divers et


souvent hostiles.

6. Temps Réel :

• Souvent, ces systèmes doivent répondre en temps réel, ce qui signifie qu'ils
doivent respecter des délais stricts.

Systèmes Classiques (ou Génériques)

1. Polyvalence :

o Les systèmes classiques, comme les ordinateurs de bureau ou les serveurs, sont
conçus pour effectuer une large gamme de tâches et peuvent être utilisés pour
diverses applications.

2. Utilisation autonome :

o Ils sont souvent utilisés comme dispositifs indépendants par les utilisateurs
finaux.

3. Ressources Abondantes :

o Ils disposent généralement de ressources plus importantes, telles que de


grandes capacités de mémoire et de puissants processeurs.

4. Taille et Puissance :

o Les systèmes classiques peuvent être plus volumineux et consommer plus


d'énergie que les systèmes embarqués.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
5. Mises à jour fréquentes :

o Ils sont conçus pour être facilement mis à jour et améliorés en termes de
matériel et de logiciel.

6. Flexibilité :

o Les systèmes classiques peuvent exécuter plusieurs applications


simultanément et sont adaptés à des tâches qui peuvent ne pas nécessiter des
contraintes de temps strictes.

Tableau Comparatif

Caractéristique Système Embarqué Système Système Temps Réel


Classique

Définition Intégré dans des Polyvalent et Répond en temps réel


dispositifs plus grands générique avec contraintes strictes

Exemples Appareils Ordinateurs de Systèmes de freinage


électroménagers, bureau, serveurs ABS, pacemakers
dispositifs médicaux

Spécialisation de Oui Non Oui


la tâche

Taille et Compact, limitées Plus volumineux, Variable, optimisé pour la


ressources abondantes latence

Fiabilité et Très élevée Variable Très élevée


robustesse

Temps de réponse Souvent en temps réel Variable Toujours en temps réel

Ces différences montrent comment les systèmes embarqués et classiques sont optimisés
pour des besoins et des contextes d'utilisation différents. Les systèmes embarqués sont
conçus pour être spécialisés, compacts et fiables, tandis que les systèmes classiques offrent
polyvalence, flexibilité et puissance.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
Chapitre II : Architecture d’un système embarqué

L'organisation d'un système embarqué implique plusieurs composants matériels et logiciels


travaillant ensemble pour réaliser des tâches spécifiques de manière efficace. Voici une vue
d'ensemble de l'organisation typique d'un système embarqué :

L’architecture matérielle d’un système embarqué est composée de plusieurs bloque comme le
montre la figure ci-dessous.

Quelle que soit la nature et la complexité du système, on décompose un système embarqué


en système contrôlé et en système de contrôle.

II.1. Les systèmes embarqués de première génération :

II.1.1. Partie matérielle des systèmes embarqués de première génération :

Les premiers systèmes embarqués supportés par des outils tels que COSYMA et Vulcan
étaient très simples : ils étaient constitués d'un processeur qui contrôlait un nombre
restreint de CIAS (circuits intégrés à applications spécifiques) ou ASIC qui étaient appelés
périphériques. Cette architecture est représentée figure I.2. Les communications de cette
architecture se situent au niveau du bus du processeur et sont type maître/esclave : le
processeur est le maître et les périphériques sont les esclaves.
Les périphériques de ces architectures étaient essentiellement des capteurs et des
actionneurs (contrôleurs magnétiques, sortie, etc.). Le processeur est dédié au calcul et au
contrôle de l'ensemble du système.
Les microcontrôleurs assemblent sur une même puce le processeur et les périphériques.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
II.1.2. Partie logicielle des systèmes embarqués de première génération :
Ne devant pas exécuter de nombreuses opérations simultanées (le nombre de périphériques
et de fonctions étant restreint), les parties logicielles étaient constituées d'un seul
programme. La réaction aux événements était effectuée par le biais de routines de
traitement d'interruptions.
Cette partie logicielle était décrite directement en langage d'assemblage ce qui permettait
d'obtenir un code efficace et de petite taille.

II.2. Les systèmes embarqués de deuxième génération :


Les premiers systèmes embarqués ne pouvaient fournir que des fonctions simples ne
requérant que peu de puissance de calcul. Leur architecture ne peut pas supporter les
fonctionnalités requises pour les systèmes embarqués actuels à qui il est demandé non
seulement d'effectuer du contrôle, mais aussi des calculs complexes tels que ceux requis
pour le traitement numérique du signal. De nouveaux outils tels que N2C (dans ces nouvelles
versions) permettent de traiter des architectures plus complexes.

II.2.1. Partie matérielle des systèmes embarqués de deuxième génération :


L'architecture des systèmes embarqués de deuxième génération est composée d'un
processeur central, de nombreux périphériques, et souvent de quelques processeurs annexes
contrôlés par le processeur central. Le processeur central est dédié au contrôle de
l'ensemble du système. Les processeurs annexes sont utilisés pour les calculs ; il s'agit
souvent de processeurs spécialisés comme les DSP. Dans une telle architecture, plusieurs bus
de communication peuvent être nécessaires : chaque processeur dispose de son bus de
communication.

II.2.2. Partie logicielle des systèmes embarqués de deuxième génération :


La partie logicielle des systèmes embarqués de deuxième génération est répartie sur
plusieurs processeurs (le processeur principal et les processeurs annexes). Les systèmes
actuels sont trop complexes pour pouvoir être gérés par un unique programme sur le
processeur principal. Il est donc nécessaire d'avoir une gestion multitâche sur ce processeur,
et un système d'exploitation est couramment employé dans ce but.
Le logiciel du processeur central est souvent décrit dans un langage de haut niveau tel que le
C. le logiciel des processeurs annexes est souvent trop spécifique pour être entièrement
décrit dans un langage de haut niveau, et l'utilisation des langages d'a ssemblage est
nécessaire.

II.3. Les systèmes embarqués de troisième génération :


Les progrès de l'intégration permettent d'envisager des circuits pouvant contenir plusieurs
milliers de portes. Il devient donc techniquement possible de fabriquer des systèmes
embarqués pouvant remplir toutes les fonctionnalités souhaitées.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
II.3.1. Parties matérielles des systèmes embarqués de troisième génération :
Pour pouvoir supporter conjointement les besoins en puissance et en flexibilité, ces
architectures comprennent de plus en plus de processeurs, qui peuvent chacun se comporter
en maître : l'architecture couramment utilisée, basée sur un processeur central c ontrôlant
le reste du système, n'est donc plus suffisante.
Alors le goulet d'étranglement était les ressources en calcul, de nos jours il est situé plutôt
au niveau des communications. Ce sont elles qui définissent désormais l'architecture, et nos
plus les ressources de calcul. La figure I.4 donne des exemples d'architectures centrées sur
les communications. Dans cette figure, tous les éléments (processeur, ASIC ou mémoires)
sont traités de la même manière. Le premier exemple est basé sur des communications par
bus : ce modèle de communication consomme peu de surface, mais risque de devenir un goulet
d'étranglement. Le deuxième est basé sur des communications en barres croisées très
performantes mais aussi très coûteuses en surface. Le troisième exemple donne une solution
intermédiaire, par réseau commuté. Enfin le dernier exemple montre qu'il est possible de
mixer plusieurs modèles de communication, et d'apporter de la hiérarchie dans
l'architecture.
Autour de ce modèle d'architecture centré sur les communications, se greffent les autres
modèles d'architecture : architectures des éléments de calcul et des mémoires.
L'architecture des éléments de calcul consiste à définir quels sont les éléments principaux
et quels sont leurs périphériques de manière à les grouper dans une architecture locale.
L'architecture des mémoires sert à définir quelles sont les mémoires locales à un groupe et
quelles sont celles qui seront partagées.

II.3.2. Parties logicielles des systèmes embarqués de troisième génération :


Les parties logicielles ont beaucoup gagné en importance dans les systèmes embarqués.
Plusieurs systèmes d'exploitation sont parfois nécessaires pour les divers processeurs de
l'architecture. De plus, la complexité et la diversité des architectures possibles font qu'il
devient de plus en plus nécessaire d'abstraire les tâches logicielles des détails du matériel.
Toute cette complexité est donc reportée dans les systèmes d'exploitation, qui deviennent
de plus en plus complexes.
Cette complexité logicielle et matérielle entraîne de nombreuses alternatives. En particulier,
l'aspect multiprocesseur apporte des alternatives pour les systèmes d'exploitation : il peut
y avoir un seul système pour tous les processeurs (solution difficilement applicable lorsque
les processeurs sont hétérogènes), ou il peut y avoir un système par processeur (solution qui
peut être plus coûteuse).

II.4. Les systèmes embarqués spécifiques :

Lorsqu'un système est utilisé pour une tâche bien précise, il est souvent plus efficace et
économe s'il est spécifique à cette fonctionnalité que s'il est général. Les systèmes
embarqués sont très souvent utilisés dans ces conditions, et il est donc intéressant qu'ils
soient conçus spécifiquement pour les fonctions qu'ils doivent remplir. Notamment, les
Ir Roger Abedi Lukate
[email protected]
+243 97 34 81 921
contraintes citées dans la section précédente ne peuvent souvent être respectées que si le
système est conçu dès le départ pour pouvoir les respecter. Il est donc de par sa conception
même spécifique.

Le problème qui se pose alors est que, pour chaque nouvelle fonctionnalité, il faudra concevoir
un système spécifique différent de ceux déjà existants.

II.5. Le composant matériel

II.5.1. Le système contrôlé

Le système contrôlé est l’environnement du système réactif. C’est un procédé équipé d’une
instrumentation qui réalise l’interface avec le système de contrôle. Le fonctionnement du
système réactif est illustré par :

II.5.2. Le système de contrôle


Le système de contrôle concerne les éléments matériels et logiciels dont la mission est d'agir
sur le procédé via les actionneurs en fonction de l'état de ce procédé indiqué par les capteurs
de manière à maintenir ou à conduire le procédé dans un état donné, généralement, appelé «
architecture matérielle », c’est l’ensemble des composants physiques qui est nécessaire
d’ajouter à un processus pour réaliser une application temps réel. Il est constitué d’un
calculateur et des transducteurs.

a. Calculateur

Le calculateur peut être composé d’un ou plusieurs microprocesseurs, de circuits intégrés


spécialisés comme les ASIC ou les FPGA ainsi que des médias de communication.

• ASIC et FPGA :
Les Application Specific Integrated Circuits (ASIC) et les Field Programmable Gate Array
(FPGA) sont des circuits intégrés que l’on peut configurer pour réaliser à bas coût des
fonctions « câblées » simples dont les temps de réaction sont extrêmement courts. La
programmation de ces circuits n’est pas évidente car elle nécessite l’utilisation de
programmateurs ou de procédures spécialisés. Ce circuit n’intègre pas de séquenceur
d’instructions, ils ne sont capables que d’exécuter une seule fonction.
Ir Roger Abedi Lukate
[email protected]
+243 97 34 81 921
• Microprocesseurs, microcontrôleurs
Un microprocesseur est composé d’un Central Processing Unit (CPU) et d’unités de
communication pour communiquer avec des périphériques externes ou d’autres
microprocesseurs.
Le CPU est une machine séquentielle constituée généralement d’un séquenceur d’instruction
(SI), d’une unité de traitement (UT) et d’une mémoire. Les dernières générations 6 de
microprocesseurs peuvent aussi intégrer une unité de calcul flottant (FPU) dont le but est
d’accéder à certains calculs mathématique (addition, multiplication, fonction trigonométrique,
etc.). Un microcontrôleur est un microprocesseur intégrant un certain nombre d’interfaces
supplémentaires (mémoires, timers, Parallel Input Output, décodeurs d’adresse, etc.).
Ces nombreuses entrées-sorties garantissent un interfaçage aisé avec un environnement
extérieur tout en nécessitant un minimum de circuits périphériques ce qui les rends
particulièrement bien adaptés aux applications temps réels embarquées. Du fait de leur forte
intégration en périphérique, les microcontrôleurs sont souvent moins puissants que les
microprocesseurs.

• Médias de communication
Lorsque le calculateur intègre plusieurs processeurs on dit que l’architecture matérielle du
système est multiprocesseur ou parallèle. Les médias de communications sont les éléments
qui permettent aux processeurs d’un calculateur multiprocesseur d’échanger des données. On
peut classer ces médias de communication selon trois catégories principales :

- Média point à point Séquentiel Accès Memory (SAM) aussi appelée lien : c’est la liaison
bidirectionnelle entre deux mémoires SAM de deux processeurs différents. L’accès à ce
type de liaison est de type FIFO ou First In First Out, pour lequel l’ordre d’émission des
données est aussi l’ordre de réception ;
- Média multipoint SAM ou bus SAM : c’est aussi une liaison multidirectionnelle qui relie les
mémoires SAM de plus de deux processeurs ;
- Média multipoint RAM ou bus RAM : c’est aussi une liaison multidirectionnelle, mais ici
contrairement aux médias précédents la communication est réalisée à travers une mémoire
commune de type RAM.
b. Transducteurs
Le calculateur interagit avec le processus par l’intermédiaire de transducteurs. Ceux qui
permettent d’observer le processus sont appelés capteurs et ceux qui permettent d’agir
sur le processus sont appelés actionneurs.
• Capteur
Un capteur est un dispositif conçu pour mesurer une grandeur physique en la convertissant
en une tension ou un courant électrique. Le signal électrique issu d’un capteur est traité pour
être convertie en signal numérique pour pouvoir être traité par le calculateur. La numérisation
est réalisée par le Convertisseur Analogique Numérique (CAN) qui est utilisé pour

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
échantillonner le signal issu du capteur. La figure ci-dessous montre l’utilisation d’un capteur
dans un système embarqué.

• Actionneur
L’actionneur est un dispositif qui convertit un signal électrique en un phénomène physique
(moteur, vérin électrique, voyant, haut-parleur, etc.) censé modifier l’état courant du
processus. Le Signal de commande fourni par le calculateur est un signal numérique que le
Convertisseur Numérique Analogique ou CNA va convertir en signal électrique analogique.

La figure ci-dessous montre la commande d’un actionneur.

II.6. Les composants Logiciels

1. Microprogramme (Firmware) :

• Logiciel embarqué stocké dans la ROM qui contrôle le fonctionnement du


matériel et exécute les tâches spécifiques du système.

• Inclut les pilotes de périphériques et les routines de gestion des


entrées/sorties.

2. Système d'Exploitation Temps Réel (RTOS) :

• Un système d'exploitation spécialisé conçu pour gérer les tâches en temps réel
et respecter les contraintes de temps strictes.

• Gère la planification des tâches, la gestion des ressources et les interruptions.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
3. Applications :

• Logiciels spécifiques à l'application qui tournent sur le microcontrôleur et


interagissent avec le matériel via le microprogramme et le RTOS.

• Incluent les algorithmes de traitement des données, les protocoles de


communication et les interfaces utilisateur.

Architecture d'un Système Embarqué

Composants Principaux Fonction

Microcontrôleur/Microprocesseur Traitement des instructions et gestion des


tâches

Mémoire Stockage temporaire et permanent des


données et instructions

Périphériques d'Entrée/Sortie Communication avec les dispositifs externes

Capteurs Collecte des données de l'environnement

Actuateurs Exécution des actions basées sur les données


traitées

Microprogramme (Firmware) Contrôle du matériel et exécution des tâches


spécifiques

Système d'Exploitation Temps Réel Gestion des tâches et des ressources en temps
(RTOS) réel

Applications Logiciels spécifiques à l'application

Communication et Interconnexion

• Bus de données : Les différents composants matériels communiquent entre eux via
des bus de données, tels que le bus de données interne du microcontrôleur.

• Protocoles de communication : Les interfaces de communication utilisent des


protocoles standardisés (UART, SPI, I2C, CAN) pour échanger des données avec les
capteurs, actuateurs et autres systèmes externes.

Cette organisation permet aux systèmes embarqués de fonctionner de manière efficace et


fiable, en intégrant étroitement le matériel et le logiciel pour accomplir des tâches
spécifiques.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
II.7. Exigences d’un système embarqué

Un système embarqué requiert une multitude d’exigences.


II.7.1. Exigences fonctionnelles
Les systèmes embarqués fonctionnent généralement en temps réel. Les opérations de ces
systèmes sont faites en réponse à un évènement extérieur. Les opérations doivent avoir lieu
dans des délais précis et avant une échéance, afin de garantir le bon fonction nement du
système. Selon l’application, on distingue deux types de systèmes embarqués.
En premier, les systèmes temps réel stricts où le non-respect des échéances peut avoir des
conséquences graves sur le fonctionnement du système ou sur son environnement. Ensuite,
les systèmes temps réel où le non-respect des échéances ralentit le système sans
conséquences graves. Ces systèmes doivent garantir une très haute fiabilité, réagir en cas
de panne de l’un de ses composants, et assurer les besoins de sécurité.

II.7.2. Exigences techniques


Les systèmes embarqués doivent réagir dans des délais connus, garantis et interagir avec
leur environnement à une vitesse qui est imposée par ce dernier. L’exécution des tâches se
fait en temps réel. Les systèmes embarqués doivent en général être autonomes, c’est-à-dire
capables de fournir des services sans intervention humaine.
Ses critères d’autonomie s’appliquent d’abord sur le démarrage du système du fait de
l’utilisation de mémoire flash et manque de disque dur, et ensuite, sur le fonctionnement du
système en entier. L’autonomie énergétique fait aussi partie des exigences techniques. Les
systèmes devraient garantir un minimum de services dans tous les cas en dépit des erreurs
éventuelles d’exécution ou des défaillances possibles du matériel (étanche, choc, etc.).

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
II.7.3. Exigences économiques
Les systèmes embarqués doivent garantir la fonctionnalité et la qualité à un coût de
construction acceptable (rapport coût/efficacité). Beaucoup de systèmes embarqués sont
fabriqués en grande série et doivent avoir des prix de revient extrêmement faibles. Le
système embarqué nomade doit être de faible consommation car il est alimenté par des
batteries. Une consommation excessive augmente le prix de revient du système embarqué
car il faut alors des batteries de plus forte capacité. Dans un marché concurrentiel, il
convient d'avoir un système opérationnel le plus rapidement possible pour être le premier sur
le marché.

II.8. Contraintes
Un système embarqué fait face à certains faits contraignants :

a- Contrainte au niveau de la taille


Avec un poids, de volume et d’un espace mémoire limité de l'ordre de quelques Mo maximum,
l’espace est compté. Cependant, il y a une difficulté de faire cohabiter dans un faible volume
l’électronique analogique, l’électronique numérique et les composantes RF (Radiofréquence)
sans interférences. Ils font appel, très souvent, à l'informatique et aussi aux systèmes «
temps réel ».

b- Contrainte temporelle Dans le domaine Temporelle,


Le temps d'exécution des tâches est déterminé. Le temps réel exprime une qualité de service
à fournir, pour certains et une nécessité de garantir des délais de réponse connus à l’avance,
pour d’autres. Toutes les applications temps réel ont une caractéristique commune qui réside
dans l’existence de contraintes temporelles dont il faut tenir compte. Ces contraintes
peuvent prendre diverses formes (échéances, intervalles de temps, durée de validité, etc.)
et s’appliquer à des objets variés. En effet, dans les applications temps réel, les données ont
une durée de vie limitée et deviennent obsolètes après un certain temps. Les événements
apparaissent à des instants particuliers et doivent être pris en compte au bout de délais
connus à l’avance, ainsi les traitements (ou actions) ont souvent des instants de débuts, de
fin et des durées d’exécutions fixés.

c- Contrainte environnementale
L’évolution du système n’est pas contrôlée dans le milieu extérieur. Il est exposé à des
variations et d’autres contraintes environnementales susceptibles d'induire des défaillances.
Des contraintes d'implémentation physique sont liées à la consommation de ressources et au
contexte de déploiement. Par exemple, la température, les vibrations, les variations
d’alimentation, les interférences RF, la corrosion, l’eau, le feu, les radiations, etc.

d- Contrainte énergétique
Le système doit consommer de l’énergie le plus faible possible par l'utilisation de sources
autonomes, batteries, les panneaux solaires et la communication des matériels intégré au sein

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
du système. Il est nécessaire d’aborder ce sujet du fait que c’est une des raisons de ce travail
qui est la domotique.

II.9. Tâches
Une tâche est généralement caractérisée par un temps de calcul, une échéance qui est la
date à laquelle la tâche doit avoir terminé son exécution. Et dans le cas des tâches
périodiques, elle est caractérisée par une période qui représente la durée séparant les
instants d'activation. Une exécution de la tâche est appelée une instance
Les tâches accèdent à des ressources communes, s’échangent des messages via un réseau et
s’exécutent sur un ou plusieurs processeurs. Ils doivent respecter différentes contraintes à
savoir : - la cohérence des ressources partagées - la tolérance aux fautes : la puissance de
calcul du système embarqué doit être suffisante afin de fournir les fonctionnalités pour
lesquelles ce dernier a été conçu. - la sécurité : la protection des données de l’utilisateur doit
être assurée, grâce à la mise en œuvre de systèmes prédictibles. - Et le temps de réponse :
elle est directement liée à la dynamique du système.

II.9.1. Les différents types de tâches


On distingue plusieurs types de tâches.

a- Tâches d’entrées/sorties
Ces tâches permettent d’accéder aux données externes par l’intermédiaire de cartes
d’entrées/sorties et ensuite de capteurs et d’actionneurs directement liés au procédé géré.
Elles peuvent être activées de façon régulière ou par interruption.

b- Tâches de traitement
Ces tâches constituent le cœur de l’application. Elles intègrent des traitements de signaux
(analyse spectrale, corrélation, traitement d’images, etc.) ou des lois de commande
(Régulation tout ou rien, régulation du premier ordre, régulation PID, etc.).

c- Tâches de gestion de l’interface utilisateur


Ces tâches permettent de présenter l’état du procédé ou de sa gestion à l’utilisateur. En
réponse, l’opérateur peut modifier les consignes données ou changer les commandes. Elles
peuvent être très complexes et coûteuses en temps de calcul si l’interface gérée est de taille
importante (tableau de bord) ou de type graphique (représentation 3D).

d- Tâches de communications
Ces tâches sont destinées à gérer les messages envoyés ou reçus à travers un ou plusieurs
réseaux ou bus de terrain. Si ce type de tâches existe, l’application est dite distribuée ou
répartie.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
e- Tâches de sauvegarde
Ces tâches permettent de stocker l’état du système à des instants fixés. Cette sauvegarde
peut être utilisée a posteriori pour analyser le fonctionnement de l’application ou lors d’une
reprise d’exécution à une étape précédente.

II.9.2. Les relations entre les tâches


Les tâches obtenues, qui constituent l’application de contrôle-commande, ne sont pas des
entités d’exécution indépendantes. En effet certaines tâches sont connectées vers
l’extérieur pour les entrées/sorties. De plus elles peuvent être liées par des relations de
type.

a- Synchronisation
La synchronisation se traduit par une relation de précédence d’exécution entre les tâches.
Une tâche peut se synchroniser avec une autre tâche (ou une ISR) avec un sémaphore. Dans
ce cas un drapeau initialisé à 0 signale un évènement. Par exemple, une tâche peut lancer une
opération d’I/O et attendre le sémaphore. Quand l’opération d’I/O est terminée, une ISR
(ou une autre tâche) fait un signal sur le sémaphore (incrémentation), et la tâche peut
reprendre.
Si le noyau supporte les sémaphores compteur, il accumule les évènements non traités. Plus
d’une tâche peut être en attente d’évènement, le noyau dans ce cas signale à la tâche de plus
haute priorité en attente puis à la première tâche en attente de l’évènement.

b- Communications
Les tâches peuvent avoir besoin de communiquer avec une autre tâche par le transfert de
données globales ou messages. Les données globales nécessitent un accès exclusif à la
variable. Si une tâche est impliquée, il faut interdire les interruptions. Si deux tâches
partagent des données, elles peuvent interdire puis autoriser les interruptions (accès
exclusif) ou utiliser un sémaphore. Une tâche peut uniquement communiquer des informations
à une ISR via des variables globales, la tâche n’est pas mise au courant du changement par
l’ISR sauf si l’ISR signale à la tâche par un sémaphore ou que la tâche effectue une scrutation
périodique de la variable. Pour corriger ce problème, on utilise soit une boîte aux lettres de
messages (mail box) soit une queue de message.

c- Partage de ressources
Les tâches utilisent des éléments mis en commun au niveau du système comme des zones
mémoire, des cartes d’entrées/sorties, cartes réseau, etc. Certaines de ces ressources,
comme par exemple les zones mémoire, ne sont pas ou ne doivent pas être accessibles, pour
avoir un fonctionnement correct, par plus d’une tâche à la fois, elles sont dites ressources
critiques.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
II.10. Systèmes embarqués temps réel

1. Définition

Un système d'exploitation temps réel (RTOS - Real-Time Operating System) est


conçu pour gérer les tâches et les événements dans un cadre de temps strict et
prédéterminé. Contrairement aux systèmes d'exploitation classiques, un RTOS doit
garantir que les opérations cruciales sont effectuées dans un délai spécifié pour
assurer le bon fonctionnement des applications sensibles au temps.

Peut être qualifiée de "temps-réel" (ou "temps contraint", ou encore "réactif") toute
application mettant en œuvre un système informatique dont le fonctionnement est
assujetti à l'évolution dynamique de l'environnement qui lui est connecté et dont il
doit contrôler le comportement.

Ce sont des systèmes liés au contrôle de procédés l'exécution de programmes dans


ces systèmes doit terminer avant une date appelée échéance au-delà de laquelle les
résultats ne sont plus valides.
On distingue deux types de systèmes embarqués temps-réel :
Exemple critique : le contrôleur de frein d'une voiture
a. Système temps-réel dur/stricte (hard real-time)
Le non-respect des échéances peut avoir des conséquences graves sur le
fonctionnement du système ou sur son environnement (auto-pilotage, freinage,
assistance médicalisée …). Les échéances ne doivent jamais être dépassées.

b. Système temps-réel mou (soft real-time)


Le non-respect des échéances ralentit le système sans conséquences graves
(billetterie automatique…). Le système doit répondre au mieux, le plus rapidement
possible.
Ir Roger Abedi Lukate
[email protected]
+243 97 34 81 921
La plupart des systèmes embarqués sont dit mutlirate ou multi-période
Les données sont capturées à un certain rythme
Les traitements sur ces données ne sont pas forcément à la même granularité
Différents traitements peuvent intervenir de manière indépendante
• Les actionneurs fonctionnent à une fréquence différente

2. Architecture générale et mode de fonctionnement

3. Fonctionnement général : boucle infinie

Tant que TOUJOURS faire


Acquisition des entrées (données capteurs, mesures…)
Calcul des ordres à envoyer au procédé
Émission des ordres
Fin tant que
Mais, deux modes de fonctionnement :
a. Fonctionnement cyclique (time driven ou système "synchrone")
• Scrutation d'une mémoire d'entrée périodiquement (polling)
• Échantillonnage des entrées sur l'horloge du système
• Activation du système à chaque top d'horloge

A chaque top d'horloge faire


Lecture de la mémoire des entrées
Calcul des ordres à envoyer au procédé
Émission des ordres
Fin

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
Mais ce type de système est peu "réactif" si l'environnement produit des
informations à des fréquences différentes ce qui oblige à prévoir toutes les
réactions du système dans la même boucle donc il y a un problème de performance et
en est obligé à imbriquer des boucles de fréquences multiples ce qui implique des
difficultés de réalisation, de lisibilité du code et d'évolution
b. Fonctionnement événementiel (event driven)
Le fonctionnement est basé sur le principe d'activation du système à chaque
événement (notion d'interruption)
A chaque interruption faire Lecture de l'information arrivée activation du
traitement correspondant
Émission des ordres issus de ce traitement
Fin
Mais dans ce cas le problème réside dans le cas où une interruption survient alors
que le système est en train de traiter une interruption précédente, ce qui implique
des contraintes de programmation :
• Notion de priorité des interruptions
• Notion de "tâche" associée à une ou plusieurs interruptions
• Mécanisme de préemption et de reprise de tâche
• Gestion de l'exécution concurrente des tâches (ordonnancement)
Un système temps réel est souvent un système multitâche incluant un gestionnaire
de tâches (Ordonnanceur).

Ex : Le système de contrôle des gouvernes de l'Airbus A320 est un système


embarqué dont les exigences sont :
• Le système doit traduire en ordres de déflection des gouvernes les ordres de
pilotage venant du pilote ou de pilote automatique (facteur de charge)
• Le système doit maintenir l'avion dans son domaine de vol quelles que soient les
commandes du pilote ou du pilote automatique
• Compte tenu de la dynamique de l'avion, les ailerons et la gouverne de direction
doivent être asservis à une période minimale de 10ms
• Compte tenu de la dynamique de l'avion, la gouverne de profondeur doit être
asservie à une période minimale de 30ms
• La perte de contrôle à la fois des ailerons et des spoilers est catastrophique
(taux de panne de 10 -9)

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
• La perte de contrôle de la profondeur est catastrophique (taux de panne de
10-9)
• La perte de contrôle des spoilers, des ailerons, de la direction et de la
profondeur ne doit pas être causée par une panne unique

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
II.11. Serveur Web Embarqué
Un serveur web embarqué est un « site web » intégré dans un module électronique, destiné
à être mis en place dans un équipement. Vous pouvez ensuite interagir avec l'équipement au
moyen d'une simple connexion réseau. C'est le premier pas vers les objets connectés.

Ces modules électroniques peuvent être implantés sur tout type de matériel (domestiques,
industriels…) afin de les piloter depuis un poste informatique. Le serveur Web embarqué est
un moyen très simple d'ajouter une couche de services à vos produits, et de renforcer votre
relation client.
Avec serveur web : Il devient très simple d'interagir avec le matériel. De nouvelles
opportunités de service s'ouvrent alors pour votre client et vous-même.
- Quelques cas d’emploi : Améliorer votre politique SAV en étant au plus près de votre client
: Vous êtes fabricant de machine. Au travers de l’interface du serveur web vous pouvez avoir
un regard permanent sur l’état de fonctionnement de votre machine, et apporter à distance
un support technique à votre client (conseils à l’utilisation, opérations de maintenance…)
Mise à jour de firmware : Votre service R&D fait du co-développement technique avec un
partenaire lointain : Vous allez pouvoir mettre à jour le logiciel de votre produit à distance,
sans perte de temps. Vous allez donc gagner en réactivité et en couts de fonctionnement.
Automatiser vos process : Vous devez gérer un parc d’équipements : En créant des retours
d’alertes automatiques, vous êtes informé des disfonctionnements, uniquement quand c’est
utile. Gain en volume et en qualité d’information.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
Chapitre IV : Programmation en langage Arduino
III.1. Introduction
La carte Arduino est un microcontrôleur, c’est à dire une sorte de mini-ordinateur qui
sert d’interface entre l’environnement (actions, mesures de grandeurs...) et un
utilisateur. Elle se programme nativement dans un langage dérivé du C : le langage «
Arduino ».
Arduino est un circuit imprimé en matériel libre (dont les plans sont publiés en licence
libre) sur lequel se trouve un microcontrôleur qui peut être programmé pour analyser
et produire des signaux électriques, de manière à effectuer des tâches très diverses
comme la charge de batteries, la domotique (le contrôle des appareils domestiques -
éclairage, chauffage…), le pilotage d'un robot, etc. C'est une plateforme basée sur
une interface entrée/sortie simple et sur un environnement de développement
utilisant la technique du Processing/Wiring.
Nous distinguons plusieurs types de carte Arduino mais le plus utilisée sont trois :

• Arduino UNO
• Arduino Nano
• Arduino Mega

La programmation d’Arduino se fait en langage C (Le C est un langage de


programmation impératif conçu pour la programmation système. En informatique, la
programmation impérative est un paradigme de programmation qui décrit les
opérations en termes de séquences d'instructions exécutées par l'ordinateur pour
modifier l'état du programme.
Cette programmation se fait se fait avec deux fonctions,

• La fonction setup () : qui décrit les configurations du programme ou des


instructions.
• La fonctions Loop () : qui contient la boucle répétitive des instructions.

pinMode ()
Ir Roger Abedi Lukate
[email protected]
+243 97 34 81 921
pin : correspond au numéro du pin Arduino ou du port

Mode : détermine la nature ou positionnement de l’équipement (INPUT ou OUTPUT)

Interface homme-machine

CPU - Lampe
Sortie ou actionnaire - Porte
Entrée (capteurs) Microcontrôleur
- Son
- Etc.

Présentation de la carte :

Entrées ou sortie digitales


OU mode PWM
Entrées ou sorties
Bouton RESET digitales

Port USB

Branchement Entrées
alimentation externe analogiques, qui
Sortie 5 V ou 3 ,3 V pour 2 Branchements peuvent mesurer alimentation des
De capteurs tension

Le logiciel utilisé :
Arduino est le Logiciel permettant d’installer les drivers des cartes Arduino, de la
programmer en langage C.
Il est téléchargeable librement sur : https://www.arduino.cc/

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
Ir Roger Abedi Lukate
[email protected]
+243 97 34 81 921
III.2. Prise en main d’Arduino
De nombreux exemples pré-enregistrés peuvent être chargés et testés : ils
permettent de se familiariser avec le langage plus rapidement.
Nous allons tester le plus simple. Faire Fichier > Exemples >01.Basics > Blink.
• Le logiciel demande la sauvegarde le programme dans un dossier qui porte le même
nom à la première compilation.
• Les majuscules et minuscules sont prises en compte dans les fonctions et variables.
• En langage Arduino, la plupart des lignes se termine par un point-virgule ;
• Les blocs, boucles, fonctions sont encadrées par des accolades { }, apprendre à
bien les repérer !
• Toutes les variables doivent être déclarées (nom et type).
• L’indentation (décalage) n’est pas obligatoire mais conseillée pour bien se repérer
dans le programme
• Les commentaires sont définis par // en début de ligne. Les blocs de commentaires par /*
au début et */ à la fin.
• Les principales fonctions seront vues à travers quelques exemples de programmes.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
Exemple 1 : Comment implémenter un capteur de température

#include "DHT.h" DHT dht(2, DHT11);


void setup() {
dht.begin();
Serial.begin(9600);
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
Serial.print("Humidity: ");
Serial.println(h);
Serial.print("Temperature: ");
Serial.println(t);
delay(1000);
}

Exemple 2 : Comment implémenter un capteur d’eau

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
int water;
void setup() {
pinMode(13, OUTPUT); // met la broche numérique en sortie
pinMode(A1, INPUT);
Serial.begin(9600); // ouvre le port série
}
void loop() {
water = analogRead(A1);
Serial.println(water);
if (water > 100) {
digitalWrite (13, HIGH); } // allume la LED
if (water < 100) { digitalWrite(13, LOW); } // éteint la LED
delay(1000); // attend une seconde
}

Exemple 3 : Comment implémenter un capteur de proximité

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
Exemple 4 : Le capteur optique d ’obstacles (KY-032 / FC-51) est l’un des capteurs
les plus courants. Il est parfait pour un robot ou une voiture alimentée par Arduino
pour éviter les obstacles.
Le capteur est très simple dans son principe de fonctionnement et dans la façon dont
il est connecté à la carte Arduino UNO. Voyons la structure du capteur
infrarouge, son schéma de câblage et un exemple de programme pour travailler avec
avoid sensor Arduino.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
#define OBS A1
#define LED 12
int avoid;
void setup() {
Serial.begin(9600);
pinMode(OBS, INPUT); pinMode(LED, OUTPUT);
}
void loop() {
avoid = digitalRead(OBS); // lecture de la valeur du signal
Serial.print("Avoid Sensor - ");
Serial.println(avoid);
if (avoid == HIGH) { digitalWrite(LED, HIGH); }
else { digitalWrite(LED, LOW); } }

Exemple 5 : Le capteur de flamme KY -026 (flame sensor Arduino) vous permet de


détecter la présence d ’une flamme nue à l’aide d’un récepteur infrarouge. Le capteur
peut être utilisé pour créer une alarme incendie dans la maison et de nombreux autres
dispositifs utiles.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
Voyons comment construire ce capteur, comment le connecter au microcontrôleur
Arduino UNO et comment le module fonctionne en utilisant un programme simple
comme exemple.

#define flamePin 2
#define ledPin 12
int flame;
void setup() {
Serial.begin(9600);
pinMode(flamePin, INPUT); pinMode(ledPin, OUTPUT);
}
void loop() { flame = digitalRead(flamePin);
Serial.print("Flame Sensor - ");
Serial.println(flame);
if { (flame == HIGH) digitalWrite(ledPin, HIGH) };
else
{ digitalWrite(ledPin, LOW) };
}

Exemple 6 : La connexion d’un relais à l’Arduino sera nécessaire si vous décidez de


contrôler une charge lourde ou un courant alternatif avec le microcontrôleur. Le
module relais SRD -05VDC-SL-C vous permet de contrôler des circuits électriques
avec des courants alternatifs jusqu’à 250 volts et des charges jusqu’à 10 ampères.

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
Considérez le schéma de câblage du relais, comment contrôler le module pour
allumer le ruban LED RGB et la lampe 220 Volts.

void setup() {
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH);
delay(3000);
digitalWrite(2, LOW);
delay(3000);
}
Exemple 6 b:
#define RED 2
#define GRN 3
#define BLU 4
void setup() {
pinMode(RED, OUTPUT);
pinMode(GRN, OUTPUT);
pinMode(BLU, OUTPUT);
}
void loop()
{ digitalWrite(RED, HIGH);
digitalWrite(GRN, LOW);
digitalWrite(BLU, LOW);

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
delay(3000);
digitalWrite(RED, LOW);
digitalWrite(GRN, HIGH);
digitalWrite(BLU, LOW);
delay(3000);
digitalWrite(RED, LOW);
digitalWrite(GRN, LOW);
digitalWrite(BLU, HIGH);
delay(3000);
}

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921
Bibliographie
1. C. Cardeira, Z. Mammeri, « Ordonnancement des tâches dans les systèmes temps
réel et répartis - Algorithmes et critères de classification », revue APII, Vol. 28,
n°4, pp. 353-384, 1994.
2. J. P. Babau, "Etude du comportement temporel des applications temps réel à
contraintes strictes basée sur une analyse d'ordonnançabilité", thèse de
doctorat, ENSMA, 1996.
3. Le site officiel Arduino : https://www.arduino.cc/
4. La physique avec Arduino : https://opentp.fr/card/ La physique autrement :
5. http://hebergement.u-
psud.fr/supraconductivite/projet/enseigner_la_physique_avec_arduino/
6. Fritzing, le logiciel libre et gratuit pour schématiser les montages :
http://fritzing.org/home/

Ir Roger Abedi Lukate


[email protected]
+243 97 34 81 921

Vous aimerez peut-être aussi