Co to jest komunikacja szeregowa?
Komunikacja szeregowa to metoda transmisji danych, która przesyła informacje jeden bit na raz z urządzenia do urządzenia. Przez lata opracowano wiele różnych standardów szeregowych zarówno dla pasma urządzeń o niskiej, jak i wysokiej prędkości. Dane można zazwyczaj wymieniać na znacznie większe odległości przy użyciu komunikacji szeregowej niż równoległej. Komunikacja szeregowa jest zwykle używana do łączenia drukarek, terminali i kamer z komputerami. Służy również do łączenia z zewnętrznymi dyskami twardymi, napędami cyfrowych dysków wideo (DVD) i urządzeniami pamięci flash.
Ponieważ w komunikacji szeregowej przesyłany jest jednocześnie tylko jeden bit danych, potrzeba mniej przewodów w porównaniu do interfejsu równoległego. Bardzo minimalne połączenie może obejmować tylko jeden przewód do danych, a drugi do uziemienia. W praktyce wiele łączy szeregowych zawiera również kilka sygnałów uzgadniania, a także linię danych w każdym kierunku. Uniwersalna magistrala szeregowa (USB), powszechnie stosowana do łączenia komputerów i urządzeń peryferyjnych, wykorzystuje tylko cztery lub pięć sygnałów, z których dwa służą do zasilania. Zalecane standardowe połączenia szeregowe (RS) 232 mogą wykorzystywać do 20 sygnałów, w zależności od implementacji.
Mniej sygnałów ogólnie pozwala na szybsze taktowanie szeregowego łącza komunikacyjnego i bardziej niezawodne działanie na duże odległości. Równoległa komunikacja może powodować pochylenie lub interferencję między bitami danych, gdy przemieszczają się one razem długim łączem. Połączenia szeregowe RS 232 o długości 1000 stóp (300 metrów) lub dłuższych zwykle mogą być obsługiwane z prędkością powyżej 115 200 bitów na sekundę. Natomiast łącza USB 2.0 są często używane do łączenia urządzeń pamięci masowej o dużej przepustowości z systemami komputerowymi. Zasadniczo mogą wymieniać dane z prędkością do 480 megabitów na sekundę, ale kable są ograniczone do 5 metrów między hubami.
Kiedy dane są przesyłane przez łącze szeregowe, odbiornik musi mieć sposób na określenie, kiedy kończy się każdy bajt, a zaczyna następny. W asynchronicznej komunikacji szeregowej nadawca wstawia bit „startowy” przed wysłaniem bitów każdego bajtu. Bit startowy synchronizuje również wewnętrzny zegar, aby pomóc rozbić resztę odebranej ramki na poszczególne bity. Jest to najczęściej stosowana metoda synchronizacji RS 232. W synchronicznej komunikacji szeregowej oddzielny sygnał zegarowy jest używany do wskazania, kiedy każdy bit i bajt jest kompletny.
Przed rozpoczęciem wymiany danych RS 232 należy ustawić urządzenia po obu stronach, aby używały tej samej liczby danych i bitów stopu, a także tego samego typu parzystości. Osiem bitów danych, jeden bit stopu i brak parzystości to częsta konfiguracja, często wyrażana jako 8N1. Jeśli używany jest parzystość znacznika lub spacji, bit parzystości jest odpowiednio ustawiany na jeden lub zero przez nadawcę. Jeśli stosowana jest parzystość parzysta lub nieparzysta, bit parzystości jest ustawiany na wartość, która spowoduje, że całkowita liczba bitów parzystych lub nieparzystych. Odbiornik sprawdza wartość odebranego bitu parzystości, jeśli taki istnieje, i wskazuje błąd, jeśli nie jest on zgodny z oczekiwaną wartością.
Oprócz kontroli parzystości można zastosować jeden lub więcej programowych protokołów komunikacji szeregowej w celu zabezpieczenia przed błędami transmisji danych. Na przykład protokół XMODEM lub ZMODEM jest często używany do przesyłania plików między komputerami przez łącze szeregowe RS 232. Protokoły te zostały pierwotnie zaprojektowane do użytku z modemem telefonicznym na każdym końcu łącza, ale również działają bez nich. Każdy protokół obejmuje sprawdzanie poprawności sumy kontrolnej cyklicznej kontroli nadmiarowej (CRC) obliczonej dla wysyłanych danych. Jeśli modemy są obecne, wykonują one również podobne kontrole CRC sprzętowo podczas transmisji.