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

Połączenie trzech RS 485 w Bascomie 51

Tomek73 03 Cze 2006 21:15 2035 4
REKLAMA
  • #1 2694532
    Tomek73
    Poziom 11  
    Może ktoś ma pomysł na połączenie trzech At 89C51 poprzez RS 485 w Bascomie 51.
    Dzięki.
  • REKLAMA
  • #2 2701577
    marek_Łódź
    Poziom 36  
    Sprzętowo np układ w półdupleksie na dwóch przewodach (+ ew masa) MAX485 w każdym module na liniach UART, do tego terminator (rezystor) przy dłuższych połączeniach na obu końcach linii.

    Programowo najprosciej wychodzą układy z jednym masterem, który jest odpowiedzialny za komunikację z pozostałymi modułami. Mając ustawionego mastera w miarę potrzeb na zmianę odsłuchujesz stacje SLAVE w temacie, który mają do przekazania. W BASCOMie robisz to rozkazami UART na liniach sprzętowych lub emulowanego programowo złącza.
    Napisz dokładniej gdzie widzisz problem, bo nie bardzo wiadomo o czym pisać. W sumie całość trzeba by spasować z zadaniami realizowanymi przez Twój system.
  • REKLAMA
  • #3 2711120
    Tomek73
    Poziom 11  
    Dzięki.
    Mój problem polega na tym, że nie mam doświadczenia z RS 485.
    Chodzi mi o jakakolwiek pomoc i wskazówki.
    Jeden układ ma być tak jak wspomniałeś Master, a pozostałe Slave.
    Slave ma zbierać dane i przesyłać je do Master. Master po odebraniu danych ma wyświetlić je na tablicy synoptyczneji (opcjonalnie przesłać dalej do komputera).
    Dane mają być transmitowane kablem teletechnicznym na odległość około 500 m (wykorzystując tylko jedną parę przewodów).
    Z tego co pisze [/b]marek_łódz[b] wnioskuję, że w Bascomie należy wykorzystać procedury PRINT, INPUT, INPUTHEX.
  • REKLAMA
  • Pomocny post
    #4 2711332
    marek_Łódź
    Poziom 36  
    Trzeba by poczytać troszku o RS485. Jeśli chodzi o sprzęt, to w zasadzie masz dwie główne możliwości. Pierwsza to półdupleks, czyli transmisja naprzemienna po tej samej parze przewodów, druga dupleks w układzie czteroprzewodowym (para przewodów od mastera, para do mastera). Dodatkowo korzystnie z punktu widzenia linii może być pociągnięcie między układami masy. Całość powinna być zrobiona skrętką lub skrętką w ekranie, co zmniejsza wpływ zewnętrznych pól EM na transmisję. Zakładając, że zastosujesz popularną MAX485, musisz do niej doprowadzić z procesora RXD i TXD oraz sygnał sterowania kierunkiem transmisji (dwa wejścia sterujące nadajnikiem i odbiornikiem połączone razem). Przy inicjowaniu procesorów ustawiasz tę samą prędkość transmisji i kierunki: w masterze nadawanie, w slave'ach odbiór (nasłuch).
    Master decyduje o tym który ze slave'ów jest wywoływany i po jego wywołaniu przechodzi na nasłuch. Slave, który rozpozna swoje wywołanie przechodzi na nadawanie, wysyła swój komunikat i oddaje sterowanie masterowi przechodząc ponownie na nasłuch. W przypadku BASCOMa faktycznie należy skorzystać z instrukcji PRINT (lub PRINTBIN dla transmisji ramek binarnych).
    W przy uruchamianiu lepsza jest transmisja tekstowa (PRINT), bo pozwala na uruchamianie i testowanie pojedynczej stacji przy pomocy dołączonego przez RS peceta i uruchomionego na nim programu terminala (BASCOMowskiego, Hyperterminal itp), co jest znacznie wygodniejsze od uruchamiania całego zestawu. Niestety wymaga to przebudowy lub rozbudowy interfejsu o złącze do RS232, co przyda się na etapie dołączania całości do peceta. W przypadku stacji na różnych potencjałach (np podłączonych do pecetów) należałoby gdzieś (na RS232 peceta lub na rs485 głównego toru transmisji) wprowadzić separację galwaniczną (optoizolację). W przypadku układu transmisji do peceta musisz mieć w stacji 2 uarty, co można osiągnąć przez emulację programową (bascom ma taką możliwość), wykorzystanie procesora z dwoma uartami (np. atmega128) lub zastosowanie zewnętrznego uarta.

    Tyle w pigułce. ;-)
  • #5 2721023
    Tomek73
    Poziom 11  
    Dzięki Ci za pomoc.
    Pozdrawiam Cię. :D
REKLAMA