Systèmes Embarqués
Fatima.lakrami
[email protected] 1
Plan de travail 1 Partie théorique
Introduction Systèmes embarqués (Cours/TD)
2 Partie pratique Le langage VHDL TD/TP
2
2
Chapitre 1
3
Systèmes embarqués Histoire Des Systèmes Embarqués Architecture Des Systèmes Embarqués Systèmes Électroniques Embarqués Systèmes Informatiques Embarqués Développement Des Systèmes Embarqués Logiciels Embarqués (Java Embarqué, Linux Embarqué, Androïde) 4
Partie Pratique Langage VHDL : syntaxe, objets et instructions, structure d’un
programme) Modélisation à l’aide du langage VHDL
Simulation fonctionnelle et temporelle du code VHDL Implémentation du code VHDL. 5
Rappels Eléments de réponse
6
Processeur ? • Le processeur est l'élément central d'un système informatique : il interprète les instructions et traite les données d'un programme. Il a besoin de certains éléments externes pour fonctionner :
•
une horloge pour le cadencer (en général à quartz ou Boucle à verrouillage de phase (PLL : PhaseLocked Loop)) ;
•
de la mémoire pour stocker les variables durant l’exécution du programme (mémoire vive RAM) et le programme d’une mise sous tension à l’autre (mémoire morte ROM). Si l'on conçoit un système assigné à une tâche bien particulière (ce qui est généralement le cas des systèmes embarqués), le programme n'est pas amené à changer. Il peut donc être stocké dans une mémoire morte (ROM) ;
•
des périphériques (pour interagir avec le monde extérieur).
7
Processeur • C’'est le "cerveau" du microcontrôleur • Le processeur exécute les actions du programme en suivant l'algorithme • Le processeur va chercher et traiter les données des différents registres
• Opérations, écriture, transferts d'information • Le processeur modifie, traite les variables selon un algorithme • Le processeur est le corps central du microcontrôleur
•REMARQUE: le processeur à besoins d'une horloge pour ordonner ses actions
8
Mémoires du Processeur
9
Quelques réponses? • quelle est la différence entre un microprocesseur et un micro-
contrôleur ? • Un microprocesseur est un processeur dont tous les composants ont
été suffisamment miniaturisés pour être regroupés dans un unique boitier.
10
µc?
Architecture du microcontrôleur PIC 18F4455
• Les microcontrôleurs améliorent l'intégration et le coût (lié à la conception et à la réalisation) d'un système à base de microprocesseur en rassemblant ces éléments essentiels dans un seul circuit intégré. Un microcontrôleur est donc un composant autonome, capable d'exécuter le programme contenu dans sa mémoire morte dès qu'il est mis sous tension. Selon les modèles et les conditions de fonctionnement, les microcontrôleurs peuvent avoir besoin de quelques composants externes (quartz, quelques condensateurs, parfois une ROM), 11 mais ceci reste très limité.
Quelques réponses? • quelle est la différence entre le "risc" et le "cisc" ? • il existe deux familles de microprocesseurs / microcontrôleurs (micros). les micros CISC (complete instruction set computers) possèdent un grand nombre d'instructions (plusieurs dizaines, voir centaines) permettant de réaliser des opérations très variées. chaque instruction est exécutée en un certain nombre de cycles d'horloge, dépendant de l'instruction elle même, mais aussi (et surtout) du mode d'adressage utilisé. l'autre famille de micros, RISC (reduced instruction set computers) possède un nombre d'instructions bien plus faible (quelques dizaines au maximum) qui permettent de réaliser des opérations simples (opérations logiques, sommes, etc...). mais chaque instruction est exécutée en un seul cycle d'horloge. il en résulte une vitesse de calcul très supérieure à celle de la famille cisc. • les circuits tels que les x86, 68hc11 sont des circuits cisc, les microprocesseurs de mac, les pic, les processeurs alpha sont du type risc. 12
Architecture de Von Neumann Quelle est la différence entre une architecture de "Von Neumann" et de "Harvard" ?
Mémoire globale
La caractéristique de cette architecture est qu'elle ne possède qu'un système de bus. Un microprocesseur basé sur une structure Von Neumann stocke les programmes et les données dans la même zone mémoire. 13
Architecture de Harvard Quelle est la différence entre une architecture de "Von Neumann" et de "Harvard" ?
mémoire séparée •permet une exécution plus rapide des instructions. •Il n'y a aucun risque que le processeur écrire des données dans la mémoire programme et corrompe le programme. 14
Quelques réponses? • Quelle est la différence entre une architecture de "Von
Neumann" et de "Harvard" ? • Les x86, 68HC11, ont une architecture Von Neumann. Les Pic ont une architecture Harvard.
15
Les mémoires?
16
Mémoire cache La capacité, la vitesse et le coût des différents niveaux de mémoire varient grandement. Par exemple, en voici une illustration utilisant des équipements de 2013 (pour le processeur, un Intel Haswell Mobile a été utilisé1) : Registres de processeur : capacité = quelques milliers ; vitesse = un cycle du processeur ; Mémoire cache des microprocesseurs Niveau 0 (L0) mémoire des microcodes : capacité = 6 Ko2 ; Niveau 1 (L1) mémoire cache des instructions : capacité = 128 Ko ; vitesse maximale = 700 Go/seconde3 ; Niveau 1 (L1) mémoire cache de données : capacité = 128 Ko ; vitesse maximale = 700 Go/seconde3 ; Niveau 2 (L2) cache partagée (instructions et données) : capacité = 1 Mo ; vitesse maximale = 200 Go/seconde3 ; Niveau 3 (L3) cache partagée (instructions et données) : capacité = 6 Mo ; vitesse maximale 100 Go/seconde3 ; Niveau 4 (L4) cache partagée (instructions et données) : capacité = 128 Mo ; vitesse maximale = 40 Go/seconde3 ; Mémoire RAM de type DRAM : capacité = quelques Go ; vitesse maximale = 10 Go/seconde3 ; Disque dur : capacité = quelques To ; vitesse maximale pour un solid state drive = 600 Mo/seconde 4
17
Partie 1
18
1. 2. 3. 4. 5. 6.
Définition Domaines d'applications Histoire des systèmes embarqués Architecture des systèmes embarqués Systèmes électroniques et informatiques embarqués Développement de systèmes embarqués en Télécommunication Logiciels embarqués
7. -
8.
Java Embarqué Linux Embarqué Androïd
Applicatifs temps réel 19
Systèmes embarqués
20
Définition
21
• dépend principalement du point de vue par lequel on l’aborde. • PdV Soft: Système électronique contrôlé par un Système d’Exploitation temps réel. • PdV Hard: Système électronique indépendant à base de processeur spécialisé.
• PdV socio-économique: Système électronique simple offrant des services utiles et permettant un gain en temps et en argent.
22
Qu’est ce qu’un système embarqué? Défi 1 C ’est un système électronique et informatique autonome qui est dédié à une tâche particulière et contenue système dans un englobant. Il n’est « généralement programmable. » pas • Pas d’E/S standards • Matériel et application intimement liés • Logiciel enfoui … noyé dans le matériel … pas facilement discernable comme dans un PC. NB: Système Embarqué = Embedded System (on parle parfois de système enfoui)
23
Défi 2 Aussi? les systèmes embarqués sont constitués de puces électroniques sur les quelles fonctionnent des logiciels dédiés à l’exécution de fonctions spécifiques ; le tout étant destiné à être intégré dans des sous-ensembles, équipements, appareils et produits divers.
24
Intérieur d'un modem/routeur ADSL. Un exemple de système embarqué. Les parties numérotées incluent : le microprocesseur (4), la RAM (6), et la mémoire flash (7). 25
Les systèmes embarqués répondent généralement à des besoins particuliers !!
26
27
Domaines d'applications
28
On discerne 4 grandes familles de systèmes embarqués: General computing : application similaire à PC mais empaquetée différemment : Console de jeux, imprimante multifonctions, photocopieur, etc
Control systems : Systèmes temps réels, contrôle de moteurs automobile, contrôles d’éléments de navigation aérienne , etc Signal processing : commande de moteurs, radar, sonar, analyse video, etc Communication network : téléphone, transmissions de données, wifi, Bluetooth , etc. 29
• Ils sont partout !!! Les domaines dans lesquels on trouve des systèmes embarqués sont de plus en plus nombreux : • transport : Automobile, Aéronautique (avionique), etc. • astronautique : fusée, satellite artificiel, sonde spatiale, etc. • militaire : missile • télécommunication : téléphonie, routeur, pare-feu, téléphone portable, GPS, etc. • électroménager : télévision, four à micro-ondes • impression : imprimante multifonctions, photocopieur, etc. • informatique : disque dur, Lecteur de disquette, etc. • multimédia : console de jeux vidéo, assistant personnel • guichet automatique bancaire (GAB) • équipement médical • automate programmable industriel • métrologie 30
• Ils sont partout !!!
31
Ils sont partout !!!
32
Exemple: Vanets
33
• Ils sont partout !!!
34
Histoire des systèmes embarqués
35
Histoire des systèmes embarqués • Années 60 : systèmes de guidage de missiles (militaires) • Années 70 : routeurs, guidage de fusées (Apollo), fabrication automatisée, chimie • Années 80 et 90 : large extension (transports, énergie, télécommunications, satellites, carte à puce, terminaux de paiement, etc.) • Années 2000 : croissance explosive (téléphones, électroménager, puces radio (RFID), réseaux de capteurs, voitures, trains, avions, équipements médicaux, …) 36
Architecture des systèmes embarqués
37
Architecture des systèmes embarqués Structure interne typique
Memory
Software
Sensors Communicati on Network
Processor(s)
A/D
µc, ASIC,FPGA,DSP
D/A Actuators
Other Hardware
Human Interface
Auxiliary Systems (power, package,…)
38
Architecture des SE • Software: Firmwares (Logiciels spécifiques partie ou entièrement- programmés dans ou encore des OS embarqués (Linux embarqué par exemple).
en le matériel)
• A/D, D/A • Capteur • Actionneur
• Communication at network • Human interface • Mémoire: Définitions 39
A/D
40
D/A
41
Unité d’acquisition
Capteurs
Unité de communication
42
Actuators
43
Human interface L’interface utilisateur est spécifique : Ecran LCD, voyants, touches, clavier custom, Synthèse vocale, vibrerur, interface de commande.
44
Technologies de communication Sans Fil
Filaires
45
Caractéristiques de la mémoire
46
Les processeurs Les entrées sorties du système sont spécifiques à l’application Le traitement d’information dans un système embarqué est numérique; il utilise en général :
un microcontroleur (µc), ou un ASIC, il exécute une application qui est spécifique.(ASIC=Application Specific Integrated Circuit,) ou un FPGA (Field Programmable GateArray) ou encore un DSP (Digital signal Processing)
A voir plus loin!!!!
47
Distribuée
48
Centralisée
49
50
Exemple: application 1) décrire le schéma bloc d’une souris de l’ordinateur (avec ou sans fil) selon le modèle présenté en avant) 2) Décrire le fonctionnement d’une chaine automatisée de production de l’énergie éolienne.
51
Souris
52
L'énergie éolienne
53
Systèmes électroniques et informatiques embarqués
54
Introduction L'électronique moderne se tourne de plus en plus vers le numérique: • grande insensibilité aux parasites et aux dérives diverses, • modularité et (re)configurabilité, • facilité de stockage de l'information etc. 55
Par contre? Les circuits numériques par contre :
• Nécessitent une architecture plus lourde? • leur mode de traitement de l'information met en oeuvre plus de fonctions élémentaires que l'analogique d'où découle des temps de traitement plus long. 56
Circuits logiques programmables
58
LES PLD
59
Plan • Fonction logique? • Matrice PLA • Applications
60
Fonction logique? • N'importe quelle fonction peut être codée par une somme de produit, par un produit de somme ou un mélange des deux. On peut immédiatement en déduire une structure de circuits, appelé matrice PLA (Programmable Logic Array). La figure suivante représente une matrice PLA à 4 entrées et 4 sorties :
61
Matrice PLA Chacune des 4 entrées et son complémentaire arrive sur une des 16 portes ET à 2x4=8 entrées. Afin de simplifier la représentation, les 8 lignes ont été représentées par une seule, chaque croix représentant une connexion programmable (un fusible par exemple). La figure suivante propose un principe de réalisation des fonctions de la matrice ET ; a mise au niveau logique 0 (NL0) d'une des entrées IX impose un NL0 en sortie :
et de la matrice OU, sur laquelle une entrée au NL1 impose un NL1 en sortie :
62
Mémoires
Lorsqu'une adresse est présentée, par exemple I1, I 2 I 3 I 4 la porte ET concernée passe au NL1 (celle du bas dans l’exemple) et suivant les fusibles laissés intacts sur la matrice OU, on a un mot différent 00010203 (0000 si tous les fusibles sont grillés par exemple), Ce principe utilisé pour les mémoires, l’est aussi dans les CPLD (Complex Programmable Logic Device), mais surtout dans les FPGA (Field Programmable Gate Array) sous le nom de LUT (Lock 63Up Table).
PROM
64
MÉMOIRES MORTES PROGRAMMABLES : PROM décodeur 4:16
A3
A2 A1 A0
m15 m14 m13 m12 m11 m10 m9 m8 m7 m6 m5 m4 m3 m2 m1 m0
=
65
D7
D6
D5
D4
D3
D2
D1
D0
Exemple :Décodeur A2
A1
A0
• Un décodeur active une sortie unique qui correspond à la valeur du code binaire en entrée. Décodeur 3:8
F7
F6 F5 A2 F4 A1
F3 A0 F2
F1
# 0 1 2 3 4 5 6 7
A 2 A 1 A 0 F7 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1
F6 0 0 0 0 0 0 1 0
F5 0 0 0 0 0 1 0 0
F4 0 0 0 0 1 0 0 0
F3 0 0 0 1 0 0 0 0
F2 0 0 1 0 0 0 0 0
F0
F1 0 1 0 0 0 0 0 0
F1
F0 1 0 0 0 0 0 0 0
F2
F3
F4
F5
F0 F6
F0 = m0 = A2’A1’A0’ F1 = m1 = A2’A1’A0 F2 = m2 = A2’A1A0’
66 F7
Exemple • Donner les fonctions logiques réalisées par cette mémoire PROM. décodeur 4:16
A3
A2 A1 A0
m15 m14 m13 m12 m11 m10 m9 m8 m7 m6 m5 m4 m3 m2 m1 m0
D7
D6
D5
D4
D3
D2
D1
67
D0
• Donner les fonctions logiques réalisées par cette mémoire PROM. décodeur 4:16
D7 = m13 + m9 = A3A2A1’A0 + A3A2’A1’A0 D2 = m12 + m8 + m4 + m0 = A1’A0’ A3A2 A1A0 00
D2
01
01
11
10
1
1
1
1
0
4
0 1
11
0
0
0
0
9
0 15
0 6
A0 8
13
7
A1
0
0
0 2
12
5
3
10
A2
00
0
A3
m15 m14 m13 m12 m11 m10 m9 m8 m7 m6 m5 m4 m3 m2 m1 m0
11
0 14
10
D7
D6
D5
D4
D3
D2
D1
68
D0
Multiplexeur Le multiplexeur permet également de coder une fonction combinatoire: A chaque valeur des entrées E0 et E1 est associé un niveau logique défini dans la table de vérité pour la sortie S. Ce niveau logique est imposé sur l'entrée de programmation correspondante.
Ce principe est utilisé dans les FPGA. 69
Technologie d'interconnexions L'un des éléments clé des circuits étudié est la connexion programmable: • la densité d'intégration • la rapidité de fonctionnement une fois le composant programmé, fonction de la résistance à l'état passant et des capacités parasites • la facilité de mise en œuvre (programmation sur site, reprogrammation etc) • la possibilité de maintien de l'information.
70
Connexions programmable une seule fois (OTP : One Time Programming) Cellules à fusible • Ce sont les premières à avoir été utilisées et elles ont aujourd'hui disparu au profit de technologies plus performantes. Leur principe consistait à détruire un fusible conducteur par passage d'un courant fourni par une tension supérieure à l'alimentation (12 à 25 V) OTP : One Time Programming
71
Connexions programmable une seule fois (OTP : One Time Programming) Cellules à antifusible • En appliquant une tension importante (16 V pendant 1 ms) à un isolant entre deux zones de semi-conducteur fortement dopées, ce dernier diffuse dans l'isolant et le rend conducteur. Chaque cellule occupe environ 1,8 µm2 (700 µm2 pour un fusible) ; cette technologie très en vogue permet une haute densité d'intégration. • Hormis la non reprogrammabilité, c'est la meilleure technologie (vitesse et surtout densité d'intégration). 72
Cellules reprogrammables Cellule à transistor MOS à grille flottante et EPROM (Erasable Programmable Read Only Mémory)
73
Processeurs
Circuit programmables
75
Processeurs
LES CIRCUITS PROGRAMMABLES PAL: Programmable Array Logic
Réseau Logique Programmable
P.A.L. signifie Programmable Array Logic, c'est à dire réseau logique programmable. La programmation de ces circuits s'effectue par destruction de fusibles . -
77
LES CIRCUITS LOGIQUES PROGRAMMABLES
EPLD EPLD:
Erasable Programmable Logic Device
Circuit Logique reprogrammable de grande capacité
Les P.A.L. effaçables: E.P.L.D. Les E.P.L.D. Ce qui signifie Erasable Programmable Logic Device, c'est à dire circuit logique programmable et effasçable et qui sont aux P.A.L. ce que sont les U.V.P.R.OM. aux P.R.O.M. Les E.P.L.D. peuvent être effacés par U.V. Ils sont encore appelés P.A.L. CMOS.
78
PAL/GAL GAL/SPLD: Generic Array Logic
Réseau Logique Reprogrammable Un GAL est un PAL effaçable électriquement Les G.A.L. Les G.A.L. Ce qui signifie Generic Array Logic ou encore réseau logique générique ce qui veut dire pas grand chose mais qui sont aux P.A.L. ce que sont les E.E.P.R.O.M aux P.R.O.M. Le nom de G.A.L. a été déposé par LATTICE SEMICONDUCTOR. Leur fonctionnement est identique aux P.A.L. CMOS, ils sont programmables et effaçables électriquement.
79
PAL/GAL GAL: Generic Array Logic
Réseau Logique Reprogrammable Un GAL est un PAL effaçable électriquement Les G.A.L. Les G.A.L. Ce qui signifie Generic Array Logic ou encore réseau logique générique ce qui veut dire pas grand chose mais qui sont aux P.A.L. ce que sont les E.E.P.R.O.M aux P.R.O.M. Le nom de G.A.L. a été déposé par LATTICE SEMICONDUCTOR. Leur fonctionnement est identique aux P.A.L. CMOS, ils sont programmables et effaçables électriquement. 80
PAL/GAL CPLD: Complex Programmable Logic Device Les CPLD Ils sont constitués de plusieurs GALs et ces GALS sont reliés entre eux à l ’aide d ’une matrice d ’interconnexion. sont des PLDs (donc des GALs) complexes . On peut les effacer et les reprogrammer. Ils sont réalisés en technologie CMOS.
81
LES CIRCUITS LOGIQUES PROGRAMMABLES FPGA :Forecasting Programmable Gate Array
Réseau de portes programmables à la demande Les FPGAs à la différence des PLDs . La puissance de ces circuits est telle qu’ils peuvent être composés de plusieurs milliers voire millions de portes logiques et de bascules. Les dernières générations de FPGA intègrent même de la mémoire vive (RAM). Les deux plus grands constructeurs de FPGA sont XILINX et ALTERA. Ils sont composés de blocs logiques élémentaires (plusieurs milliers de portes) qui peuvent être interconnectés.
82
LES CIRCUITS LOGIQUES PROGRAMMABLES
FPGA
L’utilisateur réalise les interconnexions 83
FPGA vs CPLD
L ’avantage des CPLD (vis à vis des FPGAs) réside dans la matrice d’interconnexion qui permet d ’avoir un temps de propagation fixe et connu à l’avance. On peut les effacer et les reprogrammer. Ils sont réalisés en technologie CMOS.
84
ASIC
ASIC (Application Integrated Circuit) est un circuit intégré personnalisé. Il est généralement utilisé par une personne ou une entreprise pour un usage très limité. Donc, quand elle est développée, seule la personne ou l'entreprise qui la commande peut l'utiliser. Il n'est pas utile pour d'autres utilisations, par exemple, un circuit intégré conçu pour une ligne spécifique de téléphones cellulaires d'une entreprise. - ASIC est juste construit pour un et un seul client. - ASIC est utilisé uniquement dans une ligne de produits - Seule la production en volume d'ASIC pour un produit, sinon le coût n'est pas efficace. - Peut exploiter le parallélisme pour atteindre de hautes performances - Basse consommation énergétique
85
ASSP L'ASSP (Application Standard Standard Processor) est un circuit intégré qui met en œuvre une fonction spécifique qui fait appel à un large marché, ce qui signifie que sa fonction est spécifiée, par exemple, une puce d'entraînement du moteur. Mais il est largement utilisé, pas limité à un seul client comme le fait ASIC. Ainsi, les ASSP sont disponibles en tant que composants prêts à l'emploi, ce qui signifie que vous pouvez vous rendre dans les magasins d'électronique et simplement les acheter directement sur l'étagère. Cela signifie que les ASSP ont été bien développés et que vous pouvez simplement l'acheter sans le concevoir à partir de zéro. - Il aborde l'espace produit entre ASIC et les produits génériques à base de processeurs - Extrêmement utile pour les applications de volume faible à moyen car elle permet de réduire les coûts et les coûts de conception.
86
ASIP
ASIP (processeur d'instructions spécifique à l'application) est généralement utilisé dans SoC (System on a Chip). ASIP est une architecture comprenant deux parties qui sont un minimum ISA (Instruction Set Archietecture) et une logique configurable que vous pouvez utiliser pour concevoir votre propre jeu d'instructions. Il offre donc une flexibilité relativement élevée par rapport à l'ASIC et de meilleures performances par rapport au FPGA (Field Programmable Gate Array). En outre, il est moins cher que FPGA, mais légèrement plus cher que ASIC. - ASIP peut vous aider à construire votre propre jeu d'instructions pour répondre à vos besoins spécifiques. - Il fournit un ISA minimum, ce qui peut rendre TTM plus court (Time to Market).
87
Comparatifs
88
FPGA vs ASIC FPGA / ASIC Le choix entre FPGA ou ASIC, se fait en fonction du cahier des charges de l’application : temps de mise sur le marché et durée de vie courte => FPGA très petit nombre de circuits => FPGA optimisation des performances => ASIC grande série => ASIC
89
Programmation des PLDs 1) Cahier des charges. 2) Mise en équation. 3) Résolution du problème sous forme d'équation logique de logigramme ou d'algorithme. 4) Choix du PLD en fonction du nombre d'entrée(s) et de sortie(s). 5) Saisie des équations logiques, de la table de vérité, du logigramme ou de l'algorithme avec le logiciel. 6) Simplification logique. 7) Génération d'un fichier au format JEDEC. 8) Simulation. 9) Programmation du PLD à l'aide du fichier JEDEC et du programmateur. 10) PLD programmé.
90
Résumé
91
Supports de communication dans l’embarqué
92
Systèmes électroniques et informatiques embarqués
93
Systèmes électroniques et informatiques embarqués
94
Systèmes électroniques et informatiques embarqués
95
Systèmes électroniques et informatiques embarqués
96
Développement des SE
97
Développement des SE
Le développement de systèmes embarqués nécessite des connaissances à la fois en électronique et en informatique. Parmi le matériel nécessaire pour réaliser un système embarqué on trouve : •La documentation (datasheet) sur les composants utilisés. C'est la première source d'informations pour le développement ! •L'outillage de base de l'électronicien (fer à souder, insoleuse…) •Les outils d'analyse temporelle : oscilloscope, analyseur logique… •Des composants de base (résistances, condensateurs…) •Un microprocesseur ou un microcontrôleur •Un compilateur croisé (dit aussi en anglais cross-compiler) •Un programmateur de microcontrôleur ou un programmateur in-situ •Un émulateur in-circuit ou ICE (In Circuit Emulator). Cet équipement permet le débogage matériel et logiciel (possibilité de déverminer au niveau du source du logiciel), cependant il reste coûteux. •Une sonde JTAG. Peu coûteuse et très répandue, la sonde JTAG permet non seulement le débogage du logiciel in situ (lecture/modification de registres, mémoires, périphériques...) mais aussi la programmation de la mémoire FLASH des microcontrôleurs, que celle-ci soit interne ou externe comme dans le cas de certaines puces du fabricant NXP 1 •Ingénierie des systèmes: approche multidisciplinaire pour définir, développer et déployer des systèmes embarquant des technologies numériques.
98
Questions diverses
1) Que signifie flasher? 3) La réalisation des circuits électriques intégré? 4) Le rôle de la mémoire flash? 5) Différence entre ASIC /ASIP 6) Exemple d’utilisation de la DSP ? 7) Que signifie watchdog? 8) Conservation de l’énergie dans l’embarqué? 9) Comment mesurer l’efficacité d’un SE? 10) Les étapes d’exécution d’un programme (exemple C/C++) 11) Pourquoi JAVA est indépendante du HARD?
99
Programmation des circuit électroniques 1. 2. 3. 4. 5. 6.
Étapes de conception et fabrication Profile du client Identification des besoins du client Contraintes de fabrication ou d’utilisation Démarche systémique Sécurité en électronique
100
Flash ?? La mémoire flash est un type d'EEPROM qui permet la modification de plusieurs espaces mémoires en une seule opération. La mémoire flash est donc plus rapide lorsque le système doit écrire à plusieurs endroits en même temps. •La mémoire FLASH : Peu coûteuse cette mémoire sert à stocker les programmes à exécuter, c’est une mémoire qui perdure après arrêt de l’alimentation. Rapide, elle est donnée pour une capacité de 1 000 000 de cycles. L’atmega 328 en est doté de 32 kilos (d’où la référence 32..8)
101
Les processeurs
Différence entre ASIC et ASIP Les processeurs généralistes
Les processeurs spécialisés
FPG A
DSP
Motorol a
Intel
•ASIP = Application Specific Instruction set Processor •ASIC = Application Specific Integrated Circuit
microcontrôleurs : pas assez performants
ASIC : beaucoup trop coûteux, mise en oeuvre complexe et longue
ASIP : beaucoup trop coûteux, définition complexe
processeurs généralistes : pas temps réel, trop coûteux, consomment trop d’énergie, difficilement embarquables
Solution : Faire des processeurs spécifiques pour le traitement numérique du signal
DSP
102
DSP La mise en œuvre d’un DSP se fait en lui associant la mémoire (RAM,ROM) et les périphériques. Un DSP est le cœur d’un système de traitement numérique audio
103
Domaines d’applications TELECOMMUNICATIONS Modulation and Transmission, Démodulation and Réception, Compression, commutation, routage, DTMF, Encryptage, amélioration des signaux, annulation d'écho, multiplexage INSTRUMENTATION ET MESURE Transformée de Fourier rapide (FFT), Filtrage, synthèse de forme d'onde, filtrage adaptatif, calculs rapides ELECTRONIQUE MEDICALE Filtrage, annulation d'écho, FFT 2D et 3D, générateurs de signaux TRAITEMENT D'IMAGE Filtrage "spatial", FFT 2D et 3D, reconnaissance de forme, lissage, filtrage INDUSTRIE - CONTROLE DE MOTEURS Filtrage, FFT, PID, calculs rapides, réduction de bruit. TRAITEMENT DE LA PAROLE synthèse et reconnaissance vocale, Compression, lecture de texte, emails, sms, transposition d fréquence, Filtrage, enregistrement et playback
104
Conservation d’énergie • 1)Diminuer la tension d’alimentation 5->3,3->1,1 • 2) l’activation séparée • 3)Basculement des bits • 4)Choix du matériel /mémoires
• 5)Circuit reconfigurable=> éviter le problème de redimensionnement FPGA • 6) Optimiser le code 105
Étapes d’exécution programme
106
JAVA? • C'est un des éléments les plus importants de la plate-forme Java. Elle assure l'indépendance du matériel et du système d'exploitation lors de l'exécution des applications Java.
• Une application Java ne s'exécute pas directement dans le système d'exploitation mais dans une machine virtuelle qui s'exécute dans le système d'exploitation et propose une couche d'abstraction entre l'application Java et ce système.
107
Exemples données dans ce cours 1) 2) 3) 4) 5) 6) 7) 8)
Carte mini ITX EPIA M-series Layout Carte réseau IP2022 Carte Réseau µc MSP 430 Microcontroleur ARM7 Processeur DSP TMS 320C4X FPGA RaspberryPi Arduino
108
Réseau? • Les processeurs IP2012 ™ et IP2022 ™ d'Ubicom combinent un support pour la communication physique Couche, pile de protocole Internet, application spécifique au périphérique, Et des modules logiciels périphériques spécifiques au périphérique dans un Une seule puce, et sont reconfigurables sur Internet.
109
embarqués
Plateforme embarquée base IP2022 • Intègre une machine virtuelle JAVA • Un port Ethernet permettant une connexion avec Internet mais aussi un interfaçage possible avec d’autres équipements, elle inclut une interface RS 232 • Intègre TCP/IP, SMTP, HTTP, SNMP, Telnet • Encryption, sécurité, authentification
110
Systèmes électroniques et informatiques embarqués
µC MSP 430 un exemple de management de la consommation.
111
Systèmes électroniques et informatiques embarqués
112
Systèmes électroniques et informatiques embarqués DSP TMS320C4X
113
Systèmes électroniques et informatiques embarqués FPGA : Principaux fabriquants •XILINX • ACTEL
• ALTERA • LATTICE VANTIS • CYPRESS • AMD
114
Systèmes électroniques et informatiques embarqués
Carte Raspberry Pi Modèle B+ plus Carte SD 8 Go (classe 6) contenant le NOOBS (les principaux systèmes d'exploitation compatibles Raspberry Pi)
Le plus petit ordinateur du monde! 115
Systèmes électroniques et informatiques embarqués Arduino, c'est quoi ?
ARDUINO = 1 carte à microcontrôleur + 1 outil de développement + 1 communauté active Le logiciel et le matériel sont open-source. http://www.arduino.cc/
116
Systèmes électroniques et informatiques embarqués
Arduino en quelques chiffres : Prix d'une carte Arduino uno = 300DH Logiciel = 0 DH Support et assistance = 0 DH (forums)
La « philosophie » L'idée est d'utiliser la carte Arduino comme un macro-composant dans des applications de prototypage électronique. Le concepteur n'a plus qu'à développer des interfaces et programmer le macro-composant pour réaliser son application ! 117
Développement de systèmes embarqués en Télécommunication
118
Développement de systèmes embarqués en Télécommunication
Généralement, tout dispositif électronique et informatique autonome est qualifié de "système embarqué". Dans le domaine des Télécoms, on trouve à titre d’exemple, des "systèmes embarqués" dans les téléphones portables, les satellites et leurs équipements qui doivent être autonomes durant plusieurs années dans des conditions physiques particulières (température, expositiondirecte au rayonnement solaire...) et capables d'effectuer des mesures et de communiquer avec les stations terrestres.
Etude de cas: Lister (et/ou dessiner) les éléments d’un téléphone 119 portable et d’un satellite. Identifier leurs systèmes embarqués.
Développement de systèmes embarqués en Télécommunication
120
Logiciels embarqués
121
Logiciels embarqués Java Card • What is a Java Card? – SimpleAnswer: • Java + Card = Java Card !!
• Adoption of Java Platform for usage on Smart Cards A
smart card is a plastic card that contains an embedded integrated circuit (IC)
On retrouve les cartes à puce dans plusieurs domaines: • carte bancaire : Carte Bleue (France), MasterCard (USA) ; • carte d'assurance maladie : Vitale (France) ; • porte-monnaie électronique : Moneo (France) ; • carte étudiant ; • carte SIM. 122
Rappel :Architecture d'une Smart Card avec contact
• La carte est composée de 8 connecteurs selon la norme ISO 7816 représentée comme suit : VCC : tension d'alimentation de la carte fournie par le lecteur ; RST (Reset) ; CLK : horloge ;
GND (Ground) : masse ; VPP : tension de programmation fournie par le lecteur (inutilisé aujourd'hui) ; I/O : entrée/sortie des données ; RFU (Reserved for Future Use) : connecter d'autres composants 123
LOGICIELS EMBARQUÉS Java Card communication via physical contact
communication via radio frequency signal
124
Logiciels embarqués Java Card
125
Java/JavaCard Pourquoi le JavaCard dans les cartes à puces ? Langage de haut niveau orienté objet Write Once, Run Anywhere Plate-forme multi applicatives Partage de données entre applications Sécurité des données
126
JCVM
Card Exécutive
Java Card Virtual Machine JAVACARD
Architecture d’une JCVM ?
Off-Card
On-Card
Compilateur
Interpréteur
.class
Applet 1
Applet 2
Standard class libraries (API)
Virtual machine (Interpréteur) Native méthode
JCVM
CAP La virtual machine est totalement dépendante de la plateforme puisqu’elle permet 127 l’interprétation par le processeur des bytecodes.
Logiciels embarqués Java Card
128
Logiciels embarqués Java Card Echange de commandes avec le lecteur de carte à puce tel que défini dans l’ ISO 7816-4 La communication entre l’hôte et la carte est half-duplex. Elle se fait à l’aide de paquets appelés APDU (Application Protocol Data Units) en respectant le protocole de l’ISO 7816-4. Un APDU contient une commande ou une réponse. Le mode Maître/Esclave est utilisé. Ainsi la carte joue un rôle passif et attend une commande APDU à partir de l’hôte. Elle exécute l’instruction spécifiée dans la commande et retourne une réponse APDU.
129
Logiciels embarqués Java Card
130
Logiciels embarqués Java Card Développement d’une application Java Card sous Windows
JSR-000268 Java Smart Card I/O AP 131
Logiciels embarqués Java Card
132
LINUX EMBARQUE : LINUX POUR L ’EMBARQUE
133
LES SYSTEMES EMBARQUES ET LINUX
Pourquoi retrouve-t-on Linux dans l’embarqué ? Tout d’abord pour ses qualités qu’on lui reconnaît maintenant dans l’environnement plus standard du PC grand public : – Libre, disponible gratuitement au niveau source : pas de royalties à reverser. – Ouvert. – Différentes distributions proposées pour coller au mieux à un type d’application. – Stable et efficace. – Aide rapide en cas de problèmes par la communauté Internet des développeurs Linux. – Nombre de plus en plus important de logiciels disponibles. – Connectivité IP en standard. 134
LINUX EMBARQUE
Une version de Linux embarqué peut être spécialement configurée pour coller à une plateforme ou application précise : – Linux embarqué pour routeur IP. – Linux embarqué sur PDA. – Linux embarqué pour microcontrôleur sans MMU (Une unité de gestion mémoire (MMU pour memory management unit), parfois appelée unité de gestion de mémoire paginée (PMMU pour paged memory management unit), est un composant permettant de contrôler les accès qu'un processeur fait à la mémoire de l'ordinateur dans lequel il est placé.). – Linux embarqué sur processeur 80286 et inférieur. – ...
135
OUTILS POUR LINUX EMBARQUE
On utilise pour le développement sous Linux embarqué les outils traditionnels GNU : – (cross) compilateurs C/C++. C est préférable pour limiter la taille des exécutables. – IDE. – Debugger (GDB). – Simulateur.
136
LE CHOIX D ’UN PROCESSEUR POUR L ’EMBARQUE Besoin
Miniature
Taille RAM
<0,1 Mo
Taille ROM/FLASH Processeurs
Caractéristiques matérielles Exemples d’applications
Petit
Moyen
0,14 Mo 0,1-0,5 Mo 0,52 Mo DragonBall 68K Mcore ColdFire ARM MMU optionnelle
2-8 Mo
Caméra numérique PDA Téléphone
Haut de gamme 8-32 Mo
2-4 Mo 4-16 Mo FLASH FLASH MIPS Hitachi SH x86 PowerPC Ardoise Internet Carte unité centrale System on Chip (SoC) Routeur Décodeur Stockage en réseau Imprimante en réseau
PC embarqué 16-64 Mo
Embarqué haute disponibilité > x Mo
xx Mo
Go-To Pentium PowerPC
CompactPCI
Commutateur téléphonique Routeur haute performance Serveur central
Choix suivant puissance de calcul, taille mémoire... 137
Logiciels embarqués Linux Embarqué
Pourquoi retrouve-t-on Linux dans l’embarqué ?
138
Logiciels embarqués Linux Embarqué
139
Logiciels embarqués
Linux Embarqué
140
Logiciels embarqués Linux Embarqué
141
Logiciels embarqués Linux Embarqué
142
Logiciels embarqués Linux Embarqué
143
Logiciels embarqués Android •PDA et terminaux mobiles conçu par une startup rachetée par Google, et officiellement le 5 novembre 2007. types d'appareils possédant ce système
Android est un système d'exploitation open source utilisant le noyau Linux, pour smartphones, tablettes tactiles, Android, D'autres systemes d'exploitation existent, par exemple des téléviseurs, des radio-réveils ou des autoradios et même des voitures.
144
Logiciels embarqués Android
146
Logiciels embarqués Android
147
Logiciels embarqués
Android
148
Applicatifs temps réel En informatique, on parle d'un système temps réel lorsque ce système est capable de contrôler (ou piloter) un procédé physique à une vitesse adaptée à l'évolution du procédé contrôlé. Les systèmes informatiques temps réel se différencient des autres systèmes informatiques par la prise en compte de contraintes temporelles dont le respect est aussi important que l'exactitude du résultat, autrement dit le système ne doit pas simplement délivrer des résultats exacts, il doit les délivrer dans des délais imposés. 149
Applicatifs temps réel
Les systèmes informatiques temps réel sont aujourd'hui présents dans de nombreux secteurs d'activités : • dans l'industrie de production par exemple, au travers des systèmes de contrôle de procédé (usines, centrales nucléaires), dans l'aéronautique au travers des systèmes de pilotage embarqués (avions, satellites), •
dans le secteur de la nouvelle économie au travers du besoin, toujours croissant, du traitement et de l'acheminement de l'information (vidéo, données, pilotage à distance, réalité virtuelle, etc.).
Le développement de systèmes temps réel nécessite donc que chacun des éléments du système soit lui-même temps réel, c’est-à- dire permettre de prendre en compte des contraintes temporelles. Un système d'exploitation conçu pour prendre en compte ces contraintes est appelé système d'exploitation temps réel. 150
APPLICATIFS TEMPS RÉEL
151
APPLICATIFS TEMPS RÉEL
152
APPLICATIFS TEMPS RÉEL
153
APPLICATIFS TEMPS RÉEL
154
APPLICATIFS TEMPS RÉEL
155
APPLICATIFS TEMPS RÉEL
156
APPLICATIFS TEMPS RÉEL
157
APPLICATIFS TEMPS RÉEL
158
Références 1. 2. 3. 4. 5. 6.
Serge Mazen. « Introduction aux systèmes embarqués » ENSIL 3ème ANNEE MECATRONIQUE Jérémie Guiochet «Vers une conception orientée objet des systèmes embarqués » Support de Cours ENSEEIHT– 3ème année AII Université Toulouse 3, LAAS-CNRS Jean-Francois Lalande « Développement sous Android » - ENSI BOURGES November 2012 - Version 2 Samuel Tardieu « Systèmes temps-réel embarqués » École Nationale Supérieure des Télécommunications Java embarqué : Yves Bossu, C. Nicolas, J.-B. Blanchet et A. Proust Editeur : Eyrolles Linux embarquéAuteur(s) : Pierre Ficheux Editeur : Eyrolles
159