Cette section n'est absolument pas n�cessaire � la compr�hension des ports s�rie sous Linux, mais peut n�anmoins vous apporter quelques �claircissements sur Unix et le monde des t�l�communications.
Un fichier verrou est simplement un fichier qui indique qu'un
p�riph�rique particulier est en cours d'utilisation. Ils sont
regroup�s dans /usr/spool/uucp
ou /var/lock
.
Sous Linux, ils se nomment LCK..
nom o� nom est
soit un nom de p�riph�rique, soit un nom de site UUCP. Certains
processus cr�ent de tels fichiers pour s'assurer l'acc�s
exclusif aux p�riph�riques. Par exemple, si vous appelez avec
votre modem, un fichier verrou va �tre cr�� pour avertir les
autres processus que le modem est d�j� en cours d'utilisation.
Les verrous contiennent principalement le PID du processus qui
s'est attribu� le p�riph�rique. La plupart des programmes
regardent dans un premier temps si un fichier verrou existe,
puis s'il est toujours valide en recherchant dans la table des
processus le programme qui a verrouill� le p�riph�rique. Si le
fichier verrou est toujours valide, alors le nouveau programme
doit s'arr�ter. Dans le cas contraire, certains programmes
suppriment le fichier verrou p�rim�, et utilisent le
p�riph�rique en cr�ant leur propre verrou � l'int�rieur du
processus. D'autres programmes s'arr�tent tout simplement et
pr�viennent l'utilisateur que le p�riph�rique est d�j� utilis�.
``baud'' et ``bps'' font certainement partie des termes les plus mal utilis�s dans le monde de l'informatique et des t�l�communications. Ils sont souvent consid�r�s � tort comme �quivalents, alors qu'ils ne le sont pas !
Le baud repr�sente la fr�quence de (d�)modulation d'un signal, par exemple celui envoy� ou re�u par un modem (modulateur-d�modulateur), c'est-�-dire le nombre de fois o� il change par seconde. Par exemple, 1200 bauds implique que le signal change d'�tat toutes les 833 microsecondes. Les fr�quences de (d�)modulation les plus courantes pour un modem sont 50, 75, 110, 300, 600, 1200, et 2400 bauds. La plupart des modems hautes vitesses fonctionnent � 2400 bauds. Les fr�quences plus �lev�es sont plus difficiles � atteindre. Cette limitation est principalement due aux basses performances des lignes t�l�phoniques d�di�es essentiellement au transport de la voix. Plusieurs bits sont alors encod�s par baud, ce qui permet d'obtenir des taux de transfert en bits plus �lev�s qu'en bauds. L'�tymologie du mot ``baud'' vient de l'inventeur de l'imprimante t�l�graphique asynchrone, �mile Baudot.
Le taux de transfert en bps repr�sente le nombre de bits transmis en une seconde. Les vitesses en bps les plus courantes sont 50, 75, 110, 300, 1200, 2400, 9600, ... 115200. Les modems avec compression V.42bis (rapport maximal de 4 � 1) activ�e sont capables th�roriquement d'atteindre des vitesses de 115200 bps. C'est l'usage mauvais le plus courant du terme ``baud''.
Donc, si les modems hautes vitesses fonctionnent � 2400 bauds, comment peuvent-ils �mettre � 14400 bps ? En fait, les modems atteignent des taux de transfert en bps sup�rieurs � la fr�quence de modulation, en codant plusieurs bits dans un seul changement d'amplitude ou de phase du signal. Ainsi, quand 2 bits ou plus sont cod�s par baud, la vitesse en bps d�passe la fr�quence en bauds. Quand votre modem se connecte � 14400 bps, il envoie effectivement 6 bits � chaque changement de phase, � 2400 bauds.
Cette confusion entre bauds et bps date du temps o� les taux de transfert �taient faibles, et o� la vitesse en bps �galait la fr�quence de modulation en bauds. Par exemple, un modem � 300 bps fonctionne � une fr�quence de 300 bauds. Les deux valeurs ont commenc� � diverger avec l'apparition des modems hautes vitesses.
Les UART (Universal Asyncronous Receiver Transmitter - �metteur R�cepteur Universel Asynchrone) sont des circuits �lectroniques �quipant les cartes s�rie des PC. Ils servent � transformer les donn�es en bits, � les envoyer sur la ligne s�rie, puis � reconstruire ces donn�es � l'autre bout. Ils travaillent sur des octets, qui correspondent justement � la taille des caract�res ASCII.
Supposons qu'un terminal est connect� � votre PC. Quand vous tapez un caract�re, le terminal l'envoie � un �metteur (qui est aussi un UART). L'�metteur envoie alors cet octet sur la ligne s�rie, bit par bit, et � une vitesse sp�cifique. Du c�t� PC, l'UART r�ceptionne ces bits, reconstruit l'octet, et enfin le place dans une zone m�moire.
Il existe essentiellement deux types d'UART : les simples (8250 et 16450), et ceux dot�s de FIFO (16550A). Pour comprendre les diff�rences qui existent entre ces circuits, il faut examiner ce qui se passe quand un UART envoie ou re�oit un octet.
L'UART lui-m�me ne fait rien avec les donn�es ; il s'occupe juste de les �mettre ou les r�ceptionner. Le CPU re�oit une interruption du p�riph�rique s�rie chaque fois qu'un octet part ou arrive. Le CPU d�place alors l'octet re�u du p�riph�rique s�rie vers une zone m�moire, ou alors il redonne � l'UART un nouvel octet � transmettre. Les UART 8250 et 16450 ne poss�dent qu'une zone tampon d'un octet, ce qui signifie que le CPU est interrompu � chaque caract�re. �a fonctionne aux vitesses faibles, mais pour des vitesses �lev�es, le CPU est tellement occup� par l'UART, qu'il n'a plus assez de temps pour les autres t�ches. Dans certains cas, le CPU ne peut pas r�pondre � l'interruption assez vite, et les caract�res sont alors �cras�s (overrun error).
Les UART 16550 sont alors utiles car ils sont �quip�s de tampons FIFO de 16 octets, c'est-�-dire qu'ils peuvent �mettre ou recevoir jusqu'� 16 octets avant d'interrompre le CPU. Bien que ce seuil d'interruption soit rarement fix� � 16, �a repr�sente quand m�me un avantage significatif par rapport aux UART dot�s d'un tampon d'un seul octet. Le CPU est alors interrompu moins souvent et peut consacrer plus de temps aux autres t�ches. Les donn�es ne sont donc plus perdues. (Il existe �galement un UART 16550, consid�r� comme un 16450 car il est d�fectueux.)
En g�n�ral, les 8250 et 16450 peuvent suffire pour des vitesses n'exc�dant pas 38400 bps. � des vitesses sup�rieures, vous pouvez voir appara�tre des pertes de caract�res. D'autres syst�mes d'exploitation pour PC, comme DOS (d�finition approximative dans ce cas), qui ne sont pas multit�ches, peuvent � la rigueur mieux se d�brouiller avec des 8250 ou des 16450. C'est pour cela que certaines personnes ne constatent aucune perte de donn�es, jusqu'au moment o� elles passent � Linux.
Les cartes multiports intelligentes utilisent des DSP (Digital Signal Processors - processeurs de signaux digitaux) pour assurer des fonctions suppl�mentaires de contr�le et de mises en m�moire tampon, ce qui permet de d�charger encore plus le CPU. Par exemple, les cartes Cyclades Cyclom et Stallion EasyIO poss�dent un UART RISC Cirrus Logic CD1400. La plupart des autres cartes sont dot�es de CPU 80186, voire de CPU RISC sp�cifiques, pour assurer les entr�es/sorties s�rie.
Gardez � l'esprit que ces UART ne sont pas mauvais, mais qu'ils ne suffisent pas pour des vitesses �lev�es. Vous ne devriez pas rencontrer de probl�me en connectant un terminal ou une souris sur de tels UART. Par contre, les 16550A sont d�finitivement un must pour les modems hautes vitesses.
Les cartes � base d'UART 16550A sont � peine plus ch�res que celles � base de 16450. De m�me, il est possible de remplacer les UART 16450 existants sur une carte par des 16550A. Ces circuits sont compatibles broche � broche. Certaines cartes sont m�me �quip�es � cet effet d'UART mont�s sur support. Sinon, il faudra souder. Remarquez que vous vous �viterez s�rement pas mal de soucis en achetant directement une nouvelle carte.
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:43