Embedded Systems
Embedded Systems
HM
Les systèmes embarqués
LA
Houssem-eddine LAHMER
m
se
us
Ho
ER
1 Mise en situation 7 ALU et Exécution d’Instructions
Histoire des calculateurs et
HM
2
systèmes embarqués 8 Registres
Un peu d’histoire! Mémoire et Types
LA
3 Les systèmes embarqués! Bascule D
4 Fonctionnalités et Composants Registre
5 Microprocesseur/Microcontrôleur Endiannes
Microprocesseur m Harvard VS Von Neumann
se
Microcontroleur
Vue matérielle 9 Péréphériques
us
ER
10 Protocoles de Communication Table des vecteurs
Exemple simple d’exécution
HM
11 ARM et STM32
12 Micro-architecture et Pipeline 16 STM32 : Introduction et
d’un ARM7 Composants
LA
13 Horloge Processeur Introduction aux STM32
14 Conversion
GPIO (General Purpose
Analogique-Numérique
Input/Output)
15 Les interrptions
Cycle d’interruption
m Timers
se
Interruptions
Contrôleur d’interruptions
us
ER
HM
LA
m
se
us
Ho
ER
HM
LA
m
se
us
Ho
ER
HM
Contexte historique et origine des premiers dispositifs de calcul.
LA
Premières machines à calculer
Évolution jusqu’aux premiers ordinateurs.
m
se
us
Ho
ER
Description :
HM
L’abaque est un outil de calcul simple
utilisé dès l’Antiquité pour effectuer
des opérations arithmétiques.
LA
Intérêt :
m Il constitue l’une des premières
se
tentatives d’automatisation dans le
us
domaine du calcul.
Ho
ER
Description :
HM
La machine de Pascal est une des
premières machines mécaniques
conçues pour réaliser des opérations
LA
arithmétiques.
m Intérêt :
se
Elle marque une étape essentielle
dans l’évolution des dispositifs de
us
calcul automatisé.
Ho
ER
Description :
HM
Le métier Jacquard est une machine
à tisser innovante qui utilise des
cartes perforées pour programmer des
LA
motifs complexes.
m Intérêt :
se
Il a révolutionné l’industrie textile et
a inspiré le développement des
us
le concept de programmation.
ER
Description :
HM
ordinateurs électroniques. Conçu en
1945, il pesait environ 30 tonnes et
était destiné à réaliser des calculs
LA
complexes.
m Intérêt :
se
Sa conception a ouvert la voie à
us
l’informatique moderne en
démontrant les possibilités du
Ho
ER
Conçu pour les missions lunaires,
l’AGC est un ordinateur embarqué
HM
qui, en 1965, ne pesait que 4 kg,
offrant une puissance de calcul
surprenante pour sa taille.
LA
Intérêt :
m Sa miniaturisation et son efficacité
se
ont révolutionné le domaine des
systèmes embarqués, préparant le
us
ER
En 1971, l’Intel 4004 inaugure l’ère
du microprocesseur. Conçu pour la
HM
calculatrice Busicom 141-PF, il
intègre la logique informatique dans
un format miniaturisé.
LA
Intérêt :
m La réduction de taille et le coût de
se
fabrication de cette puce ont permis
us
Description :
ER
Lancé en 1972, l’Intel 8008 est une
puce 8 bits qui suit le 4004. Cette
HM
avancée a considérablement amélioré
la puissance de calcul et a permis la
création des premiers
LA
micro-ordinateurs.
m Intérêt :
se
Le 8008 ouvre la voie à l’informatique
us
ER
Héritage historique : De l’abaque antique aux premières machines
HM
mécaniques, l’humain a toujours cherché à automatiser le calcul.
Naissance de l’informatique embarquée : L’Intel 4004 marque
LA
l’émergence des microprocesseurs.
Démocratisation : L’avènement des microcontrôleurs à bas coût a
m
permis d’intégrer l’informatique dans de nombreux appareils.
Optimisation : Ces systèmes offrent efficacité énergétique,
se
maintenance à distance et fiabilité accrue.
us
Ho
ER
Système embarqué =
HM
Une intégration d’électronique et d’informatique, issue de l’évolution des
microprocesseurs vers les microcontrôleurs, composée de :
Un calculateur spécialisé (microprocesseur ou microcontrôleur)
LA
Un logiciel dédié optimisé pour des tâches spécifiques
Des interfaces E/S facilitant l’interaction avec le monde physique
m
Des contraintes strictes :
se
Temps réel
us
Consommation minimale
Encombrement réduit
Ho
ER
HM
LA
m
se
us
Ho
ER
"Depuis l’abaque antique jusqu’à
HM
l’ère des microcontrôleurs, notre
LA
quête de contrôle sur le monde
m
physique a donné naissance à des
se
systèmes essentiels pour notre
us
Ho
avenir."
Houssem-eddine LAHMER Les systèmes embarqués 17 / 99
Fonctionnalités d’un système embarqué
ER
HM
Traitement de données
Stockage de données
LA
Interaction avec le monde extérieur
Acquisition (capteurs, ADC)
m
Actions (moteurs, LED)
Communication (I2C, SPI, CAN, Ethernet, WiFi, etc.)
se
us
Ho
ER
HM
LA
m
se
us
Ho
ER
HM
LA
m
se
us
Ho
ER
Processeur/Microcontrôleur/SoC (Traitement)
HM
Stockage
Volatile : RAM, cache, registres
LA
Non volatile : ROM, PROM, EPROM, EEPROM, Flash
Périphériques d’interaction
Communication : I2C, SPI, CAN, Ethernet, WiFi, ZigBee, LoRaWAN
m
Acquisition : Capteurs, ADC, GPIO
se
Sortie : DAC, LED, pilotage de moteurs
Interconnexion via bus (processeur, mémoire, périphériques)
us
Ho
ER
mémoire.
décode les instructions
HM
fait des calculs sur des données en internes
écrit des données en mémoire
LA
m
se
us
Ho
ER
un cœur de processeur
des mémoires (RAM/ROM)
HM
des périphériques (entrée/sorties, timers. . . )
LA
m
se
us
Ho
ER
HM
LA
m
se
us
Ho
ER
GPIO (General-Purpose UART (Universal Asynchronous
Input/Output) Receiver Transmitter)
HM
Patte (pin) d’un circuit intégré Périphérique gérant la
ou connecteur d’une carte communication série.
électronique.
LA
Transfert des bits d’un mot sur
Peut être configuré en entrée ou un seul fil, les uns après les
en sortie numérique. autres.
Permet de contrôler les
m Mode asynchrone : l’horloge
se
entrées-sorties. n’est pas transmise ; elle est
reconstituée par le récepteur en
us
détectant le début de la
Ho
transmission et en utilisant le
débit binaire configuré.
ER
Adresse : Localisation de la donnée
Données : Transfert entre CPU et mémoire
HM
LA
m
se
us
Ho
ER
HM
Un bit : unité minimale (2 états possibles : 0 ou 1)
LA
Les données sont des séquences finies de bits
Exemples : 4 bits → 0110 ; 8 bits → 11010011
m
se
us
Ho
ER
HM
Une séquence de N bits peut représenter jusqu’à 2N éléments
Exemples d’interprétation :
LA
1001 : Nombre 9 (base 2)
000010000000 : Peut représenter "Mai"
m
Une séquence de bits = ce que vous décidez d’en faire
se
us
Ho
ER
HM
Une séquence de N bits peut être lue comme un nombre en base 2
LA
Attention : la valeur brute n’est pas toujours un nombre (ex.
000010000000 peut signifier "Mai")
Il faut indiquer à l’ordinateur comment interpréter les bits
m
se
us
Ho
ER
HM
Binaire : b7 b6 . . . b0 interprété en base 2
LA
Complément à 2 : pour représenter les nombres négatifs
ASCII : codage des symboles (ex. %, A, 7)
[Link]
m
se
us
Ho
ER
HM
Un octet = 8 bits (granularité usuelle)
LA
L’écriture en base 16 est plus pratique (symboles : 0-9, A-F)
m
se
us
Ho
Définition
ER
Circuit combinatoire numérique
Effectue opérations arithmétiques & logiques
HM
Manipule des entiers binaires (32 bits sur Cortex-M)
LA
m
se
us
Ho
ER
HM
LA
m
se
us
ER
HM
LA
m
se
us
ER
HM
Décomposition binaire
LA
Opcode ADD : 0100 0101
Registres : R0=001, R1=010
m
Résultat : R2=011 (si a=1, b=2)
se
us
Ho
ER
N (Negative) Résultat < 0
C (Carry) Dépassement
HM
V (Overflow) Débordement signé
LA
m
se
us
Ho
Mémoire volatile
ER
DRAM
SRAM
HM
Mémoire non volatile
ROM
LA
EEPROM
Flash (Nor)
m
se
us
Ho
ER
Type Volatilité Utilisation typique Embarqué
SRAM Volatile Cache/Mémoire rapide ✓(mémoire principale)
HM
DRAM Volatile Mémoire système - (trop gourmande)
Flash NOR Non-volatile Stockage firmware ✓(exécution XIP)
EEPROM Non-volatile Paramètres système ✓(mises à jour rares)
LA
ROM Non-volatile Firmware fixe ✓(coût minimal)
ER
D flip-flop (dff, registre, etc.)
HM
LA
m
Fonctionnement :
se
Au front montant de l’horloge (clk passant de 0 à 1) : la valeur de D
us
ER
HM
D clk Q Opération
0 ↑ 0 D est copié sur Q (échantillonnage)
LA
1 ↑ 1 D est copié sur Q (échantillonnage)
× 0 Q Q conserve sa valeur (mémorisation)
× 1 Q Q conserve sa valeur (mémorisation)
× ↓ Q m Q conserve sa valeur (mémorisation)
se
us
Ho
ER
Un registre est un ensemble de flip-flops utilisés en parallèle.
Exemple : Registre 4 bits
HM
LA
m
se
Fonctionnement : L’horloge (clk) déclenche simultanément
us
ER
Endianness
HM
Supposons que nous souhaitions
stocker une variable 32 bits (4
LA
octets).
Il est logique de les stocker dans
des emplacements mémoirem
contigus.
se
Mais où placer le bit le plus
us
significatif (MSB) ?
Ho
ER
HM
LA
m
se
« D » fait référence au mot de données 32 bits, et les indices en subscript
indiquent les bits individuels, du bit le plus significatif (D31) au bit le moins
us
significatif (D0).
Ho
ER
HM
Deux architectures de mémoire existent :
LA
L’architecture Harvard
L’architecture Von Neumann
m
se
us
Ho
ER
Architecture Von Neumann :
La même mémoire et le même bus servent à stocker les instructions et
HM
les données.
L’accès simultané à la mémoire de programme et à la mémoire de
données n’est pas possible.
LA
Cette architecture est sujette aux goulets d’étranglement, affectant
ainsi les performances du système.
m
se
us
Ho
ER
Les instructions et les données sont stockées dans des unités mémoire
séparées, reliées par des bus différents.
HM
Il existe au moins deux espaces d’adressage mémoire distincts.
Possibilité d’exécuter un programme et d’accéder aux données de
LA
manière indépendante et simultanée.
m
se
us
Ho
ER
Utilise la même adresse mémoire Utilise des adresses mémoire
pour les instructions et les séparées pour les instructions et
les données.
HM
données.
Le processeur nécessite deux Le processeur nécessite un seul
cycles d’horloge pour exécuter cycle d’horloge pour compléter
LA
une instruction. une instruction.
ER
HM
LA
m
se
us
Ho
ER
HM
LA
m
se
C’est quoi un GPIO?
us
ER
HM
LA
8 ports (A à H)
m
se
Jusqu’à 16 pins par port
us
Mais attention :
Ho
Disponibilité limitée!
Modèle de circuit
Fonctions système
ER
HM
Entrée Sortie
LA
m
Alternatif Analogique
se
us
Ho
ER
HM
Mode Utilisation typique Caractéristiques
Entrée Lire bouton/capteur Pull-up/down configurables
Sortie Piloter LED/relais Vitesse configurable
LA
Alternatif Communication (UART, SPI) Dépend du périphérique
Analogique Capteur analogique Convertisseur ADC/DAC
Attention m
se
Un pin ne peut pas être dans deux modes en même temps!
us
Ho
ER
HM
LA
PA5 : LED (sortie)
m
se
PC13 : Bouton (entrée)
us
Programme :
Ho
ER
HM
LA
m
Compte le temps comme un chronomètre
se
Déclenche des actions automatiquement
Génère des signaux précis
us
Ho
Analogie
Comme un minuteur de cuisine programmable
ER
HM
LA
m
Prédiviseur : Adapte la vitesse (ex: /16)
se
Compteur : Valeur qui augmente à chaque tick
us
ER
Paramètres clés
HM
V
τ T : Période (ARR)
τ : Temps actif (CCR)
LA
Rapport cyclique = τ /T
t
T m Applications
se
- Contrôle de moteur -
Gradation LED - Générateur
us
son
Ho
ER
Mode Description Utilisation
HM
Compteur Incrémente à chaque tick Mesure temps/délais
PWM Génère signal modulé Contrôle moteur/LED
Input Capture Mesure durée d’impulsion Encodeur rotatif
Output Compare Déclenchement périodique Pilote périphériques
LA
Bon à savoir
m
Jusqu’à 17 timers sur certains microcontrôleurs
se
Résolution jusqu’à 32 bits
us
ER
HM
Les 3 éléments essentiels
Un langage commun (protocole)
Un support (fils, radio...)
LA
Des règles de dialogue (qui parle
quand ?)
m
se
Canal
us
Émetteur Récepteur
Ho
ER
HM
Parallèle
Autoroute à 8 voies
Rapide mais encombrant
LA
Idéal courtes distances
Série
m Route à 1 voie
se
Plus lent mais flexible
Longues distances
us
Ho
ER
HM
UART SPI I2C
Simple point-à-point Haute vitesse Bus multi-
LA
périphériques
2 fils + GND 4 fils 2 fils
Asynchrone m
Synchrone Synchrone
se
us
Ho
ER
HM
LA
Universal Asynchronous Receiver-Transmitter
Protocole série asynchrone (pas de signal d’horloge)
m
Communication full-duplex (émission/réception simultanées)
se
Débit standard : 9600 à 115200 bauds
us
Schéma d’interconnexion
Ho
TX (Transmit) → RX (Receive)
RX ← TX (Transmit)
Masse commune (GND)
Houssem-eddine LAHMER Les systèmes embarqués 61 / 99
UART : Configuration type
ER
HM
LA
m
se
Configuration type
us
Pas de parité
1 bit de stop
Houssem-eddine LAHMER Les systèmes embarqués 62 / 99
SPI : La formule 1 des bus
ER
Vitesse jusqu’à 10+ MHz Utilise 4 fils :
HM
Communication full-duplex MOSI (Master Out Slave In)
MISO (Master In Slave Out)
SCK (Serial Clock)
LA
SS (Slave Select)
m
se
us
Ho
ER
HM
Fiche d’identité
Fondation : 1990
LA
Propriétaire : SoftBank (2016)
Spécialité : Cœurs RISC 32 bits
m
se
us
Philosophie de conception
Performance/énergie optimisée
Ho
Architecture modulaire
Licence de propriété intellectuelle (IP)
Houssem-eddine LAHMER Les systèmes embarqués 64 / 99
Modèle économique : ARM vs Fabricants
ER
Rôle d’ARM
Design de cores CPU
HM
Licence d’IP aux fabricants
Pas de production physique
LA
Exemple concret
ARM : Cortex-M4
STMicro : STM32F4
m
se
NXP : LPC4000
us
Ho
Avantage clé
Standardisation + personnalisation
ER
Lecture simultanée sur 2 registres
HM
Écriture sur 1 registre/cycle
Accès mémoire 32 bits :
Adresse : 32 bits
LA
Données : 32 bits bidirectionnel
m Particularité ARM
Registre r15 = PC (Program Counter)
se
us
Ho
Caractéristiques clés
Houssem-eddine LAHMER Les systèmes embarqués 66 / 99
Pipeline à 3 étages
ER
HM
LA
m
se
Les trois étapes clés Avantages
us
ER
Principe de base
La PWM (Pulse Width Modulation) est une technique qui contrôle la
HM
puissance délivrée à une charge en modulant la durée d’activation (temps
ON) d’un signal périodique par rapport à sa période totale.
LA
Rapport Cyclique
TON
m
Rapport cyclique =
T
× 100%
se
Où TON est le temps pendant lequel le signal est actif, et T la période
complète du signal.
us
Ho
Avantages de la PWM
Contrôle précis de la puissance
Réduction des pertes énergétiques
Houssem-eddine LAHMER Les systèmes embarqués 68 / 99
PWM
ER
HM
LA
m
se
us
Ho
ER
HM
Applications courantes
LA
Contrôle de la vitesse des moteurs
Gradation de l’intensité lumineuse des LED
Positionnement précis des servomoteurs
m
se
us
Ho
ER
Configuration minimale
HM
IN1/IN2 : Direction
EN A/B : PWM vitesse
LA
Alim séparée moteur
Astuce STM32 m
se
Utiliser les timers matériels :
TIM1/2/3/4
us
ER
Analogie musicale
Comme un métronome
HM
pour musicien
Donne le rythme des
LA
opérations
1 cycle = 1 "temps"
m élémentaire
se
Exemple concret
us
Microcontrôleur à 16 MHz :
16 millions de cycles par seconde
Ho
ER
HM
Arduino Uno (16 MHz) STM32 (72 MHz) Raspberry Pi (1.5 GHz)
LA
Équilibre important
↑ Fréquence ⇒ ↑ Performance
m
↑ Fréquence ⇒ ↑ Consommation
se
us
Ho
ER
Fonction principale
HM
Convertir des tensions réelles
en valeurs numériques
LA
Exemple concret
Potentiomètre ->
m Microcontrôleur
se
Température -> Valeur
us
12 bits
0-3.3V -> 0-4095
Ho
ER
HM
LA
m
se
us
ER
Fonction principale
HM
Convertir des valeurs
numériques en tensions réelles
LA
Applications typiques
m Contrôle de moteur
Génération audio
se
Lissage PWM
us
Ho
ER
HM
LA
Résolution : 8/10/12 bits
Temps d’établissement :
m
se
1us-10us Buffer de sortie
us
ER
HM
Paramètre ADC DAC
Résolution typique 12 bits 12 bits
LA
Temps de conversion 1us-1ms 1us-10us
Interfaces GPIO, DMA SPI, I2C
Consommation 1-10mA 5-50mA
Coût $0.10-$10 $0.50-$20
Applications m
Capteurs, Mesure Audio, Contrôle
se
us
Ho
ER
événement externe d’interrompre le flot normal d’exécution du
processeur.
HM
Avantage : Réagir rapidement à des événements sans scruter en
permanence (polling).
Exemples : Timer, réception de données sur un port série, etc.
LA
m
se
us
Ho
ER
Empilement automatique de registres (PC, LR, etc.).
Saut vers la routine de service (ISR).
HM
À la fin, restauration du contexte et reprise du programme principal.
LA
m
se
us
Ho
ER
plusieurs périphériques.
Il informe le CPU lorsque la demande la plus prioritaire doit être
HM
traitée.
Le CPU lit la table de vecteurs pour connaître l’adresse de l’ISR
associée.
LA
m
se
us
Ho
ER
Nesting (imbriquées) : Le processeur empile le contexte de l’ISR en
cours pour traiter l’ISR plus prioritaire.
HM
Après traitement, on revient à l’ISR initial puis au programme
principal.
LA
m
se
us
Ho
ER
L’adresse de l’ISR associée à un événement se trouve à un index
déterminé par l’ID de l’interruption.
HM
LA
m
se
us
Ho
ER
INT : Saut vers l’ISR.
IRET (ou BX LR en ARM) : Retour au programme principal.
HM
LA
m
se
us
ER
HM
Les STM32 sont des microcontrôleurs 32 bits basés sur l’architecture
ARM Cortex.
LA
Ils sont utilisés dans des applications embarquées nécessitant
performance, réactivité et faible consommation.
Leur grande richesse fonctionnelle permet d’intégrer de multiples
m
périphériques et modules (GPIO, Timers, Clock, Interruptions, etc.).
se
us
Ho
ER
HM
Les GPIO permettent la communication avec des périphériques
externes (capteurs, actionneurs, LED, etc.).
LA
Ils sont configurables en mode entrée, sortie ou en mode alternatif
pour des fonctions spécifiques.
Ils constituent la base de l’interaction entre le microcontrôleur et le
m
monde extérieur.
se
us
Ho
ER
HM
Les Timers gèrent la mesure du temps et la génération de signaux,
notamment en PWM (Pulse Width Modulation).
LA
Ils permettent la création de délais précis et la synchronisation
d’opérations périodiques.
Utiles pour des tâches comme le contrôle moteur ou le déclenchement
m
d’événements à intervalles réguliers.
se
us
Ho
ER
HM
Les interruptions permettent de répondre immédiatement à des
événements externes ou internes.
LA
Elles interrompent le déroulement normal du programme pour
exécuter des routines spécifiques (ISR : Interrupt Service Routines).
Cruciales pour la gestion en temps réel et la réactivité des systèmes
m
embarqués.
se
us
Ho
ER
HM
LA
m
se
us
Ho
ER
HM
Les STM32 :
Microcontrôleurs fabriqués par STMicroelectronics, reconnus pour leur
LA
performance et faible consommation.
Largement utilisés dans les applications embarquées.
Pourquoi le C ?
m
Langage bas niveau permettant un contrôle précis du matériel.
Facilité d’intégration avec les bibliothèques fournies par ST.
se
us
Ho
ER
HM
IDE et Compilateurs :
STM32CubeIDE (environnement officiel gratuit)
Alternatives : Keil MDK-ARM, IAR Embedded Workbench, ou la
LA
toolchain GCC.
Outils complémentaires :
m
CubeMX pour configurer graphiquement les périphériques et générer
le code d’initiation.
se
ST-Link pour la programmation et le débogage.
us
Ho
ER
HM
LA
m
se
us
Ho
ER
HM
Couche Analogie
Assembleur Instructions machine directes
LA
C pur Piloter manuellement une voiture
HAL (Hardware Abstraction Layer) Tableau de bord avec compteurs
Middleware (RTOS, USB) m Système GPS intégré
se
us
Ho
ER
HM
Contrôle total nécessaire
Délais garantis (ex : airbag < 1
LA
ms)
Optimisation mémoire (96 KB
m
Flash)
se
Consommation en µA précise
us
Ho
ER
HM
Standard C C embarqué Taille
char uint8_t / int8_t 8 bits
short uint16_t 16 bits
long uint32_t 32 bits
LA
float float IEEE 754
Bonnes pratiques
m
Toujours spécifier signed/unsigned
se
Utiliser stdint.h
us
ER
HM
Fonction principale (main) : Point d’entrée du programme.
Initialisation du système :
Appel à HAL_Init() pour initialiser la couche d’abstraction matérielle.
LA
Configuration de l’horloge avec SystemClock_Config().
Initialisation des périphériques (GPIO, ADC, timers, etc.) via des
fonctions spécifiques.
m
Boucle infinie : Permet l’exécution continue des tâches de
se
l’application.
us
Ho
ER
HM
Rôle de HAL :
Simplifie l’accès et la configuration des périphériques matériels.
LA
Fournit des fonctions standardisées pour gérer les interfaces (GPIO,
UART, SPI, I2C, etc.).
Avantages :
m
Réduction de la complexité du code.
Meilleure portabilité et maintenance du logiciel.
se
us
Ho
ER
HM
Débogage :
Utilisation du débogueur intégré dans STM32CubeIDE (points d’arrêt,
inspection des variables, etc.).
LA
Analyse des messages d’erreur et suivi en temps réel via ST-Link.
Bonnes pratiques :
Structurer le code en modules pour faciliter la maintenance.
m
Tester chaque composant individuellement avant l’intégration globale.
se
Se référer à la documentation officielle ST et aux exemples fournis dans
STM32CubeFirmware.
us
Ho
ER
HM
La programmation en C pour STM32 offre un contrôle précis du
matériel et permet de développer des applications embarquées
performantes.
LA
L’utilisation d’outils comme STM32CubeIDE et CubeMX simplifie le
processus de développement.
m
Maîtriser la bibliothèque HAL et les bonnes pratiques de débogage est
se
essentiel pour la réussite des projets embarqués.
us
Ho