Décodeur DTMF programmable par PC

Transcription

Décodeur DTMF programmable par PC
Décodeur DTMF
programmable par PC
Version 2.0
 F1OOE
e-mail : [email protected]
1
Vous hésitez à faire un décodeur DTMF car pour modifier les codes, il faut soit
modifier le câblage soit reprogrammer un composant (EPROM, PAL...). Grâce à un
petit logiciel complet sous Windows, la modification des codes (10 codes de 6
“ chiffres ”) devient très facile.
Description :
La réalisation est séparée en trois parties distinctes : le décodeur DTMF, le
microcontrôleur PIC et l’interface série.
Le décodeur DTMF:
Rappel : le signal DTMF est la superposition de 2 fréquences (une basse et une haute).
1209 Hz 1336 Hz 1477 Hz 1633 Hz
697 Hz
1
2
3
A
770 Hz
4
5
6
B
852 Hz
7
8
9
C
941 Hz
*
0
#
D
Le classique composant CD22202 (SSI202...) est un décodeur DTMF de 16
“ chiffres ” (voir tableau ci-après) qui ne nécessite qu’un Quartz et peu de composants
discrets. Dès qu’un code DTMF est reçu, son code hexadécimal est mis sur les sorties
puis la sortie DV passe à l’état haut (+5V) pour valider.
“ Chiffre ” DTMF code Hexa
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
0
A
*
B
#
C
A
D
B
E
C
F
D
0
Sortie 4
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
sortie 3
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
sortie 2
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
sortie 1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
Le microcontrôleur :
C’est le cœur du montage, il permet de gérer tous les codes hexadécimaux qui arrivent
en entrée et change l’état des sorties. Le microcontrôleur PIC16C84 comporte 36 octets de
RAM, 64 octets d’EEPROM, un timer, 13 entrées / sorties, 1K d’EEPROM pour le
programme... Comment ça marche ? Grâce au programme sous Windows, les codes sont
transférés par liaison série au microcontrôleur qui sauvegarde dans son EEPROM (le contenu
est donc gardé en cas de coupure d’alimentation). Dès qu’un code est reçu, le microcontrôleur
le transmet sur le port série, le stocke et le compare avec sa liste. Si les codes envoyés
correspondent, le microcontrôleur change l’état des sorties en fonction des critères définis.
L’interface série :
2
Le MAX232 met en forme les signaux entre le port de communication série (tension
+12V ou -12V) et le microprocesseur (0V ou +5V). Les tensions -12V et +12V n’existant pas
sur ce montage, elles sont créées grâce à ce circuit et aux condensateurs de 1µF.
La réalisation :
Le montage utilise un circuit imprimé de 10cm par 7cm et ne comporte aucun réglage.
Trois borniers et un connecteur DB9 permettent les connexions : l’alimentation (≈ 12 Volts),
l’entrée BF (la sortie HP de votre tranceiver), les sorties de commande (4 sorties à collecteurs
ouverts et une sortie 5V) et le connecteur série.
Attention de ne pas oublier les 3 straps avant de souder les autres composants : les
résistances, diodes, condensateurs (au pas de 2.54 ou 5.08), transistors, supports de circuits
intégrés (conseillé), borniers, quartz et le régulateur. Après avoir vérifié que l’alimentation est
à 5V (par exemple, entre les pattes 15 et 16 du MAX232, U3) et que la led verte s’allume,
vous pourrez alors placer hors tension les circuits intégrés (voir Implantation des composants).
Le câblage :
Test :
Deux codes (“ #0 ” et “ “#1 ”) sont déjà préprogrammés dans le microcontrôleur et
permettent de faire les premiers tests.
er
1 test :
Mettre le cavalier avant d’alimenter le montage. La led rouge clignote 1 fois et
reste éteinte. Si vous tapez n’importe quel “ chiffre ”, la led rouge s’allume un très court
instant.
Conclusion : votre montage comprend les sons DTMF.
ème
2
test (facultatif):
3
Mettre le cavalier avant d’alimenter le montage. La led rouge clignote 1 fois et
reste éteinte. Votre montage transmet sur le port série tous les caractères DTMF qu’il
reçoit. En choisissant une émulation minitel ou un autre logiciel PC, vous faites afficher
les codes reçus (voir Annexe 2 : Réception sur PC).
ème
3
test :
Mettre le cavalier avant d’alimenter le montage. La led rouge clignotera une fois
et restera éteinte. Nous allons vérifier une sortie en rajoutant une résistance de 10kΩ
entre le +5v (borne haute du grand bornier) et une sortie (deuxième borne d’en bas du
grand bornier). Après avoir coupé et rallumé l’alimentation du montage, le transistor
n’est pas alimenté donc la tension aux bornes de la résistance passe à 0V. Après avoir
taper “ #1 ”, le transistor est alimenté donc la tension aux bornes de la résistance est de
5V. Taper maintenant “ #0 ”, le transistor n’est plus alimenté, la tension aux bornes de
la résistance repasse à 0V.
Conclusion : votre montage traite les codes DTMF qui lui sont envoyés.
Le programme :
Avant de lancer le programme DTMF95 (pour Windows 95/98) ou DTMF31 (pour
Windows 3.1), les tests, précédemment décrits, doivent être concluants. Attention : le cavalier
doit être ouvert avant d’être alimenté. La led rouge clignotera 5 fois et restera allumée.
La disquette :
La disquette contient les fichiers suivants:
- DTMF-DOC.EXE : fichier auto-décompactable DTMF-V20.doc, cette
documentation.
- DTMF95.EXE : programme pour Windows 95/98.
- DTMF31.EXE : programme pour Windows 3.1.
- PROGRAM.BAT et LIRE.BAT : commandes pour lancer les programmes
BASIC.
- PROGRAM.BAS et LIRE.BAS : programmes BASIC pour DOS et Windows
3.1.
COM, liaison série :
Le câble reliant le PC à votre montage est un câble neutre (absence totale de
croisement). Au moins 3 fils sont câblés : broches 2 (TX), 3 (RX) et 5 (masse).
Dans le champ “ COM, sélectionnez votre port série (1 à 4).
4
Lire :
Cette fonction permet de lire la programmation du microcontrôleur. Nous vous
conseillons d’utiliser en premier cette fonction pour vérifier le bon fonctionnement de la
liaison série. Le résultat doit être le suivant : code “ #1 ” pour la sortie OUT1 à l’état 1 et code
“ #0 ” pour la sortie OUT1 à l’état 0. Si vous recevez cette configuration, l’ensemble de votre
réalisation fonctionne parfaitement.
Programmer :
Cette fonction permet de programmer le microcontrôleur. Nous vous conseillons de
faire cette deuxième fonction avec peu de modification pour vous familiariser. Modifiez :
code “ #A ” pour toutes les sorties à l’état 1 et code “ #B ” pour toutes les sorties à l’état 0 (ne
pas taper le “ # ”).
5
Remarque :
Pour vérifier la programmation du montage :
- Remettre à zéro l’affichage : “ Remise à zéro ”.
- Sélectionner “ Lire ”.
Remise à zéro :
Remise à zéro des paramètres.
Valider votre demande :
Codes, Sorties état 1, Sorties état 0 :
Ces 10 lignes doivent être saisies pour le changement d’état des sorties en fonction des
codes que vous choisissez.
Les séries de codes :
- 10 codes de 6 “chiffres ” peuvent être définis.
- “ # ” permet de synchroniser le décodage, il devra toujours être tapé avant
chaque code (le montage se synchronise aussi lorsque 6 “ chiffres ” ont été
tapés).
- 0123456789ABCD* peuvent être utilisés.
Quelques exemples :
#1
#123456
#ABCD
#7*8*
6
Exemple :
Le fait de transmettre “ #123456 ” (ne pas oublier le “ # ”) sélectionnera :
- La sortie 1 passera à l’état 0, le transistor ne sera pas alimenté, la sortie sera à
l’état “ ouvert ”. Si vous avez un relais, il ne sera pas alimenté, sa sortie sera
ouverte.
- La sortie 2 passera à l’état 1, le transistor sera alimenté, la sortie sera “ relié à
la masse ”. Si vous avez un relais, il sera alimenté, sa sortie sera fermée.
- La sortie 3 ne changera pas d’état.
- La sortie 4 passera à l’état 1 pendant un cours instant (quelques
microsecondes). Il ne faut pas utiliser de relais avec ce type de sélection.
Initialisation :
Cette fonction permet de sélectionner l’état des sorties à l’alimentation du montage :
- Etat 0 : sortie du microcontrôleur est de 0 Volt, le transistor n’est pas
alimenté, la sortie est à l’état “ ouvert ”. Si vous avez un relais, il n’est pas
alimenté, sa sortie est ouverte.
- Etat 1 : sortie du microcontrôleur est de 5 Volts, le transistor est alimenté, la
sortie est “ relié à la masse ”. Si vous avez un relais, il est alimenté, sa sortie
est fermée.
Remarques :
- Chaque sortie doit avoir une sélection : soit 1 ou 0.
- Voir chapitre “ Mémoire ” et “ Temporisation ”
Mémoire :
Si cette case est sélectionnée, à chaque changement d’état, ceux-ci sont mis en mémoire.
En cas de coupure d’alimentation, vous retrouverez les sorties dans l’état avant la coupure.
Remarques :
- La sélection de “ mémoire ” ne permet pas d’utiliser “ temporisation ” et
inversement.
7
-
Après un changement d’état des sorties, la lecture du microcontrôleur par le
programme PC indique dans le champ “ Initialisation ” l’état des sorties en
mémoire. Nous vous conseillons de désigner un code pour remettre les sorties
dans le même état que vous avez choisi dans “ Initialisation ”. Cela vous
évitera de reprogrammer le montage à chaque fois.
Temporisation :
Avec cette sélection, vous pouvez avoir une temporisation (en minutes, environ). Les
sorties changeront d’état durant la période de la temporisation. Après la durée choisie, les
sorties repasseront à l’état sélectionné dans “ Initialisation ”.
Exemple :
Quand vous tapez “#123456 ”, toutes les sorties passeront à l’état 1 pendant 5
minutes. Après le temps écoulé, les sorties 1 et 2 passeront à l’état 0 et les sorties 3 et 4
resteront à l’état 1 comme sélectionné dans “ initialisation ”.
Remarques :
- Si la temporisation est différente de “ 0 ”, le mode “ mémoire ” ne peut pas
être utilisé et inversement.
- Si un code valide est tapé, la temporisation redémarre pour la durée
sélectionnée.
Sauver :
Cette fonction permet de sauvegarder les codes que vous avez créés dans un fichier
“ .OOE ”. Vous devez sauvegarder les codes si vous voulez programmer le montage avec le
programme BASIC “ PROGRAM ” (cas sous Windows 3.1).
Charger :
Cette fonction permet de lire les codes d’un fichier “ .OOE ”, précédemment sauvegardé
ou provenant du programme BASIC “ LIRE ” (cas sous Windows 3.1).
8
Sous Windows 3.1 :
Avec la version DTMF31 (pour Windows 3.1), il n’est pas possible de programmer ou
de lire. Il existe alors 2 programmes BASIC : PROGRAM et LIRE. Il suffit de lancer
PROGRAM.BAT ou LIRE.BAT. Attention, nous vous conseillons de copier le programme
QBASIC.EXE dans le répertoire des programmes BASIC.
Les erreurs :
Erreur du PIC :
Si la led rouge de votre montage clignote plus de 5 fois, le montage n’a pas pu prendre
en compte les informations transmises par le PC. Vous devez éteindre puis rallumer votre
montage.
Erreur de saisies :
Les codes saisis ne sont pas corrects. Vérifier vos valeurs par rapport aux codes
autorisées notées dans cette documentation.
Erreur de communication avec le PIC :
Si votre montage est mal branché, pas alimenté ou si le PIC n’a pas correctement pris en
compte les informations transmises par le PC, le programme renvoi un message d’erreur.
Nous vous conseillons de reprogrammer le PIC avec le programme PC.
9
Erreur de transfert :
Si le port de communication est incorrect, votre montage mal branché ou pas alimenté,
le programme renvoi un message d’erreur. Vérifier l’ensemble.
Erreur Port Série :
Votre port série ne peut pas être configuré (cas sous Windows NT). Attention, les
programmes résidents (pour le packet radio) ne permettent pas de configurer correctement le
port série.
Erreur Fichier “ .ooe ” :
Le fichier “ .ooe ” n’est pas au bon format.
Circuit Imprimé côté composants
10
Implantation des composants
11
12
Liste des composants :
R1 : 100 kΩ
R2 : 1MΩ
R3 : 100 kΩ
R4 : 10 kΩ
R5 : 100 kΩ
R6, R7 : 470 Ω
R8 à R12 : 10 kΩ
C1 : 10 nF (milfeuil)
C2 : 100 nF (milfeuil)
C3 à C6 : 1µF (radial)
C7, C8 : 100 nF
C9 : 470 nF
C10, C11 : 100nF
C12, C13 : 100 pF
D1 : led rouge ∅5mm
D2 : led verte ∅5mm
D3 : 1N4007
Q1 à Q5 : 2N2222
X1 : 3.5795 MHz
X2 : 4.0000 MHz
U1 : CD22202 (SSI202...)
U2 : PIC16C84 (programmé)
U3 : MAX232 (ou équivalent)
U4 : 7805 (TO220)
divers :
2 * supports 18 broches
support 16 broches
2 * borniers 2 contacts au pas de 5.08
2 * borniers 3 contacts au pas de 5.08 (ou 3 * 2 contacts)
cavalier au pas de 2.54
connecteur DB9 femelle coudé pour circuit imprimé.
Bibliographie
•
•
•
•
•
•
•
•
•
•
•
•
•
CD ROM 1999 Technical Library, MicroChip
Data Book PIC16/17 Microcontroller, édition Microchip
Microcontrôleurs PIC structure ISC, édition Publitronic
Les microcontrôleurs PIC applications, édition DUNOD
Pratique des microcontrôleurs PIC, édition ELEKTOR
Livre d'or DELPHI 1,2 et 3, édition SYBEX
Le Platinium DEPHI, édition SYBEX
DELPHI 1 (pour Windows 3.1), Borland
DELPHI 3 (pour Windows 95), Borland
Assembleur PIC MPLAB v4.0, MicroChip
Programmateur de PIC PIP-02, Silicon Studio
ISIS Lite, Labcenter Electronics
ARES Lite, Labcenter Electronics
ANNEXE 1
Réception sur PC
Votre montage transmet les codes DTMF reçus sur le port série (1200 baud, 8 bits, pas
de parité, 1 bit de stop). Ce mode fonctionne quand le cavalier est mis, la led rouge clignote
une fois et reste éteinte.
Utilisation du programme “ Hyper Terminal ” de Windows 95
Sous Windows 95, lancer “ Hypertrm ” dans “ Démarrer ”, “ Accesoires ” puis “ Hyper
Terminal ”.
• Saisir un nom.
• Choisissez connecter en utilisant : “ Diriger vers COM1 ” ou autre port série.
• Sélectionnez les paramètres comme ci-dessous :
Votre terminal est maintenant parfaitement configuré.
Remarques :
- Lancer votre logiciel PC après avoir allumé le montage.
- C’est normal que le logiciel vous demande de vous déconnecter avant de quitter.
ANNEXE 2
Carte relais
Rien de plus simple que de câbler cette carte relais et de la relier à votre montage.
- Câbler les borniers et les 4 relais (attention au sens).
- La carte relais se met à côté de votre montage. Vous pouvez utiliser 5 queues de
résistances ou une nappe à 5 fils. Si vos relais sont commandés avec une tension
de 5V (comme recommandé), celle-ci sera prise directement sur le montage, il
n’est pas nécessaire de relier la masse. Dans le cas contraire, ne pas oublier de
relier la masse de votre alimentation à la masse de votre montage et non à la carte
relais.
Circuit Imprimé côté composants
Implantation des composants
Liste des composants :
4 * relais REED 1 contact travail 5V
4 * borniers 2 contacts au pas de 5.08
2 * borniers 3 contacts au pas de 5.08 (ou 3 * 2 contacts)
ANNEXE 3
Programme sous DOS
Le programme PC a été développé en BASIC sous DOS pour pouvoir modifier les
codes du montage grâce à un PC portable, type 8086, à bas prix. Et oui, ils peuvent encore
servir !!!
Description :
Je ne décrierai ici que les particularités de ce programme par rapport aux programmes
DELPHI sous Windows 3.1 et 95. Il faut noter qu’un programme en BASIC sous DOS n’est
pas convivial.
En entrée du programme, le fichier “init.ooe” (par défaut) est pris. Celui-ci
correspond à la non saisie de données donc, un écran vide sous Windows.
Codes, Etats des sorties :
Etats : états 0 : “0”
états 1 : “1”
états 0 et 1 (impulsion) : “i” ou “I”
pas de changement d’état : “ ” (espace)
Initialisation, Mémoire, temporisation :
En cas de saisie incorrecte, vous devez ressaisir.
Sauvegarde :
Vous devez saisir le nom du fichier (sans l’extension) pour pouvoir le transférer
avec le programme BASIC “PROGRAM”.
Lire, Programmer :
Ces fonctionnalités sont réalisées par 2 programmes BASIC : “LIRE.BAS” et
“PROGRAM.BAS” lancés par les commandes “LIRE.BAT” et “PROGRAM.BAT”.

Documents pareils

decodage du dtmf

decodage du dtmf Le plus direct et le plus sûr, consiste à utiliser un décodeur intégré. On utilise un circuit SSI202P, ou un CD22202, Si le microcontrôleur peut être cadencé à 3.5795 MHz, on pourra partager l'horl...

Plus en détail