Digitální režimy komunikace v rádioamatérské praxi Karel Konětopský, OK2SCS
ii Tento text je určen pro interní potřebu rádioklubu OK2KOJ coby doprovodný text ke kurzu přípravy na zkoušky operátorů rádiových vysílacích stanic amatérské služby, přesněji řečeno té části kurzu, která se zabývá digitálními režimy komunikace. Dokument je veřejně vydán pod licendí FDL.
Obsah I
Úvod do problematiky
1 Modulace 1.1 FSK a AFSK . 1.2 MFSK . . . . . 1.3 PSK . . . . . . 1.4 Manchester . . 1.5 Další modulace
II
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
1 . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
Non AX.25 režimy
2 RTTY 2.1 Popis . . . . . . . . 2.2 Vybavení . . . . . . 2.3 Provoz . . . . . . . 2.4 Provoz v závodech
. . . .
7 . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
9 . 9 . 9 . 9 . 11
3 ASCII 4 PSK 31 4.1 Provozní zvyklosti . 4.2 Ladění . . . . . . . 4.3 Výkon . . . . . . . 4.4 Závěrem k PSK31 .
3 3 4 4 4 4
13
. . . .
5 Amtor 5.1 Historie . . . . . . . 5.2 Podstata ARQ . . . 5.3 Podstata FEC . . . . 5.4 Provoz . . . . . . . . 5.5 Několik slov závěrem
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
. . . .
. . . . .
6 Pactor 6.1 Pactor-I . . . . . . . . . . . . . . . 6.2 Pactor-II a Robust Pactor . . . . . 6.3 Pactor-III . . . . . . . . . . . . . . 6.4 Pactor prakticky . . . . . . . . . . 6.4.1 Spojení operátor - operátor 6.4.2 Spojení s mailboxy . . . . . iii
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
. . . . .
. . . . . .
. . . .
15 15 15 16 16
. . . . .
17 17 17 18 18 19
. . . . . .
21 21 22 22 22 22 23
iv
OBSAH
7 Další ARQ režimy 7.1 G-Tor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Clover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 PSK ARQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25 25 25 25
III
27
AX.25
8 AX.25 level 2 8.1 Struktura . . . . . . . . 8.2 Konstrukce packetu . . . 8.3 Konstrukce I–rámce . . . 8.4 Časovače . . . . . . . . . 8.5 Příklad spojení v AX.25 8.6 Stavy linky . . . . . . . 8.7 Události linky . . . . . . 8.8 AX.25lite . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
29 29 32 32 32 33 38 39 39
9 AX.25 - Hardware 9.1 Modemová část . . . . . . . . . . . . . . . . . . . . . 9.2 NRZ/NRZI konvertor, regenerátor přijímacího taktu 9.3 Obvod DCD . . . . . . . . . . . . . . . . . . . . . . . 9.4 Řídící logika . . . . . . . . . . . . . . . . . . . . . . . 9.5 Obvody styku s počítačem . . . . . . . . . . . . . . . 9.6 Metody přístupu k přenosovému médiu . . . . . . . . 9.6.1 Metoda přístupu CSMA . . . . . . . . . . . . 9.6.2 Metoda přístupu DAMA . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
41 41 42 43 43 43 44 44 44
10 Konkrétní hardwarová řešení 10.1 Protokol styku s počítačem . . . . . . . . . 10.1.1 Řadiče generující protokol AX.25 . 10.1.2 Řadiče negenerující protokol AX.25 10.2 Hardware . . . . . . . . . . . . . . . . . . 10.2.1 Standard TNC2 . . . . . . . . . . . 10.2.2 TNC 51 . . . . . . . . . . . . . . . 10.2.3 GC12AX . . . . . . . . . . . . . . . 10.2.4 TNC5 a TNC5+ . . . . . . . . . . 10.3 Jednoduché modemy . . . . . . . . . . . . 10.3.1 Baycom . . . . . . . . . . . . . . . 10.3.2 YAM . . . . . . . . . . . . . . . . . 10.3.3 Používané modulace . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
45 45 45 46 48 48 48 48 48 49 49 49 49
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
Část I Úvod do problematiky
1
Kapitola 1 Modulace 1.1
FSK a AFSK
FSK 1 a AFSK 2 lze prohlásit za stejné, protože obě modulace jsou založeny na klíčování značky či mezery pomocí dvou rozdílných kmitočtů. Rozdíl klíčovacích kmitočtů je označován jako zdvih neboli shift. Rozdíl mezi FSK a AFSK spočívá pouze v kmitočtech, které se používají. U AFSK se musí jednat o kmitočty ze „slyšitelného” spektra. AFSK signály se obvykle modulují buď FM modulátorem, nebo SSB modulátorem. AFSK signál je po průchodu SSB modulátorem ekvivalentní FSK signálu vytvořenému přímo na žádaných kmitočtech. Demodulaci lze provádět několika způsoby: metoda filtrační – vstupní signál se vede na vstup dvou filtrů pro jednotlivé kmitočty. Po průchodu filtry se porovnává amplituda výstupních signálů a rozhodování vychází ve prospěch značky nebo mezery, podle poměru amplitud signálů po průchodu filtry. Tato metoda je citlivá na rozdíl zpoždění obou filtrů, problematická může být přeladitelnost. Obecně vzato je tato metoda velmi odolná vůči impulznímu rušení. demodulace fázovým závěsem – na vstupní signál se fázově zavěsí napětím řízený oscilátor a demodulovaný signál se odvozuje komparátorem a tvarovačem z řídícího napětí oscilátoru. Tato metoda se často používá při demodulování AFSK signálů přenášených přes FM. Tato metoda není příliš odolná vůči impulznímu rušení, ale je odolná vůči brumům a nelinearitě FM modulátorů a demodulátorů. V podstatě se používá pouze v AX.25 1200 Bd v modemech založených na obvodu XR2211. Po doplnění vhodnými filtry lze s touto metodou dosáhnout lepších výsledků než s filtrační metodou i při demodulaci FSK signálů. demodulace na hraně filtru – tuto metodu jsem viděl pouze v modemech založených na obvodu TCM3105. Signál se vede do limiteru, čímž se ujednotí jeho amplituda. Dále se vede signál do filtru a následně se zkoumá jeho amplituda. Záleží, zda se jedná o dolní propust (obvykle) nebo horní propust, podle toho vyššímu kmitočtu odpovídá nižší amplituda nebo vyšší amplituda. Problém této metody opět spočívá, podobně jako u demodulace fázovým závěsem, v limiteru3 . 1
Frequency Shift Keying Audio Frequency Shift Keying 3 vytváří vyšší harmonické 2
3
4
KAPITOLA 1. MODULACE
1.2
MFSK
neboli Multi-level Frequency Shift Keying je obdoba FSK, ale používá se několik tónů, čili lze přenášet několik bitů současně. Zvláštní kapitolou je mt63, kde se používá 64 různých kmitočtů a do přenosu se vnáší velká redundance, čímž se omezuje možnost vzniku chyb přenosu výskytem úzkopásmového rušivého signálu, i to je jedna z možností aplikace MFSK.
1.3
PSK
PSK 4 Informace se koduje změnou fáze vysílaného signálu. Opět vzniká možnost použít dvou stavů (fáze navzájem otočené o π) – hovoříme o BPSK, nebo použít několik různých stavů. Modulátory i demodulátory jsou obvykle řešeny pomocí DSP. Modulátor je poměrně jednoduchý a není na něm co vymýšlet. Demodulovat fázově modulovaný signál lze několika způsoby. pomocným signálem – Vstupní signál se sčítá s lokálním demodulačním signálem, pokud je stejné fáze, složí se do maxima, jinak do minima. Problémem této metody je získání demodulačního signálu. zpožďovací linkou – data jsou před modulací upravena tak, aby stačilo rozlišovat změny signálu, nikoliv přímo značku či mezeru. Vstupní signál se zpozdí o dobu přenosu jednoho bitu a přičte se k nezpožděnému signálu. V případě použití BPS, dojde k složení buď do maxima (pokud se fáze nezměnila), nebo do minima (pokud se fáze změnila). Tento způsob se často používá u PSK 31, jeho použití na BPSK signály je jednoduché, pokud se použije více stavů (například čtyři - hovoříme o QPSK ), užití této metody se poněkud komplikuje – je třeba použít několik zpožďovacích linek.
1.4
Manchester
Toto je poněkud podivný postup. V podstatě jde o to, že se jednička kóduje jako sestupná hrana a nula jako vzestupná hrana. Jedná se o synchronní režim - hrana musí přijít v rozhodný moment, hrany, které přicházejí jindy jsou nepodstatné. Nejjednodužší případ Manchester modulátoru je XOR prováděný na hodinovém signálu a datech. V principu se tedy jedná o variantu fázové modulace. Demodulace se provádí pomocí pomocného signálu, který se získává fázovým zavěšením lokálního oscilátoru na hrany přijímaného signálu. Je zřejmé, že v rozhodném okamžiku se musí vyskytnout hrana, přičemž se může vyskytnout i mimo rozhodné okamžiky. Modem je obvykle řešen na programovatelném logickém poli, nebo prostřednictvím logických obvodů. Tato modulace se používá v AX.25, přičemž nejčastějším použitím této modulace je Ethernet, kde se ovšem používá metalických nebo optických spojů.
1.5
Další modulace
Mezi digitální modulace patří ještě několik desítek dalších, některé se v rámci amatérské služby používají, jiné nikoliv. Jejich výklad však vybíhá z rámce tohoto kurzu. Jen 4
Phase Shift Keying
1.5. DALŠÍ MODULACE
5
namátkou uvedu MSK – minimum shift keying GMSK – Gaussian Minimum Shift Keying - v rádioamatérské praxi často užívaná varianta G3RUH QAM – Quadrature Amplitude Modulation
6
KAPITOLA 1. MODULACE
Část II Non AX.25 režimy
7
Kapitola 2 RTTY 2.1
Popis
RTTY, neboli Radio TeleType, je patrně jeden z nejstarších digitálních provozů vůbec. Jeho kořeny sahají hluboko do minulosti do doby mechanických dálnopisů. Přenos dat se provádí asynchrnonně s rychlostí 45 Bd a používá se FSK modulace se zdvihem 170 Hz. Přenos není nikterak zabezpečen proti chybám. Používá se dálnopisné abecedy CCITT Nr.2, která kóduje znaky pomocí pětibitových slov, přičemž definuje dva přeřazovače „písmena” a „čísla”. Každé pětibitové slovo má definováno dva znaky a na předřazeném přeřazovači závisí, který z dvou možných znaků bude použit.
2.2
Vybavení
V současné době se nejčastěji používá zvukové karty počítače coby modemu, přičemž toto řešení nemá (krom pořizovací ceny) žádné další výhody. Jedná se o nejjednodužší a nejrychlejší možnost vstupu do světa digitálních rádioamatérských provozů, ale vážnější zájemce patrně bude hledat nějaké kvalitnější zařízení.1 V prvopočátcích se používaly běžné dálnopisy upravené na rychlost 45 Bd a modemy, které na přijímací straně používaly demodulátory založené na filtrační metodě řazené za SSB přijímač. Vysílací strana používala buď SSB vysilač a AFSK modulátor, nebo přímo FSK vysilač. S rozvojem výpočetní techniky se tento koncept začal pozvolna měnit. Obrovské mechanické dálnopisy byly nahrazeny elektronickými přístroji na bázi výpočetní techniky, které byly následně nahrazeny výpočetní technikou, jejíž software umožňoval příjem různých digitálních režimů pracujících s FSK. Jedním z nejznámějších zařízení z této kategorie je PK-232 2 či KAM+. Dalším stupněm vývoje bylo nahrazení analogového modemu pomocí DSP 3 . Posledním „stupněm vývoje” je užití počítače a zvukové karty.
2.3
Provoz
Provoz v RTTY měl dříve striktní pravidla ale s rozvojem „zvukovkových režimů” tato kultůra provozu prudce upadla, což nelze pozorovat např. na amtoru, či jiných ARQ režimech, protože jejich provoz se zvukovou kartou většinou není možný. Úpadek provozní 1
zvuková karta počítače není modem, nectnosti tohoto řešení budou diskutovány později možno vidět 3 nakolik je taková úprava pozitivní nelze s jistotou určit 2
9
10
KAPITOLA 2. RTTY
kázně je cenou za příliv operátorů bez zkušeností s digitálními provozy. Pro ladění RTTY signálů se vžila sekvence RYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRY Výzva se v RTTY dává podobně jako v CW. CQ CQ CQ DE EI6HB EI6HB EI6HB CQ K Pro přehlednost je dobré dělat krátké řádky a dávat často EOLN, jehož význam je podobný, jako význam = v CW. Odpověď na výzvu by měla být pokud možno krátká, ale dostatečně dlouhá na to, aby se přijímající strana mohla případně doladit. Není totiž jisté, zda stanice poslouchá na stejném kmitočtu, jako vysílá, totéž platí i o vaší stanici. Odpověď by mohla vypadat třeba takto: ei6hb de ok2scs/p ok2scs/p kkk Značku protistanice můžeme opakovat. V dnešní době můžeme vypustit sekvenci RY. Nyni následuje důležitá poznámka k ladění TRXu.4 Jakmile odpovíte stanici již nikdy v průběhu spojení nesmíte změnit kmitočet na kterém vysíláte. Pokud stanice začne vysílat jinde, rozlaďte přijímač od vysilače.5 Pokud se totiž stane, že stanice má rozjetý vysilač od přijímače, budete ukázkově cestovat po pásmu. Pokud vám příliš mnoho stanic odpoví na jiném kmitočtu, než tam, kde volaly výzvu, prověřte, zda posloucháte a vysíláte na stejném kmitočtu. Pokud sami voláte výzvu platí totéž, pokud vám odpoví stanice na jiném kmitočtu, rozlaďujte opět jen přijímač. Spousta stanic to bohužel nedělá... Další relace by měla vypadat nějak takto: OK2SCS/P GA AND THANKS FOR UR CALL UR REPORT IS 599 599 599 MY NAME IS DENIS DENIS QTH IS CORK, CORK LOC. IS IO51XV BTU OK2SCS/P DE EI6HB EI6HB BK Odpověď bude vypadat v podstatě velmi podobně: ei6hb de ok2scs/p Good afternoon dr Denis 4 5
dtto platí pro všechny ostatní provozy včetně SSB a CW stalo se mi to jen několikrát v životě
2.4. PROVOZ V ZÁVODECH
11
ur rst 599 599 here in Letovice Letovice JN89GM JN89GM My name is Karel Karel hw? btu ei6hb de ok2scs/p kn Následující relace již nemají nikterak ustálený průběh, předávají se další informace, obvykle výkon, informace o anténě, transceiveru modemu, či počítači, softwaru, počasí. Možností je spousta, dosti často se předávají informace o výměně QSL-lístků. Závěr spojení by mohl vypadat nějak takto:
QSL TU FOR FB QSO OK2SCS/P HOPE TO SEE YOU ON MY SCREEN AGN 73 OK2SCS/P DE EI6HB BK qsl ei6hb de ok2scs/p mni tnx fer nice rtty qso hope to cuagn 73 to you es yours, gl es mni dx ei6hb de ok2scs/p sk sk Nyni může následovat ještě krátký pozdrav, ale zásadou je, že po SK by již nemělo nic následovat. Pokud vám však stanice pošle krátký pozdrav a nedává hned další výzvu, je slušností jí ještě odpovědět. Značku v tomto případě dávejte až na konec a jen vlastní. V našem případě však stanice znovu volá výzvu, tudíž tím spojení končí.
QSL OK2SCS/P 73 QRZ DE EI6HB
2.4
Provoz v závodech
Zde platí jedno zásadní pravidlo. Poslouchej, co dávají jiné stanice a dělej to stejně. V praxi musíte vědět, co se všechno předává. Může to být pořadové číslo spojení, ale častěji to bývá ITU nebo WAZ zona, může to být v podstatě dost cokoliv. V praxi to bude vypadat nějak takto:
12
KAPITOLA 2. RTTY
CQ CIS TEST DE CU2AF CU2AF CU2AF PSE K CQ CIS TEST DE CU2AF CU2AF CU2AF PSE K CU2AF dává výzvu do závodu. DE VE2FBD VE2FBD KK Odpovídá Fabi VE2FBD. ...VE2FBD
UR RST
IS 599
599 - 108
DE CU2AF,
KN
CU2AF předává kod v závodě. CU2AF 599 001 001 KN Fabi odpovídá a předává kód. ....VE2FBD,
QSL TNX 73 GL
CU2AF
...CQ CIS TEST DE CU2AF CU2AF CU2AF PSE K Závěrečná relace a další výzva do závodu. Takto tedy může vypadat závodní provoz v RTTY. Závěrem zbývá vysvětlit soutěžní kod. Předávat se může skutečně cokoliv, v tomto případě by to mohl být report a číslo spojení. Pokud budeme poslouchat dále, uslyšíme: ...CQ CIS TEST DE CU2AF CU2AF CU2AF PSE K DE K0XB K0XB K ...K0XB
UR RST
IS 599
599 - 109
DE CU2AF,
KN
CU2AF DE K0XB QSL 599-064-064 QSL? ....K0XB,
QSL TNX 73 GL
CU2AF
Nyni máme potvrzenou domněnku o čísle spojení, neb se předávané číslo za reportem v dalším spojení o jedničku zvětšilo. Z výše uvedeného lze též předpokládat, že Fabi pouze rozdával body. Zároveň tu máme poněkud jiný příklad RTTY spojení v závodě.
Kapitola 3 ASCII Tento provoz není v Evropě příliš používaný. Jeho základ je stejný jako v případě RTTY, používá se opět FSK, ale na rozdíl od RTTY se nepoužívá dálnopisná abeceda, ale používá se norma ASCII. Data se kódují sedmibitově s jedním stopbitem rychlostí obvykle 110Bd. FSK zdvih je opět 170 Hz. Provozní zvyklosti jsou stejné jako u RTTY. V praxi tento režim přílišného rozšíření nedosáhl.
13
14
KAPITOLA 3. ASCII
Kapitola 4 PSK 31 Tento režim se od předchozích liší převážně tím, že se zde nepoužívá modulace FSK, ale PSK. Používá se buď klíčování pomocí dvou fází signálu, potom hovoříme o BPSK, pokud definujeme čtyři fáze signálu hovoříme o QPSK 1 a pak se přenáší dva bity v jednom symbolu. Data se kódují pomocí varicode, což zároveň provádí Huffmanovu kompresi. Podstatou Huffmanovy komprese je fakt, že některá písmena se v textu vyskytují častěji a jiná méně často. Písmenům s nečastějším výskytem se přiřadí nejkratší kod2 a opačně, díky čemuž lze dosáhnout slušné rychlosti přenosu při nízké bitové rychlosti 31 Bd 3 .
4.1
Provozní zvyklosti
Provozní zvyklosti vychází z RTTY, ale možnosti jsou zde rozšířený o velká a malá písmena a jiné znaky. Je vhodné psát jména s velkým písmenem na začátku, značky se píší velkými písmeny, přičemž vše, co se za značku přidává, tj. například /p, se píše písmeny malými. Též je dobrým zvykem psát poslední dvě písmena lokátoru malými písmeny, tedy například JN89hf.
4.2
Ladění
Signály PSK31 jsou velmi úzké a z toho plynou jisté záludnosti. Jednak potřebujete transceiver s dobrou stabilitou, pro práci v pásmu 10m lepší jak +- 1ppm a krátkodobou stabilitou lepší jak 0.2 ppm. Odchylka 2 Hz již znamená, že se signál nebude korektně dekodovat, odchylka 5Hz znamená, že se AFC není schopno zachytit na daný signál. Nepříjemné je i to, že patrně budete potřebovat TRX, který je možno ladit po 1 Hz. V praxi se ukázalo, že při použití AFC lze ještě použít TRX s laděním po 10Hz, což splňuje většina TRXu. V zásadě existují dvě možnosti, jak se naladit na PSK31 signál. Buď naladíme TRX tak nějak zhruba a vlastní ladění provádíme již v softwaru pomocí změny audiokmitočtu, na kterém pracuje PSK31 dekoder, nebo přímo ladíme TRX. Pokud přímo ladíme TRX a nemáme krok po 1 Hz, je třeba zapnout AFC. Naladíme se zhruba (+-5Hz) a AFC dotáhne audiokmitočet. Tento postup se v praxi ukázal jako velmi efektivní a přinášející 1
což sice není PSK31, ale oba režimy se dnes považují za PSK31 bráno z pohledu bitové délky 3 odtud název provozu 2
15
16
KAPITOLA 4. PSK 31
dobré výsledky. Nedoporučuji používat modulační audiokmitočty pod 1.8 kHz, za optimální považuji kmitočty kolem 2 kHz, ale jinak platí, že čím vyšší, tím lepší, leč musí to projít filtrem4 . Důvod je následující. Pokud budete modulovat například na 400 Hz a někde vám v modulační cestě vznikne vyšší harmonická, tak budete vysílat ještě na 800 Hz, 1200 Hz, 1600 Hz atd. jinými slovy zamoříte pásmo zbytečnými signály a navíc budete vyzařovat výkon, který nepotřebujete. Pokud se vám totéž stane při modulačním kmitočtu 2 kHz, tak vyšší harmonická bude někde na 4 kHz a to již filtry projde náležitě utlumené, další harmonické nemají šanci cokoliv ovlivnit. Totéž v podstatě platí i pro RTTY, ale předpokládám, že tam budete používat AFSK kmitočty 2110 Hz a 2310 Hz (zdvih 200 Hz, nebo upravené pro zdvih 170 Hz), neboli tzv. „americkou normu”.5 Navíc jsou moderní TRXy připraveny pro provoz s užitím takových AFSK tónů.
4.3
Výkon
Toto bývá další „kámen úrazu” a dosti často i příčina velkých finančních výdajů. PSK31 je (stejně jako RTTY ) režim s plným využitím cyklu. Obecně se tvrdí, že pokud je koncový stupeň navržen pro výkon 100 W, pak z něj v RTTY lze vzít bez nebezpečení zničení výkonového prvku přehřátím cca 50 W. Osobně bych se přikláněl k výkonům menším. PSK31 je však ještě užší, než RTTY. Výrobci TRXů obvykle uvádí stejná čísla pro RTTY i PSK31, ale v praxi se ukazuje, že pokud máte koncový stupeň 100 W na SSB, pak na PSK31 můžete použít výkon nanejvýš 25 W, pokud nechcete riskovat zdraví koncového stupně. Osobně bych nikdy u PSK31 nezvedal výkon nad 20 W a to bez ohledu na koncový stupeň6 . Důvod je jednoduchý - indukce do propojovacích kabelů počítače. Pokud máte PSV horší než 1.8, pak bych výkon ještě snížil. Pokud vám začnou zamrzat periferie počítače, je to neklamný příznak toho, že váš výkon je větší, než by měl být. Pro spojení po Evropě na 20m dopoledne bohatě stačí 5 W.
4.4
Závěrem k PSK31
Ač tím popřu skoro všechno, co bylo o PSK31 napsáno, tak prohlásím, že PSK31 není vhodné pro začátečníky. Důvody jsem víceméně zmínil v předchozích statích. Největším problémem je obtížné ladění a možné zničení koncového stupně vysilače. Pokud navíc zájemce nemá zažitou elementární provozní praxi, může toho na něj být v rozhodné chvíli příliš mnoho a dostaví se neúspěch. Doporučuji začínat u RTTY, je to přeci jen nejjednodužší režim a nemusíte se příliš starat o to, jak to funguje „uvnitř”, přičemž stanic pracujících v RTTY najdete na pásmech hodně.
4
pokud umí TRX passband tunning, tak se moc není o čem bavit existuje ještě tzv. Evropská norma, neboli nižší tony 6 pochopitelně byl měl být na 20 W na PSK31 alespoň stowattový 5
Kapitola 5 Amtor 5.1
Historie
Amtor je nejstarším ARQ režimem vůbec, přesněji řečeno, Amtor může přenášet data v režimu ARQ a FEC, pročež si na jeho příkladě obě metody vysvětlíme, ale nejprve se věnujme jeho historii. Název Amtor je akronymem AMateur Teleptinting Over Radio a vzešlo z profesionálního SITORu. Za tvůrce Amtor u lze prohlásit Petera Martineze G3PLX, který kolem roku 1980 experimentoval se SITORem a učinil v něm některé nepodstatné změny, čímž položil základ AMTORu.
5.2
Podstata ARQ
Jak jistě všichni předpokládáte, ARQ je akronym Automatic Repeat Query. Podstatou je synchronní činnost ISS 1 a IRS 2 . ISS odešle skupinu tří znaků kódovaných stejně, jako v případě RTTY, jenže jsou navíc doplněny o dva bity zajišťující elementární korekci chyb, tyto dva znaky nenesou informaci, jen doplňují počet znaků a mezer ve vysílané informaci takovým způsobem, aby byly právě čtyři značky a tři mezery. Je sporné, nakolik lze toto označit za zabezpečení přenosu. Musíme vycházet z toho, že počátky SITORu sahají do padesátých let minulého století, kdy se používaly elektromechanické systémy a tento způsob detekce chyb byl snadno realizovatelný. Na základě přijatých dat odešle IRS buď ACK 3 nebo NAK 4 . Pokud ISS příjme ACK, potom odešle další trojici znaků, pokud příjme NAK, opakuje předchozí trojici znaků. Znovu opakuji, že režimy jsou synchronní, tudíž moment odeslání NAK, nebo ACK, je předem daný bez ohledu na přijímaná data. Navázání spojení se děje pomocí speciální synchronizační sekvence, kde se předává tzv. SELCAL, což je čtyřpísmená identifikace volané stanice. V průběhu spojení je třeba prohodit role ISS a IRS, což se označuje termínem changeover. V případě Amtor u se to provede odesláním changeover sekvence. Jakmile ji IRS potvrdí, stává se ISS a obráceně. 1
Information Sending Station Information Receiving Station 3 potvrzení 4 odmítnutí 2
17
18
KAPITOLA 5. AMTOR
5.3
Podstata FEC
Podobně, jako v případě ARQ je i FEC akronym Forward Error Correction. ISS vysílá všechny informace dvakrát, přičemž se předpokládá, že pokud stanice nepříjme korektně data jednou, podaří se to podruhé, pokud data nejsou ani podruhé korektně přijata, je znak nahrazen symbolem nepřijatý znak, protože IRS nemůže požádat o opakování dat. IRS i ISS se musí udržet synchronní, čehož se dosahuje pravidelným vkládáním synchronizačních sekvencí. Ty se vysílají i v případě, že nejsou připravena žádná data k odeslání. Z uvedeného je zřejmé, že v případě užití ARQ může být právě jedna ISS a právě jedna IRS, kdežto při použití FEC může být IRS několik, proto se tento protokol někdy označuje jako broadcast.
5.4
Provoz
Předně je třeba poznamenat, že se nepoužívají žádné synchronizační sekvence zadávané ke zprávě5 , protože synchronizační značky se vysílají v době, kdy nejsou připravena žádná data. Typické spojení by mělo začínat výzvou. Tu je pochopitelně nutné volat v režimu FEC.
CQ CQ CQ DE OK2KOJ OK2KOJ OK2KOJ OKOJ PSE K Výzva by měla být poměrně krátká, přičemž je třeba odeslat i SELCAL. SELCAL se vytváří z volacího znaku jednoduchým způsobem. Použije se jedno nebo dvě písmena z prefixu a přídá se suffix. Tedy například OK2KOJ bude používat SELCAL OKOJ. V případě, že má stanice jen dvoupísmenný suffix, použijí se dva znaky z prefixu. Tedy například OK2BW bude používat SELCAL OKBW. Pokud je volací znak dostatečně krátký6 , zdvojují se písmena zleva, tj. F2PY bude mít SELCAL FFPY. Pozor, sekvence písmeno číslo písmeno znamená pět znaků a to už by bylo moc, navíc norma nepřipouští použití přeřazovačů v SELCAL.7 Pokud vidíme výzvu, můžeme odpovědět. Můžeme odpovědět buď ve FEC, potom bude spojení probíhat podobně, jako na RTTY, ale daleko zajimavější je odpovědět v ARQ. Jakým příkazem toho dosáhnete závisí na vašem hardwaru, můj další popis bude vycházet z prehistorického PK-232, protože rozhraní většiny pozdějších řadičů nějakým způsobem z PK-232 vychází.
cmd:arq okoj Po chvíli se na sebe řadiče synchronizují a řadič oznámí vytvoření spojení. Vývoj dalšího spojení je analogický k RTTY, ale má určité odlišnosti. Jednou z největší odlišnosti je changeover, neboli prohození IRS a ISS. Ve spojení nebudete mít nikdy nějaké BTU, nebo BK, v Amtor u se linka přehodí pomocí sekvence +?, která způsobí, že si jednak vymění role IRS a ISS, navíc její výskyt informuje operátora na druhé straně, že má začít psát svoji reakci. Značky se dávají vždy na začátku spojení, na konci spojení a po dvou 5
RYRYRY v RTTY v OK vám to asi hrozit nebude 7 otázkou zůstává, co by na to řekl hardware 6
5.5. NĚKOLIK SLOV ZÁVĚREM
19
minutách8 . Značky by se měly dávat po dvojím odřádkování a po značkách by mělo přijít další dvojí odřádkování, pokud nenásleduje +?. Před značky se někdy vkládá středník. Příklad: ; OK2KOJ DE OK2SCS Pokud je spojení dokončeno, je ještě třeba přerušit linku. Jakým způsobem se to provede závisí na použitém řadiči, v případě PK-232 k tomuto účelu slouží kombinace Ctrl+D, přičemž lze alternativně použít i Ctrl+F, což navíc způsobí odeslání vlastní značky v CW.
5.5
Několik slov závěrem
Stanici pracující režimem Amtor budete patrně hledat dost dlouho. V dnešní době většina stanic pracuje v PSK 31 a v menšině v RTTY. Amtor patří k režimům, které není možno úspěšně provozovat se zvukovou kartou9 . Navíc vyžaduje poměrně rychlé a časté přepínání mezi RX a TX, což nedělá příliš dobře elektromechanickým prvkům uvnitř TRX u. Navíc vyžaduje malé zpoždění signálu při průchodu RX em i TX em, což u analogových systémů není problém, ale znemožňuje to použití DSP v TRX u, pokud je TRX vybaven DSP už na mezifrekvenci a není možné DSP vypnout, není možno s takovým TRX em Amtor provozovat. Obdobná pravidla platí pro většinu ARQ režimů, proto se, pokud plánujete věnovat se digitálním režimům komunikace, vyhněte nákupu takových TRX ů. Stávají se sice hitem poslední doby, ale pro některé digitální režimy jsou nevhodné. Dlužno poznamenat, že patří do té nejdražší kategorie. S TRX em vybaveným moderním DSP patrně uspějete v Pactoru a podobných digimodech, sám mám vyzkoušený Pactor s DSP na úrovni NF signálu v FT-897D a funguje to bez problémů. Pactor již není tak háklivý na opoždění signálu, čili použití TRX u s DSP patrně znemožní pouze použití Amtor u, ale jeden si nemůže být nikdy jistý.
8 9
vyžadováno zákony v některých zemích, u nás 10 minut minimálně v ARQ režimu
20
KAPITOLA 5. AMTOR
Kapitola 6 Pactor Pactor je patrně nejpoužívanějším ARQ režimem vůbec. Od doby vzniku uplynulo mnoho let a vyvíjel se i Pactor, takže dnes rozlišujeme několik verzí. • Pactor (neboli Pactor-I) • Robust Pactor • Pactor-II • Pactor-III V rámci amatérské služby se budete patrně setkávat převážně s Pactorem-I a Pactorem-II. Pactor-III je rychlý, ale příliš široký na použití na amatérských pásmech, navíc je spojen s licenčními problémy, ale zpět k technické podstatě.
6.1
Pactor-I
Je nejstarším z rodiny Pactorů. Tvůrci prodali licence na implementaci několika dalším firmám a tudíž byl jako jediný implementován i mimo řadiče produkované německou firmou SCS - Special Comunications Systems GmbH.. Používá se FSK se zdvihem 200 Hz a přenosové rychlosti 200 Bd, nebo 100 Bd 1 . Rychlost je měněna v průběhu spojení podle momentální kvality přenosové trasy. Data jsou zabezpečena pomocí CRC a alternativně komprimována Huffmanovou kompresí. Pactor-I je podporován všemi řadiči od SCS 2 a některými dalšími. Je např. jako optional pro PK-232, je podporován většinou řadičů z dílny Kantronicsu a některými řadiči MFJ. V minulosti jsem dokonce potkal implementaci pro PC se zvukovou kartou, jenže celek fungoval jen s některými zvukovými kartami, přistupoval k nim na binární úrovni a bylo nutno patchovat jádro. Celek mi sice s velkými problémy fungoval, ale zhruba v každém třetím spojení tento softwarový produkt shodil celé jádro. Vývoj byl3 zastaven.4 Narozdíl od amtoru je výrazně prodloužen packet, takže rádia už nepřepínají tak často. Vylepšena je pochopitelně i korekce chyb a řada dalších věcí. Podle tvůrců je pactor imunní vůči změnám polarity FSK signálu5 , 1
řadiče se na rychlosti domluví krom SCS Trackeru 3 pokud vím 4 patrně z technických důvodů, pactor totiž není možné implementovat korektně pro použití se zvukovou kartou bez úpravy zvukové karty 5 prohození značky a mezery 2
21
22
KAPITOLA 6. PACTOR
postupy reverzního inženýrství aplikovanými na implementaci pro PK-232 jsem zjistil, že to není pravda, pactor není imunní vůči změně polarity FSK signálu, ale umí se na polaritě s protistanicí dohodnout. Inicializace spojení se vysílá jednou s normální polaritou a podruhé s reverzní, následně zase s normální atd. Jakmile protistanice odpoví, fixuje se momentální polarita. Je to v podstatě jednoduchý hack6 , leč plně funkční.
6.2
Pactor-II a Robust Pactor
Dostupný pouze pro řadiče od SCS. Používá DPSK, bližší informace víceméně nejsou známy, popis je uveřejněn na http://www.scs-ptc.com a je důkladně nicneříkající.
6.3
Pactor-III
Toto je patrně nejtragičtější implementace vůbec. Největším problémem jsou licenční podmínky. Ikdyž máte řadič od SCS, musíte za Pactor-III zaplatit licenční poplatek. Dostanete za něj firmware s vaší volací značkou, kterou nelze změnit, takže pokud používáte např. značky dvě, musíte licenci kupovat dvakrát, přičemž neustále přeflashováváte firmware. Demo (pro několik spojení) lze stáhnout zdarma, ale pozor, nedoporučuji zkoušet, budete muset upgradovat BIOS řadiče a downgrade již není možný7 . Serií hackerských postupů je možno BIOS downgradovat, ale rozhodně to není jednoduchý8 postup. Díky licenčním podmínkám není v praxi Pactor-III příliš nasazován a jeho přijímání je provázeno obavami a jistou „rozvážností” a to kupodivu i ze strany profesionálních stanic.
6.4 6.4.1
Pactor prakticky Spojení operátor - operátor
V podstatě máte dvě možnosti. Přímých spojení9 si asi moc neužijete, ikdyž může se podařit. V případě Pactoru se spojení příliš neliší od Amtoru, tj. opět budete volat krátkou výzvu a očekávat, že vás někdo zavolá v ARQ. Takový provoz má ještě poněkud striktnější pravidla, např. značka se dává jako
; OK2KOJ DE OK2SCS > V podstatě se asi nic nestane, pokud nebudete všechna pravidla dodržovat, ostudu uděláte nanejvýš sobě. Pactorové stanice vám ale nikdy za nic nevynadají10 , protože pactorových stanic, které aktivně navazují spojení, je velmi málo. V podstatě dodržujte udávání značek a +? místo KN. Pozor, jako changeover to interpretují jen některé řadiče, typicky Kantronics, takže changeover patrně budete muset iniciovat ještě ručně, u PK-232 defaultně Ctrl+Z. Krom changeover u je u Pactor u možný i Break-in, což způsobí prohození IRS 6
narozdíl od AX.25, které je skutečně na polaritě nezávislé – dáno principem zaručení vymahatelnosti licenčních podmínek 8 a legální 9 od rádioamatéra k rádioamatérovi 10 narozdíl od fonie a CW vám na digimodech hned tak někdo nevynadá 7
6.4. PACTOR PRAKTICKY
23
a ISS, jenže toto prohození iniciuje IRS. Break-in je v principu možné provádět i v Amtor u, ale ne všechny implementace Amtor u jsou v tomto směru korektní. U Pactor u nekorektní implementace Break-in neexistuje11 . Nedoporučuji Break-in používat, pokud ho skutečně nepotřebujete - výsledek působí poněkud chaoticky. Spojení Pactor em jsou obvykle poměrně dlouhá, na rychlá spojení podobná provozu v závodě můžete zapomenout. Na začátku spojení by měl12 být pozdrav, report, jméno a QTH. Nebojte se trochu se rozepisovat, pokud se podmínky zhorší, tak se prostě data pošlou několikrát. Není dobré cokoliv opakovat, protože spojení je zabezpečené.
6.4.2
Spojení s mailboxy
Hlavním užitím pactoru je spojení s mailboxy. Tato zařízení většinou poslouchají na jednom, nebo několika kmitočtech a pokud je někdo zavolá, odpoví. Jedná se o automatické systémy, které umožňují uchování a předání vaší zprávy dalším rádioamatérům, nebo předání zprávy od jiných rádioamatérů vám. Občas nabízí i možnost vstupu do jiných systémů a sítí, například AX.25. Jejich ovládání se může lišit, ale většina takových systémů je vybavena helpem, který uživatele navede. Příklad spojení s mailboxem F2PY následuje: cmd:ptc f2py Opmode was PACTOr Opmode now PTConn *** CONNECTED to F2PY [WinLink-3.0-B1FHIMR2TU$] WELCOME to F2PY Peter/ stby OK2SCS de F2PY>
14.068
14.098
loc
JN04RF
lm None Found... OK2SCS de F2PY> b ; OK2SCS de F2PY SK *** DISCONNECTED: F2PY cmd: Jak vidíte, připojil jsem se na F2PY a ten mi poslal krátký úvodní text, tzv. C-Text. Jak vidno, není pro mne připravena žádná zpráva, což ještě ověřuji zadáním příkazu lm a odpojuji se od systému. Není vhodné zdržovat se v systému příliš dlouho, neb jej tím blokujete ostatním rádioamatérům. Kompletní help k winlinku lze najít na Internetu, pokud si jej už stáhnete přímo z mailboxu, tak si jej uložte pro pozdější použití.
11 12
pokud vím podobně jako v RTTY
24
KAPITOLA 6. PACTOR
Kapitola 7 Další ARQ režimy 7.1
G-Tor
G-Tor je protokol podobný Pactor u navržený firmou Kantronics. Používá se FSK a princip činnosti je podobný Pactor-I, ale používá se tří možných rychlostí přenosu - 100 Bd, 200 Bd a 300 Bd. Data je možno podrobit Huffmanově kompresi a narozdíl od Pactoru a jeho Memory ARQ se používá redundance na vysílací straně v podobě Golay code 1 . Implementován je pouze v řadičích Kantronics, takže stanice budete patrně hledat velmi obtížně. Výhodou tohoto režimu je poměrně vysoká přenosová rychlost - 300Bd je rychlost, která se na krátkých vlnách používá u AX.25, ale G-Tor má obvykle menší overhead. Délka packetu je ještě větší, než u Pactor u, za zmínku stojí i využití FSK místo moderního mnohdy zbytečně prosazovaného PSK. Pokud se rozhodnete kupovat nějaký řadič, pak je třeba volit mezi Pactor-II a G-TOR, přičemž rozhodování není zrovna snadné.2
7.2
Clover
Clover je ve své podstatě revolučním ARQ režimem - neexistuje changeover. Data mohou přenášet obě stanice mezi sebou, přičemž linka je vždy nějakým způsobem asymetrická. Směr asymetričnosti linky se prohazuje automaticky, což lze považovat za nějakou formu changeover. Ve své podstatě je jeho osud podobný G-Tor u, je dostupný pouze v řadičích firmy HAL Communications, z čehož plyne, že stanic pracujících tímto režimem moc nebude. Zajimavé ovšem je, že řadič DXP-38 by měl podporovat i Pactor-II, který je nazýván P-Mode 3 . Podle všeho nekoupili licenci, ale vytvořili vlastní implementaci podle dokumentů zveřejněných na Internetu, takže kompatibilita patrně není zaručena, leč podle informací mně dostupných to funguje.
7.3
PSK ARQ
Aneb zvukovkové ARQ. Tento režim je vytvořen na základě programu gMFSK přidáním jednoduché ARQ vrstvy. Stanici pracující tímto režimem jsem zatím nepodkal. Režim veskrze zajimavý a obskurní. Výhodou by mohla být nízká pořizovací cena vybavení. 1
Tento princip používala např. sonda Pathfinder Cena nejlevnějšího Pactor-II schopného řadiče je zhruba dvojnásobná k ceně nejdražšího (a jediného) řadiče od Kantronicsu, který umí G-TOR. 3 kvůli licenčním podmínkám 2
25
26
KAPITOLA 7. DALŠÍ ARQ REŽIMY
Část III AX.25
27
Kapitola 8 AX.25 level 2 8.1
Struktura
Protokol AX.25 je bitově orientovaný protokol. Jednotlivé bity jsou seskupeny do rámců, které tvoří packet. Každý rámec je uvozen FLAGem 1 , což je sekvence 011111102 . Uvnitř rámce jsou obsažena data. Aby byla zaručena unikátnost rámce, vkládá se po sekvenci 11111 automaticky jedna nula3 . Tím je jednak zaručena unikátnost FLAGu, navíc je zaručeno, že nemůže existovat sekvence obsahující více než šest jedniček za sebou, což je důležité z hlediska regenerace taktu přijímacích hodin4 . Rámce mohou být dvojího druhu: • datové • signalizační Datové rámce jsou takové, jež nesou přenášené informace. Signalizační rámce informace nenesou a jsou určeny k signalizaci, tj. přenášení informací souvisejících s vytvořením, během a ukončením spojení. Struktura datového rámce: FLAG
adresa 7..70 byte
ctl 1 byte
PID 1 byte
info 1..256 byte
FCS 2 byte
FLAG
Struktura signalizačního rámce: FLAG
adresa 7..70 byte
ctl 1 byte
FCS 2 byte
FLAG
Nyní popíši význam jednotlivých polí: adresa – pole specifikující zdroj a cíl rámce, případně jeho cestu. Každá adresa sestává ze sedmi bytů, přičemž prvních šest odpovídá volacímu znaku, poslední byte je SSID. 1
český ekvivalent je „křídlová značka” EQU 0x7E 3 bit-stuffing 4 bude vysvětleno později 2
29
30
KAPITOLA 8. AX.25 LEVEL 2
ctl – specifikuje typ rámce, číslo rámce v příchozí a odchozí frontě a Final/Poll bit. Jsou přípustné následující typy rámců: signalizační – to jsou rámce sloužící signalizaci, tzv. S–Rámce. informační – to jsou rámce nesoucí informaci. Ty mohou být: počítané – tzv. I–rámce nepočítané – tzv. U–rámce PID – identifikuje, o jaký typ packetu se jedná. Dnes se užívá výhradně k identifikování protokolů vyšších vrstev. Pokud se používá spojení terminál – terminál, má hodnotu 0xF0. Dříve se toto pole užívalo k jiným účelům. info – vlastní přenášená data. Může obsahovat 1..256 byte, přičemž informační packet nulové délky je zakázán.5 FCS – kontrolní součet I–Rámce mohou být jednoho jediného typu. Nese si svoje vlastní číslo, které se mění od 0x00 do 0x07 a číslo očekávaného rámce od protistanice. Dále nese Final/Poll bit. S–Rámce mohou být různých typů: RR rámec – příjem připraven. Nese číslo očekávaného rámce, čímž potvrzuje příjem všech předchozích a také Final/Poll bit. RNR rámec – příjem není připraven. Nese číslo očekávaného rámce, čímž potvrzuje příjem předešlých rámců, ale zároveň říká, že není schopen zpracovat další rámce. K této situaci dochází v případě, že stanice vysílající RNR nestačí zpracovávat data a dochází buffer. Toto je jednoduchá obdoba handshake. Dále nese tento rámec Final/Poll bit. REJ rámec – odmítnutí. Oznamuje protistanici, že došlo k narušení posloupnosti rámců, tj. některý rámec nebyl přijat. Protistanice má reagovat novým odesláním rámce. U–Rámce jsou nepočítané rámce. Ty jsou používány pro navazování a rušení spojení, pro indikaci některých nepřípustných stavů. Může mít několik druhů: SABM rámec – zahájení spojení. Je vyslán jako žádost o vytvoření spojení. V případě již probíhajícího spojení je považována za Link Reset, což způsobí totéž, jako vytvoření spojení, ale nedojde ke ztrátě spojení. Používá se jako reakce na některé fatální stavy. DISC rámec – žádost o ukončení spojení. Je vyslán v momentě, kdy jedna z komunikujících stran hodlá ukončit spojení. UA rámec – nečíslované potvrzení. Potvrzuje přijetí a zpracování některých typů nečíslovaných rámců. Používá se jako kladná odpověď na SABM, někdy též jako kladná odpověď na DISC 6 . 5 6
mělo by se na něj reagovat pomocí FRMR může vůbec existovat na DISC záporná odpověď? Její existence by byla nelogická.
8.1. STRUKTURA
31
DM rámec – stav rozpojeno. Oznamuje protistanici, že spojení neexistuje. Používá se buď jako záporná odpověď na SABM, nebo jako kladná odpověď na DISC. Tento typ rámce by měl být generován vždy, když příjde jakýkoliv S–Rámec nebo I–Rámec z adresy, se kterou neprobíhá spojení. Toho lze s úspěchem využít při dotazu na fyzickou přítomnost konkrétní stanice bez navázání spojení7 . FRMR rámec – odmítnutí rámce. Tento rámec by měl být odeslán v momentě, kdy je korektně přijmut rámec8 , který není možné dále zpracovat. K tomuto stavu by teoreticky mělo docházet jen zřídka a měl by být používán jako reakce na „zmatené rámce”. Prakticky jej lze očekávat jako reakci na následující stavy: bez vytvořeného spojení • nepodporovaný PID • nesmyslný SABM–rámec při vytvořeném spojení • „zmatený rámec” • UI–rámec s adresou existujícího spojení FRMR–rámec lze tedy využít k prozkoumávání podporovaných protokolů vyšší vrstvy protistanice. To může být například užitečné v případě, kdy máme možnost vybrat si z několika možných protokolů vyšší vrsvy a zkoušíme, který protistanice podporuje. To lze provést tak, že vyšleme žádost o spojení s daným PID a pokud protistanice tento protokol nepodporuje, obdržíme FRMR 9 . Další častou příčinou výskytu bývá duplicita volacích znaků. UI–rámec – nečíslovaný datový rámec. Vysílá data v nečíslovaných rámcích. Používá se většinou pro skupinové vysílání, nebo jako maják. Pokud je požadováno doručení dat, musí se o to postarat nadřízený protokol. Final/Poll a hlášení/odpověď jsou definovány pomocí dvou bitů v každém rámci. Metoda hlášení/odpověď je definovaná v obou verzích protokolu. Final/Poll je definován pouze v druhé verzi protokolu, tj. AX.25 level 2. Různé varianty jsou definovány následujícím způsobem: význam obvyklé označení P/F příkaz ^ 0 hlášení v 0 poll + 1 final 1 Odpovědí na příkaz je hlášení. Stejný princip je zachován i pokud je P/F aktivní, ale na poll se odpovídá pomocí Final okamžitě. Rozdíl spočívá v tom, že po přijetí packetu s příkaz em bez aktivního P/F se ještě chvíli čeká, než se potvrzuje. Pokud by totiž přišel další rámec, bylo by možné potvrdit oba rámce jedním. Toto prodlužuje komunikaci v okamžiku, kdy je vysílající straně jasné, že již další data vysílat nebude. V posledním takovém rámci se tedy nastaví F/P na 1, což způsobí, že budou potvrzeny všechny přijaté rámce bez čekání, což zvyšuje rychlost komunikace. 7
obdoba ping z TCP/IP tj. souhlasí kontrolní součet 9 takto to dělá např. AX.25–Lite 8
32
KAPITOLA 8. AX.25 LEVEL 2
8.2
Konstrukce packetu
Packet je objekt tvořený několika rámci, které jsou odvysílány bezprostředně za sebou. Vzhledem k způsobu číslování rámců lze v jednom packetu odvysílat nanejvýš sedm rámců. Tato maximální hodnota však může být omezena konstantou window 10 . Snížení konstanty window může mít pozitivní důsledky v případě častého výskytu krátkodobého rušení, případně při problémech se synchronností modemů. Tedy. Packet vytvořen v momentě, kdy je připraveno dostatečné množství rámců, nebo již nejsou připravena další data k vysílání. Strategie řídící vlastní vytváření packetu je věcí implementace a protokol AX.25 jej neomezuje nad rámec plynoucí z omezení window.
8.3
Konstrukce I–rámce
Jediným parametrem, který má smysl ovlivňovat, je délka rámce. Protože délka hlavičky, kontrolních součtů a křídlových značek je konstantní, lze měnit pouze velikost přenášených dat. Ta je z definice protokolu AX.25 omezena na 256 bytů. Prakticky bývá vhodné tuto maximální hodnotu omezit. Maximální velikost vysílaných rámců lze omezit pomocí konstanty paclen. Tato konstanta definuje maximální velikost datové oblasti I–rámce. Rámec je nejkratší úsek dat, který je v případě nekorektního přijetí opakován. Z toho plyne, že na spolehlivých linkách je výhodné nastavení velkého paclen, protože se tím snižuje režie protokolu. Na špatných linkách je lépe nastavovat spíše hodnoty menší, protože se v případě chyby znovu vysílají menší bloky dat. Skutečná délka rámce je v praxi menší11 . Moment, kdy je rámec uzavřen12 závisí na konkrétní implementaci. Rámec musí být uzavřen při dosažení délky rovné paclen. Při spojení typu terminál–terminál se obvykle rámec uzavře při výskytu znaku CR = 0x0D. Někdy se též rámec uzavře při dosažení konce řádku. Záleží na konkrétní implementaci. Praxe ukazuje, že v sítích, kde se používá i Net/ROM je vhodné paclen nastavit na hodnotu 230. Takové rámce potom nemusí být uzlem fragmentovány, což snižuje jeho zátěž.
8.4
Časovače
Protokol AX.25 Označení Linux T1 T2 T3 N2 Idle 10
potřebuje ke své činnosti několik časovačů: Označení Význam TAPR FRACK Doba, kterou čekáme před opakováním vysílání nepotvrzeného rámce RESPTIME Doba, po kterou čekáme na další rámec před odvysíláním potvrzení CHECK Doba mezi odvysíláním posledního packetu a odvysíláním rámce udržování linky RETRY Počet iniciovaných pokusů o obnovení komunikace s protistanicí před prohlášením spojení za přerušené Doba bez vysílání či příjmu dat, po jejímž uplynutí je spojení ukončeno
někdy označovanou maxframe s vyjímkou přenosu velkých bloků dat 12 tj. připraven k odeslání 11
8.5. PŘÍKLAD SPOJENÍ V AX.25
33
Nyní si podrobněji popíšeme význam jednotlivých parametrů: T1 – nastavuje, jak dlouho je třeba čekat na potvrzení rámce. Lze jej nastavit v rozmezí 1 s až 30 s, standardně bývá nastaven na 10 s. Časovač by se měl spouštět až s odvysíláním celého packetu, u některých typů hardware13 toto není možné. Nastavení příliš malé hodnoty způsobí opakování rámce i když není třeba rámec opakovat, příliš vysoká hodnota způsobí dlouhé prodlevy při výskytu chyby. T2 – nastavuje, jak dlouho se má čekat zda nepříjde další rámec před potvrzením. Pokud je generátor protokolu AX.25 schopen detekovat hranice packetu, nemá tato konstanta přílišný význam. V opačném případě příliš malá hodnota způsobí potvrzování každého rámce, příliš vysoká hodnota zase zpomaluje komunikaci. Pokud se používá druhá verze protokolu AX.25, je lépe nastavit vyšší hodnoty, protože zbytečnému čekání předchází nastavení bitu P/F 14 . Hodnoty lze nastavit v rozsahu 1 s až 30 s, doporučené nastavení je 3 s. T3 – časovač prověřovače linky. Pokud se dostatečně dlouho nepřenášejí data mezi propojenými stanicemi neprochází přes přenosové medium ani žádné rámce. V tom případě spojení mezi stanicemi dále existuje. Tento jev může mít různé příčiny. Je to sice legální stav, ale může to být důsledek nějaké chyby. Na odlišení chybového stavu se používá krátký signalizační rámec, který se vyšle v případě, že existující spojení nepřeneslo po dobu T3 žádný rámec. Protistanice reaguje na takový rámec standardním způsobem. Pokud nereaguje, nastupují obvyklé metody pro opravu chyby, které v případě neúspěchu prohlásí spojení za nefunkční. Příliš malé hodnoty přetěžují kmitočet stálými dotazy na stav linky, příliš vysoké hodnoty znesnadňují detekci chyb a zpomalují reakci na chybový stav. T3 lze nastavit v rozsahu 0 s 15 až po 3600 s. Doporučuje se nastavení na 300s. N2 – toto není pravý časovač, protože nastavuje počet pokusů o opravu chyby přenosu před tím, než je linka prohlášena za nefunkční. Tím se eliminují stavy, kdy dojde k přerušení schopnosti zařízení komunikovat. Příliš nízké hodnoty způsobí zbytečné zrušení spojení, v případě výskytu krátkodobých obtíží, příliš vysoké hodnoty opožďují reakci na chybový stav. N2 lze nastavit v rozsahu 1 až 31 pokusů. Doporučuje se nastavení na 10 pokusů. Idle – pokud se po tuto dobu nepřenášejí žádná data16 , je spojení zrušeno. Tento časovač má eliminovat stavy, kdy sice funguje spojení a tvorba protokolu AX.25, ale aplikace, která spojení využívá, z nějakého důvodu nepřenáší data, tedy lze předpokládat, že nefunguje. Tento časovač hraje též důležitou roli při rušení AX.25 spojení. Tento časovač obvykle nastavujeme na 20 min.
8.5
Příklad spojení v AX.25
Nyní máme definovány všechny důležité vlastnosti protokolu AX.25, takže můžeme přistoupit k jednoduché ukázce spojení v AX.25. Před tím je nutno definovat tvar zápisu 13
typicky KISS TNC viz výše 15 tzn. použití této metody zakázáno 16 bez ohledu na výskyt/nevýskyt rámců 14
34
KAPITOLA 8. AX.25 LEVEL 2
protokolu AX.25. Přidržím se obvyklých konvencí zápisu, tj. tvaru, který používá většina monitorovacích programů. 1. První řádek obsahuje informace z hlavičky rámce. 2. Pokud rámec nese nějaká data, jsou uvedena na řádcích za řádkem hlavičky. 3. Pokud je zakázáno zobrazování binárních dat a rámec obsahuje binární data, je zobrazeno pouze
, kde ??? je velikost dat v bytech. 4. Pokud rámec obsahuje data protokolu nějaké vyšší vrstvy, kterou je schopen monitor zobrazovat, je její hlavička na druhém řádku. 5. Za každým vypsaným rámcem následuje prázdný řádek. Tedy. Stanice OK1AAA bude navazovat spojení se stanicí OK2BBB. Nejprve vyšle OK1AAA žádost o spojení se stanící OK2BBB : fm OK1AAA to OK2BBB ctl SABM+ Pokud je OK2BBB ochotna vytvořit spojení s OK1AAA, odpoví pomocí: fm OK2BBB to OK1AAA ctl UASpojení je nyní navázáno. Protože navazujeme spojení typu terminál–terminál17 je nepsaným pravidlem, že stanice OK2BBB nyní pošle několik informací o sobě: fm OK2BBB to OK1AAA ctl I00^ pid F0 OK2BBB = QTH Letovice (JN89GM) OK1AAA potvrdí příjem oznámením, že očekává rámec číslo 1 : fm OK1AAA to OK2BBB ctl RR1v Stanice OK1AAA reaguje: fm OK1AAA to OK2BBB ctl I10^ pid F0 Nazdar! fm OK1AAA to OK2BBB ctl I11^ pid F0 Jaxe máš? Nyní vyslala stanice OK1AAA dva rámce dostatečně rychle po sobě18 , takže je OK2BBB potvrdí oba zároveň oznámením, že očekává rámec číslo 2 : fm OK2BBB to OK1AAA ctl RR2v Nyní bude OK2BBB reagovat: fm OK2BBB to OK1AAA ctl I21^ pid F0 No nazdar... 17 18
PID=0xF0 T2 nestačil doběhnout
8.5. PŘÍKLAD SPOJENÍ V AX.25
35
OK1AAA bude reagovat. Ukážeme si, jak lze potvrdit příjem pomocí I–rámce. To je výhodné v případě, kdy má přijímající strana co vysílat.19 fm OK1AAA to OK2BBB ctl I22^ pid F0 Máš zítra čas? fm OK1AAA to OK2BBB ctl I23^ pid F0 Ráno/večer? OK2BBB potvrzuje standardním způsobem20 – oznámením, že očekává rámec číslo 4 : fm OK2BBB to OK1AAA ctl RR4v Nyní si ukážeme příklad opravy chyby přenosu. Následující rámec sice OK2BBB odvysílá, ale OK1AAA jej nepříjme správně: fm OK2BBB to OK1AAA ctl I24^ pid F0 Večer nejsem doma... Protože OK1AAA rámec nepřijal21 , nemůže nic potvrdit. U OK2BBB doběhne časovač T1 a rámec se znovu odešle. Tentokrát s nastaveným P/F bitem. fm OK2BBB to OK1AAA ctl I24+ pid F0 Večer nejsem doma... Vzhledem k tomu, že byl nastaven P/F bit, musí OK1AAA okamžitě odpovědět. Nyní předpokládejme, že OK1AAA rámec napodruhé přijme. Kdyby tomu tak nebylo, doběhl by opět u OK2BBB časovač T1 a celý proces by se opakoval tak dlouho, dokud by OK1AAA rámec nepřijal korektně. Pokud by byl překročen počet N2, došlo by k zrušení spojení. fm OK1AAA to OK2BBB ctl RR5Nyní pošle OK2BBB ještě nějaká data. P/F bit nastaven nebude, protože se problém s příjmem vyřešil: fm OK2BBB to OK1AAA ctl I25^ pid F0 A ráno jsem v práci... OK1AAA opět rámec standardním způsobem potvrdí: fm OK1AAA to OK2BBB ctl RR6v Tímto způsobem by spojení pochopitelně mohlo pokračovat. My si ukážeme použití S–rámce typu REJ a RNR. K tomu bude nejlépe, ukážeme–li si část nějakého binárního přenosu. Opět budu stanice značit jako OK1AAA a OK2BBB. Předpokládejme, že spojení je úspěšně navázáno a již nějakou dobu probíhá. 19
nebývá to častý případ nemá připraveny další data 21 nebo nepřijal korektně 20
36
KAPITOLA 8. AX.25 LEVEL 2
fm OK1AAA to OK2BBB ctl I30^ pid F0 fm OK1AAA to OK2BBB ctl I31^ pid F0 fm OK1AAA to OK2BBB ctl I32^ pid F0 fm OK1AAA to OK2BBB ctl I33^ pid F0 OK2BBB příjem potvrdí. Teď proběhlo všechno tak, jak má, takže OK2BBB oznámí, že očekává rámec číslo 4. fm OK2BBB to OK1AAA ctl RR4v Nyní si ukážeme, jak to bude vypadat, pokud nebude OK2BBB schopen po nějakou dobu přijímat další data.22 OK1AAA tedy odešle další blok dat: fm OK1AAA to OK2BBB ctl I34^ pid F0 fm OK1AAA to OK2BBB ctl I35^ pid F0 fm OK1AAA to OK2BBB ctl I36^ pid F0 fm OK1AAA to OK2BBB ctl I37^ pid F0 Předpokládejme, že OK2BBB vše řádně přijal a očekává rámec číslo 0, ale zároveň žádá o pozdržení vysílání, protože by další data nebyl schopen zpracovat. To provede rámcem typu RNR: fm OK2BBB to OK1AAA ctl RNR0v Nyní se chvíli nebude dít nic. Jakmile si OK2BBB vyřeší svoje problémy a bude schopen opět přijímat, oznámí to stanici OK1AAA pomocí rámce typu RR, tj. oznámí, že očekává rámec číslo 0. Bit P/F bude nahozen. fm OK2BBB to OK1AAA ctl RR0+ Na Poll musí následovat Final. Tedy: fm OK1AAA to OK2BBB ctl RR3Nyní si ukážeme, jak to bude vypadat, když se nepříjme některý z rámců packetu. Předpokládejme, že OK1AAA vyslal tři rámce, ale OK2BBB přijal pouze první rámec packetu. 22
například se něco nestihne
8.5. PŘÍKLAD SPOJENÍ V AX.25
37
fm OK1AAA to OK2BBB ctl I30^ pid F0 fm OK1AAA to OK2BBB ctl I31^ pid F0 fm OK1AAA to OK2BBB ctl I32^ pid F0 Tedy. OK2BBB přijal pouze první rámec packetu. Protože neví, zda nějaký další rámec existoval, tj. nebyla porušena posloupnost číslování rámců, nemůže reagovat pomocí rámce typu REJ. Ten se posílá v případě, že některý z rámců chybí a protistrana si tímto rámcem vyžádá jeho zopakování. Tedy OK2BBB může pouze potvrdit rámec číslo 0. fm OK2BBB to OK1AAA ctl RR1v OK1AAA čeká na příchod potvrzení rámců 1 a 2. To však přijít nemůže, protože OK2BBB neví, že rámce existují. Jakmile u OK1AAA doběhne časovač T1, dotáže se OK1AAA, co vlastně OK2BBB slyšel. Kdyby zůstal nepotvrzen jen jeden rámec, OK1AAA by se jej pokusil zopakovat. Strategie opakování vysílání a dotazování protistrany není striktně dána a závisí víceméně na implementaci. Protože se vyžaduje okamžitá odpověď23 , je pochopitelně nastaven bit P/F. fm OK1AAA to OK2BBB ctl RR3+ Poslední rámec, který OK2BBB má, je rámec číslo 0. Takže odpoví, že očekává rámec číslo 1. Bit P/F bude pochopitelně nastaven, protože na Poll se musí odpovědět Final. fm OK2BBB to OK1AAA ctl RR1OK1AAA nyní ví, že poslední rámec, který přijal OK2BBB je rámec číslo 0. Tedy znovu odvysílá rámce, které OK2BBB nepřijal. fm OK1AAA to OK2BBB ctl I31^ pid F0 fm OK1AAA to OK2BBB ctl I32^ pid F0 Nyní vše proběhlo tak, jak má a OK2BBB rámce potvrdí hlášením, že očekává rámec číslo 3. fm OK2BBB to OK1AAA ctl RR3v Nyní si ukážeme jiný případ opravy chyby. Předpokládejme, že v následujícím packetu budeme vysílat rámce číslo 3, 4 a 5, přičemž stanice OK2BBB nepříjme rámec číslo 4. fm OK1AAA to OK2BBB ctl I33^ pid F0 fm OK1AAA to OK2BBB ctl I34^ pid F0 23
předpokládáme výskyt chybového stavu
38
KAPITOLA 8. AX.25 LEVEL 2
fm OK1AAA to OK2BBB ctl I35^ pid F0 OK2BBB přijal rámec číslo 3 a po něm rámec číslo 5. Tedy číslování rámců bylo porušeno – schází rámec číslo 4. Na to reaguje OK2BBB pomocí rámce typu REJ. fm OK2BBB to OK1AAA ctl REJ4v Korektní reakce na rámec typu REJ je jediná – odvysílat vyžádaný rámec znovu. fm OK1AAA to OK2BBB ctl I34^ pid F0 OK2BBB si nyní vyřešil problém s číslováním rámců, protože má rámce číslo 3, 4 a 5, takže je souhrným způsobem potvrdí pomocí hlášení, že očekává rámec číslo 6. fm OK2BBB to OK1AAA ctl RR6v Tím jsou rámce potvrzeny a přenos může pokračovat dál.
8.6
Stavy linky
Stav linky24 může nabývat některé z následujících hodnot: Link Setup – Linka se sestavuje. Rámec typu SABM byl odeslán, odpověď rámcem UI ještě nepřišla. Info transfer – Přenáší se data. Idle – Linka je sestavena, nejsou připravena žádná data k odeslání, nic se nepřijímá. Některé implementace stav Idle neuznávají a nahrazují jej stavem Info transfer. Waiting for ACK – čekáme na potvrzení rámců. Několik rámců bylo odesláno, ale nebyly všechny rámce potvrzeny. REJ state – Posíláme reject a čekáme na znovuodvysílání chybějícího rámce. Receive Not Ready – Obdrželi jsme rámec typu RNR a čekáme, až bude protistrana schopna přijímat. Disc Request – Žádáme o zrušení spojení. Protistrana ještě nepotvrdila zrušení linky. 24
=spojení
8.7. UDÁLOSTI LINKY
8.7
39
Události linky
Při vytváření spojení, přenosu dat i ukončování spojení může protokol AX.25 signalizovat následující stavy: Connected – Bylo otevřeno spojení. Disconnected – Bylo uzavřeno spojení. Busy – Žádost o spojení byla protistranou zamítnuta. Link Failure – Spojení zrušeno z důvodu přetečení čítače N2. Link Reset – Protistrana žádá o Link Reset FRMR – Výskyt rámce typu FRMR
8.8
AX.25lite
Vzhledem k tomu, že režie přenosu je značná, což činí problémy převážně u pomalých linek, byla vytvořena varianta protokolu AX.25 pod názvem AX.25lite. Jedná se o „firemní” řešení, které je implementováno pouze v několika implementacích protokolu AX.25. V praxi jde o to, že se volací znak nahradí čtyřbytovou sekvencí, tzv. lite adresou a nadále se používá tato místo značky v adresním poli, které je příslušným způsobem zkráceno. Důsledkem je podstatně kratší hlavička, což snižuje výrazným způsobem režii protokolu. Úplné značky se vyměňují pouze při navazování spojení. Pokud protistrana protokol AX.25 lite nepodporuje, odešle na žádost o vytvoření spojení rámec typu FRMR, na což iniciátor vzniku spojení reaguje zakázáním používání AX.25 lite pro toto spojení a začne navazovat spojení obvyklým způsobem. AX.25 lite se v ničem jiném neliší od standardního AX.25. Použití protokolu AX.25 lite by v našem případě přineslo více komplikací než užitku. Mezi jeho hlavní nevýhody patří: • minimální počet implementací • vysoká pravděpodobnost kolize lite adresy
40
KAPITOLA 8. AX.25 LEVEL 2
Kapitola 9 AX.25 - Hardware Hardware, podporující protokol AX.25, bylo zkonstruováno mnoho – stačí si pouze vybrat. Než přistoupíme k popisu vlastního hardwaru, bude účelné, popíšeme-li si funkci jednotlivých částí. Ano, hardware lze rozdělit na několik částí: • modemová část • NRZ/NRZI konvertor, regenerátor přijímacího taktu • logická část Za určitých okolností je výhodné jednotku NRZ/NRZI konvertoru vypustit a ponechat tuto činnost na jednotce modemu, v některých případech1 nemá konverze NRZ/NRZI smysl. Výše zmíněný koncept vychází z 1200 Bd AFSK 2 a 300Bd FSK 3 . Do značné míry lze tento koncept aplikovat i na Manchester 4 , užití GMSK tento model boří.5
9.1
Modemová část
Modemová část tvoří rozhraní mezi analogovou a digitální částí. Na jejím vstupu jsou digitální signály RXData, což je signál vystupující z modemové části, a dva signály vstupující do modemové části – TXData a PTT 6 . PTT – Tento signál má způsobit přepnutí TRX u na vysílání. V případě plně duplexního provozu má pouze zapnout vysílač. Tento signál stačí jen upravit do vhodné podoby7 a přenést do TRX u. Taková úprava je nezbytná, protože na vstupu modemu signál obvykle odpovídá úrovním TTL, zatímco většina TRX ů se přepíná na vysílání uzemněním příslušného vstupu.8 V případě simplexního provozu je účelná existence zařízení, které zamezí dalšímu vysílání, pokud se již vysílá příliš dlouho. Pokud je TRX přepnut na vysílání déle než dvě minuty, je zřejmé, že došlo k nějaké chybě. Setrvání TRX u v takovém stavu by jej jednak mohlo poškodit, navíc znemožňuje 1
typicky při použití GMSK používá se na VHF 3 používá se na HF 4 obvykle užívané rychlosti 2400 Bd a 4800 Bd 5 protože má kořeny v MSK. 6 lze označit jako TXEnable 7 z elektrického hlediska 8 jedinou „žijící” vyjímkou, kterou jsem zatím poznal, je TRX TXR 210 „Sněžka 2” 2
41
42
KAPITOLA 9. AX.25 - HARDWARE komunikaci ostatním stanicím. Zařízení, které řeší takový stav, se nazývá PTT – watchdog a bývá součástí modemové části.
TXData – Tento signál obsahuje vysílaná data. Je-li v logické úrovni 1, vysílá se značka, je-li v úrovni 0, vysílá se mezera, přičemž přiřazení logické 1 a 0 není kritické, signál lze invertovat bez viditelného vlivu na přenášená data, což si ukážeme v popise regenerátoru přijímacího taktu9 .
RXData – Tento signál je v logické 1, je-li na vstupu značka, a v úrovni logické 0 při výskytu mezery. Podobně, jako v předchozím případě, lze obrátit smysl chápání logické 0 a 1 bez viditelného vlivu na přenášená data.10
9.2
NRZ/NRZI konvertor, regenerátor přijímacího taktu
Přenos vysílaných a přijímaných dat mezi NRZ/NRZI konvertorem a logickou jednotkou probíhá pomocí synchronního seriového přenosu.11 Zdrojem hodinového signálu je v obou případech, tj. v případě příjmu i vysílání, NRZ/NRZI konvertor. Pokud je na vstupu konvertoru logická 0 dojde v momentě „tiknutí” hodin ke změně logické úrovně na výstupu, tj. pokud byla na výstupu logická 1 přejde v logickou 0 a obráceně. Bude-li na vstupu logická 1 k výše uvedené změně na výstupu nedojde. Tedy, logická 0 na vstupu je kódována jako změna signálu, zatímco logická 1 na vstupu je kódována jako setrvání signálu. Při příjmu postupujeme obráceným způsobem. Z uvedeného je zřejmé, že úspěšný příjem vyžaduje regeneraci hodinového signálu. V praxi se to provádí pomocí smyčky DPLL, což je digitální obdoba PLL12 smyčky. Princip je následující: Pomocí externího oscilátoru, na jehož stabilitě závisí kvalita regenerátoru, generujeme hodinový signál s kmitočtem rovným celočíselnému násobku regenerovaného přijímacího taktu. Pro další výklad předpokládejme, že použijeme třicetidvounásobný kmitočet. Ten inkrementuje čítač, k jehož přetečení dochází dosažením hodnoty 32. Při přetečení čítač padá na hodnotu 0. Pokud nastane změna signálu RXData v době, kdy má čítač načítáno méně než 16, dojde k dekrementování čítače. Pokud dojde ke změně signálu RXData v době, kdy má čítač načítáno více než 16, bude inkrementován. Pokud ke změně signálu RXData nedojde, běží čítač volně. Tedy časová poloha dosažení hodnoty 16 na čítači bude oscilovat kolem případné změny signálu RXData. Vlastní regenerované hodinové impulsy odvodíme z přetečení čítače. Je zřejmé, že přijímací hodiny budou fázově posunuty o π, což poskytuje čas délky poloviny periody hodinového signálu k ustálení elektrických poměrů před čtením dat. Z uvedeného tedy plyne, že v době vysílání 1 nedochází k synchronizaci. To však není problém, protože díky bit–stuffingu dochází k dostatečně častému vysílaní 0. Dále z uvedeného plyne, že stačí 15 změn signálu RXData k správnému zasynchronizování regenerátoru přijímacího taktu. 9
při použití Manchester u patrně nelze hovořit o značce a mezeře platí pochopitelně i pro Manchester, protože tato možnost je dána užitím kódování NRZI 11 analogie s HDLC u X.25 není čistě náhodná 12 Phase Lock Loop
10
9.3. OBVOD DCD
9.3
43
Obvod DCD
Obvod DCD 13 může být prakticky realizován několika různými způsoby. Kvalita návrhu tohoto obvodu má přímý důsledek na množství kolizí při datovém přenosu, jedná se tedy o kritickou součást systému. Důvod je zřejmý, metoda přístupu CSMA klade vysoké nároky na kvalitu funkce DCD. Podle způsobu realizace obvodu DCD můžeme konstrukce rozdělit do následujících skupin: dle úrovně RF – DCD můžeme odvodit z úrovně RF signálu. Toto řešení má několik nevýhod. Jednak bude nezbytné získat z rádiostanice signál otevření squelche. Dalším, bohužel komplikovanějším, problémem je nutnost ručního nastavování squelche. To není problém v případě obsluhované stanice, v případě bezobslužného systému se jedná o nepřekonatelný problém. dle AF signálu – DCD je aktivní v případě výskytu signálu o kmitočtu značka nebo mezera v přijímaném signálu. Toto řešení poskytuje dostatečně kvalitní DCD, které bohužel reaguje i na „podobné” signály. Obdobně lze odvodit DCD v případě použití Manchester u ze zavěšení DPLL generátoru demodulačního signálu. dle zavěšení DPLL regenerátoru hodin – vycházíme ze střední hodnoty rozdílu fáze detektoru fáze signálu DPLL. V ideálním případě by při příjmu signálu měl být rozdíl fáze nulový. V reálném případě se budeme pohybovat v okolí nuly. Důležitým problémem zde bude rozhodovací úroveň vyhodnocení DCD, kterou je nutno správně nastavit.
9.4
Řídící logika
Tato část zajišťuje komunikaci mezi připojeným počítačem a zbytkem modemu. Tato část se liší v různých realizacích, proto se jí budeme zabývat konkrétně v popisech realizací. Tato část je ve všech případech odpovědná za přístupovou metodu CSMA, případně DAMA, v některých realizacích se podílí na tvorbě protokolu AX.25.
9.5
Obvody styku s počítačem
Většina realizací používá k připojení k počítači sériový port RS-232 v asynchronním režimu. Obvody styku tedy tvoří nějaký obvod sériového asynchronního portu, případně je tento emulován softwarově, ve spojení s nějakým převodníkem úrovní pro RS-232 14 . V současné době probíhají pokusy s nahrazením rozhraní RS-232 rozhraním USB, nejjednodužší cestou je použití řadiče sériového asynchronního portu pro sběrnici USB 15 . 13
data carrier detector = detektor datové nosné typicky MAX232 15 např. FTU232AM 14
44
KAPITOLA 9. AX.25 - HARDWARE
9.6
Metody přístupu k přenosovému médiu
Přenosové médium, tedy rádiostanice, může podporovat buďto plný duplex, zde by otázka přístupu k přenosovému médiu neexistovala, nebo poloviční duplex16 , což přináší možnost vzniku kolize. Kolize je stav, ke kterému dojde v případě, že v jeden okamžik vysílá více než jedna stanice. Možnost detekce vzniku kolize je v případě rádiového přenosu téměř nemožná, proto budeme na vznik kolize reagovat stejně, jako na jakoukoliv chybu přenosu. Z výše uvedeného plyne, že pravděpodobnost vzniku kolize je třeba minimalizovat, nejsmeli schopni její vznik vyloučit.
9.6.1
Metoda přístupu CSMA
Vycházíme z předpokladu, že obvod DCD pracuje korektně. Jako každý jiný obvodový prvek reaguje opožděně. Tedy pouhá detekce datové nosné je podmínkou nutnou, nikoliv postačující, k správné funkci zařízení. Mějme připravena data k vysílání. V časech, definovaných konstantou slottime se dotazujeme na stav DCD. Pokud je DCD neaktivní, dojde k vygenerování pseudonáhodného čísla, které je porovnáno s konstantou persistence a pokud je menší než persistence je zahájeno vysílání.
9.6.2
Metoda přístupu DAMA
Základní myšlenkou je existence jedné řídící stanice na kmitočtu, která přiděluje čas ostatním stanicím, přičemž veškerá komunikace musí procházet přes řídící stanici. Praxe ukázala, že tato cesta k dobrým výsledkům nevede, zbytečně prodlužuje dobu, kdy stanice čeká na příležitost k odeslání dat, protože se řídící stanice dotazuje stanic, které jsou v pořadí před stanicí s připravenými daty, ale žádná data připravena nemají. Totiž ani metoda přístupu DAMA nezaručuje šířku přenosového média, tudíž její nasazení nemá prakticky význam.
16
jeden vysílá, ostatní přijímají, role si mohou vyměňovat
Kapitola 10 Konkrétní hardwarová řešení Přestože protokol AX.25 nestandardizuje jednotlivá hardwarová řešení, uvedu na tomto místě několik konkrétních řešení. Z hlediska koncepce lze konkrétní konstrukce rozdělit na řešení s vlastní inteligencí a jednoduché modemy. V současné době se s rozvojem programovatelných logických obvodů začínají objevovat jakási „hybridní” řešení, která se snaží spojovat výhody obou výše uvedených řešení, občas s nevalným výsledkem. Na tomto místě se budu zabývat řešeními s vlastní „inteligencí”, jednoduché modemy budou popsány na jiném místě tohoto pojednání.
10.1
Protokol styku s počítačem
Na tomto místě bude účelné seznámiti se s protokoly zajišťujícímí komunikaci nadřízeného systému1 s řadičem. Typicky lze řadiče rozdělit na dva druhy: řadiče generující protokol AX.25 – tj. řadiče, které se přímo podílejí na tvorbě protokolu AX.25 řadiče negenerující protokol AX.25 – tj. řadiče, které přímo nevytvářejí protokol AX.25 zvláštní případy – sem zařazuji řadiče, které jsou schopny plnit vybrané jednoduché úkony v rámci sítě bez přispění nadřazeného systému a jsou schopny pracovat jako bezobslužné stanice2 .
10.1.1
Řadiče generující protokol AX.25
Tato zařízení jsou schopna plnit specializované úkoly, nebo se naopak chovat jako „chytré zařízení s hloupým terminálem”. Podle způsobu komunikace s nadřazeným systémem je můžeme rozdělit do několika skupin. Zařízení nepoužívající žádný protokol Jedná se o taková zařízení, která nepoužívají žádný strojově orientovaný protokol pro styk s nadřazeným systémem. Taková zařízení jsou vhodná ve spolupráci s jednoduchým terminálem, či terminálovým programem. Výhodou takového řešení je především kompatibilita s rozličným hardware. Typickými zástupci jsou PK-232, TAPR TNC-2, TINY-2, všechny řadiče firmy Kantronics a mnohé 1 2
typicky osobního počítače označované termínem „unmanned”
45
46
KAPITOLA 10. KONKRÉTNÍ HARDWAROVÁ ŘEŠENÍ
jiné. Některá taková zařízení jsou „multifunkční” a lze jejich rozhraní přepnout do jiného režimu, mnohá umožňují provoz i jinými režimy než je AX.25. Jednoduchý Hostmode Tato řešení navazují na předchozí a v podstatě se jedná o doplnění některých řídících znaků, které umožňují programu běžícímu na nadřízeném systému rozpoznat některé stavy a bezpečně určit, jaká data jsou momentálně zasílána. Tento režim komunikace již není čitelný pro uživatele a vyžaduje užití specializovaného terminálového programu. Prakticky všechny výše zmíněné systémy jsou schopny (po přepnutí do příslušného režimu) pracovat v nějakém hostmode. V Evropě je patrně nejrozšířenější WA8DED hostmode, který je patrně nejkomplikovanější.
10.1.2
Řadiče negenerující protokol AX.25
Tyto řadiče se nepodílejí na generování protokolu AX.25 a tuto činnost ponechávají na připojeném nadřízeném systému. Protokol KISS KISS 3 je pro AX.25 tím, čím je SLIP pro TCP/IP. Binární data bez FLAGů jsou obalena pomocí značek FEND. Pokud by se někde v datech vyskytnul znak s ordinální hodnotou shodnou se znakem FEND, je nahrazen sekvencí FESC TFEND. V případě podobnosti se znakem FESC se použije sekvence FESC TFESC. Znaky FEND lze mezi rámci sdílet, tzn. FEND označující konec jednoho rámce může, ale nemusí, označovat začátek jiného rámce. Bezprostředně po FEND musí následovat buďto další FEND, nebo číslo příkazu. Toto specifikuje, jestli jsou následující data určena k vysílání; pokud jsou určena k vysílání, specifikuje, na kterém portu mají být data odvysílána, nebo se jedná o řídící sekvenci. Řídící sekvence slouží k nastavování parametrů řadiče, tj. k přenesení konstant jako je persistence, slottime, TXDelay a TXTail. Řada výše zmíněných příkazů je standardizována. Krom takových příkazů mohou být implementovány ještě některé další. To se dělá pomocí příkazu Set Hardware, což je jeden z standardních příkazů, následovaným parametry. Takový způsob nastavování TNC není nikterak standardizován a je plně v moci tvůrce firmwaru. Ze strany operačního systému Linux je podporován příkaz set hardware, kterému lze předat libovolné parametry. Vlastní konfigurační program již musí vytvořit autor firmwaru, pokud nějaké rozšířené parametry potřebuje. CRC KISS Jedná se o jedno z rozšíření protokolu KISS. Data mezi dvěma značkami FEND jsou zabezpečena pomocí CRC součtu. Většinou se používá šestnáctibitový kontrolní součet před značkou FEND. Existují však „nekompatibilní” verze. Toto rozšíření má poskytnout elementární kontrolu chyb přenosu mezi počítačem a řadičem. V praxi se příliš nepoužívá - není důvod jej používat. Pokud dojde v přenosu dat mezi počítačem a řadičem, jsou data stejně zahozena a nápravu musí obstarat protokol AX.25. Pokud dojde k narušení značky FEND, jsou stejně zahozeny dva rámce, tedy zavedení CRC nepřináší žádné zlepšení. BPQ PollMode Jedná se o rozšíření, které má překonat omezení počtu sériových portů běžného osobního počítače. U počítačů IBM-PC kompatibilních není počet sériových portů z hardwarového hlediska omezen, omezen je bohužel počet vedení IRQ, což ve svém důsledku omezuje i počet sériových portů.4 Vzaty jsou následující předpoklady: 3 4
Keep It Simple and Stupid Polling IRQ funguje korektně jen v některých konfiguracích.
10.1. PROTOKOL STYKU S POČÍTAČEM
47
• Většina řadičů je jednoportových. • KISS dokáže adresovat porty. Tedy, pokud přiřadíme každému řadiči nějakou adresu a jejich vývody vhodně pospojujeme. Navenek se to tedy bude chovat jako jediný víceportový řadič. Má to ovšem malou chybu. V případě, že dva řadiče budou do sériové linky vysílat data zároveň, dojde k chybě. Tomu zabraňuje PollMode. Běžně funguje řadič tak, že data jsou odvysílána do sériové linky v momentě, kdy jsou k dispozici. Je-li aktivován PollMode, jsou data pouze řazena do fronty, přičemž k jejich odvysílání dojde až po obdržení Poll Requestu z počítače. Počítač postupně vyzve všechny řadiče k odvysílání dat. FrameKiller Počítač není schopen při použití protokolu KISS zjistit, zda rámec již odešel, nebo stále visí v řadiči. To způsobuje tzv.Snowball efekt. Jde o to, že doběhne-li časovač T1 dříve, než data odejdou z řadiče, vyskytne se jeden rámec v bufferu řadiče dvakrát a je také dvakrát odvysílán. Když je vysílán podruhé vyvolá Reject na přijímací straně... FrameKiller je proces, který počítá CRC všech neodvysílaných rámců v bufferu řadiče, přičemž si udržuje seznam CRC všech rámců v bufferu TNC. Pokud se nově vypočítané CRC rámce již v seznamu nachází, je rámec z vysílací fronty vyhozen. Pokud je CRC rámce shodné, lze předpokládat, že shodné jsou také rámce. BPQ AckMode Jiný způsob, jak vyřešit problém s časovačem T1. Každý rámec si nese svoji identifikaci. Jakmile je odvysílán, je vrácena řadičem tato informace. Tím lze spouštět T1 až v momentě, kdy je rámec skutečně odvysílán. Nad každým T1 však musí být spouštěcí timeout, pro případ, že by se oznámení ztratilo. 6PACK 6PACK je v podstatě varianta KISS u. Jde pouze o to, že se do počítače reportuje stav DCD a vysílá se v momentě příchodu dat do řadiče. Řízení metody přístupu k přenosovému médiu je tedy ponecháno na počítači. Enumerace řadičů Tento proces je částečně popsán výše. Provádí se pomocí „magického datagramu”. Na začátku je vyslán takový datagram, který říká řadiči, aby si přidělil číslo 0. Tento provede žádané a vyšle datagram, který říká řadiči, aby si přidělil číslo o jedničku vyšší, tedy 1. Takto datagram projde celým kruhem, až vykonfiguruje všechny řadiče. Z posledního řadiče se vrátí do počítače, takže jeho analýzou lze zjistit, kolik řadičů je připojeno. TxDelay too long Od některých uzlů sítě můžeme občas obdržet hlášení: *** txdelay too long To ukazuje na výskyt 6PACK u.5 U 6PACKu se velikost TxDelay posílá s každým rámcem. Při příjmu je toto pole nahrazeno počtem FLAGů před vlastními daty.6 Potíž se 6PACK em je v tom, že toto místo neříká o TxDelay v podstatě nic, ale dokáže „zpříjemnit” život. Některé řadiče z toho důvodu neposílají v době TxDelay FLAGy. 5 6
nebo jeho emulace – Flexnet drivery lidově se tomuto místu říká „TxDelay bonzbajt”
48
KAPITOLA 10. KONKRÉTNÍ HARDWAROVÁ ŘEŠENÍ
10.2 10.2.1
Hardware Standard TNC2
Na počátku bylo TAPR TNC1, ale protože ho v Evropě patrně nikdy nikdo neviděl, můžeme jeho existenci směle ignorovat. Základ TNC 2 je tvořen mikroprocesorem Z80-CPU s 32kB ROM a 32kB baterií zálohované RAM. Zálohování RAM lze za určitých okolností vypustit. Styk s počítačem, či jiným nadřízeným systémem, obstarává polovina obvodu Z80-SIO/0, zatímco druhá polovina slouží ke zpracování HDLC dat. Nezbytnou indikaci obstarávají nepoužité vývody handshake Z80-SIO/0. Pro synchronizaci časovacích smyček se používá vnějšího zdroje signálu 600 Hz. Paměti ROM a RAM jsou mapovány do oblasti paměti a to tak, aby procesor po RESETu spouštěl kod v ROM. Z80-SIO/0 je mapováno do oblasti zařízení. Je kladen nejvyšší důraz na jednoduchost, takže Z80-SIO/0 je mapováno několikrát. Celý systém tedy krom procesoru, paměti, sériového řadiče a několika logických IO žádné další specielní obvody nevyžaduje. Firmware pro TNC2 zahrnuje jednoduché implementace protokolu KISS, přes 6PACK, jednoduchý firmware pro použití s terminálem TAPR a jeho „vylepšenou” verzi TINY2, po implementace terminálového protokolu WA8DED, kombinovaného TheFirmware 7 . Vrcholem jsou firmwary neobsluhovaných uzlů sítě, jako jsou TheNET a X1J.
10.2.2
TNC 51
TNC51 je jeden z jednoduchých řadičů. Prozatím podporuje pouze protokol KISS. Základ tvoří jednočipový mikroprocesor Atmel AT89C51 8 s 32 kB externí paměti RAM. Komunikace s počítačem je realizovaná prostřednictvím sériového rozhraní integrovaného v jednočipovém mikropočítači AT89C51. Rozhraní pro komunikaci s modemovou částí je softwarově emulováno.
10.2.3
GC12AX
GC12AX je řadič navržený počátkem devadesátých let minulého století. Bývá označován jako TNC2 9 přesto, že se nejedná o hardware kompatibilní s TNC2, i když základem je Z80-CPU. Původně byl řadič dodáván s firmwarem, který byl podobný TheFirmware, ale neuměl protokol KISS. V současné době existuje port TheFirmware pro GC12AX, který je funkčně shodné s TheFirmware pro TNC 2. Další komplikace, která čeká na uživatele, jsou chyby v návrhu hardwaru GC12AX. Postup na uvedení tohoto řadiče do použitelného stavu jsem dostatečně popsal v příslušných dokumentech a takové úpravy padají mimo rámec tohoto pojednání.
10.2.4
TNC5 a TNC5+
Pro tento řadič platí totéž, co pro řadič GC12AX 10 , jen uživatel není sužován tolika chybami konstrukce. Novinkou je EEPROM, kam je možno specielním příkazem odložit 7
zahrnuje podporu terminálu, WA8DED hostmode a KISS proto TNC51 9 vzniklo původním propagačním materiálem 10 dílo stejného konstruktéra 8
10.3. JEDNODUCHÉ MODEMY
49
konfiguraci, která se opětně načte při novém zapnutí TNC. Dalším „vylepšením” je softwarové přepínání komunikační rychlosti seriového portu11 .
10.3
Jednoduché modemy
Kromě komplikovaných řadičů existují i jednoduché modemy. V podstatě se jedná o nekomplikované konstrukce bez vlastní inteligence. Jejich výhodou je obvykle cena, nevýhodou je zvýšená zátěž počítače a obvykle nestandardní programovací postupy při ovládání rozhraní počítače, což může v některých případech situaci komplikovat.
10.3.1
Baycom
Jedná se v podstatě pouze o AFSK modulátor a demodulátor s obvodem TCM3105. Později se začaly objevovat varianty s obvody XR2211 a XR2206. Připojuje se na sériový port a využívá jeho handshake vedení. Ovladače existují pro MS DOS a Linux. Pravdou bohužel je, že tyto modemy fungují správně jen někdy a zátěž počítače je značná.
10.3.2
YAM
Toto je jednoduchý modem využívající logické programovatelné pole firmy Xilinx. Pole se inicializuje z počítače, podle FPGA dat, zavedených při inicializaci, modem pracuje v režimu 1200 Bd AFSK, nebo 9600 Bd G3RUH. Komunikace přes sériový port probíhá též atypicky, ale využívá se schopností sériového řadiče. Řadič generuje při rychlosti 9600 Bd 1200 přerušení za vteřinu. Bohužel je tento modem konstrukčně řešen pro provoz 9600 Bd G3RUH, takže v režimu 1200 Bd AFSK nefunguje příliš dobře.
10.3.3
Používané modulace
300 Bd FSK Používá se především na krátkých vlnách. Modulátor je obvykle tvořen pomocí obvodu XR2206, nebo pomocí dvou jiných oscilátorů. Pokud TRX má možnost přímé tvorby FSK signálů, lze eliminovat přítomnost modulátoru. Poslední možností je použít přímou číslicovou syntézu. Demodulátor bývá výhradně řešen filtrační metodou použitím několika operačních zesilovačů. Občas se objeví nějaké řešení založené na demodulaci pomocí fázového závěsu. 1200 Bd AFSK Používá se na pásmech 10m a kratších. Pro přenos se užívá FM rádiostanic. Používají se dva tóny 1200 Hz a 2200 Hz. Často je používán obvod TCM3105 12 , často nahrazovaný pomocí dvojice obvodů XR2211 a 2206. Modulátor založený na XR2206 bývá občas nahrazen přímou číslicovou syntézou13 . Toto je nejčastější používaný režim a právě proto na něj vznikl nespočet modemů. 2400 Bd Manchester Výhodou totoho režimu je možnost užití úzkopásmových FM rádiostanic, přičemž rychlost je zvýšena na dvojnásobek. Nevýhodou je poměrně složitý 11
„autobaud” rutina bohužel chybí dobrým zdrojem jsou vyřazené telefony z telefoních budek 13 např. v ATmodemu - XR2206 je poměrně drahý 12
50
KAPITOLA 10. KONKRÉTNÍ HARDWAROVÁ ŘEŠENÍ
modem. Tento režim byl často opomíjen, protože navýšení rychlosti na dvojnásobek nepřinášelo nějaké pronikavé zvýšení rychlosti přenosu dat, přičemž snižovalo odolnost k rušení a podstatným způsobem omezovalo dosah takových zařízení. 4800 Bd Manchester Jedná se o exotické řešení. Nelze již použít úzkopásmové stanice. Byl rychle vytlačen 9600 Bd G3RUH. Výhodou proti G3RUH je menší náročnost na FM demodulátor TRX u a větší odolnost k rušení. V podstatě se Manchester objevoval až do rychlosti 38400 Bd, přičemž u vyšších rychlostí se jevil spolehlivěji, než G3RUH. 9600 Bd G3RUH Jedná se o modulaci GMSK. Výklad podstaty této modulace přesahuje rámec tohoto pojednání, ale je třeba zmínit, že z principu není vhodné používat NRZ/NRZI konvertor a regenerátor přijímacího taktu, protože tyto signály odvozuje GMSK modem přímo z přijímaného signálu. Vysílají se tedy přímo HDLC data.14 G3RUH je velmi náchylný na kvalitu přenosové trasy a korektní demodulace slabých signálů je v podstatě vyloučena.
14
MSK i GMSK je synchronní režim, který umí přenést i hodinový signál
Literatura [1] Ford, S.: HF Digital Handbook. ARRL, Newington (U.S.A.), 1999 [2] Mazouch, T.: TNC 51. [3] Berka, D.: Moderní krátkovlnné digitální komunikace. Sborník HOLICE 96 [4] Pakratt PK-232 operating manual
51