RS-232
# RS-232

RS-232 (parfois appelée EIA RS-232, EIA 232 ou TIA 232) est une norme standardisant une voie de communication de type série. Disponible sur presque tous les PC depuis 1981 jusqu'au milieu des années 2000, il est communément appelé le « port série ». Sur les systèmes d'exploitation MS-DOS et Windows, les ports RS-232 sont désignés par les noms COM1, COM2, etc. Cela leur a valu le surnom de « ports COM », encore utilisé de nos jours. Il est graduellement remplacé par le port USB depuis l'apparition de ce dernier, et le port RS-232 n'est désormais plus employé que dans des applications professionnelles particulières.

Le standard RS-232 recouvre plusieurs autres standards : les recommandations UIT-T V.24 (définition des circuits) et V.28 (caractéristiques électriques), ainsi que la norme ISO 2110 pour la connectique.

Les liaisons RS-232 sont fréquemment utilisées dans l'industrie pour connecter différents appareils électroniques (automate, appareil de mesure, etc.).

## Historique

Le protocole d'origine, RS-232, a été standardisé par l'EIA en 1962. Il a d’abord été utilisé en mécanographie et en électroacoustique. Des déclinaisons ont suivi, notamment les RS-232C en 1969 et RS-232D en 1986. Peu à peu tombé dans l'obsolescence, il finit par être remplacé par les ports USB et FireWire dans les années 2000.

## Description

La connectique de cette liaison se présente fréquemment sous la forme du connecteur DE-9 ou DB-25, mais peut aussi être d'un autre type (RJ25, RJ50 cf. RJ45). Seule la version DB-25 est vraiment standardisée, la DE-9 (très souvent appelée DB-9 dans le commerce) est une adaptation d'IBM lors de la création du PC AT. La transmission des éléments d'information (ou bit) s'effectue bit par bit, de manière séquentielle, en série.

## Utilisations actuelles et passées

Sur la photo ci-contre est visible le symbole pour les liaisons séries, représenté par les bits 0, 1 puis 0.

Placé à l'arrière de l'ordinateur, il était souvent utilisé pour connecter une souris ou un modem de type RTC, il pouvait aussi être utilisé pour le transfert des clichés numériques depuis un appareil photo vers le PC.

Bien que ce port de communication ait aujourd'hui disparu des cartes mères récentes, remplacé par l'USB sur les PC, il reste encore très utilisé dans l'industrie, notamment de par sa robustesse et sa simplicité. Ainsi, ce port est toujours d'actualité, en particulier dans les systèmes automatisés : les transferts de Grafcets ou bien de lignes de programme pour machines-outils à commande numérique s'effectuent toujours par liaison RS-232.

Anciennement, de nombreux terminaux embarqués, qu'ils soient GPS, modems, terminaux graphiques, etc., utilisaient le RS-232 comme méthode principale de communication avec l'extérieur, tout comme les périphériques réseau (routeurs, commutateurs, etc.) étaient équipés d'un port RS-232 au travers duquel il est possible de les configurer. Enfin, les appareils de musique électronique ou numérique des années 1980 à 2000 en sont également parfois munis, comme les enregistreurs numériques, tables de mixage, synthétiseurs, échantillonneurs et consorts.

En cas d'absence de port RS 232, il existe des adaptateurs USB/port série.

### Haute disponibilité

Pour la haute disponibilité, une liaison RS-232 est parfois utilisée : deux serveurs fonctionnent en cluster et ils se surveillent l'un l'autre via une liaison RS-232. C'est le cas par exemple de Heartbeat.

## Spécification

Le standard RS-232 permet une communication série, asynchrone et duplex entre deux équipements.

### Portée du standard

En règle générale, une jonction numérique entre un équipement terminal de traitement de données (ETTD, en anglais DTE) et un équipement terminal de circuit de données (ETCD, en anglais DCE), située au niveau 1 du modèle OSI, se définit par trois paramètres : les circuits, les niveaux électriques et le brochage. Ce sont ces trois éléments qui sont couverts par le standard RS-232.

Plus précisément, le standard RS-232 spécifie :

* La fonction de chaque circuit de jonction. Cela correspond à la norme UIT-T V.24, dans laquelle ces circuits sont numérotés dans la série 100 (102 retour commun, 103 émissions de données, 104, etc.).
* Les caractéristiques électriques de la liaison : niveaux de tension, débits possibles, etc. Cela correspond à la norme UIT-T V.28.
* Les caractéristiques mécaniques pour les connecteurs et l'identification des contacts. Dans le cas d'un connecteur DB-25, cela correspond à la norme ISO 2110.

Par contre, ce standard ne définit pas :

* Le codage des caractères (ASCII, Code Baudot ou EBCDIC par exemple).
* La façon dont les caractères sont répartis en trames.
* Les protocoles de détection d'erreur ou les algorithmes de compression de données.
* Les débits de transmission : seule une limite supérieure de 20 000 bauds est indiquée.
* La fourniture de courant électrique à des périphériques.

### Mécanique

* Le standard spécifie initialement l'utilisation de connecteurs DB-25 mâle du côté DTE (Data Terminal Equipement), et DB-25 femelle du côté DCE (Data Communications Equipment) (modem).
* Entre un DTE et un DCE, le câblage est droit : les broches sont connectées une à une de part et d'autre. Un tel câble est muni de connecteurs de genres différents (un mâle et une femelle). Ces câbles peuvent être connectés en série (comme des « rallonges »).
* Dans les configurations où deux DTE sont directement connectés (c'est-à-dire en l'absence de modem), un câble de liaison croisé dit « Null modem » doit être utilisé. Il est muni de connecteurs femelle à chaque extrémité, et possède un câblage spécifique, qui n'était pas prévu par la norme.

Schéma usuel de raccordement d'un câble « Null modem » à 25 broches (symétrique) ; en gras les signaux croisés :

Attention, câblage à vérifier !

| | Dir | | | Dénomination (côté DTE) |
| - | - | - | - | - |
| 1 | --- | 1 | PG | Masse de blindage (protection électromagnétique) |
| 3 | ← | 2 | TxD | Données à transmettre |
| 2 | → | 3 | RxD | Réception des données |
| 5 | ← | 4 | RTS | Demande de transmission |
| 4 | → | 5 | CTS | Prêt pour transmission |
| 20 | → | 6 | DSR | Envoyez les données |
| 7 | --- | 7 | SG/GND | 0 Volt électrique |
| 20 | → | 8 | DCD | Détection d'un signal sur la ligne |
| 9 | --- | 9 | | + Tension |
| 10 | --- | 10 | | - Tension |
| 11 | --- | 11 | |
| 12 | --- | 12 | SDCD | Deuxième Détection de signal sur la ligne |
| 19 | → | 13 | SCTS | Deuxième Prêt pour transmission |
| 16 | ← | 14 | STD | Deuxième Transmission des données |
| 17 | → | 15 | ST | Signal d'horloge pour transmission de données |
| 14 | → | 16 | SRD | Deuxième Réception des données |
| 15 | → | 17 | RT | Signal d'horloge pour réception de données |
| | | 18 | | DTE demande le rebouclage du DCE local |
| 13 | ← | 19 | SRTS | Deuxième Demande de transmission |
| 6 | ← | 20 | DTR | Données prêtes |
| | | 21 | | DTE demande le rebouclage du DCE distant |
| 22 | → | 22 | RI | Indicateur de sonnerie |
| | | 23 | | Signal de sélection de vitesse |
| 17,24 | ← | 24 | TT | Horloge de transmission |
| | | 25 | | DCE en test de rebouclage |

Note : l'éventuel signal d'horloge émis par le terminal (DTE) en pin 24 est reçu par l'ordinateur (DCE) en pin 17. L'éventuel signal d'horloge émis par le DCE en pin 15 est reçu par le DTE en pin 17.

**Brochage**

* Les connecteurs DE-9 (souvent appelés par erreur DB-9) ont rapidement remplacé les DB-25, pour des raisons de taille de connecteur et d'économie de câblage, tous les signaux n'étant pas indispensables à la communication.

Tableau décrivant le connecteur DE-9 et la compatibilité avec le DB-25 :

| Signal | Signal | Origine | Origine | DB-25 | DE-9 |
| - | - | - | - | - | - |
| Name | Abréviation | DTE | DCE | DB-25 | DE-9 |
| Transmitted Data | TxD | ● | | 2 | 3 |
| Received Data | RxD | | ● | 3 | 2 |
| Data Terminal Ready | DTR | ● | | 20 | 4 |
| Data Carrier Detect | DCD | | ● | 8 | 1 |
| Data Set Ready | DSR | | ● | 6 | 6 |
| Ring Indicator | RI | | ● | 22 | 9 |
| Request To Send | RTS | ● | | 4 | 7 |
| Clear To Send | CTS | | ● | 5 | 8 |
| Signal Ground | G | commun | commun | 7 | 5 |
| Protective Ground | PG | commun | commun | 1 | NC |

### Protocole

Pour établir une communication effective via RS-232, il est nécessaire de définir le protocole utilisé : notamment, le débit de la transmission, le codage utilisé, le découpage en trame, etc. La norme RS-232 laisse ces points libres, mais en pratique on utilise souvent des UART qui découpent le flux en trames d'un caractère ainsi constituées :

* 1 bit de départ ;
* 7 à 8 bits de données ;
* 1 bit de parité optionnel ;
* 1, 1.5 ou 2 bits d'arrêt.

Le bit de départ a un niveau logique "0" tandis que le bit d'arrêt est de niveau logique "1". Le bit de donnée de poids faible est envoyé en premier suivi des autres.

Par exemple, pour générer un signal électrique alternatif carré (rapport cyclique 1:1) sur le port série, il faut imprimer une suite consécutive de U (01010101), ce qui donne dans le temps 0 (départ) 10101010 (U, du LSB au MSB) 1 (arrêt) donc 0101010101 (010101010101010101010101010101 = UI) avec 8 bits de donnée, 1 bit départ, 1 bit arrêt et 0 bit de parité. Les niveaux électriques sont inversés (voir ci-contre).

La spécification RS-232 prescrit des débits inférieurs à 20 000 bit/s. Cependant, les débits utilisés en pratique varient entre 75 bit/s et 115 200 bit/s.

### Électrique

Un niveau logique "0" est représenté par une tension de +3 V à +25 V et un niveau logique "1" par une tension de −3 V à −25 V (codage NRZ). D'ordinaire, des niveaux de +12 V et −12 V sont utilisés.

La norme V.28 indique qu'un 1 est reconnu si la tension est inférieure à −3 V, et un 0 est reconnu si la tension est supérieure à +3 V.

## Limites

Longueur maximum de câble RS232

| Débit (bit/s) | Longueur (m) |
| - | - |
| 2 400 | 60 |
| 4 800 | 30 |
| 9 600 | 15 |
| 19 200 | 7,6 |
| 38 400 | 3,7 |
| 56 000 | 2,6 |
