Le clavier
d'ordinateur

I - Présentation

Un clavier d'ordinateur est un périphérique constitué de multiples touches, le plus souvent en plastique. Celles-ci permettent à l'utilisateur d'entrer des données (la plupart du temps du texte) dans un ordinateur. Par exemple il suffit à l'utilisateur d'appuyer sur la touche A pour que cette lettre apparaisse à l'écran.

Un clavier d'ordinateur
Vous pouvez tester votre clavier ici !

Inventé dans les années 1960, les claviers sont très répandus aujourd'hui et se présentent sous de nombreuses formes, notamment pour s'adapter aux différents langages du monde entier.

Les japonais ayant un alphabet différent du notre, il existe des claviers adaptés.
Les claviers ont bénéficié d'innovations.
Avec l'apparition des téléphones portables puis des smartphones, il a fallu adapter la technologie du clavier pour ces "mini-ordinateurs" modernes.

II - Fonctionnement

La cavier est relié grâce à un cable à l'ordinateur. On utilise traditionnellement des cables PS/2 mais les clavier connectés par cable USB sont aujourd'hui plus vendus.

Les ports PS/2, souvent présents à l'arrière de l'unité centrale. Vert pour la souris, violet pour le clavier.
Les claviers plus modernes sont connectés avec un cable USB.

On s'intéresse au cable PS/2 : à l'intérieur on retrouve 6 fils électriques.

Schéma d'un port PS/2 : six broches, certaines permettent d'alimenter le clavier et d'autres de transporter de l'information.

Quand une touche du clavier est enfoncée, les fils 1 et 5 sont ceux utilisés pour transporter l'information. Le fil 1 est appelé DATA ou "données" en français, alors que le fil 5 porte le nom CLK, qui vient de "clock", donc "horloge" en français.


Quand aucune touche n'est pressée, les fils DATA et CLK transmettent en continu une tension de 5V (volts). Dès que l'utilisateur appuie sur une touche du clavier, la tension du fil CLK chute à 0V, puis revient à 5V, et ce 11 fois de suite en moins d'une milliseconde. Ensuite, il redevient stable à 5V. Quant à la tension du fil DATA, il chute à 0V, puis semble osciller étrangement entre 0 et 5V et enfin redevient lui aussi stable à 5V.

Le signal transmis par les fils DATA (en bleu) et CLK (en rouge) quand la touche Entrée est pressée.

III - Lecture des signaux

En réalité, l'oscillation du signal DATA n'est pas aléatoire du tout. Il transmet, parfaitement synchronisé avec le signal CLK, 11 bits (on rappelle qu'un bit est littéralement un "chiffre binaire", c'est-à-dire un chiffre dont la valeur est 0 ou 1). Le signal DATA pourrait par exemple transmettre l'information 01110100011.


Comment l'ordinateur transforme-t-il le signal électrique DATA qu'il reçoit en 11 bits ?
Il utilise pour cela le signal CLK. On a dit que le signal CLK passe de 5 à 0V 11 fois, et que le signal DATA transmet 11 bits : ce n'est pas une coincidence ! L'ordinateur mesure en continu la tension du signal CLK et à chaque fois que celle-ci chute à 0V, l'ordinateur mesure la tension transmise par le fil DATA : si celle-ci vaut 5V, l'ordinateur considère que le bit transmis vaut 1, sinon c'est un 0. On dit que la lecture des données par l’ordinateur se fait sur le front descendant du signal CLK. Ainsi, après les 11 chutes de tension du signal CLK, l'ordinateur a récupéré 11 bits.

Animation de la lecture du signal DATA grâce au signal CLK, après que la touche Entrée ait été pressée.

Et ainsi, l'ordinateur vient de transformer en une fraction de seconde, le signal électrique reçu par le clavier en donnée numérique.


Mais alors, quelles informations ces 11 bits transportent-ils ?
Ils transportent 4 types d'informations différentes, présentées dans le tableau suivant.

Type d'information Bit start Bits de données Bit de parité Bit stop
Nombre de bits alloués (total = 11) 1 8 1 1
Utilité Indique que les données vont être transmises à partir du bit suivant Contient l'information envoyée à l'ordinateur Permet de vérifier que l'information reçue est bien celle qui a été envoyée Indique la fin de l'envoi des données
Valeur Vaut toujours 0 Données à envoyer Vaut 1 si la somme des 8 bits de données est paire, 0 sinon Vaut toujours 1
Tableau présentant les informations transmises par les 11 bits du signal DATA après avoir appuyé sur une touche du clavier

Dans l'animation précédente l'ordinateur récupère du signal électrique les 11 bits suivants : 00101101011. Il sait qu'il peut les découper ainsi 0-01011010-1-1 et que le premier 0 correspond au bit start, que 01011010 sont les 8 bits de données, que 1 est le bit de parité et que le dernier 1 correspond au bit stop.


Dans le tableau il est écrit que le bit de parité peut vérifier si des erreurs ne se sont pas glissées dans la transmission des 8 bits de données : comment fait-il ?
Considérons par exemple que le clavier doive envoyer les 8 bits de données suivants : 01011010. Comme indiqué dans le tableau, le bit de parité vaut 1 si la somme des 8 bits de données est paire, 0 sinon. Dans ce cas le bit de parité vaudra 1 car la somme de nos 8 bits de données vaut 4, et 4 est un chiffre pair. Le clavier envoit donc le nombre binaire 00101101011.
Quand l'ordinateur reçoit le signal électrique et en décode le nombre binaire correspondant, il calcule lui-même la parité des 8 bits de données reçus et compare son résultat avec le bit de parité transmis par le clavier.
Ici entre en jeu une propriété des nombres binaires : si un bit d'un nombre binaire est inversé (si une erreur transforme un 0 en 1 ou l'inverse) la parité du nombre est elle aussi inversée.
Ainsi, si pendant la transmission une erreur vient modifier la valeur d'un bit, la parité du nombre binaire ne sera plus égale à celle du bit de parité envoyée par le clavier. Et avec cette différence l'ordinateur détecte une erreur de transmission.

Schéma d'une transmission ne comportant pas d'erreur (à gauche) et d'une comportant une erreur (à droite). L'ordinateur détecte l'erreur car le bit de parité transmis est différent de celui calculé.

À noter que cette vérification ne fonctionne plus si deux erreurs ou plus sont envoyées, car les erreurs multiples peuvent se compenser. Mais cela reste rare.


À présent, l'ordinateur est capable de recevoir le signal électrique du clavier, le décoder en un nombre binaire de 11 bits, vérifier qu'il n'y a pas eu d'erreur de transmission et peut alors en extraire les 8 bits, ou l'octet (8 bits = 1 octet) de données.


Comment l'ordinateur convertit l'octet en un caractère ?
Déjà, il faut savoir que le clavier envoie l'octet de données à l'envers : pour la touche I l'ordinateur reçoit l'octet de données 11000010, mais remis à l'endroit, l'octet de données reçu est 01000011. Maintenant, l'ordinateur a enfin récupéré l'octet de données qu'il va pouvoir traduire...
On pourrait instinctivement penser que le code binaire envoyé par le clavier correspond à un code ASCII (la norme informatique de codage de caractères la plus influente à ce jour) mais ce n'est pas le cas : d'abord les codes ASCII sont composés de 7 et non 8 bits, et même s'il l'on considère que le premier 0 de notre octet de données est insignifiant, on récupère le code ASCII 1000011 qui vaut C. On est loin de notre touche I et on comprend donc que l'information envoyée par le clavier n'est pas codée en ASCII.
Il se réfère plutôt à des tables de scancodes, définies conventionnellement. Elles attribuent à chaque touche du clavier un code binaire. Voici un extrait de la table de scancodes la plus répandue et la plus utilisée.

Caractère/ touche Code binaire Caractère/ touche Code binaire Caractère/ touche Code binaire Caractère/ touche Code binaire
A 00010101 N 00110001 Entrée 01011010 Retour arrière 01100110
B 00110010 O 01000100 Espace 00101001 Échap 01110110
C 00100001 P 01001101 Chiffres/accents Pavé numérique
D 00100011 Q 00011100 & 1 00010110 1 01101001
E 00100100 R 00101101 é 2 ~ 00011110 2 01110010
F 00101011 S 00011011 " 3 # 00100110 3 01111010
G 00110100 T 00101100 ' 4 { 00100101 4 01101011
H 00110011 U 00111100 ( 5 [ 00101110 5 01110011
I 01000011 V 00101010 - 6 | 00110110 6 01110100
J 00111011 W 00011010 è 7 ` 00111101 7 01101100
K 01000010 X 00100010 _ 8 \ 00111110 8 01110101
L 01001011 Y 00110101 ç 9 ^ 01000110 9 01111101
M 01001100 Z 00011101 à 0 @ 01000101 0 01110000
Extrait de la table de scancodes la plus répandue

L'ordinateur n'a plus qu'à chercher dans cette table à quoi correspond le nombre binaire qu'il a reçu, et peut traiter l'entrée des données.


Voilà ! Vous savez maintenant comment le clavier communique avec l'ordinateur. Vous pouvez aussi retrouver ce cours en format PDF.