Situace při příchozím volání se po zavedení funkce CLIP podobá tomu, co již známe z používání mobilních telefonů. Telefon zvoní, podíváte se na displej, kdo to asi volá, a pak se můžete rozhodnout, co uděláte. Telefony (nebo přídavné „krabičky“) jsou různě drahé (od 200 do 2500 Kč) a také rozdílně vybavené. Ty levnější zobrazují jen číslo, dražší číslo, jméno, datum a čas a ty nejlépe vybavené mají navíc telefonní seznam, kdy při příchozím číslu, které se nachází v seznamu, doplní na displej ještě jméno zapsané v seznamu (obdobně jako u mobilních telefonů). Poslední případ je ten nejvýhodnější pro připojení na státní linku, neboť od Telecomu je v CLIP přenášeno jen číslo a chcete-li vidět i jméno, tak nezbývá než jméno doplnit v seznamu telefonu. Při připojení na pobočkovou ústřednu se můžete setkat s případem, že ústředna je vybavena vnitřním telefonním seznamem a k číslu volajícího automaticky přidá i jméno ze seznamu, datum a čas (pokud je vybavena hodinami) a toto celé přenáší jako CLIP do telefonu („krabičky“). Velkou výhodou zavedením přenosu CLIP je, že v době vaší nepřítomnosti se v telefonu („krabičce“) zaznamenávají nepřijaté hovory a po vašem příchodu lze snadno zavolat zpět volajícímu vyzvednutím sluchátka a zmáčknutím tlačítka „Call back“, aniž by jste museli číslo vymačkávat na klávesnici telefonu.
Popis způsobů přenosu
Způsobů jak přenášet CLIP je skutečně několik (téměř každý stát má svou normu), hlavní rozdělení je podle druhu modulace, a to přenos informací DTMF (Dual Tone Multi Frequency) nebo FSK (Frequency Shift Keying).DTMF přenos CLIP je znázorněn na obr.1, po prvním zvonění se číslo volajícího přenáší standardní DTMF volbou 80,ms tón, 80,ms mezera. Nevýhoda tohoto (asi nejstaršího) způsobu je přenos pouze 4bitové informace a dlouhá doba přenosu (max. lze přenést 20 čtyřbitových informací – mezera mezi zvoněními jsou typicky 4 sec), a tak lze přenášet pouze číslo volajícího. Pozn.: První DTMF tón je vždy „D“ a poslední „C“ – tím je zabezpečen přenos, protože tyto tóny nelze z telefonu vytočit a hlavně se tím vytvoří definovaný rámec přenosu Start-Číslo-Konec.
Obr. 1 Přenos CLIP způsobem DTMF
FSK přenos CLIP má mnoho různých (národních) variant, a tak zde uvedu dvě nejčastěji používané metody. Zde popsané metody patří k systému přenosu do zavěšeného telefonu (On Hook). Co mají všechny FSK přenosy společné, je rychlost přenosu 1200 bit/sec, formát (1 start bit, 8 bitů informace a 1 stop bit) a kódování informací CLIP (viz tabulka 2). Přenos FSK je možný buď v normě BELL202, nebo častěji v normě V.23, hlavní parametry jsou v tabulce 1.
Norma
|
BELL202
|
V.23
|
Kmitočet „log 1“ |
1200 Hz ± 1%
|
1300 Hz ± 1,5%
|
Kmitočet „log 0“ |
2200 Hz ± 1%
|
2100 Hz ± 1,5%
|
Přenosová rychlost |
1200 bit/sec ± 1%
|
1200 bit/sec ± 1%
|
DT výzva – horní kmitočet |
2750 Hz ±1,1%
|
2750 Hz ±0,6%
|
DT výzva – dolní kmitočet |
2130 Hz ±1,1%
|
2130 Hz ±0,6%
|
První metoda, nazývaná „Bellcore“, je obdobou přenosu CLIP způsobem DTMF, ale místo série DTMF tónů se odvysílá FSK přenos – na obrázku 2. První zvonění před odvysíláním je nutné k aktivaci přijímacích obvodů CLIP a zpravidla jsou aktivní 5 sec po této aktivaci. Signál TRANSMIT bude vysvětlen dále, vztahuje se k řízení obvodu v již konkrétní aplikaci. Proměnný čas FSK přenosu dat je dán množstvím přenášených dat.
Obr. 2 Přenos CLIP metodou Bellcore
Druhá metoda, pocházející z Velké Británie, se nazývá BT (British Telecommunications) a je znázorněna na obrázku 3. U této metody se jako první podnět, že se bude vysílat CLIP, používá změna polarity linky. Po přepólování se odvysílá výstražný signál, ten se skládá ze dvou tónů - DT (Dual Tone), jejich kmitočty jsou uvedeny v tabulce 1. Na základě vyhodnocení tohoto signálu koncové zařízení (telefon) připojí k lince impedanční zakončení linky a tím zmenší chybovost následujícího přenosu FSK. Norma přenosu FSK je výhradně V.23, po skončení přenosu se musí impedanční zakončení v koncovém zařízení (telefonu) odpojit a pak teprve přichází první zvonění. Jak je vidět, tak tato metoda je poněkud složitější, ale číslo je na telefonu zobrazeno ještě před prvním zvoněním. To je výhoda proti první metodě, neboť pokud u metody Bellcore zvednete telefon hned s prvním zvoněním, tak o CLIP přijdete, ale u druhé metody CLIP máte v telefonu ještě než začne zvonit.
Obr. 3 Přenos CLIP metodou BT
Struktura FSK přenosu dat
Naštěstí obě shora popsané metody přenosu CLIP i jejich národní varianty používají stejný formát i parametry. Datová část přenosu FSK se skládá ze tří částí, na obrázku 4, kde první část je střídání „..10101010…“ po dobu cca 200 ms (zaváděcí signál). Toto je nutné pro zasynchronizování a přepnutí přijímače v telefonu („krabičce“) pro příjem ve správném módu a způsobu. Jak již bylo řečeno, způsobů přenosu CLIP je spousta, a tak se přijímače v telefonu snaží obsáhnout co nejširší spektrum způsobů přenosu CLIP, telefon je pak prodejný ve více zemích, a většinou je tento seznam států, kde je funkční, uveden na jeho obalu. Dále následuje vysílání trvalé „1“ po dobu cca 55 ms, to je vlastně dlouhý stop bit, který uvede všechny obvody přijímače do připravenosti k sériovému přenosu dat.Obr. 4 Formát dat FSK přenosu CLIP
Data se přenáší buď v jednoduchém formátu (přenos jednoho parametru např. čísla volajícího), nebo ve formátu vícenásobném (přenos několika parametrů najednou, např. číslo volajícího, datum a čas, jméno volajícího atd.). Přenos každého byte začíná start bitem (log.0), pak následuje 8 datových bitů (LSB-…-MSB) a nakonec stop bit (log.1). První byte je vždy typ zprávy (např. přenos v jednoduchém formátu), následuje délka celé zprávy, u vícenásobného přenosu následuje vždy typ parametru, jeho délka a data tohoto parametru, nakonec je kontrolní součet celého přenosu. Zabezpečení je při přenosu jednak délkou zprávy (počet přenášených byte), jednak délkou jednotlivých parametrů a nakonec kontrolním součtem. Jestliže něco při přenosu nesouhlasí, tak některé telefony zobrazí pouze „Error“, některé zobrazí, co přijaly, ale informaci doplní zprávou „Error“, takže je účastník vždy upozorněn na chybový přenos.
Parametry vysílání CLIP
Na obrázku 4 je znázorněn obsah dat vysílaných jako CLIP a pro vysvětlení bych uvedl příklad, z čeho se data skládají. Některé typy parametrů jsou v tabulce 2.Typ zprávy | Jednoduchý formát dat | 00000100 |
Vícenásobný formát dat | 10000000 | |
Typ parametru |
Druh volání | 00010001 |
Datum a čas | 00000001 | |
Číslo volajícího | 00000010 | |
Číslo volaného | 00000011 | |
Jméno / text | 00000111 | |
Stav systému rozesílání zpráv | 00010011 |
Kontrolní součet se skládá z jediného byte, který je dvojkovým doplňkem ze součtu všech byte celé zprávy (kontrolní součet nezahrnuje sám sebe). Např. jestliže sečtete všechny byte včetně kontrolního součtu, tak by měl být výsledek nulový. Jiný výsledek znamená chybu během přenosu. Z tohoto jednoduchého zabezpečení je vidět, že jednoduchý kontrolní součet nemůže objevit všechny pravděpodobné chyby.
Příklad zprávy:
Typ zprávy | 10000000 | Vícenásobný přenos |
Délka zprávy | 00010101 | 21 byte |
Parametr | 00000001 | Datum a čas |
Délka parametru |
00001000 | 8 byte |
00110000 | "0" | |
00110011 | "3" | |
00110001 | "1" | |
00110101 | "5" | |
00110001 | "1" | |
00110000 | "0" | |
00110011 | "3" | |
00110000 | "0" 15.3. 10:30 | |
Parametr | 00000010 | Číslo volajícího |
Délka parametru |
00001001 | 9 byte |
00110000 | "0" | |
00110011 | "3" | |
00110101 | "5" | |
00110001 | "1" | |
00101101 | "-" | |
00110011 | "3" | |
00110010 | "2" | |
00110001 | "1" | |
00110000 | "0" 0351-3210 | |
Kontrolní součet | 00001110 |
Realizace vysílače
Přijímač CLIP realizovat v amatérských podmínkách je zajímavá konstrukce, ale vzhledem k ceně displeje a ostatních obvodů se nikdy nemůžete dostat pod cenu externích „krabiček“, které stojí od 200 Kč. Proto jsem se soustředil na realizaci vysílače. Jednou možností je koupit „modemový“ obvod, který umí vysílat v normě BELL202 nebo V.23, připojit k mikrokontroléru a může se vysílat. Zvolil jsem možnost generování CLIP v mikrokontroléru PIC už proto, že cena „modemových“ obvodů se pohybuje přes 300 Kč. Nejjednodušší variantou je přenos pouze čísla volajícího, a to mikrokontrolérem PIC12C508A (cca 30 Kč). Omezení na přenos pouze 15 číslic je dán velikostí RAM v tomto mikrokontroléru (25 byte), pokud se jedná o přenos plnohodnotného CLIP (20 číslic, datum, čas a jméno do 20 znaků), tak je nutno použít jiný mikrokontrolér, např. 16F628A, který je navíc vybaven modulem PWM (tato konstrukce bude popsána dále).Konstrukce 1.
Postup vysílání CLIP je u tohoto realizovaného typu následující: sériovou linkou 9600bit/sec se postupně plní vnitřní paměť PIC (na obrázku 5) a to tak, že každý správně zapsaný byte je potvrzen (signál ACK – možno využít pro opakování, protože každá „číslice“ telefonního čísla sebou nese adresu – pořadí čísla). PIC je připraven, přijal-li alespoň jednu číslici, a přechodem řídícího signálu TRANSMIT do „1“ se zahájí vysílací sekvence FSK CLIP - na obrázku 6. Některé telefony („krabičky“) dokáží v parametru „číslo“ zobrazovat kromě číslic i znaky *, #, - a tak je v obrázku 5 převodní tabulka, jak kódovat tyto znaky. Pokud telefon nepodporuje toto zobrazení, tak jednoduše tyto znaky vynechá (nezobrazuje) a nehlásí chybu.Obr. 5 Sériová linka pro řízení PIC12C508A
Obr. 6 Řízení obvodu PIC12C508A pro vysílání CLIP
Protože formát vysílání FSK je stejný pro obě metody, tak je možné tento mikrokontrolér PIC12C508 využít pro generování CLIP metodou „Bellcore“ i metodou „BT“. Přepnutí se děje posláním dat do PIC, a to na neexistující adresu pošlete neexistující znak neboli na adresu „F“ pošlete číslo „F“, tj. FF, hex. obvod pak vysílá (na obrázku 3) nejprve výstražný signál (dvoutón) a po 50 ms FSK přenos CLIP.
Zapojení obvodu PIC je na obrázku 7. Výstupní signál je nutno filtrovat dolní propustí, neboť FSK signál je generován PWM modulací a nosný kmitočet (8,5 KHz) je potřeba potlačit. Lepší zapojení filtru pro potlačení je na obrázku 8. Princip generování PWM je např. uveden v příloze Electus2003 – „Generátor DTMF volby PWM“.
Obr. 7 Zapojení vysílače CLIP
Obr. 8 Zapojení filtru výstupního signálu
Výstupní linkové obvody zařízení, které má CLIP vysílat, musí splňovat dvě podmínky. Jednak musí zaručit v klidu napájení linky a musí zaručit nezkreslenou úroveň signálu FSK od -2 do – 10 dBm (600W).
Závěr
Funkci vysílače FSK s PIC lze snadno vyzkoušet pomocí počítače se sériovou linkou. Jednoduchým převodníkem s obvodem MAX232 (nebo ekvivalent) přivedete Tx z PC na vývod DATA, přenosová rychlost 9600b/s, 8 bit, bez parity, 2 stop bity. Jako ovládací program „Hyperterminál“ nebo ovládací program sériové linky, např. na www.volny.cz/romjel , data, která se do PIC posílají, si musíte předem spočítat, např. číslo 543 se musí převést na ASCII kódy (dekadické – přes levý Alt) „05“,“20“ a „35“. Posláním dat do PIC je vše připraveno k vysílání – změnou úrovně na vstupu TRANSMIT do log. 1 (např. tlačítkem) dojde k odvysílání nahrané sekvence FSK. Naprogramovaný PIC objednáte, případně na další dotazy odpovím na adrese romjel@ volny.cz .Konstrukce 2.
Tato konstrukce zahrnuje v jednom obvodu několik funkcí, které lze s výhodou využít např. u pobočkové ústředny nebo v testeru pracujícím se simulací analogové linky. Obvod v této konstrukci obsahuje vysílač CLIP FSK v obou normách, vysílač CLIP DTMF, vysílač tarifních impulzů 12 i 16 kHz a měření 4 napětí. Obvod komunikuje standardním rozhraním RS232, a tak ho lze připojit k PC přes převodník úrovní (MAX232) nebo k řídícímu mikrokontroléru v aplikaci. Schéma zapojení při využití všech funkcí je na obr. 9.Schéma obsahuje potřebné součástky pro využití všech funkcí, které obvod má. Při realizaci lze vynechat LED indikaci, programování v obvodu (pokud není SMD), dále lze vynechat děliče pro měření napětí. Nezapojené vstupy (vývod 17,18,1,2) doporučuji uzemnit, vývod 4 připojit na VCC (3V-5,5V), výstupy 10,11,12,13 a 3 nechat nepřipojené. Vývod 3 je otevřený kolektor. Rezistor R11 je nutný pouze při programování mikrokontroléru v obvodu (SMD).
Obvod pracuje s kmitočtem oscilátoru 3.579545 MHz, tento signál lze přivést na vývod 16 (jak je naznačeno na schématu) nebo zapojit mezi vývody 15 a 16 krystal 3.57 MHz a dva kondenzátory 33p na zem.
Indikace činnosti obvodu
Připojením LED D2 a D3 lze opticky kontrolovat činnost obvodu (např. při vývoji nebo testování zařízení). Tato signalizace je popsána v následující tabulce:Tab. 3 Optická signalizace činnosti obvodu
- Pozn1. Červená LED svítí po dobu komunikace, zelená LED svítí po dobu vysílání.
- Pozn2. Přepis default nastane při zapnutí v případě, že paměť EEPROM neobsahuje vyhovující parametry
Komunikace po sériovém portu
Základní parametry sériové komunikace jsou uvedeny v tabulce.Rychlost |
19200 Bd
|
Bitů |
8
|
Parita |
Ne
|
Stopbit |
1
|
Pozn. Komunikační rychlost lze nastavit libovolně do 115200 Bd.
Komunikace se skládá z prvního (řídícího) byte a případných parametrů, skončení zadávání parametrů je rozlišeno časově (timeout sériového portu). Možnosti jsou shrnuty v následujících bodech:
- První byte rozhodne o stavu a činnosti obvodu - stavový, další byte jsou případné parametry a data.
- Celý příjem je zarámován časovým omezením (timeoutem). Pokud se příkaz skládá z více než jednoho byte, tak po každém přijatém byte se nastaví timeout, po dobu kterého je příjem brán jako parametr. Pokud další byte přijde po timeoutu, tak se považuje za 1. (stavový) byte.
- Není nutné, ale lze využít i vysílání dat z obvodu, obvod posílá informaci o resetu (po zapnutí, případně zabere-li watchdog), chybové hlášky při chybách v příjmu a nakonec posílá 4 byte změřených napětí na 4 vstupech.
Komunikace slouží k zadání parametru do obvodu, pokud nastane chyba, tak obvod parametr nepřijme a posílá chybové hlášení. Vlastní provedení příkazu (jedná-li se o vysílání) se stane změnou logické úrovně signálu TRANSMIT.
Obr. 10 Příklad zadávání parametrů do obvodu
- Signál TRANSMIT slouží k započetí vysílání CLIPu nebo tarifního impulzu. Tento signál neaktivuje vysílání ve třech případech
- po dobu příjmu a průběhu timeoutu na sériové lince (na obrázku příkaz 1 a povel k vysílání A);
- po dobu vysílání;
- a není-li co odvysílat.
- Příjem Rx je stále aktivní, ale v průběhu vysílání přijme pouze příkaz do 2 byte, jednotlivé případy, které mohou nastat:
- Pokud je příkaz 2 delší než 2 byte, tak po skončení vysílání posílá obvod chybové hlášení „E“ (Error) a nic neprovede (na obrázku je tento příjem označen 2 a vysílání x a y – čárkovaně se neprovedou).
- Pokud je příkaz 2 2 byte, např. změna jedné konstanty, nebo defaultní nastavení, tak se příkaz provede ihned po skončení vysílání 1 . V tomto případě se vysílání x a y také neprovede (není co vysílat).
- Pokud je příkaz 2, např. vysílání tarifních impulzů 16KHz, tak po skončení vysílání 1 se obvod nastaví na vysílání tarifních impulzů a na povel C a D se vysílají tarifní impulzy x a y .
Ovládání obvodu – příkazy
V následující tabulce jsou uvedeny příkazy pro řízení obvodu. ASCII znaky a číslice znamenají přiřazení znaku hodnoty Hex z ASCII tabulky 256 znaků (H ’FF’), znaky s diakritikou nelze použít, protože je telefony (“krabičky”) neumí zobrazit, takže jako parametry lze využít číslice, malá a velká písmena bez háčků a čárek. V další tabulce je přehled dat vysílaných obvodem. Pro měření napětí jsou možné dva režimy – po dobu 200 ms hledá buď maximální hodnotu, nebo počítá střední hodnotu, toto má význam při měření střídavých nebo zvlněných napětí.Pozn. Datum se posílá ve formátu a pořadí mmddhhnn , kde mm je měsíc, dd je den, hh je hodina (00-23), nn je minuta.
Parametry FSK (jméno, datum a čas) lze poslat najednou bez čekání na timeout, stejně tak lze nastavit libovolný počet časových konstant najednou a nečekat na timeout.
Pozn. Při měření napětí je rozsah (Ui je napětí na vstupu mikrokontroléru):
H"07" = 0-25%Vdd (Ui<=1.25V)
H‘16‘ = 71.875-100%Vdd (Ui>=3.6V)
H‘07‘-H‘16‘ je měřená hodnota po 3.125%Vdd (Ui po 0.1567V).
Závěr
Tento obvod je složitější a lze ho snadno přizpůsobit (nastavením konstant v EEPROM) aplikaci. Komunikační rychlost nelze měnit změnou konstanty z důvodu bezpečnosti a nastavit ji lze pouze při programování obvodu. Funkci obvodu lze snadno vyzkoušet pomocí počítače se sériovou linkou. Jednoduchým převodníkem s obvodem MAX232 (nebo ekvivalent) přivedete Tx z PC na vývod Rx, Rx z PC na vývod Tx, přenosová rychlost 19200b/s, 8 bit, bez parity, 1 stop bit. Jako ovládací program „Hyperterminál“ nebo ovládací program sériové linky, např. na www.volny.cz/romjel . Posláním dat do PIC je vše připraveno k vysílání – změnou úrovně na vstupu TRANSMIT do log. 1 (např. tlačítkem) dojde k odvysílání nahrané sekvence. Naprogramovaný PIC objednáte, případně na další dotazy odpovím na adrese romjel@ volny.cz .romjel@ volny.cz
DOWNLOAD & Odkazy
- Domovská stránka autora - www.volny.cz/romjel