La liaison RS-232 est issue de la norme du même nom qui permet l'envoi de données via une chaîne de niveaux logiques envoyés en série (d'où le nom du port du PC). Elle permet de faire dialoguer deux systèmes (et seulement deux) entre eux. Les données sont envoyées par trames de 5, 6, 7 ou 8 bits, soit autant de niveaux logiques. Par la suite, je travaillerai exclusivement avec une liaison sur 8 bits, la plus couramment utilisée.
Cette liaison est de type
asynchrone, c'est-à-dire qu'elle n'envoie pas de signal d'horloge pour synchroniser les deux intervenants de la liaison : il est donc nécessaire que ces derniers soient configurés de la même manière (vitesse de transmission, nombre de bits par trame, etc.). La vitesse de transmission s'exprime en
bauds (
bds = bits par seconde) : les valeurs les plus courantes sont 2400, 4800 et 9600 bauds.
Les niveaux logiques ont une grande marge d'erreur, ce qui permet à la liaison RS-232 de n'être que peu sensible aux perturbations, et donc de pouvoir être mise en place sur de longues distances. En effet, le niveau logique "zéro" est représenté par une tension comprise entre +3 et +15 V, et le niveau logique "un" est représenté par une tension comprise entre -3 et -15 V.
Au repos, la ligne de transmission est au niveau logique 1. Lorsque l'un des systèmes veut commencer à communiquer, il prévient le système à l'autre bout de la liaison par une mise de la ligne au niveau 0 : c'est le bit de
Start. Viennent ensuite les bits de données au nombre de 8 (cf. début du cours) : ils sont soit au niveau 1, soit au niveau 0, en fonction des données. Un dernier bit peut être ajouté, il s'agit du bit de parité qui ne joue pas du tout le même rôle. En effet, le bit de parité est mis au niveau 0 par l'envoyeur si la somme des bits transmis à l'état 1 est paire, et à 1 si la somme est impaire ; ainsi, le système qui reçoit les données peut vérifier s'il y a eu une erreur de transmission due à des interférences, en comparant le nombre de bits à 1, et le bit de parité, s'il y a erreur, le receveur peut alors demander à l'émetteur de renvoyer les données.
Remarque : si deux erreurs se produisent, le receveur ne pourra pas les détecter puisque le nombre de bits au niveau 1 est alors en accord avec le bit de parité ; si trois erreurs se produisent, le receveur n'en verra qu'une, etc. Enfin, après ce bit de parité viennent un ou deux bits de
Stop, qui signalent au receveur que la trame est terminée.

Une liaison, par définition, c'est un lien entre deux éléments ou plus. Ce lien peut-être visible (un câble) ou invisible (les ondes radio). Notre liaison RS-232 a donc besoin d'un lien physique pour fonctionner.
Les prises utilisées sur les ordinateurs pour le port RS-232 (port
Série) sont de type
DB9 ou
DB25. Aujourd'hui, les ordinateurs ne sont plus équipés que de prises DB9 pour le port série, mais si vous possédez un vieux système, vous pourrez certainement trouver une prise DB25. Je ne vais me préoccuper ici que de la prise DB9, dont voici un schéma :

Pour une liaison RS-232 simple (ou
full duplex), seules trois broches de la prise sont utilisées ; dans la majorité des cas, les systèmes en communication ne nécessitent guère plus que ce type de liaison. Je ne vous présenterai donc que celui-ci, car c'est celui que j'utilise dans mes montages électroniques.
Alors, ces broches ?
- La broche N°5 sert à mettre la masse des deux systèmes en commun pour être certains que le point de référence des niveaux logiques est le même ; ainsi, on peut être sûrs que ce qui est un niveau 1 pour l'un des systèmes est bien un niveau 1 pour l'autre.
- La broche N°2, c'est par là que le système reçoit les données : c'est l'entrée du signal.
- La broche N°3, c'est la broche par laquelle le système envoie les données.
Donc pour faire dialoguer deux systèmes, il faut mettre en commun les broches N°5 des deux systèmes et croiser les broches N°2 et N°3. C'est-à-dire que la broche N°2 du premier système doit être reliée à la broche N°3 du second, et vice-versa.
Ensuite, si l'un des systèmes est un ordinateur, il faudra néanmoins le tromper car les PC n'aiment pas les liaisons simples. Pour cela, il faudra relier les broches N°1, N°4 et N°6 ensemble, de même que les broches N°7 et N°8 ensemble du côté du câble où se trouve l'ordinateur (si vous reliez deux ordinateurs, il faudra faire ça des deux côtés du câble). En fait, les ordinateurs utilisent une liaison complète qui comporte des signaux de contrôle sur les différentes broches de la prise : il faut donc leurrer le système en lui renvoyant ses propres signaux, mais je passe sur ces détails. Le résultat est donc le schéma suivant :


Voilà : vous savez relier deux systèmes utilisant la norme RS-232. Vous savez même comment ils font pour communiquer. Pas mal, hein !

Bon : on va maintenant voir comment créer son propre système supportant cette norme.
Je vous rappelle que tout à l'heure, nous avons remarqué que la norme RS-232 travaille avec des tensions de +3 à +15 V et de -3 et -15 V (en général, on trouve des tensions de +12 et -12 V). Et si on veut créer un circuit électronique capable de communiquer en utilisant cette norme, il va falloir utiliser un microcontrôleur supportant les communications série. Or, ce genre de microcontrôleur ne supporte pas de tension supérieure à +5 V.
Et là, on a un problème : si on branche directement le microcontrôleur sur une prise série d'un ordinateur d'une part, le microcontrôleur n'est pas capable d'envoyer des signaux en -5 V ; d'autre part, si le PC essaie d'envoyer un signal au microcontrôleur, celui-ci risque de ne pas apprécier du tout la tension délivrée par le port série du PC, et nous claquer entre les mains. Mais que personne ne panique, j'ai la solution. En fait, il existe un petit circuit intégré pas cher, que l'on trouve partout, et qui permet de faire l'adaptation entre les signaux RS-232 et les signaux TTL du microcontrôleur. Ce circuit, c'est le
MAX232 (oui : je pense qu'ils n'ont pas choisi le nom par hasard).
[...Après quelques semaines d'absence, il est temps de reprendre. Où en étais-je alors...
] Ah oui, le fameux MAX232. Pour ceux que ça intéresse, la documentation technique fournie par le fabriquant est disponible
ici. Le MAX232 est donc un petit circuit intégré qui, couplé à cinq condensateurs, permet de faire l'adaptation entre les signaux TTL d'un microcontrôleur et les signaux RS-232 de votre ordinateur. Il vous suffit donc de câbler ce composant avec ses condensateurs de 1 µF, comme ceci :

Il ne vous reste ensuite qu'à faire transiter vos signaux de communication par ce circuit, et c'est gagné. Les signaux venant du microcontrôleur sont mis à la patte 10 du MAX, et ressortent au format RS-232 à la patte 7 ; les signaux RS-232 venant du PC, quant à eux, sont mis à la patte 8 du MAX232, et ressortent au format TTL (signaux microcontrôleur) à la patte 9 de ce dernier. Comme le montre bien le schéma ci-dessus, il est possible de convertir deux autres signaux grâce aux pattes 11 et 14 pour la conversion en RS-232, et aux pattes 13 et 12 pour le sens inverse.
Et voilà. Vous savez désormais comment utiliser l'interface RS-232 de votre ordinateur : il ne vous reste plus qu'à apprendre un langage de programmation pour microcontrôleur, et le tour est joué. Vous pouvez faire ce que vous voulez. Quant à moi, je vous ai d'ores et déjà concocté un tuto sur l'utilisation du port série côté ordinateur avec Visual Basic, que vous pouvez trouver
ici.

Source:
siteduzero.com | Licence:
Creative Commons