. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
Softwarový DTMF dekodér
10. srpna 2009 - 21:16 | Pandatron | Softwarový DTMF dekodér | Komentářů: 1  

Softwarový DTMF dekodér

Volně dostupná (GNU) softwarová implementace dekodéru DTMF kódů pro mikrokontrolér PIC od Radu Constantinescu.

Softwarový dekodér tónové volby (tzv. DTMF) vnikl jako projekt DTMF dálkového ovládání, kdy veškerý příjem a dekódování znaků je řešen softwarově prostřednictvím mikrokontroléru PIC16F877 firmy Microchip.

V základním zapojení je vstup dekodéru prostřednictvím linkového transformátoru určen pro připojení na telefonní linku a čtyři logické výstupy jsou určeny pro připojení výstupních relé. Implementované heslo, určené pro ochranu před ovládáním nepovolenou osobou, může mít délku až 10 míst a pro přehlednost je uloženo odděleně od programu – v interní paměti EEPROM.

Schéma zapojení:
Na následujícím obrázku je ukázkové schéma zapojení DTMF dálkového ovládání.


Obr. 1: Schéma zapojení

Základem zapojení je již zmíněný 8bitový mikrokontrolér firmy Microchip – PIC16F877. Telefonní linka je připojena na piny J3 a J4 (na polaritě nezáleží). Signál z telefonní linky je veden přes rezistor R1 a kondenzátor C1 na oddělovací linkový transformátor Tr1 s převodem 600/600. Kondenzátor C1 by měl být kvalitní typu MKT na napětí alespoň 250Vac. Zenerova dioda D1, připojená paralelně k sekundárnímu vinutí oddělovacího transformátoru Tr1 je určena pro odfiltrování proniknutého vyzváněcího napětí a dalších rušivých signálů, přesahujících její jmenovité napětí. Dioda by měla být určena pro ztrátový výkon alespoň 1W.

Operační zesilovač IO1 typu TL071 je zapojen ve funkci komparátoru, kdy detekuje průchod napětí plovoucí nulou. Výstupní signál je dále veden na pin RC1 mikrokontroléru PIC16F877 (IO1). Na pinu RC0 je dále k dispozici výstupní nízkofrekvenční signál vedený zpět do telefonní linky a určený pro předávání jednoduchých zpráv obsluze.

Výstupy DTMF dálkového ovládání jsou na pinech RB0 až RB3 a jsou určeny pro připojení například relé či jiných obvodů. Výstupní signál Hook ON, pocházející z pinu RC3 slouží jako indikace přítomnosti DTMF signálu a může být použit pro ladění, případně spojení s nadřazeným systémem.

Konstrukce:
Přesto že se primárně jedná o ukázku softwarové implementace DTMF dekodéru, pro zájemce je zde uveden i motiv desky s plošnými spoji, umožňující stavbu dálkového ovládání. V tom případě je však potřeba dodat, že pro správnou funkci je potřeba dále zajistit detekci vyzváněcího signálu a vyzvednutí linky.


Obr. 2: Rozmístění součástek - TOP
 
Obr. 3: Rozmístění součástek - BOTTOM

Obr. 4: Plošný spoj - TOP
(pro originál 600dpi klikněte)
 
Obr. 5: Plošný spoj - BOTTOM
(pro originál 600dpi klikněte)

Všechny součástky, použité v ukázkové verzi DTMF dekodéru, jsou uvedeny v následujícím přehledu.

Seznam součástek
R1               10k 1206
R2               1k 0805
R3,R4,R6         100k 0805
R5               10M 0805
C1               100n/250V MKT
C10,C4,C7,C8,C9  100n 0805
C2,C3            10u B
C5,C6            15p 0805
D1               5V1 1,3W
IO1              PIC16F877A-I/P
IO2              TL071
IO3              7805
X1               20MHz
Rep1             KPE112
Tr1              600/600

Software:
Volně dostupný software je možné rozdělit do několika částí – DTMF dekodér, budič výstupních pinů a tónový generátor.

DTMF dekodér využívá modifikovaný Goertzel algoritmus. Dobrým zdrojem informací o tomto algoritmu i jeho implementaci prostřednictvím DSP lze nalézt v dokumentu firmy Texas Instruments - Modified Goertzel Algorithm in DTMF Detection Using the TMS320C80.
Pro použití algoritmu s malým 8bitovým mikrokontrolérem však bylo nutné přejít na celočíselné hodnoty, což je ideální pro práci s bity. Dalším zdrojem informací o tomto problému byla autorovi webová stránka DTMF - Decoding with a 1-bit A/D converter, popisující dekódování DTMF s pomocí 1-bitového A/D převodníku od Scotta Datallo.

V programu je použit následující vzorec:

Kde Fsample představuje vzorkovací frekvenci, Fd je frekvence, která má být detekována a In(t) je zachycený vstupní signál. Pokud ve vzorci vyjde Detekovaná hodnota vyšší než 254/4 vstupního signálu, pak vstupní signál obsahuje detekovanou frekvenci Fd.

V následující tabulce jsou pro informaci uvedeny DTMF kódy a jejich frekvence:

Frekvence

1209

1336

1477

1633

697

1

2

3

A

770

4

5

6

B

852

7

8

9

C

941

*

0

#

D

Podrobnější popis funkce programu a další informace o problému nalezne zájemce na webové stránce autora - http://dtmf.voipintouch.net/content/dtmf.htm.

Závěr:
Článek představuje možnou softwarovou implementaci DTMF dekodéru na mikrokontrolérech řady PIC firmy Microchip. Ukázková konstrukce DTMF dálkového ovládání je samozřejmě plně funkční, pouze by pro praktické použití vyžadovala doplnění o zmíněnou detekci vyzvánění a funkci vyzvednutí linky. V případě potřeby je samozřejmě možné zaměnit vstupní obvod například za mikrofonní vstup a podobně.

Zdroj: DTMF Remote control – A software DTMF decoder for PIC 16F87X

Odkazy & Download:
Domovská stránka autora programu
DTMF Remote control – A software DTMF decoder for PIC 16F87X
Upravený a zkompilovaný program pro mikrokontrolér - DOWNLOAD

Modified Goertzel Algorithm in DTMF Detection Using the TMS320C80
DTMF - Decoding with a 1-bit A/D converter







GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk

Komentáře (1):

Zobrazit starší 30 dnů (1)...

host
1. Dne 03. 05. 2010 v 16:25 zaslal host
Bez titulku
Nevíte kde bych sehnal ten TMS320C80 ?


Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
PBTM s integrovanou anténou
Modul s BTM-112 od firmy Rayson usnadňuje jeho použití a doplňuje modul o anténu.
Skladem od 349 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007