Le protocole de communication RS-232 est bien connu. Il était par exemple utilisé pour connecter un modem à un ordinateur, plus tard il sera utilisé dans un environnement industriel pour envoyer des données d'un point à un autre (automates programmables industriels). |
-
Niveaux électriquesLa communication sérielle a été définie avec des tensions assez spécifiques: un niveau "1" est indiqué par une ligne à un potentiel de -3V à -15V. Au repos, la ligne est également à ce potentiel. Un "0" est codé par une tension de +3V à +15V. La zone entre -3V et +3V n'est pas définie.
Mais beaucoup d'appareils modernes travaillent avec des niveaux de 0V et 5V (niveaux TTL standard). Il s'agit par exemple d'écrans LCD ou d'un arduino. Si vous utilisez un arduino, la communication vers une imprimante parallèle est difficile à réaliser: il faut réserver 8 ports numériques. Certains appareils récents utilisent des niveaux TTL (0 et 5V). Il s'agit de communication locale, par exemple d'un microcontrolleur à un écran LCD. Notez que ces niveaux sont inverse des niveaux série: au repos la ligne se trouve à +5V et un "1" est indiqué par un niveau haut (logique positive). La communication série TTL est limitée à une communication locale. Pour transmettre des données à plus longue distance, il faut utiliser une vraie communication RS-232. Grâce aux niveaux plus élevés, la communication est mieux à l'abri des parasites. Mais malgré tout, la distance maximale admissible est d'environ 15m.
Convertisseur de niveauxLes convertisseurs de niveau permettent d'adapter les niveaux, par exemple un ordinateur avec port COM qui utilise les niveaux standards et un écran LCD qui utilise les niveaux TTL. Ces circuits ont un inconvénient; ils nécessitent une alimentation séparée et dans certains cas produisent des parasites (oscillateur pour produire le -5V à partir du +5V).
La conversion inverse est tout aussi aisée. Nous voulons par exemple controler l'état de la ligne CTS (clear to send) pour savoir si l'imprimante est prête à recevoir des données. La ligne passe à 0 quand elle n'est pas prête (mémoire tampon remplie, plus de papier,...). La ligne CTS est une façon simple de prévoir un flow control, attention certaines imprimantes utilisent d'autres pins. La ligne 8 du port sériel reçoit une résistance de 4.7kΩ, suivi de deux diodes 1N4148 qui vont empècher que la tension ne passe au dessus de la tension d'alimentation ou en dessous de 0V. Le signal est ensuite envoyé à un port numérique. Le niveau est bas quand l'imprimante est prête. Attention, le protocole ne permet pas de controler si l'imprimante est alimentée! Dans certains cas extrèmes, quand l'imprimante ne fournit que du +3V et l'arduino a du mal a détecter un "1" avec cette tension, il faut utiliser une entrée analogique. Normalement un arduino voit un "1" dès que la tension atteint 0.6 × la tension du processeur, donc 3V.
Imprimantes sériellesIl n'y a plus tellement d'imprimantes qui ont encore une entrée sérielle, mais il y en a encore. Ces imprimantes sont par exemple utilisées pour enregistrer les données d'un processus industriel. Ces processus sont commandés par des automates programmables, qui ont généralement des capacités limitées.Une autre possibilité est d'utiliser des imprimantes pour tickets: certaines versions ont encore une entrée sérielle, très utiles pour certains points de vente qui ont un terminal aux possibilités réduites. Le protocole sériel est tellement simple que le terminal le plus basic peut communiquer en utilisant ce protocole. Une imprimante moderne que vous pouvez utiliser est l'imprimante Zebra LP2824 Plus. Cette imprimante peut être équipée de différentes entrées: parallèle, USB, série ou réseau. C'est évidemment la version avec port série qui nous interesse. L'imprimante peut imprimer des étiquettes (ce qui nous interesse peu ici), mais peut également travailler avec du papier thermique normal. L'imprimante peut travailler en mode graphique (ZPL), dans ce mode de fonctionnement elle n'est pratiquement pas utilisable. L'imprimante utilise alors des caractères "true type" comme ceux utilisés sur les ordinateurs à écran graphique. Heureusement elle peut être commutée en mode texte (EPL), la commutation est même automatique. Mais ce mode est malgré tout assez complexe. Il est possible de passer du mode EPL en "line mode" en envoyant le code OEPL1 à l'imprimante. Ce code ne doit être envoyé qu'une seule fois, le mode de fonctionnement est gardé en mémoire permanente. Le line mode permet malgré tout un controle limité de l'imprimante, et notament la taille des caractères. Quelques liens interessants:
|
Publicités - Reklame