Update Firmware in einen Rs485 Half-Duplex Bus

Gast #3942330
Lesenswert?

Hallo an alle,
für ein neues Projekt von mir gibt es 20 x dieselbe Elektronik mit einem 
Controller an einen Half-Duplex RS485-Bus, verbunden mit einem PC. So 
weit so gut, nun möchte ich diese 20 Elektroniken nach Bedarf vom PC aus 
mit einer neuer Firmware flashen können. was noch zum Sagen wäre, jeder 
uC hat seine eigene Device-ID von 01-20

Nun gibt es zwei Möglichkeiten für mich diese zu flashen:

1.ich bringe jede Elektronik per Kommando in den Flash Modus, und zwinge 
die anderen nichts zu machen.

2.ich bau mir noch eine RS485-Multiplexer dazwischen und wähle mir den 
entsprechenden Kanal zur Elektronik um dann zu flashen.

Hab Ihr schon mal Erfahrung gemacht mit sowas, oder gibt es andere 
Anregungen..

Danke für eure Hilfe
#3942409
Lesenswert?

Bei so einer Fragestellung ist es immer ganz gut zu schauen, wie es denn 
in der Industrie gemacht wird. Im Automotive-Bereich gibt es dafür die 
Netzwerkprotokolle CCP und den Nachfolger XCP. Auch wenn Du diese 
Protokolle nicht so komplett implementierst, weil sie zu komplex sind, 
kannst Du Dir doch Anregungen für Dein eigenes Projekt holen.

fchk
#3943003
Lesenswert?

Andere Idee:

Jedes einzelne Gerät bekommt noch ein kleines SPI-Flash mit drauf. Die 
Dinger kosten nur so etwa 20 Cent rum:
http://www.mouser.de/ProductDetail/Spansion/S25FL204K0TMFI040/?qs=sGAEpiMZZMtI%252bQ06EiAoG71NWJ819OHX6LMwqJwliQE%3d

Dann kannst Du mit Deinem ganz normalem Busprotokoll, was auch gerne 
etwas komplizierter sein kann, in Ruhe das Flash füllen. Am Ende kannst 
Du eine Checksummenprüfung machen. Wenn die ok ist, startet der 
Controller neu und geht in den Bootloader. Der Bootloader muss jetzt nur 
noch die Daten vom externen Flash in den internen Programmspeicher 
kopieren. Das kann er komplett unabhängig vom Bus und der Bootloader 
bleibt klein.

Natürlich kann man das ganze auch noch erweitern, z.B. eine sicher 
funktionierende Ur-Version an einer bestimmten Stelle im externen Flash 
vorhalten. Wenn dann mal mit dem Programm was schief geht, kann man am 
Gerät einen Reset-to-Factory-Defaults-Knopf drücken und diese Version 
wird geflasht. Das wäre dann auch Endanwender-Kompatibel und spart 
eventuelle Einsätze vor Ort.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren