Systèmes Embarqués F. Giamarchi – IUT de Nîmes – Département GEII Module ERII S

Systèmes Embarqués F. Giamarchi – IUT de Nîmes – Département GEII Module ERII S3 Initiation à la robotique Systèmes Embarqués Objectifs du cours Appréhender les spécificités des systèmes embarqués par rapport aux domaines de l’informatique industrielle. Découvrir les techniques de programmation liées aux systèmes embarqués (systèmes multitâches coopératifs, machine d’états). Utiliser les interfaces homme machines simples (IHM, Liaison série, Afficheurs LCD, supervision Labview). Tester des algorithmes de traitements simples. Aborder la notion de déverminage (Stop & Go, IHM). Application à une maquette robotique (Intelligence Artificielle). Généralités 2 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Systèmes Embarqués (S.E.)  Différents secteurs industriels  Télécoms (Smartphone, Internet)  Aéronautique (Avions, Radar, Satellite)  Automobile (GPS, ABS, ESP)  Construction électrique (Systèmes de surveillance, Gestion électrique, contrôle d’accès)  Transport ferroviaire  Cartes à puce ( et RFID)  Explosion des besoins : doublement du nombre d'objets intelligents et de la complexité embarquée tous les 2/3 ans  Chaque industrie est confrontée à des contraintes spécifiques  Mais les enjeux sont similaires  Maîtrise des coûts  Maîtrise de la complexité  Pérennité des solutions développées Généralités 3 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Secteurs d’activités en France Généralités 4 1ères Assises Françaises du Logiciel Embarqué, 7 mars 2007 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Les besoins pour l’avenir L’embarqué a de l’avenir en France (Europe) Niveau ingénieur (ou Technicien spécialisé) mais avec une formation technologique pour la conception. Mais l’embarqué c’est aussi le test, la validation, la maintenance… Des entreprises ont du mal à recruter des techniciens dans l’embarqué. L’industrie a un énorme besoin en techniciens et ingénieurs pour les 20 prochaines années (besoin de renouvellement de leur personnel face aux nouvelles technologies) Une attente forte sur la recherche liée à la plus value apportée par la conception d’un système embarqué indissociable de son logiciel. Généralités 5 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Introduction aux systèmes embarqués Définition : « Embedded system» : tout système conçu pour résoudre un problème ou une tâche spécifique, mais n’est pas un ordinateur d’usage général. Utilisent généralement un microcontrôleur, combiné avec d’autres matériel et logiciel pour résoudre un problème de calcul spécifique. C’est un système électronique et informatique autonome ne possédant pas d’entrées-sorties standards. Le système matériel et l’application sont intimement liés et noyés dans le matériel et ne peuvent être discernables comme dans un PC. On dit que le système est enfoui (traduction de «embedded») dans une autre fonction. La conception de ces systèmes est fiable ( avion, système de freinage ABS) car ils sont conçus pour des applications uniques et qu’il n’est plus possible d’intervenir sur le logiciel ensuite. Généralités 6 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Introduction aux systèmes embarqués « Embarquement » d’un ordinateur Généralités 7 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Introduction aux systèmes embarqués Système embarqué typique Généralités 8 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Introduction aux systèmes embarqués Caractéristiques d’un système embarqué Fonctionnement en temps réel Réactivité : les opérations de calcul doivent être exécutées en réponse à un évènement extérieur (interruption matérielle). La plupart des systèmes sont « multirate », c’est-à-dire traitement des informations à différents rythmes. Faible encombrement, poids réduit, consommation minimisée (batterie) Environnement sévère (température, vibrations, variations d’alimentation, interférences HF, corrosion, eau, feu, radiations,…). Le système n’évolue pas dans un environnement contrôlé ( évolutions des caractéristiques des composants dans le temps). Sureté de fonctionnement (système opérationnel même lorsqu’un composant est défaillant). Beaucoup de systèmes embarqués sont fabriqués en grande série et doivent avoir des prix de revient faibles. Généralités 9 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Techniques de programmation Ne pas utiliser les fonctions de temporisations Utiliser des fonctions avec paramètres Découper une fonction longue en un diagramme d’états Programmation synchrone Généralités 10 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Ne pas utiliser les fonctions de temporisations Remplacer les fonctions de temporisations. Pourquoi ? Une temporisation ne fait rien d’autres qu’attendre ! Il n’est donc pas possible de faire deux actions indépendamment l’une de l’autre. Exemple : La temporisation de lumière d’un escalier Code : if (Bouton_Poussoir == 0) // Appui sur le bouton poussoir, fonctionne en logique inversée Del = 1; // La del s’éclaire Delay_ms (15000); // Temporisation de 15s Del = 0; // La del s’éteint Si on appuie sur un bouton, la lumière s’éclaire pendant 15s, puis s’éteint. Pendant ce temps, un autre appui n’a aucun effet. Il n’est donc pas possible d’allonger cette temporisation par un nouvel appui. Le système n’est pas redéclenchable. Généralités 11 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Remplacer les fonctions de temporisations Ne pas utiliser les fonctions de temporisations. Comment faire autrement ? En comparant une variable temps avec une constante choisie. Une routine d’interruption Timer incrémente une variable temps. A la place de la fonction de temporisation, on mémorise la variable temps dans une nouvelle variable « tempo ». Puis on compare la variable temps avec notre nouvelle variable tempo à laquelle on ajoute la durée de la temporisation voulue. Généralités 12 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Remplacer les fonctions de temporisations Ne pas utiliser les fonctions de temporisations. Code : // Var_1ms sera incrémentée dans la routine d’interruption toutes les millisecondes. long Tempo; // déclaration d’une variable de type 16 bits, afin de compter jusqu’à 65535 while (1) // Boucle infinie du programme { if (Bouton_Poussoir == 1) // Appui sur le bouton poussoir { Led = 1; // la Led s’éclaire Tempo = Var_1ms + 15000; // Enregistre la valeur actuelle de la variable temps dans la } // variable Tempo + la durée de la temporisation souhaitée if (Var_1ms == Tempo) // Test si la variable temps a atteint la tempo prévue Led = 0; // la Led s’éteint } Généralités 13 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Utilisation de fonctions avec paramètres Utiliser des fonctions avec paramètres. Une fonction permet de structurer une routine. Déclaration d’une fonction Code d’une fonction simple : void Fonction_A (void) { // Code de la fonction } Code d’une fonction qui attend deux paramètres de type entier: void Fonction_A (int parametre_A, int parametre_B) { // Code de la fonction } Code d’une fonction qui retourne un paramètre de typer entier: int Fonction_A (void) { Int Parametre; // Code de la fonction return (Parametre); } Généralités 14 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Diagramme d’états Ne pas écrire des routines trop longues. Pourquoi ? Une routine trop longue ne laisse pas de temps aux autres routines ! Il n’est donc pas possible de faire deux actions indépendamment l’une de l’autre (comme pour les fonctions de temporisations). Comment faire autrement ? En découpant la routine (tâche), en 2 ou plus d’états ou sous-tâches. Diagramme d’états (procédure à états positionnées, machine à variables d’états), sont utilisées lorsqu’une équation ou une alternative binaire ne peuvent pas être appliquée. Principe d’un Grafcet avec étapes et transitions. Généralités 15 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Diagramme d’états  Exemple : x clignotements répétés (application des codes Erreur). Variables : Flag, Compteur Etat Led et Compteur Clignotement. La durée de l’état allumé est un multiple de la synchro, de même pour l’état éteint Activation d’un Flag associé Etat 0 : Test le flag d’activation Si = 0  On continue Si = 1  Led On, Remplit les 2 compteurs, Etat = 1 Etat 1 : Test le compteur Etat Led Si ≠ 0  Décrémente compt Etat Led, On continue Si = 0  Led Off, Remplit ce compteur, Etat = 2 Etat 2 : Test le compteur Etat Led Si ≠ 0  Décrémente compt Etat Led, On continue Si = 0  Décrémente compteur Clignotement  Si = 0  Etat = 0  Si ≠ 0  Led On, Remplit le 1er compteur, Etat = 1 Généralités 16 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Diagramme d’états  Exemple : Action sur choc détecté à l’avant d’un robot. Code : enum Etat {Attente, Recule, Tourne} Etat_Choc; void Choc (void) { switch (Etat_Choc) { case Attente: // Code pour l’état Attente { if (Choc != 0) { Etat_Choc = Recule; Mémoire = Choc; Tempo = Var_1ms + 500; } break; } case Recule: // Code pour l’état Recule { Cmd_Moteurs (-10,-10); if (Var_1ms == Tempo) Etat_Choc = Tourne; break; } case Tourne: // Code pour l’état Tourne { break; } } } Généralités 17 F. Giamarchi - IUT de Nîmes Systèmes Embarqués La programmation synchrone Système multitâche coopératif Utilisation d’une routine d’interruption pour synchroniser les tâches. Timer réglé sur 1ms Généralités 18 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Programmation performante Systèmes temps réel  multi-tâches Intelligence Artificielle  robuste Multiprocesseurs  réduction de la taille du programme Basse fréquence  autonomie Généralités 19 F. Giamarchi - IUT de Nîmes Systèmes Embarqués Lecture des entrées - sorties Nature des entrées Logique Analogique Par liaison type série Capteur virtuel par fusion d’entrées Deux uploads/Industriel/ cours-systemes-embarques.pdf

  • 97
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager