Als Controller auf IVAO weise ich manchmal Codes wie 0168 zu und stelle später fest, dass der Code nicht gültig ist. Für mich erscheint der Bereich 0-9 logischer. Warum müssen wir Oktalzahlen und keine Dezimalzahlen verwenden?
Als Controller auf IVAO weise ich manchmal Codes wie 0168 zu und stelle später fest, dass der Code nicht gültig ist. Für mich erscheint der Bereich 0-9 logischer. Warum müssen wir Oktalzahlen und keine Dezimalzahlen verwenden?
Der vierstellige Transpondercode, der von einem Piloten eingegeben wird, ist eher eine Oktalzahl als eine Dezimalzahl, und im Oktalnummerierungssystem sind nur die Ziffern 0-7 gültig.
Was warum betrifft, handelt es sich intern tatsächlich um eine 12-Bit-Binärzahl, und das Oktal funktioniert sehr gut, da es als "Verknüpfung" für die Eingabe von Gruppen mit jeweils drei Binärziffern verwendet werden kann (000 - 111, das ist 0-7 in Oktal).
Wenn es heute entworfen würde, mit der zusätzlichen verfügbaren Rechenleistung und Softwarekomplexität, wäre es möglich, eine Dezimalzahl zu verwenden, selbst wenn dies der Fall ist intern als binär gespeichert, nur damit es vertrauter ist. Zum Zeitpunkt der Erstellung des Systems wäre es jedoch viel komplexer / schwieriger / teurer gewesen, die Wählscheiben direkt in der Hardware zu ändern und die Konvertierung durchzuführen.
Kurz gesagt, es war für die Ingenieure praktisch und Hersteller, und nur eine Kuriosität für die Endbenutzer, so ließen sie es so.
Die Oktaldarstellung ist eine kostengünstige Möglichkeit, mit kleinen Binärzahlen umzugehen.
Die Transponder der Modi A und C senden ihre ID mithilfe einer Folge von Impulsen eines nicht modulierten Trägers, die sichtbar sind als eine Folge von Bits. Heutzutage verwenden solche Transponder 12 Impulse (Modus S-Transponder verwenden eine andere 24-Bit-Adresse):
Quelle sup>
Impulse sind mit A4-A2-A1, B4-B2-B1, C4-C2-C1 und D4-D2-D1 (verschachtelt in) gekennzeichnet die Übertragung). Sie sind in zwei Rahmenimpulsen für die Synchronisation von Sender und Empfänger enthalten, und es gibt einen zusätzlichen Impuls X in der Mitte, der heute immer bei 0 liegt, aber in den Glanzzeiten von Herstellern als benutzerdefinierte Daten verwendet wird (z. B. um ATC die Position von zu melden ein einziehbares Fahrwerk).
Dem Transponder muss auf irgendeine Weise der Wert jedes Bits mitgeteilt werden. Heutzutage wäre es kein Problem, die ID als Dezimalzahl (zwischen 0 und 4095) einzugeben, aber als der Transponder Jahrzehnte vor der Ankunft kostengünstiger programmierbarer Chips erfunden wurde, war ein zuverlässiger Konverter ein kostspieliges Gerät. P. >
Andererseits war es nicht möglich, nur die 12 Werte mit Ein / Aus-Schaltern bereitzustellen:
Beispiel von Miniaturschaltern, Quelle sup>
Offensichtlich wären zahlreiche Fehler aufgetreten, entweder während der stimmlichen Übertragung der ID oder bei der Eingabe der ID.
Die einfachste Lösung, die im Umgang mit Bits häufig verwendet wird, besteht darin, sie zu gruppieren und jeder möglichen Kombination in der Gruppe ein einzelnes Symbol zuzuordnen.
Es wäre gut, Gruppen mit 10 Kombinationen zu verwenden, wir haben bereits Symbole "0" bis "9", um sie darzustellen. Leider erhalten wir beim Gruppieren von Bits nach zwei Gruppen mit jeweils 4 Kombinationen. Wenn wir nach drei Bits gruppieren, haben die Gruppen 8 Kombinationen. Um vier haben die Gruppen 16 Kombinationen usw.
Da es sich um eine Zahl handelt, die in radix 2 ausgedrückt wird, ist die Anzahl der zu verwendenden Symbole immer eine Zweierpotenz, niemals eine Zehnerpotenz. Daher hatten die Ingenieure zu diesem Zeitpunkt keine Wahl , als die Dezimalzahlen zu vergessen und eine ungerade Anzahl von Kombinationen zu verwenden. Als Beispiel gruppieren wir uns nach 2 Bits und verwenden griechische Buchstaben für die erforderlichen 4 Symbole:
Wir wären schlechte Designer, um zu produzieren dies (bis auf ein Remake von Airplane!), aber Sie haben das Prinzip. Um das System einfach zu halten, können wir Dezimalzahlensymbole verwenden, wenn wir höchstens 10 Symbole benötigen, und Buchstaben hinzufügen, wenn wir mehr benötigen. Dies ist genau das, was getan wird, wenn Zahlen in Oktal- (3-Bit-Gruppen) und Hexadezimal-Radices (4-Bit-Gruppen) geschrieben werden.
Wie in anderen hervorragenden Antworten erläutert, hatten die ersten Transponder nur 6 Bit für ihre ID, also Oktal war die vernünftige Wahl, und IDs wurden als 2 Oktalzahlen dargestellt, z "75", um "111 101" darzustellen. Als die ID-Länge erweitert wurde, wurde das Oktalsystem weiterhin verwendet.
Falls Sie an den Details der Verwendung von Oktal interessiert sind, schlage ich unten Details vor.
Technische Spezifikation: eine 12-Bit-Binärzahl und 4096-Werte
Das Transponder-Funksignal für die ID-Übertragung besteht aus 12 Impulsen (Modi A / C), die niedrig oder niedrig sein können hoch, dies ermöglicht 4096 ( $ 2 ^ {\ small {12}} $ span>) Kombinationen.
Da die Impulse nur zwei Zustände haben, niedrig oder hoch, können wir sie direkt als 12-Bit-Binärzahl zwischen 0 und 4095 bezeichnen. Lassen Sie uns mit einigen Werten veranschaulichen:
Wir können links so viele 0 hinzufügen, wie wir möchten (z. B. 12 Bits), wie wir es in Dezimalzahlen tun: 25 = 025 = 000255.
Oktale und hexadezimale Darstellungen von Binärzahlen
Der Einfachheit halber ersetzen wir normalerweise Bitgruppen durch Äquivalente, um die Anzahl der verwendeten Zeichen zu verringern. Es ist üblich, Gruppen von 3 und 4 Bits zu verwenden:
Oktal : Eine Gruppe von 3 Bits kann 8 Kombinationen erzeugen. Wir können diese Gruppe leicht durch eine einzelne Zahl in Radix 8 ersetzen, um diese Kombinationen abzudecken. Radix 8 heißt " oktal".
Hexadezimal : In ähnlicher Weise generiert eine Gruppe von 4 Bits 16 Kombinationen (doppelt so viele Kombinationen für eine Gruppe) von 3, da die beiden Werte des zusätzlichen Bits allen 3-Bit-Kombinationen zugeordnet werden können. Wir können die 4 Bits einer Gruppe durch eine Zahl in Radix 16 ersetzen. Ein solches System heißt " hexadezimal "Nummerierung.
Zurück zu unseren Beispielen, wobei die Bitgruppen durch ihre Entsprechungen in Radix 8 und 16 ersetzt werden:
Wählen Sie den zu verwendenden Radix aus.
Was haben wir bisher? Wir haben mit einem begonnen 12-Bit-Zahlen, gruppierte Bits entweder nach 3 oder 4, erhielten den Oktalwert (0000 bis 7777) und den Hexadezimalwert (000 bis fff), zwei Darstellungen derselben Binärzahl.
Welches ist besser? in diesem Fall? Die Antwort wurde in anderen ausgezeichneten Beiträgen gegeben: Zu Beginn wurden nur 6 Impulse für die ID zugewiesen. Logischerweise wurden sie nach 3 gruppiert und Oktal war gewählt.
Wenn es 7 Impulse gegeben hätte, wäre wahrscheinlich die hexadezimale Darstellung mit Werten von 00 bis 7f ausgewählt worden.
Vom Radix zum elektromechanischen Schalter
Es ist einfach, einen Radschalter (Daumenrad) mit 8 Oktalsymbolen zu entwerfen, der 3 tatsächliche Schalter verwaltet, um 3 elektrische Ein / Aus-Signale (niedrig / hoch) zu erzeugen:
Quelle sup>
Wir verwenden die Winkelposition des Rads, um die drei Kontakte zu schließen oder zu öffnen. Es gibt viele Designs, um dies zu tun. Eine besteht darin, Pinsel zu verwenden, die sich über eine Disc mit gedruckten leitenden Spuren drehen:
Source sup>
Die Schalter stellen direkt die Binärgruppe bereit. Durch Zusammenbau von vier Schaltern könnten wir dem Transponder den "Squawk" -Code geben, dh die binäre Konfiguration für die ID-Impulse.
Es ist genauso einfach, 3 hexadezimale Räder mit 4 Kontakten zu verwenden.
Warum nicht 10 Symbole?
Wir können Bits einer Binärzahl nicht in Gruppen gruppieren, die genau 10 Kombinationen haben können. Diese Eigenschaft ist auf die Leistung von 2 Radix (4, 8, 16, 32 ...) beschränkt.
Mit der Einführung integrierter Schaltkreise (so einfach wie Speicher) war es später möglich, recht einfach Dezimalzahlen umzuwandeln zu binär. Der 74S484 war einer dieser ICs. Es könnte zwei Eingaben verarbeiten, die Dezimalwerte darstellen (" binär codierte Dezimalzahl", BCD) und diese in reine Binärwerte konvertieren. Der Konverter für 4 Dezimalzahlen (0 bis 4095) würde unter Verwendung von 5 dieser Schaltungen so ausgelegt sein:
Wie Sie sehen, ist es einfacher, nur 8 Symbole ( $ 2 ^ {\ small {3}} $ span>) oder 16 ( $ 2 ^ {\ small {4}} $ span>) und allgemein eine Zweierpotenz.
Es ist legitim zu glauben, wir könnten auch eine Logik verwenden, die auf einfachen Booleschen Gattern (NAND) basiert , XOR ...), um die Konvertierung von dezimal nach binär anstelle eines Speichers zu verwalten. Dies ist auf den ersten Blick nicht ersichtlich, würde aber tatsächlich eine große Anzahl von Toren erfordern.
Um überzeugt zu sein, habe ich die Übung nur für ein einziges Bit (von 12) und nur für durchgeführt zwei Dezimalräder von 4. Ich habe die Details der Übung entfernt, aber sie sind im Bearbeitungsverlauf zu sehen. Hier ist das Ergebnis:
Durch die Minimierung konnte die Anzahl der Terme (daher Gates) auf 10 reduziert werden. Dies ist jedoch nur dies für ein Bit und zwei Räder. Manchmal lohnt es sich einfach nicht, sich zusätzlich an die Dezimalstelle zu halten, insbesondere zu einer Zeit, als es keine ICs gab.
Die einfache Antwort lautet, dass ein Transponder im Modus A oder C 12 Bits an Identifikationsdaten zulässt und drei Bits als oktale Ziffer beschrieben werden können. Daher gibt es vier Oktalziffern, von denen der Bereich zwischen 0000 und 7777 liegt.
Die Frage hat sich geändert, daher ergänze ich diese Antwort. Die Konvention der Verwendung von Oktalzahlen für Transpondercodes geht auf eine frühere Implementierung von Transpondern zurück, die 6 Bit Flugzeugidentifizierungsdaten enthielten. Es wurde beschlossen (ich glaube von einem COTR mit weißem Hemd), mit oktalen Ziffern zu arbeiten. Der Umgang mit Computern, Oktal oder Hex ist einfacher als Dezimal. Später wurde das Identifikationsfeld des Transponderflugzeugs zu 12 Bit, und die Oktalkonvention wurde beibehalten. Es ist eine Konvention und wurde beibehalten.
Ergänzend: Ich erinnere mich an einen Transponder, der vor dem 12-Bit-Standard 6 Kippschalter zur Eingabe des Codes hatte. Die Schalter waren durch Dreien mit 4-2-1 darunter markiert. Zurück vor der Computerkenntnis der Massen kann man einmal die Auswahl von Ziffern spekulieren, anstatt beispielsweise Hex, die bei der Entwicklung der IFF- und Transpondertechnologie berücksichtigt wurden. Ein VFR-Squawk-Code könnte als 12 eingegeben werden, bei der 1 am höchsten und 1 am wenigsten signifikant hochgeschaltet wird. Ich erinnere mich, dass Sekundärradar das gleiche wie 1200 zeigt, obwohl es von einem Transponder ohne den 12-Bit-Standard stammt. 77 oder alle Schalter waren für Notfälle vorgesehen, und 76 und 75 sind jeweils den heutigen Codes 7700, 7600 und 7500 zugeordnet.
Durch Eingabe von Squawk-Codes in Oktal oder Basis-8, wobei die zulässigen Ziffern 0 bis 7 sind, wird die Mensch-Maschine-Schnittstelle erstellt zwischen Pilot und Transponder so einfach wie möglich.
Modus A und Modus C kompatible Transponder verwenden 12-Bit-Identitäts- oder Beacon-Codes. Jedes Bit verfügt über zwei Optionen, hoch oder niedrig, die insgesamt 2 12 sup> = 4.096 darstellbare ( dh , die innerhalb von 12 passen) ergeben Bits) Bezeichner im Bereich von 0 bis 4.095 in Basis-10, geschrieben 4095 10 sub>. Jetzt sind nicht alle darstellbaren Kennungen gültig . Zum Beispiel ist 7500 8 sub> für bestimmte Situationen reserviert, aber das ist nicht für die Schaltung zu befürchten.
Mengen, die genau in eine bestimmte Anzahl von Bits passen, werden nicht sauber ausgerichtet mit Zehnerpotenzen. Stellen Sie sich einen hypothetischen Transponder vor, der vier Dezimalstellen 0000 bis 9999 oder 10 sup> = 10.000 mögliche Eingaben akzeptiert. Es ist wahrscheinlicher, dass der Pilot ein falsches Kreischen von Hand staut als ein darstellbares. Diese "einfachere" Schnittstelle hat jetzt eine Fehlerbedingung, mit der sie sich befassen muss: darstellbare und nicht darstellbare Eingaben. Wie antwortet der Transponder, wenn der Pilot die Wählscheiben auf etwas über 4095 tippt oder dreht? Sollte eine Fehleranzeige blinken, die der Pilot möglicherweise übersehen hat? Wie soll es auf die Befragung in einem schlechten Zustand antworten? Den Beacon-Code stillschweigend auf alle hohen Bits klemmen (111 111 111 111 2 sub> = 4095 10 sub> = 7777 8 sub>)? Nicht mehr ganz antworten? Mehr Modi bedeuten mehr Tests und mehr Kosten.
„Ah“, denkt der clevere Ingenieur der alten Schule. „Keine ausgefallenen Knöpfe mehr; Wir geben dem Zifferblatt ganz links nur fünf Positionen, 0 bis 4. “Aber was ist mit dem zweiten Zifferblatt, das 0 sein muss, wenn das erste 4 ist, aber ansonsten eine beliebige Ziffer sein kann?
Wir müssen zwölf Bits füllen. Vielleicht gibt der Pilot die Binärdatei direkt ein. "Cessna 123AB, kreischen Sie Null-Null-Eins-Null-Eins-Null-Null-Null- ..." Stellen Sie sich die Frequenzüberlastung mit so langen Anweisungen, Rücklesungen, Korrekturen und Bestätigungen vor.
Unsere Kurz- Das Term Memory ist gut für ungefähr sieben Elemente, zwei geben oder nehmen. Zwölf Binärziffern („Bits“) sind zu unhandlich. Andere Faktoren von 12 sind 6 × 2 und 4 × 3.
Das Faktorisieren der zwölf Identitätsbits in sechs und zwei Mittel-Squawk-Codes in entweder zwei 6-Bit-Mengen (0-63) oder sechs 2-Bit-Mengen (0). 0-3) Stücke. Stellen Sie sich vor, Sie haben früher mit Zifferblättern mit 64 Positionen gearbeitet. Wenn wir dies mit Dezimalschaltflächen tun, kehren wir zum Problem der nicht darstellbaren Codes zurück. Sechs Wählscheiben mit jeweils 0 bis 3 können funktionieren, aber das verkleinert die Wählscheiben und zwingt den Piloten, sich der Grenze des Kurzzeitgedächtnisses zu nähern, was diese Option fehleranfällig und damit weniger wünschenswert macht.
Drei Gruppen von 4-Bit- oder hexadezimalen Größen könnten funktionieren. Obwohl Hex-Werte im Bereich von 0 bis 15 10 liegen, besteht eine übliche Konvention darin, die Ziffern 0 bis 9 und dann A bis F für zehn bis fünfzehn zu verwenden. Mit anderen Worten, wir haben nur eine Ziffer pro Stelle, aber früher hätte das die Verwendung von 16-stelligen Zifferblättern bedeutet. Heute würde das sechzehn Knöpfe auf der Vorderseite des Transponders bedeuten. "Ansatz, Cessna Baum-Alpha-Bravo erklärt einen Notfall und kreischt Foxtrott-Charlie-Null für diesen Charlie Foxtrott!" hat einen mnemonischen Wert.
Wenn wir es andersherum betrachten, haben wir vier Gruppen von drei Bits. In Binärform sind Ortswerte Zweierpotenzen (keine Zehnerpotenzen, wie wir es gewohnt sind, dezimal zu denken). Bei einer Arbeit mit jeweils drei Bits beträgt der Maximalwert für jede Beacon-Code-Ziffer
$$ (1 \ cdot 2 ^ 2 = 4) + (1 \ cdot 2 ^ 1 = 2) + (1 \ cdot 2 ^ 0 = 1) = 7 $$
Hier finden wir mehrere Vorteile:
Die 12 Bits wurden durch das System-Timing und die Genauigkeit der zu diesem Zeitpunkt verfügbaren Impulserzeugungs- und -verarbeitungstechnologie gesetzt. Nachdem sie 12 Bits gesetzt hatten, hätten sie 0 bis 4095 machen können, aber das hätte spezielle Schalter und / oder Getriebe für die Anzeige erforderlich gemacht. Um die Dinge einfach zu halten, verwendeten sie Octal mit 4 einfachen 8 Positionsschaltern.
In Computersystemen ist alles binär. Dies liegt daran, dass die Logikschaltung nur 2 Zustände hat, Hoch- und Niederspannung. Aus diesem Grund wäre es nicht so einfach, Dezimalzahlen in Binärzahlen umzuwandeln wie Oktal- oder Hexadezimalzahlen.