Hallo Leute, ich mache gerade ein Konzept für eine ultra hoch verfügbaren, Fehler toleranten CAN-Bus. Hierzu brauche ich auch Redundanzen. Klar ist, das ich mind. zwei parallele Busse benötige. Datenblätter wie z.B. die des SN65HVD267 zeigen eine einfache Art eines Redundanten Busses, bei dem einfach zwei Transceiver auf zwei unterschiedlichen Bussen hängen und deren Signale einfach "Verundet" an einen Kontroller laufen. http://www.ti.com/lit/ds/symlink/sn65hvd267.pdf Seite 22 Die Lösung scheint zwar einfach, aber was passiert, wenn ein Transceiver jetzt dauerhaft (z.B. durch Schädigung) falsche Signale liefert oder ein Bus dauerhaft unterbrochen ist? -> Diese Lösung lässt also keine Fehler zu, funktioniert aber auch danach ggf. nicht mehr. Ich will aber eine Lösung, bei der Fehler aufgespürt werden und trotzdem eine Kommunikation möglich wäre. Dazu müste ich also den Redundanten Bus zweifach ausführen, oder? Auch ganz interessant ist z.B. dieses Paper: http://klabs.org/mapld04/abstracts/woodroffe_a.pdf Da wird eine Art "Muxer" zwischen zwei Busse in der Grafik gezeigt, der scheinbar ggf. im Fehlerfall umschalten kann. Hat jemand zu solchen Methoden eine ausführlicheren hinweis für mich? Gibt es eigentlich schon (Peripherie-) Kontroller die CAN-FD verarbeiten? Ich habe zwar schon viele Transceiver gesehen, die das beherrschen, auch ein paar FPGA Implementationen, aber noch keinen kaufbaren Chip. Andere Frage: Ist es eigentlich mit unserer digitalen Elektronik möglich, diese über Jahrzehnte betriebsbereit (also laufen lassen, nicht lagern) zu halten, wenn man für eine konstant "gute" Bedingung sorgt? Atmel sagt z.B. über den ATmega88, das sein Speicher bei 25°C seinen Inhalt 100Jahre halten könnte. Beziehen sich solche Werte auf "gelagerte" Komponente oder welche, die im 24/7 Einsatz sind? Z.B. die 8051 stammen aus dem Anfang der 80'er, hat jemand ein Gerät damals Entwickelt, das bis heute ununterbrochen läuft?
Rafal schrieb: > http://www.ti.com/lit/ds/symlink/sn65hvd267.pdf Seite 22 > Die Lösung scheint zwar einfach, aber was passiert, wenn ein Transceiver > jetzt dauerhaft (z.B. durch Schädigung) falsche Signale liefert oder ein > Bus dauerhaft unterbrochen ist? -> Diese Lösung lässt also keine Fehler > zu, funktioniert aber auch danach ggf. nicht mehr. Wie so oft: Du schickst die Daten über zwei Kanäle und vergleichst. Wenn gleich, dann OK. Wenn unterschiedlich, dann Fehler --> goto SAFESTATE. das ganze kannst du natürlich beliebig aufbohren: 3 Kanäle 4 Kanäle etc.
:
Bearbeitet durch User
Ja, das weiß ich doch schon - hab ich vielleicht falsch angedeutet! Aber ich will selbst im Fehlerfall Daten übertragen können!
Rafal schrieb: > Ist es eigentlich mit unserer digitalen Elektronik möglich, diese über > Jahrzehnte betriebsbereit (also laufen lassen, nicht lagern) zu halten, > wenn man für eine konstant "gute" Bedingung sorgt? Die Voyager Sonden laufen seit 1977 permanent durch, Kontakt zum Rechner besteht bis heute noch.
Rafal schrieb: > Aber ich will selbst im Fehlerfall Daten übertragen können! Was wenn du auf ebiden Leitungen einen Fehler hast? Und auf 3? Oder 4? Immer kann das nicht gehen, du kannst nur die Wahrscheinlichkeit ausrechnen, wie viele Kanäle es noch gibt bzw. auf wie vielen Kanälen ein Fehler auftritt.
Rafal schrieb: > Ja, das weiß ich doch schon - hab ich vielleicht falsch angedeutet! > > Aber ich will selbst im Fehlerfall Daten übertragen können! Na dann halt: 3 Kanäle: alle OK --> prima 2 OK, 1 kaputt --> Fehler, dennoch Übertragung auf den 2 guten Kanälen 1 OK, 2 kaputt -->Fehler, goto SAFESTATE Irgendwann hat sichs halt ausgefehlert. Wenn alle drei Kanäle kaputt sind, dann geht eben eine Datenübertragung nicht mehr. Punkt.
Also wenn nur der BUS redundant sein soll, nimm einen µC mit dual CAN, dann zwei Transceiver und vergleiche es. Wenn du noch mehr Redundanz brauchst, nimm zwei Baugruppen, die identisch sind und bei einem Fehler der andere einspringt. Also nimm dein CAN-Board 2x mit jeweils einem (oder auch zwei) Bus. So läuft das sehr zuverlässig u.a. in Kraftwerken. (Mit SPS) 100% Ausfallsicherheit wirst du nie bekommen, aber so fällt eine Baugruppe aus und du kannst sie problemlos tauschen.
Das Spiel geht ja mit dem Controller weiter. Woher weißt du, dass der einen Fehler richtig erkannt hat? Es könnte ja der Controller defekt sein. Das Stichwort heißt: mehrkanalig
Und wenn du systematische Fehler in der HW ausschließen willst, dann nimmst du noch zwei verschiedene Controller.
rtfm schrieb: > Und wenn du systematische Fehler in der HW ausschließen willst, dann > nimmst du noch zwei verschiedene Controller. Es sind sogar drei in meinem Fall! Zwei unterschiedliche die als Com-Interface an CAN hängen sollen und ein FPGA, der dreifach redundante Software abarbeitet...
Denke auch an ein gutes Netzteil, dass sind nämlich die Dinger, die meist schon nach ein paar Jahren ununterbrochenen Betrieb den Löffel abgeben.
Vielleicht eine Dumme Frage, aber was haltet ihr von einem TMR-CAN-Voter, wie im Anhang gezeigt? Ob Sowas klappen würde?
Rafal schrieb: > und ein FPGA, der dreifach redundante Software abarbeitet... Was passiert, wenn der FPGA ausfällt?
Detlef Kunz schrieb: > Was passiert, wenn der FPGA ausfällt? Also es gibt ZWEI µCs (jeweils eins mit hoffentlich fault-tolerant CAN) und ein FPGA. Der FPGA hat mit Absicht kein Interface! Die µCs könnten aber Ihren "CAN-Buffer" dem FPGA zur Verfügung stellen. Alle "Programmierbaren" laufen auf Zeit Redundanz (also machen alles mindestens zwei mal nacheinander). Sollte ein µC oder der FPGA ausfallen, ist das zwar kritisch für die zukünftige Ausfallsicherheit - es kann aber die ihm zugeteilte Aufgabe erfüllen. -> Es geht halt im Übertragenem Sinne sie "Kontrollleuchte" an :-)
Der Ausfall der Anlage muß aber unbedingt an 2 Stellen gemeldet werden, falls einer der Beobachter eingeschlafen sein sollte...
Rafal schrieb: > Vielleicht eine Dumme Frage, > > aber was haltet ihr von einem TMR-CAN-Voter, wie im Anhang gezeigt? > Ob Sowas klappen würde? Ob der einzelne & mit seinem zusätzlichen Propagation-Delay stört..? Die gesamte Logikschaltung könnte auch das Propagation-Delay im CAN stören, wenn ich so an das ACK am ende denke.. müssten halt schnelle Gatter sein.. Aber Mbit CAN willst du in deiner Anwendung wohl eh nicht? Ich frage mich auch, ob du nicht vielleicht erkennen können willst, ob sich ein Fehler ankündigt? Mit der Vergatterung kriegst du ja nix mehr mit..
Major Krampas schrieb: > Der Ausfall der Anlage muß aber unbedingt an 2 Stellen gemeldet werden, > falls einer der Beobachter eingeschlafen sein sollte... Da will man man ein seriöses Konzept und dann das... Aja, es gibt das komplette System noch ein zweites mal als "Backup". Als Cold-Spare. Auf dieses wird umgeschaltet, wenn: - mind. ein "Programierbarer" der drei in einem System Ausfällt - ein System neu gestartet/gebootet wird -> Behebt manchmal schon Fehler - Diagnose eines Systems - Übertemperatur eines Systems / Abkühlzeit - das System länger als 300msec nicht mehr geantwortet hat. Das komplette System verkraftet "Ausfallzeit" von max 800msec dunno.. schrieb: > Aber Mbit CAN willst du in deiner Anwendung wohl eh nicht? Richtig! 250k Busfrequenz
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.