Witam
Mam problem z koncepcją komunikacji urządzeń na magistrali RS485 w trybie Full Duplex.
Piszę o co chodzi.
Mam sieć RS gdzie jest jeden master i kilka slave'ów umieszczonych blisko mastera np 0,5 metra. Jeżeli slave wymaga odczytu generuje wysoki stan na oddzienym przewodzie, który jest podłączony do mastera. ( coś w rodzaju przerwnia )
Jeżeli master wykryje wysoki stan na jednym ze swoich wejść do odpytuje tego slave o dane po RS.
Teraz dodatkową chcę podłaczyć kilka slaveów które są dalej od mastera np 30 metrów i sprawa przerwania nie wchodzi w rachubę.
Pomyślałem o odpytywaniu tych slaveów "oddległych" co pewnen okres czasu o ich stan. Widzę to tak, że wysyłam ramkęz mastera do takiego slave "czy masz coś do wysłania", on odpowiada mi że "tak, mam". Teraz slave zaczyna wysyłać dane i w każdej ramce ustawia jeden bit określający czy ma jeszcze na do wysłania. W ostaniej ramce bit ten jest zero co oznacza, "nie mam już danych do wysłania".
Master to odebraniu ostanniej ramki i ustawionym na zero bitem "nie mam już danych do wysłania" analizuje odebrane dane i odpytuje następnego slave'a.
Ramki do komunikacji mają kilka bajtów np 10, prędkość 38400 kbs.
Moje pytnie jest czy takie podejście ma sens i jaka byłaby wydajność takiej transmisji. Może macie inny pomysł na komunikację z slave'ami oddalonymi o ile metów od mastera.
mumin_80
Mam problem z koncepcją komunikacji urządzeń na magistrali RS485 w trybie Full Duplex.
Piszę o co chodzi.
Mam sieć RS gdzie jest jeden master i kilka slave'ów umieszczonych blisko mastera np 0,5 metra. Jeżeli slave wymaga odczytu generuje wysoki stan na oddzienym przewodzie, który jest podłączony do mastera. ( coś w rodzaju przerwnia )
Jeżeli master wykryje wysoki stan na jednym ze swoich wejść do odpytuje tego slave o dane po RS.
Teraz dodatkową chcę podłaczyć kilka slaveów które są dalej od mastera np 30 metrów i sprawa przerwania nie wchodzi w rachubę.
Pomyślałem o odpytywaniu tych slaveów "oddległych" co pewnen okres czasu o ich stan. Widzę to tak, że wysyłam ramkęz mastera do takiego slave "czy masz coś do wysłania", on odpowiada mi że "tak, mam". Teraz slave zaczyna wysyłać dane i w każdej ramce ustawia jeden bit określający czy ma jeszcze na do wysłania. W ostaniej ramce bit ten jest zero co oznacza, "nie mam już danych do wysłania".
Master to odebraniu ostanniej ramki i ustawionym na zero bitem "nie mam już danych do wysłania" analizuje odebrane dane i odpytuje następnego slave'a.
Ramki do komunikacji mają kilka bajtów np 10, prędkość 38400 kbs.
Moje pytnie jest czy takie podejście ma sens i jaka byłaby wydajność takiej transmisji. Może macie inny pomysł na komunikację z slave'ami oddalonymi o ile metów od mastera.
mumin_80