Vážení zákazníci, letos budeme mít naposledy otevřeno 23. 12. do 12 hodin. Přejeme Vám pěkné Vánoce, vše nejlepší v novém roce a těšíme se na Vás opět 2. ledna 2025.
(archivní článek) Co je to RS232? Jaké používá napěťové úrovně? Jak zapojit konektor RS232? Co je to parita? Co je to handshaking? Jaký je rozdíl mezi synchronním a asynchronním přenosem? Jak dlouhé mít vedení? To vše a další informace se dozvíte v tomto článku...
RS232 je rozhraní pro přenos informací vytvořené původně pro komunikaci dvou zařízení do vzdálenosti 20 m. Pro větší odolnost proti rušení je informace po propojovacích vodičích přenášena větším napětím, než je standardních 5 V. Přenos informací probíhá asynchronně, pomocí pevně nastavené přenosové rychlosti a synchronizace sestupnou hranou startovacího impulsu.
RS 232 používá dvě napěťové úrovně. Logickou 1 a 0. Log. 1 je někdy označována jako marking state nebo také klidový stav, Log. 0 se přezdívá space state. Log. 1 je indikována zápornou úrovní, zatímco logická 0 je přenášena kladnou úrovní výstupních vodičů. Povolené napěťové úrovně jsou uvedeny v tabulce.
Nejběžněji se pro generování napětí používá napěťový zdvojovač z 5 V a invertor. Logické úrovně jsou potom přenášeny napětím +10V pro log. 0 a –10V pro log. 1.
Úroveň | Vysílač | Přijímač |
Logická 0 | +5 V až +15 V | +3 V až +25 V |
Logická 1 | -5 V až -15 V | -3 V až -25 V |
Nedefinováno | – | -3 V až +3V |
Pokud propojujete dva počítače pomocí RS232 a každý z nich je připojen do jiné zásuvky, doporučujeme oměřit napětí mezi jednotlivými zeměmi RS232 před jejich propojením. Pokud je každý počítač připojen na jinou větev i stejné fáze, může být vlivem různých spotřebičů na každé větvi rozdílové napětí až cca 100 V. To je hodnota, která jakýkoli RS232 port spolehlivě zničí.
Parita je nejjednodušší způsob, jak bez nároků na výpočetní výkon zabezpečit přenos dat. Ve vysílacím zařízení se sečte počet jedničkových bitů a doplní se paritním bitem tak, aby byla zachována předem dohodnutá podmínka sudého, nebo lichého počtu jedničkových bitů.
SUDÁ PARITA – Počet jedničkových bitů + paritní bit = SUDÉ ČÍSLO
LICHÁ PARITA – Počet jedničkových bitů + paritní bit = LICHÉ ČÍSLO
SPACE PARITY – Tzv. nulová parita – paritní bit je vždy v log. 0, používá se například při komunikaci s 7-bitového zařízení s 8-bitovým, kdy paritní bit nahrazuje tvrdou log. 0 poslední bit v byte, tím je zachována kompatibilita s 8-bitovým přenosem.
MARK PARITY - Paritní bit je nastaven tvrdě na log. 1, při kompenzaci 7-bitového provozu je třeba jej na přijímací straně nulovat, jinak není kompatibilní s ASCII.
Na starých terminálech IBM, které se používaly pouze jako textové konzole, ušetřili návrháři jeden bit přenosu a používaly pouze 7-bitový přenos, který umožňoval 128 kombinací. Dnes se v praxi prakticky nepoužívá, ale stal se standardem.
STOP BIT – definuje ukončení rámce. Zároveň zajišťuje určitou prodlevu pro přijímač. Právě v době příjmu STOP bitu většina zařízení zpracovává přijatý BYTE.
ZDVOJENÝ STOPBIT – Požívá se u pomalejších zařízení pro doběh zpracování přijatého znaku. Jedná se o standard na 110 Bd .
Potvrzení příjmu a zahájení přenosu na úrovni hardwarového nebo softwarového rozhraní.
Hardwarový handshaking:
Softwarový handshaking probíhá na úrovni komunikačních protokolů (ZMODEM, KERMIT...) pomocí běžného datového kanálu si přijímač vysílači sdělí, zda je schopen data přijímat a zpracovávat data. Dos/BIOS v počítačích PC používá pro SW handshaking znaky v Ascii tabulce XON/XOF. Je-li však potřeba v toku dat znaky XON/XOF vyslat, je nutné vyslat speciální sekvenci znaků, což samozřejmě přenos dat obsahujících převážně tyto znaku značně zpomalí.
SYCHRONNÍ přenos informací znamená, že na nějakém vodiči, nebo vodičích se nastaví určitá úroveň, která přenáší informaci a validita informace se potvrdí impulsem, nebo změnou úrovně synchronizačního signálu. Synchronizačním signálem se tedy informace kvantují.
Základní vlastnosti SYCHRONNÍHO přenosu:
ASYNCHRONNÍ přenos dat přenáší data v určitých sekvencích. Data jsou přenášena přesně danou rychlostí a uvozena startovací sekvencí, na kterou se synchronizují všechna přijímací zařízení. Všechny strany obsahují vlastní přesný oscilátor, díky kterém odečítají data v přesně definovaných intervalech. Po ukončení sekvence je další příjem opět synchronizován startovní sekvencí.
Základní vlastnosti ASYNCHRONNÍHO přenosu:
Kompletní přenosová skupina = přenášená DATA (7/8 bitová) doplněná o START BIT, STOP BIT a PARITU.. Přenosový rámec je tedy minimální přenášená skupina dat.
Pokud je třeba upozornit zařízení na dočasné zastavení vysílání, vygeneruje vysílač nepřetržitý impuls v log. 0 po dobu 100-600 ms. (maximální doba linky v nepřerušené log. 0 je na nejnižší rychlosti kdy se vysílá 8 × log. 0 je 66,6 ms).
Standard RS232 uvádí jako maximální možnou délku vodičů 15 metrů, nebo délku vodiče o kapacitě 2500 pF. To znamená, že při použití kvalitních vodičů lze dodržet standard a při zachování jmenovité kapacity prodloužit vzdálenost až na cca 50 metrů.
Kabel lze také prodlužovat při snížení přenosové rychlosti, protože potom bude přenos odolnější vůči velké kapacitě vedení. Uvedené parametry počítají s přenosovou rychlostí 19200 bd.
Texas Instruments uvádí jako výsledek pokusných měření následující délky vodičů/přenosovým rychlostem. Vzhledem k "laboratorním" podmínkách tohoto měření je třeba brát tyto údaje pouze jako orientační. V praxi je třeba počítat s rušením atd.
Přenosová rychlost (Bd) | Maximální délka (ft) | Maximální délka (m) |
19 200 | 50 | 15 |
9 600 | 500 | 150 |
4 800 | 1 000 | 300 |
2 400 | 3 000 | 900 |
INT 14H ROM-BIOSu bude fungovat se všemi čtyřmi porty, jestliže uložíte bázové adresy těchto portů do tabulky COM portů začínající na adrese 0:0400. Je třeba, aby žádné dva adaptéry nesdílely tutéž adresu, nebo ani jeden z nich nebude fungovat. BIOS ale podporuje jen poměrně primitivní komunikaci využívající stavové dotazy (polling), což je pro složitější aplikace téměř nepoužitelné. Adaptér je však schopen vyvolat hardwarové přerušení na základě mnoha různých podmínek v závislosti na hodnotách registru povolení přerušení (3f9H nebo 2f9H).
Port | I/O adresa | IRQ | INT vektor |
COM1 | 3f8H až 3ffH | 4 | 0ch |
COM2 | 2f8H až 2ffH | 3 | 0bh |
Používáte-li v zařízení TTL nebo CMOS obvody, budete muset jejich logickou RS232 linku napěťově upravit před připojením do PC.
Pro toto upravení se standardně používaly obvody 1488 a 1489, které ale potřebovaly +12V a –12 pro vytvoření výstupních úrovní. To bylo mimochodem jedním z důvodů, proč je v klasickém PC ze zdroje vyvedeno i –12V a –5V (dalším důvodem byla potřeba většího rozdílového napětí u historických dynamických pamětí pro zvýšení jejich rychlosti).
Průlom v tomto směru udělal obvod MAX232, se kterým začala firma MAXIM. Využila totiž svých znalostí ve vývoji spínaných nábojových měničů napětí a vyvinula obvod, který vystačil s +5V a potřebné napětí si samostatně vyrobil pomocí 4 externích kondenzátorů. Dnes je čip široce dostupný, vyrábí jej například Texas Instruments
Obvod samozřejmě konvertuje log. 0 na +3..15V a log. 1 na –3..15V jak je popsáno výše.
MAX232 se stal neuvěřitelným šlágrem a dnes jeho obdobu najdete téměř ve všech komerčních zařízeních připojovaných k RS232.
Jedná se o převodník TTL na RS232. Obsahuje dvě dvojice oddělovačů konvertujících napěťové úrovně. Napětí pro RS232 se získává pomocí nábojové pumpy a výstupní napětí proto značně závisí na kvalitě použitých kondenzátorů, která u elektrolytických kondenzátorů časem značně klesá. Napětí je možno získat na pinech 2 a 6 a použít pro další obvody.
Obvod funguje vždy na první zapojení. Maxim vyrábí i verze s minimální externí kapacitou – (MAX232A – 0,1 uF) nebo verze pracující v rozsahu 7,5 až 13 V (určeno pro bateriové aplikace) – MAX201 a MAX231.
Specialitou firmy MAXIM jsou obvody MAX203 a MAX233 které dokáží pracovat úplně bez potřeby vnějších kondenzátorů.
UPOZORNĚNÍ:
Vzhledem k úspěšnosti MAX232 začalo mnoho firem vyrábět obvody pinově kompatibilní v nižší cenové hladině. U jednoho z těchto výrobců (tuším AD232), které u nás svého času prodávalo GM je potřeba opačně polarizovat jeden z elektrolytů, tak uvádí firemní katalogový list. Vzhledem k předpokládané kompatibilitě to však mnoho vývojářů neověřuje a potom vznikají časem velmi komplikované závady.
Doporučujeme proto používat buď originální obvody MAXIM nebo dobře prostudovat „substituční“ obvody, vzhledem k předpokládaným odlišnostem.
Zapojení LOOPBACKU | ||||
TD | (2) | --- | (3) | RD |
RTS | (4) | --- | (5) | CTS |
DSR | (6) | --- | (8) | CD |
DSR | (6) | --- | (20) | DTR |
CD | (8) | --- | (22) | RI |
Zapojení LOOPBACKU | ||||
CD | 1) | --- | (6) | DSR |
CD | (1) | --- | (9) | RI |
RD | (2) | --- | (3) | TD |
DTR | (4) | --- | (6) | DSR |
RST | (7) | --- | (8) | CTS |
RS232 Používá asynchronní přenos informací. Každý přenesený byte konstantní rychlostí je proto třeba synchronizovat. K synchronizaci se používá sestupná hrana tzv. Start bitu. Za ní již následují posílaná data.
Klasická Sériová myš se připojuje na RS232. Hardwarový protokol však není úplně standardní a liší se podle toho, jestli používáte 3-tlačítkovou myš - Mouse System Mouse nebo myš Microsoft, která umí obsluhovat pouze 2 tlačítka a používá 3-bytový přenos dat, zatímco 3-tlačítková myš používá obecný 5-bytový.
Seznam v BIOSu obsahuje seznam až čtyř bázových adres COM portů. Během POST BIOS testuje a inicializuje COM1 a COM2. Tyto porty jsou tvořeny obvody 8250 u PC/XT nebo 16450 u PC/AT (zcela programově i vývodově kompatibilní verze). Nevýhodou těchto obvodů je, že jsou schopny si zapamatovat pouze jeden přijatý znak, takže může hlavně při vyšších přenosových rychlostech dojít ke ztrátě dat (overrun), když počítač nestihne včas odebrat přijatý znak před příchodem dalšího. Z tohoto důvodu byl vyvinut obvod 16550, opět vývodově i programově kompatibilní, který však má 14-znakovou přijímací vyrovnávací paměť. Tato paměť však musí být programově zapnuta, jinak se obvod chová jako zcela standardní 16450. Je tedy možno jej v komunikačních kartách vyměnit, standardně je použit v systémech PS/2 a v portech osazených na MB. Umí jej obsluhovat např. známý komunikační program Telix nebo Terminate, stejně jako WINDOWS (možno vypnout).
Používá se pro běžné čtení a příjem znaků ze sériového kanálu. Pokud je nastaven port 3FB, bit 7=1 (OUT 3fbH,80H) přečtete na tomto portu dolní byte dělitele který společně s horním bytem (port 3f9H) tvoří 16-bitovou hodnotu, která určuje přenosovou rychlost podle tabulky: |
|
|
SET - nastaví do log. 1 CLR - nastaví do log. 0 Log. 1 = -3..15V na pinu Log. 0 = -3..15V na pinu |
Bity OUT1 a OUT2 jsou z hlediska výrobce příslušného integrovaného obvodu vývody na pouzdře, jejichž funkce je k dispozici návrháři systému (prostě 2 programem snadno ovladatelné bity pro libovolné upotřebení). Ovšem návrháři IBM PC využili bit OUT2, který přivedli na vstup povolení přerušení obvodu. Jelikož v klidovém stavu je v bitu OUT2 zapsána 0, je přerušení ZAKÁZÁNO (blokováním na úrovni hardware), i když správně naprogramujete registr povolení přerušení a všechno ostatní.
Pokud chcete používat přerušení, musíte OUT2 nastavit na 1.
BIT | zkratka | popis |
0 | DCTS | Delta Clear To Send - CTS změnil stav |
1 | DDSR | Delta Data Set Ready - DSR změnil stav |
2 | TERI | Trailing Edge Ring Indicator - vzestupná hrana indikátoru vyzvánění |
3 | DDCD | Delta Data Carrier Detect - DCD změnil stav |
4 | CTS | Clear To Send (CTS) je aktivní |
5 | DSR | Data Set Ready (DSR) je aktivní |
6 | RI | Ring Indicator (RI) je aktivní |
7 | DCD | Data Carrier Detect (DCD) je aktivní |