Driver de SOURIS PS/2

pour Carte ALTERA UP1


Par Jacques WEISS

SUPÉLEC Campus de Rennes

V1.00 octobre 1999


1 Introduction

Le présent document a été rédigé en vue de l’utilisation d’une souris de type PS/2 à partir de cartes de développement de composants programmables (Carte ALTERA UP1) ; il s’agit donc d’une approche hardware d’un driver de souris.

Les éléments décrits dans ce document étant issus uniquement d’études bibliographiques sur le WEB et de mesures effectuées sur une souris, il est possible que certaines erreurs subsistent.

2 SOURIS PS/2

2.1 Présentation

La souris est un organe de pointage fournissant les coordonnées X et Y d’un déplacement ainsi que l’état de 2 boutons (Droite et Gauche) ; la transmission de ces informations se fait par une liaison série synchrone à 9600 bauds (environ) au format 8,o,1 (8 bits de données, 1 bit de parité (impaire (Odd)), 1 bit de stop).

La souris fonctionne par défaut avec une résolution de 200 CPI (Counts Per Inch), ce qui correspond à une résolution de 8 coups/mm (le pas est de 125 µm). Les déplacements sont codés sur 8 bits, soit une plage de (0 à 255), soit une distance d’environ 3,2 cm.

La souris semble pouvoir fournir jusqu’à 40 déplacements à la seconde, ce qui permet de transmettre des déplacements allant jusqu’à 2 m/s.

La souris est alimentée en 5V par l’intermédiaire du cordon ; le connecteur PS/2 comporte 6 broches, comme le montre la figure ci-après.


Figure 2.1 : Connecteur SOURIS PS/2 (mâle, vue en bout de cordon)

2.2 Protocole de communication

La communication est de type série synchrone, il y a donc 2 lignes, l’une pour l’horloge (CLK) et l’autre pour les données (Data) ; l’interface électrique est de type " Collecteur Ouvert ", c’est à dire que les 2 éléments connectés peuvent prendre la main sur les lignes sans conflit électrique.

La transmission se fait par mots de 8 bits (figure 2.2), précédés d’un bit de START (à 0) et suivis d’un bit de parité (impaire) et d’un bit de STOP (à 1) ; le message est alors composé de 11 bits ; l’horloge de transmission a une période de 100 µs.

En mode normal, c’est la souris qui émet ces 2 signaux.

En mode de configuration, la souris émet l’horloge et l’hôte place les données, la souris acquitte la transmission en forçant la ligne Data à 0 pendant le stop.



Figure 2.2 : Protocole de communication

La souris fournit ses informations sous forme de triplets espacés d’environ 350 µs ; les trames ainsi constituées durent alors 3,6 ms et sont espacées d’au moins 6,4 ms. Ainsi, la souris pourra envoyer jusqu’à 100 trames par seconde.

 

Figure 2.3 : Trame

Le premier mot de la trame fournit les informations suivantes :

L : Bouton Gauche (actif à 1)

R : Bouton Droit (actif à 1)

XS : Direction du déplacement horizontal (1 pour Gauche)

YS : Direction du déplacement horizontal (1 pour Bas)

XV : Débordement suivant X

YV : Débordement suivant Y

Les 2 mots suivants transportent la valeur du déplacement :

X[7..0] : Déplacement Horizontal (Entier relatif, positif à droite)

Y[7..0] : Déplacement Horizontal (Entier relatif, positif en bas)

 

2.3 Initialisation

La souris nécessite d’être configurée pour pouvoir fonctionner ; les informations fournies ci-après sont issues d’observations sur une souris, le fonctionnement exact n’étant pas connu par l’auteur.

A la mise sous tension, la souris envoie 2 mots (0xAA puis 0x00) pour s’identifier.

Pour l’initialiser, il faut forcer la ligne de données (Data) à 0 et attendre une transition de la ligne d’horloge (CLK) ; cela varie de 2 à 8 ms.

Il faut ensuite envoyer un mot de configuration sur la ligne de données (Data) (0x7A) suivant le protocole défini précédemment, l’horloge étant fournie par la souris. La souris acquitte le message en forçant la ligne de données à 0 lors de l’état de stop.

La souris renvoie alors sa réponse (0xFA).

Il est normalement possible de modifier la sensibilité de la souris de 40 CPI à 320 CPI.

 

3 Driver de souris pour carte ALTERA UP1

 

3.1 Utilisation

Le symbole utilise les lignes Data et CLK de l’interface PS/2 par l’intermédiaire de plots d’E/S bidirectionnels.

Il faut fournir au symbole une horloge de 25 MHz (horloge globale disponible sur la carte) qui est utilisée pour la gestion des " time-out ".



Figure 3.1 : Symbole du driver

La broche RESETN permet de réinitialiser la souris et le driver (active à 0) ; le driver initialise automatiquement la souris à la fin de la configuration du composant.

En sortie, le symbole fournit les mots PS/2, ceux-ci sont validés par le signal BON3. Le signal CLR_Long correspond à la sortie du timer (période de 650 µs).

 



Figure 3.2 : Déroulement temporel


Retour vers les autres docs

Vous pouvez charger cette doc au format PDF

Les fichiers du driver sont dans souris_ps2.zip, il faut les placer dans votre répertoire de travail ; la hiérarchie du driver est : souris, registre11 et not8.