Modemy - zajímavý hardware

v1.5,

O tomto dokumentu
Úvod
Historie modemů
Jak modem pracuje?
Baud versus bps
Datové standardy
Faxové standardy
Komprese dat a korekce chyb
V.90 a rychlost 56 000 bps
V.92
Navázání spojení mezi modemy
Řízení toku dat
Metody řízení toku dat (flow control)
Změna rychlosti během spojení
Kompatibilita modemů
Typy modemů
Hlasové modemy (voice modems)
Sériové rozhraní počítače
Připojení více modemů k počítači
Synchronní a asynchronní přenos
Přenos dat pomocí modemů
Programy pro spolupráci s modemem
Spojení dvou počítačů pomocí modemů
Připojení k Internetu pomocí modemu
Slovníček
ToDo

O tomto dokumentu

Primární zdroj: http://www.pslib.cz/kerslage/manuals/modemy
Autor: milan.kerslager@pslib.cz

Teto dokument je možno bezplatně šířit, odkazovat se na něj, čerpat z něho i jinak ho využívat za podmínky, že bude vždy uveden autor a odkaz na tento originální dokument. Komerčního využití jen za souhlasu autora. Uvítám jakékoliv informace či připomínky k tomuto textu.

Úvod

Modem nám umožňuje pomocí stávajících telefonních linek zprostředkovat komunikaci mezi vzdálenými počítači. K tomuto spojení nepotřebujeme kromě telefonu, počítače a modemu žádné další zařízení. Můžeme tedy realizovat dálkové spojení bez samostatných kabelů či bezdrátových spojů všude tam, kam vede telefon.

Modem při této komunikaci mění digitální signál vystupující z počítače, který nelze vyslat přímo do telefonního přístroje, na signál analogový (charakteristické škvrkání, pískání), který již je možné pomocí telefonu přenášet stejným způsobem, jako hlas. Tento převod se nazývá modulace. Na opačné straně druhý modem převede modulovaný signál zpět na digitální, který může přijímající počítač zpracovat, čemuž se říká demodulace. Odtud pochází zkratka MoDem, čili modulátor a demodulátor.

Historie modemů

První modemy sloužily k terminálovému spojení s velkými počítači IBM. Dosahovaly závratných rychlostí 110 bps (bits per second, tedy bitů za vteřinu - jeden byte je 8 bitů). Do druhé poloviny 60. let se rychlosti držely na 300, maximálně 600 bps.

V roce 1981 představila firma Hayes Smartmodem řízený mikroprocesorem, který byl ovládán dnes již všude používanou sadou AT příkazů. Modem se tak změnil z jednoúčelového zařízení na univerzální přístroj, jehož nastavení se mohla měnit přímo z počítače bez potřeby hardwarových zásahů. Vznikly stadardy CCIT V.xx pro rychlý přenos dat, které umožnily komunikovat modemům od různých výrobců mezi sebou bez omezení. Znamenalo to bouřlivý rozvoj modemů a jejich masové rozšíření. Organizace CCIT byla později přejmenována na ITU-T (International Telecommunications Union), viz http://www.itu.int.

Dnešní modemy obsahují kromě mikroprocesoru i paměť, ve které je uložen program řídící činnost modemu. Protože se již dále nemění způsob vysílání dat do telefonní linky, je dnes obvykle možné naučit modem novým kouskům či vyšší rychlosti pouhou aktualizací tohoto programového vybavení. Pro ulehčení přechodu na novou verzi jsou některé modemy dokonce vybaveny pamětí typu FLASH, obsahující program ovládající modem (tzv. firmware), kterou lze snadno přeprogramovat přímo z připojeného počítače bez speciálního vybavení. Tuto možnost oceníme zejména když firmware obsahuje nějakou nepříjemnou chybu.

Jak modem pracuje?

Modem musí umět nejen přenášet data přes telefonní linku k druhému modemu, ale musí také umožňovat uživateli měnit jeho nastavení. Době, ve které je modem ovládán a nastavován se říká příkazový režim (včetně vytáčení telefonního čísla). Po vytočení telefonního čísla modemy vysílají tóny, které slouží k navázání spojení. Jakmile se modem spojí se svým protějškem, přejde do tak zvaného přenosového režimu. Na začátku přenosového režimu se nejprve modemy musí domluvit na parametrech spojení, jako je přenosová rychlost, použitý modulační protokol, použitá korekce chyb a komprese dat. Protože se modemy snaží o dohodu od nejnovějších ke starším protokolům, je zajištěno, že se samy mezi sebou dohodnou na nejlepším možném způsobu komunikace. Novějšímu typu se tak také podaří spojit se se starším typem modemu.

Baud versus bps

Pojmy baud a bps v počátcích existence modemů splývaly, díky dnešní honbě za vyššími rychlostmi však již označují rozdílné skutečnosti.

Baud je počet změn signálu za vteřinu vyslaného modemem. Například 1200 baudů znamená, že vyslaný signál se mění každých 833 mikrosekundy (1/1200). Běžné hodnoty jsou 50, 75, 110, 300, 600, 1200 a 2400. Většina vysokorychlostních modemů pracuje s rychlostí 2400 baudů, protože hlasová telefonní linka má omezenou frekvenční šířku přenášeného pásma zvuků. Toto pásmo je omezeno proto, že k tomu, aby byla řeč jednoho účastníka telefonního rozhovoru přenesena nezkresleně k druhému, není potřeba přenášet vysoké kmitočty. Lidské ucho sice slyší zvuky o kmitočtech mezi 16 a 20 000 Hz (Hertzů), nejlépe je však natrénováno na frekvence pohybující se mezi 500 a 4000 Hz s maximem citlivosti okolo 1000 Hz, tedy v oblasti lidské řeči.

Telefonní společnosti tohoto jevu využívají a různými triky takto mohou po jedné dvojici drátů přenášet více hovorů současně. Rychlosti vyšší než 2400 baudů je z výše uvedeného důvodu prostřednictvím telefonní linky velice těžké přenášet. Proto se zvyšování přenosové rychlosti dosahuje kódováním více bitů do jednoho baudu a ne zvyšováním nosného kmitočtu. Baud je pojmenován po vynálezci asynchroního telegrafu, který se jmenoval Emile Baudot.

Bps je množství bitů přenesených za sekundu. Běžné hodnoty jsou 50, 75, 110, 300, 600, 1200, 2400, 9600, ... 115 200. Pří spojení rychlostí 28 800 má většina lidí na mysli jednotku bps, i když mluví o baudech.

Datovou propustnost je dále možné zvyšovat kompresí přenášených dat nebo odstraněním start- a stop-bitů, počet baudů se dnes však na rozdíl od bps již nemění.

Datové standardy

Datové standardy definují parametry pro fyzickou realizaci spojení, jako jsou pracovní frekvence a způsoby modulace dat. Tyto standardy nijak nesouvisí s algoritmy pro korekci chyb a kompresi dat, jak si je dále popíšeme. Dnešní modemy podporují tyto standardy: V.FC definovalo rychlosti od 14 000 do 28 800 akceptované mnoha výrobci modemů před zavedením protokolu V.34. Před přijetím standardu V.90 byly rychlosti 56 000 kbps označovány jako V.pcm. Této nejnovější technologii je věnována zvláštní kapitola.

Protokol, který je nakonec použitý při spojení, je závislý na typu modemu, se kterým se spojujeme. Snahou všech výrobců modemů bývá podporovat co nejvíce standardů, aby jejich modem nalezl široké uplatnění. Více se dočtete v odstavci o kompatibiltě modemů. Modemy pro pevné linky nejsou svázány maximálním počtem baudů jako klasické modemy, dosahují proto vyšších rychlostí spolehlivějším způsobem, avšak absenci všeobecných standardů nahrazují proprietálními protokoly a proto není vhodné kombinovat modemy pro pevné linky od různých výrobců.

Protokol bps Protokol bps Protokol bps Protokol bps
V.21 300 Bell 103 300 V.34 2400 V.90 28 800, 29 333, 30 667
V.22 1200 Bell 212A 1200 4800 31 200, 32 000, 33 333
V.22bis 2400 V.FC 14 400 7200 33 600, 34 000, 34 667
V.32 4800 16 800 9600 36 000, 37 333, 38 000
9600 19 200 12 000 38 667, 40 000, 41 333
V.32bis 4800 21 600 14 400 42 000, 42 667, 44 000
7200 24 000 16 800 45 333, 46 000, 46 667
9600 26 400 19 200 48 000, 49 333, 50 000
12 000 28 800 21 600 50 667, 52 000, 53 333
14 400 24 000 54 000, 54 667, 56 000
26 400
28 800

Protokol V.34 definuje kromě povinného základu i volitelná rozšíření, která nemusí být implementována. V důsledku to pak vede k rozdílům ve spolehlivosti a rychlosti spojení v závislosti na šíři a kvalitě implementace zmíněných standardů výrobcem modemu.

Nejzajímavější volitelnou částí protokolu V.34 je možnost rozdílných (asymetrických) rychlostí pro příjem a vysílání (tzv. split/asymmetric speeds). Telefonní útředny totiž dovolují, aby hovor byl přenášen v každém směru různými cestami a to pak vede k rozdílné kvalitě linky pro vysílání a příjem. Pokud oba modemy toto volitelné rozšíření podporují, můžeme dosáhnout lepších výsledků při spojení (rozšíření je podporováno např. modemy USR Robotics, Diamond/Supra, Motorola). Provider by tedy měl vždy volit modemy solidních značek, které za vyšší cenu zaručí zákazníkům maximální využití telefonní linky.

Faxové standardy

Faxové standardy mají definovány vlastní pravidla komunikace. Jsou to ITU-T V.27ter (přenosová rychlost do 4800 bps), V.29 (do 9600 bps) a V.17 (do 14 400 bps). Většina klasických faxů dnes dokáže komunikovat rychlostí 9600 bps, novější pak podporují protokol V.17 s přenosovou rychlostí 14 400 bps.

Mezinárodně akceptované protokoly pro přenášení faxů dělí faxy na tři skupiny: Group 1, 2, a 3. Většina faxů a faxmodemů dnes podporuje Group 3.

Ke komunikaci programu s modemem jsou k dispozici příkazy Class 1 a Class 2. Class 1 přenáší většinu práce s kódováním a dekódováním faxového obrazu na program, zatímco Class 2 přenáší většinu práce na modem a tak šetří výkon počítače. Výběr příkazové sady závisí na typu použitého modemu a programu použitému k jeho ovládání.

Příchozí faxové volání lze rozpoznat podle CNG tónu (1100Hz), který vysílá volající fax. Podle něj faxmodemy rozlišují příchozí faxová volání od datových tak, že po zvednutí sluchátka naslouchají (tzv. silent answer).

Komprese dat a korekce chyb

Komprese dat a korekce chyb umožňuje bezchybný průtok dat i při vyšších rychlostech, než je skutečná přenosová rychlost linek. Standardy komprese jsou MNP 5 a V.42bis. Pro korekci chyb jsou určeny standardy MNP 2-4, MNP 10 a V.42 (neboli LAPM). MNP 5 (MNP je zkratka podle firmy Microcom Network Protocols, která jej zavedla) je kompresní algoritmus, který umožnuje data zhustit až dvakrát (poměr 2:1), tedy při přenosové rychlosti 28 800 bps dosáhne datové propustnosti až 57 600 bps v datových standardech V.FC a V.34. Spojení podle MNP 5 využívá též opravných kódů dle MNP. Nevýhodou tohoto protokolu je, že při kompresi již koprimovaných dat dochází paradoxně k prodloužení dat. Přenos souborů komprimovaných například programy ZIP, ARJ a podobně trvá pak déle, než bez komprese.

V.42bis je rozšíření opravného protokolu V.42 o BTLZ (British Telecom Lempel-Ziv) datovou kompresi se zhuštěním až 4:1, tedy s datovou propustností až 115 200 bps pro datové standardy V.FC a V.34. Tato komprese se umí vypnout v případě, že přenášená data nelze již dále komprimovat, čímž odstraňuje nedostatky zmíněné u MNP 5.

Nejnovější komprese V.44 je definována jako volitelná ve standardu V.92. Poskytuje až o 120% lepší kompresi, než stávající protokol V.42bis (viz níže).

Korekci chyb není vhodné vypínat, protože oddělí z každého znaku start- a stop-bity, čímž zvýší datovou propustnost. Vlastní korekce je prováděna pomocí kontrolních součtů ve větších blocích dat.

V.90 a rychlost 56 000bps

Maximální obvyklá rychlost přenosu dat je u dnešních modemů díky kódování více bitů do jednoho baudu běžně 28 800 (V.34) až 33 600 bps (V.34+). O těchto rychlostech se krátce mluvilo jako o nepřekročitelné magické hranici za kterou se již dále nedá jít. Pak se ovšem na scéně objevily modemy dosahující rychlosti 56 000 bps hned od dvou výrobců: 3Com/U.S. Robotics Corporation (x2 standard) a Rockwell International, Motorola a Lucent Technologies (technologie K56flex). Jejich řešení nebyla kompatibilní a komise ITU-T přijala standard nazvaný V.90 po několika odkladech až v únoru 1998 (dříve, než bylo určeno označení V.90, se pro 56K technologii používalo označení V.pcm). To znamenalo jisté přešlapování na místě a nejistotu uživatelů, kteří se báli promarněné investice. Dlužno dodat, že tak vysokou rychlost dosáhneme jen ve směru k uživateli, zpět data tečou stále maximální rychlostí 33 600 bps. To ovšem většíně uživatelů nevadí, protože právě tento směr je pro ně důležitější, když si z Internetu stahují WWW stránky nebo programy. Opačným směrem putují pouze požadavky a příkazy, které stránky či soubory stáhnout a pro ty dosavadní rychlost stačí.

Podstatou tohoto řešení je spolupráce digitálních ústředen, které přenášejí digitální data přímo od vysílající strany bez nutnosti jejich modulace až do poslední ústředny před příjemcem, kde jsou teprve modulována a analogovým způsobem přenesena do přijímajícího modemu. U tohoto způsoby přenosu je nutné, aby byl vysílající (provider) připojen k ústředně digitálně (např. pomocí ISDN nebo přímo PCM, které používají telefonní ústředny).

U těchto vysokých rychlostí se setkáme i s probémem, jak takové velké množství dat dostat do počítače. Dnešní sériové porty, které najdeme v počítačích dosahují maximální propustnosti 115 200 bps, což při maximální teoreticky dosažitelné rychlosti s kompresí nestačí pro 56k modemy, které potřebují datovou propustnost až 224 000 bps (při max. přenosové rychlosti 56 000 bps se čtyřnásobnou kompresí pomocí V.42bis). U V.44 pak narazíme na fyzické možnosti sériového portu ještě razantněji.

Protože sériové porty dosahují nízké rychlosti (115kbps), je extrení modem připojený na sériový port nucen při vyjednávání kompresi odmítnout (pokud jak port tak modem nepodporují vyšší rychlost sériového přenosu). Když si uvědomíme, že při brouzdání Internetem přenášíme textové HTML a CSS stránky, u kterých čtyřnásobná komprese není nereálná, získáváme pádný důvod k zakoupení interního modemu, který omezení sériového portu obchází. Lze také s výhodou využít vyšších přenosových rychlostí USB (Universal Serial Bus).

V.92

ITU přijala specifikaci V.92 v listopadu roku 2000. Mezi tři nejvýraznější vylepšení patří Quick connect, Modem-on-HoldTM (MOH) a PCM Upstream. Základní informace naleznete na adrese http://www.v92.com.

Quick connect snižuje dobu vyjednávání spojení na polovinu, tj. z 20 vteřin na 10 vteřin pomocí uložení parametrů linky u klienta. Klient pak po navázání spojení může uložené informace porovnat s aktuálním stavem a v případě shody je rovnou použít. Pokud není shody dosaženo, použije se klasické vyjednávání podle V.90.

Komprese V.44 přináší možnost přenosu dat s o 10 až 120% lepší datovou propustností než původní V.42bis. Nejvýraznějších výsledků dosáhne na textových dokumentech (HTML stránky, kaskádová styly, elektronická pošta, textové formáty a zdrojové kódy). Komprese V.44 není povinnou součástí, takže nemusí být ve všech modemech implementována.

Modem-on-HoldTM vylepšuje stávající metodu příjmu telefonního hovoru během datového přenosu (tzv. Call-Waiting). Umožňuje dosáhnout odložení datového přenosu (až do délky stanovené ISP), během kterého může být vyřízeno telefonní volání bez nutnosti znovu vytáčet ISP a znovu navazovat spojení. Toto rozšíření bude fungovat pouze pokud telefonní společnost podporuje Call-Waiting a klient má tuto službu aktivovánu. Stejně tak je potřeba zajistit, aby modem správně rozpoznával příslušné tóny oznamující Call-Waiting. Podržení datovéh spojení obstarává na výzvu ústředny speciální aplikace (applet), který je dodáván spolu s modemem (umožňuje hlasové volání odmítnout nebo akceptovat a zajistí pokračování datového volání po zavěšení). Příchozí volání může přenášet i informaci o čísle volajícího (CID) nebo jména. Obchodní název pro MOH je u čipu Conexant V.92 NetWaitingTM.

PCM Upstream zvyšuje rychlost uploadu (tj. směr toku dat od klienta) na 48kbps. Stejně jako V.90 vyžaduje, aby ve spojení byl maximálně 1 analogový spoj. Primárně je určen pro Web kamery a další zařízení, která převážně produkují data.

Navázání spojení mezi modemy

Modem se nejprve pokouší navázat spojení nejvyšší možnou rychlostí (např. 28 800 bps). Pokud není možné navázat spojení na této rychlosti, modem zkouší nejbližší nižší rychlost (26 400 bps). Takto se rychlost snižuje až do úspěšného spojení modemů, a tak se modemy automaticky spojují nejvyšší možnou rychlostí za daných okolností.

Je-li povolena komprese dat a korekce chyb, pokusí se modem po navázání spojení o dohodu se svým protějškem na těchto protokolech. Pro spojení se pak vyberou nejvýkonnější protokoly, které podporují oba přístroje. Maximální datová propustnost je ovšem ovlivněna mnoha dalšími faktory, jako je stav telefonní linky, rychlost sériových portů, rychlost a zatížení počítačů na obou stranách a podobně.

Řízení toku dat

Po navázání spojení oznámí modem počítači informaci o přenosové rychlosti. Pokud modem nepodporuje korekci chyb nebo kompresi dat, je při tzv. "přímém spojení" nutné sladit rychlost přenosu dat mezi modemy s rychlostí přenosu dat z modemu do počítače. Opakem jsou modemy s "řízením toku dat" které nepotřebují sladit rychlost datové propustnosti s rychlostí komunikace modemu s počítačem. Počítač pak může vyzvedávat data z modemu vyšší rychlostí (např. 38 400), než data přicházejí z druhého modemu (např. 9 600). Opačný poměr rychlostí není možný. Větší rychlost přenosu dat z modemu do počítače je výhodná, pokud modem používá kompresi dat. Data přicházejí do modemu z jeho protějšku konstatní rychlostí, ale po dekompresi v modemu nabydou na objemu (až 4 krát u V.42bis). V tomto případě oceníme rychlejší přenos dat z modemu do počítače. Pokud se v takovémto případě ovšem špatný program pokouší sladit rychlost spojení s rychlostí odesílání dat do počítače, dojde ke ztrátě či znehodnocení dat. V tomto případě modem umožňuje tuto situaci vyřešit oznamováním "falešných" rychlostí rovných maximální teoretické datové propustnosti.

Metody řízení toku dat (flow control)

Metody řízení toku dat umožňují přenášet mezi modem a počítačem informace o možnosti přenosu dat nebo o nutnosti vyčkat, až bude protějšek data schopen přijmout. Umožňuje tak řešit situaci při komprimaci dat, kdy data sice přicházejí do modemu konstatní rychlostí, ale po dekomprimaci se dynamicky mění jejich objem a tak i potřebná frekvence jejich odesílání do počítače.

Tok dat z modemu do počítače lze řídit dvěma způsoby. První je označován jako softwarový (tzv. software handshaking) a je realizován pomocí posílání speciálních řídících znaků Xon/Xoff. Druhý je označován jako hardwarový (tzv. hardware handshaking) a je realizován dvěma řídícími signály RTS/CTS rozhraní RS-232). Hardwarová metoda řízení toku dat je obecně více používána, je rychlejší a spolehlivější. Softwarové řízení toku dat nelze používat při přenosu binárních dat (mohou obsahovat speciální znaky Xon/Xoff a narušit tak řízení toku dat mezi modemem a počítačem), hodí se tedy pouze pro terminálovou emulaci a tak patří trochu historii.

Hardware handshaking (označováno také jako RTS/CTS) pracuje s dvěma signály RTS a CTS. Když je jedna strana připravena odeslat data, nastaví signál RTS (Request to Send - žádost o povolení k odeslání dat), na který protější strana odpoví signálem CTS (Clear to Send - připraven přijmout data), až když je schopna data přijmout. Takto se zařízení chrání před zasláním více dat, než jsou schopna přijmout. Uvedený postup platí u obou směrů komunikace.

Nejčastější chybou při nastavování řízení toku dat je situace, kdy nastavíme jen jednu stranu a zapomeneme shodně nastavit i druhou stranu sériové linky (tj. sériový port v počítači je nastaven jinak, než modem). Chyba se projevuje buď úplnou neschopností komunikace s modemem nebo zákeřněji jako nevysvětlitelná zpomalení či zatuhávání komunikace při pokusu o přenos většího objemu dat vyšší rychlostí.

Změna rychlosti během spojení

Moderní modemy dovedou změnit během spojení v závislosti na stavu linky rychlost přenosu dat a maximaliovat tak datovou propustnost spojení. Vyjednávání o nové rychlosti se provádí buď pasivně (náš modem nebude iniciovat změnu rychlosti v závislosti na stavu liky) nebo aktivně, kdy modem při změně podmínek na lince automaticky iniciuje nové vyjednávání o rychlosti.

Specifikace V.32 požaduje pro změnu rychlosti tzv. Retrain. Retrain trvá zhruba 30 vteřin a obsahuje tyto kroky:

  1. změna rychlosti na 4800 bps
  2. analýza kvality linky a optimalizace spojení, je-li možná
  3. vyměnit si informace o podporovaných rychlostech ("negoitate")
  4. pokud to linka umožňuje, přepnout se na další rychlost podporovanou oběma modemy
Specifikace V.32bis (14 400 bps) obsahuje dva kroky:
  1. modem musí být schopný změnit rychlost (Rate Renegotation) dolu nebo nahoru, když druhý modem iniciuje změnu rychlosti
  2. volitelně může modem iniciovat změnu rychlosti. Protože je iniciace změny rychlosti volitelná, některé V.32bis modemy neumějí iniciovat tuto změnu
V.32bis tedy provede prakticky to samé (krok 4 u V.32), ale rychleji, než během Retrainu. Bohužel to přináší problémy na velmi nekvalitních linkách, kde rychlost 4800 bps je příliš vysoká.

Některé starší modemy umožňují pouze několik změn směrem nahoru během jednoho spojení, pak spojení ztratí. Důvodem je chyba v ve firmware, který řídí modem. Řešením je snížit množství podporovaných přenosových rychlostí na svém modemu pomocí nastavení příslušných registrů. Pak se rychlost nebude tak často měnit (budou větší skoky).

Kompatibilita modemů

Jak je zmíněno v kapitole o datových standardech, snahou většiny výrobců je, aby jejich modem dokázal navázat spojení s většinou ostatních modemů. Z řady vystupují výrobci modemů, kteří prosazují vlastní standardy. Modem je pak kompatibilní spíše sám se sebou, než s jiným modemem. Vlastní protokoly mají modemy US Robotics HST, CompuCom, Telebit a Hayes V Series. S těmito modemy se téměř vždy dá navázat spojení přinejmenším na 2400 bps. Některé z nich podporují tzv. "dual standard", čímž je míněno, že modem dokáže jak vlastní, tak obecný standard V.32 nebo V.32bis. Pokud je však tato funkce nevhodně nakonfigurována, může se Vám stát, že s obecným standardem V.32 a V.32bis nepochodíte.

Dalším problémem mohou být potíže s firmware (programové vybavení modemu od výrobce) modemu. Pokud je modem staršího data, vyplatí se zjistit si u výrobce možnost upgrade firmware (například pomocí Internetu). Někteří pionýři vysokých rychlostí uveřejnili opravy firmware, aby odstranili problémy se vzájemnou kompatibilitou modemů. U nových modemů je obvyklé, že firmware je uloženo v paměti, kterou je možno bez speciálních zařízení přeprogramovat (EEPROM, FlashROM) přímo z počítače zvláštním programem. Pokud hodláte provést upgrade firmware, dejte si pozor na místní podmínky v telekomunikační síti. Firmware je často přizpůsobováno místním podmínkám a s firmware pro USA nebudete třeba možné navázat spojení v ČR.

Pokud se spojujete s historickým modemem 2400 bps, je někdy nutné na novějším modemu vypnout korekci chyb a datovou kompresi, která může činit těmto muzejním exponátům problémy.

Zvláštní kapitolou kompatibility jsou různé typy modemů, které vznikají jako levnější varianty nebo proprietální řešení různých výrobců, kteří si mezinárodně uznávanými standardy hlavu příliš nelámou. Takové modemy nepůjdou používat například v různých hrách, protože je nebudou umět ovládat.

Typy modemů

Hayes kompatibilní modemy jsou nejrozšířenější skupinou modemů a pokládáme je za standard. Jsou to modemy, které mají vlastní mikroprocesor, jsou řízeny programem (firmware) a je možné je konfigurovat známými AT příkazy. I když každý výrobce rozšiřuje základní sadu AT příkazů o vlastní vymoženosti, je jednoduché tyto modemy používat, protože jsou obvykle nastaveny od výrobce tak, aby vyhověly nejširšímu okruhu zájemců. A i když nejsou, je snadné vyčíst z dokumentace posloupnost AT příkazů, která modem přizpůsobí našim požadavkům (tzv. inicializační řetězec). Tyto modemy je snadné používat i na různých platformách (Windows, DOS, Linux, OS/2, ...) a lze je jen doporučit, protože nepotřebují speciální ovladače, způsob jejich ovládaní je znám a nenarazíme na žádná výrobní tajemství či nepřekonatelné licenční podmínky.

Softwarové modemy (také soft-modemy) jsou odlišné tím, že nemají vlastní mikroprocesor a proto je musí ovládat procesor počítače (také tzv. "Host Signal Processing"). Znamená to pro počítač velké zatížení (až 50% na P133). Výhodou je nízká cena a to, že jsou velmi malé (někdy on-board třeba v notebookách). Nevýhodou je nekompatibilita a potřeba speciálního programu k ovládání modemu.

Windows modemy (WinModem) a RPI modemy (také známé jako WinRPI - Rockwell Protocol Interface). Zástupci této kategorie jsou například USR Sportster Winmodem a IBM Aptiva MWAVE. Používají procesor počítače k ovládání modemu, ale ne k manipulaci s daty, takže zatížení procesoru je menší (kolem 7% na P133). Jejich výhodou je nízká cena, WinModemy jsou (na rozdíl od RPI modemů) dostupné pouze v interním provedení. Nevýhodou je proprietální řešení, které vyžaduje pro ovládání speciální program, bez něhož jsou nepoužitelné. Ovladače nejsou k dispozici například pro Linux a ani jiné klony Unixu, protože komunikační protokol je chráněn licencí a neochota výrobců spolupracovat s vývojáři je až zarážející.

Celluární modemy jsou modemy pro mobilní (celluární) telefony. Jejich výhodou je, že jsou použitelné i v místech, do kterých nevede telefonní linka a tak jsou využívány hlavně jako doplněk k notebookům, pokud jejich majitel touží po doopravdy mobilní kanceláři. Vše ostatní lze pokládat za nevýhody. Maximální přenosová rychlost je pouze 9 600 kbps a jsou dostupné jen jako PCMCIA karta, která je propojena s vlastním mobilním telefonem kabelem (telefon ovšem musí datové přenosy podporovat). To vylučuje jejich použití ve stolním počítači, pokud si nepřikoupíte zvláštní šachtu pro PCMCIA karty. Cenově vychází náklady na pořízení i provoz výše, než u modemů pro klasické telefonní linky, zvláště při delší době připojení.

Hlasové modemy (voice modems)

Hlasové nebo jinak voice modemy jsou zcela bězné modemy, které známe. Oproti běžným modemům mají převodník, který umí digitalizovat přicházející zvuk a naopak měnit digitální záznam přicházející z počítače na zvuk (analogový signál). Většina z těchto modemů umí navíc přicházející zvuky do jisté míry analyzovat. Například rozpoznají ticho na lince, vyzváněcí a obsazovací tóny. Hlavně však mohou rozpoznávat DTMF tóny (Dual Tone Modulation Frequency), které vydávají tlačítkové telefony při vytáčení čísel. Samozřejmostí bývá u těchto modemů vlastní reproduktor a zdířky pro připojení sluchátek a mikrofonu. Formát zvukových dat se liší podle typu modemu, proto je potřeba používat různé konvertory, abychom mohli používat univerzální formáty, které jsou použitelné i jinde.

Nejjednodušší využití pro tyto modemy najdeme snadno - jako telefonní záznamník, který může snadno nabýt netušených možností. Modem sám při příchozím volání rozpozná, dovolal-li se člověk nebo má navázat datové či faxové spojení. Rozpozná-li hlas, můžeme vhodně voleným programem umožnit uložení záznamu nebo další činnosti, které může modem do telefonu nabízet hlasově volajícímu. Volající může zpětně ovlivňovat chování programu pomocí tlačítek na telefonu nebo dokonce i hlasově.

Sériové rozhraní počítače

Sériové rozhraní počítače slouží k připojování periferií k počítači. Vedle myši, která je asi nejznámmějším sériovým zařízením, se i modem připojuje k tomuto rozhraní. Existují sice i modemy, které lze připojit na paralelní port, ale je jich nesrovnatelně méně, než těch klasických, sériových.

Připojujeme-li k sériovému rozhraní starší modem, nemusí to být tak jednoduché, jako u nejnovějších modelů. Na rozdíl od posledních výkřiků techniky, které se samy přizpůsobí rychlosti a tvaru zasílaných dat, jsou starší modely náchylné na přesné nastavení sériového rozhraní.

Rychlost sériového rozhraní počítače byla dříve nízká, ale postačující pro tehdejší modemy. S nástupem rychlejších modemů bylo nutno zvýšit i rychlost sériového rozhraní. Za vysokorychlostní se považují všechny modemy s rychlostí 14 400 bps a vyšší.

Starší sériová rozhraní s obvody 8250 a 16540 neposkytují možnost vysokorychlostního přenosu. Jejich maximální rychlost je 38 400 bps, což je pro teoretickou rychlost přenosu dat s V.42bis málo (28 800 bps krát 4 je 115 000 bps). Řešením je buď omezení maximální datové propustnosti modemu (aby se zabránilo ztrátám dat mezi modemem a počítačem) nebo nákup nových "rychlých" portů. Nové obvody UART 16550A umožňují komunikaci rychlostí až 115 000 bps, vyhoví tak většině současných modemů. Mají navíc přímo v sobě integrovánu vyrovnávací paměť o velikosti 16 byte (8250 a 16540 mají pouze 1 byte), která omezí počet vyvolávaných přerušení pro obsloužení sériového portu počítačem a sníží tak zátěž počítače na rozumnou hodnotu, což oceníme zejména ve víceúlohových systémech (Unix, OS/2, Windows, ...). Nejnovější porty sériového rozhraní obsahují obvod 16650, který má na sobě integrovénu vyrovnávací paměť dokonce 32 byte. Čip UART 16550A je opravenou verzí čipu 16550, který obsahoval hardwarovou chybu a byl proto nahrazen novějším typem.

Pro nejnovější 56k modemy je potřebná rychlost až 224 000 bps, což je příliš i na dnešní sériové porty. Můžete si sice koupit přídavné porty, které do počítače hlásí poloviční nebo čtvrtinovou rychlost, než kterou ve skutečnosti komunikují se svým okolím (jednoduchá cesta, jak zajistit zpětnou kompatibilitu). Takový nový port si s modemem ale musí rozumět, a tak doporučuji spíše interní modemy, u kterých jsou problémy se sériovým portem vyřešeny už přímo výrobcem. Interní modem má totiž integrované vlastní sériové rozhraní, které navenek emuluje UART (v počítači přibyde další sériový port).

Připojení více modemů k počítači

Teoreticky je možné připojit k počítači neomezené množství modemů, prakticky je ovšem nutné vyhradit každému sériovému rozhraní s modemem jedno IRQ a I/O port v počítači. U počítačů PC je počet IRQ omezen na 15, a proto brzy narazíme na horní hranici možností našeho PC nedostatkem IRQ. Teoreticky lze sice více klasických sériových portů obsluhovat jedním přerušením, bohužel výrobci SW ani HW (včetně specifikace PC dle IBM) tuto možnost reálně nepodporují. Řešením tohoto problému jsou speciální multiportové karty, které obsadí jedno IRQ a je na nich integrováno více sérivých portů (8, 16, 32) včetně potřebných vyrovnávacích pamětí. Nejznámějšími asi jsou Cyclades, Digiboard, SDL RISCom a Stallion multiport boards.

Jisté řešení je pak v použití USB modemů, kde však bude potřeba použít USB 2.0. Provideři (ISP) řeší problém pomocí digitálního spojení s telefonní ústřednou (ISDN nebo přímo PCM).

Synchronní a asynchronní přenos

U všech datových přenosů je důležité, aby vysílající i přijímající strana pracovala stejnou rychlostí už na nejnižší úrovni (fyzická vrstva). Činnosti, která tuto problematiku řeší, se říká synchronizace. Oba partneři si při ní seřizují své vlastní "hodinky" (generátor pravidelně se měnícího signálu, tzv. hodinového signálu). Čím vyšších rychlostí při přenosu dosahujeme, tím je synchronizace důležitější a musí být přesnější, protože i malé odchylky mohou způsobit zkomolení přenášené informace. K tomu slouží několik různých způsobů.

Asynchronní přenos je nejjednodušší varianta, kdy vysílající označuje začátek a konec každého jednotlivého intervalu. V tomto případě je dokonce možné, aby každý interval trval různou dobu a přijímající strana nepotřebuje vůbec zádný vnitřní generátor hodinového signálu. V praxi se toto řešení nevyužívá, protože vyžaduje přenášet 3 stavy (tzv. tříhodnotová logika - dvě úrovně vyjadřující bitovou hodnotu a třetí pro hranice intervalu).

Arytmický přenos je kompromisním řešením, kdy se spoléháme na to, že hodinky přijímající strany vydrží jít dostatečně přesně alespoň nějakou dobu. Data jsou pak vysílána ve skupinkách pevně dané velikosti (např. 8 bitů). Na začátek každé takové skupinky je umístěna speciální posloupnost, která umožní přijímající straně "seřídit si" jeho hodinky a pak samostatně určovat časy vzorkování přicházející posloupnosti bitů. V praxi je tato metoda velmi oblíbená a místo o skupinkách znaků se hovoří o znacích, které jsou při přenosu ohraničeny na začátku tzv. start bity a na konci stop bitem. Tento pojem pochází od znakových terminálů, které vysílaly opravdu za sebou jednotlivá písmenka, přičemž jejich hustota závisela na zručnosti operátora, který u terminálu seděl a nebylo proto možné předem říci, za jak dlouho přijde další znak. Odtud pojem arytmický, neboli postrádající rytmus. Arytmický přenos používá jak běžná sériová rozhraní PC, tak běžně používané modemy.

POZOR! V běžné odborné praxi se však termín "arytmický" nepoužívá a místo něho se tomuto způsobu říká "asynchronní".

Synchronní přenos nespoléhá na skutečnost, že příjemcův generátor hodinového signálu vydrží jít určitou dobu dostatečně přesně, nýbrž jej průběžně synchronizuje. Tato metoda je nutná zejména u vyšších rychlostí, kdy přesnost hraje velmi důležitou roli a setkáme se tak s ní zejména u pevných linek s rychlosmi vyššími než 64 000 bps. Generátory totiž není možné udržet synchronizované na neomezeně dlouhou dobu. Trvalé synchronizace nejsnadněji dosáhneme přenosem hodinového signálu, což však není vždy možné (je nutný třetí vodič). Alternativním řešením je smíchat hodinový signál s daty a přenášet je jedním společným přenosovým kanálem. To ovšem snižuje propustnost linky. Třetí alternativou pak je umožnit příjemci, aby se synchronizoval ze samotných přenášených dat. Jsou-li například data reprezentována sestupnými a vzestupnými hranami signálu, není problém tyto hrany využít i k synchronizaci. Problémem je jen zajištění pravidelnosti těchto hran, kdy jsou nevhodné například samé nuly nebo jedničky. To se řeší uměle vloženými bity, které zajistí synchronizaci a jsou pak na straně příjemce zahozeny.

Přenos dat pomocí modemů

Dříve, kdy byl modem využíván pouze k terminálové emulaci při spojení se vzdáleným počítačem, byly k přenášení dat (souborů) používány protokoly Zmodem, Xmodem a podobně. Dnes modemy převážně slouží ke spojení s Internetem, který ke komunikaci mezi jednotlivými počítači používá protokolu TCP/IP. Pro přenos TCP/IP do počítače přes komutovanou linku s modemy existují v podstatě dva protokoly: PPP a SLIP. Protokol SLIP je starší, jednodušší, klient se obtížněji konfiguruje, ale jeho varianta CSLIP je nejprůchodnější. PPP je naopak novější protokol, který poskytuje při konfiguraci klienta nebývalý luxus včetně autentifikace, nicméně za cenu větší režie. Dnes se nejspíše setkáte s PPP protokolem a s autentifikací pomocí PAP nebo CHAP. Zvláštní variantu autentifikace CHAP (tzv. CHAP-80) podporují Windows 95, nepodporují ovšem kompresi pro PPP protokol, se kterou můžeme dosáhnout velice dobré výsledky. Neželme ovšem - provideři nám kompresi jen tak neumožní, protože je velmi náročná na hardware jejich ne právě laciných terminálových serverů.

Programy pro spolupráci s modemem

V dobách minulých, kdy terminálová emulace byla běžným jevem, každý terminálový program ovládal modem sám. Patří sem například terminál z Nortona, M602, Kermit, Telix a podobně. Dnes je patrná snaha (i u Windows) přenést ovládání modemu na operační systém a vytvářet pak univerzální programy, které komunikují s modemem přes standardní rozhraní operačního systému. Ve Windows 3.x k tomu sloužil převážně program Trumpet, který uměl obsluhovat modem (nebo síťovou kartu) a vytvářel pro programy stadardní rozhraní služeb pro protokol TCP/IP (tzv. TCP/IP stack). S příchodem Windows 95 byla tato možnost začleněna přímo do systému. Pomocí tzv. telefonního adaptéru můžete ve Windows 95 nakonfigurovat své prostředí stejným způsobem, jako kdybyste vlastnili síťovou kartu a byli do Internetu připojeni přímo. Pak stačí jen vytočit číslo vašeho providera, uskutečnit spojení pomocí protokolu PPP či SLIP a po spuštění Netscape, telnetu či ftp můžete přímo vyrazit do Internetu.

Spojení dvou počítačů pomocí modemů

V kapitole "Navázání spojení mezi modemy" jsme si objasnili, že modemy naváží spojení mezi sebou samy. Pokud však chceme vytvořené spojení využít, je potřeba mít na každém konci program, který bude předávat do sériové linky data k odeslání a zároveň přicházející data zpracovávat.

Nejjednodušším příkladem, kdy můžeme modemy takto využít, jsou hry, které modemy využívají k tomu, aby si mohli dva hráči, kteří každý sedí u jiného počítače (třeba na druhém konci světa), spolu zahrát, tak jako by seděli u počítače jediného. Oba si tedy spustí hru (například Doom) a nastaví ji tak, aby se spojila modemem s protihráčem. Hry se pak mohou navzájem informovat o akcích hráče a hráči se mohou "vidět" navzájem. Modemy tak nahrazují prostředí počítačové sítě a mohou telefonem překročit i velké vzdálenosti.

Postup, který vede k úspěšnému spojení a následnému předávání dat mezi hrami je naprosto stejný, jako když se pomocí modemu připojujeme k Internetu. Rozdíl je jen v programech, které nakonec modem využívají (zde hra, při připojení k Internetu jiná aplikace). Rozeberme si proto celý postup podrobněji:

V následujícím popisu A označuje prvního hráče (strana providera) a B druhého hráče (zákazník, který se chce pomocí providera připojit k Internetu):

  1. A zapne modem a spustí program, který čeká, až mu B zatelefonuje (modem začne vyzvánět, jako když někdo zavolá z normálního telefonu)
  2. B zapne modem a spustí program, který vytočí telefonní číslo A (opět obdoba telefonování)
  3. modem u A zachytí zvonění (příchozí volání B) a pošle po sériové lince programu slovo RING
  4. program u A který čekal na tuto zprávu pošle modemu příkaz ATA - zvedni a navaž spojení (u analogie s telefonováním zvedneme telefon a řekneme: "Haló, kdo tam?")
  5. modem A zvedne linku a dle kapitoly "Navázání spojení mezi modemy" se s modemem B domluví na parametrech spojení
  6. po úspěšném navázání spojení oba modemy přejdou do přenosového režimu - vše, co přijde, předávají počítači, vše co pošle počítač, předávají protějšímu modemu
  7. oba programy, které obsluhují modemy, si navzájem posílají potřebná data
Pokud jeden z modemů zavěsí nebo je spojení přerušeno, modem ztratí nosnou frekvenci (modem neustále na svůj protějšek píská, i když nepřenáší žádná data) a oznámí to počítači shozením signálu DCD (řídící signál sériového rozhraní). Program (hra) na to reaguje přechodem do příkazového režimu modemu (pošle "+++") a příkazem ATH zavěsí linku (položí sluchátko).

Připojení k Internetu pomocí modemu

Předchozí kapilola popisuje kroky, které je nutné projít, pokud se chceme spojit s jiným počítačm pomocí modemů. Když se připojujeme k Internetu, usilujeme o totéž. Jen místo hry je na naší straně operační systém (Linux, Windows) nebo program (Trumpet), který všem aplikacím poskytuje jednotné rozhraní (komunikace pomocí protokolu Internetu TCP/IP). Na straně providera je terminálový server se speciálním programem, který datagramy, které přicházejí z Internetu k nám, předává našemu počítači přes modem (komutovanou linku) a to, co přijde od nás, odesílá do Internetu. Jak je již vysvětleno výše, datagramy k nám neputují jen tak, ale zabaleny do přenosového protokolu PPP nebo SLIP.

Protože většina uživatelů nepotřebuje znát detaily navazování spojení a další technické informace, je vše umě skryto a obvykle stačí zadat pouze telefonní číslo providera. Protože jsou služby placené, je nezbytné provést hned na začátku autentifikaci (ihned po navázání spojení), která je řešena přístupovým jménem a heslem, jak je ve světě počítačů obvyklé.

Slovníček

komutované spojení
spojení mezi modemy, které je uskutečněno na omezenou dobu s využitím veřejné telefonní sítě
TS (terminálový server)
počítač nebo specializované zařízení, které obsluhuje k sobě připojené modemy
provider, ISP
organizace, která poskytuje svým zákazníkům možnost připojit se k Internetu. Vlastní pevnou linku a TS (terminálový server), který obsluhuje modemy, kreté čekají na příchozí volání modemu zákazníka. S ním pak naváží spojení.
DCE
rychlost zařízení (modemu)
DTE
rychlost počítače
DCD (Data Carrier Detect)
modem přijímá signál od protějšího modemu
DTR (Data Terminal Ready)
modem je připraven přijmout data
RTS (Request to Send)
signál hardwarového řízení toku dat. Zařízení žádá svůj protějšek o povolení k odeslání dat
CTS (Clear to Send)
signál hardwarového řízení toku dat, který je odpovědí na RTS. Zařízení je připraveno přijmout data od svého protějšku.
ITU-T (International Telecommunications Union)
mezinárodní organizace, která vytvořila standardy pro komunikační technologie, čímž umožňuje modemům od různých výrobců mezi sebou navázat spojení. Sídlí ve Švýcarsku.

ToDo