SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
E302C Gestion des périphériques
Séance 4
Introduction aux
systèmes embarqués
Sébastien Combéfis 21 mars 2017
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons
Attribution – Pas d’Utilisation Commerciale – Pas de Modification 4.0 International.
Objectifs
Définir et comprendre la notion de système embarqué
Définition et composants d’un système embarqué
Types, caractéristiques et contraintes
Système connecté et objets intelligents
Passer en revue les aspects hardware et software
Type de processeurs, unités hardware, interruption et énergie
Programmation, chaine de compilation, système d’exploitation
Vue de l’ingénieur et du client
Exigences, aspects multi-disciplinaires et case study
3
Technologie d’information du futur
Disappearing
computer
Ubiquitous
computing
Pervasive
computing
Ambient
intelligence
Ordinateurs partout
Information partout,
tout le temps
Exploitation techno-
logie existante
Maisons du futur,
smart cities
4
Système embarqué
Système embarqué
Présence grandissante d’appareils intelligents et connectés
Constitué d’un « ordinateur de bord », le système embarqué
Système embarqué est électronique et informatique
Il est embarqué au sein d’un produit plus large
6
Traitement d’information (1)
Système embarqué est un intermédiaire
Réception d’information provenant de son environnement
Traitement de cette information
Action à travers le produit hôte qui l’héberge
configuration données
senseurs
régulation
7
Traitement d’information (2)
Système embarqué se trouve au sein d’un système plus large
Input en interrogant le système via des senseurs
Output en agissant sur le système via des actuateurs
Possibilité d’interaction directe avec l’utilisateur
Processus externes
Système
embarqué
Utilisateuractuateurs
senseurs
8
Vue orientée-produit
Système embarqué implémente un processus
Collecte d’inputs pour produire des outputs
Inputs produits par des senseurs ou capteurs
Température, gyroscope, configuration, communication réseau...
Outputs produits par des actuateurs ou actionneurs
Moteur, vérin, baffle, LEDs, écran, communication réseau...
9
Définition de l’IEE
Définition de l’Institution of Electrical Engineers (IEE)
“the devices used to control, monitor or assist the operation of
equipment, machinery or plant. ‘Embedded’ reflects the fact that
they are an integral part of the system. In many cases their em-
beddedness may be such that their presence is far from obvious
to the casual observer [...]”
Système embarqué souvent associé à une machine
Fait partie d’un système plus large, et est souvent caché
10
Traditionnel versus embarqué
Un système embarqué n’a pas de raison d’être seul
Composant d’un système plus large, parfois invisible
Situation dans les années 2000
Informatique focus sur 150 · 106
d’ordinateurs « traditionnels »
Processeurs se trouvent dans 8 · 109
de systèmes embarqués
Système embarqué exécute une tâche spécifique
Moins de ressources et moins performants
Software spécifique
Fonctionnement en autonomie, pas de clavier, affichage réduit
11
Exemple (1)
Système embarqué seul ou à plusieurs
Isolé et cloisonné dans l’hôte/collaborant avec d’autres systèmes
Simple gestion des états de fonctionnement d’une machine
Machine à laver, four à micro-onde, toaster...
Traitement de signaux audio et vidéo
Appareil photo et caméra numérique, console de jeu...
Système de communication et d’information
Smartphone, modem-routeur, fax, antenne-relais, satellite...
12
Exemple (2)
Plus que 40% de la valeur d’une voiture moderne
Multiples systèmes embarqués qui peuplent la voiture
ABS
Boite de vitesse Moteur
Climatisation
Système de divertissement
13
Type d’application visé
Usage général avec applications similaires aux « traditionnels »
Embarqué dans package de petites tailles comme PDA, ATM...
Boucle rétroactive fermée de contrôle de système temps-réel
Moteur de voiture, centrale nucléaire, contrôle aérien...
Calcul sur gros flux de données comme traitement de signal
Traitement audio et vidéo, radar, sonar...
Communication et réseaux pour transmission de données
Utilisés en téléphonie et sur internet
14
Type de fonction (1)
Assurer qu’une loi de contrôle est respectée
Contrôleur PID pour assurer stabilité vol stationnaire
Représentation d’une logique séquentielle
Alternation entre modes comme machine à laver
Calculs et opérations en traitement de signaux
Compression/décompression de contenu multimédia, filtrer son...
15
Type de fonction (2)
Rôle d’interface pour des applications spécifiques
Gérer des alarmes sonores, contrôleur disque SSD...
Réaction à des fautes ou gestion d’exceptions
Détection, diagnostic et correction de la faute
16
Taille et complexité
Système de petite échelle avec un microcontrôleur 8–16 bits
Niveau d’une carte, limitation ressources pour puissance
Moyenne échelle avec microcontrôleurs 16–32 bits, DSP, RISC
Hardware de type ASSPs et IPs et software avec des RTOS
Système sophistiqué avec processeurs configurables et PLA
Co-design et intégration software/hardware très important
17
Fiabilité
Un système embarqué doit avoir une grande fiabilité
Car il doit très souvent pouvoir fonctionner en autonomie
Plusieurs caractéristiques mesurables de fiabilité
Robustesse, proba de fonctionnement en t, si ok en t0
Maintenabilité, proba de fonctionnement d après une erreur
Disponibilité, proba de fonctionner en t
Sûreté, il ne cause pas de nuisances
Sécurité, communications confidentielles et authentifiées
Aspects à prendre en compte au moment de la conception
Et compromis à prendre car impossible de tous les maximiser
18
Efficacité
Un système embarqué doit être efficace pour sa fonction
Plus qu’un ordinateur « traditionnel », justifier son développement
Cinq aspects mesurables d’efficacité
Consommation énergétique en Watts
Taille du code en octets, lignes de code
Exécution du programme en MIPS, R/W par seconde
Poids et taille en kg et cm
Cout de fabrication et conception en $, €, ¥...
19
Contrainte
Système spécifique dédié à une tâche déterminée
Connaissances sur les conditions et à l’environnement d’utilisation
Contraintes de temps-réel sur le temps de réaction
Strict, réaction garantie endéans temps de réponse fixé
Souple, réaction au mieux endéans temps de réponse fixé
“A real-time constraint is called hard, if not meeting that
constraint could result in a catastrophe.”
Alimentation du système embarqué en énergie
Batterie évolue moins vite que besoins en puissance de calcul
20
Système connecté
Intelligence ambiente, troisième ère de l’informatique
Large gamme de petits appareils « intelligents »
Système embarqué doté de moyens de communication
Récupération/échange d’informations, réseaux de senseurs
Apparition d’applications distribuées pour données et calculs
Domotique et maison intelligente, smart cities, e-health...
21
Aspect hardware
Boucle hardware
Hardware d’un système embarqué en “Hardware in a loop”
Méthode de test par envoi de stimuli et mesure de la réponse
Système embarqué
Senseur
Conversion
A/D CPU
Conversion
D/A Actuateur
FPGA/
ASIC
Mémoire
Environnement
environnement → senseur → système embarqué → actuateur → environnement → ...
23
Intel 4004
Premier microprocesseur sur une seule puce est l’Intel 4004
Créé en 1971 suite à une demande de la firme japonaise Busicom
Microprocesseur à usage général programmé pour les produits
Sur 4 bits, fréquence CPU de 740 kHz max, 2300 transistors
24
Unité de calcul (1)
Processeurs exécutent une séquence d’instructions
General Purpose Processor (GPP)
Jeu d’instructions large et varié
Application-Specific Instruction set Processor (ASIP)
Jeu d’instructions conçu pour un ensemble d’opérations
Circuits spécifiques implémentent une fonction en hardware
Reprogrammable hardware
Fonction modifiable après fabrication, comme FPGA
Application-Specific Integrated Circuit (ASIC)
Circuit intégré réalisant les fonctions d’une application
25
Unité de calcul (2)
Comparaison de la flexibilité par rapport aux performances
Générique et flexible moins performant et efficace en énergie
Grand cout de conception et développement des ASIC
Pas de chaine de production à grande échelle, un ASIC par besoin
GPP Microprocesseur
ASIP Microcontrôleur, DSP
Hardware reprogrammable FPGA
ASIC
Performance
et efficacité
énergétique
Flexibilité
26
ASSP et FPGA
Application Specific Standard Product (ASSP)
Version plus générale des ASICs, contenant une seule fonction
Vise un large marché et peut être produit en masse
À l’opposé des ASICs qui combinent plusieurs fonctions
Prototypage d’une ASIC réalisé à l’aide de FPGA
À l’instar de la breadboard qui prototype un PCB
27
Architecture matérielle (1)
Architecture matérielle décrit structure système embarqué
Plusieurs représentations avec degrés d’abstraction différents
Description possible par un diagramme blocs
Blocs pour composants, unités, sous-systèmes...
Liens représentent échange d’information, commande...
28
Architecture matérielle (2)
Exemple d’un ventilateur contrôlé par la température
Système embarqué construit avec microcontrôleur ARM7TDMI
Microcontrôleur
ARM7TDMI
LPC2378
Senseur
LM35
ADC
Driver
L293D
Moteur
DC
Écran
LCD
29
Architecture type
Architecture type d’un système embarqué avec processeur
Horloge, mémoire, dispositif général/spécifique/communication
Deux ouvertures vers le monde extérieur
Port debug et bus de périphériques
Processeur
Port debug
Horloges
Mémoire
non-volatile
Mémoire
volatile
Dispositifs
communication
Dispositifs
généraux
Dispositifs
spécifiques
Mondeextérieur
Bus périphérique
Bus système
30
Alimentation (1)
Alimentation en énergie d’un système embarqué importante
Adaptateur secteur AC/DC, batterie, hôte, charge pump
Plusieurs plages possibles selon les besoins des composants
5 V ± 0.25 V , 3.3 V ± 0.3 V , 2.0 V ± 0.2 V , 1.5 V ± 0.2 V
Construits à partir de LVCMOS et LVTTL
Tension inversement proportionnelle délais de propagation
Passer de 5 V à 3.3 V divise dissipation puissance par deux
Passer à 3.3 V génèrent moins de chaleur, plus petits packs
31
Alimentation (2)
Caractéristiques d’un bon sous-système d’alimentation
Tension stable et lisse, et constante pour ADC par exemple
Courant en suffisance pour système embarqué et composants
Efficace et stable selon conditions (température, circulation air)
Offrir un découplage entre différents composants
Horloge et circuit de reset sans interférence radioélectrique
Ports d’entrée/sortie dissipent beaucoup de puissance
Timers dissipent une puissance constante
32
Horloge
Horloge cadence fonctionnement du processeur
Rythme le cycle fetch-decode-execute
Trois principales technologies utilisées pour des oscillateurs
Crystal externe plus stable (doit être proche du processeur)
Résonateur céramique interne (dérive 10min/mois versus 1–5)
Oscillateur externe en circuit intégré (plus contrôlable)
Présence de circuit de timer Real-Time Clock (RTC)
Ordonnanceur de tâche, système temps réel
33
Mémoire
Plusieurs mémoires permettant de stocker de l’information
Permanente ou volatile, interne ou externe
Trois principaux types de mémoires utilisés
Read-Only Memory (ROM)
Permanente en lecture seule, programme exécuté
Random-Access Memory (RAM)
Volatile, travail en cours, variable, tampon
Electrically Erasable Programmable ROM (EEPROM)
Permanente modifiable, copie instructions, calcul rapide
34
Entrée/sortie
Communication avec dispositifs externes identifiés par port
Port d’entrée : senseur, bouton, circuit transducteur...
Port de sortie : LED, écran LCD...
Port est un dispositif physique pour transiter des données
Recevoir données de périphérique, processeur, contrôleur
Envoyer données vers l’extérieur
Connecté vers le processeur grâce à un bus
35
Port GPIO
Port General Purpose Input/Output (GPIO)
Connexion directe du processeur avec le monde extérieur
Deux valeurs de tension pour chaque pin GPIO (valeur binaire)
Utilisé comme entrée (bouton) ou comme sortie (LED)
Fonctionnement du port GPIO grâce à des registres
Port GPIO
Registre direction
de port (PDR)
Registre données
d’entrée du port (PIDR)
Registre données de
sortie du port (PODR)
Ports
E/S
Bussystème
36
Communication
Transmission des informations en série ou parallèle
Parallèle historiquement plus rapide car plusieurs bits à la fois
Série plus léger niveau hardware (câble, émetteur/récepteur)
Parallèle sur distances courtes, série longue distance
Rythme de la communication et messages échangés
Synchrone suit une horloge, à partager entre les bouts
Asynchrone transmet des balises, surcharge de communication
Choix à faire selon régularité des messages
Plusieurs types de bus : RS-232, I2C, SPI, CAN, USB, PCI...
37
Support analogique
Système hybride, discret/numérique et continu/analogique
Lire une entrée analogique comme un son d’un micro
Produire une sortie analogique pour contrôler un moteur
Génération d’un signal analogique avec DAC (PWM)
Construction d’un signal continu à partir d’états discrets
Acquisition d’un signal analogique avec ADC
Discrétisation d’un signal continu en séquence binaire
38
Choix technologique
Démarrage avec technologie générique moins couteux
Implémentation des fonctions désirées en software
Performances moins bonnes et nécessité d’optimisation
Remplacement processeur-software par un ASIC
Implémentation des fonctions au niveau hardware
Solution plus chère et avec un grand temps de développement
39
Flexibilité versus puissance/énergie
Augmentation de la flexibilité coute en performance/énergie
Fonction software coute 10 fois plus que équivalent hardware
flexibilité
puissance
/énergie
ASIC
FPGA
ASIP (+SW)
GPP (+SW)
40
Taille versus opérations/Watt
Plus d’opérations par Watt en diminuant les tailles des CI
Hardware câblé pur offre un gain d’un ordre de grandeur supérieur
µm
MOps/mW
0.01
0.1
1
10
100
1.0 0.5 0.25 0.13 0.07
processeurs
hardware reprogrammable
ASIC
microprocesseur
DSP/ASIP
41
Aspect software
Software
Software partie importante système embarqué, son « brain »
Tout du moins pour ceux qui sont basés sur un processeur
Software développé pour un système embarqué pas portable
Car le lien avec le hardware peut être très fort
Développement différent de celui d’un software « classique »
Pas facile de directement coder sur le système embarqué
43
Système réactif
Comportement exécuté en réaction à des évènements
L’environnement produit des évènements sur le système embarqué
Interaction continue à un rythme imposé par l’environnement
“A reactive system is one that is in continual interaction with its en-
vironment and executes at a pace determined by that environment.”
Deux types d’évènements possibles sur le système embarqué
Périodique (boucle de contrôle) et non périodique (bouton)
44
Temps réel
Système temps réel doit réagir endéans une deadline
Pas une question de vitesse d’exécution, mais respect de deadline
Deux niveaux de contraintes selon conséquence de non respect
Temps réel souple, pas grave si une deadline est manquée
Temps réel strict, conséquences très graves
aucune souple forte
contraintes
temps réel
simulation
PC
interface
utilisateur
video
internet
cruise
control
télécom contrôle
aérien
moteur
électronique
45
Polling et interruption
Software doit être avertit de la disponibilité de données
Par des bus, périphériques, etc.
Deux mécanismes principaux pour avertir le CPU
Polling, CPU va vérifier régulièrement dans un registre d’état
Mécanisme d’interruption du CPU par le périphérique
Choix très critique dans le cas de systèmes temps réel
On ne peut pas toujours se permettre d’attendre un périphérique
46
Programmation
Software se présente sous la forme de code machine
Image ROM du software d’un système embarqué
Utilisation des opérations du jeu d’instructions du processeur
Placement en mémoire en fonction de ses caractéristiques
Langage de haut niveau Langage d’assemblage
CPU
Langage machine
exécution directe
compilation traduction
47
Niveau de programmation
Directement en code machine
Beaucoup de temps pour comprendre jeu d’instructions et coder
Langage d’assemblage traduit en code machine
Raccourci textuels pour l’être humain, et routines
Langage de haut niveau compilé en code machine
Abstraction plus proche de la façon de penser du programmeur
48
Développement (1)
Développeur
Compilateur
Debugger
Émulateur
Simulateur
Debugger
Système embarqué
code source
code machine
Système hôte Système cible
49
Développement (2)
Pas toujours possible de développement sur système embarqué
Utilisation d’un système hôte pour programmer une cible
Deux options avec un code source compilé en code machine
Envoi vers le système cible pour exécution directe
Exécution sur le système hôte avec émulateur ou simulateur
Possibilité de debugger directement depuis le système cible
Avec les standards JTAG, par exemple
50
Développement (3)
Spécification
Séparation matériel/logi-
ciel et choix des composants
Développement hardware Développement software
Intégration
Validation et test
Maintenance et mise à jour
51
Développement (4)
Pas une unique procédure de développement
Mais coordination entre les aspects hardware et software
Spécification puis séparation matériel/software
Plusieurs itérations et point de non retour
Développement parallèle software/hardware, mise en commun
Intégration, validation et tests, maintenance et mise à jour
52
Vue ingénieur et client
Disparition de l’ordinateur
L’ordinateur « traditionnels » disparait lentement
Relativement à l’explosion des systèmes embarqués
Trois grandes tendances d’informatique omniprésente
Ubiquitous computing
But à long terme d’“information anytime, everywhere”
Pervasive computing
Exploitation de technologies déjà existantes
Ambient intelligence
Communication pour maison future et smart cities
54
Hardware versus software
Hardware stabilisé, usinage grande échelle et cout récurrent
Cout software non récurrent, conception pour chaque application
t
€/année
Cout hardware
Cout software
55
Compétence
Compétences transversales, dépassent frontières des disciplines
Importance de comprendre le domaine d’application
domaine
d’application
hardware
électronique
d’interface
software algorithme
56
Compromis (1)
Choix et compromis entre les différentes disciplines
Comprendre les contraintes des différents domaines
Plusieurs activités menées par l’ingénieur
Concevoir algorithmes de contrôle, traitement de signal...
Concevoir microprocesseurs pour des applications embarquées
Concevoir logiciels (e.g. RTOS) pour systèmes embarqués
Faire partie d’équipes des domaines d’application
Développer senseurs/actuateurs (e.g. MEMS)
57
Compromis (2)
Optimisation de plusieurs critères outre la vitesse d’exécution
Processeur, mais tout ce qui gravite autour
Trois catégories d’éléments à prendre en compte
Multi-objectifs, fiabilité, abordabilité, sécurité, sûreté,
évolutivité et mise à l’échelle, ponctualité
Multi-discipline, hardware et software, algorithme de contrôle,
interface électronique, domaine d’application
Cycle de vie, exigences, conception, usinage, déploiement,
logistique et retraite
58
Client
Diminution des couts pour le client, plus petits et moins cher
Appareil spécialisé pour ce qu’il désire
Nouvelles fonctionnalités part intégration dans d’autres objets
Fonctions pas possibles avec appareils plus « traditionnels »
Améliorer les performances du système
Consommation plus contrôlée, meilleure batterie, etc.
59
Livres de référence
ISBN
978-1-402-07690-9
ISBN
978-0-070-14589-4
ISBN
978-0-596-00983-0
60
Crédits
Photos des livres depuis Amazon
https://www.flickr.com/photos/splorp/8165771383
https://www.flickr.com/photos/tamaki/7568407
https://www.flickr.com/photos/code_martial/2445612018
https://www.flickr.com/photos/sozialhelden/9397521833
https://www.flickr.com/photos/nicknormal/30419435085
https://www.flickr.com/photos/gcollazo/65244956
https://www.flickr.com/photos/davegray/6373321029
https://www.flickr.com/photos/npobre/4484863605
https://en.wikipedia.org/wiki/File:Intel_D4004.jpg
https://en.wikipedia.org/wiki/File:Unicom_141P_Calculator_3.jpg
https://www.flickr.com/photos/bradmontgomery/8007012137
https://openclipart.org/detail/100267/cpu-central-processing-unit
https://www.flickr.com/photos/128474566@N03/15504868300
61

Contenu connexe

Tendances

Introduction à l'IOT (Internet des objets) - Thomas DARIEL (PramaTALK)
Introduction à l'IOT (Internet des objets) - Thomas DARIEL (PramaTALK)Introduction à l'IOT (Internet des objets) - Thomas DARIEL (PramaTALK)
Introduction à l'IOT (Internet des objets) - Thomas DARIEL (PramaTALK)Pramana
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartisHeithem Abbes
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseurPeronnin Eric
 
Automates programmables industriels
Automates programmables industrielsAutomates programmables industriels
Automates programmables industrielsHafsaELMessaoudi
 
Architecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurArchitecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurAbdoulaye Dieng
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsSana Aroussi
 
Programmation de systèmes embarqués : Internet of Things : système connecté e...
Programmation de systèmes embarqués : Internet of Things : système connecté e...Programmation de systèmes embarqués : Internet of Things : système connecté e...
Programmation de systèmes embarqués : Internet of Things : système connecté e...ECAM Brussels Engineering School
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursSana Aroussi
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseurISIG
 
Chapitre 1 Représentation d'état des systèmes linéaires
Chapitre 1 Représentation d'état des systèmes linéaires Chapitre 1 Représentation d'état des systèmes linéaires
Chapitre 1 Représentation d'état des systèmes linéaires sarah Benmerzouk
 
Chapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurChapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurSana Aroussi
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industrielAdnane Ahmidani
 
Arm système embarqué
Arm système embarquéArm système embarqué
Arm système embarquéHoussem Rouini
 

Tendances (20)

Introduction à l'IOT (Internet des objets) - Thomas DARIEL (PramaTALK)
Introduction à l'IOT (Internet des objets) - Thomas DARIEL (PramaTALK)Introduction à l'IOT (Internet des objets) - Thomas DARIEL (PramaTALK)
Introduction à l'IOT (Internet des objets) - Thomas DARIEL (PramaTALK)
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseur
 
Formation stm32
Formation stm32Formation stm32
Formation stm32
 
Automates programmables industriels
Automates programmables industrielsAutomates programmables industriels
Automates programmables industriels
 
Architecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurArchitecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseur
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récents
 
Programmation de systèmes embarqués : Internet of Things : système connecté e...
Programmation de systèmes embarqués : Internet of Things : système connecté e...Programmation de systèmes embarqués : Internet of Things : système connecté e...
Programmation de systèmes embarqués : Internet of Things : système connecté e...
 
Présentation des IoT
Présentation des IoTPrésentation des IoT
Présentation des IoT
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeurs
 
Presentation automatisme
Presentation automatismePresentation automatisme
Presentation automatisme
 
System embaraqué
System  embaraquéSystem  embaraqué
System embaraqué
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
Cours pics16 f877
Cours pics16 f877Cours pics16 f877
Cours pics16 f877
 
Chapitre 1 Représentation d'état des systèmes linéaires
Chapitre 1 Représentation d'état des systèmes linéaires Chapitre 1 Représentation d'état des systèmes linéaires
Chapitre 1 Représentation d'état des systèmes linéaires
 
Chapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurChapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateur
 
Internet des Objets
Internet des ObjetsInternet des Objets
Internet des Objets
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industriel
 
Arm système embarqué
Arm système embarquéArm système embarqué
Arm système embarqué
 
Rapport de stage du fin d'étude
Rapport de stage du fin d'étudeRapport de stage du fin d'étude
Rapport de stage du fin d'étude
 

En vedette

Introduction à LaTeX : le système de composition professionnel
Introduction à LaTeX : le système de composition professionnelIntroduction à LaTeX : le système de composition professionnel
Introduction à LaTeX : le système de composition professionnelECAM Brussels Engineering School
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationECAM Brussels Engineering School
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesECAM Brussels Engineering School
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionECAM Brussels Engineering School
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséECAM Brussels Engineering School
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...ECAM Brussels Engineering School
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresECAM Brussels Engineering School
 
De la Terre aux Étoiles : Mesure des distances Terre-Étoile
De la Terre aux Étoiles : Mesure des distances Terre-ÉtoileDe la Terre aux Étoiles : Mesure des distances Terre-Étoile
De la Terre aux Étoiles : Mesure des distances Terre-ÉtoileECAM Brussels Engineering School
 
Réseaux des neurones
Réseaux des neuronesRéseaux des neurones
Réseaux des neuronesMed Zaibi
 
Laboratoire de transmission numérique : Présentation du projet
Laboratoire de transmission numérique : Présentation du projetLaboratoire de transmission numérique : Présentation du projet
Laboratoire de transmission numérique : Présentation du projetECAM Brussels Engineering School
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielleECAM Brussels Engineering School
 
Développement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreDéveloppement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreECAM Brussels Engineering School
 

En vedette (20)

Type abstrait de données
Type abstrait de donnéesType abstrait de données
Type abstrait de données
 
Introduction à LaTeX : le système de composition professionnel
Introduction à LaTeX : le système de composition professionnelIntroduction à LaTeX : le système de composition professionnel
Introduction à LaTeX : le système de composition professionnel
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulation
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de données
 
Python avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiersPython avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiers
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exception
 
Développement informatique : Programmation graphique
Développement informatique : Programmation graphiqueDéveloppement informatique : Programmation graphique
Développement informatique : Programmation graphique
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
 
Tests unitaires : Utilisation de la librairie CUnit
Tests unitaires : Utilisation de la librairie CUnitTests unitaires : Utilisation de la librairie CUnit
Tests unitaires : Utilisation de la librairie CUnit
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...
 
Arbre et algorithme de recherche
Arbre et algorithme de rechercheArbre et algorithme de recherche
Arbre et algorithme de recherche
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulières
 
Outils de gestion de projets
Outils de gestion de projetsOutils de gestion de projets
Outils de gestion de projets
 
Modélisation avec UML
Modélisation avec UMLModélisation avec UML
Modélisation avec UML
 
De la Terre aux Étoiles : Mesure des distances Terre-Étoile
De la Terre aux Étoiles : Mesure des distances Terre-ÉtoileDe la Terre aux Étoiles : Mesure des distances Terre-Étoile
De la Terre aux Étoiles : Mesure des distances Terre-Étoile
 
Réseaux des neurones
Réseaux des neuronesRéseaux des neurones
Réseaux des neurones
 
Laboratoire de transmission numérique : Présentation du projet
Laboratoire de transmission numérique : Présentation du projetLaboratoire de transmission numérique : Présentation du projet
Laboratoire de transmission numérique : Présentation du projet
 
Python avancé : Tuple et objet
Python avancé : Tuple et objetPython avancé : Tuple et objet
Python avancé : Tuple et objet
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielle
 
Développement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreDéveloppement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbre
 

Similaire à Programmation de systèmes embarqués : Introduction aux systèmes embarqués

Cours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfCours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfWahideArabe
 
ch1_introduction_aux_systemes_embarques.pdf
ch1_introduction_aux_systemes_embarques.pdfch1_introduction_aux_systemes_embarques.pdf
ch1_introduction_aux_systemes_embarques.pdfHoudaBezziane
 
Cours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxCours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxAbdo Brahmi
 
2009-02-12 GRE302 - Développement d'applications vertes
2009-02-12 GRE302 - Développement d'applications vertes2009-02-12 GRE302 - Développement d'applications vertes
2009-02-12 GRE302 - Développement d'applications vertesPatrick Guimonet
 
Technologies & Systèmes
Technologies & SystèmesTechnologies & Systèmes
Technologies & SystèmesPaulin CHOUDJA
 
Embedded intro 2006
Embedded intro 2006Embedded intro 2006
Embedded intro 2006mcbinene
 
Introduction aux systèmes d'exploitation mobile
Introduction aux systèmes d'exploitation mobileIntroduction aux systèmes d'exploitation mobile
Introduction aux systèmes d'exploitation mobileHoussem Rouini
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurssarah Benmerzouk
 
Linux et les systèmes embarqués
Linux et les systèmes embarquésLinux et les systèmes embarqués
Linux et les systèmes embarquésStéphane Legrand
 
Normation solutions linux automatisation si complexes
Normation solutions linux automatisation si complexesNormation solutions linux automatisation si complexes
Normation solutions linux automatisation si complexesRUDDER
 
Presentaion fpga µc µp quelles est la solution
Presentaion  fpga µc µp quelles est la solutionPresentaion  fpga µc µp quelles est la solution
Presentaion fpga µc µp quelles est la solutionCynapsys It Hotspot
 
La technologie des systemes distribués 2 ppt2222.pptx
La technologie des systemes distribués 2 ppt2222.pptxLa technologie des systemes distribués 2 ppt2222.pptx
La technologie des systemes distribués 2 ppt2222.pptxkaoutarghaffour
 
Cours sys 2PPT20.pdf
Cours sys 2PPT20.pdfCours sys 2PPT20.pdf
Cours sys 2PPT20.pdfC00LiMoUn
 

Similaire à Programmation de systèmes embarqués : Introduction aux systèmes embarqués (20)

Cours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfCours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdf
 
ch1_introduction_aux_systemes_embarques.pdf
ch1_introduction_aux_systemes_embarques.pdfch1_introduction_aux_systemes_embarques.pdf
ch1_introduction_aux_systemes_embarques.pdf
 
Cours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxCours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptx
 
2009-02-12 GRE302 - Développement d'applications vertes
2009-02-12 GRE302 - Développement d'applications vertes2009-02-12 GRE302 - Développement d'applications vertes
2009-02-12 GRE302 - Développement d'applications vertes
 
Technologies & Systèmes
Technologies & SystèmesTechnologies & Systèmes
Technologies & Systèmes
 
Embedded intro 2006
Embedded intro 2006Embedded intro 2006
Embedded intro 2006
 
Introduction aux systèmes d'exploitation mobile
Introduction aux systèmes d'exploitation mobileIntroduction aux systèmes d'exploitation mobile
Introduction aux systèmes d'exploitation mobile
 
Tiny os_2
Tiny os_2Tiny os_2
Tiny os_2
 
systèmes distribues
systèmes distribuessystèmes distribues
systèmes distribues
 
Datalogger finale
Datalogger finaleDatalogger finale
Datalogger finale
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurs
 
Linux et les systèmes embarqués
Linux et les systèmes embarquésLinux et les systèmes embarqués
Linux et les systèmes embarqués
 
Normation solutions linux automatisation si complexes
Normation solutions linux automatisation si complexesNormation solutions linux automatisation si complexes
Normation solutions linux automatisation si complexes
 
Chapitre 1 sem
Chapitre 1 semChapitre 1 sem
Chapitre 1 sem
 
Presentaion fpga µc µp quelles est la solution
Presentaion  fpga µc µp quelles est la solutionPresentaion  fpga µc µp quelles est la solution
Presentaion fpga µc µp quelles est la solution
 
Grid computing
Grid computingGrid computing
Grid computing
 
La technologie des systemes distribués 2 ppt2222.pptx
La technologie des systemes distribués 2 ppt2222.pptxLa technologie des systemes distribués 2 ppt2222.pptx
La technologie des systemes distribués 2 ppt2222.pptx
 
Cours sys 2PPT20.pdf
Cours sys 2PPT20.pdfCours sys 2PPT20.pdf
Cours sys 2PPT20.pdf
 
Tiny os
Tiny osTiny os
Tiny os
 

Plus de ECAM Brussels Engineering School

Programmation de systèmes embarqués : Bus et périphériques de communication
Programmation de systèmes embarqués : Bus et périphériques de communicationProgrammation de systèmes embarqués : Bus et périphériques de communication
Programmation de systèmes embarqués : Bus et périphériques de communicationECAM Brussels Engineering School
 
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarquéProgrammation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarquéECAM Brussels Engineering School
 
Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...ECAM Brussels Engineering School
 
Intelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielleIntelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielleECAM Brussels Engineering School
 
Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...ECAM Brussels Engineering School
 

Plus de ECAM Brussels Engineering School (15)

Introduction à la formation Digitalent
Introduction à la formation DigitalentIntroduction à la formation Digitalent
Introduction à la formation Digitalent
 
Programmation de systèmes embarqués : Bus et périphériques de communication
Programmation de systèmes embarqués : Bus et périphériques de communicationProgrammation de systèmes embarqués : Bus et périphériques de communication
Programmation de systèmes embarqués : Bus et périphériques de communication
 
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarquéProgrammation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
 
Johnny-Five : Robotique et IoT en JavaScript
Johnny-Five : Robotique et IoT en JavaScriptJohnny-Five : Robotique et IoT en JavaScript
Johnny-Five : Robotique et IoT en JavaScript
 
Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...
 
Intelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielleIntelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielle
 
Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...
 
Développement informatique : Programmation concurrente
Développement informatique : Programmation concurrenteDéveloppement informatique : Programmation concurrente
Développement informatique : Programmation concurrente
 
Développement informatique : Programmation réseau
Développement informatique : Programmation réseauDéveloppement informatique : Programmation réseau
Développement informatique : Programmation réseau
 
Python avancé : Qualité de code et convention de codage
Python avancé : Qualité de code et convention de codagePython avancé : Qualité de code et convention de codage
Python avancé : Qualité de code et convention de codage
 
Qualité de code et bonnes pratiques
Qualité de code et bonnes pratiquesQualité de code et bonnes pratiques
Qualité de code et bonnes pratiques
 
Comment Internet fonctionne-t-il ?
Comment Internet fonctionne-t-il ?Comment Internet fonctionne-t-il ?
Comment Internet fonctionne-t-il ?
 
HTML, CSS et Javascript
HTML, CSS et JavascriptHTML, CSS et Javascript
HTML, CSS et Javascript
 
Polymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraitePolymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraite
 
Héritage et redéfinition de méthode
Héritage et redéfinition de méthodeHéritage et redéfinition de méthode
Héritage et redéfinition de méthode
 

Programmation de systèmes embarqués : Introduction aux systèmes embarqués

  • 1. E302C Gestion des périphériques Séance 4 Introduction aux systèmes embarqués Sébastien Combéfis 21 mars 2017
  • 2. Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution – Pas d’Utilisation Commerciale – Pas de Modification 4.0 International.
  • 3. Objectifs Définir et comprendre la notion de système embarqué Définition et composants d’un système embarqué Types, caractéristiques et contraintes Système connecté et objets intelligents Passer en revue les aspects hardware et software Type de processeurs, unités hardware, interruption et énergie Programmation, chaine de compilation, système d’exploitation Vue de l’ingénieur et du client Exigences, aspects multi-disciplinaires et case study 3
  • 4. Technologie d’information du futur Disappearing computer Ubiquitous computing Pervasive computing Ambient intelligence Ordinateurs partout Information partout, tout le temps Exploitation techno- logie existante Maisons du futur, smart cities 4
  • 6. Système embarqué Présence grandissante d’appareils intelligents et connectés Constitué d’un « ordinateur de bord », le système embarqué Système embarqué est électronique et informatique Il est embarqué au sein d’un produit plus large 6
  • 7. Traitement d’information (1) Système embarqué est un intermédiaire Réception d’information provenant de son environnement Traitement de cette information Action à travers le produit hôte qui l’héberge configuration données senseurs régulation 7
  • 8. Traitement d’information (2) Système embarqué se trouve au sein d’un système plus large Input en interrogant le système via des senseurs Output en agissant sur le système via des actuateurs Possibilité d’interaction directe avec l’utilisateur Processus externes Système embarqué Utilisateuractuateurs senseurs 8
  • 9. Vue orientée-produit Système embarqué implémente un processus Collecte d’inputs pour produire des outputs Inputs produits par des senseurs ou capteurs Température, gyroscope, configuration, communication réseau... Outputs produits par des actuateurs ou actionneurs Moteur, vérin, baffle, LEDs, écran, communication réseau... 9
  • 10. Définition de l’IEE Définition de l’Institution of Electrical Engineers (IEE) “the devices used to control, monitor or assist the operation of equipment, machinery or plant. ‘Embedded’ reflects the fact that they are an integral part of the system. In many cases their em- beddedness may be such that their presence is far from obvious to the casual observer [...]” Système embarqué souvent associé à une machine Fait partie d’un système plus large, et est souvent caché 10
  • 11. Traditionnel versus embarqué Un système embarqué n’a pas de raison d’être seul Composant d’un système plus large, parfois invisible Situation dans les années 2000 Informatique focus sur 150 · 106 d’ordinateurs « traditionnels » Processeurs se trouvent dans 8 · 109 de systèmes embarqués Système embarqué exécute une tâche spécifique Moins de ressources et moins performants Software spécifique Fonctionnement en autonomie, pas de clavier, affichage réduit 11
  • 12. Exemple (1) Système embarqué seul ou à plusieurs Isolé et cloisonné dans l’hôte/collaborant avec d’autres systèmes Simple gestion des états de fonctionnement d’une machine Machine à laver, four à micro-onde, toaster... Traitement de signaux audio et vidéo Appareil photo et caméra numérique, console de jeu... Système de communication et d’information Smartphone, modem-routeur, fax, antenne-relais, satellite... 12
  • 13. Exemple (2) Plus que 40% de la valeur d’une voiture moderne Multiples systèmes embarqués qui peuplent la voiture ABS Boite de vitesse Moteur Climatisation Système de divertissement 13
  • 14. Type d’application visé Usage général avec applications similaires aux « traditionnels » Embarqué dans package de petites tailles comme PDA, ATM... Boucle rétroactive fermée de contrôle de système temps-réel Moteur de voiture, centrale nucléaire, contrôle aérien... Calcul sur gros flux de données comme traitement de signal Traitement audio et vidéo, radar, sonar... Communication et réseaux pour transmission de données Utilisés en téléphonie et sur internet 14
  • 15. Type de fonction (1) Assurer qu’une loi de contrôle est respectée Contrôleur PID pour assurer stabilité vol stationnaire Représentation d’une logique séquentielle Alternation entre modes comme machine à laver Calculs et opérations en traitement de signaux Compression/décompression de contenu multimédia, filtrer son... 15
  • 16. Type de fonction (2) Rôle d’interface pour des applications spécifiques Gérer des alarmes sonores, contrôleur disque SSD... Réaction à des fautes ou gestion d’exceptions Détection, diagnostic et correction de la faute 16
  • 17. Taille et complexité Système de petite échelle avec un microcontrôleur 8–16 bits Niveau d’une carte, limitation ressources pour puissance Moyenne échelle avec microcontrôleurs 16–32 bits, DSP, RISC Hardware de type ASSPs et IPs et software avec des RTOS Système sophistiqué avec processeurs configurables et PLA Co-design et intégration software/hardware très important 17
  • 18. Fiabilité Un système embarqué doit avoir une grande fiabilité Car il doit très souvent pouvoir fonctionner en autonomie Plusieurs caractéristiques mesurables de fiabilité Robustesse, proba de fonctionnement en t, si ok en t0 Maintenabilité, proba de fonctionnement d après une erreur Disponibilité, proba de fonctionner en t Sûreté, il ne cause pas de nuisances Sécurité, communications confidentielles et authentifiées Aspects à prendre en compte au moment de la conception Et compromis à prendre car impossible de tous les maximiser 18
  • 19. Efficacité Un système embarqué doit être efficace pour sa fonction Plus qu’un ordinateur « traditionnel », justifier son développement Cinq aspects mesurables d’efficacité Consommation énergétique en Watts Taille du code en octets, lignes de code Exécution du programme en MIPS, R/W par seconde Poids et taille en kg et cm Cout de fabrication et conception en $, €, ¥... 19
  • 20. Contrainte Système spécifique dédié à une tâche déterminée Connaissances sur les conditions et à l’environnement d’utilisation Contraintes de temps-réel sur le temps de réaction Strict, réaction garantie endéans temps de réponse fixé Souple, réaction au mieux endéans temps de réponse fixé “A real-time constraint is called hard, if not meeting that constraint could result in a catastrophe.” Alimentation du système embarqué en énergie Batterie évolue moins vite que besoins en puissance de calcul 20
  • 21. Système connecté Intelligence ambiente, troisième ère de l’informatique Large gamme de petits appareils « intelligents » Système embarqué doté de moyens de communication Récupération/échange d’informations, réseaux de senseurs Apparition d’applications distribuées pour données et calculs Domotique et maison intelligente, smart cities, e-health... 21
  • 23. Boucle hardware Hardware d’un système embarqué en “Hardware in a loop” Méthode de test par envoi de stimuli et mesure de la réponse Système embarqué Senseur Conversion A/D CPU Conversion D/A Actuateur FPGA/ ASIC Mémoire Environnement environnement → senseur → système embarqué → actuateur → environnement → ... 23
  • 24. Intel 4004 Premier microprocesseur sur une seule puce est l’Intel 4004 Créé en 1971 suite à une demande de la firme japonaise Busicom Microprocesseur à usage général programmé pour les produits Sur 4 bits, fréquence CPU de 740 kHz max, 2300 transistors 24
  • 25. Unité de calcul (1) Processeurs exécutent une séquence d’instructions General Purpose Processor (GPP) Jeu d’instructions large et varié Application-Specific Instruction set Processor (ASIP) Jeu d’instructions conçu pour un ensemble d’opérations Circuits spécifiques implémentent une fonction en hardware Reprogrammable hardware Fonction modifiable après fabrication, comme FPGA Application-Specific Integrated Circuit (ASIC) Circuit intégré réalisant les fonctions d’une application 25
  • 26. Unité de calcul (2) Comparaison de la flexibilité par rapport aux performances Générique et flexible moins performant et efficace en énergie Grand cout de conception et développement des ASIC Pas de chaine de production à grande échelle, un ASIC par besoin GPP Microprocesseur ASIP Microcontrôleur, DSP Hardware reprogrammable FPGA ASIC Performance et efficacité énergétique Flexibilité 26
  • 27. ASSP et FPGA Application Specific Standard Product (ASSP) Version plus générale des ASICs, contenant une seule fonction Vise un large marché et peut être produit en masse À l’opposé des ASICs qui combinent plusieurs fonctions Prototypage d’une ASIC réalisé à l’aide de FPGA À l’instar de la breadboard qui prototype un PCB 27
  • 28. Architecture matérielle (1) Architecture matérielle décrit structure système embarqué Plusieurs représentations avec degrés d’abstraction différents Description possible par un diagramme blocs Blocs pour composants, unités, sous-systèmes... Liens représentent échange d’information, commande... 28
  • 29. Architecture matérielle (2) Exemple d’un ventilateur contrôlé par la température Système embarqué construit avec microcontrôleur ARM7TDMI Microcontrôleur ARM7TDMI LPC2378 Senseur LM35 ADC Driver L293D Moteur DC Écran LCD 29
  • 30. Architecture type Architecture type d’un système embarqué avec processeur Horloge, mémoire, dispositif général/spécifique/communication Deux ouvertures vers le monde extérieur Port debug et bus de périphériques Processeur Port debug Horloges Mémoire non-volatile Mémoire volatile Dispositifs communication Dispositifs généraux Dispositifs spécifiques Mondeextérieur Bus périphérique Bus système 30
  • 31. Alimentation (1) Alimentation en énergie d’un système embarqué importante Adaptateur secteur AC/DC, batterie, hôte, charge pump Plusieurs plages possibles selon les besoins des composants 5 V ± 0.25 V , 3.3 V ± 0.3 V , 2.0 V ± 0.2 V , 1.5 V ± 0.2 V Construits à partir de LVCMOS et LVTTL Tension inversement proportionnelle délais de propagation Passer de 5 V à 3.3 V divise dissipation puissance par deux Passer à 3.3 V génèrent moins de chaleur, plus petits packs 31
  • 32. Alimentation (2) Caractéristiques d’un bon sous-système d’alimentation Tension stable et lisse, et constante pour ADC par exemple Courant en suffisance pour système embarqué et composants Efficace et stable selon conditions (température, circulation air) Offrir un découplage entre différents composants Horloge et circuit de reset sans interférence radioélectrique Ports d’entrée/sortie dissipent beaucoup de puissance Timers dissipent une puissance constante 32
  • 33. Horloge Horloge cadence fonctionnement du processeur Rythme le cycle fetch-decode-execute Trois principales technologies utilisées pour des oscillateurs Crystal externe plus stable (doit être proche du processeur) Résonateur céramique interne (dérive 10min/mois versus 1–5) Oscillateur externe en circuit intégré (plus contrôlable) Présence de circuit de timer Real-Time Clock (RTC) Ordonnanceur de tâche, système temps réel 33
  • 34. Mémoire Plusieurs mémoires permettant de stocker de l’information Permanente ou volatile, interne ou externe Trois principaux types de mémoires utilisés Read-Only Memory (ROM) Permanente en lecture seule, programme exécuté Random-Access Memory (RAM) Volatile, travail en cours, variable, tampon Electrically Erasable Programmable ROM (EEPROM) Permanente modifiable, copie instructions, calcul rapide 34
  • 35. Entrée/sortie Communication avec dispositifs externes identifiés par port Port d’entrée : senseur, bouton, circuit transducteur... Port de sortie : LED, écran LCD... Port est un dispositif physique pour transiter des données Recevoir données de périphérique, processeur, contrôleur Envoyer données vers l’extérieur Connecté vers le processeur grâce à un bus 35
  • 36. Port GPIO Port General Purpose Input/Output (GPIO) Connexion directe du processeur avec le monde extérieur Deux valeurs de tension pour chaque pin GPIO (valeur binaire) Utilisé comme entrée (bouton) ou comme sortie (LED) Fonctionnement du port GPIO grâce à des registres Port GPIO Registre direction de port (PDR) Registre données d’entrée du port (PIDR) Registre données de sortie du port (PODR) Ports E/S Bussystème 36
  • 37. Communication Transmission des informations en série ou parallèle Parallèle historiquement plus rapide car plusieurs bits à la fois Série plus léger niveau hardware (câble, émetteur/récepteur) Parallèle sur distances courtes, série longue distance Rythme de la communication et messages échangés Synchrone suit une horloge, à partager entre les bouts Asynchrone transmet des balises, surcharge de communication Choix à faire selon régularité des messages Plusieurs types de bus : RS-232, I2C, SPI, CAN, USB, PCI... 37
  • 38. Support analogique Système hybride, discret/numérique et continu/analogique Lire une entrée analogique comme un son d’un micro Produire une sortie analogique pour contrôler un moteur Génération d’un signal analogique avec DAC (PWM) Construction d’un signal continu à partir d’états discrets Acquisition d’un signal analogique avec ADC Discrétisation d’un signal continu en séquence binaire 38
  • 39. Choix technologique Démarrage avec technologie générique moins couteux Implémentation des fonctions désirées en software Performances moins bonnes et nécessité d’optimisation Remplacement processeur-software par un ASIC Implémentation des fonctions au niveau hardware Solution plus chère et avec un grand temps de développement 39
  • 40. Flexibilité versus puissance/énergie Augmentation de la flexibilité coute en performance/énergie Fonction software coute 10 fois plus que équivalent hardware flexibilité puissance /énergie ASIC FPGA ASIP (+SW) GPP (+SW) 40
  • 41. Taille versus opérations/Watt Plus d’opérations par Watt en diminuant les tailles des CI Hardware câblé pur offre un gain d’un ordre de grandeur supérieur µm MOps/mW 0.01 0.1 1 10 100 1.0 0.5 0.25 0.13 0.07 processeurs hardware reprogrammable ASIC microprocesseur DSP/ASIP 41
  • 43. Software Software partie importante système embarqué, son « brain » Tout du moins pour ceux qui sont basés sur un processeur Software développé pour un système embarqué pas portable Car le lien avec le hardware peut être très fort Développement différent de celui d’un software « classique » Pas facile de directement coder sur le système embarqué 43
  • 44. Système réactif Comportement exécuté en réaction à des évènements L’environnement produit des évènements sur le système embarqué Interaction continue à un rythme imposé par l’environnement “A reactive system is one that is in continual interaction with its en- vironment and executes at a pace determined by that environment.” Deux types d’évènements possibles sur le système embarqué Périodique (boucle de contrôle) et non périodique (bouton) 44
  • 45. Temps réel Système temps réel doit réagir endéans une deadline Pas une question de vitesse d’exécution, mais respect de deadline Deux niveaux de contraintes selon conséquence de non respect Temps réel souple, pas grave si une deadline est manquée Temps réel strict, conséquences très graves aucune souple forte contraintes temps réel simulation PC interface utilisateur video internet cruise control télécom contrôle aérien moteur électronique 45
  • 46. Polling et interruption Software doit être avertit de la disponibilité de données Par des bus, périphériques, etc. Deux mécanismes principaux pour avertir le CPU Polling, CPU va vérifier régulièrement dans un registre d’état Mécanisme d’interruption du CPU par le périphérique Choix très critique dans le cas de systèmes temps réel On ne peut pas toujours se permettre d’attendre un périphérique 46
  • 47. Programmation Software se présente sous la forme de code machine Image ROM du software d’un système embarqué Utilisation des opérations du jeu d’instructions du processeur Placement en mémoire en fonction de ses caractéristiques Langage de haut niveau Langage d’assemblage CPU Langage machine exécution directe compilation traduction 47
  • 48. Niveau de programmation Directement en code machine Beaucoup de temps pour comprendre jeu d’instructions et coder Langage d’assemblage traduit en code machine Raccourci textuels pour l’être humain, et routines Langage de haut niveau compilé en code machine Abstraction plus proche de la façon de penser du programmeur 48
  • 50. Développement (2) Pas toujours possible de développement sur système embarqué Utilisation d’un système hôte pour programmer une cible Deux options avec un code source compilé en code machine Envoi vers le système cible pour exécution directe Exécution sur le système hôte avec émulateur ou simulateur Possibilité de debugger directement depuis le système cible Avec les standards JTAG, par exemple 50
  • 51. Développement (3) Spécification Séparation matériel/logi- ciel et choix des composants Développement hardware Développement software Intégration Validation et test Maintenance et mise à jour 51
  • 52. Développement (4) Pas une unique procédure de développement Mais coordination entre les aspects hardware et software Spécification puis séparation matériel/software Plusieurs itérations et point de non retour Développement parallèle software/hardware, mise en commun Intégration, validation et tests, maintenance et mise à jour 52
  • 54. Disparition de l’ordinateur L’ordinateur « traditionnels » disparait lentement Relativement à l’explosion des systèmes embarqués Trois grandes tendances d’informatique omniprésente Ubiquitous computing But à long terme d’“information anytime, everywhere” Pervasive computing Exploitation de technologies déjà existantes Ambient intelligence Communication pour maison future et smart cities 54
  • 55. Hardware versus software Hardware stabilisé, usinage grande échelle et cout récurrent Cout software non récurrent, conception pour chaque application t €/année Cout hardware Cout software 55
  • 56. Compétence Compétences transversales, dépassent frontières des disciplines Importance de comprendre le domaine d’application domaine d’application hardware électronique d’interface software algorithme 56
  • 57. Compromis (1) Choix et compromis entre les différentes disciplines Comprendre les contraintes des différents domaines Plusieurs activités menées par l’ingénieur Concevoir algorithmes de contrôle, traitement de signal... Concevoir microprocesseurs pour des applications embarquées Concevoir logiciels (e.g. RTOS) pour systèmes embarqués Faire partie d’équipes des domaines d’application Développer senseurs/actuateurs (e.g. MEMS) 57
  • 58. Compromis (2) Optimisation de plusieurs critères outre la vitesse d’exécution Processeur, mais tout ce qui gravite autour Trois catégories d’éléments à prendre en compte Multi-objectifs, fiabilité, abordabilité, sécurité, sûreté, évolutivité et mise à l’échelle, ponctualité Multi-discipline, hardware et software, algorithme de contrôle, interface électronique, domaine d’application Cycle de vie, exigences, conception, usinage, déploiement, logistique et retraite 58
  • 59. Client Diminution des couts pour le client, plus petits et moins cher Appareil spécialisé pour ce qu’il désire Nouvelles fonctionnalités part intégration dans d’autres objets Fonctions pas possibles avec appareils plus « traditionnels » Améliorer les performances du système Consommation plus contrôlée, meilleure batterie, etc. 59
  • 61. Crédits Photos des livres depuis Amazon https://www.flickr.com/photos/splorp/8165771383 https://www.flickr.com/photos/tamaki/7568407 https://www.flickr.com/photos/code_martial/2445612018 https://www.flickr.com/photos/sozialhelden/9397521833 https://www.flickr.com/photos/nicknormal/30419435085 https://www.flickr.com/photos/gcollazo/65244956 https://www.flickr.com/photos/davegray/6373321029 https://www.flickr.com/photos/npobre/4484863605 https://en.wikipedia.org/wiki/File:Intel_D4004.jpg https://en.wikipedia.org/wiki/File:Unicom_141P_Calculator_3.jpg https://www.flickr.com/photos/bradmontgomery/8007012137 https://openclipart.org/detail/100267/cpu-central-processing-unit https://www.flickr.com/photos/128474566@N03/15504868300 61