Comment marche une souris. [Topic Unique] - Clavier / Souris - Hardware - Périphériques
Marsh Posté le 09-04-2007 à 14:07:12
ReplyMarsh Posté le 09-04-2007 à 14:12:53
Sauf que cet article de wikimachin n'est absolument pas documenté. Il n'explique pas les principes techniques et se contente de généralités. Un truc de vulgarisation vu d'en haut. Je propose quelque chose de beaucoup plus "technique", mais néanmoins à la portée de tous. la discussion perdue expliquait, entre autres le fonctionnement des optocoupleurs et des roues codeuses, etc...
Marsh Posté le 09-04-2007 à 15:24:16
esperado a écrit : Suite aux questions d'un contributeur un fil sur le fonctionnement des souris avait été initié. Ce fil a malheureusement disparu, mais, quand on lit des questions ici où là sur les réglages ou les configs, il me semble qu'il serait interessant de créer ce topic (ce message sera édité) avec tous les intervenants qui désireraient participer à cet article. |
il y a vraiment des gens qui ne pensent qu'à eux . On passe des heures à aider quelqu'un à trouver la réponse à ses questions, et une fois qu'il a tout en main il ne s'interroge pas sur l'utilité éventuelle du sujet pour un autre et il supprime la conversation. Encore un à qui l'utilité et l'utilisation des forums a échappé.
Qu'à celà ne tienne, c'est réparé... http://forum.hardware.fr/forum2.ph [...] 755&page=1
Marsh Posté le 09-04-2007 à 17:51:35
esperado a écrit : Sauf que cet article de wikimachin n'est absolument pas documenté. Il n'explique pas les principes techniques et se contente de généralités. Un truc de vulgarisation vu d'en haut. Je propose quelque chose de beaucoup plus "technique", mais néanmoins à la portée de tous. la discussion perdue expliquait, entre autres le fonctionnement des optocoupleurs et des roues codeuses, etc... |
Libre a toi de l'ameliorer, je te donne simplement une base sur quoi developper
Marsh Posté le 11-04-2007 à 10:14:10
Ça n'interesse personne ? Je laisse tomber ?
Marsh Posté le 11-04-2007 à 11:24:19
pour répondre à la question du topic, je dirais sans hésiter : avec ses petites papattes
Marsh Posté le 13-04-2007 à 12:39:41
Bon, visiblement, ça n'interesse personne.
Je vais donc supprimer ce topic inutile (et m'éviter un travail inutile aussi), si personne ne manifeste rapidement son interet pour le sujet.
Marsh Posté le 13-04-2007 à 14:38:06
Ba non stp, ne supprime pas, laisse. Il y aura bien quelqu'un pour poser des questions un jour auxquelles on répondra quand elles se présenteront. Ou quelqu'un pour reprendre le flambeau ...
Marsh Posté le 13-04-2007 à 15:27:16
TotalRecall a écrit : Ba non stp, ne supprime pas, laisse. Il y aura bien quelqu'un pour poser des questions un jour auxquelles on répondra quand elles se présenteront. Ou quelqu'un pour reprendre le flambeau ... |
Ok, je vais donc le laisser sur ses petites papattes ;-)
J'aurais volontiers rempli un bout du machin, mais si c'est juste pour étaler sa science et que c'est utile à personne, hein ;-)
Marsh Posté le 14-04-2007 à 14:09:13
esperado a écrit : Ok, je vais donc le laisser sur ses petites papattes ;-) |
Bon, j'avais quelques minutes peinard, j'ai amorcé la pompe. A corriger, à agrémenter de photos, etc... je vais pas TOUT faire tout seul, hein ?
Marsh Posté le 30-12-2009 à 00:39:06
Merci pour cette explication excellente des principes de fonctionnement d'une souris, je m'en sers beaucoup dans mon exposé sur les périphériques informatiques !
Te voilà consolé, esperado ^^
Marsh Posté le 23-02-2011 à 14:39:30
Bonjour, je fais un tpe sur la souris en tout cas votre topic m a grandement aidé je voudrais juste savoir si d'apres vous, en plus de ce que j'ai fait qui rejoint en grande partie ce topic, vers quoi il faudrait orienter mes recherches pour du supplement ?? merci d'avance
Marsh Posté le 09-04-2007 à 13:53:46
1-qu'est ce qu'une souris ?
C'est un dispositif qui permet, en le déplaçant sur le plan de votre bureau, ou mieux sur une surface adaptée (tapis de souris) de contrôler le déplacement d'un curseur sur l'écran d'un ordinateur et d' envoyer à celui-ci des ordres d'exécution (clic gauche, clic droit, clic central) qui auront pour effet, suivant l'endroit sur l'écran où se trouve le curseur de démarrer/arrêter des applications, ouvrir une liste de propriétés ou d'actions à effectuer etc...
Inventée en 1963 par Stanford Research Institute, comme alternative au trackball, indissociable de l'interface graphique en mode fenètre inventé par Xerox, elle fut révélée au grand public par Macintosh.
*Qui fait quoi entre la souris et l'ordinateur, que font les drivers
La souris détecte les déplacements qu'on lui imprime. Elle n'a aucune notion de position. Elle analyse ses déplacements d'une façon digitale: elle envoie un bit de donnée et un bit de sens à chaque dépassement horizontal ou vertical d'une distance donnée (variable suivant sa sensibilité). Elle se contente d'envoyer ces informations simples à l'ordinateur qui, lui, garde en mémoire la dernière position du curseur sur son écran, additionne les déplacements de la souris et calcule la nouvelle position du curseur à chaque rafraîchissement de l'écran en fonction des réglages qu'on a demandé au Driver.
2-Comment la souris détecte-elle les mouvements qu'on lui imprime, les clics et les scrols ?
* Souris à boule
C'est tout simplement un trackball à l'envers. Une boule libre, posée sur le support/table, est entraînée par le mouvement de la souris. Elle tourne donc librement à l'intérieur de la souris en fonction de son mouvement sur le support. Elle est en contact avec deux axes horizontaux, positionnés à 90°, qui tournent sur eux-mêmes, l'un entraîné proportionnellement à l'amplitude des mouvements "nord/sud" "y", l'autre en fonction des mouvements "est/ouest" "x" (si l'on décide que le plan horizontal du tapis est orienté avec l'axe y au nord).
En bout de ces deux axes se trouve une roue codeuse. C'est une roue percée de trous ou composée de rayons qui va alternativement occulter/laisser passer un rayon lumineux quand elle tourne.
En effet, la roue codeuse tourne à l'intérieur d'un étrier composé d'une diode (LED) émettrice de lumière (visible ou non) d'un côté et de deux capteurs (Photo transistor) de l'autre. La diode émettrice (LED) éclaire la roue d'une façon continue. Chaque capteur (Photo-transistor ou photodiode) transforme la lumière qu'il reçoit en un signal électrique de même forme. Quand la roue codeuse occulte le rayon lumineux, on a un signal à 0, quand la roue codeuse laisse passer la lumière, on a un signal à 1. Un circuit électronique à Hysteresys se charge de transformer le front de transition lent (quand le capteur est entre les deux), en un front raide, exploitable par les circuits digitaux.
Pourquoi deux capteurs ? Avec un seul capteur, on ne saurait jamais quel est le sens de rotation de la roue codeuse. Si l'on faisait demi tour au milieu d'un trou de la roue codeuse, on continuerait à avancer dans le même sens. Un second capteur est donc placé à côté du premier de telle façon qu'il détecte avant l'autre la transition passage/occultation dans un sens, et après, si l'on tourne dans l'autre sens. En comparant les deux signaux (Circuit PLL) on sort une information à 1 si la roue tourne dans un sens, et à 0 si elle tourne dans l'autre sens.
On a donc deux signaux qui sortent du circuit qui suit les étriers: un qui compte les occultations de la roue codeuse, un qui indique le sens de rotation.
* Souris optique
La boule, nécessairement un peu "collante", pour bien suivre le support, ramasse les saletés. Celles-ci créent des points durs qui gênent son mouvement et faussent les mesures de déplacement en changeant le diamètre de l'axe sur lequel elles se déposent. La souris à boule nécessitait donc de fréquents et pénibles nettoyages. Douglas Engelbart pour Apple (encore eux !) invente la souris optique commercialisée par Logitech.
Le dispositif remplace le capteur à boule précédemment décrit et ne fait que ça. Une source de lumière (diode ou laser au rayon visible ou non ) Illumine à 45° le support sur lequel est placée la souris. Une caméra le filme, verticalement ou symétriquement à 45°. Un circuit électronique (DSP) analyse les images successives, cherche s'il y a entre entre deux images successives des parties qui se ressemblent, et, si oui, calcule la distance de déplacement de cette partie "similaire" de l'image.
En fonction de la sensibilité décidée à la conception de la souris, elle envoie un pulse à chaque fois que l'image s'est déplacée d'une distance donnée dans le sens X ou y. Et, sur une autre sortie pour chaque déplacement en X ou y, un signal à 1 ou 0 suivant le sens de déplacement. Exactement comme une souris à boule, donc.
* Souris Laser
Pour une même consommation électrique, plus la source de lumière illuminant le support est concentrée, plus grande sera l'intensité lumineuse. Plus la caméra qui filme le support est capable de lire des informations microscopiques, plus facile sera la détection des micro irrégularités du support. La diode laser permet d'envoyer un rayon très concentré de lumière vive pour éclairer une toute petite surface du support, et, ce, d'une façon économique sans système optique coûteux. Logitech a donc eu l'idée d'utiliser cette technologie pour éclairer le support. Le fait que les rayons laser émettent de la lumière cohérente n'est que peu utilisé dans cette application. Si ce n'est que cela permet, par effet de bord, de détecter mieux les irrégularités de réflexions sur des surfaces brillantes. On comprend que la principale différence entre les technologies "optiques" et "laser" tiennent plus dans l'angle de l'optique de la caméra (microsocope, ou macroscope), la qualité de son optique (plus ou moins de piqué) et le nombre de pixels (plus ou moins bonne définition) que dans le principe du projecteur (diode ou laser) qui éclaire la scène.
* Différence de performance entre optique et laser
Il n'y en a pas dans l'absolu. Si on lit une surface avec des irrégularités épaisses (quadrillage noir et blanc sur une surface lisse) la caméra "grand angle" de la majorité des souris optiques sera plus appropriée. Si on lit une surface unie en couleur (feuille de papier blanche), la caméra "microscope" du laser sera plus apte à détecter le grain du papier et les micro irrégularités de la surface. Le tapis idéal n'est pas le même dans les deux technologies et tout comparatif "absolu" de la qualité de tracking est stupide s'il est réalisé sur une surface unique entre ces deux technologies. A l'usage, le laser s'avère en général plus tolérant et accepte plus de surfaces que la souris optique "grand angle", surtout sur les modèles bas de gamme, qui ont une optique de mauvaise qualité, une caméra interne avec peu de pixels, un bloc optique plus ou moins à distance précise su support.
A ce sujet, les souris optiques, qu'elles soient laser ou pas sont plus ou moins sensibles à la hauteur de la souris donc à la hauteur des patins. Certaines souris lisent encore à plusieurs centimètres du support car leur caméra a de la profondeur de champ, d'autres perdent le focus à 1mm, d'autres ne l'ont même pas d'origine.
* Le scroll
Il s'agit d'une simple roue codeuse, manoeuvrée directement par l'index, en haut de la souris. Nous avons vu son principe, nous n'y reviendrons pas. Il sert à naviguer verticalement dans les applications, faire défiler les pages vers le haut ou le bas etc... Certaines souris sont équipées de deux scrolls, un pour les défilements verticaux, un pour les défilements horizontaux. D'autres utilisent un simple clic pour les défilements horizontaux, qui déclenchent des sauts gérés par les drivers.
* Les clics
Ce sont de simples interrupteurs, qui transmettent une impulsion chaque fois qu'ils sont enfoncés. Il est à noter que beaucoup de constructeurs négligent ce dispositif qui, avec l'usage et l'oxydation a tendance à faire de faux contacts, rebonds(doubles clics intempestifs) etc... Un circuit électronique est censé éviter ces dysfonctionnements, il n'est pas toujours bien calibré. Certains constructeurs mettent un interrupteur inversé (coupure à l'appui, ce qui évite beaucoup de ces problèmes. On notera que le clic gauche, qui doit être rapide, fonctionne à l'appui de la "touche" et que le clic droit au relâcher, raison pour laquelle il pose moins de problèmes.
Les constructeurs équipent leurs souris de plus en plus d'interrupteurs supplémentaires, avec des usages divers. Ils ne font pas partie du protocole, lequel ne gère que trois: le gauche, le droit et le central sous le scroll. Ces boutons supplémentaires ne seront donc actifs que si le driver spécifique à la souris concernée est bien installé et lancé dans le système d'exploitation.
Signalons enfin que la souris se contente d'émettre des signaux, et n'en reçoit pas de l'ordinateur: il n'y a pas "dialogue".
3- Comment la souris transmet-elle ses informations à l'ordinateur ?
* Souris filaire
Nous voila avec 9 fils ou plus qui sortent des circuits de capture
avec l'info qui va bien, info qu'il convient de transmettre à l'ordinateur. Depuis l'origine (port série) en passant par le port Ps2, jusqu'au port actuel USB, on ne dispose que de deux fils pour transmettre l'information à l'ordinateur. Il va donc falloir "sérialiser" ces signaux. Un circuit de sortie s'en occupe: chaque fil porteur d'information y est connecté. Il mémorise les infos qu'on lui envoie puis les transmet à l'ordinateur en série. C'est à dire qu'il envoie une en-tête différente pour chaque info (déplacement X, déplacement y, scroll haut ou bas, clic gauche etc...) suivi du sens et de la valeur de l'info. les uns après les autres, selon un protocole déterminé. Ce protocole est le même quel que soit le port utilisé, pour respecter la compatibilité. c'est ainsi qu'on peut utiliser un adaptateur simple pour brancher une souris PS2 sur un port USB. Entre la souris et l'ordinateur, un fil se charge de transmettre ces trains d'informations, 125 fois par seconde par défaut, et alimenter la souris, ses circuits et ses diodes par le 5V que lui offre l'ordinateur.
* Souris sans fil (infra-rouge, radio)
Le fil qui relie la souris à l'ordinateur est pénible. Il crée une force qui gène la liberté des mouvements. On a donc cherché des moyens de la supprimer.
D'abord, on a utilisé une transmission infra-rouge pour remplacer le fil. Cela n'était pas idéal, il fallait que la souris émettrice et le récepteur soient en vue directe et le récepteur optique était sensible aux variations de lumière de la pièce: soleil direct, tubes néons qui vibrent à 25 hz etc...
On s'est donc tourné rapidement vers des systèmes radio. Grace à leur
fréquences élévées, ils sont capables de transmettre en temps réel un
très grand nombre d'informations. Ils n'introduisent aucun délai dans la transmission, contrairement à ce qu'on lit ici ou là. Le seul problème est un risque d'interférence si plusieurs émetteurs dans la même bande de fréquence sont utilisés simultanément. On équipe en général le système d'un dispositif capable de détecter les fréquences occupées et de choisir une bande libre à la connexion. Les circuits de la souris sont alimentés par des piles ou des batteries rechargeables embarquées, et le récepteur (Base) connecté et alimenté par l'ordinateur ou par un boîtier secteur séparé peut servir aussi de base de rechargement. La base est connectée sur le port USB ou PS2, de la façon habituelle, et l'ensemble ne fait que remplacer le câble des souris filaires. L'inconvénient majeur des souris sans fil est le poids supplémentaire du à la présence de batteries, qui nécessite un soin particulier (tapis et patins) pour en améliorer la glisse. L'inertie étant négligeable, en pratique.
* protocoles PS2, USB
4- C'est quoi, les DPI, l'accélération, le nombre d'images par secondes, la vitesse du port USB, et quelles conséquences sur le fonctionnement ?
* Les DPIs
Nous avons vus que la capacité d'une souris optique à bien lire son support avait une influence marquante sur le "tracking", c'est à dire sa capacité à suivre avec précision et sans erreur les mouvements. On le remarque au fait, par exemple que le curseur dessine bien une droite quand on imprime un mouvement rectiligne à la souris et qu'un mouvement régulier de la souris se traduit par un mouvement aussi régulier du curseur, sans saute et sans à coup. Le nombre de pixels du capteur (Dot Per Image) joue sur la qualité de l'image analysée. Au même titre que la qualité de l'optique et la précision de la mise au point (positionnement du capteur dans la souris) dont les constructeurs se gardent bien de parler ! Plus le nombre de DPI est élevé, plus la souris est censée bien se comporter sur des surfaces difficiles. Notons qu'une souris à 800 DPi est déjà ultra performante à ce propos et qu'il vaut mieux travailler sur la qualité de tracking du tapis de souris que sur des chiffres faramineux à cet égard.
* L'acceleration
L'ordinateur (et les drivers de la souris) applique un coefficient multiplicateur au mouvement du curseur par rapport au mouvement de la
souris. Ce coefficient peut être linéaire, à chaque centimètre de déplacement, sur le tapis, le curseur en fera deux sur l'écran. L' inconvénient est que, si ce coefficient est important, on n'aura pas besoin de déplacer sa souris sur une grand distance sur le tapis pour traverser tout l'écran. l'inconvénient, quand on fait du graphisme, par exemple, est la précision qu'il faudra pour attendre un pixel donné. On applique donc un coefficient multiplicateur variable selon la vitesse imprimé à la souris. Lors d'un mouvement lent, on aura un multiplicateur faible: on pourra atteindre facilement un pixel avec un déplacement suffisant de la souris, lors d'un mouvement rapide, (traversée de l'écran) on aura un multiplicateur important qui évitera d'avoir à traverser 3m de tapis. Ce coefficient est réglable via les drivers de la souris, de même que le coefficient lent (vitesse du pointeur).
* Le nombre d'images par secondes (Frs)
Sur une souris optique, nous avons vus qu'elle déterminait son déplacement en comparant deux images et le déplacement d'une partie semblable de l'image dans celles-ci. Lors des mouvements rapides, si la caméra n'a pas assez rapidement "photographié" ses deux images, on comprend qu'il y a des chances pour qu'il n'y ait plus de points communs entre les deux images successives. La souris ne sait pas où elle s'est déplacée et le curseur ne bougera pas. Plus le nombre d'images (Frames par secondes) acquis par seconde est important, plus la partie d'image commune entre deux "photos" sera importante, avec de plus grandes chance de les détecter avec précision, ne pas confondre deux parties semblables du support, et pourra suivre les mouvements rapides sans erreur.
* La vitesse du port USB
C'est le truc à la mode, overclocker le port USB à 1000 hz pour les "frags" de la mort ! Voyons ce qu'il en est réellement. L'ordinateur envoie un signal d'horloge sur une des pins du port PS2 ou USB, pour synchroniser les trains d'impulsions envoyés par la souris. Entre deux rafraîchissements de l'écran, il va accumuler les données envoyées par la souris, en faisant à chaque réception un calcul de position du curseur. Si on envoie dix trains entre deux rafraîchissement, il se contentera de faire ces calculs, au prix d'une occupation inutile de ses ressources et ne déplacera le curseur qu'au prochain rafraîchissement. Notons qu'on ne verra pas non plus le "méchant" arriver entre deux images, c'est évident ! Par défaut et pour avoir des performances idéales, le port est réglé à la fréquence de 125 hz, qui correspond au "frame rate" des écrans à tube les plus rapides. Sachez aussi, que sur un écran LCD, la fréquence de rafraîchissement est de l'ordre de 60 à 75 hz. On voit bien l'inutilité de monter la fréquence du port à 1000hz et un rapide calcul vous permettra de constater que, l'on aura un retard statistiquement variable entre 0 et 1/125 eme de secondes dans le rare pire des cas. À mettre en parallèle avec les 1/50 de secondes de la persistance de l'oeil, des 1/40 secondes qui séparent deux images des écrans LCD, et des 1/3 secondes du temps de réflexe moyen d'un humain. Overcloquez donc votre port si ça vous plait, occupez inutilement votre CPU qui serait occupé à des taches plus utiles pendant les jeux, achetez des souris qui ont cette magnifique possibilité, mais sachez bien à quel point on se moque de vous.
Ce qui est rigolo, c'est que personne ne se plaint de la perte de ses performances dans les jeux due au taux de rafraîchissement des LCD par rapport aux CRT, qui, à 125 hz pour les meilleurs, apportent une amélioration de performance objective et constante du binome écran_souris/humain. Encore faut-il que le GPU suive ;-)
5- Comment l'ordinateur transforme-t'il les informations qu'il reçoit de la souris pour faire bouger le curseur.
Le système d'exploitation connaît les coordonnées X et Y de la dernière position du curseur qu'il a affiché à l'écran dans l'image précédente. Chaque fois qu'il reçoit une nouvelle information de déplacement de la souris, il met cette information en mémoire, après avoir additionné/soustrait les déplacements de la souris par rapport aux infos précédente. Quand il est temps pour lui d'afficher une nouvelle image, il calcule la nouvelle position en fonction des réglages sauvés dans le driver sur la vitesse et l'accélération. Il calcule la nouvelle position X,Y, du curseur, vide la mémoire, et attend de nouveaux mouvements. Comme on peut le constater, c'est lui qui fait pratiquement tout le travail.
6- Comment l'ordinateur détecte t'il la position de son curseur (et des applications) sur l'écran.
Il n'a pas à la détecter, car il connaît les coordonnées X et Y du curseur qu'il va envoyer à la carte graphique. De la même façon, il connaît la position des boutons des fenêtres et des icônes qu'il a affiché. Si un clic lui est envoyé, il compare la position XY de la souris avec les coordonnées des fenêtres, icônes, lettres dans les textes, etc... Si l'une des coordonnées correspond, il sait donc à quelle appli il doit appliquer l'ordre "clic" "double clic", clic droit etc...
7- Comment améliorer les performances de sa souris.
Achetez un souris performante, c'est à dire dotée d'une grande précision de lecture. Laser ou optique de haute qualité, au frame-rate élevé. Si vous avez une souris sans fil, ce qui est un plus (contrairement aux idées reçues), à cause de la suppression de la gène due au fil qui ralentit ses mouvements, Veillez à ce qu'elle n'ait pas un système d'économie des batteries qui la désactive pendant une seconde en cas d'immobilité prolongée. (Par exemple une MX1000 ou Revolution). Veillez aussi à ce qu'aucun autre dispositif radio ne vienne interférer dans saes transmissions.
Choisissez un tapis performant, tant en terme de glisse qu'en terme de tracking, adapté à la technologie de lecture de la souris choisie. Pour le vérifier: déplacez votre souris le long d'une règle et vérifiez que le curseur se déplace linéairement et pas en dent de scie. Et que, si vous déplacez vite votre souris d'un point à un autre, le retour au point de départ emmène le curseur à peu près au même endroit. Soignez vos patins, en téflon évidement et cultivez vos réflexes ;-)
Qu'en pensez-vous, qui veut participer à ce topic, corriger les erreurs, compléter, mettre de joulies images ?
Message édité par esperado le 16-04-2007 à 01:37:59