Go Down

Topic: Firmwareupdate über PC->(Ethernet)->Arduino Master (RS485 Bus)-> Arduino Slave (Read 937 times) previous topic - next topic

Jomelo

Hi zusammen,

ich erklär am Anfang mal den aufbau des Systems es ist schon etwas komplexer:

Aufbau des aktuellen Systems:
- PC Station im Internet bzw  lokal daheim auf der ein Webserver läuft (PHP, MySQL)
  Fungiert als User Interface für mein kleines System.
  Die PC Station kann bisher mehr als 10 Master über Ethernet verwalten.

- Arduino mit Ethernet schield der mir alle 5 Minuten über Ethernet die eigene IP Adresse an den Webserver sendet.
  Dieser Arduino dient als Hauptkontroller von dem dahinter liegenden System.
  Der Kontrol läuft als Master des RS485 Busses. Der Master kann bis zu 50 Slaves verwalten.
 
- Am Bus hängen dann verschiedene Slaves (Mikrokontroller),  z.B  Sensoren (Bewegungsmelder, Temperatur, ...) und kleine Aktoren
  (wie Schalter, Dimmer,  ...) auch mit der Arduino Software drauf.
  Diese Slaves werden automatisch vom Master mit Adressen und Steuerbefehlen versorgt.
  Die Slaves können nur antworten, wenn sie vom Master dazu aufgefordert werden, dadurch entstehen keine Kollisionen auf dem Bus.

Meine Frage ist nun,  ist es möglich über den RS485 Bus eine neue Software Version auf einen der Slaves auf zu spielen. Ich stell mir das Grob wie folgt vor.
1. Über das User Interface wird "Firmware update ausgewählt"
2. Das User Interface (Webserver sendet an den Master einen Befehlt, das alle Slaves bis auf das Ziel Gerät, dass die neue Software erhalten soll für eine Minute keine Befehle mehr vom Master Empfangen sollen oder länger).
3. Als nächstes wird dann der passende Slave über seine Adresse angesteuert und es wird ein Neustart erzwungen.
4. Direkt nach dem Neustartet sendet der Master die neue Firmware über den Bus und über den vorhandenen Bootloader wird die neue Firmware geschrieben.

Offene Fragen von mir sind noch folgende:
- Was ist wenn ein Packet beim Senden zwischen Master und Slave verloren geht
- Kann das ganze überhaupt funktionieren ?

Bisher gelöst:
- System läuft stabil, mit dynamischer Adressvergabe der Slaves
- Neue Slaves sind über das User Interface anzumelden.
- Ip Adresse, und weitere Einstellungen lassen sich über das User Interface auf dem Webserver einstellen.

Das ganze System stellt schon eine gute Hausautomatisierung dar, die mit Low Cost Materialien gebaut werden kann und stabiel läuft.
In den nächsten Monaten kann ich hier auch die Software der einzelnen Komponenten veröffentlichen. Sowie das System das auf dem Webserver läuft.
Dieses Unterstütz bis jetzt folgende Dinge:
- Urlaubsschaltung
- Sensoren lassen sich über das Internet anschauen.
- Im Heimnetzwerk können Termine verwaltet werden
- User Management, z.B das die Kinder die das system über dem Browser in ihrem Handy steuern, nachts nicht das licht im Elternschlafzimmer an machen können  ;-)
- Öffentliche Internetseiten,  CMS System,  falls man das System von einem Webserver steuert der im Internet hängt.

Die Reaktionszeit liegt derzeit bei 0,5 Sekunden maximal, bei lokalen Servern

Wenn ich soweit die Dokumentation fertig habe mach ich auch einen neuen Thread auf mit mehr Informationen.

Ich freue mich auf eure Antworten.



uwefed

Könnte funktionieren; Du mußt auf dem Master ein Programm haben der den Slave resettiert und ihm das Programm sendet. Der Master muß den Bootloader ansprechen und die Übertragungsprotokolle implementiert haben.
Weiß aber nicht wo Du Infos Bezüglich der Komiunikation mit dem Bootloaders finden kannst.
Grüße Uwe

Go Up