úterý 21. prosince 2021

TinyHA: pobočková telefonní ústředna (PBX)

Dnešní část TinyHA souvisí s domácí automatizací jen velice volně. Sice má připravený interface pro RS485 spojení se zbytkem systému, ale zatím jsem propojení nerealizoval. Co si budeme namlouvat, jedná se prakticky o hračku pro děti.

Na dovolené se syn shlédl v hotelovém telefonu, kterým by se (pokud by fungoval) dalo volat babičce do vedlejšího pokoje. Protože telefony na klasickou analogovou telefonní síť jsou snadno sehnatelné za pár korun (na Aukru cca 100Kč vč. poštovného), napadlo mě realizovat malou domácí telefonní ústřednu. Samozřejmě by šlo použít hotové profi řešení, ale to by jednak byl kanón na vrabce, druhak byly klasické ústředny zpravidla velmi žravé na elektřinu.

Velkou inspiraci jsem čerpal ze staršího článku na mcu.cz. Zásadním zjednodušením mé pětiportové varianty je "paralelka", jednotlivé okruhy tedy nejsou spojované, ale po zvednutí sluchátka se rovnou všichni účastníci připojují do sdíleného hovoru. Základní propojení je primitivní, jedná se o zdroje proudu pro jednotlivé linky spojené střídavou vazbou pro přenos hovorového signálu. Trošku větším oříškem je detekce zvednutí sluchátka a zejména vyzvánění.

Vyzvánění je klasicky řešeno střídavým napětím až 110V o frekvenci cca 20Hz, superponovaným na linkové napětí cca 60V stejnosměrných. Rovnou jsem zavrhl klasické staré telefony, předpokládám využití moderních, s "digitálním" vyzváněním a tónovou volbou. Podpora pulzní volby by byla záležitostí softwaru, kterou jsem ale neimplementoval.

Moderní telefony bez problémů pracují s linkovým napětím 24V, používám proudové napájení cca 20mA. Pro vyzvánění je využito střídavého napětí cca 80V o frekvenci 50Hz, které je tvořeno pomocí transformátoru a dvojčinného měniče. Vše je řízeno mikrokontrolérem AVR.

Vyzvánění je poměrně problematická záležitost a po několika neúspěšných experimentech s optotriaky jsem se rozhodl jít klasickou cestou s využitím inkurantních miniaturních relé, které jsou přímo určeny pro použití v komunikacích. Zvolené řešení funguje výborně. Detekce vyvěšení sluchátka je realizována pomocí AD převodníků mikrokontroléru. V klidovém stavu je úloha jednoduchá, trochu složitější je to při vyzvánění - je nutné synchronizovat AD převod se správnou půlvlnou 50Hz vyzváněcího napětí. Analogově by to byl oříšek, pro mikrokontrolér jednoduchá práce.

Pro detekci tónové volby je použit DTMF dekodér MT8870, osazený na modulu od Hadexu, lze sehnat i z Číny. Zdrojový kód lze najít v projektu TinyHA na Githubu, hlavní část stavového automatu je v souboru main.c. Mikrokontrolér se rozhoduje dle stavu (vyvěšení) jednotlivých linek a DTMF dekodéru. Dle potřeby generuje vyzváněcí napětí a tóny do sluchátek.

V klidu čeká na zvednutí libovolného sluchátka, následně začne generovat oznamovací tón. Po prvním DTMF vstupu nebo zvednutí dalšího telefonu přechází do stavu hovoru. Reaguje na DTMF volby *1 až *5 pro jednotlivé linky, generuje vyzváněcí napětí pro příslušný telefon a vyzváněcí tón do společného hovorového kanálu. Po zvednutí telefonu, zavěšení volajícího nebo dalším DTMF vstupu volání zruší. Pokud už je volaná linka vyvěšena, generuje obsazovací tón.

Celé zařízení je napájeno z bezpečných stejnosměrných 24V, otestováno jej mám zatím se čtyřmi telefony. Všechny přístroje s tónovou volbou fungovaly bez problémů včetně detekce zavěšení. S výhodou využívám dosud neobsazené Ethernetové Cat5e kabeláže do různých místností. Na jaře se chystám jednu linku zavést i na rozhlednu :-)


  

Žádné komentáře: