Vous êtes sur la page 1sur 158

Systèmes Embarqués

Fatima.lakrami
Fatima.lakrami@gmail.com
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 : 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

•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?
• 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

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. 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

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, électro-
mé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 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

• Software: Firmwares (Logiciels spécifiques - en


partie ou entièrement- programmés dans le matériel)
ou encore des OS embarqués (Linux embarqué par exemple).
• A/D, D/A
• Capteur
• Actionneur
• Communication at network
• Human interface
• Mémoire: Définitions

39
A/D

40
D/A

41
Unité de
Unité d’acquisition communication
Capteurs

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 62

NL1 impose un NL1 en sortie :


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

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

• Un décodeur active une sortie unique qui correspond


à la valeur du code binaire en entrée. F0

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

D7 = m13 + m9 = A3A2A1’A0 + m15


m14
A3A2’A1’A0 m13
m12
D2 = m12 + m8 + m4 + m0 = A1’A0’ A3 m11
m10
A3A2 D2 A2 m9
m8
A1A0 00 01 11 10
A1 m7
m6
A0 m5
00 1 1 1 1 m4
0 4 12 8 m3
m2
m1
01 0 0 0 0 m0
1 5 13 9

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:

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. Étapes de conception et fabrication


2. Profile du client
3. Identification des besoins du client
4. Contraintes de fabrication ou d’utilisation
5. Démarche systémique
6. 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
Les processeurs
processeurs généralistes
spécialisés

Motorol
Intel a
FPG DSP
A
•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) Carte mini ITX EPIA M-series Layout  Carte réseau


2) IP2022  Carte Réseau
3) µc MSP 430  Microcontroleur
4) ARM7  Processeur
5) DSP TMS 320C4X
6) FPGA
7) RaspberryPi
8) 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


portable et d’un satellite. Identifier leurs systèmes embarqués. 119
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
Applet 1 Applet 2

Standard class
Java Card Virtual Machine libraries (API)

Virtual machine (Interpréteur)

JAVACARD
Architecture d’une JCVM ? Native méthode

Off-Card On-Card

Compilateur Interpréteur

.class
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 Petit Moyen Haut de PC Embarqué haute


gamme embarqué disponibilité
Taille RAM <0,1 Mo 0,1- 2-8 Mo 8-32 Mo 16-64 Mo > x Mo
4 Mo
Taille ROM/FLASH 0,1-0,5 Mo 0,5- 2-4 Mo 4-16 Mo xx Mo Go-To
2 Mo FLASH FLASH
Processeurs DragonBall 68K MIPS Pentium
Mcore Hitachi SH PowerPC
ColdFire x86
ARM PowerPC
Caractéristiques MMU optionnelle Ardoise Internet CompactPCI
matérielles Carte unité centrale
System on Chip (SoC)
Exemples Caméra numérique Routeur Commutateur téléphonique
d’applications PDA Décodeur Routeur haute performance
Téléphone Stockage en réseau Serveur central
Imprimante en réseau

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. Serge Mazen. « Introduction aux systèmes embarqués » ENSIL


3ème ANNEE MECATRONIQUE
2. 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
3. Jean-Francois Lalande « Développement sous Android » - ENSI
BOURGES November 2012 - Version 2
4. Samuel Tardieu « Systèmes temps-réel embarqués » École Nationale
Supérieure des Télécommunications
5. Java embarqué : Yves Bossu, C. Nicolas, J.-B. Blanchet et A. Proust
Editeur : Eyrolles
6. Linux embarquéAuteur(s) : Pierre Ficheux Editeur : Eyrolles

159

Vous aimerez peut-être aussi