La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique."— Transcription de la présentation:

1 École Polytechnique de Montréal Département de génie électrique ELE 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 ) Courriel: Chargé de cours et de laboratoire: Julien Beaudry, étudiant M.Sc.A. (A.321) Courriel: Chargé de laboratoire: Moussa Djioua, étudiant Ph.D. (A.408) Courriel:

2 ELE3100, Projets de génie électrique: informatique embarquée Plan du cours 2 Systèmes temps-réel Systèmes dexploitation temps-réel Performances des systèmes dexploitation temps- réel Logiciel temps-réel embarqué Ordinateurs embarqués

3 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 dexploitation temps-réel: Un système temps-réel peut être vu comme lapplication dans son ensemble, incluant les systèmes électromécaniques, électroniques et logiciels constituant lapplication. Ce système permet de définir les performances temps-réel désirées.Un système temps-réel peut être vu comme lapplication dans son ensemble, incluant les systèmes électromécaniques, électroniques et logiciels constituant lapplication. Ce système permet de définir les performances temps-réel désirées. Le système dexploitation temps-réel est une composante du 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 atteignables. Le système dexploitation temps-réel est une composante du 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 atteignables.

4 ELE3100, Projets de génie électrique: informatique embarquée Systèmes temps-réel 4 Quest-ce quune contrainte temps-réel? 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 ensemble de contraintes temporelles à respecter. Exemple: Le pilote automatique dun avion de ligne doit entre autre mesurer létat des capteurs du système (GPS, accéléromètres, gyroscopes, etc.) et effectuer les calculs nécessaires pour commander les actuateurs. Une première contrainte temporelle 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 déchantillonnage des accéléromètres.

5 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 dure: Les expressions anglophones soft real-time et hard real-time sont couramment utilisées Une contrainte temps-réel souple constitue une exigence du système, mais elle peut ne pas être respectée à loccasion sans trop perturber le système (la stabilité nen serait pas affectée). Une contrainte temps-réel souple constitue une exigence du système, mais elle peut ne pas être respectée à loccasion sans trop perturber le système (la stabilité nen serait pas affectée). 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 pourrait être affectée si elle ne lest pas). 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 pourrait être affectée si elle ne lest pas).

6 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 dur: Un système temps-réel souple est strictement constitué de contraintes temps-réel souples. Un système temps-réel souple est strictement constitué de contraintes temps-réel souples. Un système temps-réel dur est strictement constitué de contraintes temps-réel dures. Un système temps-réel dur est strictement constitué de contraintes temps-réel dures. Un système temps-réel peut également être constitué de contraintes temps-réel souples et dures. Un système temps-réel peut également être constitué de contraintes temps-réel souples et dures.

7 ELE3100, Projets de génie électrique: informatique embarquée Systèmes dexploitation temps-réel 7 Définition dun système dexploitation temps-réel: Il peut être défini comme étant un système dexploitation capable de respecter un ensemble dexigences fonctionnelles (comme tout système dexploitation, temps- réel ou non), mais également un ensemble dexigences temporelles. NOTE: contrairement à ce que lon pourrait croire, un système dexploitation temps-réel nest pas nécessairement plus rapide, mais il se doit surtout dêtre prédictible.

8 ELE3100, Projets de génie électrique: informatique embarquée Systèmes dexploitation temps-réel 8 Principaux systèmes dexploitation temps-réel: QNX*, VxWorks*, LynxOS*, Linux (avec RTAI ou RT-Linux), IRIX, Digital UNIX, Windows CE/XP Embedded, et il en existe dautres!QNX*, VxWorks*, LynxOS*, Linux (avec RTAI ou RT-Linux), IRIX, Digital UNIX, Windows CE/XP Embedded, et il en existe dautres! *: ces systèmes dexploitation peuvent être dits temps-réel purs, cest-à-dire quils sont conçus à la base pour des systèmes temps-réel. Les autres sont des variantes de systèmes dexploitation non temps-réel.

9 ELE3100, Projets de génie électrique: informatique embarquée Systèmes dexploitation temps-réel 9 Références sur les systèmes dexploitation temps-réel: Linux, RTAI: Linux, RTLinux: QNX: VxWorks: LynxOS: Windows Embedded:

10 ELE3100, Projets de génie électrique: informatique embarquée Systèmes dexploitation temps-réel 10 Quest-ce que POSIX? POSIX est lacronyme de Portable Operating System Interface et est un groupe de standards défini par lIEEE. Son objectif est de définir une interface et un environnement standardisé, basé sur les spécifications du système UNIX, dans le but doffrir une portabilité à la base du système. Ainsi, tout programme utilisant les standards POSIX devrait normalement sexécuter correctement sous tout système dexploitation supportant ces standards. Cest pourquoi la librairie MICROB utilise ces standards pour les OS qui les supportent.

11 ELE3100, Projets de génie électrique: informatique embarquée Systèmes dexploitation temps-réel 11 Quest-ce que POSIX.4? Le standard POSIX.4, qui est un reproupement des standards POSIX.1, POSIX.1b et POSIX.1c, définit un ensemble de fonctions permettant à un OS doffrir les principales fonctionnalités dun OS temps-réel. Bill O. Gallmeister, POSIX.4: Programming for the Real World, OReilly, 1995.

12 ELE3100, Projets de génie électrique: informatique embarquée Systèmes dexploitation temps-réel 12 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 dordonnancement: sched_yield(), sched_setparam()Mécanismes dordonnancement: 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(), mq_receive()Communication inter-processus: shm_open, mmap(), mq_open(), mq_receive() Gestion des entrées/sorties: open(), read(), write(), close()Gestion des entrées/sorties: open(), read(), write(), close()

13 ELE3100, Projets de génie électrique: informatique embarquée Systèmes dexploitation temps-réel 13 Critères permettant dévaluer un système dexploitation temps-réel selon les différentes caractéristiques (POSIX.4 chapitre 7) : Capacité (nombre maximal dopérations en un temps donné) Capacité (nombre maximal dopérations en un temps donné) Temps de réaction (rapidité du système à réagir aux événements)Temps de réaction (rapidité du système à réagir aux événements) Déterminisme (mesure indiquant la fiabilité de la réaction du système aux événements) Déterminisme (mesure indiquant la fiabilité de la réaction du système aux événements)

14 ELE3100, Projets de génie électrique: informatique embarquée Systèmes dexploitation temps-réel 14 Comparaison des minuteries pour quelques systèmes dexploitation: Windows (Windows 2000): * fonction GetTickCount(): résolution de 10ms minuterie Multimedia (winmm.lib): résolution de 2ms Linux (RedHat 7.x): * fonction gettimeofday(): résolution de 10ms possibilité damélioration et respect du standard POSIX avec RT- Linux ou RTAI possibilité dutiliser les ticks CPU pour plus de précision

15 ELE3100, Projets de génie électrique: informatique embarquée Systèmes dexploitation temps-réel 15 Comparaison des minuteries des systèmes dexploitation utilisés au laboratoire: QNX (Neutrino 6.2): * fonction clock_gettime(): résolution de 10ms par défaut, peut être diminuée jusquà lordre du 0.1ms (par la fonction ClockPeriod()) possibilité dutiliser les ticks CPU pour plus de précision *: méthode employée dans la librairie MICROB

16 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 architectures logicielles de robotique mobile: Boucles temporelles Boucles temporelles Communications inter-processus Communications 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 ordinateur embarqué muni dun système dexploitation temps-réel et dune combinaison de divers langages de programmation (C/C++, assembleur).

17 ELE3100, Projets de génie électrique: informatique embarquée Logiciel temps réel embarqué: principaux éléments 17 Boucles temporelles (POSIX.4 chapitre 3) Plusieurs possibilités dimplantation (un ou plusieurs processus, un ou plusieurs « threads ») Plusieurs possibilités dimplantation (un ou plusieurs processus, un ou plusieurs « threads ») Utilisation dune période prédéterminée (ex.: classe Engine de MICROB) ou boucle contrôlée par dautre paramètres (ex.: classe Thread de MICROB) Utilisation dune période prédéterminée (ex.: classe Engine de MICROB) ou boucle contrôlée par dautre paramètres (ex.: classe Thread de MICROB)

18 ELE3100, Projets de génie électrique: informatique embarquée Logiciel temps réel embarqué: principaux éléments 18 Boucles temporelles: exemple de logiciel « multithread »

19 ELE3100, Projets de génie électrique: informatique embarquée Logiciel temps réel embarqué: principaux éléments 19 Boucles temporelles: exemple de logiciel « singlethread »

20 ELE3100, Projets de génie électrique: informatique embarquée Logiciel temps réel embarqué: principaux éléments 20 Communications inter-processus Partage de données entre processus sur un même ordinateur (POSIX.4 chapitre 4): messages, mémoire partagée (ex.: classe Shmem de MICROB)Partage de données entre processus sur un même ordinateur (POSIX.4 chapitre 4): messages, mémoire partagée (ex.: classe Shmem de MICROB) Communications entre processus distribués: communication socket par protocole UDP ou TCP/IP (plus fréquent) (ex. classes Client et Server de MICROB) Communications entre processus distribués: communication socket par protocole UDP ou TCP/IP (plus fréquent) (ex. classes Client et Server de MICROB)

21 ELE3100, Projets de génie électrique: informatique embarquée Ordinateurs embarqués: principales caractéristiques 21 Caractéristiques recherchées dun 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 sintégrer à la structure mécanique Les caractéristiques recherchées peuvent varier considérablement en fonction de lapplication.

22 ELE3100, Projets de génie électrique: informatique embarquée Ordinateurs embarqués: quelques exemples 22 Format Half-Size SBC: 18 x 12 cm Exemple: VIPer 830 (Kontron),

23 ELE3100, Projets de génie électrique: informatique embarquée Ordinateurs embarqués: quelques exemples 23 Format EBX: 20.3 x 14.8 cm Exemple: MSEBX855 (Digital-Logic),

24 ELE3100, Projets de génie électrique: informatique embarquée Ordinateurs embarqués: quelques exemples 24 Format PC/104: 9.2 x 9.7 cm Exemple: Jaguar (Versalogic),

25 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 sur les ordinateurs embarqués. Pour obtenir les spécifications de ces standards ainsi quune liste de fabricants, consulter: Consortium PC/104:


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

Présentations similaires


Annonces Google