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

Protokół transmisji rs485

Gieha 26 Sie 2009 23:02 3042 4
REKLAMA
  • #1 6947944
    Gieha
    Poziom 11  
    Witam.
    Robię trzycyfrowy wyświetlacz led sterowany przez rs 485 (na razie 232) i zastanawiam się nad sposobem przesyłenia danych , poczytałem posty na tym forum + specyfikację gotowego protokołu i postanowiłem że chciałbym przesyłać: 1 bajt startu , 2 bajty adresu , 1 bajt rozkazu , 2 bajty danych , 2 bajty sumę kontrolną , 1 bajt koniec ramki .
    Pytania:
    1. Jak najlepiej odebrać te dane żeby powrzucać je odrazu do odpowiednich zmiennych lub jak wydzielić je ? Myślę używać ISCHARWAITING bo wyświetlacz działa w multipleksie więc główna pętla ciągle musi pracować.
    2. Czy w fazie testów gdy wysyłam dane z terminala to to samo gdy później użyję "print" z uC ?
    3. Czy moje pytania są głupie ? Dopiero zaczynam z użytecznymi projektami i powolutku staram się poznać Bascom.

    Pozdrawiam Grzegorz
  • REKLAMA
  • #2 6948074
    gothye
    Poziom 33  
    wysyłanie tak ,chciaż zostałbym przy 1 bajcie adresu ( szyna rs485 akceptuje max32 urządzenia)
    1.Najlepiej w przerwaniach
    3. a w jakim języku będziesz pisał ?
  • REKLAMA
  • #3 6948117
    tmf
    VIP Zasłużony dla elektroda
    Tak dla scislosci RS485 opisuje tylko warstwe fizyczna - kabelkologie i sygnaly elektryczne, warstwa logiczna to radosna tworczosc uzytkownika.
    Uscislenie drugie - standardowe drivery RS485 rzeczywiscie umozliwiaja jednoczesne podlaczenie 32 urzadzen, niemniej dostepne sa drivery o obciazeniach 1/4-1/8 standardowego - czyli mozna podlaczyc nawet 256 urzadzen.
    A teraz odpowiedzi:
    ad 1. Najlepiej je odbierac w przerwaniu i wrzucac do struktury, ktora ma organizacje jak twoja ramka. Po odebraniu calosci przestawic wskaznik, coby moc odebrac kolejna ramke i zapalic jakas flage, coby rewszta programu wiedziala, ze gotowa ramka czeka do interpretacji.
    ad 2. Zasadniczo tak, o ile uzywasz w warstwie logicznej czegos na ksztalt RS232. BTW, robisz RS485 duplex? Bo jesli nie to jakos musisz rozwiazac przelaczanie nadawania na odbior i vice versa.
    ad 3. Pytania jak pytania, lepiej pytac niz bladzic. Jak dopiero co wchodzisz w Bascom, to moze lepiej rozwazyc odpuszczenie sobie tego cuda i uzycie C? Chociazby dlatego, ze WinAVR jest za free i bez ograniczen?
  • REKLAMA
  • #4 6948473
    flapo213
    Poziom 21  
    Witaj. Sposób na ramkę jak najbardziej prawidłowy ale dodam małe swoje dorzuć pomiędzy adres a rozkaz 2 bajty na libczbę bajtów danych w ramce to będziesz miał rozwojowy protokół na przyszłość bez ograniczeń do 2 bajtów. Co do przełączania to normalnie że musi coś tym sterować albo uC albo logika która wykryje nadawanie i sam przełączy się z nasłuchu w nadawanie do wyboru do koloru jak zrobisz. Pozdrawiam
  • #5 6949288
    Gieha
    Poziom 11  
    Dzięki za sugestie siąde dziś do projektu spróbuję z przerwaniami , co do pisania w C to na razie pojęcia o nim nie mam.Odpiszę co mi wyszło
REKLAMA