Fonctionnement Souris

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 5

ENSEIRB P.

N Souris PS/2

Souris PS/2

1. Le protocole PS/2
Le protocole PS/2 permet une communication synchrone, bidirectionnelle et bits en série
entre un système et un périphérique (couramment clavier, souris ou touchpad de portable).
Chaque coté est susceptible d’envoyer des commandes ou des données mais un seul coté ne
pourra transmettre à la fois puisque la liaison se fait sur un seul fil.

1.1. Le connecteur PS/2


C’est un connecteur mini-DIN-6 qui comporte 6 broches incluant masse , alimentation , la
donnée série DATA et l’horloge CLK. Deux broches sont inutilisées.

Figure 1 : vue du connecteur mâle PS/2

C’est le système maître qui alimente le périphérique PS/2. Les signaux Data et Clk sont
bidirectionnels et à sortie collecteur ouvert . Une résistance de 10K ohm environ doivent être
placées entre ces deux signaux et l’alimentation ce qui garantie un niveau haut hors de toute
transaction.

+5V +5V
Système Périphérique

DATA DATA
CLK CLK
GND GND

1.2. La transmission d’octets


Le système maître est susceptible d’envoyer au périphérique (ici la souris) des ordres de
commande ( tableau 1) mais à un autre moment c’est le périphérique (ici la souris) qui va
émettre des messages (tableau 2) ou retourner des données. Les octets de commandes et
messages sont transmis de façon synchrone et série sur 11 /12bits ( les 8 bits à transmettre,

Page 1
Souris PS/2 P.N ENSEIRB

LSB en premier, précédés d’un bit start (‘0’) et suivi d’un bit de parité et d’un bit stop (‘1’).
Le bit de parité impaire vaut ‘1’ si le nombre total de ‘1’ dans l’octet et le bit de parité lui-
même est impair.
Durant la transmission, c’est le périphérique qui fournit l’horloge en la positionnant à un
niveau bas ( front descendant) tandis que l’émetteur (système ou périphérique) place data à un
niveau bas pour un bit ‘0’ ou le laisse inactif pour un bit ‘1’. La fréquence d’horloge est au
maximum de 33 kHz mais le plus couramment de 15 kHz.
Entre les transmissions, le bus peut être :
! Idle : CLK et DATA sont tous les deux au niveau haut . Il n’y a pas d’activité.
! Inhibit : Le système maintient CLK au niveau bas
! Request to send : Le maître maintient DATA au niveau bas mais laisse CLK flotter. Il
est prêt à émettre.

Périphérique vers système maître


Il peut transmettre un octet vers le système à condition que le bus soit préalablement « idle ».
L’octet est transmis sous forme série avec l’horloge ( impulsions négatives). Le périphérique
change les données sur front montant alors que le système est censé les lire pendant que CLK
est à ‘0’ (ou sur le front descendant).

CLK

DATA

Bit start 0 0 1 0 1 1 1 1 Parité Bit stop


impaire

Figure 2 : transmission de la donnée F4


L’ordre de grandeur de la période d’horloge CLK est de 60 à 100 µS.

Système maître vers périphérique


Le système maître indique qu’il souhaite émettre une commande en maintenant CLK au
niveau bas pendant au moins 100 µS, puis forçant DATA au niveau bas (état du bus Request
to send) tout en libérant CLK. Dès que le périphérique reconnaît (en moins de10 mS) ce
signal bas, il va émettre son horloge et échantillonner la donnée. Le système est censé changer
les données tant que CLK est au niveau bas (sur front descendant) tandis que le périphérique
échantillonne chaque bit pendant que clk est haut ( donc sur front montant).
CLK

DATA
Bit
Request Line
0 0 1 0 1 1 1 1 Parité stop
to send control
impaire
Figure 3 : transmission de la commande F4

Page 2
Drivers de souris PS/2 P.N ENSEIRB

Après la reconnaissance du bit stop, le périphérique force DATA à 0 et fournie une impulsion
d’horloge supplémentaire. Ceci permet éventuellement au maître d’inhiber l’horloge tant qu’il
n’est pas prêt à émettre de nouveau.
L’ordre de grandeur de la période d’horloge CLK est de 60 à 100 µS.

1.3. Liste des commandes et des messages pour la souris


Commandes envoyées à la souris Valeur hexadécimale
Reset FF
La souris retourne AA,00 après l’ auto-test
Resend message FE
Set to Default Values F6
Enable Streaming mode F4
La souris commence à envoyer des paquets de données à la vitesse par défaut
Disable streaming mode F5
Set sampling rate F3,XX
XX est le nombre d’échantillons par seconde 10,20,40,60,80,100 et 200
Read Device Type F2
Set Remote Mode EE
Set Wrap mode EC
La souris retourne les données envoyées par le système
Read Remote Data EB
La souris envoie 1 paquet de données
Set Stream mode EA
Status Request E9
La souris retourne sur 3 octets sa configuration courante
Set Resolution E8,XX
XX vaut 0,1,2,3
Set scaling 2 to 1 E7
Reset Scaling E6

Tableau 1 : Commandes souris PS/2

Messages envoyés par la souris Valeur hexadécimale


Resend Message FE
Two bad messages in a row FC
Mouse Acknowledge Command FA
Envoyé par la souris après chaque octet de commande
Mouse Passed self-test AA
Tableau 2 : Message souris PS/2

2. La souris

2.1. Principe de fonctionnement


La souris mécanique contient une boule qui roule sur deux axes de roues. Ces roues sont en
fait des codeurs optiques qui traduisent les mouvements en X ou en Y en nombres par
comptage d’impulsions. La souris fonctionne par défaut avec une résolution de 200 CPI
(Counts Per Inch), ce qui correspond à un pas de 125 µm environ. La souris contient aussi 2
ou 3 boutons poussoirs . L’ensemble est géré par un microcontrôleur interne qui, outre la

Page 3
Souris PS/2 P.N ENSEIRB

transmission des déplacements X (gauche/droite) et Y (bas/haut) et de l’état des boutons, est


aussi capable d’interpréter des commandes ou de transmettre des messages. Dans les
échanges, c’est toujours la souris qui fournie l’horloge CLK . Le maître peut cependant, s’il le
désire inhiber cette horloge en maintenant son niveau à bas.

2.2. Initialisation
A la mise sous tension, la souris exécute un auto-test et renvoie les codes AA et 00. Le
système est censé avoir positionné pendant cette étape les signaux horloge et donnée à l’état
haute impédance. Le mode par défaut au démarrage est « streaming mode disabled ». Il est
aussi possible de réinitialiser la souris par la commande « Reset » codée FF.
La durée de l’initialisation peut atteindre 500 mS.

2.3. Fonctionnement courant


Il convient d’envoyer à la souris la commande F4 pour valider le mode transmission en
continu. La souris répond à cette commande par l’octet d’acquittement FA, puis envoie alors
les données au système par paquet de trois octets contenant les informations de déplacement
et d’état des boutons.

Msb LSB
Bit 7 6 5 4 3 2 1 0
Octet 1 Yo Xo Ys Xs 1 M R L
Octet 2 X7 X6 X5 X4 X3 X2 X1 X0
Octet 3 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
L = Left key status bit ( 1 appuyé, 0 relaché)
M = Middle Key status bit
R = Right Key status bit
X7-X0 = déplacement en X en complément à 2
( négatif à gauche, positif à droite)
Y7-Y0 = Deplacement en Y en complément à 2
( négatif en bas, positif en haut)
Xo = bit d’overflow sur X
Yo = bit d’overflow sur Y
Xs = Signe de X (1 = négatif)
Ys = Signe de Y (1 = négatif)

Les compteurs de mouvement sont des mots de 9 bits en complément à 2. Le MSB est le bit
de signe qui se retrouve dans l’octet 1 de la trame et les autres 8 bits dans les octets 2 ou 3.
Ces compteurs sont mis à jour lorsque la souris détecte un mouvement. Ils contiennent la
somme de tous les mouvements effectués depuis le dernier transfert de trame vers le système.
Ils ont une valeur comprise entre +255 et –256. S’il y a dépassement, les bits d’overflow de
l’octet 1 sont activés et aucun incrément ou décrément n’est possible jusqu’à l’émission de la
trame et le reset des compteurs qui s’en suit.
Quant à la durée d’une trame, il faut compter l’émission des trois octets espacés d’environ
350 µs ; Cela donne environ 3,6 ms. Si on rajoute une durée d ’au moins 6,4 ms entre trames,
alors la souris pourra envoyer jusqu’à 100 trames par seconde.

Page 4
Drivers de souris PS/2 P.N ENSEIRB

2.4. Exploitation
Sur un ordinateur, la souris sert à réaliser un curseur vidéo. Chaque fois que la souris émet
une nouvelle trame, il faut rajouter à la position courante du curseur les mouvements H et V
correspondants. Le curseur sera initialisé au centre de l’écran au départ. On constate qu’il
suffit de deux registres d’accumulation pour mémoriser la position du curseur en H ainsi que
celle en V. L’idéal est que la résolution de la souris ( plus petit déplacement) corresponde à la
résolution de l’écran ( un pixel) .

3. Bibliographie
! MicroPC et Image VGA : Christophe Paris – PFE ENSEIRB 2002
! Rapid prototyping of digital systems: James O. Hamblen , Michael D. Fuman –
Kluwer academic publishers
! Le site de J.Weiss : http://www.supelec-rennes.fr/ren/perso/jweiss/

Page 5

Vous aimerez peut-être aussi