De plus en plus d’appareils utilisent maintenant la norme NMEA2000 pour échanger des données en réseau. La station météo mise en oeuvre ici fournit ses mesures via un bus CAN en respectant les spécifications de cette norme.
Le bus CAN (Controller Area Network) est un bus de terrain. Il couvre les couches 1 (Physique) et 2 (Liaison) du modèle OSI. La couche 7 (Application) n’est pas obligatoire. Plusieurs couches applications ont été définies sur la norme CAN comme CANOpen.
Le bus CAN est le fruit de la collaboration entre l’Université de Karlsruhe et Bosch. Il fut d’abord utilisé dans le secteur de l’automobile, mais est actuellement utilisé dans la plupart des industries comme l’aéronautique, la marine (NMEA 2000) via des protocoles standardisés basés sur le CAN. Il a été normalisé avec la norme ISO 11898.
Il met en application une approche connue sous le nom de multiplexage, et qui consiste à raccorder à un même câble (un bus) un grand nombre de calculateurs qui communiqueront donc à tour de rôle. Cette technique élimine le besoin de câbler des lignes dédiées pour chaque information à faire transiter (connexion point-à-point). Dès qu’un système (voiture, avion, réseau téléphonique…) atteint un certain niveau de complexité, l’approche point-à-point devient impossible du fait de l’immense quantité de câblage à installer et de son coût (en masse, matériaux, main d’oeuvre, maintenance).
Remarque : L’introduction des bus multiplexés (principalement le CAN) dans l’automobile avait pour objectif de réduire la quantité de câbles dans les véhicules (il y avait alors jusqu’à 2 km de câbles par voiture), mais elle a surtout permis l’explosion du nombre de calculateurs et capteurs distribués dans tout le véhicule, et des prestations correspondantes (baisse de consommation, dépollution, sécurité active/passive, confort, détection des pannes…), tout en diminuant les longueurs câblées.
Caractéristiques : (cf. fr.wikipedia.org)
La trame CAN :
Remarque : Le champ d’arbitrage est composé de 11 bits d’identification pour CAN 2.0A et 29 bits pour CAN 2.0B suivis par le bit RTR (Remote Transmission Request) qui est dominant pour une trame de données et récessif pour une trame de requête. Le champ de commande contient 2 bits à usage réservé et le DLC (Data Length Code) sur 4 bits (de pods faible) qui indique la longueur en octet du champ de données.
La National Marine Electronics Association (NMEA), association américaine de fabricants d’appareils électroniques maritimes, définit et contrôle des normes techniques utilisables par les équipements marins qu’ils produisent.
Elle a publié les normes suivantes :
La norme NMEA 0183 qui utilise une simple communication série pour transmettre une “phrase” composée de caractères ASCII à un ou plusieurs écoutants.
La nouvelle norme, NMEA 2000 (en), qui permet plusieurs “discussions” avec un débit plus rapide.
La norme est propriétaire et payante. Toutefois, la plus grande partie du protocole a été récupérée grâce à des sources publiques et à l'utilisation de la rétro-ingénierie (reverse engineering).
Site officiel : www.nmea.org
La norme NMEA 2000 d’octobre 2001 spécifie les caractéristiques suivantes :
Les messages NMEA 2000 sont organisés en PG (Parameter Group) qui sont identifés par un PGN (Parameter Group Number) qui apparairaît dans le champ ID (IDentifier) d’un message CAN.
La structure des identifiants étendus (29 bits) des messages NMEA 2000 est la suivante :
Chaque appareil du réseau doit posséder une adresse source sur 8 bits. Les adresses 0 à 251 (soit un total de 252 adresses disponibles) sont réservées à cet usage. L’adresse 255 est une adresse globale qui spécifie un envoi à tous les noeuds du réseau (broadcast). Les autres adresses ont été réservées à un usage futur.
Documentations :