Jean-François FOURCADIER
F4DAY

Montpellier  (France)

projets radioamateurs

écrivez moi !  
© 2000-2016- J.F. Fourcadier
page d'accueil
haut débit télévision antennes hyperfréquences relais divers

 


Construction d'un relais VHF - ATV

chronique d'une réalisation expérimentale

Dans le cadre de l'évolution du relais de Montpellier F1ZGU, il est nécessaire de disposer d'une unité de commande capable de gérer de nombreux périphériques:

- un émetteur-récepteur VHF: commande arrêt-marche TX, squelch, CTCSS
- un éventuel récepteur VHF ou UHF supplémentaire, dédié à la réception des télécommandes
- une commutation de sources audio: récepteur VHF, annonces vocales, générateur 1000 Hz
- un émetteur de télévision d'amateur: commande arrêt-marche
- une commutation de sources vidéo: mire, différents récepteurs, données à 2 Mbit/s
- un récepteur de télécommande DTMF, avec deux niveaux de fonctions: utilisateur et administrateur
- un afficheur LCD fournissant des informations d'exploitation

Il est de plus souhaitable de réaliser une unité de commande évolutive, capable d'intégrer facilement, au fur et à mesure de l'évolution des besoins, de nouveaux périphériques et de nouvelles fonctions.

A contrario, on pourra observer que, l'ensemble étant modulaire, il est possible de n'installer que les modules strictement nécessaires à l'application envisagée. Pour un simple relais VHF, seuls les modules microcontrôleur, commutation audio, annonce vocale et interface radio sont utiles. Bien entendu, les modules logiciels correspondants doivent être activés en conséquence.

L'architecture retenue

- architecture matérielle

Afin d'éviter un câblage dense, une gestion de connexions d'entrées-sorties problématique et pour préserver l'évolutivité de l'ensemble, le microcontrôleur et les périphériques sont organisés autour d'un bus I2C. Ce dernier est constitué d'un simple câble à deux conducteurs, blindés séparéments.
Le traitement des informations est confié à un microcontrôleur PIC type 16F876, qui joue le rôle de maître. Les périphériques mentionnés ont un statut d'esclave et échangent leurs informations à travers le bus au moyen de circuits interface 8 I/O PCF8574 ou PCF8574A. Il est possible de placer au total 16 de ces circuits sur le bus, ce qui représente 16 x 8 = 128 entrées ou sorties adressables séparément. Enfin un circuit horloge PCF8583, dont le rôle sera précisé au paragraphe suivant est placé également sur le bus.

- architecture logicielle

Dans un système comme celui décrit, des événements extérieurs simultanés peuvent apparaître: ouverture d'un squelch de récepteur pendant qu'a lieu une réception de codes DTMF, par exemple. Il est donc nécessaire que plusieurs tâches puissent être réalisées de manière quasi-simultanée. Par ailleurs, comme d'autres événements, les codes DTMF reçus se succèdent à leur propre rythme et doivent être traités sans délai, sous peine de dysfonctionnements graves. Il n'est donc pas imaginable d'introduire des boucles d'attente longues comme on peut les rencontrer dans les systèmes simples qui n'ont à gérer qu'un type d'événement à la fois.

Pour résoudre ces problèmes, on fera appel à un "ordonnancement circulaire": chaque périphérique sera visité, très vite, et à tour de rôle. Pour ne pas perdre de temps, les événements seront notés en RAM au fur et à mesure de leur apparition, puis traités au plus tôt. Lorsqu'un événement nécessite une action différée (par exemple une attente de confirmation ou une temporisation), l'heure d'apparition de l'événement sera notée en RAM, et les durées calculées par simple différence avec le temps actuel. Pour obtenir un fonctionnement satisfaisant, en particulier pour un traitement correct des signaux DTMF, il est souhaitable que dans tous les cas le cycle complet de visite et de traitement des différents périphériques s'effectue en moins de 10 ms.

le cycle
( le périphérique # 1 est constitué de l'horloge donnant l'heure système)

Pour permettre la tenue de la contrainte temps réel, le logiciel sera écrit en langage assembleur, et assemblé au moyen de l'environnement MPLAB et du logiciel MPASM fournis gratuitement par Microchip. Pour faciliter la maintenance et l'évolutivité de l'ensemble, les modules logiciels suivront autant que possible la découpe matérielle. A chaque module matériel correspondra un module logiciel contenant les fonctions de base associées. Il restera à ajouter un peu de "liant" dans la boucle principale pour animer l'ensemble !

cliquer pour agrandir

le bus I2C véhicule un flot continu de données
(fil SDA, 1 ms/division)

- considérations système

Un tel système peut-il fonctionner et, dans l'affirmative, quelles sont ses limites ?

Tout d'abord, au niveau matériel, les spécifications I2C fixent à 400 pF la capacité électrique maximum du câblage. Ceci correspond à une quinzaine de périphériques I2C à 10 pF de capacité d'entrée plus 2,5 mètres de câble à 100 pF/m, ce qui est tout à fait compatible avec le projet. Les périphériques pourront être répartis dans plusieurs tiroirs d'une baie 19 pouces.

L'aspect temps réel est plus critique. L'I2C standard travaille avec une horloge cadencée à 100 kHz maximum, soit une période de 10 µs. Lire un octet sur un périphérique nécessite la transmission d'un octet pour l'adresse, plus la réception de l'octet proprement dit, plus les signaux de protocole, ce qui demande grossièrement 250 µs. Une quinzaine de périphériques peuvent être lus en 15 x 250 = 3750 µs, ce qui laisse un temps plus que confortable pour les traitements par le microcontrôleur, ces derniers ne représentant qu'un poids négligeable. Deux périphériques transmettent ou reçoivent plusieurs octets et doivent donc faire l'objet d'une vigilance particulière pour ne pas dépasser la barre fixée des 10 ms:

- l'horloge système transmet, centièmes de secondes, secondes, minutes et heures, soit quatre octets. Pour éviter les transmissions répétées sur le bus, l'heure ne sera lue qu'une fois en début de cycle et stockée en mémoire RAM. L'heure sera donc une heure "cycle".

- l'afficheur LCD. Voici un périphérique par instants très gourmand en temps d'utilisation du bus ! Compte tenu de la gestion de la broche "Enable" des afficheurs standards, trois octets sont nécessaires, en sus de l'octet d'adresse, pour afficher un seul caractère. Plus de 5 ms sont donc nécessaires pour afficher une ligne de 16 caractères. Comme, même un observateur attentif ne verra pas de contrainte temps réel pour un affichage LCD, on résoudra le problème par une gestion particulière de l'affichage sur la base d'un fractionnement, ou d'une file d'attente.

La réalisation matérielle d'ensemble

Les différents modules matériels sont placés dans un tiroir 19 pouces, une unité. La face avant comprend de gauche à droite, l'interrupteur marche/arrêt, l'afficheur à cristaux liquides, un connecteur Sub-D pour la programmation in-situ au moyen d'un ordinateur portable, et un bouton de remise à zéro (hard reset).

 

 

A noter sur la face arrière, en sus des connecteurs audio et vidéo, deux connecteurs Sub-D qui permettent de prolonger le bus I2C. En fait, chacun des tiroirs 19" d'extension comprend en face arrière deux connecteurs Sub-D, ce qui permet de chaîner de proche en proche le bus, pour une évolutivité maximale.

 

 

cliquer pour agrandir

Une réalisation encore incomplète

 

Description détaillée des différents modules matériels

- le module microcontrôleur-horloge

cliquer pour agrandir
cliquer pour agrandir

- le module de commutation vidéo-audio

cliquer pour agrandir
cliquer pour agrandir
cliquer pour agrandir
cliquer pour agrandir
cliquer pour agrandir
cliquer pour agrandir
- la mire d'identification
- ........ ?
A suivre !
 

Le logiciel

téléchargez le programme source en assembleur F1ZGU.asm (zippé)

Attention, cette section est actuellement en cours d'écriture! Le programme ci-dessus n'est donc pas opérationnel en l'état. On trouvera simplement les routines de bas niveau, et un exemple d'extraction de l'heure système, d'affichage des secondes sur l'afficheur, et de fermeture cadencée de deux relais du module de commutation audio.

En travaux !

 

Les périphériques

 

   
 
- l'alimentation de l'émetteur ATV
cliquer pour agrandir

 

 

Intégration et mise en exploitation

A suivre !

 

 

73 de Jean-François FOURCADIER, F4DAY

 

 

retour à la page d'accueil du site

 

 

 

© 2000-2016  J.F. Fourcadier F4DAY