Tryb transmisji: Simplex Half Duplex Full Duplex opisuje kierunek, przepływu sygnału między dwoma urządzeniami wymieniającymi się danymi. W tym artykule skupię się na aspekcie kierunku przepływu informacji. Wyróżniamy 3 tryby transmisji opisujące kierunek przepływ sygnału między dwoma podłączonymi urządzeniami:
- Simplex,
- Half duplex,
- Full duplex.
Simplex | Half Duplex | Pełny dupleks | ||
Kierunek | Jednokierunkowa | Dwukierunkowa naprzemienna | Dwukierunkowa niezależna | |
Wydajność | Tylko wysyłanie informacji, lub tylko odbiór | Można rozsyłać i odbierać dane, ale naprzemiennie | Wysyłka i odbiór danych niezależnie | |
Przykłady | Komunikaty broadcast | RS485, Modbus RTU | Ethernet |
Główną różnicą między simpleks, half duplex i full duplex jest to, że w trybie transmisji simplex komunikacja jest jednokierunkowa.
W trybie Pół-duplex komunikacja jest dwukierunkowa, ale dane przekazywane są wspólnym kanałem w dwie strony, co wymusza zwolnienie kanału przed jedną ze stron przed nadaniem informacji.
Tryb transmisji w pełnym dupleksie charakteryzuje się komunikacją dwukierunkową -kanał transmisyjny może być wykorzystywany jednocześnie przez podłączone urządzenia.
Simplex
Gdy analizujemy tryby transmisji Simplex Half duplex Full duplex, to tryb simplex ma najmniej możliwości. Jest tak poineważ jeśli nadajnik nada dane, odbiornik może je tylko odebrać, bez możliwości odpowiedzi w żaden sposób. Istotnym aspektem jest fakt, że komunikacja jednostronna może odbywać się zarówno w trybie jeden do jednego, jak i w trybie broadcast. Transmisja broadcast jest nadawana przez jedno urządzenie, natomiast może być odbierana przez wiele.
Dobrym przykładem zastosowania trybu simplex w trybie broadcast jest wysyłanie zbiorczej komendy konwersji temperatury przez przetwornik TD2. Przetwornik nadaje komendę bradcast do wszystkich podłączonych czujników temperatury. Jeśli podczas konfiguracji przetwornika TD2, w sekcji obsługa czujników ustawimy parametr Konwersja Globalna. Przetwornik po odczycie temperatur z czujników wyśle komunikat zbiorczy do wszystkich czujników, aby włączyły przetworniki ADC. Na ten komunikat czujniki nie odpowiadają, więc mamy to do czynienia z komunikacji w trybie simplex. Pozwala to zaoszczędzić czas, gdyż nie musimy oddzielnie wysyłać do każdego czujnika komendy włączenia przetwornika.
Wyłączenie funkcji Konwersja Globalna w przetworniku TD2 spowoduje znacznie wydłużenie czasu odczytu pomiarów z czujników. Będzie tak gdyż informacja o włączeniu przetwornika ADC będzie wysyłana sekwencyjnie do każdego czujnika osobno. Jednak ta funkcja może być przydatna gdy czujniki znajdują się w strefie EX, która ma nałożone wymagania ograniczeń przepływu prądu. Konwersja ADC powoduje zwiększony pobór prądu przez czujnik i wykonanie jej globalnie na wszystkich czujnikach jednocześnie może spowodować przekroczenie doduszanego przepływu prądu. Z tego powodu jest możliwe włączenie trybu pojedynczego wyzwalania przetworników ADC w każdym z czujników
Nie należy zapomnieć iż do komunikacji w trybie simplex zaliczmy także przykłądy znane dobrze z życia, jak np: radio, telewizja, GPS, Mikrofon, głośniki, słuchawki, klawiatura, mysz, monitor.
Half Duplex
W trybie transmisji pół-dupleksowej komunikacja między nadawcą a odbiorcą odbywa się w obu kierunkach, ale występuje tylko jeden wspólny tor przekazywania informacji. Nadajnik i odbiornik mogą zarówno wysyłać, jak i odbierać informacje, ale tylko jeden może transmitować w tym samym czasie. Half duplex to droga jednokierunkowa, w której komunikat, zanim zostanie wysłany, musi poczekać, aż drugie urządzenie przestanie nadawać dane. Kanał przekazujący informacje jest w momencie nadawania całkowicie zajęty przez urządzenie nadające, pozostałe urządzenia przed wysłaniem odpowiedzi muszą poczekać, aż urządzenie odpytujące przestanie nadawać informacje.
Doskonałym przykładem trybu Half-Duplex w przemyśle jest komunikacja w protokole Modbus-RTU na temat którego napisałem bardzo wnikliwy artykuł.
Sieć pracująca w trybie Half-Duplex może składać się zarówno pary dwóch pojedynczych urządzeń wymieniającej informację, jak i wielu urządzeń połączonych w obrębie jednej sieci. Najczęściej spotykanym rodzajem komunikacji w trybie Pół -dupleksowym jest sieć Master-Slave z protokołem Modbus RTU.
Sieć Master Slave przykładem trybu half duplex
Siec Master-Slave występuje jedno urządzenie główne Master, oraz jedno lub kilka urządzeń Slave. Urządzenie Master wysyła zapytania, adresując, do którego Slave-a chce nadać informację, następnie oczekuje na odpowiedź. Slave-y natomiast mogą tylko odpowiadać na zapytania adresowane do nich. Nie mogą one same inicjować komunikacji, a odpowiedź odesłana przez nie może nastąpić dopiero gdy master skończy nadawać informacje
Przykładem komunikacji Master-Slave w trybie Half-Duplex jest odczytywanie danych z przetwornika wielopunktowego pomiaru TD2 i modułu pomiaru temperatury TD1.01 przez sterowniki przemysłowy. Sterownik PLC wysyła cykliczne zapytania do każdego urządzenia osobno, oczekując następnie na odpowiedź. Przetworniki temperatury po odebraniu zapytania i odczekaniu czasu ciszy na linii odsyłają odpowiedź do Sterownika.
Dobrym przykładem komunikacji Half-Duplex jest dwuprzewodowa sieć RS485.
Innymi przykładem komunikacji Half-Duplex jest Ethernet 10BASE. Natomiast przykładami z życia codziennego wykorzystujące tryb Half-Duplex jest CB radio stosowane najczęściej przez kierowców ciężarówek.
Full duplex
W pełnym dupleksie komunikacja między nadawcą a odbiorcą może odbywać się jednocześnie, więc nadawca i odbiornik mogą wysyłać i odbierać w tym samym momencie. Tryb pełnego dupleksu można przyrównać do dwukierunkowej drogi, w której ruch może płynąć jednocześnie w obu kierunkach. Dane pomiędzy odbiorcą i nadawcą mogą być przesyłane jednocześnie.
Współdzielenie kanału transmisji można osiągnąć na dwa różne sposoby.
- Fizycznie podzielenie łącza na dwie części: pierwszej do wysyłania i drugiej do odbioru.
- Podział kanału na sygnały poruszające się w przeciwnym kierunku.
Przykładem sieci pracującej w trybie Full-Duplex jest sieć Ethernet 1000BASE wykorzystująca 4 pary sygnałowe w skrętce. Innym przykładem jest sieć RS485 czteroprzewodowa widoczna na rysunku powyżej. Przykładem, który na pewno wszyscy znają, jest rozmowa przez telefon.
Urządzenia komunikujące się w trybie half-duplex
Z przetwornikami OneWire komunikujemy się przez Modbus RTU, który jest klasycznym przykładem trybu komunikacji half Duplex, dlatego łącząc sterownik PLC z przetwornikami OneWire, mamy do czynienia właśnie z tym trybem wymiany danych.
Przetwornik TD2 ↗
Umożliwia odczyt z czujników temperatury i wilgotności w sieci OneWire o długości nawet 400 m. Dane można odczytywać portami RS485 i USB. Istotne jest, że te porty są separowane galwanicznie.
Moduł TD1.01 ↗
TD1.01 to konwerter temperatury z wyświetlaczem LED. Odczytuje temperaturę z 64 czujników temperatury DS18B20 w sieci o długości 100 m. Dane odczytujemy portem RS485 przez Modbus RTU
Podsumowanie
- W trybie transmisji Simplex, sygnał może być wysyłany tylko w jednym kierunku, co oznacza, że jest jednokierunkowy. Sygnał może być odebrany zarówno przez jedno urządzenie, bądź wiele urządzeń jak w przypadku komunikatów broadcast, dobrym przykładem jest magistrala CAN w motoryzacji. W pół-dupleksie zarówno nadajnik, jak i odbiornik mogą przesyłać sygnał, ale nie może dziać się to w tym samym momencie. W przeciwieństwie do tego trybu nadajnik i odbiornik pracujące w trybie full- duplex mogą przesyłać sygnał jednocześnie w tym samym czasie.
- Wydajność pełnego dupleksu jest lepsza niż half duplex i simplex, ponieważ lepiej wykorzystuje szerokość pasma niż half duplex i simplex.
- Omówione tryby komunikacji znajdują zastosowanie w niemal wszystkich urządzeniach komunikujących się ze sobą. Tryb Full duplex daje największe możliwości, jednakże jest jednocześnie najbardziej wymagający sprzętowo i bardziej skomplikowany.
- Urządzenia i protokoły mogą pracować w różnych trybach transmisji, gdyż zależ to jak zostały zaprojektowane. Jeśli nie potrzebujemy potwierdzenia odebrania informacji, użycie trybu simplex jest jak najbardziej zasadne, ponieważ czas przekazywania informacji jest pomniejszony o odpowiedź urządzenia.