1 of 28

LE CODAGE BINAIRE

2 of 28

L'homme calcule depuis 2000 ans avant Jésus-Christ avec 10 chiffres (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), on parle alors de base décimale (ou base 10).

Toutefois dans des civilisations plus anciennes ou pour certaines applications actuelles d'autres bases de calcul ont et sont toujours utilisées :

base sexagésimale (60), utilisée par les Sumériens. Cette base est également utilisée dans le système horaire actuel, pour les minutes et les secondes ;

base vicésimale (20), utilisée par les Mayas ;

base duodécimale (12), utilisée par les anglo-saxons dans leur système monétaire jusqu'en 1960 : un « pound » représentait vingt « shilling » et un « shilling » représentait douze « pences ». Le système d'heure actuel fonctionne également sur douze heures (notamment dans la notation anglo-saxonne) ;

base quinaire (5), utilisée par les Mayas ;

base binaire (2), utilisée par l'ensemble des technologies numériques.

1 Qu’est ce qu’une base ?

3 of 28

Les bases en technologie numérique :

La base 2 : le binaire

Ses Unités :

      • le bit (0 et 1)
      • Le quartet : regroupement de 4 bits
      • L’octet : regroupement de 8 bits
      • LE mot : regroupement de 16 bits.

La base 16 : l’hexadécimale

0 à 9 puis A, B, C, D, E, F

Cette base permet le comptage des mots binaires :

1 caractère Hexa = 1quartet sur 4 bits = valeur de 0 à 15

Exemple :

4 of 28

Présentation du binaire

Vers la fin des années 30, Claude Shannon démontra qu'à l'aide de « contacteurs » (interrupteurs) fermés pour « vrai » et ouverts pour « faux » il était possible d'effectuer des opérations logiques en associant le nombre 1 pour « vrai » et 0 pour « faux ».

Ce codage de l'information est nommé base binaire.

C'est avec ce codage que fonctionnent les ordinateurs. Il consiste à utiliser deux états (représentés par les chiffres 0 et 1) pour coder les informations.

2 Pourquoi le binaire ?

5 of 28

Binaire et électricité ?

La connaissance du binaire est nécessaire lorsque des systèmes numériques et informatiques sont utilisés, notamment sur les systèmes industriels :

  • Les codeurs incrémentaux

  • Les codeurs absolus

  • Les convertisseurs CAN et CNA

  • La transmission de données numérique

  • Mais aussi en tertiaire et domotique :
  • Les systèmes connectés pour la maison intelligente.

6 of 28

3 - Le Bit

Le terme bit (b avec une minuscule dans les notations) signifie « binary digit », c'est-à-dire les chiffres ZERO ou UN en numérotation binaire. Il s'agit de la plus petite unité d'information manipulable par une machine numérique. Il est possible de représenter physiquement cette information binaire :

par un signal électrique, magnétique ou lumineux , qui, au-delà d'un certain seuil, passe directement de la valeur 0 à la valeur 1 ;

grâce à des bistables, c'est-à-dire des composants électroniques qui ont deux états d'équilibre (l'un correspond à l'état 1, l'autre à 0).

 

Avec 1 bit il est ainsi possible d'obtenir deux états :

soit 1, soit 0.

7 of 28

Grâce à 2 bits, il est possible d'obtenir 4 états différents (2*2) :

Valeur binaire sur 2 bits

Valeur décimale

4 combinaisons

00

0

01

1

10

2

11

3

Avec 3 bits, il est possible d'obtenir 8 états différents (2*2*2) :

Valeur binaire sur 3 bits

Valeur décimale

8 combinaisons

000

0

001

1

010

2

011

3

100

4

101

5

110

6

111

7

Etc…Pour un groupe de n bits, il est possible de représenter 2^n valeurs.

8 of 28

Avec 3 bits, il est possible d'obtenir 8 états différents (2*2*2) :

Valeur binaire sur 3 bits

Valeur décimale

8 combinaisons

000

0

001

1

010

2

011

3

100

4

101

5

110

6

111

7

Etc…Pour un groupe de n bits, il est possible de représenter 2^n valeurs.

Application : Continuer le comptage après le chiffre 7 :

Valeur binaire

Valeur décimale

9 of 28

Poids des bits

Dans un nombre binaire, la valeur d'un bit, appelée poids, dépend de la position du bit en partant de la droite.

A la manière des dizaines, des centaines et des milliers pour un nombre décimal, le poids d'un bit augmente d'une puissance de 2 en allant de la droite vers la gauche comme le montre la flèche rouge dans le tableau suivant :

Poids

2^7 = 128

2^6 = 64

2^5 = 32

2^4 = 16

2^3 = 8

2^2 = 4

2^1 = 2

2^0 = 1

Nombre binaire

1

0

1

1

0

1

1

1

Poids le plus fort

Poids le plus faible

Application : Quel est le bit de poids fort de ce nombre : 10110111

Quelle est sa valeur décimale ?

Application : Quel est le bit de poids faible de ce nombre : 10110110

Quelle est sa valeur décimale ?

En comparant les bits de poids faible, Que constatez-vous ?

10 of 28

4 - L’OCTET (BYTE)

L'octet (en anglais byte ou B avec une majuscule dans les notations) est une unité d'information composée de 8 bits. Il permet par exemple de stocker un caractère, tel qu'une lettre ou un chiffre.

Byte = de 0000 0000

à 1111 1111

Un quartet

Ce regroupement de nombres par série de 8 permet une meilleure lisibilité, au même titre que l'on apprécie, en base décimale, de regrouper les nombres par trois pour pouvoir distinguer les milliers. Le nombre « 1 256 245 » est par exemple plus lisible que « 1256245 ».

Pour un octet, le plus petit nombre est 0 (représenté par huit ZERO 0000 0000), et le plus grand est 255 (représenté par huit UN : 1111 1111), ce qui représente 256 possibilités de valeurs différentes.

2^7 =128

2^6 =64

2^5 =32

2^4 =16

2^3 =8

2^2 =4

2^1 =2

2^0 =1

Décimal

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

128

1

1

1

1

1

1

1

1

255

11 of 28

5 - Le MOT (WORD) :

Une unité d'information composée de 16 bits est généralement appelée MOT (en anglais WORD). Un « WORD » peut coder des valeurs de 0 à 65535 (soit 2^16-1)

WORD : de 0000 0000 0000 0000

à 1111 1111 1111 1111

Dans un automate, il s’écrira %MW x (Par exemple %MW 0)

Une unité d'information de 32 bits de longueur est appelée MOT DOUBLE (en anglais DOUBLE WORD, d'où l'appellation DWORD). Un « DWORD » peut coder des valeurs de 0 à 4 294 967 295 (soit 2^32-1)

Dans un automate, il s’écrira %MD x (Par exemple %MD 0)

Dword : De 0000 0000 0000 0000 0000 0000 0000 0000

à 1111 1111 1111 1111 1111 1111 1111 1111

les DWORD sont souvent signés + ou - et ne comportent que 31 bits de valeurs. Le dernier bit (de poids fort) comportant le signe + ou -.

12 of 28

KiloOctets, MégaOctets

Longtemps l'informatique s'est singularisée par l'utilisation de différentes valeurs pour les unités du système international. Ainsi beaucoup d'informaticiens ont appris que 1 kilooctet valait 1024 octets. Or, depuis décembre 1998, l'organisme international IEC a statué sur la question.

(http://physics.nist.gov/cuu/Units/binary.html).

Voici donc les unités standardisées :

Un kilooctet (ko ou kB) = 1000 octets

Un Mégaoctet (Mo ou MB) = 1000 ko = 1 000 000 octets

Un Gigaoctet (Go ou GB) = 1000 Mo = 1 000 000 000 octets

Un Téraoctet (To) = 1000 Go = 1 000 000 000 000 octets

Attention ! De nombreux logiciels (parfois même certains systèmes d'exploitation) utilisent toujours la notation antérieure à 1998 pour laquelle :

Un kilooctet (ko) = 2^10 octets = 1024 octets

Un Mégaoctet (Mo) = 2^20 octets = 1024 ko = 1 048 576 octets

Un Gigaoctet (Go) = 2^30 octets = 1024 Mo = 1 073 741 824 octets

Un Téraoctet (To) = 2^40 octets = 1024 Go = 1 099 511 627 776 octets

Il est également utile de noter que la communauté internationale dans son ensemble utilise préférentiellement le nom de « byte » plutôt que le terme « octet » purement francophone. Cela donne les notations suivantes pour kilobyte, mégabyte, gigabyte et terabyte :

Voici une capture d'écran du logiciel Internet Explorer, navigateur internet, montrant l'utilisation de cette notation :

13 of 28

6 - Les Conversions

Conversion de décimal à binaire :

Préparer un tableau de 8 colonnes

Notez les 8 valeurs suivantes en titre de colonne : 128, 64, 32, 16, 8, 4, 2, 1

Voir la vidéo explicative : https://youtu.be/_kpAWHDsVzA

Prenons par exemple ce nombre : 29

Résultat : 29 = 16+8+4+1 donc correspond au nombre 00011101

Prenons un autre nombre (au hasard ?) : 63.

Comme 63 est juste avant 64 (qui est en septième position),

cela donne 6 « 1 » à la suite : 111111

14 of 28

Conversion de binaire à décimal, c’est encore plus simple :

C’est le même principe mais à l’envers : on additionne les poids qui ont une valeur « 1 » :

Pour convertir un mot binaire en nombre décimal, il suffit de multiplier la valeur de chaque bit par son poids, puis d'additionner chaque résultat. Ainsi, le mot binaire 0101 vaut en décimal :

Poids

2^3 = 8

2^2 = 4

2^1 = 2

2^0 = 1

Nombre binaire

0

1

0

1

0101 = 8x0 + 4x1 + 2x0 + 1x1

= 0 + 4 + 0 + 1�0101 = 5

Autre exemple : 1001101 = (1x64)+ (0x32)+ (0x16)+ (1x8)+ (1x4)+ (0x2)+ (1x1)

Ce qui donne 1+4+8+64 = 77

Donc 1001101 = 77

15 of 28

Opérations en binaire

Les opérations arithmétiques simples telles que l'addition, la soustraction et la multiplication sont faciles à effectuer en binaire.

Addition binaire

L'addition en binaire se fait avec les mêmes règles qu'en décimale : �On commence à additionner les bits de poids faible (les bits de droite) puis on a des retenues lorsque la somme de deux bits de même poids dépasse la valeur de l'unité la plus grande (dans le cas du binaire : 1), cette retenue est reportée sur le bit de poids plus fort suivant...

Par exemple :

0

1

1

0

1

+

0

1

1

1

0

=

1

1

0

1

1

Multiplication binaire

La table de multiplication en binaire est très simple :

c’est un ET logique, donc le 0 est « prioritaire » et le 1 est « transparent »

0 x 0 = 0

0 x 1 = 0

1 x 0 = 0

1 x 1 = 1

La multiplication binaire s’effectue selon le principe des multiplications décimal, on multiplie donc le multiplicande par chacun des bits du multiplicateur. On décale les résultats intermédiaires obtenus et on effectue ensuite l’addition de ses résultats partiels.

Par exemple :

1

0

1

multiplicande

x

0

1

0

multiplicateur

0

0

0

+

1

0

1

+

0

0

0

=

1

0

1

0

16 of 28

7 - LES DIFFÉRENTES FORMES DE CODAGE BINAIRE.

    • Le codage naturel

    • Le codage BDC

    • Le codage GRAY

    • Le code ASCII

    • La conversion CNA , CAN
  • https://www.dcode.fr/

17 of 28

7-1 Code binaire naturel

Ce code utilise l’expression naturelle du nombre en base 2 (système de numération binaire). Il est donc intéressant pour effectuer les opérations arithmétiques.

BASE10

23

22

21

20

0

0

0

0

0

1

0

0

0

1

2

0

0

1

0

3

0

0

1

1

4

0

1

0

0

5

0

1

0

1

6

0

1

1

0

7

0

1

1

1

8

1

0

0

0

9

1

0

0

1

10

1

0

1

0

11

1

0

1

1

12

1

1

0

0

13

1

1

0

1

14

1

1

1

0

15

1

1

1

1

Codage binaire naturel sur 4 bits jusqu’à 16 :

On peut constater que la colonne 20 change d’état à chaque ligne,

la colonne 21 change d’état toutes les 2 ligne,

la colonne 22 change toutes les 4 ligne, etc…

Le principal inconvénient de ce système (pour le comptage, par exemple) est que plusieurs bits changent en même temps (Exemple : de 7 à 8, tous les bits changent en même temps)

18 of 28

7-2 Code de Gray ou binaire réfléchi

Article détaillé : Code de Gray.

Le code de Gray, également appelé binaire réfléchi, permet de ne faire changer qu'un seul bit à la fois quand un nombre est incrémenté ou décrémenté d'une unité. Le nom du code vient de l'ingénieur américain Frank Gray, qui déposa un brevet sur ce code en 19472.

Code de Gray dans un codeur optique rotatif absolu à 13 pistes. Les treize pistes apparaissent sur tout le tour de la couronne située au niveau des deux vis cruciformes.

19 of 28

Principe et exemple

Le code de Gray est un codage binaire, c'est-à-dire une fonction qui associe à chaque nombre une représentation binaire. Cette méthode est différente du codage binaire naturel.

Le tableau suivant montre le codage sur 4 bits.

Codage décimal

Codage binaire naturel

Codage Gray ou binaire réfléchi

0

0000

0000

1

0001

0001

2

0010

0011

██

3

0011

0010

4

0100

0110

██

5

0101

0111

███

6

0110

0101

█ █

7

0111

0100

Pour approfondir :

Pour calculer directement le code de Gray d'un entier à partir de celui de son prédécesseur on peut procéder ainsi :

lorsqu'il y a un nombre pair de ‘1’ on inverse le dernier bit ;

lorsqu'il y a un nombre impair de ‘1’ on inverse le bit directement à gauche du 1 le plus à droite.

La différence principale entre les deux est le fait que le codage de Gray de deux nombres consécutifs ne diffère que d'une position. Par exemple 5 est codé par 0111, et 6 est codé par 0101 : seul le troisième bit change.

 

https://upload.wikimedia.org/wikipedia/commons/a/a8/Gray_code_rotary_encoder_13-track_opened.jpg

20 of 28

7-3 Décimal codé binaire (DCB, ou BCD pour binary coded decimal)

Article détaillé : Décimal codé binaire.

Afin de concilier la logique binaire de l'ordinateur avec la logique humaine, on peut convertir en binaire, plutôt que les nombres eux-mêmes, chacun des chiffres qui les composent en notation décimale positionnelle. Chacun de ces chiffres est alors codé sur 4 bits :

1994 = 0001 1001 1001 0100 1×1000 + 9×100 + 9×10 + 4×1

Avec n bits (n multiple de 4), il est possible de représenter les nombres entre 0 et 10n/4-1. Soit approximativement entre 0 et 1.778n-1. Le DCB est un code redondant, en effet certaines combinaisons ne sont pas utilisées (comme 1111 par exemple).

Cette représentation évite par construction tous les problèmes gênants de cumul d'arrondi qui interviendraient lors de la manipulation de grands nombres dépassant la taille des circuits en arithmétique entière et obligent à recourir au flottant. Il est cependant possible de manipuler des nombres à précision arbitraire en utilisant un codage plus efficace que le DCB.

21 of 28

7-4 Le code ASCII (source wikipedia)

L'American Standard Code for Information Interchange (Code américain normalisé pour l'échange d'information), plus connu sous l'acronyme ASCII ([askiː]), est une norme informatique de codage de caractères apparue dans les années 1960.

C'est la norme de codage de caractères la plus influente à ce jour. ASCII définit 128 codes à 7 bits, comprenant 95 caractères imprimables : les chiffres arabes de 0 à 9, les lettres minuscules et capitales de A à Z, et des symboles mathématiques et de ponctuation.

Les limitations du jeu de caractères ASCII sont encore sensibles au XXIe siècle, par exemple dans le choix restreint de caractères généralement offerts pour composer une adresse email.

Les standards ASCII

Standards ASCII des États-Unis (les standards hérités, et le standard en vigueur) :

ASA X3.4-1963, (incomplet avec 28 positions libres, et un code de commande non assigné) ;

USASI X3.4-1968 (renommé rétroactivement ANSI X3.4-1968), ne normalisait pas encore toutes les positions ;

ANSI X3.4-1977 ;

ANSI X3.4:1986 (en 1986, et en vigueur aujourd'hui).

22 of 28

L’intérêt du code ASCII pour un système informatique (ordinateur, automate….) est de convertir un nombre binaire en caractère compréhensible et de crée des mots et des phrases :

Toutes les lettres et chiffres que vous lisez en ce moment sur ce document sont traduits en nombres binaires grâce au code ASCII par votre ordinateur ou votre Smartphone.

23 of 28

8 - La Conversion CNA / CAN

(Convertisseur Numérique – Analogique) / (Convertisseur Analogique - Numérique)

https://fr.wikipedia.org/wiki/Convertisseur_num%C3%A9rique-analogique

En introduction, voici 3 vidéos de vulgarisation vous permettant de comprendre dans le détail les principes de cette conversion :

24 of 28

8-1 Convertisseur CAn Analogique vers numérique (utilisé pour une entrée analogique)

Un convertisseur analogique-numérique (CAN, parfois convertisseur A/N, ou en anglais ADC pour Analog to Digital Converter ou plus simplement A/D) est un montage électronique dont la fonction est de traduire une grandeur analogique en une valeur numérique (codée sur plusieurs bits), proportionnelle au rapport entre la grandeur analogique d'entrée et la valeur maximale du signal.

convertisseur analogique-numérique

MCP3008 de chez Motorola

Le signal converti est le plus souvent une tension électrique.

Il existe plusieurs techniques pour convertir un signal analogique en signal numérique. Elles sont classées ici dans l'ordre de la moins rapide à la plus rapide.

25 of 28

Convertisseur CAn à simple rampe

On réalise au moyen d'un compteur et d'un convertisseur numérique-analogique une rampe de tension. Un comparateur arrête le compteur lorsque la tension créée par le CNA atteint la tension à convertir. Le compteur indique alors le résultat sur N bits, qui peut être stocké ou traité.

26 of 28

8-2 Convertisseur CnA numérique vers Analogique (utilisé par exemple pour une sortie analogique)

Un convertisseur numérique-analogique (CNA, de N/A pour numérique vers analogique ou, en anglais, DAC, de D/A pour Digital to Analog Converter) est un composant électronique dont la fonction est de transformer une valeur numérique (codée sur plusieurs bits) en une valeur analogique proportionnelle à la valeur numérique codée.

Généralement la sortie du convertisseur est une tension électrique, mais certains convertisseurs ont une sortie en courant.

Il existe plusieurs solutions pour créer un signal analogique à partir d'un système numérique. Elle se divise en deux catégories, celles à sortie pseudo analogique (le signal en sortie contient le message analogique, mais d'autres signaux s'ajoutent à lui) ou à sortie analogique. Dans ce dernier cas, on utilise généralement des convertisseurs à réseau de résistances.

27 of 28

Convertisseur CnA de type Sortie analogique : Réseau de résistances

La conversion analogique à réseau de résistances repose sur le principe de la division des tensions (pont diviseur pour le réseau unaire) ou de division des courants (réseau R/2R). Dans tous les cas une adaptation d'impédance suit le montage résistif pour qu'une charge en sortie ne perturbe pas la conversion.

Avec :

  • Vref = maximum de la conversion
  • k = rapport de proportionnalité
  • n = nombre de bits du convertisseur
  • an = valeur du bit n (1 ou 0)

 

Valeur numérique

28 of 28

Convertisseur CnA par MLI :

Sortie pseudo analogique : Modulation de largeur d'impulsion

Le principe de la modulation de largeur d'impulsion (MLI, ou PWM en anglais) est de créer un signal d'horloge dont le rapport cyclique est variable et proportionnel à la valeur codée.

Si l'on extrait la moyenne de ce signal (au moyen d'un filtre passe-bas), on obtient une valeur analogique proportionnelle à ce rapport cyclique.

Rapport cyclique (Valeur numérique, généralement sous forme de WORD)

PWM

Signal de sortie (après pré-filtrage)

Signal de sortie (lissé)

C’est le principe utilisé sur les modules ARDUINO :

Autre site de documentation : https://sitelec.org/cours/abati/cna.htm

Consigne numérique* générée par le système

Impulsions de largeur proportionnelle à la consigne

Tension résultante après un premier filtrage

Tension finale

* Cette valeur (WORD) est souvent comprise entre

0 et 10000 points

Valeur numérique

MLI

Pré-filtre

Lissage

Tension

0010101