ČVUT v PRAZE Fakulta Dopravní
SEMESTRÁLNÍ PRÁCE TKMS
Seriový port RS-232C
Vypracoval: Tomáš Zamrazil Kruh: 370
Sériový port
Tomáš Zamrazil, 370
Úvod Tento port je poměrně starší standard, jeho poslední varianta RS-232C je z roku 1969. Někdy poněkud nepřesně označovaný jako UART. Převážne se používá jako komunikační rozhraní osobních počítačů a další elektroniky. Původně byl navržen pro připojení textových terminálů k jednoduchým modemům nebo také přímo k blízkému serveru. Poté se však hodně rozšířil a používal se k připojení např. připojování světelných per, počítačových myší, dotykových LCD. Portem se propojovali i jednotlivé počítače, vytvářely se i malé sítě, ale od toho se časem ustoupilo. V současné době se v oblasti počítačů od toho portu uplně ustoupilo. Byl nahrazen výkonnějším portem USB (Universální sériové rozhraní). Na rozdíl od USB standart RS-232 pouze definuje, jak se přenáší určitá sekvence bitů, nezabývá se už vyššími vrstvami komunikace. V RM ISO/OSI představuje pouze fyzickou vrstvu (physical layer). Pořadí přenosu datových bitů je od nejméně významného bitu LSB(least significant bit) až po bit nejvýznamnější MSB(Most Significant Bit). Je to bit s nejvyšší hodnotou v binárním vyjádřením čísla. Ve dvojkovém zápisu se jedná o bit nejvíc vlevo. Používá se občas i ve smyslu byte s nejvyšší hodnotou ve vícebitovém zápisu čísla. Má zvláštní význam ve dvojkovém doplňku, kde určuje znaménko čísla. Počet datových bitů je volitelný, ale obvykle se používá 8 bitů.
Obrázek 1: Sériový port na základní desce
2
Sériový port
Tomáš Zamrazil, 370
. Tento port je také dnes používán kromě u osobních počítačů převážně v průmyslu pro své specifické rysy. Převážně se používá na programování různých automatů, frekvenčních měničů. Firma Mikrotic používá
tento
Routerboardů
port
také
u
svých
zařízení
s portem RJ-45. Další firmy, které
ještě dodávají na svých zařízení seriový port jsou například SUN,IBM, které u serverů podporují textové terminály. Z těchto důvodů se porty stále montují do nových desktopů a notebooků, když za příplatek. Hlavně z toho důvodu, že je potřeba generovat poměrně vysoká kladná i zaporná napětí. Logický stav 0 nebo 1 přenášených dat je reprezentován totiž pomocí dvou úrovní napětí. Dle zařízení mohou nabývat hodnot ±5,10,12,15 V. Nejčastěji používaná varianta je, že logické 1 odpovídá napětí -12V a logické nule odpovídá napětí +12V. Nemá-li PC sériový port v základní výbavě, lze dokopit modul(konvertor), který má sériový port na jedné straně a na druhé straně port pro připojení do stávajícíhozařízení jako USB, PCMCIA
Obrázek 2: Konvertor mezi USB a seriovým portem.
Obrázek 3: Konvertor mezi PCMCIA a sériovým portem. 3
Sériový port
Tomáš Zamrazil, 370
Simplexní, poloduplexní a plně duplexní přenos dat Sériový přenos dat je o dost starší než elektronické počítače. Už u prvních telegrafních přístrojů se používal sériový přenos. Jednalo se o Morseův kód. První telegrafní přístroje byly jednovodičové. Byly spojeny pouze jedním vodičem(drátem) a celý elektrický obvod se uzavíral přes zem. Kvůli tomuto sériovému způsobu zapojení probíhala komunikace pouze jedním směrem, jedna strana vysílala a druhá přímala. To se celé řešilo pomocí speciálních značek Morseova kódu. Telegrafista na vysílací straně tímto kódem sdělil, že dále žádné znaky posílat nebude a bude očekává nějakou odpověď. V oboru IT se tento přenos nazývá poloduplexní přenos dat, který je také použit i u sériového portu , desetimegabitovém i stomegabitovém Ethernetu, modemového a dálnopisného propojení pomocí telefonních. Plně duplexní (fullduplex) přenos, je možné zároveň vysílat i přijímat data. Je však nutné propojení obou míst pomocí dvojice vodičů místo vodiče jednoho. Podobný způsob zapojení – dvojice vodičů TxD → RxD a RxD → TxD doplněná o společný zemící vodič (GND) .V realitě se jedná o nejtypičtější konfiguraci sériového portu používané například při vzájemném propojení dvou počítačů apod.
Princip sériové komunikace a RS-232C Simplexní i poloduplexní sériová komunikace funguje tak, že vysílana data jsou rozložena na jednotlivé bity. Proud přenášených bitů neobsahuje pouze vlastní užitečná data, ale i bity sloužící pro synchronizaci, detekci chyb nebo i jejich korekci (opravu). Proud musí být nějakým způsobem synchronizován, z toho důvodu, aby přijímací strana jednotlivé bity od sebe rozeznala. Proto se kromě vlastního bitového vodiče používá další vodič s hodinovým signálem (synchronní přenos) nebo se informace o synchronizaci vhodným způsobem zkombinuje s proudem přenášených bitů. Je možné jedničkový bit reprezentovat přechodem z vysoké do nízké úrovně a bit nulový naopak přechodem z úrovně nízké do úrovně vysoké – tím se ale zvyšují nároky na frekvenční rozsah vedení. Také pomocí kódů typu 8 ze 14 lze zajistit , že nikdy za sebou nebude žádná delší sekvence nulových nebo naopak jedničkových bitů atd. Sériový port typu RS-232C patří do skupiny zařízení nazývaných UART, která znamená Universal Asynchronous Receiver and Transmitter, nebo také
universální asynchronní
4
Sériový port
Tomáš Zamrazil, 370
přijímač a vysílač. Důležité je slovo asynchronní, protože říká, jak jsou přenášena data, rozložená na proud bitů. Asynchronní přenos je charakteristický tím, že se v přenášených datech neobjevují
informace o synchronizaci, nepoužívá se ani žádný synchronizační
(hodinový) signál. Z toho vyplývá, že se musí používat přesný zdroj hodinového impulzu jak na vysílací tak i na přijímací straně pro detekci hranic jednotlivých bitů. To v praxi ale není možné. I finančně dostupné krystaly, které jsou běžně považované za velmi přesné, by se po několika sekundách přenosu hodně odchýlily.To znamená, že překročí dobu trvání přenosu jednoho bitu. Synchronizace se i u přenosových zařízení používá, avšak ne na úrovni jednotlivých bitů.
Asynchronní přenos dat podle standardu RS-232C Asynchronní přenos dat, používá jako každé jiné přenosové zařízení i sériový port. Kde jsou na začátek i na konec většího celku bitů vkládány synchronizační značky. Především se jedná o 5, 6, 7 a nejčastěji o 8 bitů, respektive celý bajt. U asynchronního přenosu obě zařízení(přijímací i vysílací strana), se musí nejprve vhodným způsobem nastavit tak, aby přijímač věděl, jak rychle je nutné vzorkovat datovou linku a v jakém formátu má data očekávat , resp. jaká je jeho přenosová rychlost. Na obouch stranách se musí nastavit počet přenášených bitů v jednom celku, což je 5-8 bitů. Přenosová rychlost je uváděná v bitech za sekundu (bitrate), délka stopbitu a občas i to, jestli e přenáší paritní bit a jakým způsobem, který představuje podobu detekčního kódu. Na přijímači i vysílači musí být toto nastavení shodné.To je také jeden z důvodů, proč je většina zařízení typu UART konfigurovatelná. Přijímač a vysílač se nastaví pomocí několika konfiguračních registrů tak, aby spolu mohli navzájem komunikovat. Před přenosem se datový vodič nachází v klidovém stavu. To znamená vysokou úroveň napětí. Vysoká úroveň může trvat libovolně dlouho. Před začátkem odeslání 5-8 bitů je nejdříve poslán „start bit“, který má nulovou hodnotu. Tím je zaručeno, že klidový stav linky se vždy změní. Na straně přijímacího zařízení se musí co nejpřesněji rozeznat změna stavu linky, tj. sestupná hrana, která reprezentuje začátek start bitu. Od této chvíle přijímací strana ví, že se přijme předem daný počet bitů s předem nastavenou bitovou rychlostí. Přijímací
5
Sériový port
Tomáš Zamrazil, 370
strana tedy vzorkuje stav linky a podle svých vlastních hodin rozeznává hodnoty jednotlivých bitů. Na konci přenášené sekvence může být (v závislosti na nastavené konfiguraci) přenesen i paritní bit, za nímž ihned následuje takzvaný stop bit. Ten má vždy hodnotu logické jedničky, což znamená vysokou úroveň napětí. Délka stop bitu může být delší než délka ostatních bitů (například lze použít délku rovnou 1,5 násobku či dvojnásobku délky běžného bitu), aby měl přijímač dostatek času na zpracování došlých dat.
Obrázek 5: Asynchronní přenos osmi bitů po sériové lince. Nahoře je zobrazen ideální případ, dole je situace, ,když vysílač vysílá data rychleji nebo naopak přijímač používá nižší vzorkovací frekvenci .Na konci přenosu osmi datových bitů již dochází k chybě. Může také nastat situace, že všechny datové bity mají stejnou hodnotu. Pomocí start bitu a stop bitu je zaručeno, že se přijímací strana může po osmi datových bitech znovu sesynchronizovat. Samotné čtení přenášených bitů je prováděno celkem promyšleným způsobem. U sériových portů i mikrořadičů používaných v osobních počítačích je vzorkovací frekvence 16× vyšší než bitrate. To znamená, že se přečte šestnáct vzorků v průběhu trvání jednoho bitu, které se dále zpracovávají tak, aby se vyloučilo rušení, nevyvážená přenosová rychlost. Převážně se berou hodnoty vzorku 8, 9 a 10, kde se provádí operace. A to,že dvě
6
Sériový port
Tomáš Zamrazil, 370
stejné hodnoty určují hodnotu celého bitu. Na nerušené lince by 16hodnot, které představují jeden bit, měli být shodné. Abychom správně odvodili i začátky dalších bitů, je nutná šestnáctinásobná vzorkovací frekvence pro co nejpřesnější detekci začátku start bitu. Nesmí se ale zapomenout na to, že se v průběhu přenosu celého bloku 5–8 bitů už přijímač nemůže synchronizovat. Hrozí to, že by mohli mít přenášené bity stejnou, protože je na lince konstantní napětí.
Přenosové rychlosti sériového přenosu dat Přenosové
rychlosti sériového portu jsou odvozeny od násobku 300 bitů/s. Rychlosti
některých starších zařízení bývají například 50, 75 či 150 bitů/s. V tabulce jsou uvedeny Přenosová rychlost 1200 2400 4800
Doba přenosu jednoho bitu [μs] 833 416 208
Doba přenosu jednoho bajtu [ms] 8,33 4,16 2,08
9600 19200 38400
104 52 26
1,04 0,52 0,26
115200
8,6
0,086
přenosové rychlosti, při nastavení přijímače i vysílače na přenos osmi datových bitů. Obsahující jednoho start bitu a stop (délka odpovídá běžnému bitu).. Toto se celé zapisuje jako 8N1. Kvůli start bitu a stop bitu je 20 % přenosové doby ztraceno, protože místo užitečných dat se přenáší synchronizační informace. V realu je prodloužení přenosové doby většinou přijatelné. Poměrně přísné požadavky se kladou na dodržení přenosové doby jednotlivých bitů na vysílač a přijímač. Pro jeden bit by neměla být odchylka rychlosti v nikdy větší než 2 %. Protože se odchylka sčítá a pro osm datových bitů. Timpádem s jedením start bitem a jedním stop bitem se dostáváme k hranici 20 %. Dalších 6 %, které platí pro vzorkování 16 rychlostí. To nám právě dává 100/16. Již zmíněných 6% nepřesnosti připadá na vrub detekce počáteční hrany start bitu. Přitom celková chyba při odchylce rychlosti 2 % může na konci přenosu osmi bitů dosáhnout 26 %. Navíctři prostřední vzorky v každém bitu musí být stabilní, proto se ještě musí připočíst „oblast jistoty“, která je 18,75 %.
7
Sériový port
Tomáš Zamrazil, 370
V případě, že kolísá přenosová rychlost více než 2 %, riskujeme, že tři prostřední vzorky, na jejichž základě se určuje hodnota bitu, se na konci přenosu nebudou nacházet v polovině bitu, ale na jeho horní či dolní hranici. To vede k chybám při přenosu (frame error).
Obrázek 6: Řadič pro osm sériových portů, který se k počítači připojuje přes USB.
Obrázek 7: Routerboard obsahující sériový port společně s RJ-45.
8
Sériový port
Tomáš Zamrazil, 370
Závěr Sériový port se dříve hodně používal, ale pokrokem času a tím i zvyšování nároků na přenosové rychlosti se tento port jistě opouští. Hlavní nevýhodou u notebooků je generování nízkých a zároveň i vysokých napětí kvůli spotřebě. Ve vlastní zkušenosti používám tento port nadále u Routerboardů, to je zařízení, která se dává jako aktivní prvek pro fungování bezdrátových sítí WiFi. Jeho velkou výhodou je, že má sériový port, přes který se dá nahrát do routerboardu skoro vše, co je kompatibilní, nebo zjištění zapomenutého heslo v případě nefunkčního tlačítka reset. Obsahuje i port RJ-45, ale přes něj se bez hesla do routerboardu nedostaneme. Z toho bych vyvodil závěr, že by jsme SÉRIOVÝ PORT neměl stále odsouvat někam dozadu…
Zdroje Seriál o sériovém portu na http://www.root.cz/clanky/seriovy-port-rs-232c/ http://cs.wikipedia.org/wiki/RS-232 http://hw.cz/rs-232 http://www.wifi-shop.cz/mikrotik-routerboard-rb411-32mb-ram-1xlan-1xminipci
9