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

RS485 a RS232 różnice sprzętowo-programowe

maly_elektronik 02 Paź 2008 07:42 19502 7
  • #1 5590683
    maly_elektronik
    Poziom 23  
    Witam
    Próbuje zrozumieć i zastosować protokół rs485 :)
    Niestey z informacji które odnalazłem w sieci za bardzo nic nie rozumie :(
    Dowiedziałem się iż strona programowa jest taka jak w 232 który wystarczy podpiąć pod max485 :idea:
    Ale czy może mi ktoś wyjaśnić w jaki sposób mój avr'ek może odbierać te dane :?:
  • #2 5590849
    Kabuto15
    Poziom 19  
    AVR komunikuje się poprzez UART (USART) z MAX485. Ten konwertuje odpowiednio na poziomy różnicowe określone w warstwie fizycznej RS485 i wysyła. RS485 to nie protokół tylko standard. Implementacja warstwy aplikacji jest w RS485 dowolna (np. protokoły Modbus, Profibus etc.)
  • #3 5590983
    hotdog
    Poziom 26  
    Trochę o teorii i o zastosowaniu jest np na [url=http://pl.wikipedia.org/wiki/EIA-485]wiki[/u]. Ogólnie standard opracowany do używania w miejscach narażanych na zakłócenia elektromagnetyczne. Ma 3 bardzo duże zalety:
    - Możliwość podłączenia do 32 odbiorników (plus więcej po zastosowaniu układów wzmacniających repeaterów);
    - Długość kabla do 1200m
    - Odporność na zakłócenia.

    Pierwsza zaleta niesie za sobą konsekwencje. Jeżeli na linii jest więcej niż 2 urządzenia trzeba będzie opracować protokół wymiany informacji między urządzeniami. Podobnie jak to w sieciach bywa każde urządzenie musi mieć swój identyfikator (coś jak adres IP) i wysyłasz ramki, z adresem nadawcy, adresem odbiorcy i konkretną wiadomością + jakaś funkcja skrótu (CRC) aby sprawdzić poprawność informacji. Dodatkowo można sprawę uprościć stosując konwencje jeden Master i wiele Slave'ów. Master odpytuje urządzenia a one odpowiadają mu i przechodzą w nasłuch (brak kolizji, małe prawdopodobieństwo, że więcej niż jedno urządzenie będzie nadawać w tej samej chwili)

    Co do aplikacji to najpopularniejsze są 2 układy MAX485 i SN75176, kompatybilne ze sobą nóżkami, o różnicach poszukaj sobie w necie. Schemat aplikacyjny wygląda tak:
    RS485 a RS232 różnice sprzętowo-programowe
    diody led oczywiście zbędne (sygnalizacja pracy). Sterowanie kierunkiem odbywa się przez piny 2 i 3. Tego w sumie nie widać po schemacie ale pin 2 sterujący odczytem jest aktywny w stanie niskim, a pin 3 sterujący nadawaniem jest aktywny w stanie wysokim. Zwykło się łączyć te linie i wtedy odpowiednio stan niski odczyt/ stan wysoki zapis. Na moim schemacie domyślnie ustawiony w stan niski przez rezystor R23. Do nóżki 1 podłączasz pin RXD, a do 4 TXD. A (Pin 6) łączysz z A, a B (Pin 7) z B w drugim układzie
  • #4 5592376
    maly_elektronik
    Poziom 23  
    Czyli z tego co rozumie to do komunikacji potrzebuje w sumie 4 pinów RX, TX, RS485 i masę :?: (Jeżeli źle to proszę poprawcie).
    Jeżeli dobrze rozumuje to z tego co mówisz i zarówno z tego co zassałem z sieci to transmisja od strony PC jest jak do rs232 a od strony procesora tylko dodatkowa pętelka i warunek (w standardzie usarta) i po problemie :?:
    PS. Czyli procesor czeka na stan pinu RS485 jeżeli niski to odbiera dane a jeżeli wysoki to nadaje :)
  • #5 5593378
    hotdog
    Poziom 26  
    nie, w drugą stronę to procesor steruje tym czy czy odbiera dane czy nadaje czyli u mnie na schemacie linia RS485. Można zrobić automat (np na na NE555, schemat w necie znajdziesz na pewno), on wtedy by wykrywał że procesor nadaje i przełączył max'a odpowiednio wcześnie. Po zakończeniu transmisji, przełączył by w stan odbierania układ. Od strony PC powinieneś wykorzystać PIN RTS do sterowania kierunkiem transmisji.
  • #6 5647813
    pidpawel
    Poziom 26  
    Fajny schemacik ;) A mam pytanie - jeśli chcę zrobić arbitraż polegający na sprawdzeniu czy na linii pojawiło się to, co wysłałem to czy mogę jednocześnie i odbierać i wysyłać?
  • #7 5649748
    elektryk
    Poziom 42  
    pidpawel napisał:
    Fajny schemacik ;) A mam pytanie - jeśli chcę zrobić arbitraż polegający na sprawdzeniu czy na linii pojawiło się to, co wysłałem to czy mogę jednocześnie i odbierać i wysyłać?
    Tak, po to są niezależne piny sterujące nadajnikiem i odbiornikiem. Możesz ustawić odbiornik na ciągłe odbieranie danych, a nadajnik włączać i wyłączać.
  • #8 5650468
    pidpawel
    Poziom 26  
    elektryk napisał:
    pidpawel napisał:
    Fajny schemacik ;) A mam pytanie - jeśli chcę zrobić arbitraż polegający na sprawdzeniu czy na linii pojawiło się to, co wysłałem to czy mogę jednocześnie i odbierać i wysyłać?
    Tak, po to są niezależne piny sterujące nadajnikiem i odbiornikiem. Możesz ustawić odbiornik na ciągłe odbieranie danych, a nadajnik włączać i wyłączać.

    Dzięki piękne ;) Teraz już mogę się zabrać za projekt od strony praktycznej.
    Pozdrawiam
    Paweł
REKLAMA