Przegląd RS-485
Podobnie jak RS-232, RS-485 jest standardem komunikacji szeregowej. Jego obecne oficjalne oznaczenie to TIA-485/EIA-485-A, ale powszechnie określa się go jako standard RS-485. RS-485 jest szeroko stosowany w branżach takich jak automatyka przemysłowa, motoryzacja i zarządzanie budynkami.
Magistrala RS-485 eliminuje wady RS-232, takie jak krótkie odległości komunikacyjne i niskie szybkości transmisji danych. RS-485 obsługuje szybkość transmisji danych do 10 Mbit/s i zapewnia teoretyczną odległość komunikacyjną do 1200 metrów. W odróżnieniu od transmisji single-ended w standardzie RS-232, RS-485 wykorzystuje transmisję różnicową za pośrednictwem pary skrętek, przy czym jeden przewód jest oznaczony jako A, a drugi jako B.
Warstwa fizyczna RS-485
Warstwa fizyczna RS-485 odpowiedzialna jest za przesyłanie surowych danych pomiędzy urządzeniami a fizycznym medium transmisyjnym. Obsługuje konwersję sygnałów elektrycznych na dane cyfrowe, definiując jednocześnie poziomy napięcia, taktowanie, szybkości transmisji danych i inne parametry.
① Sygnały różnicowe
Okablowanie-na duże odległości powoduje tłumienie sygnału i zwiększa prawdopodobieństwo występowania szumów i zakłóceń. Objawia się to zmianami amplitudy napięcia na kablach A i B. Jednakże zaletą stosowania linii różnicowych jest to, że odejmowanie różnicy między dwoma sygnałami eliminuje zakłócenia, umożliwiając wyprowadzenie normalnego sygnału. Zdolność odbiornika różnicowego do ignorowania identycznych napięć na obu liniach sygnałowych nazywana jest odrzucaniem trybu wspólnego.


Norma określa, że logika 1 to +2V do +6V, a logika 0 to -6V do -2V.
RS-485 nie wymaga określonego napięcia magistrali; uwzględnia tylko minimalne napięcie różnicowe. Przy dłuższych kablach napięcie odbierane przez odbiornik może spaść do +/- 200 mV, co jest w dalszym ciągu całkowicie akceptowalne dla RS-485 – to jedna z zalet RS-485.
Wiele transceiverów spełnia lub nawet przewyższa normę TIA/EIA-485A; w zastosowaniach praktycznych jednak pierwszeństwo mają określone parametry urządzenia. Na przykład minimalny próg wejścia ujemnego dla określonego transceivera wynosi -200 mV.


② Definicje sygnałów
Wiele współczesnych konwerterów RS-485 jest zgodnych z RS-422, więc często można zobaczyć na tych konwerterach sygnały oznaczone T/R+ i T/R-, które odpowiadają A+ i B- RS-485.
W przypadku złączy żeńskich DB9 definicja okablowania RS-485 jest następująca: Piny od 6 do 9 są niedostępne i nie powinny być łączone.
| DB9 | Sygnał wyjściowy | Okablowanie RS-422 w trybie pełnego dupleksu | Okablowanie półdupleksowe RS-485 |
| 1 | T/R+ | Wyślij(A+) | RS-485(A+) |
| 2 | T/R- | Wyślij(B-) | RS-485(B-) |
| 3 | RXD+ | Otrzymaj (A+) | Pusty |
| 4 | RXD- | Odbierz(B-) | Pusty |
| 5 | GND | Przewód uziemiający | Przewód uziemiający |
③ Topologia
RS-485 obsługuje konfiguracje dwu-przewodowe i cztero-przewodowe. Konfiguracja-czteroprzewodowa ogranicza się do komunikacji punkt-do-punktu i jest obecnie rzadko stosowana; częściej stosowana jest konfiguracja dwuprzewodowa. Ta konfiguracja wykorzystuje topologię magistrali, umożliwiając podłączenie do 32 węzłów na jednej magistrali.
Podobnie jak I²C, magistrala RS-485 działa w trybie master-slave. Obsługuje zarówno tryb-punkt-punkt-pojedynczy-podrzędny, jak i tryb wielu-podrzędnych, ale nie obsługuje trybu wielu urządzeń nadrzędnych.


Transceiver RS-485
RS-485 wykorzystuje transmisję różnicową. Jeśli chcesz sterować urządzeniem RS-485 za pomocą mikrokontrolera, potrzebujesz transceivera podobnego do magistrali CAN. Poniższy diagram ilustruje MCU sterujący urządzeniem RS-485.
Wewnątrz transiwera znajduje się odbiornik (górna połowa) i nadajnik (dolna połowa). Poniżej znajduje się krótkie wyjaśnienie działania transiwera, które pomoże Ci zrozumieć, w jaki sposób MCU komunikuje się z urządzeniem 485.

Struktura wewnętrzna transceivera RS-485
Gdzie:
A i B to autobus;
R jest wejściem odbiornika;
RE jest sygnałem włączającym odbiornik;
DE jest sygnałem włączającym nadajnik;
D to wyjście nadajnika;
W przypadku sygnałów włączających te z linią nad literą są aktywne-nisko (np. RE na powyższym rysunku), natomiast te bez linii są aktywne-wysoko (np. DE).
Tabela prawdy odbiorcy
Dla nadajnika tabela prawdy wygląda następująco:
1. Kiedy pin DE włączający sterownik jest na poziomie logicznym wysokim, wyjścia różnicowe A i B podążają za stanem logicznym na wejściu danych D. Wysoki stan logiczny na D powoduje, że A przechodzi w stan wysoki, a B w stan niski. W tym przypadku różnicowe napięcie wyjściowe, określone jako VOD=VA – VB, jest dodatnie. Gdy D jest w stanie niskim, stany wyjściowe odwracają się: B staje się wysokie, A ma stan niski, a VOD jest ujemne.
2. Gdy DE jest niskie, oba wyjścia uzyskują wysoką-impedancję. W tym przypadku stan logiczny w D jest nieistotny.
Poniższa tabela prawdy dotyczy odbiornika:
1. Kiedy pin włączający odbiornika (RE) znajduje się w stanie logicznym niskim, odbiornik jest aktywowany. Kiedy różnicowe napięcie wejściowe, zdefiniowane jako VID=VA – VB, jest dodatnie i przekracza dodatni próg wejściowy VIT+, wyjście odbiornika R przechodzi w stan wysoki. Gdy VID jest ujemny i znajduje się poniżej ujemnego progu wejściowego VIT-, wyjście odbiornika R przechodzi w stan niski. Jeśli VID znajduje się pomiędzy VIT+ a VIT-, wynik jest niezdefiniowany.
2. Gdy RE ma poziom logiczny wysoki lub zmienny, wyjście odbiornika ma wysoką impedancję, niezależnie od wielkości lub polaryzacji VID.


Łącze danych RS-485
Po omówieniu powyżej zasad działania transceivera RS-485, teraz pokrótce opiszemy łącze danych RS-485. Możesz najpierw przyjrzeć się łatwemu do zrozumienia formatowi ramki protokołu UART.
Niezależnie od tego, czy urządzenie nadrzędne wysyła dane do urządzenia podrzędnego, czy urządzenie podrzędne wysyła dane do urządzenia nadrzędnego, używane są obie linie A i B; dlatego RS-485 jest zwykle używany w trybie półdupleksowym.
GPIO hosta steruje pinem DE transceivera RS-485 w celu ustawienia trybu transmisji. Pojedynczy bajt jest wysyłany z linii UART TXD do linii danych (D lub DI) transceivera RS-485. Transceiver konwertuje strumień bitów UART z pojedynczym końcem na różnicowy strumień bitów na liniach A i B. Gdy dane opuszczą transceiver, host natychmiast przełącza transceiver w tryb odbioru.
Slave działa podobnie jak master. Urządzenie podrzędne steruje pinem /RE transceivera RS-485, aby ustawić go w tryb odbioru, odbiera strumień bitów wysyłany przez urządzenie nadrzędne, konwertuje go na sygnał single-ended i odbiera go przez linię UART RXD urządzenia podrzędnego. Gdy urządzenie podrzędne jest gotowe do odpowiedzi, przesyła dane w taki sam sposób jak urządzenie nadrzędne, natomiast urządzenie nadrzędne przełącza się w tryb odbioru.
Konwersja RS-232 na RS-485
Istnieje możliwość konwersji pomiędzy RS-232 i RS-485. Jedną z metod jest konwersja RS-232 na TTL, a następnie konwersja TTL na RS-485. Oczywiście istnieją również chipy obsługujące bezpośrednią konwersję z RS-232 na RS-485, a wiele takich modułów jest dostępnych w Internecie.
Moduły konwersji RS-232 na RS-485
Różnice między RS-485 a CAN
Chociaż RS-485 nie ma znormalizowanego formatu protokołu danych, ma wiele podobieństw z magistralą CAN. Na przykład zarówno A&B, jak i CANH&CANL są sygnałami różnicowymi; oba wymagają transceiverów do komunikacji; i oba wykorzystują, między innymi, rezystory końcowe 120 omów.
| Charakterystyka autobusu | Autobus CAN | Magistrala RS-485 |
| Koszty sprzętu | Nieco wyżej | Niedrogi |
| Wykorzystanie autobusu | Automatyczny arbitraż priorytetowy, wysokie wykorzystanie | Używa odpytywania; niskie wykorzystanie |
| Szybkość przesyłania danych | Wysoki | Niski |
| Mechanizmy wykrywania błędów | Kontroler zawiera mechanizm sum kontrolnych zapewniający dokładność transmisji danych na niskim{0}}poziomie | Tylko specyfikacje warstwy fizycznej; brak specyfikacji warstwy łącza danych |
| Wpływ awarii pojedynczego-węzła | Żadnego wpływu na autobus | Paraliż autobusu |
| Koszty rozwoju | Elastyczny rozwój oprogramowania, niski koszt czasu | Trudno się rozwijać |
| Koszty systemu | Stosunkowo niski | Wysoki |
Typowe obwody RS-485
Oto typowy obwód RS-485, który znalazłem w Internecie. Należy zwrócić uwagę na dwie kwestie:
1. Sygnały włączające RE i DE mogą być kontrolowane przez pojedynczy GPIO w celu oszczędzania zasobów. Gdy GPIO25 generuje wysoki poziom, RE i DE wynoszą 0 V, a urządzenie przechodzi w tryb odbioru; gdy GPIO25 wyprowadza niski poziom, RE i DE wynoszą 3,3 V, a urządzenie przechodzi w tryb transmisji.
2. W niektórych obwodach rezystor podciągający jest dodawany do styku A, a rezystor podciągający-do styku B. Głównym powodem jest to, że gdy magistrala RS-485 jest w stanie bezczynności, poziom napięcia nie jest stały,-to znaczy waha się od -200 mV do +200 mV, a transceiver może dawać albo wysoki, albo niski poziom. UART musi utrzymywać wysoki poziom w stanie bezczynności; jeśli transiwer wysyła w tym momencie niski poziom, UART interpretuje to jako bit startu, co może powodować błędy komunikacji. Konkretne wartości R_u i R_d nie będą tutaj szczegółowo omawiane; W przyszłości planuję napisać obszerny artykuł na ten temat.

Jeśli chodzi o drugi punkt, proszę zwrócić uwagę na następujące kwestie:
① Jeśli zastosujesz rezystor podciągający-w górę do styku A i rezystor podciągający-w dół do styku B, transmisja danych może się nie powieść z powodu odwrotnych połączeń.
② Jeśli transceiver ma wbudowane-rezystory podciągające-w górę i ściągające-w dół, nie ma potrzeby dodawania zewnętrznych.




