Présentation du Relais D/ATV de la montagne de Lure 

 

Ce document présente le relais D/ATV de la Montagne de Lure F5ZMP qui est actuellement en service dans sa version du 20 septembre 2017.

Historique : Le relais existe depuis plus de 15 ans, à l'origine il était installé dans un coffret étanche, il a migré dans le bâtiment du club qui abrite les autres équipements, et il a été reconditionné pour tenir dans un rack 19'' monté en armoire vers les années 2008/2009.

Cette dernière version est de nouveau dans un rack avec tous les fonctions sous forme de modules débrochables. Nous avons profité de cette version, pour changer complètement l'organisation du relais et d'introduire une gestion complète du relais par Raspberry/ Python3 apportant la possibilité d'apporter des modification sur le fonctionnement et de le rendre évolutive aux dernières technologie; introduction à la DATV, Hamnet, etc.

 

1.1.         Fréquences utilisées

 

Pour rappel:

Émission analogique sur         1 255 MHZ polar H Sud et Nord/Est

Entrée analogique sur             2 308 MHz polar H orienté Sud

Entrée DATV                          437 MHz SR1024 PID1000 polar H orienté Sud

 

DTMF VHF                           144,625 MHz Polar V

DTMF UHF                           439,6125 MHZ PolarV modifiée pour éviter QRM sur 625

 

Link Marseille

Lien descendant   F5ZMP vers F5ZAJ : 10 220 MHz Polar H

Lien montant        F5ZAJ vers F5ZMP : 10 448 MHz polar V

Link Mont Bouquet

Lien descendant   F5ZMP vers F1ZUT : 10 260 MHz polar H

Lien montant        F1ZUT vers F5ZMP : en cours de réalisation

 

1.2.         Architecture F5ZMP

 

Lors de la refonte du relais, nous en avons profité pour repenser sa conception. Le principe'est d'avoir un micro-ordinateur (Raspberry) en liaison avec des modules à travers un réseau interne.

Ce réseau est basé sur un réseau I2C, développé au siècle dernier par Philips et qui est devenu aujourd'hui un des standard pour l'échange de données. Ce principe permet d'avoir des modules indépendants et ''intelligents'' pour avoir une capacité de repli en cas de perte avec le Raspberry, et de répondre à chacune de ses requêtes.

Les modules en liaison avec le Raspberry sont:

                                         Les récepteurs analogiques, basés sur des modules Comtech avec une démodulation F5AD,

                                         les TRX VHF et UHF (réception DTMF) basés sur des modules DRA818,

                                         le module de commandes d'alimentation des émetteurs (1255,10220 et 10260MHz),

                                         la platine de commutation Vidéo/audio fixée sur le rack du relais.

 

Le dernier module OSD (On Screen Display, affichage d'informations sur les caméras) est en communication avec le Raspberry via une communication SPI(Serial Périphérie Interface), ce module contient l'OSD pour la sortie 1255MHz, un deuxième OSD est prévu pour alimenter les Tx 10GHz, mais non installé pour le moment.

 

  

 

   

                     1.3.     Codes DTMF

 

Tous les codes DTMF commence par les codes # et 4, le troisième code DTMF spécifie le ou les émetteurs concernés et le quatrième fait le choix de la source vidéo/audio.

Code dtmf3 = 1, 1er groupe

Notes:

Une fois la commande envoyée et validée, l'émetteur ou les émetteurs démarrent pour une durée de 60 mn. Une nouvelle commande redémarre la minuterie, hormis la demande du menu (#411) qui ne la redémarre pas. Le menu affiche les temps écoulés pour les émetteurs (#411).

Si les émetteurs sont en parallèle, la commande du premier groupe agit sur l'ensemble des émetteurs.

Cet état est visible dans le menu et infos(#411)

 

 

dtmf 1

dtmf2

dtmf3

dtmf4

                     Fonctions Vidéo

          Audio

#

4

1

0

Arrêt émissions du relais

 

#

4

1

1

Menu et infos

            1000Hz

#

4

1

2

Entrée utilisateur 2308MHz

        RX, 6,5Mhz

#

4

1

3

Réception F5ZAJ (Marseille)

         RX, 6,5Mhz

#

4

1

4

Réception F1ZUT (Mont Bouquet) non op.

            non op.

#

4

1

5

Réception DATV 437MHz sr1024 pid1000

               Rx

 
 

 

dtmf 1

Dtmf2

dtmf3

dtmf4

                                  Fonctions Vidéo

                Audio

#

4

1

6

Réception DATV Minitioune( non op.)

Rx

#

4

1

7

Caméra Ouest

Rx 144,625MHz

#

4

1

8

Caméra Nord/Est

Rx 439,8125MHz

#

4

1

9

Mire Animée

1000Hz

#

4

1

0

Arrêt des émetteurs

 

#

4

1

*

Mire fixe barres de couleurs

1000Hz

#

4

1

#

Mire fixe détail

1000Hz

#

4

1

#

Mire fixe détail

1000Hz

#

4

1

A

Commande les émetteurs 1,255 et 10GHz en //

 

#

4

1

B

Sépare la commande des émetteurs 1,255 et 10GHz.

 

 

Code dtmf3 = 2, 2ième groupe

 

Concerne uniquement les émetteurs 10GHz, si la commande (#41B) a été validée.

 

dtmf 1

Dtmf2

dtmf3

dtmf4

                             Fonctions Vidéo

                Audio

#

4

2

0

Arrêt émissions du relais

 

#

4

2

1

Menu et infos

                 1000Hz

#

4

2

2

Entrée utilisateur 2308MHz

               RX, 6,5Mhz

#

4

2

3

Réception F5ZAJ (Marseille)

               RX, 6,5Mhz

#

4

2

4

Réception F1ZUT (Mont Bouquet) non op.

                  non op.

#

4

2

5

Réception DATV 437MHz sr1024 pid1000

                    Rx

#

4

2

6

Réception DATV Minitioune( non op.)

                     Rx

#

4

2

7

Caméra Ouest

         Rx 144,625MHz

#

4

2

8

Caméra Nord/Est

          Rx 439,8125MHz

#

4

2

9

Mire Animée

               1000Hz

#

4

2

0

Arrêt des émetteurs

 

#

4

2

*

Mire fixe barres de couleurs

               1000Hz

#

4

2

#

Mire fixe détail

               1000Hz

 

1.4.         Les Évolutions à venir

 

Les évolutions à venir dans les prochains mois:

-   Liaison Hamnet pour une gestion du raspberry à distance

-   Extension des codes DTMF pour avoir :

-        un menu complété avec des informations sur l'état du relais, alimentation, niveau de réception, mesures de la puissance de sortie et retour.

-        l'accès à l’historique des niveaux de réception et valeurs alimentations gérés par une base de données

-        etc...

-        réception 437MHz en TNT

-        antenne big wheel 437MHz pour réception omnidirectionnelle

-        émission Mire DATV sur 23cm (fréquence à définir)

-        liaisons RS485 avec les TX 10GHz

-        etc...

 

1.5.         Principe de fonctionnement

 

Le raspberry est en liaison avec les modules en I2C, hormis la liaison avec l'OSD qui est en SPI. Dans cette version, les liaisons I2C et RS485 avec les TX's (1255Mhz,10220MHz et 10260MHz) ne sont pas opérationnelles.

Chaque type de module ou groupe de même module installé dans le rack portent un numéro.

Principe d'intercommunication entre les différents modules.

  

Implantation des modules dans le rack: en partant de la gauche

 

 

Type 1

Modules d'alimentation 12Vcc >7Vcc, 2 modules, chaque module possède 2 alimentations.

Module 1A 7V pour les récepteurs, module 1B 7V pour le raspberry Module 2A 7V pour le TRX UHF, module 2B pour le TRX VHF

Type 2

Raspberry PI3 avec le convertisseur de niveau 5v/3,3V pour l'I2C

Type 3

OSD (inscription sur image) MAX7456

Type 4

Module de commandes d'alimentation des émetteurs via 8 relais et de l'horloge RTC

Type 5

Modules Récepteurs ATV 1 module pour la réception de F5ZAJ, 1 module pour la réception utilisateurs 2308MHz, emplacement prévu pour la réception de F1ZUT

Type 6

Modulateurs bande de base pour les 2 TX 10GHZ

Type 7

Emplacement pour l'exciter TX1255MHz

Type 8

Module TRX VHF et Modules UHF à base de DRA818

type 9

Réserve

Type 10

Commutation Vidéo/audio situé sue la dessus du rack

 

 

Implantions des modules dans le rack

 

 

                                                       note: ce schéma n'est pas à l'échelle.

                                                       Les émetteurs 10GHz (module 6) ont la même source et une seule entrée est opérationnelle.

                        2. Description Technique

 

 

2.1.         Alimentations:

L'alimentation générale est de 12Vcc, chaque convertisseur alimenté par les modules de type 1(modules d'alimentation), sont suivis par une régulation 7V > 5Vcc (7805) intégrée.

 

2.2.         Consommation

Relevés le 21 juin 2017

en réception                            1,78A

avec Tx 1255MHz                  7,18A

avec TX 10220MHz               8,02A

avec Tx 10260MHz                8,63A

 

 

2.3.          Couleurs des fils Rouge 10Vcc, ou 7Vcc, ou 5Vcc Noir ou bleu = Masse

Jaune SDA I2C Gris SCL I2C

 

2.4.         Interconnexion des modules

les interconnections entre les modules sont réalisées par un câblage avec fils sur des connecteurs de type DB9 et DB25 pour le raspberry.

Les connections sont détaillées ci-dessous.

                                                                                                   a) Modules d'alimentation de type 1 connecteur DB9 femelle

 

                                                                                                    b) Module OSD type 3 connecteur DB9 mâle

 

 

                                                                                         c)  Modules d'alimentation de type 4 à 8 inclus connecteur DB9 mâle

Note : les modules 8 TRX_VHF et TRX_UHF ont la sortie interruption à la pin N° 4, et non à la masse.

 

                                                                                          d) Module Raspberry type 2 DB25 femelle

 

 

 

              3 .  Principe des communications I2C

 

La communication I2C est gérée par le raspberry à travers son GPIO (port d'entrées/sorties). Un convertisseur de niveau installé sur le module Raspberry convertit ces signaux de 3,3Vcc en 5Vcc, et vice versa, ce convertisseur est décrit dans le paragraphe du Raspberry.

Le raspberry est le maître sur le réseau I2C, c'est lui qui initialise les communications avec les modules qui sont esclaves. Chaque module est équipé du même type de PIC, un PIC16F88 chaque PIC possède une seule et unique adresse suivant le tableau ci-dessous.

 

 

3.1.         Adresse I2C

 

Adresse I2C

Désignation

Adresse PIC

h'29'

Récepteur link F5ZAJ

 

h'2A'

Récepteur entrée analogique 2308MHz

 

h'2B'

Récepteur link F1ZUT, non opérationnel 

 

h'2C'

Récepteur réserve

 

h'2E'

TRX 144MHz

 

h'2F'

TRX 439MHz

 

h'31'

Commutation Vidéo Audio

 

h'33'

Commandes TRX

 

h'48'

Température LM75 (capteur intégré sur la carte commandes TRX

 

h'57'

EEPROM sur circuit RTC

 

h'68'

Horloge RTC, utilisé par Raspbian

 

 

 

A travers chaque adresse, le raspberry peut lire et également écrire dans la mémoire du PIC adressé. Le principe des programmes à l'intérieur de chaque PIC est identique, à la mise sous tension, chaque PIC charge des valeurs par défaut, contenues en EEPROM, et spécifiques aux périphériques qu'il contrôle, par exemple:

 

Les récepteurs, chaque récepteur charge dans son module Comtech la valeur par défaut de la fréquence à recevoir, le shift positif ou négatif de 479,5 Mhz, etc,,.

Les TRX DTMF, passe en réception et charge les fréquences de réception et d'émission La baie de commutation vidéo/audio est positionnée sur la mire avec émission du 1000Hz etc...

 

Après l'exécution de leur programme d'initialisation chaque PIC lit en boucle le contenu d'une variable contenue en mémoire RAM. Cette variable est modifiée par Raspberry à travers le réseau I2C pour demander au PIC concerné l'exécution d'une application spécifique. Une fois cette application réalisée la variable est remise à zéro pour indiquer son bon déroulement et repart dans la boucle, en attendant une nouvelle demande. Cette variable porte le nom de status_pgre dans les programmes qui sont tous écrit en assembleur.

Dans la description de chaque module est décrit précisément les fonctions disponibles, c'est à dire les valeurs que la variable status_pgre est capable de reconnaître.

 

3.2.         Méthode de communication en python3 avec les modules I2C

 

Une suite d'exemple tiré du programme de F5ZMP présente la façon d’accéder à la mémoire des PIC implantés sur ces modules.

                              a) Lecture d'un octet :

                                  status_pgre_RX1 = bus.read_byte_data(DEVICE_ADDRESS_RX1,6) status_pgre_RX1 variable qui contiendra la valeur de l'octet

                                  bus. Constante spécifiant le bus 1, read_byte_data, commande de lecture,

                                   DEVICE_ADRESS_RX1, adresse du récepteur RX1, correspond à la valeur h'29' (voir paragraphe précédemment).

 

                               b) Écriture d'un octet :

                                    write_byte_data(DEVICE_ADDRESS_TRX_VHF,0x12,4) bus, idem lecture

                                    write_byte_data, commande d'écriture DEVICE_ADDRESS_TRX_VHF,

                                    adresse du module TRX_VHF 0x12 adresse de la mémoire où sera rangée l'octet en hexadécimal,

                                    4,valeur décimale qui sera placée à l'adresse ci-dessus.

 

                                 c) Lecture d'un bloc de 32 octets dma_cde_tor=bus.read_i2c_block_data(DEVICE_ADDRESS_COMMANDES_RE LAIS,0x00)

                                    dma_cde_tor, variable contenant les 32 octets read_i2c_block_data, commande de lecture des blocs

                                    DEVICE_ADDRESS_COMMANDES_RELAIS, adresse du module commande relais

                                    00, adresse du premier octet lu.

 

                                   d) Écriture d'une série de

                                     QRG = [49, 52, 52, 54, 50, 53, 48, 49, 52, 52, 54, 50, 53, 48]

                                      bus.write_i2c_block_data(DEVICE_ADDRESS_TRX_VHF, 0, QRG)

                                      QRG = bloc de variables

                                      write_i2c_block_data, commande d'écriture du bloc DEVICE_ADDRESS_TRX_VHF,

                                      adresse du module TRX_VHF 0,

                                      adresse du premier octet

                                      et les variables.

 

Python3 permet l'utilisation d'autres fonctions en relation avec le réseau i2c, voir la documentation. Vous trouverez au chapitre suivant l'adresse et les octets pour chaque module en liaison i2C avec le raspberry.

             4.   Description des modules

4.1.         Module de Type 1, Alimentations

 

Chaque module intègre 2 convertisseurs de tension qui fournissent du 7,5 Vcc à partir du 12Vcc, ils sont référencés A et B.

Ces convertisseurs utilisent des circuits achetés sur e-bay à base de LM2596, ces circuits sont donnés pour un maximum de 1A. Chaque convertisseur est protégé par un fusible de 1A, ils sont suivis par des filtres passe bas, pour se protéger du 150KHz, fréquence de fonctionnement des LM2596.

   

                                                                                          Schéma de simulation avec RF99.