Mise en oeuvre d’un port série

Le port série RS-232

RS-232 est une norme standardisant une voie de communication de type série sur trois fils minimum. 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.

On utilise maintenant des adaptateurs USB/RS-232 car les PC ne disposent plus d’interfaces physiques RS-232. Cela revient à exploiter logiciellement un port série virtuel. Ces périphériques utilisent en réalité une transmission série avec un convertisseur USB <–> RS-232 (les circuits les plus répandus sont pl2303, FTDI FT232, …). Certains adaptateurs ajoutent un circuit MAX232 pour mettre en forme des signaux conformes au standard RS-232. La prise en charge du périphérique est assurée par le système d’exploitation via un pilote de périphérique (driver).

Pour établir une communication effective via un port série physique (RS-232) ou virtuel, il est nécessaire de définir le protocole utilisé : notamment, le débit de la transmission (en bits/s), le codage utilisé, le découpage en trame, etc. La norme RS-232 (couche Physique) laisse ces points libres, mais en pratique on utilise souvent des trames d’un caractère ainsi constituées :

  • 1 bit de départ (START)
  • 7 à 8 bit de données
  • 1 bit de parité optionnel (aucune, paire ou impaire)
  • 1 ou plusieurs bits d’arrêt (STOP)

Remarque : De nombreux périphériques séries expriment encore leur vistesse de transmission en bauds. Le baud est l’unité de mesure du nombre de symboles transmissibles par seconde. Dans le cas d’un signal modulé utilisé dans le domaine des télécommunications, le baud est l’unité de mesure de la rapidité de modulation. Le terme “baud” provient du patronyme d’Émile Baudot, l’inventeur du code Baudot utilisé en télégraphie. Il ne faut donc pas confondre le baud avec le bit par seconde (bit/s) car il est souvent possible de transmettre plusieurs bits par symbole. Si on transmet un bit par symbole alors le baud et le bit par seconde (bit/s) sont équivalents.

Exemple : calcul du temps de transmission d’une trame de requête de 8 octets en considérant les paramètres suivants de la liaison série :

  • Vitesse : 9600 bits/s,
  • Longueur des données : 8 bits,
  • Parité : Paire,
  • Nombre de bits de stop : 1

Taille de la trame (en bits) pour transmettre un octet : 1 (START) + 8 (DATA) + 1 (PARITÉ) + 1 (STOP) = 11 bits

Taille de la trame (en bits) pour transmettre une requête : 8 octets x 11 bits = 88 bits

Temps de transmission d’un octet : (1 x 11) / 9600 = 0,00114583 s = 1,14583 ms

Temps de transmission d’une requête : (8 x 11) / 9600 = 0,00917 s = 9,167 ms

Lire le cours sur la transmission série.

Le port série virtuel

Un port série virtuel est une solution logicielle qui émule un port série standard.

Cela permet généralement :

  • d’augmenter le nombre de ports série (sans installation de matériel supplémentaire mais dans les limites des ressources disponibles)
  • de partager les données en provenance d’un périphérique entre plusieurs applications
  • de raccorder un périphérique série standard (RS232, …) sur un port USB avec un adaptateur (manque ou absence de ports série physiques disponibles)

De nombreux périphériques USB sont “vus” comme des ports séries virtuels par le système (XBee, Bluetooh, GPS, …).

Prise en charge matérielle d’un port série

Développement

Linux

Pour gérer un port série sous Linux, il y a plusieurs possibilités :

Pour développer avec Qt, on pourra utiliser l’environnement de développement QtCreator.

Windows

Pour gérer un port série sous Windows, il y a plusieurs possibilités :

Retour au sommaire