NMEA

Un article de LaPageDuJour.

Aller Ă  : Navigation, Rechercher

Sommaire

[modifier] Introduction

NMEA signifie National Marine Electronics Association. Mais ce nom désigne la plupart du temps le protocole de communication créé par cette association, NMEA 0183. Ce protocole permet avant tout de récupérer des informations de périphériques GPS.

Actuellement, 99% des puces GPS utilisées supportent ce protocole. Celui ci est simple, sécurisé et standardisé.

Ici, nous allons voir comment vous simplifier la programmation d'applications lisant un flux NMEA.

[modifier] Fonctionnement

Ce protocole utilise toujours une liaison série (RS232, liaison série virtuelle ou même émulée par le système). La défaut, la communication série est faite à 4800 bps en 8N1. Chaque information est envoyée dans une ligne (finissant par le caractère LF, "\n"), commence par le caractère "$" et fini par le caractère "*" suivi d'un checksum des informations envoyées après le caractère "$".

[modifier] Phrases NMEA Standards

Pour toutes les phrases NMEA, nous allons afficher un numéro en dessous de chaque argument séparé des autres par une virgule.

[modifier] RMC

C'est LA phrase NMEA que vous devez pouvoir traiter. Elle contient toutes les informations de tracking Ă  l'exception de l'altitude.

Exemple :

$GPRMC,152917.000,A,4850.2422,N,00217.3656,E,0.00,,231007,003.1,W,A*73
|      |          | |         | |          | |    ||      |     |
0      1          2 3         4 5          6 7    89      10    11

Analyse des informations :

  • 1 : Heure GMT : 15:29:17. Certains GPS spĂ©cifie en plus les millisecondes en ajoutant un point, mais ce n'est pas obligatoire.
  • 2 : Statut : A comme Actif, on peut trouver V comme Vide
  • 3 : Latitude en degrès (nous verrons comment la convertir)
  • 4 : Sens de la latitude :
    • N comme Nord
    • S comme Sud
  • 5 : Longitude en degrès
  • 6 : Sens de la longitude
    • E comme Est
    • W comme West (Ouest)
  • 7 : Vitesse en noeuds (nous verrons comment le convertir)
  • 8 : Orientation de la direction (de 0 Ă  360 °)
  • 9 : Date (le 23/10/07)
  • 10 : Variation magnetique, cette information n'est pas toujours prĂ©sente
  • 11 : Sens de la variation magnĂ©tique (W ou E)
  • 12 : On s'en fout

[modifier] GSV

Cette phrase NMEA vous donne des informations sur la réception des différents satellites.

$GPGSV,3,1,11,03,03,111,00,04,15,270,00,06,01,010,00,13,06,292,00*74
|      | | |  |  |  |   |  |  |  |   |  |  |  |   |  |  |  |   |
0      1 2 3  4  5  6   7  8  9  10  11 12 13 14  15 16 17 18  19 

$GPGSV,3,2,11,14,25,170,00,16,57,208,39,18,67,296,40,19,40,246,00*74
$GPGSV,3,3,11,22,42,067,42,24,14,311,43,27,05,244,00,,,,*4D

Analyse des informations :

  • 1 : Nombre de total de messages
  • 2 : No de messages
  • 3 : Nombre de satellites
  • 4 : No de satellite
  • 5 : Elevation en degrees, 90 au maximum
  • 6 : Azimut, degrees par rapport au nord, 000 Ă  359
  • 7 : QualitĂ© de la rĂ©ception
  • 8-11 : Information sur le second satellite, comme les champs 4 Ă  7
  • 12-15 : Information sur le troisième satellite, comme les champs 4 Ă  7
  • 16-19 : Information sur le quatrième satellite, comme les champs 4 Ă  7

[modifier] GSA

Cette phrase NMEA vous donne les infos sur la réception.

$GPGSA,A,3,19,28,14,18,27,22,31,39,,,,,1.7,1.0,1.3*34
|      | | |  |  |  |  |  |  |  |      |   |   |
0      1 2 3  4  5  6  7  8  9  10     15  16  17

Analyse des informations :

  • 1 : Mode (M pour Manuel / A pour Automatique)
  • 2 : Mode (1 pour pas de rĂ©ception, 2 pour position 2D (sans altitude), 3 pour position 3D (avec altitude))
  • 3-14 : Satellites utilisĂ©s
  • 15 : PDOP : Dillution de la position
  • 16 : HDOP : Dillution de la position horizontale
  • 17 : VDOP : Dillution de la position verticale

[modifier] Programmer la réception de ces phrases NMEA

[modifier] La réception des informations

En C# .Net et en Java J2SE/J2ME qui sont des environnement tout à fait indiqués pour l'utilisation des technologies GPS, les opérations de traitement s'avèrent assez simple. A travers les gestionnaires de flux classiques, on peut récupérer ces informations assez aisément.

[modifier] Cas particuliers

  • Le HTC P3300 souffre d'un problème d'implĂ©mentation de ses drivers. Il vous est impossible de rĂ©cupĂ©rer les informations du GPS de ligne par ligne, en effet la mĂ©thode SerialPort.ReadLine ne fonctionnera pas bien.
Récupérée de « http://www.lapagedujour.com/NMEA »