Nous avons 42 invités et aucun membre en ligne

La communication Série (ou RS-232) est un type de communication très habituel utilisé en électronique. Autrefois, on utilisait ce type de communication sur les ordinateurs de bureau (connecteur de type DB-9) pour communiquer avec les différents périphériques externes. Contrairement au port parallèle, le port série utilise seulement deux fils, à savoir Rx et Tx pour transférer de l'information.

Tx : Transmetteur
Rx : Récepteur

Le protocole de communication série est très simple à comprendre et à programmer. La transmission de données commence par un "Start Bit" qui annonce l'envoi des bits de données. Pour terminer l'échange, on ajoute un "Stop Bit" qui conclut la communication de l'information. La plupart du temps, on transmet 8 bits de données (1 octet) à la fois, même si le protocole est conçu pour envoyer de 5 à 8 bits. Il faut toujours envoyer le bit le moins significatif (LSB) en premier et finir par le bit le plus significatif (MSB). On peut aussi ajouter un bit de parité après l'envoi des données pour contrôler la validité de l'information.  Finalement, on peut mettre 1 ou 2 "Stop Bit" tout dépendant de l'application.

La communication standard, sur le connecteur DB-9 des ordinateurs de bureau, fonctionne avec ±10V (différence de potentiel de 20V); on s'assure ainsi que la donnée reçue n'est pas affectée même s'il y a du bruit électrique sur la ligne de transmission. Dans ce cas là, le tension -10V correspond au niveau de repos représenté par le niveau logique 1. À l'inverse, le tension +10V correspond au niveau actif représenté par le niveau logique 0. Le "Start Bit" doit attendre le +10V pour démarrer l'envoi d'un octet. Si vous voulez échanger de l'information entre un port série qui fournit ±10V et un microcontrôleur qui fonctionne dans la fourchette comprise entre 0 et 5V, vous devez utiliser un composant comme le MAX232 qui agit comme intermédiaire. Ce type de composant a comme unique fonction d'ajuster la tension pour respecter les valeurs de communication standard et ainsi de permettre à un microcontrôleur de communiquer via le port série.

Pour la communication série fonctionnant sous 5V, les niveaux sont inversés par rapport à la norme standard. Le niveau de repos est le +5V tandis que le niveau actif est fixé à 0V.

Si on souhaite analyser les signaux de communication pour "débugger" nos programmes ou pour comprendre quelles informations sont transmises sur les lignes Rx et Tx, on peut utiliser l'oscilloscope ou un petit analyseur logique. La meilleure option est l'analyseur logique puisqu'il nous donne toute l'information dont nous avons besoin. Il sépare les bits et décode l'information sur les lignes de communication. Le logiciel permettant de lire les signaux logique s'appelle Logic de la compagnie Saleae Logic. C'est un logiciel gratuit et disponible sur leur site internet. Sur la photo ci-dessous, vous observez ce que l'on obtient avec un analyseur logique couplé au logiciel Logic. L'octet transmis est 0x61 correspondant au caractère 'a' selon la table ASCII.

L'oscilloscope permet également de lire une trame de données, mais c'est plus compliqué de capturer l'information au bon moment et d'analyser les bits transmis. La photo ci-dessous représente la même trame que la photo ci-dessus, par contre, la trame a été lue avec un oscilloscope numérique.

Pour établir une communication entre deux appareils, il faut brancher la broche Tx du premier appareil à la broche Rx du second appareil et la broche Rx du premier appareil à la broche Tx du deuxième appareil. Ainsi, la donnée transmise par le premier appareil est reçue par le deuxième et vice-versa.

Le UART (Universal Asynchronous Receiver Transmitter) est le nom donné au dispositif permettant la communication série sous l'alimentation TTL. Contrairement à la communication standard du RS-232, le UART fonctionne entre 0 et 5V ce qui permet d'utiliser le même protocole, mais avec des microcontrôleurs comme par exemple la famille des PICs. 

Le convertisseur USB vers le port Série que j'utilise est très abordable et il agit comme un port série standard. Par contre, si vous utilisez Windows 8, 8.1 ou 10, il faut utiliser un ancien driver de 2008 pour le faire fonctionner correctement. Davantage d'informations sont disponibles ici pour savoir comment mettre à jour le driver. 

Comme outil de communication avec l'ordinateur, il faut utiliser un terminal qui va permettre l'échange d'informations entre l'ordinateur et notre périphérique. Si on reçoit des données ou si on veut transmettre des données via le port série, il faut utiliser ce genre de logiciel. Dans mon cas, j'utilise HyperTerminal.

Dans la vidéo Youtube, j'ai fait l'expérimentation du module UART du PIC16F688. Le programme et le schéma de mon expérimentation sont disponibles ci-dessous. Pour le bon fonctionnement du projet, il faut initialiser le cristal d'oscillation interne du PIC à 4 MHz et il faut utiliser une vitesse de communication de 19200 Bauds (Bits par seconde) dans le logiciel HyperTerminal. Pour les autres paramètres de configuration, il faut choisir : 8 bits de données, aucun bit de parité et un "Stop Bit".

Sans abonnement Abonnés et Abonnés VIP
 <--- Schéma  <--- Schéma Complet
<--- Code en Hexa    <--- Code en C modifiable