logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Połączenie 2 uK AVR przez RS - maksymalna długość przewodów

wojteksct 11 Maj 2006 14:32 4328 17
  • #1 2614966
    wojteksct
    Poziom 15  
    Posty: 214
    Pomógł: 3
    Ocena: 7
    Witam:)

    Mam taki problem: dostałem zlecenie zrealizowania pewnego projektu, gdzie dane muszą być wymieniane między dwoma mikrokontrolerami AVR. Problem w tym, że oba urządzenia zawierające mikrokontrolery są oddalone od siebie o 50m (przewody bedą biegły najprawdopodobniej pod ziemią). Czy zatem połaczenie przez port szeregowy wchodzi w gre? Czy beda zbyt duze zakłócenia? Jesli tak to prosze o propozycje jak rozwiazac ten problem.

    Pozdrawiam

    Wojtek
  • #2 2615189
    Bigfoot
    Poziom 25  
    Posty: 982
    Pomógł: 74
    Ocena: 13
    konwerter RS232<>RS485, dodatkowo programowe CRC16 i bedzie dzialalo bez zarzutu.

    BF
  • #3 2615281
    Robin Robinowski
    Poziom 13  
    Posty: 59
    Pomógł: 2
    Ocena: 3
    Jesli twoja transmisja moze byc w trybie halfduplex to wystarczą dwa uklady RS485 ( Maxim wysyla takie za darmo w formie próbek) i masz po kłopocie. Jesli potrzebujesz trybu Fullduplex proponuje RS422, posiada on dwa tory przesyłowe składające sie z czterech przewodów. Dwa są nadawcze i dwa odbiorcze. Przy takich rozwiązaniach nie musisz martwić się o zakłócenia a procesory skomunikują się nawet na kablu o długości 1Km. No i niepotrzebujesz kupować konwertera rs232<>rs485, w koncu to transmisja miedzy procesorami a nie komputerem i prockiem :D

    Pozdrawiam.
  • #4 2615308
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    Drugim rozwiązaniem stosowanym również przy znacznie większych odległościach jest pętla prądowa na RS232. Odporność tego układu na zakłócenia jest wyższa od układów typu RS485 czy innych napięciowych linii teletransmisyjnych. Jak napisano w jednym z postów poniższego tematu po stronie nadajnika trzeba dać sterowane cyfrowo źródło prądowe, po drugiej najlepiej cyfrowy optoizolator. Standardowo mówi się o 20 mA, w telegrafii stosowano 60mA.

    https://www.elektroda.pl/rtvforum/topic90770.html

    www.google.com - rs232 current loop

    Podobnie jak poprzednio są dwie możliwości - pośrednio zastosowanie złącza RS232 (konwerter MAX232) lub bezpośrednia konwersja TTL<>Current Loop
  • #5 2615531
    bis
    Poziom 21  
    Posty: 274
    Pomógł: 54
    Ocena: 3
    Zdecydownie lepsza do warunków polowych jest pętla prądowa (wtedy naprawdę na jeden tor wystarczą dwa druty, a na komplet cztery) a optoizolacja doskonale odrywa op problemu wspólnej masy na odległych końcach. Robin nie calkiem dobrze policzył. W RS422 poza dwoma parami przewodów sygnałowych potrzeba jeszcze wspólnej masy, czyli przewodów jest PIĘĆ i trochę problemów przybywa.
  • #6 2615565
    wojteksct
    Poziom 15  
    Posty: 214
    Pomógł: 3
    Ocena: 7
    Dzieki za podpowiedzi. Oczekuje na podsumowanie - konkretny sposob najlepiej poparty schematem - bede wdzieczny. Nie musi byc full duplex - chodzi o to ze jedno urzadzenie znajduje sie na zewnatrz budynku (okolo 50m) i tam pracownik wpisuje ile zostalo np paliwa w cysternnie w danym dniu. Ta dana zaraz po wpisaniu ma zostac przeslana do budynku i zapisana w ttym drugim ukladzie - na predkosci transmisji tez mi nie zalezy, chodzi o sama komunikacje:)

    Pozdrawiam
  • #7 2616525
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    Też uważam, że pętla prądowa jest bezpieczniejsza.
    Jeśli chodzi o pętle prądową to profesjonalne rozwiązanie znajdziesz w datasheet optoizolatora hcpl4100 str od 10, rys 12, 13,14,15.

    Można to też zrealizować prościej dając w nadajniku kluczowane źródło prądowe na jednym/dwóch tranzystorach, a w odbiorniku optoizolator odbiornika pętli prądowej HCPL4200 (datasheet hcpl4200 rys od 17) lub w ostateczności optoizolator cyfrowy np HCPL2630 lub nawet standardowy (4N35 itp)

    W przypadku duplexu układ niekoniecznie musi mieć optoizolatory po jednej stronie. Można też skrzyżować układy dając optoizolator tylko w nadajnikach lub tylko w odbiornikach.

    Z wykresów widać, że 10km jest też osiągalne.
    Załączniki:
    • Połączenie 2 uK AVR przez RS - maksymalna długość przewodów OPTO4.jpg (48.48 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Połączenie 2 uK AVR przez RS - maksymalna długość przewodów OPTO3.jpg (20.56 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Połączenie 2 uK AVR przez RS - maksymalna długość przewodów OPTO2.jpg (45.73 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Połączenie 2 uK AVR przez RS - maksymalna długość przewodów opto1.jpg (39.44 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #9 2617169
    wojteksct
    Poziom 15  
    Posty: 214
    Pomógł: 3
    Ocena: 7
    ok wydaje mi sie ze zastosowanie konwertera bedzie lepszym wyjsciem...Mam tylko pytanko - w jaki sposob podlaczyc to wszystko zeby dzialalo? Nie bawilem sie takimi ukladami stad moje "mądre" pytanie ;). Prosze o konkretny schemat z konwerterami

    Pozdrawiam
  • #10 2617939
    Mustela73
    Poziom 13  
    Posty: 57
    bis:
    Mozesz wytlumaczyc po co masa?
    w moim projecie uzywam tylko dwoch lini Tx (tylko wysylam dane) i nie uzywam masy.
    Wrecz zabraniam jej stosowania bo pojawiaja mi sie niepozadane roznice potencjalow wynikajace z roznch zrodel zasilania.
    Po co masa?
    a jako rozwiazanie to koledzy podali. Petla prodowa TTL <-> TTL przez optoizolatory.
    Pozdrawiam
  • #11 2621279
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    wojteksct napisał:
    ok wydaje mi sie ze zastosowanie konwertera bedzie lepszym wyjsciem...Mam tylko pytanko - w jaki sposob podlaczyc to wszystko zeby dzialalo? Nie bawilem sie takimi ukladami stad moje "mądre" pytanie ;). Prosze o konkretny schemat z konwerterami

    Pozdrawiam
    Zastosowanie konwertera RS232/485 wymaga po obu stronach uprzedniej konwersji TTL<>RS232. Biorąc pod uwagę, ze w takim kupnym konwerterze poziomem pośrednim może być TTL (mam na myśli porzadne konwertery standardu, a nie proste układy dopasowania poziomu), mamy układ:

    TTL<(MAX232)>RS232<(MAX232)>TTL<(MAX485)> [RS485 LINIA] <(MAX485)>TTL<(MAX232)>RS232<(MAX232)>TTL

    (konwertery wyróżnione kolorem niebieskim).
    Można i tak. Można jeszcze po drodze wstawić kilka innych konwerterów, co specjalnie nie zaszkodzi transmisji, ale też nie pomoże. Niezależnie od tego wrzucenie w tor transmisji dwóch zbędnych modułów w cenie po 150-200 zł każdy jest kompletnie bez sensu.

    Jeśli chcesz zastosować RS485 w półdupleksie musisz w każdym komputerku dać tylko MAX485 (481 itp) sterowany z UARTA i dodatkowo podłączyć do portu linię sterowania kierunkiem transmisji w tym scalaku. W takim interfejsie masz 2 przewody pracujące różnicowo. Układ wygląda tak:

    TTL<(MAX485)>[LINIA RS485]<(MAX485)>TTL

    W układzie dupleksowym trzeba rozdzielić linie, czyli masz 4 przewody w parach pracujących różnicowo. Dla pełnego bezpieczeństwa można i tu dać optoizolację (po stronie TTL), ale zwiększa to złożoność układu lepiej niż dwukrotnie.

    Nadal twierdzę, że konwersja do pętli prądowej z optoizolacją jest rozwiązaniem optymalnym, czego dobrym dowodem jest stosowanie właśnie tych standardów w telegrafii (a nie układów symetrycznych-różnicowych, napięciowych).
  • #12 2621833
    bis
    Poziom 21  
    Posty: 274
    Pomógł: 54
    Ocena: 3
    Mustela73: że by nie powielać to poczytaj:
    https://www.elektroda.pl/rtvforum/rownoprawny-dostep-na-rs485-jak-ytt507012.html
    Tam podałem dokładniej dlaczego wspólna masa i linki do dokladniejszych opisów. Standardy RS422/485 z zasady działania(sygnałem jest róznica napięć w dwóch przewodach względem masy) wymagają wspólnej masy. Bez niej różnica potencjałów zniszczy odbiorniki. To że w twoim przykładzie coś działa nie oznacza że konstrukcja jest poprawna.
  • #13 2622036
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    W liniach RS485 sygnałem jest różnica potencjałów a nie:

    Cytat:
    róznica napięć w dwóch przewodach względem masy


    bis napisał:
    ...wymagają wspólnej masy. Bez niej różnica potencjałów zniszczy odbiorniki...


    Pierwszy z brzegu przykład z internetu - instrukcja podłączenia konwertera USB<>RS485. W całej instrukcji nie ma ani słowa o łączeniu mas, w złączach i schematach nie ma stosownych odniesień. Pływający potencjał masy uzgadniany jest na liniach łączących, co w układzie różnicowym nie stwarza specjalnej różnicy.
    Załączniki:
    • Połączenie 2 uK AVR przez RS - maksymalna długość przewodów ss.jpg (22.49 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #14 2622284
    bis
    Poziom 21  
    Posty: 274
    Pomógł: 54
    Ocena: 3
    marek_Łódź: Ta instrukcja jest tak sobie, powiela standardowy błąd. Widziałem wiele konwerterów ale każdy porządny posiada osobny zacisk dla masy. znacznie lepiej jest popatrzeć na opis standardu i noty katalogowe układów do RS422/485. Albo poczytać tutaj
    http://www.bb-elec.com/tech_articles/rs422_485_app_note/overview.asp#UnbalancedLD
    spróbój dokładniej opisac co wg. Ciebie znaczy różnica potencjałów albo co to jest potencjał przewodu A albo B (aby wyznaczyć ich różnicę).
  • #15 2622525
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    Potencjał jako wielkość absolutna nie istnieje, tak samo jak nie istnieje absolutna wartość napięcia. Dlatego zawsze lepiej mówić o różnicy potencjałów, a w przpadku układów z wyróżnioną masą o potencjale względem masy.

    Do zmierzenia, czy określenia znaku różnicy napięć między dwoma przewodami nie potrzebuję ciągnąć napięcia odniesienia (masy), a odbiornik różnicowy jest w stanie nie tylko wykryć stan 0-1, ale również zmierzyć tę różnicę, mimo, że poziom tych linii pływa w stosunku do jego masy. Tak więc układ RS485 będzie pracował w układzie dwuprzewodowym, choć w niektórych konfiguracjach pociągnięcie masy (np przez ekran) może poprawić pewność transmisji. Żeby nie przeciągać jeszcze mały cytat

    http://www.lammertbies.nl/comm/info/RS-485.html

    Cytat:
    Several volts difference in the ground level of the RS485 transmitter and receiver does not cause any problems. The RS485 signals are floating and each signal is transmitted over a Sig+ line and a Sig- line. The RS485 receiver compares the voltage difference between both lines, instead of the absolute voltage level on a signal line. This works well and prevents the existence of ground loops, a common source of communication problems. The best results are achieved if the Sig+ and Sig- lines are twisted.


    Jeszcze mały cytat z listy parametrów nadajników/odbiorników linii http://www.futureelectronics.com/promos/sipex/rs485/

    Cytat:
    Operates with common mode noise (ground shift) from -7V to +12V
    (pływanie masy jest efektem właśnie braku przewodu masowego).
  • #16 2622732
    bis
    Poziom 21  
    Posty: 274
    Pomógł: 54
    Ocena: 3
    Cytat:
    Cytat:
    Operates with common mode noise (ground shift) from -7V to +12V
    (pływanie masy jest efektem właśnie braku przewodu masowego).


    To nie jest "pływanie masy" ale róznica pomiędzy masami wynikająca z długości przewodów właśnie masy (tam też płynie prąd i nadługich przewodach to właśnie jest te kilka woltów). izolowane punkty mogą mieć róznicę potencjału liczoną w tysiącach woltów.
  • #17 2622785
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    Piszesz dokładnie coś przeciwnego do tego, co napisano w powyższym cytacie (pierwszy dwa posty wyżej). Dlaczego akurat Tobie miałbym wierzyć? Tym bardziej, ze widziałem pracujące linie dwuprzewodowe właśnie z pływającą masą. Tak jak napisałem - nie widziałem normy, więc nie wiem jak to się ma do standardu, natomiast rozwiązania lansowane przez Siemensa są dla mnie mało wiarygodne. Co do tych tysięcy woltów, to równie łatwo je wytracić w rezystorze terminatora i diodach zabezpieczających odbiorniki.
  • #18 2628492
    keramstwo
    Poziom 13  
    Posty: 123
    Od 15 lat stosuje sprawdzony układ halfduplex. po kazdej stronie dwa tranzystorki kilka oporników. Kabel dwuzyłowy . Maksymalna odległosc do 300m ale 2 km tez działało. Przy 15km musialem dac 12V i transmisja spadła do 600 bod. Jak wyzej powiedziano to zwykła pętla prądowa. Pozdrawiam

Podsumowanie tematu

✨ Dyskusja dotyczy problemu komunikacji między dwoma mikrokontrolerami AVR oddalonymi o około 50 metrów, gdzie standardowe połączenie RS232 może być niewystarczające ze względu na zakłócenia i długość przewodów. Proponowane rozwiązania obejmują zastosowanie konwerterów RS232/RS485 lub RS422, które umożliwiają transmisję różnicową na większe odległości (nawet do 1 km i więcej) z odpornością na zakłócenia. W przypadku transmisji half-duplex wystarczą układy RS485, natomiast do full-duplex zalecany jest RS422 z dwoma parami przewodów sygnałowych plus masa. Alternatywnie, rekomendowana jest pętla prądowa (current loop) z optoizolacją, która zapewnia wysoką odporność na zakłócenia i izolację galwaniczną, a do realizacji można użyć optoizolatorów takich jak HCPL4100, HCPL4200, HCPL2630 lub standardowych 4N35. Dyskusja porusza również kwestie związane z koniecznością stosowania przewodu masowego w liniach RS485/RS422, gdzie opinie są podzielone, jednak standardy wskazują na potrzebę wspólnej masy dla poprawnej pracy odbiorników różnicowych. Praktyczne rozwiązania obejmują sterowanie kierunkiem transmisji w układach MAX485 oraz stosowanie prostych układów tranzystorowych do generowania pętli prądowej. Wskazano również na dostępność gotowych konwerterów RS485, które ułatwiają implementację. Całość podsumowano zaleceniem wyboru konwertera RS485 w trybie half-duplex lub pętli prądowej z optoizolacją, w zależności od wymagań dotyczących prostoty i niezawodności transmisji na dystansie 50 m.
Wygenerowane przez model językowy.
REKLAMA