Académique Documents
Professionnel Documents
Culture Documents
Fatima.lakrami
Fatima.lakrami@gmail.com
1
Plan de travail
1 Partie théorique
Introduction
2 Partie pratique
Le langage VHDL
TD/TP 2
2
Chapitre 1
3
Systèmes embarqués
Histoire Des Systèmes Embarqués
programme)
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 : Phase-
Locked 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
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?
• 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
Architecture du microcontrôleur PIC 18F4455 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
mémoire séparée
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) :
17
Partie 1
18
1. Définition
2. Domaines d'applications
3. Histoire des systèmes embarqués
4. Architecture des systèmes embarqués
5. Systèmes électroniques et informatiques embarqués
6. Développement de systèmes embarqués en
Télécommunication
7. Logiciels embarqués
- Java Embarqué
- Linux Embarqué
- Androïd
8. 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
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:
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
36
Architecture des
systèmes embarqués
37
Architecture des systèmes embarqués
Memory Software
Sensors
Communicati A/D
Processor(s)
on Network µc, ASIC,FPGA,DSP D/A
Actuators
Other Hardware Human Interface
Auxiliary Systems (power, package,…)
38
Architecture des SE
39
A/D
40
D/A
41
Unité de
Unité d’acquisition communication
Capteurs
42
Actuators
43
Human interface
44
Technologies de communication
45
Caractéristiques de la mémoire
46
Les processeurs
48
Centralisée
49
50
Exemple: application
51
Souris
52
L'énergie éolienne
53
Systèmes électroniques et
informatiques embarqués
54
Introduction
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 :
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
m15
m14
m13
m12
A3 m11
m10 =
A2 m9
m8
A1 m7
m6
A0 m5
m4
m3
m2
m1
m0
65
D7 D6 D5 D4 D3 D2 D1 D0
Exemple :Décodeur
A2 A1 A0
Décodeur 3:8 F1
F7 # A 2 A 1 A 0 F7 F6 F5 F4 F3 F2 F1 F0
F6 0 0 0 0 0 0 0 0 0 0 0 1 F2
1 0 0 1 0 0 0 0 0 0 1 0
F5
A2 2 0 1 0 0 0 0 0 0 1 0 0 F3
A1
F4 3 0 1 1 0 0 0 0 1 0 0 0
F3 4 1 0 0 0 0 0 1 0 0 0 0 F4
A0
F2 5 1 0 1 0 0 1 0 0 0 0 0
F1
6 1 1 0 0 1 0 0 0 0 0 0 F5
7 1 1 1 1 0 0 0 0 0 0 0
F0
F6
F0 = m0 = A2’A1’A0’ 66
F1 = m1 = A2’A1’A0 F7
F2 = m2 = A2’A1A0’
Exemple
• Donner les fonctions logiques réalisées par cette mémoire
PROM.
décodeur 4:16
m15
m14
m13
m12
A3 m11
m10
A2 m9
m8
A1 m7
m6
A0 m5
m4
m3
m2
m1
m0
D7 D6 D5 D4 D3 D2 D1 D0
67
• Donner les fonctions logiques réalisées par cette mémoire
PROM.
décodeur 4:16
11 0 0 0 0
3 7 15 11 D7 D6 D5 D4 D3 D2 D1 D0
68
10 0 0 0 0
2 6 14 10
Multiplexeur
Le multiplexeur permet également de coder une fonction combinatoire:
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)
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
73
Processeurs
Circuit programmables
75
Processeurs
LES CIRCUITS PROGRAMMABLES
PAL: Programmable Array Logic Réseau Logique Programmable
77
LES CIRCUITS LOGIQUES PROGRAMMABLES
EPLD
EPLD: Erasable Programmable Logic Device Circuit Logique reprogrammable
de grande capacité
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
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
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
99
Programmation des circuit électroniques
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
Motorol
Intel a
FPG DSP
A
•ASIP = Application Specific Instruction set Processor
•ASIC = Application Specific Integrated Circuit
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
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.
107
Exemples données dans ce cours
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
110
Systèmes électroniques et informatiques
embarqués
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
•XILINX
• ACTEL
• ALTERA
• LATTICE VANTIS
• CYPRESS
• AMD
114
Systèmes électroniques et informatiques
embarqués
http://www.arduino.cc/ 116
Systèmes électroniques et informatiques
embarqués
Arduino en quelques chiffres :
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
Etude de cas:
120
Logiciels embarqués
121
Logiciels embarqués
Java Card
• What is a Java Card?
– SimpleAnswer:
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
124
Logiciels embarqués
Java Card
125
Java/JavaCard
126
JCVM Card
Exécutive
Applet 1 Applet 2
Standard class
Java Card Virtual Machine libraries (API)
JAVACARD
Architecture d’une JCVM ? Native méthode
Off-Card On-Card
Compilateur Interpréteur
.class
JCVM
CAP
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
131
Logiciels embarqués
Java Card
132
LINUX EMBARQUE :
LINUX POUR L ’EMBARQUE
133
LES SYSTEMES EMBARQUES ET LINUX
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
136
LE CHOIX D ’UN PROCESSEUR POUR
L ’EMBARQUE
137
Logiciels embarqués
Linux 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
144
Logiciels embarqués
Android
146
Logiciels embarqués
Android
147
Logiciels embarqués
Android
148
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
159