Entwicklung eines „einfachen Spannungsgenerators“ nach GOST R IEC 61508 (IEC 61508)

Bild

In diesem Artikel werden die erforderlichen Schritte zum Erstellen eines GerĂ€ts erlĂ€utert, das die allgemeinen Anforderungen an die funktionale Sicherheit (FB) erfĂŒllt. Außerdem wird die Architektur des einfachsten "Sicherheits" -Spannungsgenerators vorgeschlagen. Seit dem Steuern der Spannung können Sie nahezu jedes GerĂ€t steuern.
Die Seite enthÀlt wundervolle Artikel ( eins , zwei ) zu diesem Thema und ein Buch, mit dem ich als Ingenieur bei FB aufgewachsen bin.
Eine Reihe von Normen GOST R IEC 61508 (IEC 61508) ist die Grundlage fĂŒr russische Normen, die den Entwicklungsauftrag von GerĂ€ten festlegen, fĂŒr die die Anforderungen des FB dargestellt werden. Wie Sie wissen, gibt es bei der Entwicklung von GerĂ€ten im Zusammenhang mit dem FB Industriestandards, die das Entwicklungsverfahren regeln (fĂŒr Eisenbahnen sind dies GOST R 52980-2015 „Softwareanforderungen“, GOST R 34012-2016 „Allgemeine Anforderungen an EisenbahnausrĂŒstung“ usw.). e).
GemĂ€ĂŸ den Standards GOST R IEC 61508 und IEC 61508 werden Fehler in zwei Typen unterteilt: systematisch und zufĂ€llig.

Systematische AusfĂ€lle werden durch Fehler in der Spezifikation, im Design, in der Codierung der Software festgestellt. Der Schutz dagegen wird durch die Organisation des Lebenszyklus aufgebaut. Dazu gehören: ÜberprĂŒfung aller Phasen des Lebenszyklus auf Einhaltung der Anforderungen und Validierung (Validierungstest) des Endprodukts.

ZufÀllige AusfÀlle werden als Wahrscheinlichkeit eines Hardwareausfalls berechnet. Der Schutz dagegen wird normalerweise durch Architekturentscheidungen bestimmt.

StandardmĂ€ĂŸig lassen sich alle Methoden in zwei Gruppen einteilen: organisatorische und technische. Organisatorische Methoden umfassen: Implementierung des Lebenszyklus, Anwendung von Codierungsstandards, Überwachung der Hardwareproduktion. Technische Methoden umfassen: Sabotage (aus der englischen Vielfalt - Vielfalt), Redundanz, Schutz vor UmwelteinflĂŒssen, UnabhĂ€ngigkeit und Trennung von Komponenten, Selbstdiagnose (jede dieser Methoden muss in separaten Artikeln beschrieben werden).

Die wichtigsten organisatorischen Methoden zum Schutz vor systematischen Fehlern sind in den AnhĂ€ngen von GOST R IEC 61508 beschrieben. Als Beispiel betrachten wir die systematische Komponente von Software. Beim Schreiben von Code ist besonders auf die Codierungsregeln und -standards zu achten, die bei der Codierung verwendet werden. Einer der bekannten Standards fĂŒr die Programmierung in der SI-Sprache ist MISRA-C, dessen Verwendung die Sicherheit des Systems verbessert. DarĂŒber hinaus gibt es statische AnalysegerĂ€te (in der Regel ist es fĂŒr AnalysegerĂ€te nĂŒtzlich, Codes auf Fehler zu ĂŒberprĂŒfen), mit denen die KonformitĂ€t mit dem MISRA-C-Standard ĂŒberprĂŒft werden kann. Eines davon ist PVS-Studio .

Eine teilweise Softwareumleitung kann durch die Verwendung verschiedener Softwareentwicklungsalgorithmen erreicht werden. Ein vollstĂ€ndiges Software-Diversifizierungssystem wird nur dann erreicht, wenn zwei unterschiedliche Spezifikationen von Softwareanforderungen vorliegen, unterschiedliche Teams von Programmierern, unterschiedliche Mittel zum Programmieren von GerĂ€ten in der Produktion, d.h. Diese Programme sollten völlig anders sein und der Prozess der Programmierung von GerĂ€ten sollte auch anders sein. Auch bei der Entwicklung von Softwaretools ist es notwendig, sich vor Fehlern von Tools zu schĂŒtzen. Die werkzeugkritischste Software ist der Compiler in Verbindung mit der Standardbibliothek und dem Linker. Mit den ARMCC- und GCC-Compilern können eine Vielzahl von Tools erstellt werden. Einige Versionen von ARMCC verfĂŒgen jedoch ĂŒber eine TÜV-Zertifizierung fĂŒr SIL-3-KonformitĂ€t gemĂ€ĂŸ IEC 61508, und GCC wird bei der Entwicklung der Falcon 9-Software erfolgreich eingesetzt.

Betrachten Sie die Ergebnisse des Kompilierens des Befehls "Write to Port":
Befehl in der SI-Sprache (ISO / IEC 9899): MDR_PORTE-> CLRTX = 0x0040
GCC"ARMCC"
LDR r3, [pc, # 20]MOVS r0, # 0x40
MOVS r2, # 64; 0x40LDR r1, [pc, # 16]; @ 0x0000072C
STR r2, [r3, # 36]STR r0, [r1, # 0x24]

Selbst am Beispiel eines solchen einfachen Befehls (wie aus der Tabelle ersichtlich) ist die Befehlsfolge des Mikrocontrollers unterschiedlich und es werden unterschiedliche Arbeitsregister verwendet. Was uns in irgendeiner Form "Vielfalt" verschafft und damit die Wahrscheinlichkeit von Fehlern aufgrund der hÀufigen Fehlerursache der Werkzeuge verringert.

Betrachten Sie die in der Abbildung gezeigten Methoden zum Schutz vor versehentlichen Fehlern am Beispiel eines GerĂ€ts, das ein elektromagnetisches Relais steuert. Um die Schutzmethoden zu bestimmen, ist es notwendig, gefĂ€hrliche GerĂ€teausfĂ€lle zu identifizieren. Wie Sie wissen, wird das Relais durch Anlegen von Spannung an die Wicklung gesteuert. In diesem Fall besteht ein gefĂ€hrlicher Fehler fĂŒr dieses GerĂ€t im unbefugten Auftreten einer Spannung, die fĂŒr den Betrieb des Relais ausreicht. Dieses GerĂ€t basiert auf Architektur 2 von 2. In dieser Architektur sollten MCU_A und MCU_B Befehle ĂŒber physikalisch getrennte Netzwerke empfangen.

Bild
Abbildung - Secure Pairing-Diagramm

Im Rahmen dieses Artikels wird der Fehlerbaum nicht vollstĂ€ndig beschrieben. Daher betrachten wir eine der wahrscheinlichsten Ereignisketten, die zu einem gefĂ€hrlichen Ausfall fĂŒhren:

  1. Der Optokoppler U1 bricht durch
  2. Der SchlĂŒssel K2 bricht durch
  3. Transformator bricht durch

Die IntensitÀt des Eintretens derartiger Ereignisse wird durch die Formel bestimmt Bild . Da alle drei Fehler zusammenhÀngen, wird die IntensitÀt dieser Kette durch die Formel bestimmt Bild . Unter groben Annahmen betrÀgt die Ausfallrate dieser Kette weniger als (10e-15) 1 / h, vorausgesetzt, dass sich AusfÀlle innerhalb von 24 Stunden ansammeln können.

Betrachten wir noch einen der Fehler: Fehler von MCU_A und MCU_B, so dass sie „zufĂ€llig“ eine Folge von Impulsen am Ausgang erzeugen.

"ZufĂ€llig" bedeutet die AusfĂŒhrung von mindestens neun Befehlen durch den Mikrocontroller (drei EintrĂ€ge zum Port), wĂ€hrend die Ausgangsspannung von zwei Mikrocontrollern erfasst wird und ein Fehler zwischen den empfangenen und den ausgegebenen Befehlen erzeugt wird. Die IntensitĂ€t dieser Ereignisse ist extrem niedrig, da zwei MKs 9 Befehle gleichzeitig ausfĂŒhren mĂŒssen (ganz zu schweigen davon, dass die MKs in bestimmten Intervallen entgegengesetzte Werte an die Ports schreiben mĂŒssen, um die Spannung zu erzeugen, die fĂŒr den Betrieb des Relais am Ausgang erforderlich ist).

Zusammenfassend sollte angemerkt werden, dass als Methoden zur Erhöhung der funktionalen Sicherheit empfohlen wird, Folgendes anzuwenden:

  1. Diversifizierung von Software und Hardware;
  2. Selbstdiagnose aller Mikrocontroller-Ressourcen (RAM, ROM, ALU, Arbeitsregister usw.) sowie der GerÀteknoten;
  3. Verringerung der Parameter der Schaltungselemente gegenĂŒber den Grenzwerten (Herabsetzung der Nennleistung), um bessere Betriebseigenschaften zu gewĂ€hrleisten und die Wahrscheinlichkeit von AusfĂ€llen zu verringern.

Alle diese Methoden können bei der Entwicklung von GerĂ€ten verwendet werden, die die Anforderungen des FB erfĂŒllen.

P.S. In dem betrachteten Beispiel kann einer der Mikrocontroller durch FPGA ersetzt werden, um die Wahrscheinlichkeit von AusfÀllen aus einem gemeinsamen Grund zu verringern.

Vielen Dank fĂŒr Ihre Aufmerksamkeit (dies ist mein erster Artikel)!

Source: https://habr.com/ru/post/de481594/


All Articles