D-STAR Analysis

interface

Par F4GOH

Se lancer dans l’analyse d’un protocole de communication n’est pas chose facile. En effet les documentations techniques disponibles sur le net manquent de précision.

Après avoir effectué des essais en GMSK en écrivant mon propre protocole, j’effectue des tests de décodage d’une trame codée dans le format DSTAR à l’aide d’un Arduino.

La librairie DSTAR Arduino est en fin d’article.

Mais avant, je me suis demandé le principe de fonction d’un réflecteur DCS d’un point de vue échange de données.

Les informations sont rares, mais un document pdf m’a bien aidé pour comprendre l’échange de données entre le serveur et le client.

J’ai donc réalisé un programme en JAVA qui se connecte sur le serveur DCS.

Cela permet d’observer les flux de données et de les enregistrer sur disque dur. Ces données peuvent être aussi redirigées vers un port série afin d’être écoutées à l’aide d’un modem + TX (développement en cours)

On peut aussi voir les OM en cours de transmission.

Tous les échanges sont dans le protocole UDP/IP

Objectifs :

  • Analyser les paquets UDP sur un serveur DCS,
  • Enregistrer les paquets UDP depuis le serveur (2 min max),
  • Restituer les paquets vers le serveur,
  • Rediriger les paquets UDP vers un port série,
  • Rediriger les paquets UDP du port série vers le serveur UDP,
  • Affichage des paquets UDP,

Description de l’interface utilisateur

Le programme JAVA ainsi que les documentations pdf sont téléchargeables à l’adresse suivante:

D-STAR-UDP

Après avoir saisi votre indicatif et le module sur lequel vous voulez vous connecter cliquer sur Connect.

Si la connexion est établie le label Moniteur clignote alternativement en rouge et vert.

Si dans votre QRA un logiciel du type ircddbgateway est actif, il faudra l’éteindre pour ne pas provoquer de conflit d’adresse.

Le bouton record permet d’enregistrer un flux de données. La sauvegarde est automatique.

Veillez cependant à ne pas dépasser 2 minutes d’enregistrement.

Le nom du fichier sauvegardé est « taille du fichier.txt »

Vous prouvez ainsi ouvrir le fichier et le restituer vers le serveur en cliquant sur PLAY.

Si vous enregistrez un flux en cours de route, l’entête D-STAR sera perdu et la restitution ne sera pas bonne.

Si l’on active l’option Serial avant une connexion, les données UDP seront redirigées vers

Le port série à une vitesse de 115200 bauds, 8 bits, 1bit de stop. La restitution d’un fichier sera également dirigée vers le port série.

Cela a pour objectif d’avoir un utilitaire facilitant le développement d’un modem GMSK.

link


Description de d’échange de données UDP

La 1ère trame envoyée est celle d’une demande de connexion UDP

Client -> Serveur DCS

519 octets

0000   46 34 47 4f 48 20 20 20 42 42 00 44 43 53 30 33 F4GOH   BB.DCS03

0010   33 20 20 3c 74 61 62 6c 65 20 62 6f 72 64 65 72 3 <table border

0020   3d 22 30 22 20 77 69 64 74 68 3d 22 39 35 25 22 = »0″ width= »95% »

0030   3e 3c 74 72 3e 3c 74 64 20 77 69 64 74 68 3d 22 ><tr><td width= »

0040   34 25 22 3e 3c 69 6d 67 20 62 6f 72 64 65 72 3d 4% »><img border=

0050   22 30 22 20 73 72 63 3d 68 66 2e 6a 70 67 3e 3c « 0 » src=hf.jpg><

0060   2f 74 64 3e 3c 74 64 20 77 69 64 74 68 3d 22 39 /td><td width= »9

0070   36 25 22 3e 3c 66 6f 6e 74 20 73 69 7a 65 3d 22 6% »><font size= »

0080   32 22 3e 3c 62 3e 52 45 50 45 41 54 45 52 3c 2f 2″><b>REPEATER</

0090   62 3e 20 69 72 63 44 44 42 20 47 61 74 65 77 61 b> ircDDB Gatewa

00a0   79 20 32 30 31 33 30 31 33 31 3c 2f 66 6f 6e 74 y 20130131</font

00b0   3e 3c 2f 74 64 3e 3c 2f 74 72 3e 3c 2f 74 61 62 ></td></tr></tab

00c0   6c 65 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 le>………….

00d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

00e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

00f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

0100   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

0110   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

0120   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

0130   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

0140   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

0150   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

0160   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

0170   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

0180   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

0190   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

01a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

01b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

01c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

01d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

01e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

01f0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….

0200   00 00 00 00 00 00 00                             …….

La réponse est un ACK : ACKnowledge

Serveur DCS -> Client

14 octets

0000   46 34 47 4f 48 20 20 20 42 42 41 43 4b 00      F4GOH   BBACK.

D’une manière périodique le serveur vérifie si le client est toujours connecté en envoyant 2 trames

Serveur DCS -> Client

9 octets

0000   44 43 53 30 33 33 20 20 00                       DCS033 .

Serveur DCS -> Client

22 octets

0000   44 43 53 30 33 33 20 42 20 46 34 47 4f 48 20 20 DCS033 B F4GOH

0010   42 42 0a 00 20 20                               BB..

La réponse est la suivante :

17 octets

Client -> Serveur DCS

0000   46 34 47 4f 48 20 20 42 00 44 43 53 30 33 33 20 F4GOH B.DCS033

0010   42                                               B

De temps en temps le serveur envoie l’indicatif des OM en train de transmettre

Serveur DCS -> Client

0000   46 31 5a 48 48 20 20 20 54 61 6c 6b 20 6f 6e 20 F1ZHH   Talk on

0010   44 43 53 30 33 33 20 57 00 00 00 00 00 00 00 00 DCS033 W……..

0020   00 00 00                                         …

Un paquet de données contenant la voix est toujours de 100 octets. Un paquet est envoyé tous les 20ms.

0000   30 30 30 31 00 00 00 44 43 53 30 33 33 20 42 46 0001…DCS033 BF

0010   34 47 4f 48 20 20 42 43 51 43 51 43 51 20 20 46 4GOH BCQCQCQ F

0020   34 47 4f 48 20 20 20 49 44 35 31 2a 00 09 ce ce 4GOH   ID51*….

0030   ac 31 47 1e 58 e0 f0 16 29 f5 09 00 00 01 00 21 .1G.X…)……!

0040   48 45 4c 4c 4f 20 46 52 4f 4d 20 46 34 47 4f 48 HELLO FROM F4GOH

0050   20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00     …………

0060   00 00 00 00                                     ….

La description se trouve en page 8 (HEADER/Voice message) du document

CCS Call Connection Service Developer’s Manual for CCS Clients

C’est ce paquet qui est analysé dans le logiciel.

J’espère comme moi que cet utilitaire ravira les développeurs amateurs désirant se lancer dans l’étude du mode numérique D-STAR.

Toutes les données UDP ont été analysées avec l’utilitaire WireShark

Vous trouverez la librairie Arduino ici, sur le codage et décodage de l’entête D-STAR.

header

Prochainement la gestion du modem CMX589 avec la librairie DSTAR…

73 et bonne programmation

Liens utiles :

CCS Call Connection Service Developer’s Manual for CCS Clients

D­STAR radio frame structure in DV mode

D-STAR Uncovered

D-STAR System

D-PRS

DV-RPTR developer manual

D-STAR Analysis

Une réflexion sur “D-STAR Analysis

Laisser un commentaire