0% ont trouvé ce document utile (0 vote)
60 vues99 pages

Embedded Systems

Le document présente une introduction aux systèmes embarqués, en abordant leur histoire, leurs composants et leurs fonctionnalités. Il décrit l'évolution des dispositifs de calcul depuis l'abaque antique jusqu'aux microprocesseurs modernes, en mettant l'accent sur l'importance des microcontrôleurs dans la démocratisation de l'informatique. Enfin, il explique les éléments clés d'un système embarqué, notamment le traitement et le stockage des données, ainsi que les interfaces de communication.

Transféré par

yassine232.2004
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
60 vues99 pages

Embedded Systems

Le document présente une introduction aux systèmes embarqués, en abordant leur histoire, leurs composants et leurs fonctionnalités. Il décrit l'évolution des dispositifs de calcul depuis l'abaque antique jusqu'aux microprocesseurs modernes, en mettant l'accent sur l'importance des microcontrôleurs dans la démocratisation de l'informatique. Enfin, il explique les éléments clés d'un système embarqué, notamment le traitement et le stockage des données, ainsi que les interfaces de communication.

Transféré par

yassine232.2004
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ER

HM
Les systèmes embarqués

LA
Houssem-eddine LAHMER

m
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 1 / 99


Plan - Partie 1

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

6 Stockage d’Information et GPIO


Représentation des Bits Module TIMER
Ho

Houssem-eddine LAHMER Les systèmes embarqués 2 / 99


Plan - Partie 2

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

Niveaux de priorité et 17 Programmation C pour STM32


Ho

interruptions imbriquées 18 Programmation STM32 en C

Houssem-eddine LAHMER Les systèmes embarqués 3 / 99


Mise en situation

ER
HM
LA
m
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 4 / 99


Mise en situation

ER
HM
LA
m
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 5 / 99


La préhistoire des calculateurs

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

Houssem-eddine LAHMER Les systèmes embarqués 6 / 99


Abaque : Antiquité (1500 av. J.-C.)

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

Houssem-eddine LAHMER Les systèmes embarqués 7 / 99


Machine de Pascal (1642)

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

Houssem-eddine LAHMER Les systèmes embarqués 8 / 99


Métier Jacquard (1801)

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

premiers ordinateurs en introduisant


Ho

le concept de programmation.

Houssem-eddine LAHMER Les systèmes embarqués 9 / 99


ENIAC (1945)

ER
Description :

L’ENIAC est l’un des premiers

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

traitement électronique des données.

Houssem-eddine LAHMER Les systèmes embarqués 10 / 99


Apollo Guidance Computer (AGC) (1965)
Description :

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

terrain pour les technologies actuelles


Ho

(avec des performances pouvant être


comparées à celles de 100 000
smartphones modernes).
Houssem-eddine LAHMER Les systèmes embarqués 11 / 99
Intel 4004 et la Calculatrice Busicom (1971)
Description :

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

la démocratisation des systèmes


embarqués, transformant
Ho

durablement l’industrie électronique.


© Intel

Houssem-eddine LAHMER Les systèmes embarqués 12 / 99


Intel 8008 et l’Aube de l’Informatique Grand Public (1972)

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

grand public, posant les bases pour


les évolutions futures, notamment
Ho

avec le 8080 et les systèmes


personnels.

Houssem-eddine LAHMER Les systèmes embarqués 13 / 99


Origines et avantages des systèmes embarqués

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

Houssem-eddine LAHMER Les systèmes embarqués 14 / 99


Définition d’un système embarqué

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

Houssem-eddine LAHMER Les systèmes embarqués 15 / 99


Systèmes Embarqués

ER
HM
LA
m
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 16 / 99


Systèmes Embarqués

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

Houssem-eddine LAHMER Les systèmes embarqués 18 / 99


Systèmes Embarqués

ER
HM
LA
m
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 19 / 99


Systèmes Embarqués

ER
HM
LA
m
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 20 / 99


Composants matériels

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

Houssem-eddine LAHMER Les systèmes embarqués 21 / 99


Microprocesseur
lit séquentiellement des instructions et des données à partir d’une

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

Houssem-eddine LAHMER Les systèmes embarqués 22 / 99


Microcontroleur (MCU:Microcontroller Unit)

Regroupe dans le même circuit:

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

Houssem-eddine LAHMER Les systèmes embarqués 23 / 99


Vue matérielle schématique

ER
HM
LA
m
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 24 / 99


Vocabulaire – Périphériques courants

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

Houssem-eddine LAHMER Les systèmes embarqués 25 / 99


Communication CPU - Mémoire

Opérations : Lecture / Écriture

ER
Adresse : Localisation de la donnée
Données : Transfert entre CPU et mémoire

HM
LA
m
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 26 / 99


Les Bases du Stockage d’Information

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

Houssem-eddine LAHMER Les systèmes embarqués 27 / 99


Séquences de Bits et Leur Capacité

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

Houssem-eddine LAHMER Les systèmes embarqués 28 / 99


Systèmes Numériques et Interprétation

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

Houssem-eddine LAHMER Les systèmes embarqués 29 / 99


Représentations Classiques

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

Houssem-eddine LAHMER Les systèmes embarqués 30 / 99


Organisation des Bits

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

Houssem-eddine LAHMER Les systèmes embarqués 31 / 99


ALU : Le Cœur Calculant du CPU

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

Houssem-eddine LAHMER Les systèmes embarqués 32 / 99


Anatomie d’une Instruction Cortex-M

ER
HM
LA
m
se
us

Opcode (4-16 bits) Operande 1 Operande 2 Résultat


Ho

ADD R0 R1, #42 R0 = R1 + 42


AND R2 R3, R4 R2 = R3 & R4

Houssem-eddine LAHMER Les systèmes embarqués 33 / 99


Cycle d’Exécution d’une Instruction

ER
HM
LA
m
se
us

Fetch : Chargement instruction depuis la mémoire


Ho

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
Exemple Concret : Addition en Assembleur

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

Houssem-eddine LAHMER Les systèmes embarqués 35 / 99


Flags et Prise de Décision
Flag Signification
Z (Zero) Résultat = 0

ER
N (Negative) Résultat < 0
C (Carry) Dépassement

HM
V (Overflow) Débordement signé

LA
m
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 36 / 99


Types de mémoire

Mémoire volatile

ER
DRAM
SRAM

HM
Mémoire non volatile
ROM

LA
EEPROM
Flash (Nor)

m
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 37 / 99


Mémoires dans les systèmes embarqués

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)

Pour les microcontrôleurs m


se
SRAM : Mémoire de travail rapide (taille limitée)
us

Flash NOR : Stockage programme (accès direct)


EEPROM : Conservation données critiques
Ho

Houssem-eddine LAHMER Les systèmes embarqués 38 / 99


Bascule D - D Flip-Flop

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

est capturée et copiée sur Q (échantillonnage).


Ho

Sinon : Q conserve sa valeur (mémorisation).

Houssem-eddine LAHMER Les systèmes embarqués 39 / 99


Table de vérité du D flip-flop

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

Houssem-eddine LAHMER Les systèmes embarqués 40 / 99


Registre

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

l’échantillonnage des entrées D de chaque flip-flop, et leurs valeurs sont


Ho

stockées dans les sorties Q.

Houssem-eddine LAHMER Les systèmes embarqués 41 / 99


Endianness

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

Houssem-eddine LAHMER Les systèmes embarqués 42 / 99


Big Endian vs Little Endian

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

Houssem-eddine LAHMER Les systèmes embarqués 43 / 99


types de Microcontrôleurs

ER
HM
Deux architectures de mémoire existent :

LA
L’architecture Harvard
L’architecture Von Neumann
m
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 44 / 99


Architecture Von Neumann

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

Houssem-eddine LAHMER Les systèmes embarqués 45 / 99


Architecture Harvard

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

Houssem-eddine LAHMER Les systèmes embarqués 46 / 99


Harvard vs Von Neumann

Architecture Von Neumann Architecture Harvard

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.

Unité de contrôle simple, ce qui L’unité de contrôle est plus


m
rend le développement moins complexe, augmentant le coût
de développement.
se
coûteux.
Les transferts de données et la Les transferts de données et la
us

récupération d’instructions ne récupération d’instructions


Ho

sont pas simultanés. peuvent être effectués


simultanément.
Utilisé dans les PC (Intel).
Utilisé dans les microcontrôleurs.
Houssem-eddine LAHMER Les systèmes embarqués 47 / 99
Harvard vs Von Neumann

ER
HM
LA
m
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 48 / 99


Les GPIO

ER
HM
LA
m
se
C’est quoi un GPIO?
us

Port d’Entrée/Sortie à usage général


Ho

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
Structure des ports GPIO

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

Houssem-eddine LAHMER Les systèmes embarqués 50 / 99


4 modes principaux

ER
HM
Entrée Sortie

LA
m
Alternatif Analogique
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 51 / 99


Comparaison des modes

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

Houssem-eddine LAHMER Les systèmes embarqués 52 / 99


Exemple pratique

ER
HM
LA
PA5 : LED (sortie)
m
se
PC13 : Bouton (entrée)
us

Programme :
Ho

Si bouton appuyé : LED ON


Sinon : LED OFF

Houssem-eddine LAHMER Les systèmes embarqués 53 / 99


TIMER - À quoi ça sert?

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

Houssem-eddine LAHMER Les systèmes embarqués 54 / 99


Composants clés d’un TIMER

ER
HM
LA
m
Prédiviseur : Adapte la vitesse (ex: /16)
se
Compteur : Valeur qui augmente à chaque tick
us

Comparateur : Déclenche une action quand seuil atteint


Ho

Houssem-eddine LAHMER Les systèmes embarqués 55 / 99


PWM - Contrôle intelligent

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

Houssem-eddine LAHMER Les systèmes embarqués 56 / 99


Modes de fonctionnement

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

Synchronisation possible entre timers


Ho

Houssem-eddine LAHMER Les systèmes embarqués 57 / 99


Communiquer : comme une conversation

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

Houssem-eddine LAHMER Les systèmes embarqués 58 / 99


Parallèle vs Série : Le combat des câbles

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

Houssem-eddine LAHMER Les systèmes embarqués 59 / 99


Les 3 grands protocoles série

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

Houssem-eddine LAHMER Les systèmes embarqués 60 / 99


Principe de base du UART

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

Baud rate : 9600


8 bits de données
Ho

Pas de parité
1 bit de stop
Houssem-eddine LAHMER Les systèmes embarqués 62 / 99
SPI : La formule 1 des bus

Caractéristiques clés (Partie 1) Caractéristiques clés (Partie 2)

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

Figure: Schéma maître/esclaves du bus SPI


Houssem-eddine LAHMER Les systèmes embarqués 63 / 99
ARM - Le concepteur invisible

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

Houssem-eddine LAHMER Les systèmes embarqués 65 / 99


Architecture simplifiée d’un ARM

Fonctionnement du banc de registres

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

1 FETCH : Charge l’instruction Parallélisme d’instructions


DECODE : Décode l’opération Débit = 1 instruction/cycle
Ho

3 EXECUTE : Exécute la Optimisation des ressources


commande

Houssem-eddine LAHMER Les systèmes embarqués 67 / 99


PWM : Modulation de largeur d’impulsion – Définition et
Principe

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

Houssem-eddine LAHMER Les systèmes embarqués 69 / 99


PWM : Applications

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

Houssem-eddine LAHMER Les systèmes embarqués 70 / 99


Contrôle moteur avec L298N

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

Schéma de connexion L298N


Channels PWM dédiés
Ho

Houssem-eddine LAHMER Les systèmes embarqués 71 / 99


L’horloge : Le métronome du processeur

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

Chaque cycle dure 62.5 ns

Houssem-eddine LAHMER Les systèmes embarqués 72 / 99


Cas concrets

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

Houssem-eddine LAHMER Les systèmes embarqués 73 / 99


ADC : Analog To Digital Cnversion

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

Houssem-eddine LAHMER Les systèmes embarqués 74 / 99


Caractéristiques clés d’un ADC

ER
HM
LA
m
se
us

Résolution : 8/10/12/16 bits


Précision : ±1-3 LSB
Ho

Temps de conversion : 1us à


1ms
Houssem-eddine LAHMER Les systèmes embarqués 75 / 99
DAC : La voix analogique du numérique

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

Houssem-eddine LAHMER Les systèmes embarqués 76 / 99


Spécifications importantes d’un DAC

ER
HM
LA
Résolution : 8/10/12 bits
Temps d’établissement :
m
se
1us-10us Buffer de sortie
us

Tension de sortie : 0-3.3V Interface : Parallel/SPI/I2C


Linéarité : ±1 LSB
Ho

Houssem-eddine LAHMER Les systèmes embarqués 77 / 99


Comparaison ADC/DAC

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

Houssem-eddine LAHMER Les systèmes embarqués 78 / 99


Qu’est-ce qu’une interruption ?

Définition : Mécanisme permettant à un périphérique ou un

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

Houssem-eddine LAHMER Les systèmes embarqués 79 / 99


Cycle d’interruption sur Cortex-M
Détection de l’interruption par le contrôleur.

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

Figure: Cycle d’interruption (ARM Cortex-M).

Houssem-eddine LAHMER Les systèmes embarqués 80 / 99


Schéma global
Le contrôleur d’interruptions gère les demandes provenant de

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

Figure: Interaction CPU - Contrôleur d’interruptions - Périphériques.

Houssem-eddine LAHMER Les systèmes embarqués 81 / 99


Interruptions imbriquées
Priorité : Certaines interruptions peuvent interrompre une ISR moins
prioritaire.

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

Figure: Exemple d’interruptions imbriquées selon la priorité.


Houssem-eddine LAHMER Les systèmes embarqués 82 / 99
Table des vecteurs et adresses ISR
Table des vecteurs : Zone mémoire contenant les adresses de
chaque ISR.

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

Figure: Table des vecteurs (exemple simplifié).


Houssem-eddine LAHMER Les systèmes embarqués 83 / 99
Événement, INT, ISR et retour

ER
INT : Saut vers l’ISR.
IRET (ou BX LR en ARM) : Retour au programme principal.

HM
LA
m
se
us

Figure: Événement déclencheur, exécution de l’ISR, puis retour.


Ho

Houssem-eddine LAHMER Les systèmes embarqués 84 / 99


Introduction aux STM32

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

Houssem-eddine LAHMER Les systèmes embarqués 85 / 99


GPIO

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

Houssem-eddine LAHMER Les systèmes embarqués 86 / 99


Timers

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

Houssem-eddine LAHMER Les systèmes embarqués 87 / 99


Interruptions

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

Houssem-eddine LAHMER Les systèmes embarqués 88 / 99


PINOUT

ER
HM
LA
m
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 89 / 99


Introduction

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

Houssem-eddine LAHMER Les systèmes embarqués 90 / 99


Environnement de développement

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

Houssem-eddine LAHMER Les systèmes embarqués 91 / 99


Architecture des Couches Logicielles

ER
HM
LA
m
se
us
Ho

Houssem-eddine LAHMER Les systèmes embarqués 92 / 99


Architecture des Couches Logicielles

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

Houssem-eddine LAHMER Les systèmes embarqués 93 / 99


Pourquoi le C bas niveau en embarqué ?

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

Houssem-eddine LAHMER Les systèmes embarqués 94 / 99


Types de données en C embarqué

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

Éviter les types variables


Ho

Houssem-eddine LAHMER Les systèmes embarqués 95 / 99


Structure d’un programme C pour STM32

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

Houssem-eddine LAHMER Les systèmes embarqués 96 / 99


Utilisation de la bibliothèque HAL

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

Houssem-eddine LAHMER Les systèmes embarqués 97 / 99


Outils de débogage et bonnes pratiques

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

Houssem-eddine LAHMER Les systèmes embarqués 98 / 99


Conclusion

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

Houssem-eddine LAHMER Les systèmes embarqués 99 / 99

Vous aimerez peut-être aussi