Page suivantePage pr�c�denteTable des mati�res

21. Annexe C : communications s�rie sur EIA-232 (RS-232)

21.1 Introduction aux communications s�rie

(Une grande partie de cette section se trouve maintenant dans le Serial-HOWTO.) Les terminaux texte sur les syst�mes de type Unix (et sur les PC) sont connect�s en g�n�ral sur un port s�rie asynchrone 232 d'un ordinateur. C'est en g�n�ral un port RS-232-C, EIA-232-D ou EIA-232-E. Ces trois ports sont � peu pr�s identiques. Le pr�fixe originel RS est devenu EIA (Electronics Industries Association) et plus tard EIA/TIA apr�s que EIA se soit alli�e avec TIA (Telecommunications Industries Association). La sp�cification EIA-232 d�crit aussi les communications synchrones mais le mat�riel qui supporte les communications synchrones manque quasiment toujours sur les PC. La d�signation RS est obsol�te mais est toujours utilis�e. On utilisera EIA dans cet article.

Le port s�rie repr�sente plus qu'un simple connecteur physique au dos d'un ordinateur ou d'un terminal. Il comprend l'�lectronique associ�e qui doit produire des signaux conformes � la sp�cification EIA-232. Le connecteur standard poss�de 25 broches, dont la plupart sont inutilis�es. Un connecteur diff�rent ne poss�de que neuf broches. Une broche est utilis�e pour envoyer des octets de donn�es et une autre pour en recevoir. Une autre broche est la masse commune du signal. Les autres broches "utiles" sont principalement utilis�es � des fins de signalisation avec une tension n�gative r�guli�re voulant dire "�teint" et une tension positive r�guli�re voulant dire "allum�".

La puce UART (�metteur-r�cepteur asynchrone universel) fait la plus grande partie du travail. Aujourd'hui, les possibilit�s de cette puce sont en g�n�ral incluses dans une autre puce.

21.2 Tensions

Tension pour un bit

Sur le port s�rie EIA-232, les tensions sont bi-polaires (positives ou n�gatives par rapport � la masse) et devraient �tre de l'ordre de 12 volts en amplitude (certaines font 5 ou 10 volts). Sur les broches d'�mission et de r�ception +12 volts repr�sente le bit 0 (parfois appel� "espace") et -12 volts est le bit 1 (parfois appel� "marque"). On appelle cela la logique invers�e puisque normalement le bit 0 est � la fois faux et n�gatif alors que le 1 est normalement vrai et positif. Bien que les broches de transmission et r�ception soient en logique invers�e, d'autres broches (les lignes de contr�le du modem) sont en logique normale avec une tension positive �tant vraie et une tension n�gative �tant fausse. La tension z�ro n'a aucune signification (sauf qu'elle veut dire en g�n�ral que l'unit� est �teinte).

Une �tendue de tensions est permise. Les sp�cifications disent que l'amplitude d'un signal transmis devrait �tre entre 5 et 15 volts mais ne doit jamais d�passer 25 volts. Toute tension re�ue en dessous de 3 volts est ind�finie (mais certains terminaux consid�reront qu'une tension plus basse est valide). On voit parfois des affirmations erronn�es selon lesquelles la tension est commun�ment 5 volts (ou m�me 3 volts) mais c'est en g�n�ral 11-12 volts. Si vous utilisez un port EIA-422 sur un ordinateur Macintosh comme un EIA-232 (cela demande un c�ble sp�cial) ou un EIA-423 alors la tension sera vraiment 5 volts. La discussion ici suppose que c'est 12 volts. Il y a beaucoup de confusion � propos des tensions sur Internet.

Notez que la logique d'ordinateur normale n'est que de quelques volts (� une �poque, la norme �tait 5 volts), et que si vous essayez d'utiliser un �quipement de test fait pour tester une logique d'ordinateur en 3-5 volts (TTL) sur les 12 volts d'un port s�rie, cela peut endommager l'�quipement de test.

S�quence de tension pour un octet

La broche de transmission (TxD) est maintenue � -12 V (marque) comme inactive quand rien n'est envoy�. Pour commencer un octet elle passe � +12 V (espace) pour le bit de d�part et reste � +12 V pendant la dur�e (p�riode) du bit de d�part. Apr�s vient le bit de bas niveau de l'octet de donn�es. Si c'est un bit 0 rien ne change et la ligne reste � +12 V pendant une autre p�riode de bit. Apr�s vient le bit suivant, etc. Finalement, un bit de parit� peut �tre envoy� et ensuite un bit de stop de -12 V (marque). La ligne reste � -12 V (inactive) jusqu'au prochain bit de d�part. Notez qu'il n'y a pas de retour � 0 volts et il n'y a donc pas de moyen simple (sauf avec un signal de synchronisation) pour dire o� finit un bit et o� commence le bit suivant dans le cas o� deux bits cons�cutifs ont la m�me polarit� (tous les deux z�ro ou tous les deux un).

Un deuxi�me bit de stop serait aussi � -12 V, identique au premier bit de stop. Puisqu'il n'y a pas de signal pour marquer la fronti�re entre ces deux bits, le seul effet du deuxi�me bit de stop est que la ligne doit rester inactive � -12 V deux fois plus longtemps. Le r�cepteur n'a aucun moyen de faire la diff�rence entre un deuxi�me bit de stop et un temps d'inactivit� plus long entre les octets. Ainsi les communications fonctionnent bien si une extr�mit� utilise un bit de stop et l'autre extr�mit� utilise deux bits de stop, mais n'utiliser qu'un bit de stop est visiblement plus rapide. Dans de rares cas, un bit de stop et demi est utilis�. Ceci veut dire que la ligne est gard�e � -12 V pendant une p�riode de temps et demie (comme un bit de stop 50 % plus long que la normale).

21.3 La parit� expliqu�e

Les caract�res sont normalement transmis sur 7 ou 8 bits (de donn�es). Une parit� suppl�mentaire peut (ou peut ne pas) y �tre ajout�e, ce qui donne un octet de longueur 7, 8 ou 9 bits. Certains �mulateurs de terminaux et terminaux anciens n'autorisent pas 9 bits. Certains interdisent 9 bits si on utilise deux bits de stop (puisque cela ferait beaucoup trop de bits : 12 bits au total).

On peut mettre une parit� impaire, paire, ou pas de parit� (les parit�s marque et espace peuvent �tre des options sur certains terminaux). Avec une parit� impaire, le bit de parit� est s�lectionn� de telle sorte que le nombre de bit 1 dans un octet, en comprenant le bit de parit�, soit impair. Si un tel octet se d�t�riore par l'inversion d'un bit, le r�sultat est un octet ill�gal de parit� paire. Cette erreur sera d�tect�e et si c'est un octet arrivant au terminal, un symbole caract�re d'erreur appara�tra � l'�cran. La parit� paire fonctionne de mani�re similaire avec tous les octets l�gaux (comprenant le bit de parit�) ayant un nombre de bit 1 pair. Pendant la configuration, le nombre de bits par caract�re signifie en g�n�ral le nombre de bits de donn�es par octet (7 pour de l'ASCII pur et 8 pour les divers codes de caract�res ISO).

Une "marque" est un bit 1 (ou un 1 logique) et un "espace" est un bit 0 (ou un 0 logique). Pour la parit� marque, le bit de parit� est toujours un bit 1. Pour la parit� espace c'est toujours un bit 0. La parit� marque ou espace ne fait que g�cher de la bande passante et devrait �tre �vit�e autant que possible. "Pas de parit�" veut dire qu'aucun bit de parit� n'est ajout�. Pour les terminaux qui n'autorisent pas les octets de 9 bits, il faut s�lectionner "pas de parit�" pour utiliser des codes de caract�res sur 8 bits puisqu'il n'y a pas de place pour le bit de parit�.

21.4 Formation d'un octet (encadrement)

Dans la transmission en s�rie des octets par les ports EIA-232, le bit de bas niveau est toujours envoy� en premier. Les ports s�rie sur les PC utilisent des communications asynchrones quand il y a un bit de d�part et un bit de stop pour marquer le d�but et la fin d'un octet. On appelle cela l'encadrement et l'octet encadr� s'appelle parfois un cadre. Au final, 9, 10 ou 11 bits sont envoy�s par octet, 10 �tant le nombre le plus courant. 8-N-1 veut dire 8 bits de donn�es, pas de parit�, 1 bit de stop. Ceci fait en tout 10 bits si on compte le bit de d�part. Un bit de stop est utilis� quasiment partout. � 110 bits/seconde (et parfois � 300 bits/seconde) deux bits de stop �taient autrefois utilis�s mais maintenant le deuxi�me bit de stop n'est utilis� que dans des situations tr�s inhabituelles (ou par erreur puisqu'il semble encore fonctionner correctement de cette mani�re).

21.5 Limitations de EIA-232

Basses vitesses et courtes distances

Le port s�rie EIA-232 traditionnel est � basse vitesse de mani�re inh�rente, et est s�rieusement limit� en taille (distance). Les publicit�s disent souvent "grande vitesse" mais cela ne peut fonctionner � grande vitesse que sur de tr�s courtes distances comme pour un modem situ� juste � c�t� de l'ordinateur. Tous les fils utilisent un retour de masse commun et donc la technologie en paire torsad�e (n�cessaire � de grandes vitesses) ne peut �tre utilis�e sans mat�riel suppl�mentaire. Cependant certains ordinateurs poss�dent des interfaces plus modernes. Voyez successeurs de EIA-232.

Il est parfois d�cevant que la norme RS-232 de 1969 n'ait pas utilis� la technologie en paire torsad�e qui aurait pu fonctionner � peu pr�s 100 fois plus rapidement. Les paires torsad�es sont utilis�es dans les c�bles t�l�phoniques depuis la fin du 19�me si�cle. En 1888 (il y a plus de 100 ans) la "conf�rence sur le c�ble" a rapport� son attachement � la paire torsad�e (pour les syst�mes t�l�phoniques) et a avanc� ses avantages. Mais plus de 80 ans apr�s cette approbation par la "conf�rence du c�ble", RS-232 n'a pas r�ussi � l'utiliser. Puisque RS-232 �tait au d�part faite pour connecter un terminal � un modem basse vitesse situ� tout pr�s, le besoin de grande vitesse et d'une longueur de transmission plus �lev�e n'a apparemment pas �t� per�u.

Successeurs de EIA-232

Un certain nombre de normes EIA ont �t� �tablies pour des vitesses plus �lev�es et des distances plus grandes en utilisant la technologie en paire torsad�e (�quilibr�e). Une transmission �quilibr�e peut parfois �tre une centaire de fois plus rapide que EIA-232 non �quilibr�e. Pour une vitesse donn�e, la distance (longueur maximale du c�ble) peut �tre beaucoup de fois plus grande avec de la paire torsad�e. Mais les PC continuent d'�tre fabriqu�s avec l'EIA-232 "obsol�te" puisque que cela fonctionne correctement avec les modems reli�s aux lignes t�l�phoniques lentes, et cela fonctionne correctement avec les souris.

Une exception reste l'ordinateur Macintosh d'Apple avec son GeoPort EIA-232/EIA-422 qui fournit de la paire torsad�e (�quilibr�e) pour la transmission et la r�ception. Il utilise un petit connecteur rond "mini-DIN". Il fournit aussi du EIA-232 traditionnel mais seulement � 5 volts (ce qui reste du EIA-232 l�gal). Cependant, � cause du fait que les Mac co�tent plus cher que les PC, on les utilise rarement comme ordinateur h�te pour des terminaux. Certains terminaux r�cents utilisent l'EIA-423 mais cela reste comme de l'EIA-232 non �quilibr� et on peut les relier � un port EIA-232. Cet EIA-423 ne fait que 5 volts, mais les sp�cifications donnent des vitesses plus �lev�es que pour EIA-232 (qui ne sera d'aucune aide sur une grande distance o� c'est le non-�quilibrage qu cause les interf�rences).

L'EIA-530-A (�quilibr� mais peut aussi �tre non �quilibr�) � 2 Mbits/s (�quilibr�) �tait fait pour remplacer EIA-232 mais on en a peu install�. Elle utilise le m�me connecteur � 25 broches que EIA-232. L'interface s�rie � grande vitesse (HSSI = EIA-612/613, High Speed Serial Interface) utilise un connecteur � 50 broches et monte � peu pr�s � 50 Mbits/s mais la distance est limit�e � seulement quelques m�tres. Le Bus S�rie Universel (USB, Universal Serial Bus) est construit dans des puces PCI. Il fait 12 Mbits/s sur une paire torsad�e avec un connecteur � 4 broches (2 c�bles fournissent le courant) mais il est aussi limit� � des distances courtes d'au plus 5 m�tres (cela d�pend de la configuration).

Pilotes de lignes

Pour un terminal texte, les vitesses de EIA-232 sont suffisamment rapides mais la longueur de c�ble utilisable est souvent trop courte. La technologie �quilibr�e pourrait r�soudre ce probl�me. La m�thode courante pour obtenir une communication �quilibr�e avec un terminal texte est d'installer deux pilotes de ligne dans la liaison s�rie pour convertir du non �quilibr� en �quilibr� (et vice-versa). Ce sont des appareils sp�cialis�s et ils sont chers si on les ach�te neufs.

21.6 Synchronisation et synchrone

Comment on synchronise l'"asynchrone"

Dans EIA-232 il n'y a que deux �tats sur le fil de transmission (ou de r�ception) : marque (-12 V) ou espace (+12 V). Il n'y a pas d'�tat � 0 V. Ainsi une s�quence de bits � 1 est tranmise avec uniquement du -12 V stable sans marqueur d'aucune sorte entre les bits. Pour que le r�cepteur d�tecte les bits individuels il doit toujours disposer d'un signal d'horloge qui est synchronis� avec l'horloge de l'�metteur. De telles horloges g�n�rent un "top" synchronis� avec chaque bit transmis (ou re�u).

En transmission asynchrone, la synchronisation est faite en encadrant chaque octet d'un bit de d�part et d'un bit de stop (fait par le mat�riel). Le r�cepteur attend sur la ligne un bit de d�part et quand il en d�tecte un il lance son top d'horloge. Il utilise ce top d'horloge pour mesurer le temps de lecture des 7, 8 ou 9 prochains bits. (C'est en fait un petit peu plus compliqu� que cela puisqu'on prend en g�n�ral plusieurs mesures pour un bit, ce qui demande des tops suppl�mentaires.) Ensuite le bit de stop est lu, l'horloge s'arr�te et le r�cepteur attend le bit de d�part suivant. Ainsi l'asynchrone est en fait synchronis� pendant la r�ception d'un seul octet mais il n'y a pas de synchronisation entre un octet et l'octet suivant.

D�finir l'asynchrone par rapport au synchrone

L'asynchrone signifie "non synchrone". En pratique, un signal asynchrone repr�sente ce que le port s�rie asynchrone envoie et re�oit qui est un flux d'octets, chacun d'entre eux �tant d�limit� par un bit de d�part et un bit de stop. Le synchrone est � peu pr�s tout le reste. Mais ceci n'explique pas les concepts de base.

En th�orie, synchrone veut dire que les octets sont envoy�s � vitesse constante l'un apr�s l'autre en accord sur un top d'horloge. Il y a souvent un fil ou un canal s�par� pour envoyer le top d'horloge. Les octets asynchrones peuvent �tre envoy�s n'importe quand avec des intervalles de temps vari�s entre les octets (comme quelqu'un qui tape des caract�res sur un clavier).

Il y a des situations limites qu'on doit classer comme synchrones ou asynchrones. Le port s�rie asynchrone envoie souvent des octets dans un flux constant qui en ferait un cas synchrone mais comme il y aura encore les bits de d�part et de stop (ce qui permet de les envoyer de mani�re ind�termin�e) on l'appelle asynchrone. Un autre cas est quand les octets de donn�es (sans auncun bit de d�part ou de stop) forment des paquets avec un espacement erratique entre un paquet et le suivant. On l'appelle synchrone puisque les octets � l'int�rieur de chaque paquet doit �tre transmis de mani�re synchrone.

Communication synchrone

Ne vous-�tes vous jamais demand� ce qu'on faisait de toutes les broches inutilis�es sur un connecteur 25 broches pour le port s�rie ? La plupart d'entre eux sont utilis�s dans une communication synchrone qu'on impl�mente rarement sur les PC. Il y a des broches pour les signaux de temporisation de synchronisation ainsi que pour un canal inverse synchronis�. La sp�cification EIA-232 est donn�e � la fois pour les communications synchrones et asynchrones mais les PC utilisent une puce UART (�metteur R�cepteur Asynchrone Universel) comme un 16450, un 16550A ou un 16550 et ne peuvent faire de la synchronisation. Pour faire du synchrone on a besoin d'une puce USART ou �quivalente o� le "S" veut dire synchrone. Puisque le synchrone est un march� de niche, un port s�rie synchrone est s�rement assez cher.

� c�t� de la partie synchrone de EIA-232, il y a plusieurs autres normes EIA synchrones. Pour EIA-232, trois broches sur le connecteur sont r�serv�es pour les signaux d'horloge (de temporisation). Parfois c'est le r�l du modem de g�n�rer certains signaux de temporisation rendant l'utilisation de communications synchrones impossibles sans un modem synchrone (ou sans appareil qu'on appelle "�liminateur de modem synchrone" qui fournit les signaux de temporisation).

Bien que peu de ports s�rie soient synchrones, la communication synchrone prend souvent place sur les lignes t�l�phoniques en utilisant des modems qui utilisent la correction d'erreurs V.42. Ceci enl�ve les bits de d�part et de stop et place les octets de donn�es dans des paquets ce qui donne une op�ration synchrone sur la ligne t�l�phonique.

21.7 Mode par blocs

Introduction au mode par blocs

Le mode par blocs est rarement utilis� sous Linux. En mode par blocs, quand quelqu'un tape sur un terminal, le r�sultat est sauv� dans la m�moire du terminal et n'est pas envoy� imm�diatement � l'ordinateur h�te. De tels terminaux poss�dent souvent des possibilit�s d'�dition int�gr�es. Quand l'utilisateur appuie sur certaines touches (comme la touche envoi), ce qui a �t� sauvegard� dans la m�moire du terminal est envoy� � l'ordinateur h�te. Cependant les �diteurs vi et emacs sous Linux r�agissent instantan�ment � l'appui de certaines touches, mais, dans la situation ci-dessus, si on appuie sur de telles touches, rien ne se passera puisque rien n'est envoy� quand on appuie sur une touche. Ainsi l'utilisation d'un terminal en mode par blocs ne permettra pas l'utilisation de tels programmes interactifs. La vieille interface vers les minis IBM utilise le mode par blocs (voyez terminaux IBM) et donc beaucoup de terminaux IBM ne fonctionnent qu'en mode par blocs et sont aussi synchrones (voyez la section synchronisation et synchrone).

Types de modes par blocs, formulaires

Le mode par blocs peut lui-m�me avoir divers sous-modes comme "page" (une page � la fois) et "ligne" (une ligne � la fois). Certains terminaux poss�dent � la fois les modes de transmissions par blocs et les modes traditionnels par caract�res, et on peut passer d'un mode � l'autre. Les terminaux asynchrones poss�dant des modes par blocs sont parmi les HP2622A, VT130, VT131, VT330, VT340 et Visual500. Beaucoup de mod�les de terminaux plus r�cents peuvent �muler le mode par blocs. Les modes par blocs peuvent comprendre une possibilit� de formulaires o� l'ordinateur h�te envoie un formulaire au terminal. L'utilisateur le remplit alors et envoie la touche envoi qui ne renvoie que les donn�es du formulaire � l'ordinateur h�te. Le formulaire lui-m�me (pas les donn�es) est affich� � l'�cran dans des champs prot�g�s qui ne sont pas transmis � l'h�te.

Efficacit�

Les modes par blocs enl�vent une bonne partie de la charge sur l'ordinateur h�te, surtout si le mat�riel de l'ordinateur h�te est fait pour les modes par blocs (comme c'est/c'�tait le cas sur les minis IBM). En mode caract�re, chaque caract�re tap� est envoy� imm�diatement sur le port s�rie et en g�n�ral g�n�re une interruption sur l'ordinateur h�te. L'h�te qui re�oit l'octet doit arr�ter tout ce qu'il fait et va chercher ce caract�re depuis le mat�riel du port. M�me avec des UART qui poss�dent des tampons mat�riels FIFO, le d�lai mat�riel ne repr�sente normalement que le temps de transmission de 3 octets, donc une interruption est g�n�r�e � chaque caract�re tap�.

En vrai mode par blocs, un bloc de caract�res long est re�u en n'utilisant qu'une interruption. Si on utilise le mode par blocs avec des ports s�rie FIFO asynchrones, une interruption n'est n�cessaire que tous les 14 octets puisqu'ils ont des tampons mat�riels de 16 octets. Ainsi la plus grande partie de la charge et du co�t de la gestion des interruptions est �limin�e et l'ordinateur a plus de temps � consacrer � d'autres t�ches quand on utilise le mode par blocs.

On fait des �conomies significatives en mode par blocs si le terminal est reli� � son h�te par l'interm�diaire d'un r�seau. Sans le mode par blocs, chaque caract�re (octet) tap� est envoy� dans son propre paquet avec tous les octets d'enveloppe (40 dans un paquet TCP/IP comme ceux utilis�s sur l'Internet). En mode par blocs, un grand nombre de caract�res est envoy� dans un seul paquet.

21.8 Livres sur EIA-232 (RS-232)

(Note : le premier couvre bien plus que EIA-232 uniquement.)

21.9 Logiciels s�rie

Voyez logiciels s�rie pour les logiciels Linux sur les ports s�rie avec getty et les moniteurs de ports.


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:43