
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; 0x40 | LDR 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.
Abbildung - Secure Pairing-DiagrammIm 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:
- Der Optokoppler U1 bricht durch
- Der SchlĂŒssel K2 bricht durch
- Transformator bricht durch
Die IntensitÀt des Eintretens derartiger Ereignisse wird durch die Formel bestimmt

. Da alle drei Fehler zusammenhÀngen, wird die IntensitÀt dieser Kette durch die Formel bestimmt

. 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:
- Diversifizierung von Software und Hardware;
- Selbstdiagnose aller Mikrocontroller-Ressourcen (RAM, ROM, ALU, Arbeitsregister usw.) sowie der GerÀteknoten;
- 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)!