APRS – Décortiquons une trame APRS (2/6)

Trame APRS

Lorsqu’on écoute la fréquence APRS 144,800 MHz en FM, on entend régulièrement de courtes rafales numériques. À l’oreille, elles ne nous apprennent évidemment pas grand-chose. Pourtant, derrière chacune d’elles peut se cacher la position d’une station, sa vitesse, sa direction, un message ou encore des informations météorologiques.

Avec un TNC ou un logiciel comme Dire Wolf, le signal devient beaucoup plus parlant et peut faire apparaître une ligne ressemblant à celle-ci :

F5KEE-9>APRS,WIDE1-1,WIDE2-1:!4859.50N/00220.50E>090/035 F5KEE mobile

À première vue, cela reste assez mystérieux !

Pourtant, cette seule ligne nous indique qui émet, comment la trame peut être retransmise, où se trouve la station, dans quelle direction elle se déplace et à quelle vitesse.

Décortiquons-la.

APRS et AX.25 : deux choses différentes

Avant de démonter notre trame, une distinction est indispensable.

L’APRS utilise principalement des trames UI du protocole AX.25 pour transporter ses informations.

On peut donc imaginer AX.25 comme une enveloppe. Elle comporte l’adresse de la station émettrice, une destination, éventuellement un chemin de digipeaters et différentes informations nécessaires à la transmission.

L’APRS définit ensuite la manière dont les données contenues dans cette enveloppe doivent être interprétées.

Autrement dit : AX.25 transporte ; APRS donne un sens aux informations transportées.

La ligne affichée par un logiciel comme Dire Wolf est donc une représentation lisible par l’homme de différentes informations extraites de la véritable trame AX.25 reçue par radio.


Trame APRS

Une trame APRS peut contenir l’identité de l’émetteur, son chemin de retransmission, sa position, son symbole, sa direction, sa vitesse et un commentaire.


F5KEE-9 : qui émet ?

Commençons par : F5KEE-9

Il s’agit de l’adresse source AX.25.

F5KEE correspond naturellement à l’indicatif de la station.

Le -9 est le SSID, Secondary Station Identifier. AX.25 permet ainsi de distinguer plusieurs stations utilisant le même indicatif.

Nous pourrions donc rencontrer : F5KEE ou F5KEE-7 ou F5KEE-9

Certaines valeurs de SSID sont traditionnellement associées à des usages particuliers en APRS. Le -9, par exemple, est très couramment utilisé pour une station mobile automobile.

Il s’agit toutefois de conventions, et non d’une indication obligatoire du type d’équipement.

Que signifie le premier > ?

Nous trouvons ensuite : F5KEE-9>APRS

Dans cette représentation textuelle, le caractère > sépare simplement la source de la destination.

Il ne faut pas imaginer que ce caractère est transmis exactement sous cette forme entre les deux indicatifs. Dans la véritable trame AX.25, les adresses source et destination possèdent chacune leur propre champ.

APRS : la destination

Nous arrivons au champ : APRS

Voilà une particularité intéressante.

Dans une liaison packet classique, on pourrait s’attendre à trouver ici l’indicatif de la station destinataire.

En APRS, ce champ est souvent utilisé différemment.

Il peut notamment servir de TOCALL et permettre d’identifier une famille de logiciels ou d’équipements ayant généré le paquet.

On rencontre ainsi de nombreux identifiants commençant par AP.

Le mot APRS peut également apparaître comme destination générique.

Il existe même des formats, notamment Mic-E, dans lesquels le champ destination participe à l’encodage de certaines informations. Il ne faut donc pas toujours interpréter ce champ comme « la station à laquelle le paquet est envoyé ».

Le chemin : WIDE1-1,WIDE2-1

Continuons : WIDE1-1,WIDE2-1

Nous avons ici le chemin de digipeating demandé par la station.

Les digipeaters APRS sont des répéteurs numériques capables de recevoir une trame et de la retransmettre.

Une station mobile peut, par exemple, demander : WIDE1-1,WIDE2-1

Un premier digipeater traite la trame puis celle-ci peut éventuellement être retransmise une seconde fois selon le chemin demandé.

Le chemin visible évolue donc au fur et à mesure des retransmissions. Les logiciels peuvent également afficher un * pour signaler le relais ayant déjà traité la trame.

Il faut cependant rester raisonnable : chaque retransmission occupe le canal radio et augmente les risques de collisions avec les autres stations.

Les deux-points : nous entrons dans l’APRS

Nous arrivons maintenant au caractère : :

Dans la représentation textuelle couramment utilisée par les TNC et logiciels APRS, les deux-points séparent l’en-tête du champ Information.

Tout ce qui suit va donc nous intéresser particulièrement : !4859.50N/00220.50E>090/035 F5KEE mobile

C’est ici que se trouvent les véritables données APRS de notre exemple.

Le caractère ! : quel type d’information ?

Le premier caractère du champ Information est : !

Il s’agit du Data Type Identifier, souvent abrégé DTI.

Ce caractère indique au décodeur comment interpréter les données suivantes.

Dans notre exemple, ! indique une position sans horodatage APRS intégré.

D’autres caractères permettent d’identifier d’autres structures : position horodatée, message, statut, objet, télémétrie, données Mic-E, etc.

C’est donc ce premier caractère qui donne en quelque sorte au décodeur le « mode d’emploi » de ce qui suit.

4859.50N : décodons la latitude

Nous rencontrons : 4859.50N

Le format APRS classique utilise ici des degrés et minutes décimales.

Nous pouvons décomposer :

  • 48 → 48 degrés
  • 59.50 → 59,50 minutes
  • N → hémisphère Nord

Nous obtenons donc : 48° 59,50′ N

Pour convertir cette valeur en degrés décimaux : 48 + 59,50 / 60 ≈ 48,9917° N

C’est cette dernière notation que l’on retrouve fréquemment dans les applications cartographiques modernes.

Le / : première moitié du symbole

Après la latitude apparaît : /

Ce caractère participe à la définition du symbole APRS.

L’APRS dispose en effet de tables permettant de représenter graphiquement différents types de stations : véhicule, station fixe, météo, relais, bateau, avion, ballon, etc.

Le symbole n’est donc pas codé par une simple image, mais par une combinaison de caractères.

Nous allons trouver la seconde partie après la longitude.

00220.50E : la longitude

Notre trame continue avec : 00220.50E

Même principe :

  • 002 → 2 degrés
  • 20.50 → 20,50 minutes
  • E → Est

Soit : 2° 20,50′ E

En degrés décimaux : 2 + 20,50 / 60 ≈ 2,3417° E

Nous possédons maintenant latitude et longitude. Un logiciel peut donc placer la station sur une carte.

Le second > : attention au piège !

Juste après la longitude : >

Nous avons déjà rencontré ce caractère dans : F5KEE-9>APRS

Mais ici sa fonction est totalement différente.

Dans notre champ de position, ce > est le Symbol Code.

Associé au / rencontré entre latitude et longitude, il indique au logiciel quel symbole APRS doit être affiché.

C’est un bon exemple de l’importance du contexte lors du décodage d’une trame : un même caractère peut avoir des fonctions différentes selon sa position.

090/035 : direction et vitesse

Notre station transmet ensuite : 090/035

Dans ce contexte :

  • 090 → route de 90°
  • 035 → vitesse de 35 nœuds

Attention à l’unité !

La vitesse APRS n’est pas ici exprimée en km/h.

Un nœud vaut 1,852 km/h : 35 × 1,852 ≈ 65 km/h

Notre station F5KEE-9 se déplace donc vers l’est à environ 65 km/h.

F5KEE mobile : le commentaire

La fin de notre exemple contient : F5KEE mobile

Il s’agit simplement d’un commentaire ajouté à la position.

On pourrait également rencontrer : QRV 145.500 ou différentes informations utiles sur la station.

Mais une règle de bon sens s’impose : plus la trame est longue, plus elle occupe longtemps le canal radio. Sur un réseau APRS 1200 bauds partagé par de nombreuses stations, les informations superflues sont donc à éviter.


Trame APRS

La ligne lisible affichée par un logiciel APRS est une représentation des différents champs d’une véritable trame AX.25.


Ce que la radio transmet réellement

Nous venons de lire notre paquet comme une ligne de texte. Mais ce n’est évidemment pas ainsi qu’il voyage sur les ondes.

Une trame AX.25 comporte notamment :

  • FLAG — marque le début ou la fin d’une trame.
  • DESTINATION — adresse de destination AX.25.
  • SOURCE — ici F5KEE-9.
  • DIGIPEATERS — les éventuelles adresses utilisées pour le relais.
  • CONTROL — précise notamment le type de trame. APRS utilise principalement des trames UI.
  • PID — identifie le protocole associé au champ Information.
  • INFORMATION — c’est ici que nous retrouvons nos données APRS.
  • FCS — Frame Check Sequence, utilisé pour détecter les erreurs de transmission.

Notre ligne facilement lisible n’est donc que la partie émergée de l’iceberg.

Des caractères aux tonalités radio

Descendons encore d’un niveau.

Notre information doit finalement devenir un signal électrique capable de moduler l’émetteur.

Pour l’APRS VHF traditionnel à 1200 bauds AFSK, le chemin peut être résumé ainsi : Données APRS → trame AX.25 → bits → NRZI → AFSK → audio → modulation FM → antenne

AX.25 utilise également différents mécanismes nécessaires à la transmission, notamment le bit stuffing et le calcul du FCS.

À la réception, tout se déroule dans l’autre sens : Signal FM → audio AFSK → bits → AX.25 → APRS → informations lisibles

C’est exactement le travail que peut effectuer un TNC ou un logiciel comme Dire Wolf.


Trame APRS

Avant d’être émise, une information APRS passe par plusieurs étapes de codage ; le récepteur effectue le processus inverse.


Toutes les trames APRS ne se ressemblent pas

Notre exemple a volontairement été choisi pour être facilement compréhensible.

Mais l’APRS peut transporter bien d’autres informations.

On rencontrera ainsi des messages, des positions horodatées, des objets, des stations météo, de la télémétrie ou encore des paquets utilisant Mic-E.

Certains formats sont beaucoup moins lisibles directement à l’œil car les informations y sont davantage compactées.

Heureusement, les logiciels APRS se chargent de leur décodage.

Essayez vous-même !

La meilleure manière de comprendre les trames APRS reste encore d’en observer de véritables.

Un simple récepteur SDR accordé sur 144,800 MHz, associé à un logiciel SDR et à Dire Wolf, permet déjà de recevoir et décoder l’activité APRS de sa région.

Lorsque apparaîtra : F5KEE-9>APRS,WIDE1-1,WIDE2-1:...

vous pourrez maintenant commencer à la lire presque naturellement : F5KEE-9 émet une information APRS, demande éventuellement l’aide de digipeaters, puis transmet une position, un symbole, une direction, une vitesse et un commentaire.

Cette étrange succession de caractères vient de prendre tout son sens.

Liens utiles pour aller plus loin

APRS Protocol Reference 1.0.1 — spécification APRS
https://www.aprs.org/doc/APRS101.PDF

APRS 1.1 — compléments à la spécification
https://www.aprs.org/aprs11.html

Errata de la spécification APRS
https://www.aprs.org/errata.html

Dire Wolf — modem/TNC logiciel AX.25 et APRS
https://github.com/wb2osz/direwolf

Documentation Dire Wolf
https://github.com/wb2osz/direwolf-doc

France APRS — documentation francophone
https://www.franceaprs.fr/

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.