Transmisja szeregowa

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Transmisja szeregowa – rodzaj cyfrowej transmisji danych, podczas której poszczególne bity informacji są przesyłane kolejno po sobie wraz z dodatkowymi danymi pozwalającymi na kontrolę tej transmisji. Medium transmisyjnym może być połączenie elektryczne (przewód lub para skręconych przewodów), radiowe (fale elektromagnetyczne) lub optyczne (fale rozchodzące się swobodnie lub wzdłuż określonej drogi np. w światłowodzie).

W czasach starożytnych stosowano transmisję za pomocą sygnałów optycznych świetlnych czy dymnych. Bardziej zaawansowaną formą łączności był telegraf optyczny. Transmisję szeregową z wykorzystaniem sygnału elektrycznego po raz pierwszy zastosowano w r. 1836 w telegrafie wynalezionym przez Samuela Morse'a. Na początku XX w telegrafy zostały zastąpione przez dalekopisy, które wykorzystywały przewodową sieć telefoniczną powstałą pod koniec XIX w. W latach 60. XX w. w celu ujednolicenia parametrów sygnałów i konstrukcji urządzeń zdolnych do wymiany danych cyfrowych za pomocą sieci telefonicznej opracowano standard RS-232 (ang. Recommended Standard). W początkach rozwoju sprzętu komputerowego standard ten był wykorzystywany do komunikacji komputera z modemem. Aktualnie we wszelkiego rodzaju urządzeniach elektronicznych (komputery, laptopy, systemy wbudowane itp.) najbardziej popularnym standardem transmisji szeregowej na niewielkie odległości jest uniwersalna magistrala szeregowa USB, służąca głównie do komunikacji z takimi urządzeniami jak klawiatura, myszka, drukarka, skaner itd. W przypadku komunikacji na większe odległości wykorzystywana jest sieć (Ethernet) również działająca w oparciu o transmisję szeregową. Szeregowe sieci transmisyjne wykorzystywane są w przemyśle (RS-422, RS-422A, RS-485) i w samochodach (CAN i LIN). Do transmisji w systemach mikroprocesorowych wykorzystywany jest tradycyjny interfejs RS232 oraz I²C (TWI), SPI, 1-Wire i coraz częściej USB.

Przykłady systemów komunikacji szeregowej[edytuj | edytuj kod]

Transmisja szeregowa asynchroniczna (RS-232)[edytuj | edytuj kod]

Dane są poprzedzone bitem startu (stan logiczny: 0), który jest sygnałem rozpoczęcia transmisji; po nim są przesyłane bity danych, od najmłodszego do najstarszego (możliwa ilość od 5 do 8); potem bit parzystości (jeśli jest używany); i po nim następuje odstęp przed następnym znakiem (stan logiczny: 1) – wymagana część tego odstępu nazywa się bitem stopu, może on być dłuższy – nie ma ograniczenia, natomiast stan logiczny 0 w czasie bitu stopu jest rozpoznawany jako błąd ramki (ang. framing error). Każdy znak jest przesyłany i interpretowany niezależnie od innych. Układ odbierający po wykryciu stanu logicznego 0 odmierza czas równy 1/2 czasu przesyłania bitu, i sprawdza, czy nadal jest stan 0 (jeśli nie, jest to traktowane jako błąd), następnie odmierza odcinki czasu równe czasowi 1 bitu i odczytuje stan linii, aby dostać wartości tych bitów. Do tego trybu transmisji wystarcza sam sygnał danych. Podawanie stanu 0 przez dłuższy czas jest sygnałem przerwy (ang. break).

Transmisja szeregowa synchroniczna (RS-232)[edytuj | edytuj kod]

Dane są przesyłane bez dodatkowych bitów, ale są poprzedzone informacją wstępną, pozwalającą wykryć ich początek – zwykle co najmniej trzema bajtami SYN (kod 16h, tak dobrany, by łatwo dało się wykryć jego przesunięcie – tu nie ma sygnału granicy bajtów, jak bity startu/stopu), po których następuje bajt rozpoczynający ramkę (np. SOH – start of header = początek nagłówka), i zakończone sekwencją oznaczającą koniec ramki (np. znakiem ETX – end of text = koniec tekstu; jeśli taki znak ma wystąpić w przesyłanych danych, to jest poprzedzony znakiem wyłączającym jego interpretację jako końca danych); do sprawdzenia poprawności transmisji ramka zwykle zawiera sumę kontrolną, np. CRC. Cała ramka jest traktowana jako całość – jeśli jest w niej błąd, jest odrzucana w całości. Ramka może zawierać – oprócz danych – dodatkowe informacje sterujące, np. dokąd są adresowane (ekran, drukarka,...); koniec tych dodatkowych informacji i początek danych oznacza znak STX (start of text = początek tekstu). Do tego trybu transmisji musi być przesyłany – oprócz danych – sygnał zegarowy, pokazujący kiedy kończy się jeden bit, a zaczyna następny. Sygnał ten jest podawany przez modem, niezależnie od kierunku transmisji danych.

Zobacz też[edytuj | edytuj kod]