W tej serii artykułów przyglądamy się różnym typom protokołów komunikacji szeregowej dostępnych do przesyłania danych między urządzeniami. Artykuły omówią kilka z bardziej popularnych protokołów i standardów używanych obecnie, a na końcu tej serii podsumujemy i porównamy zalety i wady każdego z nich. Mamy nadzieję, że te informacje okażą się cenne następnym razem, gdy będziesz musiał zaimplementować magistralę komunikacji szeregowej w swoim projekcie, pomagając Ci wybrać najbardziej odpowiednią opcję dla Twojego obwodu.
W tym artykule przyjrzymy się starszemu standardowi protokołu RS-232.
RS-232, co oznacza Recommended Standard 232, to standard protokołu urządzenia elektronicznego używany do transmisji danych między urządzeniami elektronicznymi, stworzony w 1960 roku. Kiedyś RS-232 był najczęściej używanym formatem transmisji danych i głównie implementowano go za pomocą standardowego 9-pinowego złącza D-sub (DB-9). Ten standard jest nadal często używany dzisiaj w różnych urządzeniach elektronicznych, w tym w komputerach, automatyce i urządzeniach medycznych.
Klasyczny kabel DB-9, Źródło obrazu: https://www.digikey.co.uk/product-detail/en/assmann-wsw-components/AK131-2/AE1379-ND/930165
RS-232 wykorzystuje dodatnie napięcie do transmisji sygnału o niskim poziomie logicznym (0) oraz ujemne napięcie do transmisji sygnału o wysokim poziomie logicznym (1).
Przykładowe sygnały RS-232
Napięcie |
Wartość logiczna |
---|---|
-18v do -5v |
1 |
-5v do +5v |
(niezdefiniowane) |
+5v do +18v |
0 |
Zasada komunikacji w RS-232 jest prosta. Urządzenie nadające przechowuje dane w swoim buforze, a następnie wysyła dane przez kabel (lub ścieżkę na PCB), a odbiornik przechowuje te dane w swoim buforze. Następnie odbiornik może odczytać dane z bufora.
Aby uniknąć wysyłania informacji, gdy nie ma podłączonego odbiornika, używane są piny DTR (Data Transmit Ready) i DSR (Data Set Ready). Gdy te piny są połączone i na nich ustawione jest odpowiednie napięcie przez odbiornik, wtedy urządzenie nadające wie, że odbiornik jest podłączony i gotowy.
Jeśli nadawca przesyła dane zbyt szybko, a odbiornik nie jest w stanie odczytać danych ze swojego bufora wystarczająco szybko, bufor się przepełni, a dane zostaną utracone. Aby zapobiec tej sytuacji, do nadawcy dodano dwa inne piny, a do odbiornika jeden. Z perspektywy nadawcy pin jest oznaczony jako RTS (Request to Send - Żądanie wysyłki), a z perspektywy odbiornika jako CTS (Clear to Send - Gotowość do wysyłki). Odbiornik informuje nadawcę, że jego bufor jest pełny, obniżając napięcie tego pinu. To sygnalizuje nadawcy, by nie wysyłał więcej informacji, dopóki odbiornik nie będzie gotowy. Jest to znane jako kontrola przepływu sprzętowa.
Dostępne są również dwa inne piny przeznaczone dla aplikacji telefonicznych, które obecnie są w dużej mierze zbędne. Jednym z nich jest DCD (Data Carrier Detect - Wykrywanie nośnika danych), który informuje modem o odbieraniu sygnału analogowego, a drugim jest RI (Ring Indicator - Wskaźnik dzwonienia), który wskazuje, że telefon dzwoni. Dzisiaj są one praktycznie nieużywane.
Ostatnie połączenie to SG lub Signal Ground (Masa sygnałowa), która jest odniesieniem napięcia masy dla komunikujących się urządzeń.
Istnieją dwa typy urządzeń komunikacyjnych RS-232: DTE (Data Terminal Equipment - Urządzenie Końcowe Danych) i DCE (Data Communication Equipment - Urządzenie Komunikacji Danych). Przykłady DTE to komputer, PLC lub inne urządzenia wysyłające polecenia. Przykłady DCE to modem, kamera, drukarka i ogólne urządzenia automatyki.
Dwa urządzenia DTE lub dwa urządzenia DCE nie mogą przesyłać między sobą informacji. Musi być obecne urządzenie DTE, które wysyła polecenia w celu nawiązania komunikacji między urządzeniami oraz urządzenie DCE, które wykonuje te polecenia.
RS-232 może być również używany do komunikacji między komputerami za pomocą modemów, jak pokazano poniżej:
Alternatywnie, można użyć okablowania Null Modem, które eliminuje potrzebę posiadania modemu
Jednakże, aby wyeliminować potrzebę posiadania przewodów DSR i RTS, pakiety danych ze strony odbiorcy muszą być wysyłane, aby wskazać, kiedy dane mogą być wysyłane, a kiedy nie. Pakiety są ustawiane na XON, aby sugerować, że dane mogą być wysyłane, i XOFF, aby sugerować, że dane nie mogą być wysyłane. Jest to znane jako kontrola przepływu programowa.
Główną wadą korzystania z RS-232 jest to, że jego komunikacja jest stosunkowo wolna w porównaniu z innymi protokołami komunikacji szeregowej. Może on niezawodnie osiągać prędkości tylko do 128 kbps w wielu zastosowaniach. Innym problemem jest to, że maksymalna długość kabla, na której może niezawodnie pracować, to tylko 15 metrów. Opór przewodów i pętle napięciowe stają się problemem na dłuższych kabli.
Mimo że RS-232 obecnie nie jest powszechnie używany w nowych urządzeniach z powodu dostępności innych, bardziej nowoczesnych protokołów komunikacji, często można znaleźć starsze urządzenia. Mimo to, nawet najbardziej aktualne i zaawansowane technologicznie płyty główne komputerów zwykle nadal mają nagłówek portu COM, który udostępnia RS-232, jeśli jest potrzebny. Na rynku nadal jest znaczna ilość sprzętu starszego niż 10 lat, w tym urządzenia takie jak drukarki, sprzęt do automatyzacji przemysłowej itp., które wymagają programowania i konserwacji, ponieważ są używane. Dla tego RS-232 jest niezbędny. Na szczęście dostępnych jest wiele konwerterów, takich jak RS-232 na USB, co oznacza, że nadal możemy łatwo komunikować się z tymi urządzeniami.
Ten artykuł przyjrzał się niektórym dziedzicznym cechom standardu protokołu RS-232 i omówił niektóre z jego zalet oraz szczegóły implementacji. W następnym artykule przyjrzymy się niektórym alternatywnym protokołom komunikacji szeregowej. Czy coś Ci umknęło? Sprawdź poprzednie artykuły z tej serii: Protokoły komunikacji szeregowej - Wprowadzenie oraz Protokoły komunikacji szeregowej - Część druga: UART.
Chcesz dowiedzieć się więcej o tym, jak Altium Designer® może pomóc Ci w następnym projekcie PCB? Porozmawiaj z ekspertem w Altium.