Pytanie:
Dlaczego zakres cyfr transpondera wynosi od 0 do 7, a nie od 0 do 9?
Hugo Woesthuis
2017-04-28 01:04:42 UTC
view on stackexchange narkive permalink

Jako kontroler w IVAO czasami przypisuję kody takie jak 0168 i później dowiaduję się, że kod jest nieprawidłowy. Dla mnie zakres 0-9 wydaje się bardziej logiczny. Dlaczego musimy używać liczb ósemkowych, a nie dziesiętnych?

Możliwy duplikat [Dlaczego transpondery wprowadzają kody zamiast używać numerów rejestracyjnych samolotu?] (Https://aviation.stackexchange.com/questions/30483/why-do-the-transponders-introduce-codes-instead-of-using -rejestracja-statku powietrznego-n)
Sześć odpowiedzi:
Lnafziger
2017-04-28 01:05:53 UTC
view on stackexchange narkive permalink

Czterocyfrowy kod transpondera, który jest wprowadzany przez pilota, jest liczbą ósemkową , a nie liczbą dziesiętną, aw systemie liczb ósemkowych prawidłowe są tylko cyfry 0-7.

Jeśli chodzi o dlaczego , wewnętrznie jest to 12-bitowa liczba binarna, a ósemkowa działa bardzo dobrze, ponieważ może być używana jako „skrót” do wprowadzania grup składających się z trzech cyfr binarnych naraz (000 - 111, czyli 0-7 ósemkowo).

Gdyby został zaprojektowany dzisiaj, z dostępną dodatkową mocą obliczeniową i złożonością oprogramowania, byłoby możliwe użycie liczby dziesiętnej, nawet jeśli jest przechowywany wewnętrznie jako plik binarny, aby był bardziej znany. Jednak w czasie gdy system był tworzony, zmiana pokręteł bezpośrednio ustawiała kod w sprzęcie, a konwersja byłaby znacznie bardziej złożona / trudna / kosztowna.

Krótko mówiąc, było to wygodne dla inżynierów i producentów, co jest dziwne dla użytkowników końcowych, więc zostawili to w ten sposób.

Ponadto, nawet jeśli w dzisiejszych czasach byłoby możliwe użycie kodowania dziesiętnego, z tarczami, które pozwalają na ustawienie 0000 ... 4095, musiałbyś zapobiec ustawieniu 4096 ... 4999 (lub 9999, jeśli nie ograniczysz pierwszego wybierania do 0 ... 4). Używając tarcz ósemkowych, nie możesz wybrać poza prawidłowym zakresem 0000 ... 7777.
Na marginesie; Z tego samego powodu adresy IPv4 zawierają 4 liczby 0-255 (opcje 2 ^ 8), adresy MAC są zapisywane jako zestaw par szesnastkowych (2 ^ 8 opcji w zakresie od 00 do FF). Oba są używane ze względu na bardzo łatwą konwersję z / do systemu binarnego. Ponieważ użytkownik nie wykonuje żadnych obliczeń z takimi adresami, nie ma to żadnej wady.
„Gdyby został zaprojektowany dzisiaj…” użyliby 24-bitowych kodów szesnastkowych :)
@J.Hougaard Niekoniecznie, jak wspomniał Crowley w swoim komentarzu, adresy IP są powszechnie określane w postaci dziesiętnej, mimo że są przechowywane jako kody 24-bitowe ... :)
@Lnafziger Miałem na myśli tryb-S
Chcę głosować za tą odpowiedzią, ale jej wartość wynosi dokładnie 2 ^ 6 i po prostu nie mogę zniszczyć tej pięknej liczby i ośmielę się każdego, kto ją popiera!
mins
2017-04-28 03:16:02 UTC
view on stackexchange narkive permalink

Reprezentacja ósemkowa to tani sposób radzenia sobie z małymi liczbami binarnymi

Transpondery trybu A i C wysyłają swoje ID za pomocą ciągu impulsów niemodulowanej nośnej, co można zobaczyć jako sekwencja bitów. Dziś takie transpondery używają 12 impulsów (transpondery trybu S używają 24-bitowego adresu, który jest inny):

enter image description here
Źródło

Impulsy są oznaczone jako A4-A2-A1, B4-B2-B1, C4-C2-C1 i D4-D2-D1 (przeplatane transmisja). Są one zawarte w dwóch impulsach ramkowania w celu synchronizacji nadajnika-odbiornika, a dodatkowy impuls X w środku, zawsze na poziomie 0 dzisiaj, ale używany w czasach świetności jako niestandardowe dane przez producentów (np. Do raportowania do ATC pozycji chowane podwozie).

Transponderowi trzeba w jakiś sposób podać wartość każdego bitu. Dziś nie byłoby problemu z wprowadzeniem identyfikatora w postaci liczby dziesiętnej (od 0 do 4095), ale kiedy wynaleziono transponder, dziesiątki lat przed pojawieniem się niedrogich programowalnych chipów, niezawodny konwerter był kosztownym urządzeniem.

Z drugiej strony nie było możliwości podania tylko 12 wartości za pomocą przełączników On / Off:

enter image description here
Przykład miniaturowych przełączników, źródło

Oczywiście błędy byłyby liczne, zarówno podczas głosowej transmisji identyfikatora, jak i podczas jego wprowadzania.

Najprostszym szeroko stosowanym rozwiązaniem w przypadku bitów jest pogrupowanie ich i przypisanie pojedynczego symbolu do każdej możliwej kombinacji w grupie.

Dobrze byłoby użyć grup z 10 kombinacjami, mamy już symbole „0” do „9”, aby je reprezentować. Niestety, grupując bity po dwa, otrzymujemy grupy po 4 kombinacje każda. Jeśli pogrupujemy według trzech bitów, grupy mają 8 kombinacji. Po czterech, grupy mają 16 kombinacji itd.

Ponieważ mamy do czynienia z liczbą wyrażoną w radix 2, liczba używanych symboli to zawsze potęga dwóch, nigdy 10. Tak więc inżynierowie nie mieli wtedy wyboru , niż zapomnieć o liczbach dziesiętnych i użyć nieparzystej liczby kombinacji. Na przykład pogrupujmy według 2 bitów i użyjmy greckich liter jako wymaganych 4 symboli:

enter image description here

Bylibyśmy kiepskimi projektantami, gdybyśmy produkowali to (z wyjątkiem przeróbki Samolot!), ale masz zasadę. Aby system był prosty, możemy użyć liczb dziesiętnych, jeśli potrzebujemy maksymalnie 10 symboli, i uzupełnić litery, jeśli potrzebujemy więcej. To jest dokładnie to, co się robi, gdy liczby są zapisywane w postaci ósemkowej (grupy po 3 bity) i szesnastkowej (grupy po 4 bity).

Jak wyjaśniono w innych doskonałych odpowiedziach, pierwsze transpondery miały tylko 6 bitów ID, więc ósemkowe było rozsądnym wyborem, a identyfikatory zostały przedstawione jako 2 cyfry ósemkowe, np „75”, aby reprezentować „111 101”. Po wydłużeniu identyfikatora system ósemkowy pozostał w użyciu.

Jeśli interesują Cię szczegóły użycia ósemkowego, proponuję szczegóły poniżej.


Specyfikacja techniczna: 12-bitowa liczba binarna i 4096 wartości

Sygnał radiowy transpondera do transmisji ID składa się z 12 impulsów (tryby A / C), które mogą być niskie lub high, pozwala to na 4096 ( $ 2 ^ {\ small {12}} $ ) kombinacji.

Ponieważ impulsy mają tylko dwa stany, niski lub wysoki, możemy je bezpośrednio odnieść do 12-bitowej liczby binarnej z przedziału od 0 do 4095. Zilustrujmy to kilkoma wartościami:

enter image description here

Możemy dodać tyle 0 po lewej stronie, ile chcemy (np. aby mieć 12 bitów), tak jak dziesiętnie: 25 = 025 = 00025.

Reprezentacje liczb binarnych w formacie ósemkowym i szesnastkowym

Dla wygody zwykle zastępujemy grupy bitów jakimś odpowiednikiem, aby zmniejszyć liczbę używanych znaków. Często używa się grup 3 i 4 bitowych:

enter image description here

Ósemkowe : grupa 3 bitów może wygenerować 8 kombinacji, możemy łatwo zastąpić tę grupę pojedynczą liczbą w podstawie 8, aby pokryć te kombinacje. Radix 8 nosi nazwę „ ósemkowa” numeracji.

Szesnastkowy : Podobnie grupa 4 bitów generuje 16 kombinacji (dwukrotność liczby kombinacji dla grupy 3, ponieważ dwie wartości dodatkowego bitu mogą być skojarzone ze wszystkimi 3-bitowymi kombinacjami. Możemy zastąpić 4 bity grupy liczbą w podstawie 16. Taki system nosi nazwę " szesnastkowo "numeracja.

enter image description here

Wracając do naszych przykładów, zastępując grupy bitów ich odpowiednikami w podstawach 8 i 16:

enter image description here

Wybierz, której podstawy użyć

Co mamy do tej pory? Zaczęliśmy od Liczba 12-bitowa, pogrupowana bity po 3 lub 4, otrzymała wartość ósemkową (od 0000 do 7777) i wartość szesnastkową (od 000 do fff), dwie reprezentacje tej samej liczby binarnej.

Która z nich jest lepsza w tym przypadku? Odpowiedź została udzielona w innych znakomitych postach: Na początku było tylko 6 impulsów przydzielonych do ID. Logicznie zostały one pogrupowane według 3 i ósemkowo

Gdyby było 7 impulsów, prawdopodobnie wybrana byłaby reprezentacja szesnastkowa z wartościami od 00 do 7f.

Od podstawy do przełącznika elektromechanicznego

Łatwo jest zaprojektować przełącznik kołowy (pokrętło) z 8 symbolami ósemkowymi, który zarządza 3 rzeczywistymi przełącznikami do generowania 3 sygnałów elektrycznych włączania / wyłączania (niski / wysoki):

enter image description here
Źródło

Do zamykania lub otwierania trzech styków używamy położenia kątowego koła. Jest wiele sposobów, aby to zrobić, jednym z nich jest użycie pędzli obracających się nad dyskiem z nadrukowanymi ścieżkami przewodzącymi:

enter image description here
Źródło

Przełączniki zapewniają bezpośrednio grupę binarną. Montując cztery przełączniki, moglibyśmy dostarczyć transponderowi kod „squawk”, czyli konfigurację binarną dla impulsów ID.

Tak łatwo jest użyć 3 kół szesnastkowych z 4 stykami.

Dlaczego nie 10 symboli?

Nie możemy grupować bitów liczby binarnej w grupy, które mogą mieć dokładnie 10 kombinacji. Ta właściwość jest ograniczona do potęgi 2 radix (4, 8, 16, 32 ...)

Później, wraz z wprowadzeniem układów scalonych (tak prostych jak pamięci), można było przekształcić dość łatwo dziesiętnie do binarnego. 74S484 był jednym z takich układów scalonych. Mógł obsługiwać dwa wejścia reprezentujące wartości dziesiętne („ kod dziesiętny kodowany binarnie”, BCD) i konwertować je na czysty binarny. Konwerter dla 4 cyfr dziesiętnych (od 0 do 4095) zostałby zaprojektowany w następujący sposób, wykorzystując 5 z tych obwodów:

enter image description here


Jak widać, prostsze jest użycie tylko 8 symboli ( $ 2 ^ {\ small {3}} $ ) lub 16 ( 2 $ ^ {\ small {4}} $ ), a bardziej ogólnie potęga dwójki.

Uzasadnione jest myślenie, że moglibyśmy również użyć logiki opartej na prostych bramkach boolowskich (NAND , XOR ...) do zarządzania konwersją z dziesiętnego na binarny zamiast pamięci. Nie jest to widoczne na pierwszy rzut oka, ale w rzeczywistości wymagałoby to ogromnej liczby bramek.

Aby być przekonanym, wykonałem ćwiczenie tylko dla jednego kawałka (z 12) i tylko dwa koła dziesiętne na 4. Usunąłem szczegóły ćwiczenia, ale można je zobaczyć w historii zmian. Oto wynik:

enter image description here

Minimalizacja pozwoliła zmniejszyć liczbę terminów (stąd bramek) do 10. Jednak jest to tylko na jeden bit i dwa koła. Czasami po prostu nie jest warte dodatkowej trudności, szczególnie w czasach, gdy nie było układów scalonych, aby trzymać się ułamka dziesiętnego.

Inżynier dużo? :) Doskonałe wyjaśnienie!
Dlaczego do licha miałbyś teraz przeprojektowywać, używając tak skomplikowanej technologii z lat 70., kiedy wszystko, czego potrzebujesz, to prosta klawiatura i mikrokontroler - tylko 10 $ za oba, w porównaniu z co najmniej \ 50 $ za części do budowy tego muzeum? Zakładając, że możesz nawet pozyskać części - chip 74S484 jest dawno wycofany z produkcji, chociaż istnieją bardziej nowoczesne odpowiedniki.
@alephzero: To jest odpowiedź edukacyjna, musi przedstawiać koncepcje, a nie stan wiedzy. A tak przy okazji, „prosta klawiatura i mikrokontroler” są droższe niż myślisz w świecie lotnictwa, musisz je certyfikować. To nie jest świat, w którym możesz zadzwonić do Apple, aby powiedzieć im, że masz problem.
To znacznie lepsza odpowiedź niż Lnafziger.
@TylerDurden Uważam, że to zależy od poziomu technicznego czytelnika, a ta odpowiedź będzie lepsza dla osoby bardziej technicznej (takiej jak my), podczas gdy moja odpowiedź będzie lepiej dopasowana do typów mniej technicznych. Kiedy odpowiadam na pytanie, używam złożoności odpowiedniej do pierwotnego pytania, a sformułowanie jego pytania sprawiało, że wydawało się, że nie potrzebował takiego poziomu szczegółowości. Dobra informacja dla innych, ale z pewnością pozytywnie zagłosowałem za tą odpowiedzią, aby okazać wdzięczność za informacje i wysiłek, jaki w nią włożył! :)
mongo
2017-04-28 01:07:07 UTC
view on stackexchange narkive permalink

Prosta odpowiedź jest taka, że ​​transponder w trybie A lub C dopuszcza 12 bitów danych identyfikacyjnych, a trzy bity można opisać jako cyfrę ósemkową. Dlatego są cztery cyfry ósemkowe, z zakresu od 0000 do 7777.

Pytanie uległo zmianie, więc uzupełniam tę odpowiedź. Konwencja używania liczb ósemkowych dla kodów transponderów sięga wcześniejszej implementacji transponderów, które miały 6 bitów danych identyfikujących statek powietrzny. Zdecydowano (wydaje mi się, że przez jakiś COTR w białej koszuli) zastosowano cyfry ósemkowe. Radzenie sobie z komputerami, ósemkowe lub szesnastkowe jest łatwiejsze niż dziesiętne. Później pole identyfikacyjne samolotu transpondera stało się 12-bitowe i zachowano konwencję ósemkową. Jest to konwencja i została utrzymana.

Uzupełnienie: Pamiętam transponder, który miał 6 przełączników do wprowadzania kodu, przed standardem 12-bitowym. Przełączniki były oznaczone trójkami z 4-2-1 pod nimi. Jeszcze przed opanowaniem umiejętności obsługi komputera przez masy, kiedyś można było spekulować na temat wyboru cyfr, a nie na przykład szesnastkowej, branej pod uwagę jako rozwijanej technologii IFF i transpondera. Kod squawk VFR można wprowadzić jako 12, co oznaczałoby najbardziej znaczące 1 przełączenie w górę i najmniej znaczące 2 przełączenie w górę. Pamiętam, że radar wtórny pokazuje, że to samo co 1200, mimo że pochodzi z transpondera bez standardu 12-bitowego. 77 lub wszystkie przełączniki w górę dotyczyły sytuacji awaryjnych, a 76 i 75 wszystkie odpowiednio mapowane na współczesne kody 7700, 7600 i 7500.

Greg Bacon
2017-04-28 20:13:15 UTC
view on stackexchange narkive permalink

Krótka odpowiedź

Wprowadzenie kodu squawk w ósemkowej lub podstawie-8, gdzie dopuszczalne cyfry to od 0 do 7, tworzy interfejs człowiek-maszyna między pilotem a transponderem tak prosto, jak to tylko możliwe.

Tło

Transpondery kompatybilne z modemem A i modem C używają 12-bitowych kodów identyfikacyjnych lub sygnałów nawigacyjnych. Każdy bit ma dwie opcje, wysoką lub niską, co daje łącznie 2 12 = 4 096 reprezentowalnych ( tj. , które mieszczą się w 12 bitów), w zakresie od 0 do 4095 w bazie 10, zapisane 4095 10 . Teraz nie wszystkie reprezentowalne indentyfikatory są prawidłowe . Na przykład 7500 8 jest zarezerwowane dla określonych sytuacji, ale nie jest to powodem do zmartwienia obwodów.

Ilości, które mieszczą się dokładnie w pewnej liczbie bitów, nie są wyrównane z mocą dziesięciu. Rozważmy hipotetyczny transponder, który akceptuje cztery cyfry dziesiętne od 0000 do 9999 lub 10 4 = 10 000 możliwych danych wejściowych. Jest bardziej prawdopodobne, że pilot zagłuszy fałszywy pisk niż reprezentatywny. Ten „prostszy” interfejs ma teraz warunek błędu, z którym musi sobie poradzić: reprezentowalne i nieprzedstawialne dane wejściowe. Jeśli pilot wpisze lub przekręci pokrętła do wartości powyżej 4095, w jaki sposób transponder odpowie? Czy powinno migać lampka błędu, którą pilot może przegapić? Jak powinien odpowiadać na przesłuchanie, gdy jest w złym stanie? Cicho przypnij kod nawigacyjny do wszystkich wysokich bitów (111 111 111 111 2 = 4095 10 = 7777 8 )? Przestać całkowicie odpowiadać? Więcej trybów oznacza więcej testów i większe koszty.

Kompromisy

„Ach”, myśli sprytny inżynier ze starej szkoły. „Nigdy więcej fantazyjnych guzików; damy skrajnej lewej tarczy tylko pięć pozycji, od 0 do 4. ”Ale co z drugą tarczą, która musi wynosić 0, gdy pierwsza to 4, ale w przeciwnym razie może być dowolną cyfrą?

Mamy do wypełnienia dwanaście bitów. Być może pilot wchodzi bezpośrednio do pliku binarnego. „Cessna 123AB, pisk zero-zero-jeden-zero-jeden-zero-zero-zero-…” Wyobraź sobie przeciążenie częstotliwości z tak długimi instrukcjami, odczytami, korektami i potwierdzeniami.

Nasz krótki- pamięć terminowa wystarcza na około siedmiu rzeczy, daj lub weź dwa. Dwanaście cyfr binarnych („bitów”) jest zbyt nieporęcznych. Inne czynniki 12 to 6 × 2 i 4 × 3.

Rozłożenie dwunastu bitów identyfikacyjnych na sześć i dwa oznacza kody squawk w dwóch wielkościach 6-bitowych (0-63) lub sześciu 2-bitowych ( 0-3) kawałki. Wyobraź sobie, że w dawnych czasach mieliśmy do czynienia z tarczami 64-pozycyjnymi. Robiąc to za pomocą przycisków dziesiętnych, wracamy do problemu niemożliwych do reprezentacji kodów. Sześć pokręteł, każdy od 0 do 3, może działać, ale to zmniejsza tarcze i zmusza pilota do radzenia sobie blisko granicy pamięci krótkotrwałej, co sprawia, że ​​ta opcja jest podatna na błędy, a zatem mniej pożądana.

Mogą działać trzy grupy wielkości 4-bitowych lub szesnastkowych. Chociaż wartości szesnastkowe mieszczą się w zakresie od 0 do 15 10 , powszechną konwencją jest używanie cyfr od 0 do 9, a następnie od A do F od dziesięciu do piętnastu. Innymi słowy, ograniczyliśmy się do jednej cyfry na miejsce, ale w dawnych czasach oznaczałoby to używanie 16-miejscowych tarcz. Dziś oznaczałoby to szesnaście przycisków na przodzie transpondera. Jednak „Zbliż się, Cessna tree-alpha-bravo ogłasza awarię i skrzeczący foxtrot-charlie-zero dla tego charlie foxtrot!” ma jakąś wartość mnemoniczną.

Sweet Spot

Patrząc na to z drugiej strony, mamy cztery grupy po trzy bity. W systemie binarnym wartości miejsca są potęgami dwójki (a nie dziesięcioma, jak zwykliśmy myśleć w systemie dziesiętnym). Pracując z trzema bitami każdy, maksymalna wartość dowolnej cyfry kodu nawigacyjnego to

$$ (1 \ cdot 2 ^ 2 = 4) + (1 \ cdot 2 ^ 1 = 2) + (1 \ cdot 2 ^ 0 = 1) = 7 $$

Oto kilka zalet:

  • Kody Squawk mają cztery miejsca - łatwe do zarządzania w pamięci krótkotrwałej.
  • Wszystkie cyfry są znane od 0 do 7, więc
    • Wejścia z pokrętłem mają tylko osiem pozycji lub
    • Wystarczy osiem przycisków.
  • Wszystkie czterocyfrowe wejścia pilota są reprezentowane w trybie A lub trybie C .
  • Transponder nie musi się martwić, co zrobić ze złymi danymi wejściowymi.
Doskonała odpowiedź!
Avionics CEng
2018-10-25 02:01:55 UTC
view on stackexchange narkive permalink

Te 12 bitów zostało ustalonych przez system taktowanie i dokładność generowania impulsów oraz technologię przetwarzania dostępną w tym czasie. Po ustawieniu 12 bitów mogliby zrobić od 0 do 4095, ale wymagałoby to specjalnych przełączników i / lub przekładni dla wyświetlacza. Więc dla uproszczenia zastosowali Octal z 4 prostymi, 8-pozycyjnymi przełącznikami.

alex
2017-04-28 01:29:55 UTC
view on stackexchange narkive permalink

W systemach komputerowych wszystko jest binarne. Wynika to z faktu, że obwód logiczny ma tylko 2 stany, wysokie i niskie napięcie. Z tego powodu liczba dziesiętna nie byłaby tak prosta do konwersji na binarną, jak ósemkowa lub szesnastkowa.

Tłumaczenie dziesiętne na dwójkowe jest całkowicie trywialne dla każdego systemu komputerowego (nawet najtańszy kalkulator może to zrobić!) - ale pierwsze transpondery samolotów zostały użyte pod koniec II wojny światowej, na długo przed pojawieniem się komputerów wystarczająco małych, aby zmieścić się w płaski i wystarczająco niezawodny, aby być przydatnym w tego typu zastosowaniach,
Systemy te zostały zaprojektowane wiele dekad temu i ze względu na prostotę system pozostaje niezmieniony. Ale wszystkie komputery są nadal binarne. Z tego powodu kod maszynowy nie jest dziesiętny.
a obliczenia kwantowe oszaleją, jeśli jesteś fanem liczenia możliwych stanów [qu] bitowych :)
@mins Słyszałem o komputerach analogowych, ale czy nie wymagają one niemal ciągłego dostrajania, aby były dokładne?
@alex: Wiemy, jak uzyskać stabilne napięcia lub stabilne zegary z zadaną precyzją. Jako podstawy możemy użyć [wzmacniaczy operacyjnych] (https://en.wikipedia.org/wiki/Operational_amplifier), [PLL] (https://en.wikipedia.org/wiki/Phase-locked_loop) itp.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...