École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie...

25
École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique embarquée Coordonnateur: Réjean Plamondon, ing. Ph.D., professeur titulaire Département de génie électrique, section génie biomédical (A.429.16) Courriel: rejean.plamondon @ polymtl.ca Chargé de cours et de laboratoire: Julien Beaudry, étudiant M.Sc.A. (A.321) Courriel: julien.beaudry @ polymtl.ca Chargé de laboratoire: Moussa Djioua, étudiant Ph.D. (A.408) Courriel: moussa.djioua @ polymtl.ca

Transcript of École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie...

Page 1: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

École Polytechnique de MontréalDépartement de génie électrique

ELE3100 - Projets de génie électrique

Robotique et informatique

Cours no. 10: Informatique embarquée

Coordonnateur:Réjean Plamondon, ing. Ph.D., professeur titulaireDépartement de génie électrique, section génie biomédical (A.429.16)Courriel: [email protected]

Chargé de cours et de laboratoire:Julien Beaudry, étudiant M.Sc.A. (A.321)Courriel: [email protected]

Chargé de laboratoire:Moussa Djioua, étudiant Ph.D. (A.408)Courriel: [email protected]

Page 2: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Plan du cours

2

• Systèmes temps-réel

• Systèmes d’exploitation temps-réel

• Performances des systèmes d’exploitation temps-réel

• Logiciel temps-réel embarqué

• Ordinateurs embarqués

Page 3: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Systèmes temps-réel

3

Distinction entre un système temps-réel et un système Distinction entre un système temps-réel et un système d’exploitation temps-réel:d’exploitation temps-réel:

•Un système temps-réel peut être vu comme l’application dans Un système temps-réel peut être vu comme l’application dans son ensemble, incluant les systèmes électromécaniques, son ensemble, incluant les systèmes électromécaniques, électroniques et logiciels constituant l’application. Ce système électroniques et logiciels constituant l’application. Ce système permet de définir les performances temps-réel désirées.permet de définir les performances temps-réel désirées.

• Le système d’exploitation temps-réel est une composante du Le système d’exploitation temps-réel est une composante du système temps-réel et il offre les fonctionnalités nécessaires pour système temps-réel et il offre les fonctionnalités nécessaires pour contrôler ce dernier. Il définit les performances temps-réel contrôler ce dernier. Il définit les performances temps-réel atteignables.atteignables.

Page 4: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Systèmes temps-réel

4

Qu’est-ce qu’une contrainte temps-réel?Qu’est-ce qu’une contrainte temps-réel?

Une contrainte temps-réel est une contrainte temporelle dictée Une contrainte temps-réel est une contrainte temporelle dictée par le système temps-réel. Un système temps-réel définira un par le système temps-réel. Un système temps-réel définira un ensemble de contraintes temporelles à respecter.ensemble de contraintes temporelles à respecter.

Exemple:Exemple:

Le pilote automatique d’un avion de ligne doit entre autre Le pilote automatique d’un avion de ligne doit entre autre mesurer l’état des capteurs du système (GPS, accéléromètres, mesurer l’état des capteurs du système (GPS, accéléromètres, gyroscopes, etc.) et effectuer les calculs nécessaires pour gyroscopes, etc.) et effectuer les calculs nécessaires pour commander les actuateurs. Une première contrainte temporelle commander les actuateurs. Une première contrainte temporelle serait au niveau de la période de la boucle de contrôle. Une autre serait au niveau de la période de la boucle de contrôle. Une autre pourrait être au niveau de la précision de la mesure de la période pourrait être au niveau de la précision de la mesure de la période d’échantillonnage des accéléromètres.d’échantillonnage des accéléromètres.

Page 5: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Systèmes temps-réel

5

Contrainte temps-réel souple .vs. contrainte temps-réel Contrainte temps-réel souple .vs. contrainte temps-réel dure:dure:

Les expressions anglophones Les expressions anglophones “soft real-time” et “hard real-time” “soft real-time” et “hard real-time” sont couramment utilissont couramment utilisées ées

• Une contrainte temps-réel souple constitue une exigence du Une contrainte temps-réel souple constitue une exigence du système, mais elle peut ne pas être respectée à l’occasion sans système, mais elle peut ne pas être respectée à l’occasion sans trop perturber le système (la stabilité n’en serait pas affectée).trop perturber le système (la stabilité n’en serait pas affectée).

• Une contrainte temps-réel dure constitue une exigence du Une contrainte temps-réel dure constitue une exigence du système qui se doit absolument d’être respectée (la stabilité du système qui se doit absolument d’être respectée (la stabilité du système pourrait être affectée si elle ne l’est pas).système pourrait être affectée si elle ne l’est pas).

Page 6: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Systèmes temps-réel

6

Système temps-réel souple .vs. système temps-réel Système temps-réel souple .vs. système temps-réel dur:dur:

• Un système temps-réel souple est strictement constitué de Un système temps-réel souple est strictement constitué de contraintes temps-réel souples. contraintes temps-réel souples.

• Un système temps-réel dur est strictement constitué de Un système temps-réel dur est strictement constitué de contraintes temps-réel dures. contraintes temps-réel dures.

• Un système temps-réel peut également être constitué de Un système temps-réel peut également être constitué de contraintes temps-réel souples et dures. contraintes temps-réel souples et dures.

Page 7: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Systèmes d’exploitation temps-réel

7

Définition d’un système d’exploitation temps-réel:Définition d’un système d’exploitation temps-réel:

Il peut être défini comme étant un système d’exploitation Il peut être défini comme étant un système d’exploitation capable de respecter un ensemble d’exigences capable de respecter un ensemble d’exigences fonctionnelles (comme tout système d’exploitation, temps-fonctionnelles (comme tout système d’exploitation, temps-réel ou non), mais également un ensemble d’exigences réel ou non), mais également un ensemble d’exigences temporelles. temporelles.

NOTE: contrairement à ce que l’on pourrait croire, un NOTE: contrairement à ce que l’on pourrait croire, un système d’exploitation temps-réel n’est pas nécessairement système d’exploitation temps-réel n’est pas nécessairement plus rapide, mais il se doit surtout d’être prédictible.plus rapide, mais il se doit surtout d’être prédictible.

Page 8: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Systèmes d’exploitation temps-réel

8

Principaux systèmes d’exploitation temps-réel:Principaux systèmes d’exploitation temps-réel:

•QNX*, VxWorks*, LynxOS*, Linux (avec RTAI ou RT-Linux), QNX*, VxWorks*, LynxOS*, Linux (avec RTAI ou RT-Linux), IRIX, Digital UNIX, Windows CEIRIX, Digital UNIX, Windows CE//XP Embedded, et il en existe XP Embedded, et il en existe d’autres!d’autres!

*: ces systèmes d’exploitation peuvent être dits temps-réel purs, *: ces systèmes d’exploitation peuvent être dits temps-réel purs, c’est-à-dire qu’ils sont conçus à la base pour des systèmes c’est-à-dire qu’ils sont conçus à la base pour des systèmes temps-réel. Les autres sont des variantes de systèmes temps-réel. Les autres sont des variantes de systèmes d’exploitation non temps-réel.d’exploitation non temps-réel.

Page 9: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Systèmes d’exploitation temps-réel

9

Références sur les systèmes d’exploitation temps-réel:Références sur les systèmes d’exploitation temps-réel:

• Linux, RTAI: http://www.rtai.org/

• Linux, RTLinux: http://www.fsmlabs.com/

• QNX: http://www.qnx.com/

• VxWorks: http://www.windriver.com/

• LynxOS: http://www.lynuxworks.com/

• Windows Embedded: http://msdn.microsoft.com/embedded/default.aspx

Page 10: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Systèmes d’exploitation temps-réel

10

Qu’est-ce que POSIX?Qu’est-ce que POSIX?

POSIX est l’acronyme de Portable Operating System Interface et POSIX est l’acronyme de Portable Operating System Interface et est un groupe de standards défini par l’IEEE . Son objectif est de est un groupe de standards défini par l’IEEE . Son objectif est de définir une interface et un environnement standardisé, basé sur définir une interface et un environnement standardisé, basé sur les spécifications du système UNIX, dans le but d’offrir une les spécifications du système UNIX, dans le but d’offrir une portabilité à la base du système.portabilité à la base du système.

Ainsi, tout programme utilisant les standards POSIX devrait Ainsi, tout programme utilisant les standards POSIX devrait normalement s’exécuter correctement sous tout système normalement s’exécuter correctement sous tout système d’exploitation supportant ces standards. C’est pourquoi la librairie d’exploitation supportant ces standards. C’est pourquoi la librairie MICROB utilise ces standards pour les OS qui les supportent.MICROB utilise ces standards pour les OS qui les supportent.

Page 11: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Systèmes d’exploitation temps-réel

11

Qu’est-ce que POSIX.4?Qu’est-ce que POSIX.4?

Le standard POSIX.4, qui est un reproupement des standards Le standard POSIX.4, qui est un reproupement des standards POSIX.1, POSIX.1b et POSIX.1c, définit un ensemble de POSIX.1, POSIX.1b et POSIX.1c, définit un ensemble de fonctions permettant à un OS d’offrir les principales fonctions permettant à un OS d’offrir les principales fonctionnalités d’un OS temps-réel.fonctionnalités d’un OS temps-réel.

Bill O. Gallmeister,Bill O. Gallmeister, POSIX.4: Programming for the Real POSIX.4: Programming for the Real WorldWorld, O’Reilly, 1995., O’Reilly, 1995.

Page 12: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Systèmes d’exploitation temps-réel

12

Quelques fonctions POSIX couramment utilisées:Quelques fonctions POSIX couramment utilisées:

•Horloges et minuteries : clock_gettime(), clock_getres(), timer_settime()Horloges et minuteries : clock_gettime(), clock_getres(), timer_settime()

•Réponse aux interruptions: kill(), sigaction(), sigfillset()Réponse aux interruptions: kill(), sigaction(), sigfillset()

•Mécanismes d’ordonnancement: sched_yield(), sched_setparam()Mécanismes d’ordonnancement: sched_yield(), sched_setparam()

•Gestion de la mémoire: malloc(), mmap(), free()Gestion de la mémoire: malloc(), mmap(), free()

•Gestion des tâches et processus: fork(), exec(), wait(), PthreadsGestion des tâches et processus: fork(), exec(), wait(), Pthreads

•Communication inter-processus: shm_open, mmap(), mq_open(), Communication inter-processus: shm_open, mmap(), mq_open(), mq_receive()mq_receive()

•Gestion des entréesGestion des entrées/sorties: open(), read(), write(), close()/sorties: open(), read(), write(), close()

Page 13: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Systèmes d’exploitation temps-réel

13

Critères permettant d’évaluer un système d’exploitation Critères permettant d’évaluer un système d’exploitation temps-réel selon les différentes caractéristiques temps-réel selon les différentes caractéristiques (POSIX.4 chapitre 7) :(POSIX.4 chapitre 7) :

• Capacité (nombre maximal d’opérations en un temps donné)Capacité (nombre maximal d’opérations en un temps donné)

•Temps de réaction (rapidité du système à réagir aux Temps de réaction (rapidité du système à réagir aux événements)événements)

• Déterminisme (mesure indiquant la fiabilité de la réaction du Déterminisme (mesure indiquant la fiabilité de la réaction du système aux événements)système aux événements)

Page 14: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Systèmes d’exploitation temps-réel

14

Comparaison des minuteries pour quelques systèmes Comparaison des minuteries pour quelques systèmes d’exploitation:d’exploitation:

Windows (Windows 2000): Windows (Windows 2000):

* fonction GetTickCount(): résolution de 10ms* fonction GetTickCount(): résolution de 10ms

minuterie Multimedia (winmm.lib): résolution de 2msminuterie Multimedia (winmm.lib): résolution de 2ms

Linux (RedHat 7.x):Linux (RedHat 7.x):

* fonction gettimeofday(): résolution de 10ms* fonction gettimeofday(): résolution de 10ms

possibilité d’amélioration et respect du standard POSIX avec RT-possibilité d’amélioration et respect du standard POSIX avec RT-Linux ou RTAILinux ou RTAI

possibilité d’utiliser les ticks CPU pour plus de précisionpossibilité d’utiliser les ticks CPU pour plus de précision

Page 15: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Systèmes d’exploitation temps-réel

15

Comparaison des minuteries des systèmes Comparaison des minuteries des systèmes d’exploitation utilisés au laboratoire:d’exploitation utilisés au laboratoire:

QNX (Neutrino 6.2): QNX (Neutrino 6.2):

* fonction clock_gettime(): résolution de 10ms par défaut, peut * fonction clock_gettime(): résolution de 10ms par défaut, peut être diminuée jusqu’à l’ordre du 0.1ms (par la fonction être diminuée jusqu’à l’ordre du 0.1ms (par la fonction ClockPeriod())ClockPeriod())

possibilité d’utiliser les ticks CPU pour plus de précisionpossibilité d’utiliser les ticks CPU pour plus de précision

*: méthode employée dans la librairie MICROB*: méthode employée dans la librairie MICROB

Page 16: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Logiciel temps réel embarqué: principaux éléments

16

Éléments logiciels fréquemment utilisés dans diverses Éléments logiciels fréquemment utilisés dans diverses architectures logicielles de robotique mobile:architectures logicielles de robotique mobile:

• Boucles temporellesBoucles temporelles

• Communications inter-processusCommunications inter-processus

• Interfaces avec périphériques (pilotes)Interfaces avec périphériques (pilotes)

Généralement, ces éléments seront implantés sur un Généralement, ces éléments seront implantés sur un ordinateur embarqué muni d’un système d’exploitation ordinateur embarqué muni d’un système d’exploitation temps-réel et d’une combinaison de divers langages de temps-réel et d’une combinaison de divers langages de programmation (Cprogrammation (C//C++, assembleur).C++, assembleur).

Page 17: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Logiciel temps réel embarqué: principaux éléments

17

Boucles temporelles (POSIX.4 chapitre 3)Boucles temporelles (POSIX.4 chapitre 3)

• Plusieurs possibilités d’implantation (un ou plusieurs processus, Plusieurs possibilités d’implantation (un ou plusieurs processus, un ou plusieurs « threads »)un ou plusieurs « threads »)

• Utilisation d’une période prédéterminée (ex.: classe Engine de Utilisation d’une période prédéterminée (ex.: classe Engine de MICROB) ou boucle contrôlée par d’autre paramètres (ex.: classe MICROB) ou boucle contrôlée par d’autre paramètres (ex.: classe Thread de MICROB)Thread de MICROB)

Page 18: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Logiciel temps réel embarqué: principaux éléments

18

Boucles temporelles: exemple de logiciel « multithread »Boucles temporelles: exemple de logiciel « multithread »

Page 19: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Logiciel temps réel embarqué: principaux éléments

19

Boucles temporelles: exemple de logiciel « singlethread »Boucles temporelles: exemple de logiciel « singlethread »

Page 20: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Logiciel temps réel embarqué: principaux éléments

20

Communications inter-processusCommunications inter-processus

•Partage de données entre processus sur un même ordinateur Partage de données entre processus sur un même ordinateur (POSIX.4 chapitre 4): messages, mémoire partagée (ex.: classe (POSIX.4 chapitre 4): messages, mémoire partagée (ex.: classe Shmem de MICROB)Shmem de MICROB)

• Communications entre processus distribués: communication Communications entre processus distribués: communication socket par protocole UDP ou TCPsocket par protocole UDP ou TCP//IP (plus fréquent) (ex. classes IP (plus fréquent) (ex. classes Client et Server de MICROB)Client et Server de MICROB)

Page 21: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Ordinateurs embarqués: principales caractéristiques

21

Caractéristiques recherchées d’un ordinateur embarqué:Caractéristiques recherchées d’un ordinateur embarqué:

• Puissance de calcul suffisante

• Entrées/sorties suffisantes: pour cartes et périphériques désirés

• Périphériques intégrés: doit intégrer quelques périphériques usuels (contrôleurs graphique, réseau, etc.)

• Robustesse: doit résister à un environnement parfois hostile

• Consommation électrique limitée

• Volume occupé restreint: doit s’intégrer à la structure mécanique

Les caractéristiques recherchées peuvent varier Les caractéristiques recherchées peuvent varier considérablement en fonction de l’application.considérablement en fonction de l’application.

Page 22: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Ordinateurs embarqués: quelques exemples

22

Format Half-Size SBC: 18 x 12 cmFormat Half-Size SBC: 18 x 12 cm

Exemple: VIPer 830 (Kontron), http://www.kontron.com/products/pdproductdetail.cfm?keyProduct=31518

Page 23: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Ordinateurs embarqués: quelques exemples

23

Format EBX: 20.3 x 14.8 cmFormat EBX: 20.3 x 14.8 cm

Exemple: MSEBX855 (Digital-Logic), http://www.digitallogic.com/english/products/datasheets/ms_ebx855.asp?id=MSEBX855

Page 24: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Ordinateurs embarqués: quelques exemples

24

Format PC/104: 9.2 x 9.7 cmFormat PC/104: 9.2 x 9.7 cm

Exemple: Jaguar (Versalogic), http://www.versalogic.com/Products/DS.asp?ProductID=143

Page 25: École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique.

ELE3100, Projets de génie électrique:

informatique embarquée

Ordinateurs embarqués: quelques exemples

25

Les standards PC/104 et PC/104+ sont couramment utilisés Les standards PC/104 et PC/104+ sont couramment utilisés sur les ordinateurs embarqués. Pour obtenir les sur les ordinateurs embarqués. Pour obtenir les spécifications de ces standards ainsi qu’une liste de spécifications de ces standards ainsi qu’une liste de fabricants, consulter:fabricants, consulter:

Consortium PC/104: http://www.pc104.org Consortium PC/104: http://www.pc104.org