Simplix 2 : un décodeur
DTMF simple à deux voies
pour relais et balises

La réglementation impose à tout responsable
de relais ou balise de pouvoir arrêter immédiatement l'installation
sur injonction des autorités. Le décodeur DTMF qui est décrit
ici permet de répondre à cette obligation au moyen d'une
télécommande radio. Les codes d'arrêt et de mise en
marche seront bien entendu conservés secrets par le responsable
administratif de l'installation. A côté de cela, des codes
publics permettront à tout un chacun de modifier la configuration
du relais ou de la balise et ainsi d'enrichir son domaine d'emploi.
Fonctionnalités
Les
fonctionnalités du décodeur DTMF Simplix 2 couvrent une
grande partie des besoins de télécommande des relais et
balises :
- Deux
voies indépendantes, composées chacunes d'un relais électromécanique
qui répond à un code DTMF d'activation et à un code
de désactivation.
- Chaque
voie possède une temporisation qui lui est propre, ajustable entre
250 ms et 4 heures par pas de 250 ms. Les temporisations peuvent
être désactivées indépendamment lors de la
programmation.
- La
réponse à un groupe de codes est possible grâce à
l'existence d'un caractère de programmation "joker".
- Deux
codes secrets "administrateur" permettent de bloquer ou de débloquer
le fonctionnement. Le code administrateur opère en gelant la situation
établie, permettant ainsi soit l'arrêt, soit la marche forcée.
L'état choisi par l'administrateur est sauvegardé en EEPROM
afin que sa décision ne puisse en aucun cas être modifiée
par une coupure d'alimentation fortuite ou volontaire.
- Intégration
d'un générateur basse fréquence précis, délivrant
un signal permanent sinusoïdal de 500 mV efficaces à 1000
Hz. Ce générateur est utile pour la génération
de bips ou de signaux audio de test.
Enfin,
le décodeur DTMF Simplix 2 est programmable "in situ",
c'est à dire sans débrocher de composants de la carte.
Au
moyen de Simplix 2, on pourra par exemple commander deux équipements
différents, ou bien commander un seul équipement et utiliser
la deuxième voie pour activer un émetteur qui transmettra
un bip de confirmation de bonne réception de l'ordre.
Schéma électrique
Le décodeur DTMF Simplix 2 utilise peu de composants
: un circuit décodeur MT8870, un PIC 16F84A et quelques composants
ordinaires. Les fonctionnalités et les performances obtenues proviennent
plus du logiciel implanté dans le PIC, logiciel qui est fourni,
que du caractère exceptionnel des composants.

cliquer pour ouvrir le schéma
L'entrée audio est connectée au circuit décodeur
MT8870 IC1 qui fournit en retour au PIC 16F84A IC2 les informations relatives
au code DTMF reçu : présence d'un code DTMF sur la sortie
StD et valeur du code sur les sorties Q1 à Q4. Le PIC traite ces
informations et commande les relais K1 et K2 à travers les transistors
Q1 et Q2 respectivement. Les relais utilisés sont des modèles
miniatures 5 V Matsushita référence TF2-5V, résistance
du bobinage 312 ohms, mais des modèles équivalents existent
dans d'autres marques.
Un connecteur RJ11 6P4C permet la connexion au programmateur
in situ. La programmation est ainsi extrêmement facilitée,
même sur le terrain.
Un signal carré à 1000 Hz, disponible sur
la sortie RB4 du PIC est filtré par un filtre actif du second ordre
composé du transistor Q3 et des composants associés. Le
signal audio sinusoïdal, d'amplitude 500 mV efficaces (1,5 V crête
à crête), est présenté sous une faible impédance
sur la sortie LSP8. Bien entendu, ce générateur ne fonctionne
qu'une fois que le logiciel est implanté dans le PIC.
Deux régulateurs de tension complètent le
montage : Un régulateur IC3 type LM7805 qui fournit du + 5 V à
partir d'une tension continue comprise entre + 8 V et + 15 V, et un petit
régulateur optionnel IC4 XC6201P132 qui fournit du + 3,3 V utile
en fonction des approvisionnements en MT8870 (le MT8870DS fonctionne en
+5V, le MT88L70AS fonctionne en +3,3 V).
Pour un fonctionnement correct, le niveau audio à
l'entrée du circuit décodeur MT8870 doit être conforme
aux spécifications constructeur, soit 15 mV à 489 mV efficaces
pour la version 3,3 V, avec une différence de niveaux entre les
fréquences extrêmes qui ne dépasse pas 8 dB.
NB : Le schéma de principe est également fourni
au format .sch Eagle, en même temps que le circuit imprimé
(voir ci-dessous).
Réalisation
Pour
des raisons de simplicité le montage est réalisé
sur du circuit imprimé simple face FR4 et quatre straps seront
à prévoir. L'assemblage ne présente pas de difficultés
particulières.

télécharger le circuit imprimé
aux formats .brd Eagle et .bmp (54 ko zippés)
On peut
également envisager une réalisation sur plaque à
trous en utilisant des versions de circuits intégrés en
boîtiers DIL. Attention, les bobinages des relais sont polarisés.
Veiller à bien respecter le sens de la tension d'alimentation des
relais. En fonction de l'environnement du montage, on pourra abriter ce
dernier dans un petit boîtier métallique.
le décodeur dans son boîtier aluminium
Après un rapide examen visuel, la mise sous tension
peut s'effectuer immédiatement. On vérifiera la présence
des tensions régulées + 5 V, éventuellement + 3,3
V, et la valeur du courant d'alimentation.
Il faut ensuite passer à la phase de programmation
du PIC au moyen d'un programmateur in situ semblable à celui décrit
dans une réalisation précédente.
Dans le cas d'une utilisation de PIC en boîtier DIL on pourra utiliser
la méthode de programmation traditionnelle sur programmateur externe.
Tous les détails du logiciel à charger (structure, fonctionnement,
code source, paramètrage) sont fournis ci-après.
Logiciel
-
principe :
Le
principe utilisé de système temps réel est inhabituel
pour une réalisation amateur. Il n'existe pas de boucle d'attente
à proprement parler et il n'est pas fait appel à des interruptions.
On trouvera simplement une grande boucle où tous les évènements
externes et toutes les actions à réaliser sont notés
séquentiellement au moyen de fanions (flags) ou de compteurs.
Un temps précis, c'est à dire un nombre de cycles machine
déterminé, est alloué à chaque opération
et à chaque traitement. Les différents chemins logiques
possibles sont compensés temporellement pour un respect strict
de ce critère. La grande boucle se parcourt en exactement 1000
cycles machine, soit une durée de 1000 µs lorsqu'on utilise
le traditionnel quartz de 4000 kHz pour l'oscillateur du PIC.
Cette façon de procèder induit une grande
fiabilité de fonctionnement, une très faible probabilité
de blocage, la possibilité de gèrer plusieurs temporisations
longues et précises, tout en obtenant en même temps un
signal carré permanent à 1000 Hz de qualité.
-
structure du logiciel
L'enchaînement des tâches est présenté
dans le diagramme ci-après :

Deux retards, ajustés à 157 µs pour le premier,
à 304 µs pour le second permettent de respecter exactement
un temps de boucle de 1000 µs et d'assurer un rapport cyclique
correct du signal audio.
-
code source
Le code source est écrit en assembleur pour 16F84A
au moyen de l'environnement de développement intégré
MPLAB, téléchargeable gratuitement sur le site de
Microchip.
Peu d'élégance dans l'écriture du code, mais la
volonté d'obtenir un ensemble simple à comprendre pour
toute personne ayant déjà pratiqué les 35 instructions
de l'assembleur Microchip.
-
paramètrage
Pour paramètrer le logiciel en fonction de ses propres données,
il n'est pas nécessaire de connaître l'assembleur Microchip.
Les points d'intervention dans le programme source sont identifiés
dans le champ commentaire par le signe : ***Pnn***, où nn représente
un numéro d'identification.
La procédure de paramètrage est détaillée
dans un petit document spécifique.
-
compilation du logiciel et programmation du PIC
Pour la compilation du code source paramétré on utilisera
l'environnement de développement intégré MPLAB
qui est fourni gratuitement par Microchip. On définira un nouveau
projet par les commandes "Project-New" que l'on l'appellera
par exemple simplix2.mcp. On insèrera le fichier source dans
le projet par la commande "Project-Add Files to Project".
La compilation sera lancée par la commande "Project-Build
All". Après compilation réussie vous êtes
en possession d'un fichier nommé simplix2.hex que vous transfèrerez
dans le PIC grâce à IC-Prog et à un petit programmateur
comme celui décrit dans
un article précédent.

La programmation in situ du PIC
Conclusion et perspectives
Ce petit
décodeur DTMF se veut simple, économique, et malgré
tout performant. Il couvre les besoins élémentaires des
relais et balises. Des améliorations restent nécessaires,
tant au niveau matériel qu'au niveau logiciel. Faites part de vos
observations !
Deux
sorties restent disponibles sur le microcontrôleur, il reste de
la place en mémoire programme ainsi que du temps machine. On pourrait
donc envisager de commander deux relais supplémentaires (Simplix
4) au prix d'une modification du circuit imprimé et d'un petit
complément logiciel. L'utilisation d'un PIC 16F628A, plus récent
et plus économique pourrait également être envisagée.
Ces améliorations seront apportées en fonction de l'évolution
des besoins. Pour des besoins de télécommande d'installations
plus complexes, on peut se demander s'il est souhaitable de concevoir
un dispositif plus puissant, ou bien préférable de juxtaposer
simplement plusieurs systèmes simples.
Bon trafic avec Simplix 2 !