Wie entschlüsselt man ARINC 429-Daten?

Ich suche nach Hilfe beim Decodieren von ARINC 429-Daten. Ich habe ein CSV-Dokument, das nacheinander gespeicherte ARINC 429-Etiketten enthält.

Mein Gesamtziel ist es, nach 4 spezifischen Etiketten zu scannen und nur diese Frames (Datenfeld, Etikettenfeld und SSM-Feld) zu dekodieren und sie an das Dokument anzuhängen.

Kommt ARINC 429 zufällig in verschiedenen Datenformaten (dh BCD, BNR, Discrete Bits usw.)?

Da ich nach bestimmten Etiketten suche, ist es in Ordnung, nur das BNR-Format zu decodieren, oder muss ich in der Lage sein, alle Datenformate zu identifizieren und zu decodieren?

Dies ist ein bisschen off-topic für diesen Austausch, aber vielleicht möchten Sie sich dieses Projekt ansehen .
Ihre Frage scheint ein bisschen vom Thema abzukommen, da sie sich mehr auf die Programmierung bezieht. Wenn Sie nicht finden, wonach Sie suchen, fragen Sie stattdessen bei einer Programmierbörse danach.
Ich denke, es ist ein Thema, da die eigentliche Frage Luftfahrtdaten betrifft, nicht die Programmierung, das sind nur Hintergrundinformationen.
Haben Sie eine bestimmte Liste von Labels, die Sie entschlüsseln möchten?
Bei Arinc 429 geht es nicht um die Luftfahrt? Ist es nicht ein Datenbus, der in … Flugzeugen gefunden wurde?
Auch mit der von Ihnen vorgeschlagenen Bearbeitung ist Ihre Frage noch unklar. Sie möchten Hilfe beim Entschlüsseln von Daten. Sie scheinen etwas über Arinc 429 zu wissen. Was hindert Sie daran, in Ihrem Datenfluss die Labels zu identifizieren, die Sie interessieren? Wir werden Ihnen keinen Pseudocode zur Verfügung stellen, aber wir können das Protokoll erläutern, wenn Sie ein bestimmtes Problem mit dem Datenfluss in Ihrem CSV-Beispiel haben. Seien Sie konkret, sonst kann keine Antwort gegeben werden.
@mins, ich habe die Bearbeitung vorgeschlagen, um Verweise auf Python in der Frage zu entfernen. Bisher scheint meine Antwort auf die Frage dem OP geholfen zu haben. Die Frage dreht sich wirklich darum, die Struktur des ARINC 429-Wortes zu verstehen.
@selectstriker2: Ich habe diesen Kommentar geschrieben, während ich in der Überprüfungswarteschlange war, ich habe nicht gesehen, dass es Ihre Bearbeitung war, aber ich habe für die Wiedereröffnung gestimmt, da die Bearbeitung eine große Verbesserung war, jetzt, wo ich Ihre Antwort und die Kommentare von OP gelesen habe, denke ich, dass dies der Fall ist wird gelöst.
Avioniksysteme sind eine Nische in der Welt der Computersoftware. Ich würde vermuten, dass der durchschnittliche Pilot mehr über die Arinc-Codierung weiß als der durchschnittliche Programmierer.

Antworten (2)

ARINC 429 ist ein definierter Standard, der nicht nur die Paketstruktur (32 Bit) beschreibt, sondern auch die Datenformate für unterschiedliche Labels in Abhängigkeit von der Gerätekennung. Um zu wissen, wie ein ARINC 429-Etikett richtig dekodiert wird, müssen Sie die Geräte-ID kennen, die dann verwendet werden kann, um die Bedeutung eines bestimmten Etiketts nachzuschlagen.

Der Hersteller des Geräts, von dem die Daten stammen, kann auch die Definition aller nicht standardisierten/kundenspezifischen Etiketten bereitstellen

Wenn Sie wissen, nach welchen Etiketten Sie suchen, müssen Sie nicht das gesamte Etikett entschlüsseln, sondern müssen nur die Bits 8-1 untersuchen, um das Etikett zu bestimmen.

Im Allgemeinen bietet die Spezifikation ARINC 429 jedoch eine Richtlinie für Etiketten:

Binär codierte Dezimalzahl (BCD) Untergruppe 001 bis 067, 125, 165, 170, 200, 201, 230 bis 237.

Binäre (BNR) Untergruppe 070 bis 124, 126 bis 144, 150 bis 154, 162 bis 164, 166, 167, 171 bis 177, 202 bis 227, 240 bis 257, 262 bis 265, 267, 310 bis 347, 360 bis 376 .

Gemischte BCD- und BNR-Untergruppe 260, 261

Diskrete Untergruppe 145 bis 147, 270 bis 276

Wartungs- und diskrete Datenuntergruppe 155, 156

Wartungsdaten Untergruppe 157 bis 161, 350 bis 354

Testwortuntergruppe 266, 277

Anwendungsabhängige Untergruppen 300 bis 307

Anerkennung Untergruppe 355

Wartung ISO #5 Untergruppe 356

ISO-#5-Nachrichtenuntergruppe 357

Ohh, jetzt verstehe ich! Ich habe derzeit 2 der 4 Etiketten, die ich benötige (204 und 210), suche aber immer noch nach den anderen 2 (Außenlufttemperatur und barometrischer Druck). Angenommen, ich bekomme die anderen beiden zwischen 202 und 227, müsste ich nicht identifizieren, um welches Format es sich handelt, ich könnte direkt mit der Übersetzung von Zweierkomplimenten (BNR) in Dezimalzahlen fortfahren?
Entschuldigen Sie auch, wenn dies eine dumme Frage ist, aber wenn ich am Ende ein Label von 376 bekomme, wie würde das übertragen, wenn die bnr-Darstellung 9 Bit lang ist? (etwas wie 0010000111)
Wissen Sie, welche Geräte-ID das Gerät verwendet, von dem Sie Daten empfangen?
Ja, die Geräte für den Einzelnen (glaube ich), ich habe es geschafft, ein Dokument mit einer Reihe von Etiketten mit Geräte-IDs zu finden. Die Eqpt-ID, die ich für 210 habe, ist 006 und 204 ist 060. Eine andere (möglicherweise dumme) Frage, sind Geräte-IDs einzigartig für den Luftdatencomputer? Bearbeiten: Egal, ich glaube, ich habe meine eigene Frage beantwortet, basierend auf dem, was ich gerade gelesen habe. Also ja, die eqpt-ID ist für das Avionikgerät eindeutig. Mein nächster Schritt sollte sein, die Eqpt-ID des Luftdatencomputers zu erhalten, von dem ich empfangen werde, richtig? wie kann ich das angehen? Ich sollte anmerken, dass mir der Luftdatencomputer derzeit nicht gerade zugänglich ist
Die Geräte-ID beschreibt, um welche Art von sendendem Computer es sich handelt. ID 006 ist Air Data System und ID 060 ist GNSS-Navigationseinheit. Für ID 006 – Etikett 210 ist die wahre Fluggeschwindigkeit in Knoten, 204 ist die barokorrigierte Höhe in Fuß.
Ohh, verstehe, also ist es nicht gerätespezifisch, sondern eher der Gerätetyp. Meinen Sie so etwas wie eine Seriennummer, die speziell die Marke und das Modell des Luftdatencomputers identifiziert?
Darf ich darauf zurückkommen? Mein Chef wäre derjenige mit diesen Informationen, aber er ist für eine Weile nicht im Büro ... Wäre es möglich, dass ich weiter herausfinde, wie ich diese arinc429-Frames entschlüsseln kann, bis ich die Marke und das Modell habe? des Flugdatenrechners?
Sicher, ich würde empfehlen, zuerst einen Blick auf diese kurze Übersicht zu werfen, die helfen sollte, zu erkennen, welche Bits den verschiedenen Teilen des ARINC 429-Wortes zugeordnet sind: aim-online.com/pdf/OVIEW429.PDF
Ihr Unternehmen könnte auch den Kauf des ARINC 429-Standarddokuments in Betracht ziehen, das die meisten verwendeten Standardkennzeichnungen und einige Beispiele zur Hilfe bei der Codierung/Decodierung definiert – aeec-amc-fsemc.com/cf/store/catalog_detail.cfm?item_id= 1940
Ich lese mir die Übersicht durch und werde das vollständige Standarddokument mit meinem Chef besprechen, wenn er zurückkommt. Enthält das vollständige Standarddokument alles über das ARINC 429-Protokoll? wie Etikettencodes mit eqpt-IDs, Methoden, die zum Decodieren und Codieren von Frames usw. verwendet werden können?
Außerdem ist mir aufgefallen, dass ein Datentyp erwähnt wird, der eine 2-Wege-Kommunikation verwendet ... als ich zuvor gelesen habe, habe ich gelesen, dass ARINC 429 eine Simplex-Kommunikation (unidirektional) verwendet. Würde ein Luftdatencomputer beim Versuch, Daten zu erfassen, automatisch übertragen, sobald er eingeschaltet ist, oder würde er einen Anforderungscode erfordern? Als ich herausfand, dass es Simplex-Kommunikation verwendete, nahm ich automatisch an, dass es nach dem Einschalten senden würde, weil ich keinen Triggerbefehl zurücksenden kann ...
ARINC 429 ist nur in eine Richtung, daher sind für die 2-Wege-Kommunikation zwei serielle ARINC 429-Verbindungen erforderlich - 1 Eingang und 1 Ausgang. Betrachten Sie es als eine Streaming-Schnittstelle. Der Sender sendet ständig Daten aus, ohne zu wissen, wer sie empfängt.
Ohh okay, also war ich richtig in der Annahme, dass es nach dem Einschalten automatisch mit der Datenübertragung beginnt, aber wie Sie sagten, es wird nicht wissen, wer es empfängt, es sendet nur? Also habe ich die Übersicht noch einmal gelesen und wow, hat es mir jemals geholfen, das Protokoll zu verstehen. Ich verstehe die Etiketten jetzt viel klarer. Für Etiketten weiß ich jetzt, dass die Etikettencodes Oktalwerte sind, nicht dezimal, und in 3 Sätzen von Oktalen binär gesendet werden (dh Etikett 210 wird als 100-001-10 gesendet).
Die einzigen Teile, über die ich noch etwas verwirrt bin, sind die Abschnitte über das Williamsburg/Buckhorn-Protokoll (WBP) und BNR-Daten. Können Sie mir für BNR Data den Skalierungsfaktor erklären? Ich konnte nicht verstehen, wie die Bits Bruchteile des Skalierungsfaktors verringerten. Wird es für WBP nur implementiert, wenn die Datenbits 21 überschreiten? Packt es im Wesentlichen einen Wortblock mit Wörtern, die die regulären Datenwörter mit den Wörtern SOT, GFI, EOT usw. enthalten? Müsste ich mich damit befassen, wie ich die Blöcke in ihre Wörter zerlege und identifiziere, welches ein Datenwort ist und welches nicht?
Ich bezweifle, dass Sie sich Gedanken über WBP machen müssen, da es eher für Dateiübertragungen als für typische ARINC 429-Daten verwendet wird.
Sehen Sie sich für den Skalierungsfaktor meine Antwort hier an: Aviation.stackexchange.com/a/37485/17732
Entschuldigung, ich bin immer noch etwas verwirrt über die Erklärungen zum Skalierungsfaktor in dem von Ihnen gesendeten Link. Aus der von Ihnen verlinkten Dokumentation und einem Video, das ich mir angesehen habe, kam ich auf die Idee, dass zur Identifizierung des Werts im Datenfeld decodiert werden würde, indem die Sig-Bits im Feld (die Einsen) identifiziert und der zugehörige Skalierungsfaktor dieses Index (1) multipliziert würden /2, 1/4, 1/8 usw.) durch den maximal möglichen Wert des identifizierten Labels. Außerdem ist Bit 29 das Vorzeichenbit. Ist das das richtige Verständnis?

Aus dem 32-Bit-ARINC-429-Wort wird das Label durch die Bits 1 bis 8 wie folgt codiert: Bits 1 bis 3 für die am wenigsten gewichtete Oktalziffer, Bits 4 bis 6 für die nächsthöhere und Bits 7 und 8 für die am meisten gewichteten Oktalziffern. Das Etikett wird also in Basis 8 und nicht in Basis 10 dekodiert, hier ein Beispiel. Zum Beispiel das folgende binäre Label: 11100110 Die 3 Bits 110 werden dekodiert 0+2+4=6 Die 3 Bits 100 werden dekodiert 0+0+4=4 Die zwei Ziffern 11 werden dekodiert 1+2=3 Das Label ist also 346 Hinweis: Wenn alle Bits auf 1 gesetzt sind, ist das größte Label also 377. Natürlich können Sie mehr als 377 Parameter übertragen, da ähnliche Parameter aus unterschiedlichen Quellen oder Sensoren, z. B. AOA links, AOA rechts, das gleiche Label haben. Um ähnliche Parameter mit unterschiedlichen Quellen zu unterscheiden,