Académique Documents
Professionnel Documents
Culture Documents
SYSTÈMES EMBARQUÉS
0% 100%
1
Partie 1: Introduction systèmes embaqués
2
Pourquoi les systèmes embarqués
3
Exemple système embarqué
4
Qu’est ce qu’un système embarqué ?
C’est tout système numérique autre qu’un PC, ou station de travail ou serveur.
5
Qu’est ce qu’un système embarqué ?
Un système embarqué :
Est un système numérique.
Utilise généralement un processeur.
Exécute un logiciel dédié pour réaliser une fonctionnalité
précise.
Remplace souvent des composants électromécaniques.
N'a pas réellement de clavier standard (BP, clavier matriciel...).
L'affichage est limité (écran LCD …) ou n'existe pas du tout.
N'est pas un PC.
6
Caractéristiques et organisation
7
Contraintes de conception des systèmes
embarqués
Performance:
Les SE puissance de calcul MIPS (Million d’Instructions Par Seconde):
temps d’exécution
Fiabilité:
la fiabilité est l’aptitude d’un système à accomplir une fonction requise dans
des conditions données pour une période de temps donnée
Surface et encombrement:
GSM…
Consommation énergétique:
Autonomie des batteries (PDA, téléphone mobile…)
Sûreté:
aucun dommage (automobile, avionique…)
Coût et temps de développement:
faible coût
8
Contraintes de conception des SE temps de
mise sur le marché (Time To Market) TTM
9
Contraintes de conception des SE : Temps
Réel
10
Contraintes de conception des SE : Temps
Réel
11
Conception des systèmes embarqués
Spécification d’une
Contraintes de
application conception/réalisation
(cahier des charges)
Flot et Qualité de service
Surface
Outils de conception
Consommation
Sécurité de fonctionnement
Réalisation de Prix
…….
l’application
Cible matériel
Les ASICs : Application Specific Integrate Circuit
Les circuits reconfigurables :
• FPGA : Field Programmable Gate Array
Cibles mixte
Les SOCs(système sur puce) : L’intégration de plusieurs unités
matérielles et logicielles sur une même puce
13
Cible logiciel
14
Processeurs Généralistes
15
Les Microcontrôleurs
Un circuit intégré rassemblant dans un même boîtier un microprocesseur, plusieurs
types de mémoires et des périphériques (Entrées-Sorties).
16
Les Microcontrôleurs
Caractéristiques
Architecture simple, jeux d’instructions réduit
Basé sur des architectures de processeurs connus
Avantages
Très économique : pas besoin d’acheter des périphériques
Spécialisés
Simple d’utilisation
Inconvénients
Spécialisé: ne convient pas à tous les domaines d’application
17
Cible logiciel
Avantages
Flexibilité : il suffit de modifier le programme pour modifier
l’application
Simple à mettre en œuvre : grâce à la programmation de haut
niveau (langage C) (possibilité de grande abstraction par
rapport au matériel)
Temps et coût de conception faibles
Prix de reviens faible
Composants spécialisés, ex : DSP, microcontrôleur
18
Cible logiciel
Inconvénients
Faibles performance : temps d’exécution élevé
Consommation électrique importante
Le passage par un compilateur peut dégrader les performances
Complexité du langage machine et de l’assembleur
19
Partie 2: Rappel électronique numérique
20
Représentation des valeurs booléennes
• 0 : 0 volt = masse
• 1 : +5 volts = alimentation
Portes logique
a s
a s a s
1 0 1
1 0
symbole usuel symbole normalisé ANSI table de vérité
Notation : s a, s a
21
Représentation des valeurs booléennes
• 0 : 0 volt = masse
• 1 : +5 volts = alimentation
a s
a s a s
1 0 1
1 0
symbole usuel symbole normalisé ANSI table de vérité
Notation : s a, s a
22
Fonction ET
Un ET est vrai si ses deux entrées sont vraies.
a b s
a 0 0 0
a s s
& 0 1 0
b b
1 0 0
1 1 1
Notation : s a.b, s a b
Fonction OU
Un OU est faux si ses deux entrées sont fausses.
a a b s
a s s 0 0 0
b b 1
0 1 1
1 0 1
Notation : s a b, s a b 1 1 1 23
Fonction NON-ET ou NAND
Un NON-ET est un ET complémenté. Son résultat est faux si ses deux entrées sont
vraies.
a a b s
a s s 0 0 1
b &
b 0 1 1
1 0 1
Notation : s a.b, s a b 1 1 0
Fonction NON-OU ou NOR ou NI
Un NI est un OU complémenté. Son résultat est vrai si ses deux entrées sont
fausses.
a a b s
a s s 0 0 1
b b 1
0 1 0
1 0 0
Notation : s a b, s a b 1 1 0
24
Fonction OU-EXCLUSIF
Un OU-EXCLUSIF est vrai si ses deux entrées ont des valeurs différentes. Il
permet de « tester » si deux valeurs logiques sont différentes.
a a b s
a s s 0 0 0
b b 1
0 1 1
1 0 1
Notation : s a b, s ab (a b a.b a.b) 1 1 0
Fonction NI-EXCLUSIF
Un NI-EXCLUSIF est vrai si ses deux entrées ont des valeurs égales. Il permet de
« tester » si deux valeurs logiques sont égales.
a a b s
a s s 0 0 1
b b 1 0 1 0
1 0 0
Pas de notation particulière (a b a.b a.b) 1 1 1
25
Théorèmes de Boole
- a.0 0
- a.1 a Autres propriétés
Formules de De Morgan
- a b a.b
- a.b a b
26
Représentation des nombres
Utilisation d'une base quelconque et changement de base
Un nombre N en base B s'écrit :
NB = anan-1an-2 … a1a0 avec 0 ≤ ai ≤ B-1
27
Représentation des nombres
Utilisation d'une base quelconque et changement de base
Un nombre N en base B s'écrit :
NB = anan-1an-2 … a1a0 avec 0 ≤ ai ≤ B-1
28
Pour trouver la valeur décimale d'un nombre en base B :
N10=anBn + an-1Bn-1 + … + a2B2 + a1B1 + a0
Pour passer d'une base à une autre il est toujours possible de passer par la base 10
Pour passer du binaire à une base de type 2n il suffit de regrouper les bits par n de la
droite vers la gauche afin de retrouver chaque chiffre en base 2n.
29
Unités de stockage
• unité de base : le bit (0 ou 1)
• unité usuelle : l'octet (1 octet = 8 bits)
30
Multiplexeur et démultiplexeur
e3 0 1
• 2n entrées de donnée n entrées de contrôle 0
31
Multiplexeur et démultiplexeur
e3 0 1
• 2n entrées de donnée n entrées de contrôle 0
32
Démultiplexeur = rôle inverse du multiplexeur : choisir la sortie vers laquelle
transmettre l’entrée
s0
s1
e
s2 = e
1 s3
0
c1 c
0
33
Décodeur et encodeur
34
Encodeur : rôle inverse du décodeur
e0 0
• 2n entrées et n sorties e1 0
e2 0 s0 = 0
e3 0
• Une seule entrée est à 1 s1 = 1
e4 0
e5 0 s2 = 1
e6 1
• Les n bits en sortie codent le numéro de l’entrée
qui est à 1 e7 0
35
Grâce à la logique séquentielle, on peut réaliser un circuit de mémorisation et
Logiques Séquentielle
concevoir complètement un processeur.
36
Grâce à la logique séquentielle, on peut réaliser un circuit de mémorisation et
concevoir complètement un processeur.
37
L’oscillateur (ou horloge)
L'oscillateur est l'élément permettant l'introduction de la notion de temps dans les
circuits.
Il est symbolisé par :
Un oscillateur permet d’obtenir un signal carré ayant une fréquence bien précise,
constante au cours du temps et qui peut être élevée (plusieurs centaines de Mhz).
L’oscillateur le plus simple est une simple porte inverseur bouclant sur elle-même :
38
Les bascules
La bascule est l’élément fondamental de la logique séquentielle.
Elle possède 2 états (0 ou 1).
On peut lire l’état d’une bascule et on peut l’écrire (affecter l’état voulu).
v s’
e s
v s’
39
La fonction mémoire
Une bascule est un élément de mémorisation de 1 bit (ou point-mémoire).
L’entrée de contrôle joue le rôle de signal de lecture/écriture (noté r/w).
Un ensemble de bascules est utilisé pour réaliser un registre ou une mémoire.
Le registre
C’est un circuit capable de mémoriser 1 mot.
Les registres sont situés dans le processeur et constituent donc une mémoire locale
au processeur.
Lorsqu’on programme en assembleur, on accède directement aux registres du
processeur (certains registres nécessaires au fonctionnement ne sont pas accessibles
au programmeur).
Un registre de m bits est simplement constitué de m bascules.
40
Partie 3: Les microcontrôleurs STM32
41
STMicroelectronics
Among the world’s largest semiconductor companies
Serving over 100,000 customers across the globe
2018 revenues of $9.66B, with year-on-year growth of
15.8%
42
Global Presence
43
ST Addresses Four End Markets
Communications
Automotive Industrial Personal Electronics Equipment,
Computers & Peripherals
44
Product Family Focus
Portfolio delivering complementarity for target end markets
and synergies in R&D and manufacturing
Industrial
Discrete & ASICs based on
Power ST proprietary
Transistors technologies
Personal Electronics
45
Serving More Than 100,000 Customers
Top 10 Customers*
2018
Apple
Bosch Top
Cisco 10
Conti
HP
Huawei
Mobileye Globally
Samsung Managed
Seagate Accounts
Western Digital
Distribution &
*In alphabetical order Mass Market
46
Semi-conductor companies
47
HIGH-PERFORMANCE
48
MAINSTREAM
49
ULTRA-LOW-POWER
50
WIRELESS
51
HIGH-PERFORMANCE
52
MAINSTREAM
53
ULTRA-LOW-POWER
54
WIRELESS
55
STM32 Offer
Hardware Software
Development Development
Tools Tools
Configuration Tools
Evaluation boards
Development & Debugging
Debug and Programming Probes
Tools
+
Monitoring Tools
Ecosyste
m
Services
Embedded Software
Trainings / Support
Drivers Web / Communities / Social
RTOS Media
Stacks and Application Bricks Programming Services
Engineering Services
Cloud Services
56
STM32 Nucleo board
57
STM32 Nucleo key assets
Flexible prototyping.
Affordable STM32 boards sharing the same
association scheme.
Reduction of financial risks through easy HW/SW
tuning.
58
STM32 Nucleo expansion boards
Proximity
BLE 4.0 Stepper motor
NFC/RFID tag Ambient Light WiFi b/g/n
processor driver
(M24SR) sensor processor
(BlueNRG) (L6474)
(VL6180X)
X-NUCLEO-IDB04A1 X-NUCLEO-NFC01A1 X-NUCLEO-IHM01A1 X-NUCLEO-6180XA1 AMW006-A02
(by Ackme Networks)
60
Evaluation Board
61
STM32Cube - Embedded software
• What is it ?
• Full featured packages with drivers, USB, TCP/IP, Graphics,
File system and RTOS
• Set of common application programming interfaces, ensuring
high portability inside whole STM32 family
• Set of APIs directly based on STM32 peripheral registers
• Set of initialization APIs functionally similar to the SPL block STM32Cube
peripheral initialization functions
STM32Cub STM32Cub
e HAL e LL APIs
• Target Audience
• Hardware Abstraction Layer (HAL) APIs: embedded system developers with a strong
structured background. New customers looking for a fast way to evaluate STM32 and easy
portability
• Low-Layer (LL) APIs: low level embedded system developers, typically coming from an 8-bit
background, used to assembly or C with little abstraction. Stronger focus on customers
migrating from the SPL environment.
62
Toolchain overview
Projects IDE Observation STM32
IAR
STM32CubeMX
Keil
STLink probe driver
64
Un microprocesseur est constitué par un assemblage de circuits exécutant les
fonctions de l’unité centrale de traitement d’un micro-ordinateur.
En anglais : CPU = central processing unit.
Les microprocesseurs
Définition :
Un microprocesseur est un circuit logique capable, après identification d’une
séquence d’instructions, d’effectuer des traitements de l’information.
65
Un microprocesseur est constitué par un assemblage de circuits exécutant les
fonctions de l’unité centrale de traitement d’un micro-ordinateur.
En anglais : CPU = central processing unit.
Définition :
Un microprocesseur est un circuit logique capable, après identification d’une
séquence d’instructions, d’effectuer des traitements de l’information.
66
Un microprocesseur est un circuit contenant les unités suivantes :
UAL
Mémoire interne
E/S
et registres
UC
67
Bus internes
Définition :
Un bus est un ensemble de fils qui transportent (en parallèle ou en série) une
information d’un composant à l’autre.
68
UAL
• Circuits nécessaires pour les opérations arithmétiques et logiques
69
Mémoire et registres
70
Entrées / sorties
• But : échanger des informations avec l’extérieur (nécessaire au fonctionnement du
CPU)
Bus de donnée
Unité d’entrées/
sorties (E/S) Bus d’adresse
Bus de commande
• L’unité d’E/S assure les liaisons entre bus internes et bus externes
• Les bus d’adresse est unidirectionnel
71
Unité de commande
• « Chef d’orchestre » qui pilote et synchronise les unités du processeur
• Elle est pilotée par une horloge et permet de cadencer l’exécution des instructions
du programme :
• mise en service des circuits concernés (verrous)
• activation des communications (verrous + cellules de commutation)
Définition :
Un verrou est un circuit à n sorties, n entrées de données et une entrée de
contrôle. L’entrée de contrôle autorise ou interdit le transfert des données vers
les sorties.
72
Principe général de fonctionnement du microprocesseur
Pour exécuter un programme, le microprocesseur effectue cycliquement :
• lecture d’un code d’instruction en mémoire (fetch)
• reconnaissance de ce code, ou décodage (decode)
• exécution d’un ordre élémentaire (execute)
• positionnement sur le code de l’instruction suivante du programme
En plus de l’accumulateur il faut d’autres registres pour le fonctionnement du
microprocesseur :
• compteur ordinal (pointe sur l’instruction suivante immédiate)
• registre d’instruction
• registre d’état
• registre de sommet de pile (adresse de retour pour les sous-programmes)
• registres à usage plus général (adresse, donnée, buffer, …)
73
Séquencement des instructions
Une instruction est découpée en plusieurs micro-opérations / micro-commandes
1. Lire l’instruction
2. Calculer l’adresse de la prochaine instruction
3. Décoder l’opération
4. Calculer les adresses des opérandes si nécessaire
5. Lire les opérandes éventuelles depuis la mémoire
6. Exécuter l’instruction
7. Calculer l’adresse du résultat
8. Ranger le résultat en mémoire
74
Instruction
Définition :
Une instruction est un ordre élémentaire exécutable par un microprocesseur donné
(en un certain nombre de cycle d’horloge).
Définition :
Ces instructions sont spécifique à un microprocesseur et leur nombre est limité.
Leur ensemble constitue le jeu d’instruction du microprocesseur.
75
Les instructions peuvent affecter ou utiliser le contenu d’un ou plusieurs mot-
mémoire, un ou plusieurs registres, ou aucun d’entre-eux.
Définition :
Un opérande est un élément de la mémoire concerné par l’exécution d’une
instruction donnée.
76
La mémoire centrale est un ensemble de registres dotés d'une structure d'accès
permettant l'échange entre les registres et les organes extérieurs.
• La capacité d'une mémoire est le nombre de bits que l'on peut mémoriser dans
cette mémoire. Les mémoires
• Le temps d'accès mémoire est le délai qui s'écoule entre une requête de lecture et
la disponibilité de l'information correspondante.
• On appelle emplacement accessible Ei (ou zone de stockage accessible)
l'emplacement unique sur lequel une opération de lecture ou d'écriture est possible
à l'instant t.
77
La mémoire centrale est un ensemble de registres dotés d'une structure d'accès
permettant l'échange entre les registres et les organes extérieurs.
• La capacité d'une mémoire est le nombre de bits que l'on peut mémoriser dans
cette mémoire.
• Le temps d'accès mémoire est le délai qui s'écoule entre une requête de lecture et
la disponibilité de l'information correspondante.
• On appelle emplacement accessible Ei (ou zone de stockage accessible)
l'emplacement unique sur lequel une opération de lecture ou d'écriture est possible
à l'instant t.
78
Types de mémoire
79
Mémoires séquentielles (LIFO)
Définition :
Une mémoire séquentielle est une mémoire telle que si l'accès à l'instant t à porté
sur l'emplacement Ei alors l'accès à l'instant t+1 porte obligatoirement sur
l'emplacement Ei+1 ou Ei-1 (notion d'accès séquentiel).
Définition :
Une pile est une mémoire séquentielle dont les déplacements (Ei Ei+1 ou Ei Ei-
1) sont liés respectivement à la commande d'écriture ou de lecture.
80
Application au microprocesseur :
Le microprocesseur utilise une pile pour mémoriser les adresses de retour lors
d’appels à des sous-programmes ou à des routines d’interruption.
vide
sommet de pile
occupé
fond de pile
81
Mémoires adressables
Définition :
Une mémoire adressable (appelée également à accès direct, à accès aléatoire -
RAM, ou à accès sélectif) est un ensemble de zones de stockage complété par un
mécanisme de sélection capable d’établir l’accès sur chacune d’elles en un temps
indépendant de la position.
82
ROM / RAM :
• ROM (Read Only Memory) ou MEM (Mémoire Morte) : mémoire à lecture seule
83
Familles et sous-familles de mémoires adressables :
Principales mémoires
adressables
84
Espace d'adressage :
• la taille des mots binaires représentant les adresses limite le nombre de mots
auxquels le microprocesseur peut accéder. Si les adresses sont codées sur m bits
alors "l'espace d'adressage" est de 2m mots-mémoire
• dans cet espace d'adressage il faut prévoir non seulement l'accès à la RAM, mais
aussi à la ROM et aux E/S
• exemple : espace d'adressage d'une RAM de M mots, d'une ROM de N mots et
d'un espace mémoire réservé aux entrées sorties
0 mot 0
1 mot 1 RAM
... ...
M-1 mot M-1
M mot M
... ...
adresses ... ... ROM
M+N-1 mot M+N-1
M+N ...
... ...
2m-1 ... E/S
85
• il existe deux méthodes principales pour désigner une adresse :
• linéaire : mots numérotés de 0 à 2m-1
• segmentée : adresse = < n° segment , déplacement >
• pour réaliser cet espace d'adressage il est nécessaire d'utiliser tout un ensemble de
circuits déjà étudiés :
• décodeurs
• multiplexeurs
• démultiplexeurs
• ...
86
Aspect matériel :
• le temps d’accès à ces mémoires varie de quelques nanosecondes à quelques
dizaines de nanosecondes
87
RAM dynamique et RAM statique
Définition :
Une RAM est dite statique (SRAM) si l’information est conservée en l’absence de
signaux de commandes.
Définition :
Une RAM est dite dynamique (DRAM) si l’information ne peut être conservée que
par l’application répétée de signaux de commande (rafraîchissement de la mémoire)
• la cellule élémentaire d’une DRAM est constituée d’un seul transistor MOS jouant
le rôle de condensateur : la donnée est stockée sous forme de charge dans une
capacité. Mais le courant de fuite entraîne la nécessité de recharger le condensateur :
rafraîchissement (toutes les 2-4 ms)
88
Avantages des SRAM Avantages des DRAM
très rapide très dense
faible consommation moins chère
moins sensible aux bruits et radiations capacités élevées
Dynamique ou statique ?
• Mémoires caches : SRAM
• Mémoires centrales : DRAM
SDRAM ?
• Synchronous DRAM
89
• barette DIMM 64 bits (Double Inline Memory Module)
détrompeurs
90