Wpis z mikrobloga

#elektronika #it #intelgalileo #arduino
próbował ktoś obsługiwać kilka urządzeń po RS-232C do intel galileo ?
płytka ma pracować jako zarządca UPSów w serwerowni.
Pytanie jest czy to ogólnie jest dobry pomysł, czy nie lepiej zrobić zestawu:
kartasieciowa do Arduino+arduino+soft na PC który sobie rozkłada ruch ethernetowy na osobne RSy
  • 13
  • Odpowiedz
@wytrzzeszcz: Tak "z definicji", jeżeli będziesz miał kilka RSów podpiętych w gwiazdę to będą kolizje, więc albo musisz zastosować odpowiedni protokół (pewno do te UPSy mają swój i nie zmienisz go) albo wykrywać kolizje i prosić o retransmisje. Protokół to jakiś token-ring, albo master + n*slave i odpytywanie.

Inny sposób to osobny RS dla każdego UPSa, wtedy musisz mieć płytkę z odpowiednią ilością takich RSów. Nie wiem jak Galileo, rozbudowane
  • Odpowiedz
@wytrzzeszcz: Jeżeli masz taki, to tam widzę tylko jednego RSa. Więc resztę będziesz musiał "udawać" programowo. Jeżeli będziesz programował w Arduino to tam jest biblioteka SoftwarSerial (czy jakoś tak). Obsługa nie różni się od zwykłego RSa, tylko jest mniej efektywna. To chyba nie będzie działać na przerwaniach więc przy obsłudze wielu, będziesz musiał sprawdzać round-robin cały czas wszystkie wartości RX czy przypadkiem coś nie przyszło.

A że nie ma wielowątkowości
kwanty - @wytrzzeszcz: Jeżeli masz taki, to tam widzę tylko jednego RSa. Więc resztę ...

źródło: comment_rNAFmeM03a3a94bp7LhP6KxPIG9bYdWg.jpg

Pobierz
  • Odpowiedz
jeno upsy mają tendencje by zacząć gadać na raz wszystkie, i roundrobin na mutliplexerze działał by po #!$%@? w takiej stytuacji


@wytrzzeszcz: Dlatego lepiej, żebyś miał sprzętowe RSy bo one mają bufory, więc nawet jeżeli zaczną wszystkie krzyczeć na raz to je obsłużysz bez straty danych, co najwyżej z małym opóźnieniem.

Jeżeli zrobisz to na multiplekserze fizycznym albo softwarowym to jest możliwość, że zgubisz dane :(

Ewentualnie, jak chcesz się
  • Odpowiedz