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.
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.
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.
On s'intéresse au cable PS/2 : à l'intérieur on retrouve 6 fils électriques.
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.
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.
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.
À 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 ASCII1000011 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.