Beruflich Dokumente
Kultur Dokumente
Chapitre 1
1.1. Définitions
Un système temps réel est un système informatique dont le fonctionnement est assujetti
à l’évolution dynamique d’un procédé extérieur qui lui est connecté et dont il doit contrôler le
comportement.
Un système temps réel n’est pas un système qui va vite mais un système qui satisfait à
des contraintes temporelles (deadline).
1
Chapitre 1 Description des systèmes temps réel
Plusieurs contraintes à vérifier pour qu’un système temps réel soit fonctionnel :
Déterminisme logique : les mêmes entrées appliquées au système produisent les mêmes
résultats ;
Exactitude temporelle (timeliness) : respect des contraintes temporelles. Les sorties sont
présentées au bon moment ;
Il existe trois catégories des systèmes en temps réel selon le respect des contraintes
temporelles (degrés de tolérance) :
Il s’agit d’un système où l’ensemble des contraintes temporelles doit absolument être
respecté. Pour ce faire il faut pouvoir définir les conditions de fonctionnement du système,
c’est-à-dire connaître parfaitement l’environnement du système. Il faut également être capable
de garantir la fiabilité du système avant son exécution. Tous les scénarios possibles
d’exécution doivent donc être étudiés et le bon fonctionnement du système doit être garanti
pour chacun de ces scénarios. L’ensemble du système doit évidemment être suffisamment
connu pour pouvoir fournir de telles garanties.
Exemple: contrôle de trafic aérien, contrôle d’une centrale nucléaire, systèmes embarqués
utilisés dans l’aéronautique (les avions), système de conduite de missile, etc.
2
Chapitre 1 Description des systèmes temps réel
Le respect des échéances est important mais le non respect des échéances ne peut
occasionner de graves conséquences.
Les systèmes temps réel souple ont des contraintes de temps moins exigeantes que les
précédents. Une faute temporelle n’y est pas catastrophique pour le fonctionnement. Un tel
système pourra donc accepter un certain nombre de fautes temporelles, tout en pouvant
continuer son exécution.
Exemple: projection vidéo (décalage entre le son et l’image), multimédia.
3
Chapitre 1 Description des systèmes temps réel
Les applications temps réel couvrent un très grand domaine dont voici quelque
exemple:
Produits de grande consommation : Cafetière, machines à laver, fours à micro-onde.
Electronique grand public : Caméras numériques, appareils photo numériques,
multimédia, téléphonie (décodeur vidéo, téléphone portables, consoles de jeu).
Automobile : Systèmes de freins, contrôle moteur.
Contrôle de procédés industriels.
Avionique, spatial, production d’énergie (nucléaire).
Périphériques informatique : FAX, imprimantes, scanner… etc.
Le logiciel qui permet de programmer votre carte Arduino porte le nom d’IDE, ce qui
signifie en anglais : Integrated Development Environment ou encore Environnement de
Développement Intégré. En effet, cette application intègre l’édition des programmes, le
téléversement dans la carte Arduino et plusieurs bibliothèques. Le logiciel IDE est téléchargé
gratuitement sur internet « www.arduino.cc ».
4
Chapitre 1 Description des systèmes temps réel
Le code écrit avec le logiciel Arduino est appelé un programme (ou une séquence -
sketch en anglais) :
Ces programmes sont écrits dans l'éditeur de texte. Celui-ci a les fonctionnalités usuelles de
copier/coller et de rechercher/remplacer le texte.
La zone de messages donne l'état de l'opération en cours lors des sauvegardes, des
exportations et affiche également les erreurs.
La console texte affiche les messages produits par le logiciel Arduino incluant des
messages d'erreur détaillés et autres informations utiles.
5
Chapitre 1 Description des systèmes temps réel
Déroulement du programme
6
Chapitre 1 Description des systèmes temps réel
1.5.5. Exemple :
TA TE
Programme
7
Chapitre 1 Description des systèmes temps réel
Première fonction:
void setup()
{
}
Cette fonction setup() est appelée une seule fois lorsque le programme commence. C'est
pourquoi c'est dans cette fonction que l'on va écrire le code qui n'a besoin d'être exécuté
qu’une seule fois. On appelle cette fonction : "fonction d'initialisation". On y retrouvera la
mise en place des différentes sorties et quelques autres réglages.
Une fois que l'on a initialisé le programme, il faut ensuite créer son "cœur", autrement dit le
programme en lui même.
Deuxième fonction:
Void loop()
{
}
C'est donc dans cette fonction loop() que l’on va écrire le contenu du programme. Il faut
savoir que cette fonction est appelée en permanence, c'est-à-dire qu'elle est exécutée une fois,
puis lorsque son exécution est terminée, on la réexécute, encore et encore. On parle de boucle
infinie.
Les instructions
Maintenant que nous avons vu la structure des fonctions, regardons ce qu’elles peuvent
contenir. Les instructions sont des lignes de code qui disent au programme : "fais ceci, fais
cela..." Ce sont donc les ordres qui seront exécutés par l’Arduino. Il est très important de
respecter exactement la syntaxe; faute de quoi, le code ne pourra pas être exécuté.
Les accolades { }
Les accolades sont les "conteneurs" du code du programme. Elles sont propres aux fonctions,
aux conditions et aux boucles. Les instructions du programme sont écrites à l'intérieur de ces
accolades.
8
Chapitre 1 Description des systèmes temps réel
Les commentaires
Les commentaires sont des lignes de codes qui seront ignorées par le programme. Elles ne
servent en rien lors de l'exécution du programme. Ils permettent d'annoter et de commenter le
programme.
Ligne unique de commentaire :
Les accents
Il est formellement interdit de mettre des accents en programmation. Sauf dans les
commentaires...
1.5.6. Exercice
Ecrire un programme qui faire clignoter 3 LEDs en même temps, sachant que les LEDs sont
allumer pendant 2 s et éteindre pendant 3 s.