Forum: Mikrocontroller und Digitale Elektronik µCs redundant arbeiten lassen


von Patrick W. (seennoob)


Lesenswert?

Hallo

Wie lässt man am besten µCs redundant arbeiten? Man muss ja min 2 haben 
die sich gegenseitig überprüfen. Wie realisiert man denn am besten das 
gegenseitige kontrollieren ?

MFG

von Purzel H. (hacky)


Lesenswert?

Man hat einen Vergleicher, der vergleicht selektierte Daten, die 
irgendwie angeliefert werden.

von thecamper (Gast)


Lesenswert?

Vllt. ne einfache Prüfsummme bilden lassen über den Inhalt bestimmter 
Speicherbereiche die wichtig sind. Und dann dem anderen zustellen der 
vergleicht dann. Wichtiger ist doch die Frage was wenn das Ergebnis 
"Falsch" lautet?

von Anja (Gast)


Lesenswert?

Am einfachsten indem man die Entscheidung einem dritten "Voter" überläßt 
der dann für die Sicherheit verantwortlich ist. Der muß dann so 
aufgebaut sein daß wenn irgend ein (einzelner) Transistor kaputtgeht die 
Funktion nicht beeinträchtigt wird und der Defekt automatisch erkannt 
und gemeldet wird ...

Wenn du nur 2 normale Rechner hast könntest Du versuchen die berechneten 
Daten auszutauschen. Eine Schwierigkeit besteht darin daß die Meßwerte 
niemals zum selben Zeitpunkt erfaßt werden und daher unterschiedlich 
sind. -> entweder entsprechend die Toleranzen beim Ergebnis aufweiten 
oder auch die Meßwerte gegenseitig austauschen und plausibilisieren. 
Einfache Prüfsummen gehen nur wenn sichergestellt ist daß beide Rechner 
immer auch dieselben Eingangsdaten haben.

Jeder Rechner rechnet also im Extremfall beide Pfade. Bei Abweichungen 
wird in beiden Rechnern ein Fehlerzähler hochgezählt. Bei Erreichen 
eines Limits müssen beide Rechner unabhängig in einen "sicheren Zustand" 
schalten können.
Falls es keinen sicheren Zustand gibt brauchst Du dann doch einen 
"Voter" und ggf. mehr als 2 Rechner.

von Roland M (Gast)


Lesenswert?

Hallo,

ausserdem müssen durch Toleranzen des AD-Wandlers oder 
Rechenungenauigkeiten entstehende Differenzen von Zeit zu Zeit 
synchronisiert werden, damit es nicht zu ungewollten Fehlermeldungen 
kommt

Gruß Roland

von Patrick W. (seennoob)


Lesenswert?

Naja das mit der Prüfsumme ist ein Problem weil ich 2 verschiedene 
compiler verwenden um fehler des compiler auszuschließen (am besten 
wären wohl 2 verschiedene µCs) aber das mit dem vergleicher wird dann 
ein Problem weil der ja auch redundant sein muss !

von Michael S. (captain-stone)


Lesenswert?

Anja schrieb:
> Am einfachsten indem man die Entscheidung einem dritten "Voter" überläßt
> der dann für die Sicherheit verantwortlich ist. Der muß dann so

Ein sehr interessantes Thema, bei dem sich mir gleich folgende Frage 
aufdrängt:

Wenn ein dritter Controller die beiden anderen überwacht, wie weiß er 
nach der Feststellung eines Unterschiedes, welcher von beiden Recht hat?

Michael

von Patrick W. (seennoob)


Lesenswert?

der Voter muss dann auf ein anderes system umschalten

von Roland M (Gast)


Lesenswert?

Hallo Leute,

wenn man das mal so an einem Sonntag-Nachmittag zusammenklopfen könnte, 
bräuchten nicht manche Firmen für solch ein System mehrere Mannjahre 
daran zu entwickeln. Aber nur weiter, man lernt ja auch was dabei, wenn 
man sich mal dazu Gedanken macht.

Gruß Roland

von Patrick W. (seennoob)


Lesenswert?

@Roland

Ich dacht das geht so auf 2h auf nem Steckbrett^^

von Reinhard Kern (Gast)


Lesenswert?

Hallo,

wie schon einige hier erkannt haben, führt das schon rein logisch zu 
nichts - sinnvoll ist nur ein System aus 3 Zweigen und einer 
Majoritätsentscheidung.

2 Zweige sind nur verwendbar, wenn man bei Nicht-Übereinstimmung alles 
stoppen kann, aber für die meisten Probleme ist das nicht möglich oder 
nicht zumutbar: was nützt es dem Zugführer, wenn die Signale 
abgeschaltet sind? Und ein Kernkraftwerk fährt man auch nicht so gern 
herunter.

Gruss Reinhard

von Roland M (Gast)


Lesenswert?

@seennoob

Hardware ansatzweise in 2h auf Steckbrett, kann schon sein.
Aber in der Praxis sicher funktionierendes System incl. Software braucht 
schon etwas mehr als 2 Stunden. Ansonsten mal schnell bewerben ;-)

Gruß Roland

von (prx) A. K. (prx)


Lesenswert?


von Patrick W. (seennoob)


Lesenswert?

Reinhardt du hast recht man kommt wohl ned mit weniger als 3 µCs aus, 
die sich gegenseitig prüfen, dann hat man noch das Problem welcher der 
µCs hat den Fehler ? Es könnten ja alle 2 µCs falsche Werte liefern, 
also müsste man noch eine plausibilitäts Prüfung machen.

MFG

von Roland M (Gast)


Lesenswert?

hier mal eine paar nette Begrifflichkeiten, nach denen man mal googlen 
kann:
www.vdi.de/uploads/tx_vdirili/pdf/9065062.pdf

Gruß Roland

von Roland M (Gast)


Lesenswert?

[[www.vdi.de/uploads/tx_vdirili/pdf/9065062.pdf]]
so vieleicht wirds jetzt ein Link

von Patrick W. (seennoob)


Lesenswert?

ich helf dir mal Roland mit dem Link
http://www.vdi.de/uploads/tx_vdirili/pdf/9065062.pdf

von Roland M (Gast)


Lesenswert?

danke.

Gruß Roland

von (prx) A. K. (prx)


Lesenswert?

Patrick Weinberger schrieb:

> Es könnten ja alle 2 µCs falsche Werte liefern,
> also müsste man noch eine plausibilitäts Prüfung machen.

Kommt drauf an wogegen man damit vorgehen will. Gleichzeitig und 
unabhängig voneinander auftretende Hardwarefehler werden bei hinreichend 
geringer Einzelwahrscheinlichkeit üblicherweise nicht berücksichtigt.

Wer überprüft den Plausibilitätsprüfer? Gegen Denk- oder 
Programmierfehler hilft der nur begrenzt, denn der Fehler kann genauso 
gut da drin stecken.

Ausserdem kommt es etwas auf den Einsatz an. Wenn der Ausweg aus dem 
Dilemma darin bestehen kann, rot leuchtend und nervend fiepsend den 
Betrieb einzustellen, ist die Sache etwas einfacher. Wenn so allerdings 
ein Flugzeug vom Himmel fallen würde hat man diese einfache Alternative 
nicht.

von Patrick W. (seennoob)


Lesenswert?

Naja das ist wohl auch das Problem zB für Dive by wire (Auto). Es kann 
ja ned die Lenkung oder die Bremsen ausfallen nur weil ein Bus spinnt 
oder so.
Wenn man darüber nachdenkt bekommt man mächtig Schädelweh. Um wieder zu 
prx zurück zu kehren man muss jedes System Doppelt ausführen ^^

MFG

von (prx) A. K. (prx)


Lesenswert?

Patrick Weinberger schrieb:

> Wenn man darüber nachdenkt bekommt man mächtig Schädelweh. Um wieder zu
> prx zurück zu kehren man muss jedes System Doppelt ausführen ^^

Schlimmer. Ich hatte das oben schon mal verlinkt, eine Präsentation zu 
dieser Problematik über die entsprechende Technik bei Airbus. Schau das 
mal durch und zähle mit wieviele verschiedene Rechner dabei im Einsatz 
sind: http://www.cs.st-andrews.ac.uk/~ifs/Resources/Case...

Allein bei den 3 Haupt- und 2 Sekundärsystemen sind es insgesamt 10, da 
jeder einzelne dieser 5 wiederum aus einem aktiven und einem 
Kontrollsystem besteht.

Das natürlich mit unterschiedlicher Hardware, verschiedenen 
Programmierern, Programmierteams und Programmiersprachen.

Boeing verwendet 3 Systeme, jedes davon besteht aus 3 parallel 
arbeitenden technisch unterschiedlichen Prozessoren (486,68040,29050): 
http://www.iaeng.org/IJCS/issues_v35/issue_4/IJCS_35_4_07.pdf

von Patrick W. (seennoob)


Lesenswert?

gibt es eigentlich schon Konzepte für ein Drive by wire System ?

MFG

von Patrick W. (seennoob)


Lesenswert?

ok ich beantwort mal selbst meine frage
http://de.wikipedia.org/wiki/Drive-by-Wire

von Robert T. (robertteufel)


Lesenswert?

Wogegen soll die Absicherung erfolgen? Gegen Gesamtversagen? Dann lass 
denn Hauptmicro von einem Slave ueberwachen. Der Hauptmicro wuerde einen 
Pulsschlag bereitstellen, in dem er ein kleines Datenfeld immer wieder 
updated wenn er bei Checkpoints vorbeikommt, evtl. wuerde er die Daten 
per serieller Kommunikation austauschen. Sobald diese Kommunikation 
baden geht, uebernimmt der kleine mit einem "Notprogramm" und gibt dem 
groesseren einen Reset. Nachdem die beiden wieder synchronisiert sind, 
uebernimmt Big Brother.
Redundanz gegen Hardware Probleme laesst sich wie schon erwaehnt mit 
majority vote of 3 erledigen, kostet noch nicht mal sooo viel Overhead. 
Allerdings ist es viel wahrscheinlicher, dass ein logischer Fehler im 
Programm drin ist. Dann helfen auf 5 parallele MCUs absolut nichts. Also 
fuer echte Redundanz, verschiedene Entwickler mit verschiedenen CPUs 
:-)))
Dann gibt wenigstens mit Sicherheit Probleme mit dem Gleilauf.

Es hat einfach sein Grenzen und man kann es locker zum Exzess treiben.

Ist jedenfalls eine interessante Aufgabe, wuerde mich auch reizen!

Robert

von Patrick W. (seennoob)


Lesenswert?

Seas Robert du kenst ja, wenn einem Techniker fad is kommen die 
blödesten Dinge heraus. Eigentlich ist der Typ mit Autoumbauprojekt 
schuld ^^ Da hab ich mir dann die Frage gestellt wie kann man soetwas 
bauen das es auch sicher ist! Den ich will ned das die Lenkung oder gar 
der Motor beim Überholen ausfehlt.

Robert bist du eigentlich noch immer für NXP tätig ?


MFG Patrick

von Patrick W. (seennoob)


Lesenswert?

Also werd ich mich mal beschäftigen mit soetwas wenn die nächste µC 
Lieferung kommt ^^

Mfg

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.