Werden die neuen Systeme von heute mit den gleichen CPUs und Programmiersprachen und Entwicklungssoftware gebaut wie die von vor 20 oder mehr Jahren?
Mit neu meine ich, dass diese Systeme derzeit für zukünftige Verkehrsflugzeuge entwickelt werden oder kürzlich zum ersten Mal in Betrieb genommen wurden.
Alle konkreten Beispiele für neue Designs, wie sie in einem großen Verkehrsflugzeug der neuesten Generation verwendet werden (die A350 und 787 sind die offensichtlichsten Beispiele), wären besser als allgemeine Antworten.
Ich interessiere mich für Beispiele aus allen flugwesentlichen Systemen (aber nicht zum Beispiel Bordunterhaltung).
Als Teil dieser Frage: Neigt die Industrie dazu, ihre Produkte durch inkrementelle Updates der von ihr übernommenen Mikroprozessoren und Programmiersprachen zu aktualisieren, oder neigt sie dazu, einmal pro Generation auf neue Technologien umzusteigen? Und gibt es signifikante Unterschiede in der Herangehensweise der Flugzeughersteller (im Gegensatz zur Militär-/allgemeinen Luftfahrtindustrie)?
Hinweis: Ich habe mich mehr auf Änderungen in der Luftfahrthardware und -software konzentriert als auf das, was derzeit verwendet wird, da die verknüpfte Frage zu Programmiersprachen für "neue" Flugzeuge immer noch aktuell ist. Ich möchte diese Frage oder ihre Antworten nicht wiederholen. Meiner Meinung nach werden C++, C# und Ada wahrscheinlich mindestens für das nächste Jahrzehnt die dominierenden Programmiersprachen für die Avionik sein.
Zunächst muss man den Lebenszyklus von Flugzeugen verstehen. Viele Flugzeuge sind seit mehr als 30 Jahren im Einsatz . Die Avionik erhält Updates (ob neue Funktionen hinzugefügt, Fehler behoben oder Konformität hinzugefügt wird, um Mandate zu erfüllen). Der Großteil der Arbeit wird jedoch während der anfänglichen Entwicklung der Software und Hardware geleistet. Die Konfiguration wird dann meist so lange fixiert, bis diese Avionik-Generation vom Hersteller ersetzt oder von einem anderen Hersteller nachgerüstet wird.
Wenn die Avionik ein Generations-Update durchläuft (wie CRTs auf LCD-Bildschirme), muss jede Änderung die Kosten wert sein, daher wird normalerweise nicht viel geändert. Vielleicht die CPU, aber definitiv nicht die Programmiersprache. Zum Beispiel war der G1000 12 Jahre lang auf dem Markt, bevor eine weitere Generation von Hardware veröffentlicht wurde (obwohl sie in der Zwischenzeit zahlreiche Software-Updates für Hardwarekompatibilität und synthetisches Sehen und dergleichen veröffentlicht haben).
In ähnlicher Weise war Avidyne Entegra fünf Jahre lang nicht verfügbar und fügte kontinuierlich wichtige Funktionen wie Datenverbindungswetter und LPV-Ansatz hinzu, bevor es schließlich 2009 in Release 9 die Hardware aktualisierte. Falcon-Jets wie die Falcon 900 hatten 2011 ein Software- und Hardware-Update ihrer Avionik , aber dieses Upgrade basierte auf der Hardware- und Softwarefamilie Primus Epic, deren erste Generation bereits 9 Jahre alt war. Ich glaube, alle 900er liefen vor dem Upgrade 2011 noch mit der alten Hardware von 1996. Am anderen Ende des Spektrums dieser langsamen Upgrades ist das JSF-System des Militärs so konzipiert, dass es alle paar Jahre problemlos aktualisiert werden kann (aber sie sagen nicht, wie oft).
Was den Wert in der Avionik antreibt, sind normalerweise keine exotischen neuen Funktionen und schon gar keine Rechenleistung. Der Wert wird durch Zuverlässigkeit, Einhaltung von Vorschriften und Einhaltung von Sicherheitsvorschriften bestimmt . Dies erfordert Funktionen, die für den Ingenieur und den Piloten einfach genug sind, um sie zu verstehen, und die robust genug sind, dass Hunderte von Menschenleben davon abhängen. Daher erfordern die neu hinzugefügten Funktionen im Allgemeinen wenig zusätzliche Leistung, und es gibt wenig Anreiz für Spitzentechnologie oder die neuesten Programmierparadigmen wie Cloud Computing, maschinelles Lernen oder Objektorientierung.
Ein Ingenieur bei Rockwell Collins sagte etwas, das für die gesamte Avionik gilt: „In der Vergangenheit hatten wir Mühe, alles, was wir tun mussten, in die Größe des Prozessors und die Geschwindigkeiten zu integrieren, die wir hatten, und wie wir all diese Bits über die Schnittstellen bekommen, die wir hatten Prozessoren, die wir jetzt haben, und Glasfaserschnittstellen, das ist kein Problem mehr ... Jetzt besteht das Problem darin, gute, störungsfreie Software zu verwalten und zu entwerfen und alle beteiligten Codezeilen zu testen Bandbreite, die wir brauchen, wir müssen sicherstellen, dass wir sie nutzen können und uns nicht in die Ecke drängen."
Die Verifizierung ist einer der größten Antriebsfaktoren (und Kosten) bei der Verwendung von Prozessoren und Programmiersprachen. Sämtliche Hard- und Software muss ein Sicherheitsniveau aufweisendaran befestigt, wobei die kritischsten Funktionen (wie Avionik für Autoland) als "Level A" angesehen werden, was bedeutet, dass ein solcher Ausfall der Avionik katastrophal sein könnte. Um die strengen Sicherheitsanforderungen für Level-A-Software zu erfüllen (was oft ein solcher Fehler pro 10^9 Flugstunden ist), müssen die Software und die Hardware umfassend getestet werden, um sicherzustellen, dass nichts schief geht. Dazu gehört, dass jede Bedingung in jeder Codezeile abgedeckt wird. Die meisten Tools, die entwickelt wurden, um mit Ihrer Programmiersprache und Softwarearchitektur zu arbeiten, müssen ebenfalls formal verifiziert (normalerweise als "qualifiziert" bezeichnet) werden. Darüber hinaus müssen kostspielige Flugtests durchgeführt werden, um Änderungen zu bewerten. Dies erzeugt viel Trägheit und bedeutet eine komplette Überarbeitung eines bestehenden Produkts oder einen Neuanfang für ein neues Produkt, nur um ein "
Virtualisierung (die es verschiedenen Betriebssystemen ermöglicht, sich so zu verhalten, als würden sie von selbst laufen, aber tatsächlich mit einer Schicht zwischen sich und der nackten Hardware laufen) und Multi-Core-Verarbeitung wird jetzt von einigen Echtzeit-Betriebssystemen für handelsübliche Prozessoren unterstützt . Diese müssen den Standards in DO-332 und anderen Materialien entsprechen. Laut meinem Text von 2013 befindet sich dies noch in der Untersuchungsphase und es wurde noch keine Avionik mit diesen Merkmalen zertifiziert. Das Hauptproblem ist, dass Mehrkernprozessoren nicht nur mehr Funktionen haben, sondern auch mehr Funktionen, die nicht umfassend dokumentiert oder testbar sind. Weitere Informationen zu Problemen bei der Verwendung von Multi-Core finden Sie im CAST 32 der FAA und in dieser Präsentation .
Viele Faktoren spielen bei der Auswahl der Programmiersprache und des Prozessors für jedes Produkt eine Rolle, einige davon sind:
Ich glaube, dass die am häufigsten verwendeten Sprachen in sicherheitskritischen Systemen der Luftfahrt C und Ada sind, wobei C++ in den letzten 10 oder 15 Jahren mehr Verwendung gefunden hat.
Prozessoren können von einfachen 8-Bit-SO8-Mikros über PowerPC bis hin zu Multicore-x86- oder ARM-System-on-Chips reichen. Elektronische Hardware wie PLDs und FPGAs werden für bestimmte Arbeitslasten ebenfalls immer beliebter.
Min
Daniele Procida
multi-core processors [have] features that are not comprehensively documented or testable
- mit anderen Worten, zukünftige CPU-Generationen könnten sich als im Wesentlichen ungeeignet für kritische Anwendungen in der Luft- und Raumfahrt erweisen! 2) Es kann eine Zeit kommen, in der die Mikroprozessorhardware, auf der diese sehr konservativen Systeme basieren, einfach nicht mehr verfügbar ist - wird das vielleicht ein Auslöser für eine Neuentwicklung von Software/Hardware von Grund auf sein?Cody P
Cody P
Jon-Story
Cody P
Jon-Story
scotty3785
Hrobeer