NMEA pour National Marine Electronics Association est une association de professionnels des équipements marins dont le but est de définir des standards dans ce domaine.
Le standard qui nous intéresse pour le GPS est le NMEA-0183. Celui-ci défini une interface électrique matérielle et un protocole de communication entre un récepteur et un équipement capable d'interpréter les données. En effet, à part certains modèles de GPS, ce standard s'est étendu à tous les usages, et la plupart des logiciels tournant sur PC par exemple sont capables d'exploiter des données à la norme NMEA.
Très connue dans le domaine de la transmission de données, c'est l'interface série RS232 qui est la plus utilisée par les équipements compatibles NMEA. L'interface différentielle RS422 est aussi retenue par la norme. Comme d'habitude, la RS232 est composée de 3 fils : Tx (émission), Rx (réception) et GND (référence). Très répandue, cette interface permet donc de relier un récepteur GPS à un ordinateur classique.
Les données sont transmises à la vitesse de 4800 bauds au format ASCII, sous forme de blocs de phrases (ou trames), chaque seconde d'horloge interne du GPS.
Chaque trame commence par le caractère "$" suivi d'un code de 2 lettres pour identifier l'émetteur de la trame. Dans le cas du GPS qui nous intéresse, ce code est "GP".
Les trames définies par le standard sont nombreuses et chaque fabricant implémente celles qu'il souhaite dans ses modèles, et suivant les usages auquels ils sont destinés. Une trame est identifiée par 3 lettres dont les principales rencontrées dans les GPS de rando sont les suivantes :
Les champs suivants contiennent les données spécifiques à la trame en question et sont séparés par des virgules, dans la limite de 82 caractères par trame. Un checksum optionnel peut être ajouté à la fin de la trame, il est précédé du caractère "*". Chaque ligne se termine par [CR][LF] (retour chariot, retour à la ligne).
Il est très facile de récupérer les trames NMEA provenant d'un GPS. Un HyperTerminal configuré de la façon suivante suffit amplement.
Pour le détail complet des trames faire une petite recherche sur Internet, mais en résumé voici ce qu'on peut analyser :
- GGA, RMC et GLL donnent le fix et l'heure de celui-ci :
- les 3 trames GSV donnent le nombre de satellites visibles (12) ainsi que l'identification, l'elevation, l'azimuth et la force du signal pour chacun d'entre eux,
- les champs de la trame RMB sont vides car le GPS n'est pas en mode navigation, mais sinon le cap et les coordonnées de la destination ainsi que la vitesse seraient affichés,
- les trames commençant par $PGRM sont un format propriétaire de Garmin.
Certains GPS permettent d'émettre seulement les trames de son choix et d'autres "balancent" toutes celles qu'ils connaissent. Il faut alors faire le tri par logiciel.
Les autres protocoles de communication existants sont propriétaires (Garmin, Megellan...) et permettent d'autres usages spécifiques qui seront détaillés dans la section Cartographie.