CANaerospace[1] ist ein auf Controller Area Network (CAN) aufsetzendes Protokoll für Steuerelektronik in der Luftfahrt und definiert zudem die Hardwareschnittstelle. Entworfen und entwickelt wurde es 1998 von Stock Flight Systems[2]. Aufgrund seines Open-Source-Ansatzes kam CANaerospace zunächst sehr schnell in der Luftfahrtforschung zum Einsatz und nahm bezüglich CAN-basierten Systemen die weitere Entwicklung im Luftfahrtbereich in vielerlei Hinsicht vorweg (siehe auch ARINC 825).
CANaerospace unterstützt das Konzept von Line Replaceable Units (LRU) und standardisiert die Kommunikation zwischen LRUs auf Systemebene beispielsweise durch definierte Hardwareschnittstellen, Netzwerkschichten, Sicherheitsmechanismen, Datentypen und Koordinatensystemdefinitionen. CANaerospace wird seither kontinuierlich weiterentwickelt, ist in der Luftfahrtindustrie weltweit verbreitet und wurde auch von der US National Aeronautics and Space Administration als NASA-Standard[3] veröffentlicht. Ein maßgebliches Forschungsprojekt, in dem eine Vielzahl CANaerospace-vernetzter Systeme verwendet wird, ist das Stratospheric Observatory For Infrared Astronomy (SOFIA), eine Boeing 747SP mit einem 2,5-m-Spiegelteleskop für die Infrarot-Astronomie. Auch in der professionellen Flugsimulation konnte sich CANaerospace durchsetzen und wird für die Verbindung vollständiger Simulationscockpits wie das des Eurofighter Typhoon mit den zentralen Simulationsrechnern verwendet. In Italien wird CANaerospace bei UAVs eingesetzt[4]. Ferner dient CANaerospace als Kommunikationsnetzwerk verschiedener moderner integrierter Avioniksysteme für die Allgemeine Luftfahrt.
CANaerospace schließt die Lücke zwischen dem im CAN-Controller implementierten CAN-Protokoll und den besonderen Anforderungen verteilter Systeme in Luftfahrzeugen. Ein wesentliches Kriterium im Rahmen der Definition von CANaerospace war, eine kostengünstige Implementierung des Protokolls in intelligenten Integrated Modular Avionics (IMA)-Einheiten zu ermöglichen. Der Grund dafür ist, dass bei missions- oder flugsicherheitskritischen Systemen in Luftfahrzeugen deren vorhersagbare und korrekte Funktion nachgewiesen werden muss, was – neben anderen Anforderungen – auf der Entwicklungsebene die Erstellung qualitätsgesicherter Software erfordert. Die zur Sicherstellung der Qualität notwendigen und in den einschlägigen Zulassungsvorschriften (z. B. DO-178B) geforderten Vorgehensweisen unterscheiden sich zwar in ihrem Umfang hinsichtlich der möglichen Folgen beim Ausfall des betreffenden Systems; grundsätzlich steigt dieser Aufwand aber immer mindestens proportional mit dem Umfang des entsprechenden Softwarecodes. Da der Zeit- und Kostenaufwand für die Softwarequalitätssicherung insbesondere bei Systemen, die sehr hohen Zuverlässigkeitsansprüchen genügen müssen, extrem hoch werden kann, ist ein „schlankes“ Protokoll vor allem in diesen Fällen von entscheidendem Vorteil. Aber auch die – oft in einem Luftfahrzeug in großer Zahl verwendeten – kleineren Systeme mit geringeren Anforderungen profitieren davon.
Die wesentlichen Eigenschaften von CANaerospace sind:
Die CAN-Spezifikation sieht vor, dass versendete CAN-Nachrichten grundsätzlich von allen angeschlossenen Busteilnehmern empfangen werden, ein Kommunikationsprinzip, welches auch als „Anyone-to-Many“ (ATM) bezeichnet wird. Der Vorteil dieses Konzeptes ist die inhärente Datenkonsistenz zwischen allen Busteilnehmern. Sowohl das periodische als auch das aperiodische Versenden von Nachrichten während des normalen Betriebs sind möglich. Der Nachteil der ausschließlichen Festlegung der CAN-Spezifikation auf ATM ist, dass es per definitionem für CAN keine Teilnehmeradressierung gibt, welche wiederum die Grundlage für „Peer-to-Peer“ (PTP) Kommunikation darstellt. Für den Einsatz im Luftfahrtbereich mit seinen hohen Anforderungen an kontinuierliche Systemüberwachung aber ist die Möglichkeit, mit einzelnen Busteilnehmern zu kommunizieren, außerordentlich wichtig. CANaerospace stellt daher die erforderlichen Protokollfunktionen zur Verfügung, um PTP-Kommunikation zu ermöglichen.
PTP-Kommunikation erlaubt es, zusätzlich zu dem „normalen“ Datenfluss in einem System zeitweise oder dauerhaft Interaktionen zwischen einzelnen Busteilnehmern herzustellen und auch wieder aufzulösen, wodurch Netzwerkdienste auf „Client/Server“-Basis ermöglicht werden. Hierbei können mehrere dieser Interaktionen parallel laufen, und jeder Busteilnehmer kann gleichzeitig Client für bestimmte Interaktionen und Server für andere sein. Mit Hilfe dieses Mechanismus, in CANaerospace als „Node Service Concept“ bezeichnet, lassen sich beispielsweise Systemfunktionen auf transparente Art und Weise über verschiedene Teilnehmer im Netzwerk verteilen oder auch die dynamische Rekonfiguration eines gesamten Systems zur Erhöhung der Zuverlässigkeit im Fehlerfall steuern. Das Node Service Concept unterscheidet hierbei zwischen verbindungsorientierten und verbindungslosen Interaktionen, ähnlich wie im Falle von TCP/IP und UDP/IP für Ethernet.
Die gleichzeitige Verwendung von ATM- und PTP-Kommunikation für CAN erfordert die Einführung unterschiedlicher Netzwerkschichten, die eine voneinander unabhängige Kommunikation erlauben. Diese werden durch CANaerospace erzeugt, indem eine Gruppierung der CAN-Identifier wie in Abbildung 1 dargestellt vorgenommen wird. Die daraus resultierende Struktur erzeugt logische Kommunikationskanäle (Logical Communication Channel, LCC) und ordnet diesen eine bestimmte Kommunikationsart (ATM, PTP) zu. Benutzerdefinierte LCCs geben dem Anwender hierbei große Freiheiten, um die Implementierung von CANaerospace nach seinen Bedürfnissen zu ermöglichen.
Abbildung 1: Logische Kommunikationskanäle von CANaerospace
Die CAN-Identifier-Bereiche in Abbildung 1 haben natürlich auch den entsprechenden Einfluss auf die Priorität der verschiedenen Kommunikationskanäle im Falle der Busarbitrierung. Aus diesem Grund sind die Kommunikationskanäle nach der relativen Wichtigkeit zueinander geordnet:
Da die Mehrzahl der in Flugzeugen verwendeten Echtzeitrechnersysteme auf „Big Endian“-Prozessorarchitekturen basiert, wurde diese Datenanordnung konsequenterweise auch für CANaerospace festgelegt. Für die „Big Endian“- Datenanordnung ist das höchstwertige Bit eines Datums beliebiger Länge linksbündig angeordnet und wird über CAN als erstes gesendet (siehe Abbildung 2). CANaerospace ist auf Standard (11 Bit) Identifier ausgelegt, kann aber auch auf der Basis von Extended (29 Bit) Identifiern implementiert werden. Die Bits 12-28 des CAN-Identifiers wurden bis zur Version 1.7 von CANaerospace für Redundanz verwendet, ab Version 1.8 ist die Aufteilung dieser Bits auf die Kompatibilität zu ARINC 825 ausgerichtet.
Abbildung 2: Big Endian-Datenanordnung bei der Versendung von CANaerospace-Nachrichten
Eine Besonderheit von CANaerospace ist das selbstidentifizierende Nachrichtenformat, welches durch eine Strukturierung des Nachrichteninhalts erreicht wird, wie in Abbildung 3 dargestellt. Diese Struktur definiert einen 4-Byte Message Header und einen bis zu 4 Byte langen Parameteranteil.
Abbildung 3: Selbstidentifizierendes CANaerospace-Datenformat
Auf den ersten Blick erscheint der Verzicht darauf, alle der maximal 8 Bytes der CAN-Nachrichten für Parameter zu nutzen ineffizient zu sein, andererseits erfüllt der Message Header wichtige Zwecke, die auch bei einer anderen Konzeption durch die Verwendung von Nutzdatenbytes hätten erreicht werden müssen: Der CANaerospace Message Header ermöglicht es empfangenden Busteilnehmern, eingehende CAN-Nachrichten unmittelbar nach deren Empfang hinsichtlich Ursprung, Datentyp, Integrität und Zeitpunkt ihrer Erzeugung zu analysieren. Hierzu werden von den Busteilnehmern außer der Kenntnis der im System gültigen Identifierverteilung keine anderweitigen Informationen benötigt. Die einzelnen Header-Bytes haben dabei folgende Bedeutung:
Der Header enthält damit wesentliche Zusatzinformationen, um die Integrität des damit verbundenen Parameter für die Verwendung in sicherheitskritischen und insbesondere in redundant aufgebauten Systemen zu analysieren. Zudem wird auf diese Weise auch die Interoperabilität von Busteilnehmern verschiedener Hersteller erheblich verbessert. Nicht zuletzt vereinfacht die Auswertung des Headers die Analyse von CANaerospace-Netzwerken bezüglich des Status der einzelnen Busteilnehmer, was für Testbarkeit und Wartbarkeit der oft komplexen Systeme in Luftfahrzeugen außerordentlich hilfreich ist.
Zur weiteren Verbesserung der Interoperabilität definiert CANaerospace neben dem Datenformat auch luftfahrtspezifische Achsensysteme mit ihren entsprechenden Vorzeichen sowie physikalische Einheiten. Zusammen mit der vordefinierten Identifierverteilungsliste sind damit alle Nachrichten in einem CANaerospace-Netzwerk unverwechselbar beschrieben. Die Standard-Identifierverteilung reserviert den Identifierbereich von 300 bis 1799 und weist den verschiedenen Identifiern eindeutige Parameter zu. Abbildung 4 zeigt einen Ausschnitt aus dieser Verteilung.
Abbildung 4: Auszug aus der Standard-Identifierverteilung von CANaerospace V 1.7
Anwender können bei Bedarf eigene Identifierverteilungslisten verwenden, wobei es der zwingend in allen CANaerospace-Busteilnehmern zu implementierende „Node Identification Service“ erlaubt, alle an einem Netzwerk angeschlossenen Geräte hinsichtlich der von ihnen verwendeten Identifierverteilung abzufragen und damit Inkonsistenzen zu vermeiden. Sowohl die Identifierverteilung als auch die Listen für Datentypen und physikalische Einheiten haben zudem benutzerdefinierte Sektionen, in denen Anwender entsprechende Erweiterungen vornehmen können.
Eine besondere Anforderung an sicherheitskritische Systeme in Luftfahrzeugen besteht darin, dass ihr Zeitverhalten präzise definiert, analysiert und geprüft werden können muss, um formale Zulassungsanforderungen zu erfüllen. Diese Anforderung an das Zeitverhalten bedeutet, dass das Zeitverhalten eines solchen Systems eindeutig und vorhersagbar sein muss. Die zeitliche Genauigkeit, mit der die Kommunikation vonstattengehen muss, ist abhängig von der jeweiligen Anwendung und muss durch eine entsprechende Systemanalyse bestimmt werden. Tatsächlich nachgewiesen werden muss den Luftfahrtzulassungsbehörden (z. B. FAA, EASA), dass sich ein sicherheitskritisches System unter allen Umständen vorhersagbar verhält. Dies kann mit CAN in dem Moment sichergestellt werden, in dem das zeitliche Schema, nach dem alle Busteilnehmer ihre Nachrichten versenden, einem Konzept zur Verteilung der zur Verfügung stehenden Bandbreite folgt. Dies gilt ungeachtet der Tatsache, dass dem Controller Area Network, bedingt durch die variable Nachrichtenlänge (verursacht durch Bit Stuffing) und dem Carrier Sense Multiple Access / Collision Resolution (CSMA/CR) Arbitrierungsverfahren eine Variation der Zeitpunkte, zu dem Nachrichten versendet werden, inherent ist. Entscheidend aber ist, dass das Konzept zum Management der Bandbreite dafür sorgt, dass keine zeitlichen Variationen auftreten, die nicht bestimmbar sind.
CANaerospace definiert ein solches, als „Time Triggered Bus Scheduling“ bezeichnetes Bandbreitenmanagement-Konzept sowohl für ATM- als auch PTP-Kommunikation. Dieses Konzept basiert auf einer Begrenzung der Anzahl von CAN-Nachrichten, die ein Busteilnehmer innerhalb eines im Rahmen der Vorentwicklung des Gesamtsystems definierten Zeitrahmens (Minor Time Frame) versenden darf, sowie auf einer höchstens 50%igen Ausnutzung der verfügbaren Bandbreite. Dadurch wird sichergestellt, dass die Versendung keiner Nachricht über einen festgelegten Zeitpunkt hinaus verzögert wird. Die größtmögliche Anzahl versendeter CAN-Nachrichten innerhalb eines Minor Time Frame kann sich durchaus von Busteilnehmer zu Busteilnehmer unterscheiden und kann eine gewisse „Reserve“ für zukünftige Erweiterungen vorsehen. Time Triggered Bus Scheduling macht sich die Erkenntnis zunutze, dass nicht alle CAN-Nachrichten in einem System mit der gleichen, durch den Minor Time Frame vorgegebenen Erneuerungsrate gesendet werden müssen. Die Definition ganzzahliger Vielfacher der durch den Minor Time Frame vorgegebenen Erneuerungsrate sowie zugehöriger „Transmission Slots“ lassen sich eine wesentlich größere Anzahl von CAN-Nachrichten in vorhersagbarer Weise versenden als wenn diese alle an den Minor Time Frame selbst gebunden wären.
Time Triggered Bus Scheduling erfordert, dass sich jeder Busteilnehmer zu jeder Zeit an das vorgegebene Sendeschema hält, also niemals mehr als die für ihn festgelegte maximale Anzahl von Nachrichten innerhalb eines Minor Time Frames versendet. Dies bedeutet jedoch nicht, dass die Busteilnehmer sich hinsichtlich ihrer Sendezeitpunkte oder der Reihenfolge der Versendung ihrer Nachrichten zeitlich synchronisieren müssen. Abbildung 5 zeigt beispielhaft das Sendeschema eines CANaerospace-Netzwerks mit zwei Busteilnehmern, die ihre Nachrichten asynchron, in wechselnder Reihenfolge und zu variierenden Zeitpunkten innerhalb ihres Minor Time Frames versenden. Das Beispiel erfüllt die Anforderungen des Time Triggered Bus Scheduling in vollem Umfang.
Abbildung 5: Vereinfachtes CANaerospace-Sendeschema mit zwei Busteilnehmern
Bei Verwendung von Time Triggered Bus Scheduling kann nachgewiesen werden, dass sich ein CANaerospace-Netzwerk unter der Bedingung vorhersagbar verhält, dass nicht mehr als 50 % der Bandbreite durch CAN Error Frames in Anspruch genommen werden. Um dies auch unter stärkeren Fehlerbedingungen aufrechtzuerhalten, müssen vom System-Designer Vorgaben gemacht werden, wie mit diesen Störungen umzugehen ist[6].