Retour au menu : Accueil - Index général - Les transmissions numériques |
Cette page
n'a pas pour but de constituer une description exhaustive de
la trame APRS mais seulement de donner quelques informations
permettant d'en comprendre la structure et la méthode
de construction. Exemple En apparence, le contenu d'une trame APRS est très variable selon que certaines informations (par ex : la position géographique) sont présentes ou non, compressées ou non... Exemple : Les informations suivantes, décodées par UI-View : 08:21:30R F4FEB>APFD25,WIDE1-1,WIDE2-2 Port=2 <UI C Len=51>:=4723.26N/00633.59E-PHG3630/ 73 a tous. {UIV32N} sont en fait transmises sous la forme d'une chaîne de caractères qui ressemble à : APFD25pF4FEB 0WIDE1 1WIDE2 2__4723.26N/00633.59E-PHG3630/ 73 a tous. {UIV32N} Mais en réalité, cette chaine de caractères, la trame, est structurée de façon normalisée en plusieurs champs (9 au total) dont certains ont une longueur fixe et d'autres une longueur variable. Structure La structure d'une trame APRS est de type UI (Unnumbered Information) définie selon le protocole AX25 (Amateur Packet-Radio Link-Layer Protocol) Le document PDF (voir section "Documentation ci dessous la référence (10) ) la schématise ainsi dans son chapitre 3 : En voici le détail : Flag : longueur 1 octet (un byte) ; il permet de détecter le début de la trame. Sa valeur est immuable et égale à 7E en hexadécimal, soit 01111110 en binaire. Il n'apparaît pas dans notre exemple. En général ce n'est pas 1 mais toute une série de flags qui sont émis avant le début du champ suivant. Destination Address : longueur 7 octets. Ce champ peut contenir une grande variété de valeurs. Exemple : APFD25p Source Address : longueur 7 octets. Indicatif de la station émettrice de la trame suivi du SSID Exemple : F4FEB 0 Digipeater Addresses (0-8) : longueur 0 à 56 octets, ce qui signifie que ce champ peut être inexistant. Chaque adresse de digi est codé sur 7 caractères. Exemple : WIDE1 1WIDE2 2 Control Field (UI) : longueur 1 octet. Valeur fixe 03 en hexadécimal, soit 00000011 en binaire. Exemple : _ (ne peut pas être représenté sous la forme d'un caractère ordinaire) Protocol ID : Valeur fixe égale à F0 en hexadécimal, soit 11110000 en binaire. Exemple : _ (ne peut pas être représenté sous la forme d'un caractère ordinaire) INFORMATION FIELD : longueur 1 à 256 octets. Le premier caractère est l'identifieur, ici un "<" qui précise que les informations suivantes concernent la station (ici la position géographique et le code PHG donnant la puissance d'émission, la hauteur et le gain de l'antenne) Exemple : <4723.26N/00633.59E-PHG3630/ 73 a tous. {UIV32N} FCS : longueur 2 octets. Il contient un nombre sur 16 bits permettant de contrôler que la trame a été transmise sans erreur. Il n'apparaît pas dans notre exemple Flag : longueur 1 octet ; il marque la fin de la trame. Sa valeur est immuable et égale à 7E en hexadécimal, soit 01111110 en binaire. Il n'apparaît pas dans notre exemple Note : la trame est normalement précédée par une série ( et pas seulement un seul) de flags permettant au programme de décodage de se préparer à la recevoir. Exemples de trames Voici quelques exemples de trames APRS brutes permettant de se faire une idée de la variété des trames que l'on peut entendre et décoder. Le champ information peut contenir des valeurs compressées, illisibles à l'état brut. GPSC700DL5UY yDB0RO pHB9XC tDB0TN p p$GPGGA,101553.000,4847.8237,N,00829.8219,E,2,10,0.8,712.4,M,47.9,M,1.8,0000*786 ~ APOTC1pHB9RCJyHB9FS pF8KOX tWIDE2 1 x 4729.44N/00739.81E>275/015/A=001987 13.9V 19C HDOP01.1 SATS08 Martin mobilT'~ APNU190HB9FS pHB9IPApHB9FM tF8KOX tWIDE2 p x 4728.85N/00749.04E# (APRS DIGI SISSACHERFLUH) 1!> APT3110BALLON; x 4706.51N/00633.57EO000/000/A=003064|| GPSMV 0SP9VRCyDB0SACpWIDE1 pF8KOX tWIDE2 1 x 4725.17N/00810.07E>198/014/A=001206 ^~ APFD25pF4FEB 0WIDE1 1WIDE2 2 x<4723.26N/00633.59E-PHG3630/ 73 a tous. {UIV32N} 7 APU25NpHB9ID 0DB0SACpF8KOX tWIDE2 p x<4723.28N\00858.74ERCH- ST.IDDABURG {UIV32} APU16NpDC1JR 2DB0UT pHB9XC tWIDE2 2 x:K28-TREFF*041338z4959.37N\00731.48ER OV-Abend jeden 3.Samstag im Monat 19:00h " Source Address et SSID Ce champ, toujours présent puisqu'il indique l'émetteur de la trame, a une longueur de 7 octets. Les 6 premiers octets sont réservés à l'indicatif de la station complété par des espaces si nécessaire. ex : "F3AR " ou "HB9DBB" Le 7ème octet contient le SSID (Secondary Station IDentifier) qui permet de différencier les trames émises par des équipements différents (station fixe et station mobile par exemple), parfois au même instant. Le SSID est normalement un nombre de 0 à 15 (donc de 00 à 0F en hexa) occupant les 4 bits de poids faible de l'octet. ex : "1011" (en hexadécimal : 0B) pour -11 Pour en faire un caractère ASCII imprimable on lui ajoute 30 en hexadécimal. C'est ainsi que "BALLON-11"devient "BALLON;" le code caractère correspondant au code ASCII 3B en hexa correspondant au ";" (point-virgule). Délimitation des champs d'adressage Le nombre d'octets affectés pour les trois champs destination, source et digipeaters varie entre 2 et 10 selon le nombre d'adresses de digipeaters concernés. Pour indiquer quel est le dernier octet de la série des champs d'adressage celui-ci a son bit 7 (le plus à gauche) égal à 1. ex : dans "BALLON;" l'octet de droite contient en réalité "10111011" (BB en ASCII) au lieu de "00111011" (3B en ASCII). Avant de convertir en caractère le contenu de l'octet, il convient de lui faire subir une opération AND avec 0x3F (3F en hexadécimal). Voir (13) chapitre 3. Documentation Sites en français : (1) APRS facile : une foule de renseignements pratiques (2) France-APRS : le site de F4AIE (3) APRS sur le site de F1RFN Documents en anglais : (10) APRS Protocol Reference : document de base version 1.01 du 29/08/2000. Il contient toutes les informations nécessaires pour décortiquer la trame (11) APRS from the Bottom Up : article général sur l'APRS de N2YGK 30/12/2002. Une bonne approche, simplifiée (12) APRS On-Air Protocols and Formats : page consacrée au format de la trame sur le site aprs.net (13) AX.25 Link Access Protocol for Amateur Packet Radio - Version 2.2 de juillet 1998. |