Forum: Mikrocontroller und Digitale Elektronik Ideen für Magic-Strings


von Peter K. (peterka2000)


Lesenswert?

Guten Abend,

folgendes Szenario:

PC --- Mikrocontroller --- ESP8266

Nun, der PC kommuniziert mit dem Mikrocontroller über einen UART mit dem 
Mikrocontroller und der Mikrocontroller kommuniziert über einen anderen 
UART mit dem ESP8266.

Für spätere Softwareupdates würde ich aber gerne noch ein Stück Software 
implementieren, was den Mikrocontrollern in einen transparenten 
Vermittler-Mode setzt und die Daten vom PC einfach (dumm) zum ESP 
weiterleitet, und umgekehrt.
Das einschalten dieses Moduses ist kein Problem, da erweitere ich mein 
Protokoll zwischen PC und Mikrocontroller einfach um einen Befehl.
Allerdings stelle ich mir gerade die Frage, wie ich da wieder rauskomme.
Im Prinzip benötige ich so eine Art Magic String (z.B. 7d 6c 1f 69 5f 98 
79 4c a1 d0 90 11 93 a6 68 34), wenn der Microcontroller den hört, soll 
der in den normalen Modus zurückschalten.
Allerdings könnte es ja sein, dass genau der Magic-String in der 
vorhergesehen Kommunikation zwischen PC und ESP vorkommt, das kann ich 
ja nicht komplett ausschließen.
Was wären eure Vorschläge für so ein Problem? Oder soll ich einfach 
darauf vertrauen (und hoffen), dass mein Magic String einfach nicht 
vorkommt?

Ich hoffe, dass war einigermaßen verständlich rübergebracht

Grüße

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du könntest als zusätzliches Kriterium noch Ruhe vor (und 
gegebenenfalls auch nach) der Zeichenkette vorschreiben. Die 
Zeichenkette wird erst dann akzeptiert, wenn vorher mindestens eine 
festgelegte Zeit lang nichts übertragen wurde.

von Sascha (Gast)


Lesenswert?

Oder alternativ wird nur nach einem Reset darauf gelauscht, oder nur 
wenn ein gewisser GPIO Pin high ist.

von Sascha (Gast)


Lesenswert?

Nachtrag: Die besten Magic Strings sind die, die in der Praxis nie 
vorkommen weil sie minimalen Informationsgehalt haben. WoL ist zum 
Beispiel 16 Mal das gleiche Byte.

von g457 (Gast)


Lesenswert?

> WoL ist zum Beispiel 16 Mal das gleiche Byte.

Streiche Byte, setzte MAC-Adresse. Und davor noch ein paar 0xFF.

Magic-Numbers/Strings/.. kann man auch hervorragend Escapen. Dann wird 
aus dem "dumm durchreichen" aber "ein bisschen parsen". Nicht wirklich 
aufwendig.

von Joe F. (easylife)


Lesenswert?

Timeout verwenden. Nach dem Update wird einfach für ein paar Sekunden 
nichts gesendet.
Das funktioniert dann auch, wenn jemand während des Updates das Kabel 
zieht...

von grrr (Gast)


Lesenswert?

Warum so kompliziert?
Wozu ist der µC in dem Aufbau...?
Mein Vorschlag: Ersatzlos streichen.

Der ESP hat mehr Dampf als viele andere µC.
Auch kann er OTA Update.

von Michael U. (amiga)


Lesenswert?

Hallo,

>Warum so kompliziert?
>Wozu ist der µC in dem Aufbau...?
>Der ESP hat mehr Dampf als viele andere µC.
>Auch kann er OTA Update.

Ich habe mich nicht getraut, das zu schreiben...

Gruß aus Berlin
Michael

von Sascha W. (sascha-w)


Lesenswert?

@Piet,

+++ hat schon bei Modems funktioniert um vom transparenten 
Übertragungsmodus zum Befehlsmodus zu wechseln.

Sascha

von Stefan F. (Gast)


Lesenswert?

Wobei es nicht nur +++ ist, sondern <pause>+++<pause>

Wenn direkt davor und dahinter weitere Bytes übertragen werden, hat das 
+++ keine Wirkung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.