Bufor nadawczy do transmisji szeregowej

W swojej praktyce inżynierskiej wielokrotnie spotkałem się z problemami w działaniu szeregowej transmisji danych po łączach EIA/RS232C. Mam na myśli różne obwody sterowania i pomiarów w automatyce przemysłowej i w wagach elektronicznych, gdzie tego typu łącza są powszechnie wykorzystywane także dzisiaj. Najczęściej problemy występowały tam, gdzie projektant lub instalator nie docenił realiów, w jakich przyszło pracować układowi transmisji. Wydawać by się mogło, ze tego typu instalacje – automatyka, pomiary przemysłowe, wykonują wyszkoleni fachowcy. Życie pokazuje, że bywa różnie…

Standard napięciowej transmisji szeregowej EIA/RS232C określa kilka istotnych warunków dla poprawnej pracy łącza. Tym, który najczęściej nie jest spełniony, jest maksymalna długość kabla (15m dla 20kbps). Spotykałem się już z torami transmisyjnymi o długości nawet kilkuset metrów, które „jakoś” pracowały, a ich twórcy byli przekonani, że jak coś nie działa, to trzeba obniżyć prędkość transmisji i będzie dobrze! Okazuje się, że nie zawsze…

Z czego biorą się problemy?

Pierwszym ich źródłem jest powszechna i poniekąd słuszna tendencja do ograniczania poboru mocy pobieranej przez układy elektroniczne. Zasilanie układów logicznych z pojedynczego źródła zasilania 5V lub coraz częściej 3.3V spowodowało powstanie układów, które niwelują brak niektórych napięć zasilających.

Typowe, w starszych realizacjach torów transmisji szeregowej, było zasilanie stopnia liniowego napięciem symetrycznym +/-12V oraz +5V. W nowych rozwiązaniach układ interfejsowy jest wykonywany o oparciu o moduł zasilany z pojedynczego napięcia +3.3/5V. W układzie takim (np. MAX3232, ICL3232, SP3232, ADM3310E), stopień końcowy sam wytwarza napięcie o dwóch polaryzacjach, zapewniając wypełnienie wymogów napięciowych standardu EIA/RS232C. Napięcie to z reguły nie przekracza +/-5.5V w stanie nieobciążonym.

Dla typowej transmisji szeregowej to wystarcza, bo zgodnie ze standardem, napięcie wyjściowe powinno być wyższe od +3V lub niższe od -3V.

O przekroczenie maksymalnych wartości napięć obawiać się nie musimy, bo w tych układach nie występują tak wysokie napięcia!

Najczęstsze zastosowania takich układów to transmisja danych na niewielkie odległości – pomiędzy blokami w urządzeniu lub na dystansie kilkudziesięciu cm lub co najwyżej 1,5m.

Uproszczenie układu i oszczędności są jednak okupione ograniczoną wydajnością prądową stopni wyjściowych buforów liniowych. W konsekwencji układy takie pracują doskonale, nawet przy prędkościach transmisji rzędu 460kbps, ale na dystansie nieprzekraczającym kilkudziesięciu centymetrów.

Musimy pamiętać, że w napięciowej transmisji szeregowej, sygnał wyjściowy pojawia się na końcu toru transmisyjnego, stłumiony na skutek istnienia oporności linii (omowej) i opóźniony/zniekształcony przez negatywny wpływ pojemności międzyżyłowych i doziemnych. Spadek amplitudy będzie zauważalny zwłaszcza wtedy, jeżeli oporność wejściowa odbiornika będzie niewielka. Standard to 3.75kW, typowy odbiornik linii, wykonany w technologii CMOS, spełni go z zapasem. Ale zdarzają się tzw. optoizolowane wejścia, które wymagają prądu kilku do kilkunastu mA do prawidłowego zadziałania…

Długie kable, zwłaszcza o niskiej jakości, mają bardzo niekorzystną dla takich zastosowań właściwość – znaczącą pojemność między żyłami sygnałowymi i masą.  Pojemność i oporność kabla powodują efekt taki jak układ całkujący RC. Maleje prędkość narastania sygnału, co w połączeniu ze zbyt dużą częstotliwością przełączania powoduje, że na wejściu odbiornika sygnał jest za słaby i zbyt zniekształcony, żeby poprawnie rozróżnić „0” i „1”.

Zdarzają się także tak kuriozalne przypadki, jak tor transmisji danych szeregowych o długości ok. 330m, wykonany z połączonych kilku odcinków kabla oświetleniowego YDY P 3×0.75.

Co zrobić w takiej sytuacji? Transmisja „działa” tylko czasami, ułożenie nowego kabla jest technicznie możliwe, ale ani gestor, ani „winowajca” na koszty nie chce się zgodzić, a system bez prawidłowej transmisji nie jest ani kompletny, ani przydatny dla swojego celu.

Rozwiązaniem w takim przypadku może być użycie bufora nadawczego, pokazanego na schemacie poniżej.

Jeżeli w układzie transmisyjnym zastosowano, po stronie nadawczej, układ scalony np. MAX232, w obudowie DIL, umieszczony w podstawce, to może się okazać, że zastosowanie układu o podobnej konstrukcji rozwiąże problem w sposób prowizoryczny, ale ostateczny.

Bufor transmisji szeregowej - montaż na płytce uniwersalnej

Terminal wagi przed podłączeniem bufora

Terminal wagi po podłączeniu bufora

Układ bufora ma dwa wzmacniacze przeciwsobne na tranzystorach komplementarnych, zasilane z przetwornicy DC/DC. Przetwornicę musimy dobrać zależnie od tego, czy napięcie zasilania układów cyfrowych ma wartość 3.3V czy 5V. Po stronie wyjściowej mamy dwa napięcia +12V i -12V 50mA. Jeżeli to byłoby niewystarczające, możemy zastosować przetwornicę o większej mocy np. 2W. Najistotniejszą zaletą rozwiązania jest bardzo mała wyjściowa oporność dynamiczna stopni nadawczych. Dzięki temu pojemności kabla są przeładowywane zdecydowane szybciej. Amplituda sygnału wyjściowego jest większa i mniej zależna od parametrów kabla. Lepiej jest tolerowana także mała lub nieliniowa oporność wejściowa (optoizolator).

Efekty zastosowania takiego bufora pokazują poniższe oscylogramy, przed i po połączeniu wzmacniacza.

Sygnał transmisji szeregowej na kablu obciążonym optoizoatorem

 

Sygnał po wzmocnieniu na 120m kablu bez obciążenia

 

Sygnał na 120m kablu zakończonym optosprzęgaczem

 

 

 

 

.