0% ont trouvé ce document utile (0 vote)
43 vues8 pages

Introduction aux Microcontrôleurs et Binaire

Transféré par

Ababacar Sadikh Faye
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)
43 vues8 pages

Introduction aux Microcontrôleurs et Binaire

Transféré par

Ababacar Sadikh Faye
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

Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

À Propos de ce cours
Microcontroleurs I Qui ?
Introduction aux microcontrôleurs et Calcul I Pierre Corbineau (cours, TD)
binaire [Link]@[Link] b
I Sylvain Toru & Frédéric Rousseau (TD, TP)
[Link]@[Link] b
Pierre Corbineau [Link]@[Link] b
I Liliana Andrade (TP)
IESE3 S5
[Link]@[Link] b

2022–2023 I Pascal Reynaud (Ingénieur ST Microelectronics, TP)


Quoi ?
I Introduction à la programmation des microcontrôleurs
I Support : carte STM32F446-Nucleo (ARM Cortex-M4)
Où ? Quand ? Évaluation ?
Z Consultez ADE. exam écrit + exam TP b
Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023

Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

Qu’est-ce qu’un microcontrôleur (MCU) ? Exemple : le STM32F446


Un circuit programmable complet pour les applications
embarquées.
Programmable Contient un micro-processeur (CPU)
Autonome horloges, mémoires volatiles et non-volatiles
intégrées
Communiquant périphériques de communications
Polyvalent périphériques d’acquisition/génération de signaux
numériques et analogiques
I Faible coût et petite taille
I Basse consommation d’énergie et refroidissement passif
I Puissance de calcul limitée (≈ PC des années 1990)
I Stockage limité :
Données Peu de place pour stocker des données
Code Faible complexité du programme embarqué
Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023 Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023
Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

Information binaire et circuits numériques Groupes de bits couramment utilisés


Dans un circuit intégré numérique, l’information est codée dans
Le bit (Binary digIT) est l’unité de base de codage de
chaque fil en utilisant deux potentiels de référence :
l’information. Il est très souvent manipulé par groupes de taille
I La masse (GND = GrouND) 2n :
I L’alimentation positive (VDD = Voltage Drain Drain) ↑VDD I 4 bits forment un demi-octet (half-byte) ou nibble
I Un demi-octet peut prendre 24 = 16 valeurs différentes
Une ligne du circuit :
I 8 bits forment un octet (byte)
I est à l’état bas et porte le bit 0 si son potentiel est ≈GND
I Un octet peut prendre 28 = 256 valeurs différentes
I est à l’état haut et porte le bit 1 si son potentiel est ≈VDD
I 16 bits forment un demi-mot (half-word)
I transmet un front montant (rising edge) si elle transite de I Un demi-mot peut prendre 216 = 65536 valeurs différentes
l’état bas vers l’état haut. I 32 bits forment un mot (word)
I transmet un front descendant (falling edge) si elle transite I Un mot peut prendre 232 = 4294967296 valeurs différentes
de l’état haut vers l’état bas.
Attention : sur les circuits 16-bits historiques et les processeurs
Dans un circuit synchrone, chaque ligne se stabilise à l’état de type x86, le terme mot (word) désigne un groupe de 16 bits.
haut ou bas avant le top d’horloge suivant (fin/début du cycle).
Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023 Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023

Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

Terminologie, poids fort/poids faible Opérations bit à bit : principe


Dans un groupe de n bits (octet, mot, etc. . .), on numérote les
bits de droite à gauche en commençant à 0 :

(bn−1 bn−2 . . . b2 b1 b0 )2 Opération bit à bit :


I opération qui s’applique séparément sur chaque bit d’un
groupe de bits ou sur chaque paire de bits de même rang
I octet (b7 b6 b5 b4 b3 b2 b1 b0 )2 de deux groupes de bits.
I demi-mot (b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 )2 Exemples :
I mot I négation (NOT) bit à bit (complément à 1)
(b31 b30 b29 b28 b27 b26 b25 b24 b23 b22 b21 b20 b19 b18 b17 b16 b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 )2 I ET logique (AND) bit à bit
I Le bit le plus à gauche bn−1 est appelé bit de poids fort I OU logique (OR) bit à bit
I En anglais MSB = Most Significant Bit
I OU EXCLUSIF logique (XOR/EOR) bit à bit
I Le bit le plus à droite b0 est appelé bit de poids faible
I En anglais LSB = Least Significant Bit
Cette terminologie est liée au codage des nombres en binaire.
On parle aussi de d’octet de poids fort/faible dans un mot. . .
Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023 Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023
Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

Opérations bit à bit : Complément à 1 Opérations bit à bit : OU logique

Le complément à 1 consiste à inverser tous les bits d’un groupe Le OU logique combine deux bits et vaut 1 si l’un au moins des
de bits (remplacer 1 par 0 et inversement). bits vaut 1.
La négation du bit x se note x̄ : I 0 OU 0 = 0, 0 OU 1 = 1, 1 OU 0 = 1, 1 OU 1 = 1,
I 0̄ = 1 et 1̄ = 0 Exemple :
Exemple :
(01101011)2 OU(00110110)2 = ( . . . . . . . . . . . . . . . . . . )2
(01101011)2 = ( . . . . . . . . . . . . . . . . . . . . )2 Utilisations :
Utilisations : I Masque pour mettre des bits à 1.
I En combinaison avec le ET bit à bit (masques).
(b7 b6 b5 b4 b3 b2 b1 b0 )2 OU(00110110)2 = ( . . . . . . . . . . . . . . . . . . )2
I Calcul du complément à 2.
I En assembleur : mvn (MoVe Not) I En assembleur : orr, orn (OR Not)
I En C : ∼ (tilda = AltGr+2) I En C : | ("pipe" = AltGr+6)

Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023 Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023

Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

Opérations bit à bit : ET logique Opérations bit à bit : OU EXCLUSIF logique


Le ET logique combine deux bits et vaut 1 si les deux bits
Le OU EXCLUSIF logique combine deux bits et vaut 1 si
valent 1.
exactement un des deux bits vaut 1.
I 0 ET 0 = 0, 0 ET 1 = 0, 1 ET 0 = 0, 1 ET 1 = 1,
I 0 OUex 0 = 0, 0 OUex 1 = 1, 1 OUex 0 = 1, 1 OUex 1 = 0,
Exemple :
Exemple :
(01101011)2 ET(00110110)2 = ( . . . . . . . . . . . . . . . . . . )2
Utilisations : (01101011)2 OUex (00110110)2 = ( . . . . . . . . . . . . . . . . . . )2
I Masque pour isoler un bit ou plusieurs bits.
Utilisations :
(b7 b6 b5 b4 b3 b2 b1 b0 )2 ET(00110000)2 = ( . . . . . . . . . . . . . . . . . . )2 I Masque pour inverser des bits.
I Masque pour mettre des bits à 0.
(b7 b6 b5 b4 b3 b2 b1 b0 )2 OUex (00110110)2 = ( . . . . . . . . . . . . . . . . . . )2
(b7 b6 b5 b4 b3 b2 b1 b0 )2 ET(00110110)2 = ( . . . . . . . . . . . . . . . . . . )2
I En assembleur : eor (Exclusive OR)
I En assembleur : and, bic (BIt Clear = ET NON). I En C : ^ (= AltGr+9 ou circonflexe + espace).
I En C : & ("esperluette","ampersand")
Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023 Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023
Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

Numération de position Conversion binaire → décimal

Principe de l’écriture en base B avec (B > 0) : Première technique (vue au transparent précédent)
I B symboles distincts pour exprimer les quantités 0 à B − 1. I Appliquer la formule (bn−1 . . . b1 b0 )2 = n−1
P i
i=0 bi × 2
I Chaque symbole à un poids B fois plus grand que le même
Deuxième technique (formule de Horner)
symbole positionné immédiatement à sa droite. I On lit les bits de gauche à droite
I Valeur : (cn−1 . . . c1 c0 )B = n−1 i
P
i=0 ci × B I poids fort vers poids faible
Exemple de valeur numérique d’un mot binaire (B=2) : I On utilise un accumulateur N initialisé à 0.
I quand on lit un bit 0 : N ← 2 × N.
bit b7 b6 b5 b4 b3 b2 b1 b0 I quand on lit un bit 1 : N ← 2 × N + 1.
poids 27 26 25 24 23 22 21 20 bit b7 b6 b5 b4 b3 b2 b1 b0
exemple 0 1 1 0 1 0 1 1 exemple 0 1 1 0 1 0 1 1
bi × 2i N (0)
valeur ( . . . . . . )10

Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023 Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023

Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

Conversion décimal → binaire Notation hexadécimale


Hexadécimal :
I Notation en base 16 avec 16 symboles distincts :
Méthode : Horner à l’envers I les chiffres arabes 0 à 9
I les lettres latines a à f ou A à F (pour les valeurs 10 à 15)
I On écrit de droite à gauche les divisions successives du
nombre à convertir par 2, jusqu’à obtenir 0. I Un chiffre en base 16 peut remplacer 4 bits
I Les restes des divisions donnent les bits de l’écriture I Hexadécimal = représentation compacte du binaire
I 32 bits = 8 chiffres hexa (ex : 0xdeadbeef)
binaire, du poids faible au poids fort.
Table de correspondance :
bit b7 b6 b5 b4 b3 b2 b1 b0 0 1 2 3 4 5 6 7
exemple 54 0000 0001 0010 0011 0100 0101 0110 0111
reste 8 9 a/A b/B c/C d/D e/E f/F
1000 1001 1010 1011 1100 1101 1110 1111

Exemple : (01101011)2 = (6b)16 = 0x6b (Notation


C/assembleur).
Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023 Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023
Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

Addition des nombres binaires non-signés Limites de la représentation des nombres


Principe : Les nombres entiers re-
I On additionne deux nombres binaires de même taille. présentés en machine (11111111)2 (00000000)2
(ici sur 8 bits) ne sont
I bit retenue=1 si on additionne au moins deux bits à 1
pas des nombres en- (255)10 (0)10
(retenue entrante comprise)
tiers mathématiques (en-
I bit résultat=1 si on additionne 1 ou 3 bits à 1 (retenue semble N) : ils se com-
entrante comprise) portent de manière cy-
I La retenue sortante au poids fort est stockée séparément clique comme l’ensemble − Z/256Z +
du résultat, dans l’indicateur C (Carry). Z/256Z.
Exemple :
bit (C) b7 b6 b5 b4 b3 b2 b1 b0 Débordement :
retenue 0 I indicateur Carry (128)10 (127)10
1 0 1 0 1 0 1 1
+ 1 0 1 1 0 0 1 1 Et si on veut représenter (10000000)2 (01111111)2
résultat les nombres négatifs ?

Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023 Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023

Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

Représentation des nombres négatifs Complément à 2


Pour représenter les
nombres négatifs, on (11111111)2 (00000000)2 Principe du complément à 2 :
choisit de donner au bit
de poids fort un poids I passer de la représentation binaire de N à celle de −N
(−1)10 (0)10
négatif (-128) : il devient I remarque sur le complément à 1 :
le bit de signe. On parle
alors de nombres signés. (xxxxxxxx)2 + (xxxxxxxx)2 = (11111111)2 = −1
− Z/256Z + I d’où (en ignorant la retenue car nombres signés) :
I (0xxxxxxx)2 :
nombre positif (xxxxxxxx)2 + ((xxxxxxxx)2 + 1) = (00000000)2 = 0
I (1xxxxxxx)2 :
nombre négatif (−128)10 (127)10 I donc si N = (xxxxxxxx)2 , alors −N = (xxxxxxxx)2 + 1
On appelle (xxxxxxxx)2 + 1 le complément à 2 de (xxxxxxxx)2 .
Débordement : (10000000)2 (01111111)2
I indicateur oVerflow
Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023 Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023
Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

Addition des nombres signés Soustraction

L’addition des nombres signés en complément à 2 :


En arithmétique signée ou non-signée, on soustrait un nombre
I Même résultat en binaire que l’addition des nombres
en additionnant son complément à 2 :
non-signés de même représentation binaire.
I L’indicateur C (Carry) n’indique plus un débordement. A − B = A + (−B) = A + (B + 1)
I On utilise un autre indicateur : oVerflow (indicateur V)
I L’indicateur C vaut 0 en cas de débordement non-signé ( si
Le débordement signé correspond à deux cas possibles : A < B ).
I L’ajout de deux nombres positifs donne un résultat négatif. I L’indicateur V (de l’addition) indique toujours un
I L’ajout de deux nombres négatifs donne un résultat positif. débordement signé.
Dans ces cas-là, l’indicateur V vaut 1, sinon il vaut 0.

Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023 Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023

Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

Multiplication Multiplication : exemple non-signé

bit b15b14b13b12b11b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0
En général, il faut 2n bits pour stocker le résultat de la 1 1 1 0 1 0 1 1
multiplication de deux mots de n bits. × 1 0 1 1 0 0 1 1
I Si on tronque le resultat à n bits, ce résultat ne dépend pas 1
du codage (signé/non-signé). 1
I instruction assembleur mul 0
I Si on garde les 2n bits, alors il faut traiter différemment le 0
cas de la multiplication signée et de la multiplication 1
non-signée. 1
I 2 instructions assembleurs distinctes umull et smull. 0
1
résultat

Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023 Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023
Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

Décalage à gauche Décalage logique à droite

I LSL = Logical Shift Left I LSR = Logical Shift Right


I paramètre = nombre de positions à décaler I paramètre = nombre de positions à décaler
I bits de poids faible remplis avec des 0 I bits de poids fort remplis avec des 0
I indicateur C = dernier bit qui sort I indicateur C = dernier bit qui sort
Exemple : décalage à gauche de 3 Positions. Exemple : décalage logique à droite de 3 Positions.

Interprétation arithmétique : multiplication par 2n . Interprétation arithmétique : division par 2n (non-signé).


Utilisation : création de masques. Utilisation : avec un masque ET pour récupérer des bits.

Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023 Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023

Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

Décalage arithmétique à droite Rotations


I ROR = ROtation Right, RRX = Rotation Right eXtended
I paramètre = nombre de positions à décaler (ROR
I ASR = Arithmetic Shift Right seulement)
I paramètre = nombre de positions à décaler I indicateur C = dernier bit qui sort (et rerentre)
I bits de poids fort remplis avec des copies du bit de signe Exemple : rotation à droite de trois positions
I indicateur C = dernier bit qui sort
Exemple : décalage arithmétique à droite de 3 Positions.

Rotation RRX étendue à l’indicateur C :


I toujours une seule position vers la droite

Interprétation arithmétique : division par 2n (signé).

Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023 Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023
Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule Introduction Codage binaire Codage des nombres Arithmétique Décalages et rotations Arithmétique à Virgule

Calcul à virgule fixe Les nombres à virgule flottante


Principe :
I Manipuler une valeur entière proportionnelle à la valeur à
virgule souhaitée Exemple : les nombres simple précision IEEE754 du STM32F4.
I Correspond à une fraction dont le dénominateur est I format binaire
implicite (seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm)2
I Additions faciles si même dénominateur implicite I S (1 bit) : signe
I Toujours faire les multiplications avant les divisions en I E (8 bits) : exposant entre 1 et 254
faisant attention aux débordements. I cas particuliers pour E = 0 et E = 255
Intérêt : I M (23 bits) : mantisse entre 1 (inclus) et 2 (exclus)
I Utilise uniquement des nombres entiers (calculs efficaces) I Représente le nombre rationel (−1)S × M × 2(E−127)
I Pas besoin de FPU (Floating-Point Unit) → moins cher. I Précision relative : 2−23 ≈ 10−7
Inconvénients :
Attention aux erreurs d’arrondi et aux tests d’égalité !
I Nécessite une analyse préalable des ordres de grandeur.
I Contrainte forte sur la dynamique des valeurs
représentables.
Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023 Microcontroleurs I — P. Corbineau Cours 0 IESE3 S5 — 2022–2023

Vous aimerez peut-être aussi