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

Sprzętowe wykrycie zajęcia magistrali RS485

gothye 14 Sty 2008 23:05 3618 16
REKLAMA
  • #1 4695142
    gothye
    Poziom 33  
    witam

    poszukuję wszelkich pomysłów jakie pomoga mi zbudowac układ do detekcji zajecia magistrali rs485 opartej o układ max485

    mój pomysł :

    za pomocą opamp dokonywać pomiaru na szynie A oraz B ,róznica wskazywała by na zajętą ,czy to dobre rozwiązanie ?
  • REKLAMA
  • #2 4695482
    bis
    Poziom 21  
    Oczywiście istnieje teoretyczna możliwośc wykrywania sprzetowego "zajętości" szyny RS485 ale praktycznego zastosowania ten sygnał nigdy nie będzie miał. Po prostu na szynie, w róznych jej miejscach w tym samym czasie mogą być zupełnie różne stany. Zalezy to od wzajemnego połozenia elementu aktywnego i pozostałych na długości szyny, od czasu propagacji sygnału w linii i indywidualnego dla każdego "miernika" progu czułości, co powoduje że praktycznie nie istnieje pewny detektor. Inaczej mówiąc nigdy nie będzie pewnego sygnału mówiącego że szyna jest "wolna". Jak dotychczas, przez kilkadziesiąt lat nic takiego nie powstało i nie powstanie dla RS485 bo nie do takigo sposobu synchronizacji ten standard wymyślono.

    bis
  • #3 4695611
    arturt134
    Poziom 27  
    Temat sprawdzania zajęości magistrali RS485 pojawia się na tym forum nie po raz pierwszy. Sugerowałbym poszukać i poczytać o proponowanych rozwiązaniach.
    Ja ze swojej strony mogę tylko podpowiedzieć rozwiązanie, które najbardziej mi się podoba. Wystarczy podczas nadawania mieć włączony odbiornik i sprawdzać czy na magistrali pojawia się to co nadajesz. Jeżeli wystąpi kolizja, to natychmiast się o tym dowiesz i możesz ramkę retransmitować za jakiś czas. No i oczywiście wymiana danych powinna się odbywać z potwierdzeniami.
    Życzę owocnego szukania i pozdrawiam.
  • REKLAMA
  • #4 4695660
    pidorek
    Poziom 15  
    To rozwiązanie co podał Artur134 jest nawet bardzo popularne, tylko że należy uważać na same konwertery bo nie we wszystkich kościach różnych producentów przy nadawaniu sygnał z magistrali wraca do procesora. Tzn przy różnych ustawieniach wejścia nadawanie/odbieranie czasami można tylko nadawać lub tylko odbierać.
  • #5 4695949
    gothye
    Poziom 33  
    hmm ,juz mówie do czego zmierzam ,dla szyny 485 bedą pracować 2 układy max485 z kazdej strony ,jeden ustawiony na nadawanie drugi na odbieranie (full duplex) detekcja sprzętowa bardzo ułatwi mi pisanie protokołu dla interfeisu
  • REKLAMA
  • #6 4696575
    marek_Łódź
    Poziom 36  
    gothye napisał:
    poszukuję wszelkich pomysłów jakie pomoga mi zbudowac układ do detekcji zajecia magistrali rs485 opartej o układ max485

    mój pomysł :

    za pomocą opamp dokonywać pomiaru na szynie A oraz B ,róznica wskazywała by na zajętą ,czy to dobre rozwiązanie ?
    ROżnica będzie raz dodatnia, raz ujemna.

    1. Dać obie te linie przez diody na wspólne wejście wzmacniacza operacyjnego np wtórnik
    2. Różnica A-B na prostownik idealny zrobiony na WO
    3. Rezystor+transoptor z wejściem AC
  • REKLAMA
  • #7 4697407
    gothye
    Poziom 33  
    marek_Łódź napisał:
    ROżnica będzie raz dodatnia, raz ujemna.

    1. Dać obie te linie przez diody na wspólne wejście wzmacniacza operacyjnego np wtórnik
    2. Różnica A-B na prostownik idealny zrobiony na WO
    3. Rezystor+transoptor z wejściem AC


    tak ale podłaczenie transoptora obciązy prądowo szyne ,a tego własnie chce uniknąć stosując opamp :(
  • #8 4699204
    marek_Łódź
    Poziom 36  
    Jak dasz transoptor z darlingtonem, to wystarczy powiedzmy 1 mA. Poza tym linie RS485 i tak należy dociążyć rezystorem, więc masz dwa w jednym.
  • #9 4699279
    arturt134
    Poziom 27  
    Jeżeli wolisz taki mechanizm sprawdzania, to może podłącz dodatkowo wyjście odbiornika RS485 do przerwania w procesorze. Zmiana z wysokiego na niski odpali przerwanie i wiesz, że coś zaczęło transmitować. Jeżeli przez czas jednego bajtu (przy ustawionej prędkości transmisji) nie ma zmiany stanu H->L, to koniec nadawania. Oczywiście odbiornik RS485 musi być włączony na okrągło.
  • Pomocny post
    #11 4720995
    arturt134
    Poziom 27  
    Dokładnie to miałem na myśli. Oczywiście, jeżeli przez RS485 masz zamiar odbierać jakieś dane, to podłącz INT0 także do RX procesora.
  • #12 4722098
    gothye
    Poziom 33  
    zastanawiam sie jeszcze czy w jednym urządzeniu nie zastosować 2xmax485 czyli full-duplex wtedy nie bede potrzebował monitorowania zajecia magistrali ,połaczenie wyglądało by tak 1 odbiornik - 4 nadajniki które bedą wysyłać ,czy dobrze rozumuję ?

    Pozdrawiam
  • #13 4722150
    marek_Łódź
    Poziom 36  
    A jak zrobisz arbitraż dla tych nadajników?
  • #14 4722219
    gothye
    Poziom 33  
    przy nadajnikach musi byc detekcja ? myslałem ze tego unikne :(
  • #15 4722385
    marek_Łódź
    Poziom 36  
    Odbiornik może być masterem i wpuszczać nadajniki kolejno. Zresztą w każdym układzie możesz zorganizować arbitraż programowy bez sprzętowego wykrywania zajętości magistrali.
  • #16 4985801
    gothye
    Poziom 33  
    gothye napisał:
    czy dobrze zrozumiałem Twój post : ?



    czy schemat powyzej jest poprawny ?? tzn jesli nie podaje stanu niskiego na piny 2 oraz 3 MAX'a to nie uzyskam na pin 1 max zmiany stanu przy nadawaniu przez innego max na magistrali ,dobrze kombinuje ??
  • #17 4985839
    marek_Łódź
    Poziom 36  
    gothye napisał:
    gothye napisał:
    czy dobrze zrozumiałem Twój post : ?
    czy schemat powyzej jest poprawny ?? tzn jesli nie podaje stanu niskiego na piny 2 oraz 3 MAX'a to nie uzyskam na pin 1 max zmiany stanu przy nadawaniu przez innego max na magistrali ,dobrze kombinuje ??

    Dobrze kombinujesz. Stan niski na sterowaniu ustawia układ w tryb odbioru, stan wysoki na nadawanie.
    Sprzętowe wykrycie zajęcia magistrali RS485
    Jeśli powyższy schemat ma przedstawiać odbiornik (nie wchodzący w nadawanie), ten sygnał (piny 2,3) można podłączyć na stałe do masy (nie do plusa). Dla nadajnika, konieczne jest sterowanie z portu, żeby nie wywołać kolizji na linii (jednoczesnego włączenia kilku nadajników).

    Reasumując - w nadajnikach sterowanie do dowolnego portu, sygnał RO na RX oraz na linię przerwań procesora. Przy przejściu w tryb nadawania najlepiej wyłączyć to przerwanie żeby układ sam siebie nie wywoływał.
    W odbiorniku sterowanie do masy (albo do portu), DO na TX procesora. Generowanie przerwania zajętości linii w odbiorniku raczej mało przydatne.
REKLAMA