Betriebssicherheit MC-Schaltung

Gast #118400
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).
Gast
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
Gast
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
Gast
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.
Gast
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
Gast
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.
Gast
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 :-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.