L'interface Série


L'interface série asynchrone est le principal port de communication entre ordinateur ( hormis les réseaux ). Le terme "asynchrone" signifie que cette interface n'utilise ni synchronisation ni cadençage d'horloge et que les caractères peuvent donc être envoyés à un intervalle de temps arbitraire, tout comme lorsqu'ils sont saisis par un claviste.Chaque caractère est délimité par un signal de début et un signal de fin standard. Chaque caractère est précédé par un bit de 0, appelé "bit de début", pour indiquer à l'ordinateur qui doit le recevoir que les huit bits suivants constituent un octet d'information. Chaque caractère est par ailleurs suivi d'un ou de deux bits de fin indiquant que le caractère a été envoyé. La reconnaissance des caractères envoyés s'effectue sur la base des signaux de début et de fin et non en fonction de la cadence à laquelle ils ont été envoyés . L'interface asynchrone est orienté caractère et les informations utilisées pour identifier les caractères allongent la durée des transferts de 20 %.

Le terme "série" se rapporte aux données envoyées par le biais d'un fil, tous les bits envoyés s'alignant en série. C'est ce type de communication qui est utilisé pour effectuer des transferts par le biais du réseau téléphonique car les lignes téléphoniques offrent un fil pour recevoir les données et un autre pour les envoyer. Les fabricants proposant des ports série à ajouter sont nombreux, mais les cartes série multi-fonction ayant au moins un port parallèle comportent généralement également un port série.

Brochage du port série standard à 9 broches

db9.gif (3155 octets)

Tableau : Connecteur de port série à 9 broches (AT)

Broche Signal Description E/S
1 CD Détection de porteuse Entrée
2 RD Réception de données Entrée
3 TD Emission de données Sortie
4 DTR Terminal de données prêt Sortie
5 SG Masse de signal  
6 DSR Données prêtes Entrée
7 RTS Requête d'émission Sortie
8 CTS Prêt pour l'émission Sortie
9 RI Indicateur d'appel Entrée

Brochage du port série à 25 broches

Tableau : Connecteur de port série à 25 broches (PC, XT et PS/2)


Broche Signal Description E/S
1 GND Masse de châssis  
2 TD Emission de données Sortie
3 RD Réception de données Entrée
4 RTS Requête d'émission Sortie
5 CTS Prêt pour l'émission Entrée
6 DSR Données prêtes Entrée
7 SG Masse de signal  
8 CD Détection de porteuse Entrée
9 Réservé + Retour de boucle de courant de transmission Sortie
11 Non Assigné - Données de boucle de courant de transmission Sortie
18 Non Assigné + Données de boucle de courant de transmission Entrée
20 DTR Terminal de données prêt Sortie
22 RI Indicateur d'appel Entrée
25 Non Assigné + Retour de boucle de courant de transmission Entrée

Le port série permet de connecter un grand nombre de périphériques un modem, un dispositif de pointage, une imprimante, un autre ordinateur, un lecteur de codes barres, une balance électronique ou un circuit de contrôle d'appareil. La plupart des périphériques nécessitant une connexion bilatérale pour communiquer avec un PC utilisent un port série standard RS-232c.

Brochage de convertisseur DB9 en DB25.

Broches DB9 Broches DB25 Signal Description
1 8 CD Détection de porteuse
2 3 RD Réception de données
3 2 TD Emission de données
4 20 DTR Terminal de données prêt
5 7 SG Masse de signal
6 6 DSR Données prêtes
7 4 RTS Requête d'émission
8 5 CTS Prêt pour l'émission
9 22 RI Indicateur d'appel

La puce UART

La puce de récepteur/émetteur universelle asynchrone UART ( Universal Asynchronous Receiver Transmitter ) constitue le cœur de tout port série. Elle contrôle complètement la conversion des données natives parallèles de l'ordinateur en format série, puis la conversion des données série en format parallèle.

Il existe plusieurs types de puces UART sur le marché. Les PC et XT originaux utilisaient la puce UART 8250, qui est toujours utilisée par un grand nombre de cartes adaptateurs série du marché. Les PC/AT (et les autres ordinateurs équipés au minimum d'un 80286) utilisent une puce UART 16450. Ces deux puces ne sont pas toutes deux aussi bien adaptées aux communications à grande vitesse: la puce 16450 est en effet mieux adaptée que la puce 8250, mais la plupart des logiciels ne font aucune distinction entre les deux.

La puce UART 16550 a été la première puce série utilisée sur les PS/2. Elle était capable de fonctionner comme les puces 16450 et 8258 apparues avant elle et comportait en outre une zone tampon de 16 octets facilitant les communications rapides. Cette puce comportait malheureusement des bogues, surtout au niveau de cette zone tampon. Ces bogues ont été corrigés sur la puce UART 16550 A qui équipe tous les ports série à hautes performances, le débit peut atteindre 115,2 Kbps.

La puce UART 16650 A étant plus rapide et plus fiable que ses prédécesseurs, il est préférable d'utiliser des ports série qui l'utilisent. Si vous n'êtes pas sur du type de puce utilisé par votre ordinateur, vous pouvez utiliser le programme MSD de Microsoft (livré sous Windows, sous MS-DOS 6.x et sous Windows 95). Si vous travaillez sous Windows 95, vous pouvez cliquer à l'aide du bouton droit sur Poste de travail puis sur Propriétés. La boîte de dialogue Propriétés système apparaît. Cliquez sur l'onglet Gestionnaire de périphériques puis deux fois sur Ports (COM et LPT).

Cliquez deux fois sur le port que vous souhaitez vérifier, sélectionnez l'onglet Paramètres et cliquez sur Avancés. Si votre contrôleur utilise une puce UART 16550, la case Utiliser les tampons FIFO (requiert l'UART compatible 16550) sera cochée.

Ports série à grande vitesse

Certains fabricants de modems sont allés encore plus loin dans l'amélioration des transferts données série en lançant des ports série étendus ESP, encore appelés "ports série à super grande vitesse".

Ces ports permettent à un modem fonctionnant à 28 800 bps de communiquer avec un ordinateur à un débit pouvant atteindre 921 000 bps. La vitesse supplémentaire offerte pour ces ports est générée grâce à une augmentation de la taille de la zone tampon.

Ces ports reposent généralement sur un émulateur de puce UART 16550 ou UART 16550 AF utilisant deux zones tampons de 1 024 octets, et sur un circuit de contrôle de flux intégré à la carte; ils peuvent accroître sensiblement la vitesse des transferts lorsque l'ordinateur émetteur et l'ordinateur récepteur sont tous deux équipés d'un port de ce type. Si un seul ordinateur est équipé d'un port de ce type, ce port n'apportera aucune amélioration.La plupart des puces UART utilisées sur des ordinateurs compatibles PC sont soit fabriquées par National Semiconductor, soit copiées sur des puces fabriquées par National Semiconductor.

Il est possible de les identifier en cherchant la puce la plus importante du port série et en lisant sa référence. Ces puces sont généralement enfichées sur un support et il est en principe possible de ne remplacer que la puce.

Le Tableau ci dessous présente tous les types de puces UART susceptibles d'équiper un port série.

Le bogue d'interruption mentionné au Tableau ci dessous correspond à une fausse interruption générée par la puce 8250 au terme d'un accès. Le code BIOS de la ROM des PC et des XT a été conçu pour contourner ce bogue. Si ces ordinateurs sont équipés d'une puce sans bogue, il risque de se produire des "plantages " aléatoires. Ce bogue n'existe pas sur les puces 16450 et 16550 A, et le BIOS de ROM de l'AT a été écrit sans aucun des débogueurs utilisés sur les PC et les XT.

Tableau des puces UART des PC et des AT

Puce Description
8250 IBM a utilisé cette première puce sur la carte de port série du PC. Elle présente plusieurs bogues sans gravité. Le BIOS de ROM du PC et de l'XT est conçu pour anticiper au moins l'un de ces bogues. Cette puce a été remplacée par la puce 8250B.
8250 A N'utilisez jamais cette seconde version de la puce 8250 sur quelqu'ordinateur que ce soit Cette version améliorée résout plusieurs bogues de la puce 8250 et notamment un bogue de registre d'activation d'interruption mais elle ne fonctionne pas avec les PC et les XT car leur BIOS attend que ce bogue survienne. Elle devrait théoriquement fonctionner sur un AT qui n'attend pas ce bogue mais ne fonctionne en fait pas correctement à 9 600 bps.
8250 B Cette dernière version de la puce 8250 résout les bogues des deux versions précédentes. Le bogue d'activation d'interruption de la puce 8250 originale attendu par le BIOS de ROM du PC et de l'XT a été rétabli sur cette version, qui est la plus souhaitable pour tout port série d'ordinateur autre qu'un AT. La puce 8250B peut fonctionner sur un AT sous DOS mais elle ne fonctionne pas correctement à 9 600 bps. ( Débit maximum = 19,2 Kbps )
16450 IBM a choisi cette version grande vitesse de la puce 8250 pour l'AT. Le bogue d'activation d'interruption mentionné précédemment étant résolu sur cette puce, elle ne fonctionne pas sur beaucoup de PC et d'XT qui attendent qu'il se produise. Sous OS/2, cette puce est le minimum requis pour que l'ordinateur fonctionne correctement. Elle inclut en outre un registre bloc-notes au niveau du registre le plus élevé. Elle est utilisée essentiellement sur les AT car elle offre un débit supérieur à celui de la puce 8520B. ( Débit maximum = 38,4 Kbps )
16550 Cette nouvelle puce UART est supérieure à la puce 16450. Elle ne peut pas être utilisée en mode d'utilisation de zone tampon FIFO car elle présente des défauts de conception, mais elle permet aux programmeurs d'utiliser plusieurs canaux DMA et ainsi d'accroître le débit des AT et des ordinateurs de classe supérieur et il est fortement recommandé de remplacer cette puce par une puce 16550 A.( Débit maximum = 115,2 Kbps )
16650 A Cette puce est une puce 16450 plus rapide intégrant un mode de zone tampon d'émission/réception FIFO à 16 caractères qui fonctionne. Elle offre également un accès à de multiples canaux DMA. Il est conseillé d'installer une puce de ce type sur une carte de port série d'AT pour communiquer correctement avec d'autres ordinateurs à 9 600 bps, voire davantage. Lorsque le logiciel utilise le mode de zone tampon FIFO, ce qui est le cas de la plupart des logiciels actuels, cette puce peut accroître considérablement la vitesse des communications et éliminer les pertes de caractères et de données survenant à grande vitesse.

Divers fabricants proposent aujourd'hui des modèles de puces 16550 A mais National Semiconductor a été le premier. La référence complète de sa puce à 40 broches est soit NS16550 AN soit NS16550 A. Si vous achetez une puce de ce type, vérifiez qu'il s'agit bien d'une puce 16650 A et non d'une puce 16550, plus ancienne.

II existe sur le marché un grand nombre de programmes, tels que Norton Utilities, permettant de tester et d'identifier le type de puce UART utilisé sur un ordinateur donné. C'est également le cas du Gestionnaire de périphériques de Windows 95 et de MSD (Microsoft Diagnostics), livré sous DOS 6.x et sous Windows 3.x, comme cela a été mentionné précédemment.

Les routines d'identification de MSD présentent malheureusement un bogue. Lorsqu'un ordinateur est équipé d'une puce 16450, MSD détecte en effet une puce 8250. MSD identifie en revanche correctement les puces 16550 A, qui sont de toute façon les plus recommandées.

Configuration du port série

A chaque fois qu'un caractère est reçu par un port série, il doit attirer l'attention de l'ordinateur en activant un canal de requête d'interruption. Les ordinateurs à bus ISA 8 bits comportent 8 canaux de ce type. Les ordinateurs à bus ISA 16 bits en comportent 16. C'est généralement la puce contrôleur d'interruption 8259 qui traite ces requêtes d'attention. Sur une configuration standard, le port série COM1 utilise l'IRQ4 et le port série COM2 utilise l'IRQ3.

Lorsqu'un port série est installé sur un ordinateur, il doit être configuré pour utiliser dés adresses d'E/S spécifiques (appelées "ports") et des interruptions (appelées IRQ); il est à cet égard préférable d'utiliser les standards existants. Pour configurer des ports série, utilisez les adresses et les interruptions présentées dans le Tableau suivant.

Tableau des adresses de ports d'E/S et des interruptions du port série standard

Système COMx Port IRQ
Tous COM1 3F8h - 3FF IRQ4
Tous COM2 2F8h - 2FF IRQ3
Bus ISA COM3 3E8h - 3EF IRQ4*
Bus ISA COM4 2E8h - 2EF IRQ3*
Bus ISA COM5 3EOh IRQ4*
Bus ISA COM6 2EOh IRQ3*
Bus ISA COM7 338h IRQ4*
Bus ISA COM8 238h IRQ3*
Bus MCA COM3 3220h IRQ3
Bus MCA COM4 3228h IRQ3
Bus MCA COM5 4220h IRQ3
Bus MCA COM6 4228h IRQ3
Bus MCA COM7 5220h IRQ3
Bus MCA COM8 5228h IRQ3

*Beaucoup de ports série COM3, COM4, COM5, COM6, COM7 et COM8 peuvent être configurés pour partager les IRQ 3 et 4 avec les ports série COM1 et COM2, mais ce type de configuration est déconseillé. Chaque adresse utilise une plage de 8 octets d'où le 3F8 - 3 FF ce qui correspond à l'adresse décimale 1016 à 1023.

Si vous installez d'autres ports série que les ports standard COM1 et COM2, veillez à ce qu'ils utilisent des interruptions exclusives ne provoquant pas de conflits. Si vous achetez une carte adaptateur de port série en prévoyant de lui faire générer des ports situés au-delà des ports COM1 et COM2 standard, veillez à ce qu'elle soit capable d'utiliser des interruptions autres que les interruptions IRQ3 et IRQ4.

Il est généralement recommandé d'attribuer l'IRQ10 au port COM3 et l'IRQ 11 au port COM4.II peut se produire un problème lorsque le BIOS démarre depuis ces ports. Si le test POST ne détecte pas de port série mais 2F8, le port série sera, à tort, attribué à COM1. Le canal d'IRQ réservé à COM1 est l'IRQ4, mais le port série utilise l'adresse de COM2, ce qui signifie qu'il devrait utiliser l'IRQ3 et non l'IRQ4. Si l'ordinateur est utilisé pour travailler avec COM1 sous BASIC ou sous DOS, le port série ou le modem ne fonctionneront par conséquent pas.

Par ailleurs, IBM n'a jamais prévu de fonctions permettant d'utiliser les ports série COM3 et COM4 dans ses BIOS d'ordinateurs à bus ISA. La commande DOS MODE ne peut par conséquent pas fonctionner avec des ports série supérieurs à COM2 puisque les informations d'E/S dont DOS a besoin sont fournies à DOS par le BIOS, qui détecte pendant le test POST les éléments installés sur l'ordinateur et l'endroit où ils sont installés.

Sur les anciens modèles d'ordinateurs, le test POST ne vérifie que les deux premiers ports installés. Les PS/2 sont dotés d'une version de BIOS améliorée qui vérifie huit ports série, bien que DOS ne soit capable d'en faire fonctionner que quatre.

Pour contourner ce problème, la plupart des logiciels de communication et certains périphériques série (certaines souris, par exemple) font fonctionner des ports série supérieurs à COM2 en s'adressant directement à eux au lieu de passer par l'intermédiaire de DOS.

Ainsi le programme de communication PROCOMM permet-il, par exemple, de faire fonctionner des ports série supplémentaires même si le BIOS et DOS en sont incapables. Bien entendu, si l'ordinateur ou les logiciels ne sont pas capables de faire fonctionner ces ports supplémentaires ou s'il faut rediriger des données en utilisant la commande MODE, surviendront des problèmes.Cartes multiport avec Windows 95, le nombre de ports acceptés a été accru et porté à 128, ce qui correspond au nombre de ports que MS-DOS est désormais capable de faire fonctionner, et cela permet d'utiliser des cartes multiport sur les ordinateurs. Les cartes multiport permettent à l'ordinateur de recevoir des données de plusieurs périphériques ou de partager des données avec plusieurs périphériques tout en n'utilisant qu'un slot.Un Port Finder : certain nombre d'utilitaires permettent d'ajouter au BIOS des informations sur les ports COM et de les rendre accessibles à DOS. Le programme Port Finder, disponible dans la bibliothèque de données "General Hardware" du forum PCHW sur CompuServe, est l'un des plus performants.Port Finder active les ports supplémentaires en communiquant leur adresse au BIOS et en fournissant des utilitaires permettant d'échanger ces adresses entre les différents ports. Cet échange d'adresses permet aux programmes incapables de travailler avec les ports série COM3 et COM4 d'accéder à ces ports. Les logiciels capables de fonctionner directement avec ces ports supplémentaires ne sont généralement pas affectés.Ces ports supplémentaires doivent toutefois utiliser des interruptions distinctes. Si deux ports COM doivent fonctionner simultanément, il est impératif qu'ils utilisent des interruptions n'entraînant pas de conflits. Il est déconseillé de partager des interruptions, même si cette pratique était courante avant l'arrivée de systèmes d'exploitation multitâches tels que Windows 95 et OS/2.

Si vous utilisez plus de 2 ports série et que vous avez besoin de partager des interruptions parce que vos cartes adaptateurs ne sont pas suffisamment flexibles ou sont obsolètes, essayez l'une des combinaisons suivantes pour les faire fonctionner simultanément:

COM1 (IRQ4) et COM2 (IRQ3)

COM1 (IRQ4) et COM4 (IRQ3)

COM2 (IRQ3) et COM3 (IRQ4)

COM3 (IRQ4) et COM4 (IRQ3)

Répartissez vos entrées de ports COM en groupes de deux, en couplant des périphériques série qui ne seront pas utilisés simultanément avec des interruptions différentes et des périphériques qui seront utilisés simultanément avec des interruptions différentes. Il est à souligner, une fois encore, que l'architecture Micro Channel utilisée sur les PS/2 ne pose aucunement ce type de problème: son BIOS recherche les ports supplémentaires et le bus MCA est capable de partager des interruptions sans provoquer de conflits. Les ordinateurs à bus EISA sont également capables de partager des interruptions.

Si votre ordinateur utilise un bus ISA, VLB ou PCI, il est fortement déconseillé de partager des interruptions entre des ports série car ce partage provoque de nombreux problèmes de conflits, surtout dans les environnements multitâches tels que Windows 95 et OS/2. Si vous achetez une carte adaptateur de port COM, veillez à ce qu'elle permette d'utiliser les IRQ 9 à 15 de façon à pouvoir utiliser certaines des interruptions 16 bits libres sur votre ordinateur.Pour configurer des cartes série sur un ordinateur à bus ISA, vous devrez probablement positionner des cavaliers et des commutateurs. Chaque modèle de carte du marché étant différent des autres, vous devrez impérativement consulter le manuel d'utilisation de cette carte précise pour savoir comment elle peut ou doit être configurée.

Câbles série complet INTERLINK dos 6.0

DB9 DB25 DB9 DB25
RXD 2 3 <--> 2 3 TXD
TXD 3 2 <--> 3 2 RXD
DTR 4 20 <--> 6 6 DSR
DSR 6 6 <--> 20 4 DTR
RTS 7 4 <--> 5 8 CTS
CTS 8 5 <--> 4 7 RTS
GND 5 7 <--> 7 5 GND