Forum: Mikrocontroller und Digitale Elektronik Betriebssicherheit MC-Schaltung


von crazy horse (Gast)


Lesenswert?

folgendes Szenario:
ein MC (Mega8) hängt über GPRS an der "langen Leine", soll auf
Anforderung Messwerte übermitteln. Diese Bereitschaft muss so gut
möglich gewährleistet sein (da kann nicht mal eben einer hingehen und
einen resetknopf drücken). Watchdog, Spannungsüberwachung etc. ist
alles drin. Die Anforderung kommt über die UART, zeitlich völlig
unbestimmt. Wäre nun durch einen wie auch immer gearteten Fehler z.B.
der receiver disabled oder die Baudrate verstellt oder das I-Flag
gelöscht oder oder oder, bekäme ich die Anforderung nicht mehr mit,
auch der watchdog hilf mir da nicht, Programm läuft ja.
Langer Rede, kurzer Sinn: hat jemand Erfahrungen damit? Können durch
äussere elektrische Störungen einzelne Bits gekippt werden? Hab schon
überlegt, in der main die ganzen Einstellungen zu überprüfen und ggf.
zu korrigieren oder einmal pro Stunde das Teil in den watchdog-reset
schicke (eine Stunde Ausfall kann toleriert werden).

von Michael (Gast)


Lesenswert?

Du kannst für die Variablen und Konstanten verschiedene Speicher wählen,
bei Mega8 Flash, inbt. EEPROM und evtl. ein serielles EEPROM via I2C
anhängen. Die Majorität der Abfragen entscheidet über die Gültigkeit.
Auch Watchdog einsetzen. Und evtl. Datenstrom auf Plausibilität
prüfen.
Michael

von Matthias (Gast)


Lesenswert?

Hi

Grundsätzlich:
Passieren kann alles. Die erste Gegenmaßnahme ist ein gutes Layout und
eine störsichere Auslegung der Schaltung.

Im Speziellen:
Hast du nicht die Möglichkeit mit dem GPRS-Modul hin und wieder kurz
Kontakt aufzunehmen? So eine Art: "Klopf Klopf Noch jemand zu Hause"?
Wenn der Kontakt nicht bis $Timeout zustande kommt -> Systemreset
auslösen (z.B. Watchdog überlaufen lassen oder per Portleitung eine
Monoflop triggern)

Auch weitere Peripherie kann man so von Zeit zu Zeit abfragen ob noch
alles in Ordnung ist.

Matthias

von Winfried (Gast)


Lesenswert?

Bei gutem Design sollte es extrem selten passieren. Aber alles, was
wichtig ist, sollte man z.B. über Checksummen absichern und regelmäßig
prüfen.

Wie betriebssicher gut designte Schaltungen und Software funktionieren,
zeigt mir mein Linux-Server. Der läuft manchmal über ein Jahr durchweg
und dann unterbreche ich das Ganze nur, weil ich wg. irgendwas mal neu
booten muss, nicht weil der abgestürzt wäre. Und ein PC ist nunmal noch
viel komplexer als ein kleiner Microcontroller mit ein wenig
Pheripherie.

von Martin (Gast)


Lesenswert?

Hallo,

wenn das GPRS Modem über AT Befehle angesteuert wird dann wirklich
zwischendurch mal gucken ob es noch da ist. Vor allem kann man so auch
gleich noch mitprüfen ob noch das GSM Netz vorhanden ist (nicht das das
einer die Antenne gezogen hat).


Martin

von crazy horse (Gast)


Lesenswert?

Besten Dank erst mal für die Ideen.
Direkt mit dem Modem kann ich nicht babbeln, dazwischen hängt noch ein
BECK IPC SC12 mit TCP/IP, und dessen Software mache ich nicht. Ich habe
die Hardware und die MC-Software. Werde mal mit dem Softwarefritzen vom
SC12 reden, dass der auf eine Anfrage vom meinem MC auch was antwortet.
Oder alternativ, dass der SC12 beim AVR einen Hardwarereset auslöst,
wenn der sich tot stellt. Dann bin ich den Kram komplett los :-), auf
die höhere Ebene delegiert, ich glaube, dass gefällt mit am besten.

von OldBug (Gast)


Lesenswert?

Was auch ganz mächtig in die Hose gehen kann sind "malloc Orgien".
Wenn Dein heap Fragmentiert wird und das Speichermanagement das gar
nicht oder nicht in geeigneter Weise abfängt, "hängt" Dein Programm
irgendwann fest.

Das bezieht sich natürlich in erster Linie auf C-Programme.
Also -- Vorsicht mit malloc, und niemals ein free vergessen :-)

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.