H
o
u
s
s
e
m
L
A
H
M
E
R
Plan - Partie1
1 Mise en situation
2 Histoire des calculateurs et
systèmes embarqués
Un peu d’histoire!
3 Les systèmes embarqués!
4 Fonctionnalités et Composants
5 Microprocesseur/Microcontrôleur
Microprocesseur
Microcontroleur
Vue matérielle
6 Stockage d’Information et
Représentation des Bits
7 ALU et Exécution d’Instructions
8 Registres
Mémoire et Types
Bascule D
Registre
Endiannes
Harvard VS Von Neumann
9 Péréphériques
GPIO
Module TIMER
Houssem-eddine LAHMER Les systèmes embarqués 2 / 99
3.
H
o
u
s
s
e
m
L
A
H
M
E
R
Plan - Partie2
10 Protocoles de Communication
11 ARM et STM32
12 Micro-architecture et Pipeline
d’un ARM7
13 Horloge Processeur
14 Conversion
Analogique-Numérique
15 Les interrptions
Cycle d’interruption
Contrôleur d’interruptions
Niveaux de priorité et
interruptions imbriquées
Table des vecteurs
Exemple simple d’exécution
16 STM32 : Introduction et
Composants
Introduction aux STM32
GPIO (General Purpose
Input/Output)
Timers
Interruptions
17 Programmation C pour STM32
18 Programmation STM32 en C
Houssem-eddine LAHMER Les systèmes embarqués 3 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
La préhistoire descalculateurs
Contexte historique et origine des premiers dispositifs de calcul.
Premières machines à calculer
Évolution jusqu’aux premiers ordinateurs.
Houssem-eddine LAHMER Les systèmes embarqués 6 / 99
7.
H
o
u
s
s
e
m
L
A
H
M
E
R
Abaque : Antiquité(1500 av. J.-C.)
Description :
L’abaque est un outil de calcul simple
utilisé dès l’Antiquité pour effectuer
des opérations arithmétiques.
Intérêt :
Il constitue l’une des premières
tentatives d’automatisation dans le
domaine du calcul.
Houssem-eddine LAHMER Les systèmes embarqués 7 / 99
8.
H
o
u
s
s
e
m
L
A
H
M
E
R
Machine de Pascal(1642)
Description :
La machine de Pascal est une des
premières machines mécaniques
conçues pour réaliser des opérations
arithmétiques.
Intérêt :
Elle marque une étape essentielle
dans l’évolution des dispositifs de
calcul automatisé.
Houssem-eddine LAHMER Les systèmes embarqués 8 / 99
9.
H
o
u
s
s
e
m
L
A
H
M
E
R
Métier Jacquard (1801)
Description:
Le métier Jacquard est une machine
à tisser innovante qui utilise des
cartes perforées pour programmer des
motifs complexes.
Intérêt :
Il a révolutionné l’industrie textile et
a inspiré le développement des
premiers ordinateurs en introduisant
le concept de programmation.
Houssem-eddine LAHMER Les systèmes embarqués 9 / 99
10.
H
o
u
s
s
e
m
L
A
H
M
E
R
ENIAC (1945)
Description :
L’ENIACest l’un des premiers
ordinateurs électroniques. Conçu en
1945, il pesait environ 30 tonnes et
était destiné à réaliser des calculs
complexes.
Intérêt :
Sa conception a ouvert la voie à
l’informatique moderne en
démontrant les possibilités du
traitement électronique des données.
Houssem-eddine LAHMER Les systèmes embarqués 10 / 99
11.
H
o
u
s
s
e
m
L
A
H
M
E
R
Apollo Guidance Computer(AGC) (1965)
Description :
Conçu pour les missions lunaires,
l’AGC est un ordinateur embarqué
qui, en 1965, ne pesait que 4 kg,
offrant une puissance de calcul
surprenante pour sa taille.
Intérêt :
Sa miniaturisation et son efficacité
ont révolutionné le domaine des
systèmes embarqués, préparant le
terrain pour les technologies actuelles
(avec des performances pouvant être
comparées à celles de 100 000
smartphones modernes).
Houssem-eddine LAHMER Les systèmes embarqués 11 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Intel 8008 etl’Aube de l’Informatique Grand Public (1972)
Description :
Lancé en 1972, l’Intel 8008 est une
puce 8 bits qui suit le 4004. Cette
avancée a considérablement amélioré
la puissance de calcul et a permis la
création des premiers
micro-ordinateurs.
Intérêt :
Le 8008 ouvre la voie à l’informatique
grand public, posant les bases pour
les évolutions futures, notamment
avec le 8080 et les systèmes
personnels.
Houssem-eddine LAHMER Les systèmes embarqués 13 / 99
14.
H
o
u
s
s
e
m
L
A
H
M
E
R
Origines et avantagesdes systèmes embarqués
Héritage historique : De l’abaque antique aux premières machines
mécaniques, l’humain a toujours cherché à automatiser le calcul.
Naissance de l’informatique embarquée : L’Intel 4004 marque
l’émergence des microprocesseurs.
Démocratisation : L’avènement des microcontrôleurs à bas coût a
permis d’intégrer l’informatique dans de nombreux appareils.
Optimisation : Ces systèmes offrent efficacité énergétique,
maintenance à distance et fiabilité accrue.
Houssem-eddine LAHMER Les systèmes embarqués 14 / 99
15.
H
o
u
s
s
e
m
L
A
H
M
E
R
Définition d’un systèmeembarqué
Système embarqué =
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)
Un logiciel dédié optimisé pour des tâches spécifiques
Des interfaces E/S facilitant l’interaction avec le monde physique
Des contraintes strictes :
Temps réel
Consommation minimale
Encombrement réduit
Houssem-eddine LAHMER Les systèmes embarqués 15 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Systèmes Embarqués
"Depuis l’abaqueantique jusqu’à
l’ère des microcontrôleurs, notre
quête de contrôle sur le monde
physique a donné naissance à des
systèmes essentiels pour notre
avenir."
Houssem-eddine LAHMER Les systèmes embarqués 17 / 99
18.
H
o
u
s
s
e
m
L
A
H
M
E
R
Fonctionnalités d’un systèmeembarqué
Traitement de données
Stockage de données
Interaction avec le monde extérieur
Acquisition (capteurs, ADC)
Actions (moteurs, LED)
Communication (I2C, SPI, CAN, Ethernet, WiFi, etc.)
Houssem-eddine LAHMER Les systèmes embarqués 18 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Composants matériels
Processeur/Microcontrôleur/SoC (Traitement)
Stockage
Volatile: RAM, cache, registres
Non volatile : ROM, PROM, EPROM, EEPROM, Flash
Périphériques d’interaction
Communication : I2C, SPI, CAN, Ethernet, WiFi, ZigBee, LoRaWAN
Acquisition : Capteurs, ADC, GPIO
Sortie : DAC, LED, pilotage de moteurs
Interconnexion via bus (processeur, mémoire, périphériques)
Houssem-eddine LAHMER Les systèmes embarqués 21 / 99
22.
H
o
u
s
s
e
m
L
A
H
M
E
R
Microprocesseur
lit séquentiellement desinstructions et des données à partir d’une
mémoire.
décode les instructions
fait des calculs sur des données en internes
écrit des données en mémoire
Houssem-eddine LAHMER Les systèmes embarqués 22 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Vocabulaire – Périphériquescourants
GPIO (General-Purpose
Input/Output)
Patte (pin) d’un circuit intégré
ou connecteur d’une carte
électronique.
Peut être configuré en entrée ou
en sortie numérique.
Permet de contrôler les
entrées-sorties.
UART (Universal Asynchronous
Receiver Transmitter)
Périphérique gérant la
communication série.
Transfert des bits d’un mot sur
un seul fil, les uns après les
autres.
Mode asynchrone : l’horloge
n’est pas transmise ; elle est
reconstituée par le récepteur en
détectant le début de la
transmission et en utilisant le
débit binaire configuré.
Houssem-eddine LAHMER Les systèmes embarqués 25 / 99
26.
H
o
u
s
s
e
m
L
A
H
M
E
R
Communication CPU -Mémoire
Opérations : Lecture / Écriture
Adresse : Localisation de la donnée
Données : Transfert entre CPU et mémoire
Houssem-eddine LAHMER Les systèmes embarqués 26 / 99
27.
H
o
u
s
s
e
m
L
A
H
M
E
R
Les Bases duStockage d’Information
Un bit : unité minimale (2 états possibles : 0 ou 1)
Les données sont des séquences finies de bits
Exemples : 4 bits → 0110 ; 8 bits → 11010011
Houssem-eddine LAHMER Les systèmes embarqués 27 / 99
28.
H
o
u
s
s
e
m
L
A
H
M
E
R
Séquences de Bitset Leur Capacité
Une séquence de N bits peut représenter jusqu’à 2N éléments
Exemples d’interprétation :
1001 : Nombre 9 (base 2)
000010000000 : Peut représenter "Mai"
Une séquence de bits = ce que vous décidez d’en faire
Houssem-eddine LAHMER Les systèmes embarqués 28 / 99
29.
H
o
u
s
s
e
m
L
A
H
M
E
R
Systèmes Numériques etInterprétation
Une séquence de N bits peut être lue comme un nombre en base 2
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
Houssem-eddine LAHMER Les systèmes embarqués 29 / 99
30.
H
o
u
s
s
e
m
L
A
H
M
E
R
Représentations Classiques
Binaire :b7b6 . . . b0 interprété en base 2
Complément à 2 : pour représenter les nombres négatifs
ASCII : codage des symboles (ex. %, A, 7)
http://en.wikipedia.org/wiki/ASCII
Houssem-eddine LAHMER Les systèmes embarqués 30 / 99
31.
H
o
u
s
s
e
m
L
A
H
M
E
R
Organisation des Bits
Unoctet = 8 bits (granularité usuelle)
L’écriture en base 16 est plus pratique (symboles : 0-9, A-F)
Houssem-eddine LAHMER Les systèmes embarqués 31 / 99
32.
H
o
u
s
s
e
m
L
A
H
M
E
R
ALU : LeCœur Calculant du CPU
Définition
Circuit combinatoire numérique
Effectue opérations arithmétiques & logiques
Manipule des entiers binaires (32 bits sur Cortex-M)
Houssem-eddine LAHMER Les systèmes embarqués 32 / 99
33.
H
o
u
s
s
e
m
L
A
H
M
E
R
Anatomie d’une InstructionCortex-M
Opcode (4-16 bits) Operande 1 Operande 2 Résultat
ADD R0 R1, #42 R0 = R1 + 42
AND R2 R3, R4 R2 = R3 & R4
Houssem-eddine LAHMER Les systèmes embarqués 33 / 99
34.
H
o
u
s
s
e
m
L
A
H
M
E
R
Cycle d’Exécution d’uneInstruction
1 Fetch : Chargement instruction depuis la mémoire
2 Decode : Décodage opcode & opérandes
3 Execute : Traitement par l’ALU
4 Writeback : Stockage résultat
Houssem-eddine LAHMER Les systèmes embarqués 34 / 99
35.
H
o
u
s
s
e
m
L
A
H
M
E
R
Exemple Concret :Addition en Assembleur
Décomposition binaire
Opcode ADD : 0100 0101
Registres : R0=001, R1=010
Résultat : R2=011 (si a=1, b=2)
Houssem-eddine LAHMER Les systèmes embarqués 35 / 99
36.
H
o
u
s
s
e
m
L
A
H
M
E
R
Flags et Prisede Décision
Flag Signification
Z (Zero) Résultat = 0
N (Negative) Résultat < 0
C (Carry) Dépassement
V (Overflow) Débordement signé
Houssem-eddine LAHMER Les systèmes embarqués 36 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Mémoires dans lessystèmes embarqués
Type Volatilité Utilisation typique Embarqué
SRAM Volatile Cache/Mémoire rapide ✓(mémoire principale)
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)
ROM Non-volatile Firmware fixe ✓(coût minimal)
Pour les microcontrôleurs
SRAM : Mémoire de travail rapide (taille limitée)
Flash NOR : Stockage programme (accès direct)
EEPROM : Conservation données critiques
Houssem-eddine LAHMER Les systèmes embarqués 38 / 99
39.
H
o
u
s
s
e
m
L
A
H
M
E
R
Bascule D -D Flip-Flop
D flip-flop (dff, registre, etc.)
Fonctionnement :
Au front montant de l’horloge (clk passant de 0 à 1) : la valeur de D
est capturée et copiée sur Q (échantillonnage).
Sinon : Q conserve sa valeur (mémorisation).
Houssem-eddine LAHMER Les systèmes embarqués 39 / 99
40.
H
o
u
s
s
e
m
L
A
H
M
E
R
Table de véritédu D flip-flop
D clk Q Opération
0 ↑ 0 D est copié sur Q (échantillonnage)
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 Q conserve sa valeur (mémorisation)
Houssem-eddine LAHMER Les systèmes embarqués 40 / 99
41.
H
o
u
s
s
e
m
L
A
H
M
E
R
Registre
Un registre estun ensemble de flip-flops utilisés en parallèle.
Exemple : Registre 4 bits
Fonctionnement : L’horloge (clk) déclenche simultanément
l’échantillonnage des entrées D de chaque flip-flop, et leurs valeurs sont
stockées dans les sorties Q.
Houssem-eddine LAHMER Les systèmes embarqués 41 / 99
42.
H
o
u
s
s
e
m
L
A
H
M
E
R
Endianness
Endianness
Supposons que noussouhaitions
stocker une variable 32 bits (4
octets).
Il est logique de les stocker dans
des emplacements mémoire
contigus.
Mais où placer le bit le plus
significatif (MSB) ?
Houssem-eddine LAHMER Les systèmes embarqués 42 / 99
43.
H
o
u
s
s
e
m
L
A
H
M
E
R
Big Endian vsLittle Endian
« 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
significatif (D0).
Houssem-eddine LAHMER Les systèmes embarqués 43 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Architecture Von Neumann
ArchitectureVon Neumann :
La même mémoire et le même bus servent à stocker les instructions et
les données.
L’accès simultané à la mémoire de programme et à la mémoire de
données n’est pas possible.
Cette architecture est sujette aux goulets d’étranglement, affectant
ainsi les performances du système.
Houssem-eddine LAHMER Les systèmes embarqués 45 / 99
46.
H
o
u
s
s
e
m
L
A
H
M
E
R
Architecture Harvard
Les instructionset les données sont stockées dans des unités mémoire
séparées, reliées par des bus différents.
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
manière indépendante et simultanée.
Houssem-eddine LAHMER Les systèmes embarqués 46 / 99
47.
H
o
u
s
s
e
m
L
A
H
M
E
R
Harvard vs VonNeumann
Architecture Von Neumann
Utilise la même adresse mémoire
pour les instructions et les
données.
Le processeur nécessite deux
cycles d’horloge pour exécuter
une instruction.
Unité de contrôle simple, ce qui
rend le développement moins
coûteux.
Les transferts de données et la
récupération d’instructions ne
sont pas simultanés.
Utilisé dans les PC (Intel).
Architecture Harvard
Utilise des adresses mémoire
séparées pour les instructions et
les données.
Le processeur nécessite un seul
cycle d’horloge pour compléter
une instruction.
L’unité de contrôle est plus
complexe, augmentant le coût
de développement.
Les transferts de données et la
récupération d’instructions
peuvent être effectués
simultanément.
Utilisé dans les microcontrôleurs.
Houssem-eddine LAHMER Les systèmes embarqués 47 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Les GPIO
C’est quoiun GPIO?
Port d’Entrée/Sortie à usage général
Interface entre le programme et le monde physique
Comme des interrupteurs virtuels connectés aux pattes du
microcontrôleur
Houssem-eddine LAHMER Les systèmes embarqués 49 / 99
50.
H
o
u
s
s
e
m
L
A
H
M
E
R
Structure des portsGPIO
8 ports (A à H)
Jusqu’à 16 pins par port
Mais attention :
Disponibilité limitée!
Modèle de circuit
Fonctions système
Houssem-eddine LAHMER Les systèmes embarqués 50 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Comparaison des modes
ModeUtilisation typique Caractéristiques
Entrée Lire bouton/capteur Pull-up/down configurables
Sortie Piloter LED/relais Vitesse configurable
Alternatif Communication (UART, SPI) Dépend du périphérique
Analogique Capteur analogique Convertisseur ADC/DAC
Attention
Un pin ne peut pas être dans deux modes en même temps!
Houssem-eddine LAHMER Les systèmes embarqués 52 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
TIMER - Àquoi ça sert?
Compte le temps comme un chronomètre
Déclenche des actions automatiquement
Génère des signaux précis
Analogie
Comme un minuteur de cuisine programmable
Houssem-eddine LAHMER Les systèmes embarqués 54 / 99
55.
H
o
u
s
s
e
m
L
A
H
M
E
R
Composants clés d’unTIMER
Prédiviseur : Adapte la vitesse (ex: /16)
Compteur : Valeur qui augmente à chaque tick
Comparateur : Déclenche une action quand seuil atteint
Houssem-eddine LAHMER Les systèmes embarqués 55 / 99
56.
H
o
u
s
s
e
m
L
A
H
M
E
R
PWM - Contrôleintelligent
t
V
τ
T
Paramètres clés
T : Période (ARR)
τ : Temps actif (CCR)
Rapport cyclique = τ/T
Applications
- Contrôle de moteur -
Gradation LED - Générateur
son
Houssem-eddine LAHMER Les systèmes embarqués 56 / 99
57.
H
o
u
s
s
e
m
L
A
H
M
E
R
Modes de fonctionnement
ModeDescription Utilisation
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
Bon à savoir
Jusqu’à 17 timers sur certains microcontrôleurs
Résolution jusqu’à 32 bits
Synchronisation possible entre timers
Houssem-eddine LAHMER Les systèmes embarqués 57 / 99
58.
H
o
u
s
s
e
m
L
A
H
M
E
R
Communiquer : commeune conversation
Les 3 éléments essentiels
Un langage commun (protocole)
Un support (fils, radio...)
Des règles de dialogue (qui parle
quand ?)
Émetteur Récepteur
Canal
Houssem-eddine LAHMER Les systèmes embarqués 58 / 99
59.
H
o
u
s
s
e
m
L
A
H
M
E
R
Parallèle vs Série: Le combat des câbles
Parallèle
Autoroute à 8 voies
Rapide mais encombrant
Idéal courtes distances
Série
Route à 1 voie
Plus lent mais flexible
Longues distances
Houssem-eddine LAHMER Les systèmes embarqués 59 / 99
60.
H
o
u
s
s
e
m
L
A
H
M
E
R
Les 3 grandsprotocoles série
UART SPI I2C
Simple point-à-point Haute vitesse Bus multi-
périphériques
2 fils + GND 4 fils 2 fils
Asynchrone Synchrone Synchrone
Houssem-eddine LAHMER Les systèmes embarqués 60 / 99
61.
H
o
u
s
s
e
m
L
A
H
M
E
R
Principe de basedu UART
Universal Asynchronous Receiver-Transmitter
Protocole série asynchrone (pas de signal d’horloge)
Communication full-duplex (émission/réception simultanées)
Débit standard : 9600 à 115200 bauds
Schéma d’interconnexion
TX (Transmit) → RX (Receive)
RX ← TX (Transmit)
Masse commune (GND)
Houssem-eddine LAHMER Les systèmes embarqués 61 / 99
62.
H
o
u
s
s
e
m
L
A
H
M
E
R
UART : Configurationtype
Configuration type
Baud rate : 9600
8 bits de données
Pas de parité
1 bit de stop
Houssem-eddine LAHMER Les systèmes embarqués 62 / 99
63.
H
o
u
s
s
e
m
L
A
H
M
E
R
SPI : Laformule 1 des bus
Caractéristiques clés (Partie 1)
Vitesse jusqu’à 10+ MHz
Communication full-duplex
Caractéristiques clés (Partie 2)
Utilise 4 fils :
MOSI (Master Out Slave In)
MISO (Master In Slave Out)
SCK (Serial Clock)
SS (Slave Select)
Figure: Schéma maître/esclaves du bus SPI
Houssem-eddine LAHMER Les systèmes embarqués 63 / 99
64.
H
o
u
s
s
e
m
L
A
H
M
E
R
ARM - Leconcepteur invisible
Fiche d’identité
Fondation : 1990
Propriétaire : SoftBank (2016)
Spécialité : Cœurs RISC 32 bits
Philosophie de conception
Performance/énergie optimisée
Architecture modulaire
Licence de propriété intellectuelle (IP)
Houssem-eddine LAHMER Les systèmes embarqués 64 / 99
65.
H
o
u
s
s
e
m
L
A
H
M
E
R
Modèle économique :ARM vs Fabricants
Rôle d’ARM
Design de cores CPU
Licence d’IP aux fabricants
Pas de production physique
Exemple concret
ARM : Cortex-M4
STMicro : STM32F4
NXP : LPC4000
Avantage clé
Standardisation + personnalisation
Houssem-eddine LAHMER Les systèmes embarqués 65 / 99
66.
H
o
u
s
s
e
m
L
A
H
M
E
R
Architecture simplifiée d’unARM
Caractéristiques clés
Fonctionnement du banc de registres
Lecture simultanée sur 2 registres
Écriture sur 1 registre/cycle
Accès mémoire 32 bits :
Adresse : 32 bits
Données : 32 bits bidirectionnel
Particularité ARM
Registre r15 = PC (Program Counter)
Houssem-eddine LAHMER Les systèmes embarqués 66 / 99
67.
H
o
u
s
s
e
m
L
A
H
M
E
R
Pipeline à 3étages
Les trois étapes clés
1 FETCH : Charge l’instruction
2 DECODE : Décode l’opération
3 EXECUTE : Exécute la
commande
Avantages
Parallélisme d’instructions
Débit = 1 instruction/cycle
Optimisation des ressources
Houssem-eddine LAHMER Les systèmes embarqués 67 / 99
68.
H
o
u
s
s
e
m
L
A
H
M
E
R
PWM : Modulationde largeur d’impulsion – Définition et
Principe
Principe de base
La PWM (Pulse Width Modulation) est une technique qui contrôle la
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.
Rapport Cyclique
Rapport cyclique =
TON
T
× 100%
Où TON est le temps pendant lequel le signal est actif, et T la période
complète du signal.
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
H
o
u
s
s
e
m
L
A
H
M
E
R
PWM : Applications
Applicationscourantes
Contrôle de la vitesse des moteurs
Gradation de l’intensité lumineuse des LED
Positionnement précis des servomoteurs
Houssem-eddine LAHMER Les systèmes embarqués 70 / 99
71.
H
o
u
s
s
e
m
L
A
H
M
E
R
Contrôle moteur avecL298N
Configuration minimale
IN1/IN2 : Direction
EN A/B : PWM vitesse
Alim séparée moteur
Astuce STM32
Utiliser les timers matériels :
TIM1/2/3/4
Channels PWM dédiés
Schéma de connexion L298N
Houssem-eddine LAHMER Les systèmes embarqués 71 / 99
72.
H
o
u
s
s
e
m
L
A
H
M
E
R
L’horloge : Lemétronome du processeur
Analogie musicale
Comme un métronome
pour musicien
Donne le rythme des
opérations
1 cycle = 1 "temps"
élémentaire
Exemple concret
Microcontrôleur à 16 MHz :
16 millions de cycles par seconde
Chaque cycle dure 62.5 ns
Houssem-eddine LAHMER Les systèmes embarqués 72 / 99
73.
H
o
u
s
s
e
m
L
A
H
M
E
R
Cas concrets
Arduino Uno(16 MHz) STM32 (72 MHz) Raspberry Pi (1.5 GHz)
Équilibre important
↑ Fréquence ⇒ ↑ Performance
↑ Fréquence ⇒ ↑ Consommation
Houssem-eddine LAHMER Les systèmes embarqués 73 / 99
74.
H
o
u
s
s
e
m
L
A
H
M
E
R
ADC : AnalogTo Digital Cnversion
Fonction principale
Convertir des tensions réelles
en valeurs numériques
Exemple concret
Potentiomètre ->
Microcontrôleur
Température -> Valeur
12 bits
0-3.3V -> 0-4095
Houssem-eddine LAHMER Les systèmes embarqués 74 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
DAC : Lavoix analogique du numérique
Fonction principale
Convertir des valeurs
numériques en tensions réelles
Applications typiques
Contrôle de moteur
Génération audio
Lissage PWM
Houssem-eddine LAHMER Les systèmes embarqués 76 / 99
77.
H
o
u
s
s
e
m
L
A
H
M
E
R
Spécifications importantes d’unDAC
Résolution : 8/10/12 bits
Temps d’établissement :
1us-10us
Tension de sortie : 0-3.3V
Buffer de sortie
Interface : Parallel/SPI/I2C
Linéarité : ±1 LSB
Houssem-eddine LAHMER Les systèmes embarqués 77 / 99
78.
H
o
u
s
s
e
m
L
A
H
M
E
R
Comparaison ADC/DAC
Paramètre ADCDAC
Résolution typique 12 bits 12 bits
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 Capteurs, Mesure Audio, Contrôle
Houssem-eddine LAHMER Les systèmes embarqués 78 / 99
79.
H
o
u
s
s
e
m
L
A
H
M
E
R
Qu’est-ce qu’une interruption?
Définition : Mécanisme permettant à un périphérique ou un
événement externe d’interrompre le flot normal d’exécution du
processeur.
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.
Houssem-eddine LAHMER Les systèmes embarqués 79 / 99
80.
H
o
u
s
s
e
m
L
A
H
M
E
R
Cycle d’interruption surCortex-M
Détection de l’interruption par le contrôleur.
Empilement automatique de registres (PC, LR, etc.).
Saut vers la routine de service (ISR).
À la fin, restauration du contexte et reprise du programme principal.
Figure: Cycle d’interruption (ARM Cortex-M).
Houssem-eddine LAHMER Les systèmes embarqués 80 / 99
81.
H
o
u
s
s
e
m
L
A
H
M
E
R
Schéma global
Le contrôleurd’interruptions gère les demandes provenant de
plusieurs périphériques.
Il informe le CPU lorsque la demande la plus prioritaire doit être
traitée.
Le CPU lit la table de vecteurs pour connaître l’adresse de l’ISR
associée.
Figure: Interaction CPU - Contrôleur d’interruptions - Périphériques.
Houssem-eddine LAHMER Les systèmes embarqués 81 / 99
82.
H
o
u
s
s
e
m
L
A
H
M
E
R
Interruptions imbriquées
Priorité :Certaines interruptions peuvent interrompre une ISR moins
prioritaire.
Nesting (imbriquées) : Le processeur empile le contexte de l’ISR en
cours pour traiter l’ISR plus prioritaire.
Après traitement, on revient à l’ISR initial puis au programme
principal.
Figure: Exemple d’interruptions imbriquées selon la priorité.
Houssem-eddine LAHMER Les systèmes embarqués 82 / 99
83.
H
o
u
s
s
e
m
L
A
H
M
E
R
Table des vecteurset adresses ISR
Table des vecteurs : Zone mémoire contenant les adresses de
chaque ISR.
L’adresse de l’ISR associée à un événement se trouve à un index
déterminé par l’ID de l’interruption.
Figure: Table des vecteurs (exemple simplifié).
Houssem-eddine LAHMER Les systèmes embarqués 83 / 99
84.
H
o
u
s
s
e
m
L
A
H
M
E
R
Événement, INT, ISRet retour
INT : Saut vers l’ISR.
IRET (ou BX LR en ARM) : Retour au programme principal.
Figure: Événement déclencheur, exécution de l’ISR, puis retour.
Houssem-eddine LAHMER Les systèmes embarqués 84 / 99
85.
H
o
u
s
s
e
m
L
A
H
M
E
R
Introduction aux STM32
LesSTM32 sont des microcontrôleurs 32 bits basés sur l’architecture
ARM Cortex.
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
périphériques et modules (GPIO, Timers, Clock, Interruptions, etc.).
Houssem-eddine LAHMER Les systèmes embarqués 85 / 99
86.
H
o
u
s
s
e
m
L
A
H
M
E
R
GPIO
Les GPIO permettentla communication avec des périphériques
externes (capteurs, actionneurs, LED, etc.).
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
monde extérieur.
Houssem-eddine LAHMER Les systèmes embarqués 86 / 99
87.
H
o
u
s
s
e
m
L
A
H
M
E
R
Timers
Les Timers gèrentla mesure du temps et la génération de signaux,
notamment en PWM (Pulse Width Modulation).
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
d’événements à intervalles réguliers.
Houssem-eddine LAHMER Les systèmes embarqués 87 / 99
88.
H
o
u
s
s
e
m
L
A
H
M
E
R
Interruptions
Les interruptions permettentde répondre immédiatement à des
événements externes ou internes.
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
embarqués.
Houssem-eddine LAHMER Les systèmes embarqués 88 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Introduction
Les STM32 :
Microcontrôleursfabriqués par STMicroelectronics, reconnus pour leur
performance et faible consommation.
Largement utilisés dans les applications embarquées.
Pourquoi le C ?
Langage bas niveau permettant un contrôle précis du matériel.
Facilité d’intégration avec les bibliothèques fournies par ST.
Houssem-eddine LAHMER Les systèmes embarqués 90 / 99
91.
H
o
u
s
s
e
m
L
A
H
M
E
R
Environnement de développement
IDEet Compilateurs :
STM32CubeIDE (environnement officiel gratuit)
Alternatives : Keil MDK-ARM, IAR Embedded Workbench, ou la
toolchain GCC.
Outils complémentaires :
CubeMX pour configurer graphiquement les périphériques et générer
le code d’initiation.
ST-Link pour la programmation et le débogage.
Houssem-eddine LAHMER Les systèmes embarqués 91 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Architecture des CouchesLogicielles
Couche Analogie
Assembleur Instructions machine directes
C pur Piloter manuellement une voiture
HAL (Hardware Abstraction Layer) Tableau de bord avec compteurs
Middleware (RTOS, USB) Système GPS intégré
Houssem-eddine LAHMER Les systèmes embarqués 93 / 99
94.
H
o
u
s
s
e
m
L
A
H
M
E
R
Pourquoi le Cbas niveau en embarqué ?
Contrôle total nécessaire
Délais garantis (ex : airbag < 1
ms)
Optimisation mémoire (96 KB
Flash)
Consommation en µA précise
Houssem-eddine LAHMER Les systèmes embarqués 94 / 99
95.
H
o
u
s
s
e
m
L
A
H
M
E
R
Types de donnéesen C embarqué
Standard C C embarqué Taille
char uint8_t / int8_t 8 bits
short uint16_t 16 bits
long uint32_t 32 bits
float float IEEE 754
Bonnes pratiques
Toujours spécifier signed/unsigned
Utiliser stdint.h
Éviter les types variables
Houssem-eddine LAHMER Les systèmes embarqués 95 / 99
96.
H
o
u
s
s
e
m
L
A
H
M
E
R
Structure d’un programmeC pour STM32
Fonction principale (main) : Point d’entrée du programme.
Initialisation du système :
Appel à HAL_Init() pour initialiser la couche d’abstraction matérielle.
Configuration de l’horloge avec SystemClock_Config().
Initialisation des périphériques (GPIO, ADC, timers, etc.) via des
fonctions spécifiques.
Boucle infinie : Permet l’exécution continue des tâches de
l’application.
Houssem-eddine LAHMER Les systèmes embarqués 96 / 99
97.
H
o
u
s
s
e
m
L
A
H
M
E
R
Utilisation de labibliothèque HAL
Rôle de HAL :
Simplifie l’accès et la configuration des périphériques matériels.
Fournit des fonctions standardisées pour gérer les interfaces (GPIO,
UART, SPI, I2C, etc.).
Avantages :
Réduction de la complexité du code.
Meilleure portabilité et maintenance du logiciel.
Houssem-eddine LAHMER Les systèmes embarqués 97 / 99
98.
H
o
u
s
s
e
m
L
A
H
M
E
R
Outils de débogageet bonnes pratiques
Débogage :
Utilisation du débogueur intégré dans STM32CubeIDE (points d’arrêt,
inspection des variables, etc.).
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.
Tester chaque composant individuellement avant l’intégration globale.
Se référer à la documentation officielle ST et aux exemples fournis dans
STM32CubeFirmware.
Houssem-eddine LAHMER Les systèmes embarqués 98 / 99
99.
H
o
u
s
s
e
m
L
A
H
M
E
R
Conclusion
La programmation enC pour STM32 offre un contrôle précis du
matériel et permet de développer des applications embarquées
performantes.
L’utilisation d’outils comme STM32CubeIDE et CubeMX simplifie le
processus de développement.
Maîtriser la bibliothèque HAL et les bonnes pratiques de débogage est
essentiel pour la réussite des projets embarqués.
Houssem-eddine LAHMER Les systèmes embarqués 99 / 99