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

Présentations similaires


Présentation au sujet: "École Polytechnique de Montréal Département de génie électrique"— 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 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 2

3 ELE3100, Projets de génie électrique: informatique embarquée
Systèmes temps-réel Distinction entre un système temps-réel et un système d’exploitation temps-réel: Un système temps-réel peut être vu comme l’application dans son ensemble, incluant les systèmes électromécaniques, électroniques et logiciels constituant l’application. Ce système permet de définir les performances temps-réel désirées. 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 contrôler ce dernier. Il définit les performances temps-réel atteignables. 3

4 ELE3100, Projets de génie électrique: informatique embarquée
Systèmes temps-réel Qu’est-ce qu’une 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 d’un 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. 4

5 ELE3100, Projets de génie électrique: informatique embarquée
Systèmes temps-réel 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 à l’occasion sans trop perturber le système (la stabilité n’en 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 l’est pas). 5

6 ELE3100, Projets de génie électrique: informatique embarquée
Systèmes temps-réel 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 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. 6

7 ELE3100, Projets de génie électrique: informatique embarquée
Systèmes 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 capable de respecter un ensemble d’exigences fonctionnelles (comme tout système d’exploitation, temps- réel ou non), mais également un ensemble d’exigences temporelles. NOTE: contrairement à ce que l’on pourrait croire, un système d’exploitation temps-réel n’est pas nécessairement plus rapide, mais il se doit surtout d’être prédictible. 7

8 ELE3100, Projets de génie électrique: informatique embarquée
Systèmes d’exploitation temps-réel Principaux systèmes d’exploitation temps-réel: QNX*, VxWorks*, LynxOS*, Linux (avec RTAI ou RT-Linux), IRIX, Digital UNIX, Windows CE/XP Embedded, et il en existe d’autres! *: 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 temps-réel. Les autres sont des variantes de systèmes d’exploitation non temps-réel. 8

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

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

11 ELE3100, Projets de génie électrique: informatique embarquée
Systèmes d’exploitation temps-réel Qu’est-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 d’offrir les principales fonctionnalités d’un OS temps-réel. Bill O. Gallmeister, POSIX.4: Programming for the Real World, O’Reilly, 1995. 11

12 ELE3100, Projets de génie électrique: informatique embarquée
Systèmes d’exploitation temps-réel Quelques fonctions POSIX couramment utilisées: Horloges et minuteries : clock_gettime(), clock_getres(), timer_settime() Réponse aux interruptions: kill(), sigaction(), sigfillset() Mécanismes d’ordonnancement: sched_yield(), sched_setparam() Gestion de la mémoire: malloc(), mmap(), free() Gestion des tâches et processus: fork(), exec(), wait(), Pthreads Communication inter-processus: shm_open, mmap(), mq_open(), mq_receive() Gestion des entrées/sorties: open(), read(), write(), close() 12

13 ELE3100, Projets de génie électrique: informatique embarquée
Systèmes d’exploitation temps-réel Critères permettant d’évaluer un système d’exploitation temps-réel selon les différentes caractéristiques (POSIX.4 chapitre 7) : Capacité (nombre maximal d’opérations en un temps donné) 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) 13

14 ELE3100, Projets de génie électrique: informatique embarquée
Systèmes d’exploitation temps-réel Comparaison des minuteries pour quelques systèmes d’exploitation: 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é d’amélioration et respect du standard POSIX avec RT-Linux ou RTAI possibilité d’utiliser les ticks CPU pour plus de précision 14

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

16 ELE3100, Projets de génie électrique: informatique embarquée
Logiciel temps réel embarqué: principaux éléments Éléments logiciels fréquemment utilisés dans diverses architectures logicielles de robotique mobile: Boucles temporelles Communications inter-processus Interfaces avec périphériques (pilotes) Généralement, ces éléments seront implantés sur un ordinateur embarqué muni d’un système d’exploitation temps-réel et d’une combinaison de divers langages de programmation (C/C++, assembleur). 16

17 ELE3100, Projets de génie électrique: informatique embarquée
Logiciel temps réel embarqué: principaux éléments Boucles temporelles (POSIX.4 chapitre 3) Plusieurs possibilités d’implantation (un ou plusieurs processus, un ou plusieurs « threads ») 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 Thread de MICROB) 17

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

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

20 ELE3100, Projets de génie électrique: informatique embarquée
Logiciel temps réel embarqué: principaux éléments 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) Communications entre processus distribués: communication socket par protocole UDP ou TCP/IP (plus fréquent) (ex. classes Client et Server de MICROB) 20

21 ELE3100, Projets de génie électrique: informatique embarquée
Ordinateurs embarqués: principales caractéristiques 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 considérablement en fonction de l’application. 21

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

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

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

25 ELE3100, Projets de génie électrique: informatique embarquée
Ordinateurs embarqués: quelques exemples 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 qu’une liste de fabricants, consulter: Consortium PC/104: 25


Télécharger ppt "École Polytechnique de Montréal Département de génie électrique"

Présentations similaires


Annonces Google