Centrale de navigation Low Cost sur plateforme Arduino (4) - les liaisons séries RS232, NMEA et les Multiplexeurs

Publié le 19 Février 2014

Les appareils du bateau communiquent entre eux par différents types de liaisons cablées (USB, Série, Ethernet) ou sans fil (Bluetooth, WiFi, spécifique ...). Parmi ces liaisons, il est important de faire la différence entre les liaisons point à point (Série, USB, Bluetooth) qui seront présentées sur cette page et les liaisons réseau (multipoint) Ethernet et Wifi que nous traiterons dans un autre chapitre.

Les données échangées (data) entre les appareils au moyen de ces liaisons sont quasiment toujours des caractères codés sur 8 bits : les caractères ASCII.

L'objet de cette page est de montrer comment sont utilisées ces différentes technologies de liaisons pour le transfert des signaux NMEA.

Le réseau Seatalk NG

Le réseau Seatalk NG

Les « datas »


Ce qui est appelé communément data est l'unité d'échange entre les appareils qui circule sur les liaisons de raccordement. Il s'agit d'un caractère codé sur 8 bits (bit = unité d'information basique 0 ou 1). Par exemple le chiffre 7 s'écrit 00110111, le caractère « b » 01100010, « B » 01000010.
Parfois ce code ne représente pas un caractère mais une informations d'affichage ou d'impression : Le passage à la ligne suivante est traduit par deux caractères très courants : CR « Carriage Return » et LF « Line Feed » qui s'écrivent respectivement 00001101 et 0001010.
La table ASCII « universelle » décrit le codage des 255 caractères fondamentaux.
http://www.asciitable.pro/ascii_table.htm

Les liaisons parallèles


Citons les liaisons parallèles pour mémoire. C'était le mode standard de raccordement des imprimantes et scanners. Elles ne sont quasiment plus utilisées aujourd'hui, si ce n'est dans des applications très spécialisées.
Trés schématiquement, la liaison parallèle est constituée a minima de 8 cables, chaque cable porte un des bits du caractère ascii émis.

Le caractère b sur une liaison parallèle se traduira par:
Caractère "b"                            0 1 1 0 0 0 1 0
N° cable                                   1 2 3 4 5 6 7 8
Tension sur le câble (volt)        0 5 5 0 0 0 5 0

La connectique est un gros connecteur 24 broches.
La portée maximum de ces liaisons est très faible, de l'ordre de 2 m.

Centrale de navigation Low Cost sur plateforme Arduino (4) - les liaisons séries  RS232, NMEA et les Multiplexeurs

Les liaisons séries et de type BUS


Les liaisons séries sont utilisées pour raccorder deux appareils ensemble, comme c'est le cas pour les liaisons parallèles mais en envoyant successivement les bits qui composent le caractère sur une seule paire de câbles.

Ainsi la transmission du caractère « b » comme dans l'exemple précédent se traduira par l'envoi du bit 0 puis du bit 1 puis du bit 0 puis 0 puis 0 puis 1 puis 1 puis 0.

Un appareil peut n'être que emetteur (une sonde speedo par exemple) dans ce cas deux cables suffisent. D'autres appareils comme une centrale ou un PC sont émetteur et récepteur. Dans ce cas, un cable est utilisé pour l'émission (ou écriture) le deuxième est utilisés pour la réception (lecture) et le dernier pour la masse.

 

La norme RS232


Cette norme définit le modèle d'interface physique de la liaison série notamment les tensions de références : 0 correspond à une tension comprise entre -3v et -20V et 1 correspond une tension comprise entre +3 et +20 Volts .

Ces niveaux de tension permettent de réaliser les transmissions sur
des distances plus importantes. La « portée » d'une liaison série est d'une dizaine de mètres.
La norme décrit également les signaux de contrôles de l'interface disponibles sur d'autres câbles (RTS, CTS, ...) Ceux ci ne sont pas utilisés dans les standards NMEA.

 

Centrale de navigation Low Cost sur plateforme Arduino (4) - les liaisons séries  RS232, NMEA et les Multiplexeurs
Centrale de navigation Low Cost sur plateforme Arduino (4) - les liaisons séries  RS232, NMEA et les Multiplexeurs

Avant que l'USB se généralise, la plupart des ordinateurs étaient équipés d'un ou plusieurs port com DB9 (9 broches). Aujourd'hui, il est possible d'utiliser la prise USB à l'aide d'un cable adapté « actif » et un driver à installer sur le PC. Ce modèle de câble est décris dans le chapitre USB.


RS 232 & NMEA


La norme NMEA définit les interfaces et le « langage » de communication. Les interfaces physiques NMEA sont basées sur le modèle RS232 ( une tension comprise entre -15 et -3 volts pour le bit 0, une tension comprise entre 3 et 15 volts pour le bit 1 (pour plus d'infos sur le langage NMEA, je vous invite à vous reporter au premier article de la série).

Un lien utile pour plus d'infos : http://http://www.plaisance-pratique.com/les-instruments-nmea?lang=fr


Interface NMEA = interface RS232 sans les signaux de contrôle, donc trois câbles : émission, réception, masse.
En câblage NMEA: Il n'est pas possible de connecter plusieurs appareils en émission mais il est possible de connecter plusieurs appareils en réception sur le même cable.


Rassembler tous les messages NMEA sur une même liaison série pour les envoyer sur une centrale ou un ordinateur équipe d'OpenCPN nécessite la mise en oeuvre d'un Multiplexeur. Celui-ci est décris dans un chapitre spécifique de cette page.

 

La norme USB (Universal Serial Bus)


La prise USB desormais très courante sur tous les ordinateurs est également une liaison série.
L'interface physique décrite par la norme USB est différente de l'interface RS232 (donc incompatible). Elle fonctionne en mode BUS, cela signifie qu'il est possible de raccorder plusieurs appareils ensemble, en émission et en réception.

Les bits 0 ou 1 sont représentés par la différence de tension entre D+ et D-
Cette norme est bien décrite sur ce site :  http://www.commentcamarche.net/contents/773-usb

La prise USB comprend deux cables d'alimentation capables d'alimenter un appareil électrique ne consommant pas plus de quelques Watts (par exemple un lecteur de disques dur externe).


La vitesse de communication est élevée. Elle peut atteindre plusieurs centaines de Gigabits en USB3.

 

Broche Désignation
1 Alimentation +5V (VBUS)
2 Données (D-)
3 Données (D+)
4 Masse (GND)
 
 
 
Centrale de navigation Low Cost sur plateforme Arduino (4) - les liaisons séries  RS232, NMEA et les Multiplexeurs


 USB et RS232 (ou NMEA)

Ces deux normes sont incompatibles. Il n'est pas possible de faire communiquer deux appareils qui ne sont pas de la meme technologie, sauf par l'utilisation d'un câble spécifique.

Il existe de nombreux modèles de câbles d'adaptation USB-Série. Ces câbles sont de type « actif », c'est à dire qu'une puce électronique située le plus souvent dans la prise DB9 prend en charge la conversion des signaux USB (0-5volts) en signaux RS232 (-12 +12 Volts), ce qui explique leur prix parfois élevé.


Le convertisseur ne necessite pas d'alimentation externe (elle est fournie par la prise USB), mais il faut installer un driver à l'aide du CD fournit.
Il s'installe automatiquement comme un port COM virtuel avec un numero de Port disponible sur l'ordinateur. La manière de voir le port COM utilisé est de naviguer vers Panneau de Configuration -> Système -> Matériel -> Gestionnaire de périphérique -> Ports.

 

Câble d'adaptation USB/Série

Câble d'adaptation USB/Série

Les multiplexeurs NMEA


En NMEA, un appareil émet ses données dés que celles-ci sont disponibles, ou toutes les 0,5 secondes pour une sonde speedo ou anémo.

Si deux « sources » sont raccordés sur une même interface, les messages de chacune des sources vont se superposer (se mélanger) et devenir incompréhensibles pour la centrale de traitement.
Les sources peuvent aussi etre configurées à des vitesses différentes (4800 bps pour une sonde, 38400 bps pour un AIS), donc incompatibles.


Le rôle du multipexeur est d' « écouter » attentivement chacune des sources sur des interfaces spécifiques, et de transmettre l'ensemble des messages émis par ces sources les un à la suite des autres sur son interface de sortie.

Il peut avoir une interface de sortie USB, ce qui permet de le raccorder directement à l'ordinateur, et/ou une sortie WiFI pour transmettre les signaux NMEA à un mobile, une tablette ou un PC portable.


Exemple de configuration (miniplex AIS) :
-Entrées : 4 x NMEA-183/RS-422, isolées (3 entrées à 4 800bauds et 1 entrée à 38 400 bauds)
-Sorties :1 x RS-232(38 400bauds),1 x NMEA-183/RS-422 (4 800bauds) et 1 x NMEA-183/RS-422 (38400bauds)

http://www.shipmodul.com/en/index.html

Aujourd'hui ces appareils restent assez coûteux car leur diffusion est assez restreinte, mais avec l'extension des applications sur smartphone et mobiles, leur coût devrait sensiblement baisser.


Il est aussi possible de réaliser un multiplexeur avec le module Arduino mega (qui dispose de 4 interfaces séries) et des modules convertisseurs TTL to RS232 (Adaptor Module Board MAX3232). Un montage de ce type est décris à cette URL: http://pagesperso.univ-brest.fr/~flye/Instrumentation.html

 

Différents types de multiplexeurs NMEA: Actisense étanche, DKI avec Datalogger et Miniplex WiFiDifférents types de multiplexeurs NMEA: Actisense étanche, DKI avec Datalogger et Miniplex WiFi
Différents types de multiplexeurs NMEA: Actisense étanche, DKI avec Datalogger et Miniplex WiFi

Différents types de multiplexeurs NMEA: Actisense étanche, DKI avec Datalogger et Miniplex WiFi

Les autres technologies de liaisons séries

Le BlueTooth

La technologie bluetooth a été développée dans le burt de remplacer les câbles entre divers appareis comme les ordinateurs, les imprimantes et scanners, les smartphones et tablettes, les caques audio etc ...

Elle utilise une technique radio de courte distance (une dizaine de mètres).

le service RFCOMM est basé sur les spécifications RS232 et ainsi émule une liaison série qui peut être utilisée pour faire passer une communication IP par exemple.

plus d'info sur ce site: https://learn.sparkfun.com/tutorials/bluetooth-basics

Des modules se trouvent facilement sur Ebay ou sur ce site: https://www.sparkfun.com/categories/115

 

Les solutions NORDIC

nRF24L01: solution d'interconnexion radio trés basse consommation https://www.sparkfun.com/categories/114

 

 

 

Les modules bluetooth et nRF24L01 se trouvent facilement à moins de 10 € sur e-bayLes modules bluetooth et nRF24L01 se trouvent facilement à moins de 10 € sur e-bay

Les modules bluetooth et nRF24L01 se trouvent facilement à moins de 10 € sur e-bay

Les modules d'adaptation TTL-RS232

Les interfaces séries des modules électroniques comme Arduino fonctionnent sur des niveaux TTL (Transitor-Transistor Logic), c'est à dire des tensions de 5 volts (Bit 1) et 0 volts (Bit 0). Ces niveaux ne sont pas compatibles avec la norme RS232.

Pour raccorder un appareil NMEA en sortie (pilote automatique) ou en entrée (GPS, fluxgate, ..) il est nécessaire de passer par une interface qui convertira les signaux 0 V et 5 V en -12 V et + 12 V.

Un circuit fait cela trés bien, le max232 de Texas Instrument: http://en.wikipedia.org/wiki/MAX232

Ce composant présente la particularité de gènerer lui même les tensions +10 V et - 10 V à partir de l'alimentation 5V du module Arduino. Il n'est donc pas nécessaire d'utiliser une double alimentation spécifique supplémentaire (cf schéma électrique).

 

 

Il est facile de trouver des modules prêts à souder sur E-bay pour quelques euros en cherchant "TTL to RS232"

Convertisseurs de signaux TTL / RS232Convertisseurs de signaux TTL / RS232
Convertisseurs de signaux TTL / RS232

Convertisseurs de signaux TTL / RS232

Prochaine étape

Les réseaux TCPIP Ethernet et WiFi - Réaliser le réseau local du bateau ...

Rédigé par Jerome Delecour

Publié dans #Instruments

Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
G
Bonsoir,<br /> <br /> Merci pour cette série d'articles sur le sujet Arduino. Avez vous développé une interface avec le sondeur ? Je ne pense pas l'avoir lu. Cordialement
Répondre