¿Por qué el rango de dígitos del transpondedor es de 0 a 7 en lugar de 0 a 9?

Como controlador en IVAO, a veces asigno códigos como 0168 y luego descubro que el código no es válido. Para mí, el rango 0-9 parece más lógico. ¿Por qué tenemos que usar números octales y no decimales?

@foot, ¿En qué universo podría considerarse esto como un duplicado?

Respuestas (6)

El código de transpondedor de cuatro dígitos que ingresa un piloto es un número octal en lugar de un número decimal, y en el sistema de numeración octal, solo los dígitos 0-7 son válidos.

En cuanto a por qué , internamente es en realidad un número binario de 12 bits y octal funciona muy bien ya que se puede usar como un "atajo" para ingresar grupos de tres dígitos binarios a la vez (000 - 111, que es 0-7 en octal ).

Si se diseñara hoy, con el poder de cómputo adicional y la complejidad del software disponible, sería posible usar un número decimal incluso si se almacena como binario internamente, solo para que sea más familiar. Sin embargo, en el momento en que se creó el sistema, cambiar los diales configuraba directamente el código en el hardware y hacer la conversión habría sido mucho más complejo/difícil/costoso.

En resumen, era conveniente para los ingenieros y fabricantes, y solo una rareza para los usuarios finales, por lo que lo dejaron así.

Además, aunque hoy en día sería posible utilizar la codificación decimal, con diales que permiten configurar 0000...4095, debería evitar configurar 4096...4999 (o 9999 si no limitó el primer dial a 0...4). Usando diales octales, no puede seleccionar fuera del rango válido de 0000...7777.
Como nota al margen; Esta es la misma razón por la que las direcciones IPv4 contienen 4 números 0-255 (2^8 opciones), las direcciones MAC se escriben como un conjunto de pares hexadecimales (2^8 opciones en el rango de 00 a FF). Ambos se utilizan debido a la conversión muy fácil desde/hacia el sistema binario. Dado que el usuario no hace ningún cálculo con dichas direcciones, no hay ningún inconveniente.
"Si se diseñara hoy...", utilizarían códigos hexadecimales de 24 bits :)
@J.Hougaard No necesariamente, como mencionó Crowley en su comentario, las direcciones IP se denominan comúnmente en decimal a pesar de que se almacenan como códigos de 24 bits... :)
@Lnafziger me refería al modo-S
Quiero votar esta respuesta, pero su valor es exactamente 2 ^ 6 y simplemente no puedo destruir este hermoso número y desafiar a todos los que lo votan.
Fascinante. Esto también explica por qué los códigos de emergencia comienzan con 111 binario (7 decimal)...

La representación octal es una forma económica de manejar números binarios pequeños

Los transpondedores de los modos A y C envían su ID mediante un tren de pulsos de portadora no modulada, que puede verse como una secuencia de bits. Hoy en día, dichos transpondedores usan 12 pulsos (los transpondedores en modo S usan una dirección de 24 bits que es diferente):

ingrese la descripción de la imagen aquí
Fuente

Los pulsos están etiquetados como A4-A2-A1, B4-B2-B1, C4-C2-C1 y D4-D2-D1 (intercalados en la transmisión). Están contenidos dentro de dos pulsos de trama para fines de sincronización del transmisor-receptor, y hay un pulso adicional X en el medio, siempre en 0 hoy, pero utilizado en los días de gloria como datos personalizados por los fabricantes (por ejemplo, para informar a ATC la posición de un tren de aterrizaje retráctil).

Al transpondedor se le debe decir el valor de cada bit de alguna manera. Hoy en día no sería un problema ingresar la ID como un número decimal (entre 0 y 4095), pero cuando se inventó el transpondedor, décadas antes de la llegada de los chips programables económicos, un convertidor confiable era un dispositivo costoso.

Por otro lado, no era una opción proporcionar solo los 12 valores usando los interruptores de encendido/apagado:

ingrese la descripción de la imagen aquí
Muestra de interruptores en miniatura, fuente

Obviamente, los errores habrían sido numerosos, ya sea durante la transmisión vocal de la identificación o al ingresar la identificación.

La solución más simple y ampliamente utilizada cuando se trata de bits es agruparlos y asociar un solo símbolo a cada combinación posible en el grupo.

Sería bueno usar grupos con 10 combinaciones, ya tenemos los símbolos "0" a "9" para representarlos. Desafortunadamente al agrupar bits por dos, obtenemos grupos con 4 combinaciones cada uno. Si agrupamos por tres bits, los grupos tienen 8 combinaciones. Por cuatro, los grupos tienen 16 combinaciones, etc.

Debido a que estamos tratando con un número expresado en base 2, la cantidad de símbolos a usar es siempre una potencia de dos, nunca una potencia de 10. Entonces, los ingenieros no tenían otra opción en ese momento que olvidar los números decimales y usar un número impar de combinaciones. Como ejemplo, agrupemos por 2 bits y usemos letras griegas para los 4 símbolos requeridos:

ingrese la descripción de la imagen aquí

Seríamos malos diseñadores para producir esto (¡excepto por una nueva versión de Airplane! ), pero tienes el principio. Para simplificar el sistema, podemos usar símbolos numéricos decimales si necesitamos como máximo 10 símbolos, y completar con letras si necesitamos más. Esto es exactamente lo que se hace cuando se escriben números en octal (grupos de 3 bits) y raíces hexadecimales (grupos de 4 bits).

Como se explica en otras excelentes respuestas, los primeros transpondedores tenían solo 6 bits para su ID, por lo que octal era la elección sensata, y las ID se presentaban como 2 cifras octales, por ejemplo, "75" para representar "111 101". Cuando se amplió la longitud de la identificación, el sistema octal permaneció en uso.

En caso de que esté interesado en los detalles de cómo se usa octal, propongo detalles a continuación.


Especificación técnica: un número binario de 12 bits y 4096 valores

La señal de radio del transpondedor para la transmisión de ID está compuesta por 12 pulsos (modos A/C) que pueden ser bajos o altos, esto permite 4096 ( 2 12 ) combinaciones.

Como los pulsos tienen solo dos estados, bajo o alto, podemos referirlos directamente como un número binario de 12 bits entre 0 y 4095. Ilustremos con algunos valores:

ingrese la descripción de la imagen aquí

Podemos agregar tantos 0 a la izquierda como queramos (por ejemplo, para tener 12 bits), como hacemos en decimal: 25 = 025 = 00025.

Representaciones octales y hexadecimales de números binarios

Por comodidad, solemos sustituir grupos de bits por algún equivalente para reducir el número de signos utilizados. Es común usar grupos de 3 y 4 bits:

ingrese la descripción de la imagen aquí

Octal : un grupo de 3 bits puede generar 8 combinaciones, podemos reemplazar fácilmente este grupo por una sola cifra en base 8 para cubrir estas combinaciones. Radix 8 se denomina numeración " octal ".

Hexadecimal : De igual forma un grupo de 4 bits genera 16 combinaciones (el doble de combinaciones para un grupo de 3, ya que los dos valores del bit adicional se pueden asociar a todas las combinaciones de 3 bits. Podemos reemplazar los 4 bits de un agrupar por una cifra de base 16. Tal sistema se denomina numeración " hexadecimal ".

ingrese la descripción de la imagen aquí

Volviendo a nuestros ejemplos, reemplazando los grupos de bits por sus equivalentes en base 8 y 16:

ingrese la descripción de la imagen aquí

Seleccione qué base usar

¿Qué tenemos hasta ahora? Partimos de un número de 12 bits, agrupamos los bits ya sea por 3 o por 4, obtuvimos el valor octal (0000 a 7777) y el valor hexadecimal (000 a fff), dos representaciones de un mismo número binario.

¿Cuál es mejor en este caso? La respuesta ha sido proporcionada en otras excelentes publicaciones: Al principio solo había 6 pulsos asignados para la identificación. Lógicamente se agruparon de a 3 y se optó por octal.

Si hubiera habido 7 pulsos, probablemente se hubiera elegido la representación hexadecimal, con valores de 00 a 7f.

De radix a interruptor electromecánico

Es fácil diseñar un interruptor de rueda (rueda selectora) con 8 símbolos octales que gestione 3 interruptores reales para generar 3 señales eléctricas de encendido/apagado (bajo/alto):

ingrese la descripción de la imagen aquí
Fuente

Usamos la posición angular de la rueda para cerrar o abrir los tres contactos. Hay muchos diseños para hacer esto, uno es usar cepillos que giran sobre un disco con pistas conductoras impresas:

ingrese la descripción de la imagen aquí
Fuente

Los conmutadores proporcionan directamente el grupo binario. Al ensamblar cuatro interruptores, podríamos proporcionar al transpondedor el código de "graznido", que es la configuración binaria para los pulsos de identificación.

Es tan fácil de usar 3 ruedas hexadecimales con 4 contactos.

¿Por qué no 10 símbolos?

No podemos agrupar bits de un número binario en grupos que puedan tener exactamente 10 combinaciones. Esta propiedad está limitada a potencias de 2 radix (4, 8, 16, 32...)

Más tarde, con la introducción de los circuitos integrados (tan simples como las memorias), fue posible convertir de decimal a binario con bastante facilidad. El 74S484 ha sido uno de esos circuitos integrados. Podría manejar dos entradas que representan valores decimales (" decimal codificado en binario ", BCD) y convertirlos en binario puro. El conversor de 4 decimales (0 a 4095) se diseñaría así, utilizando 5 de estos circuitos:

ingrese la descripción de la imagen aquí


Como ves, es más sencillo usar solo 8 símbolos ( 2 3 ), o 16 ( 2 4 ), y más generalmente una potencia de dos.

Es legítimo pensar que también podríamos usar una lógica basada en puertas booleanas simples (NAND, XOR...) para administrar la conversión de decimal a binario en lugar de una memoria. Esto no es evidente a primera vista, pero en realidad requeriría una gran cantidad de puertas.

Para convencerme, he hecho el ejercicio por un solo bit (de 12) y por solo dos ruedas decimales de 4. Eliminé los detalles del ejercicio, pero se pueden ver en el historial de edición . Aquí está el resultado:

ingrese la descripción de la imagen aquí

La minimización permitió reducir el número de términos (por lo tanto, puertas) a 10. Aún así, esto es solo para un bit y dos ruedas. A veces simplemente no vale la pena la dificultad adicional, especialmente en un momento en que no había circuitos integrados, apegarse al decimal.

Ingeniero mucho? :) Excelente explicación!
¿Por qué diablos haría un rediseño ahora usando tecnología complicada de la década de 1970, cuando todo lo que necesita es un teclado simple y un microcontrolador: solo $ 10 por ambos, en comparación con al menos $ 50 por las piezas para construir esta pieza de museo? Eso suponiendo que incluso pueda obtener las piezas: el chip 74S484 está fuera de producción desde hace mucho tiempo, aunque hay equivalentes más modernos.
@alephzero: Esta es una respuesta educativa, debe proporcionar los conceptos, no el estado del arte. Por cierto, un "teclado simple y un microcontrolador" son más caros de lo que piensas en el mundo de la aviación, tienes que certificarlos. Este no es un mundo en el que puedas llamar a Apple para decirles que tienes un problema.
Esta es una respuesta mucho mejor que la de Lnafziger.
@TylerDurden Creo que depende del nivel técnico del lector, y esta respuesta será mejor para una persona más técnica (como nosotros), mientras que mi respuesta es más adecuada para tipos menos técnicos. Cuando respondo una pregunta, uso la complejidad apropiada para la pregunta original, y la redacción de su pregunta hizo que pareciera que no necesitaba este nivel de detalle. Sin embargo, buena información para los demás, y ciertamente voté esta respuesta para mostrar aprecio por la información y el esfuerzo que puso en ella. :)
@TylerDurden, "mejor" es un juicio de valor que requiere un objetivo con el que comparar. El objetivo es siempre subjetivo. Defina "mejor" según qué criterios. Si el criterio es "menos palabras", entonces esta respuesta no es objetivamente mejor.

Respuesta corta

Ingresar códigos de graznidos en octal, o base 8 donde los dígitos permitidos son del 0 al 7, hace que la interfaz hombre-máquina entre el piloto y el transpondedor sea lo más simple posible.

Antecedentes

Los transpondedores compatibles con el Modo A y el Modo C utilizan códigos de baliza o identidad de 12 bits. Cada bit tiene dos opciones, alto o bajo, lo que da un total de 2 12  = 4096 identificadores representables ( es decir , que caben dentro de 12 bits), que van de 0 a 4095 en base 10, escrito 4095 10 . Ahora bien, no todos los identificadores representables son válidos . Por ejemplo, 7500 8 está reservado para situaciones específicas, pero eso no es motivo de preocupación para los circuitos.

Las cantidades que caben exactamente dentro de un cierto número de bits no se alinean limpiamente con potencias de diez. Considere un transpondedor hipotético que acepta cuatro dígitos decimales del 0000 al 9999 o 10 4  = 10 000 entradas posibles. Es más probable que el piloto bloquee un graznido falso que uno representable. Esta interfaz "más simple" ahora tiene una condición de error con la que debe lidiar: entradas representables y no representables. Si el piloto teclea o hace girar los diales por encima de 4095, ¿cómo responderá el transpondedor? ¿Debe parpadear una luz de error que el piloto puede pasar por alto? ¿Cómo debería responder al interrogatorio mientras está en mal estado? Recorte silenciosamente el código de baliza a todos los bits altos (111 111 111 111 2  = 4095 10  = 7777 8)? ¿Dejar de responder por completo? Más modos significan más pruebas y más gastos.

compensaciones

'Ah', piensa el ingenioso ingeniero de la vieja escuela. 'No más botones elegantes; le daremos al dial más a la izquierda solo cinco posiciones, de 0 a 4.' Pero, ¿qué pasa con el segundo dial que debe ser 0 cuando el primero es 4 pero puede ser cualquier dígito de lo contrario?

Tenemos doce bits para llenar. Quizás el piloto ingresa directamente al binario. “Cessna 123AB, graznido cero-cero-uno-cero-uno-cero-cero-cero-…” Imagínese la congestión de frecuencia con instrucciones, colaciones, correcciones y confirmaciones tan largas.

Nuestra memoria a corto plazo es buena para unos siete elementos, más o menos dos . Doce dígitos binarios ("bits") son demasiado difíciles de manejar. Otros factores de 12 son 6×2 y 4×3.

Factorizar los doce bits de identidad en seis y dos significa códigos graznidos en dos cantidades de 6 bits (0-63) o seis fragmentos de 2 bits (0-3). Imagínese lidiar con diales de 64 posiciones en los viejos tiempos. Hacerlo con botones decimales nos devuelve al problema de los códigos irrepresentables. Seis diales cada uno con 0 a 3 pueden funcionar, pero eso hace que los diales sean más pequeños y obliga al piloto a manejar cerca del límite de la memoria a corto plazo, lo que hace que esta opción sea propensa a errores y, por lo tanto, menos deseable.

Podrían funcionar tres grupos de cantidades de 4 bits o hexadecimales . Aunque los valores hexadecimales varían de 0 a 15 10 , una convención común es usar dígitos del 0 al 9 y luego de la A a la F para diez a quince. En otras palabras, nos quedamos con un dígito por lugar, pero en los viejos tiempos, eso habría significado usar diales de 16 lugares. Hoy, eso significaría dieciséis botones en la parte frontal del transpondedor. Sin embargo, "¡Aproximación, Cessna tree-alpha-bravo declarando una emergencia y graznando foxtrot-charlie-zero para este charlie foxtrot!" tiene algún valor mnemotécnico.

El punto dulce

Considerándolo de otra manera, tenemos cuatro grupos de tres bits. En binario, los valores posicionales son potencias de dos (no potencias de diez como estamos acostumbrados a pensar en decimal). Trabajando con tres bits cada uno, el valor máximo para cualquier dígito de código de baliza es

( 1 2 2 = 4 ) + ( 1 2 1 = 2 ) + ( 1 2 0 = 1 ) = 7

Aquí encontramos varias ventajas:

  • Los códigos Squawk tienen cuatro lugares, fácilmente manejables en la memoria a corto plazo.
  • Todos los dígitos son familiares del 0 al 7, por lo que
    • Las entradas de marcación tienen sólo ocho posiciones o
    • Ocho botones son suficientes.
  • Todas las entradas piloto de cuatro dígitos se pueden representar en Modo A o Modo C.
  • El transpondedor no tiene que preocuparse por qué hacer con las malas entradas.
Excelente respuesta!

La respuesta simple es que un transpondedor de modo A o modo C permite 12 bits de datos de identificación, y tres bits pueden describirse como un dígito octal. Por lo tanto hay cuatro dígitos octales, de los cuales oscilan entre 0000 y 7777.

La pregunta ha cambiado, así que estoy complementando esta respuesta. La convención de usar números octales para códigos de transpondedores se remonta a una implementación anterior de transpondedores que tenían 6 bits de datos de identificación de aeronaves. Se decidió (creo que por algún COTR de camisa blanca) ir con dígitos octales. Tratar con computadoras, octal o hexadecimal es más fácil que decimal. Más tarde, el campo de identificación de la aeronave del transpondedor se convirtió en 12 bits y se mantuvo la convención octal. Es una convención, y se ha mantenido.

Complementario: recuerdo un transpondedor que tenía 6 interruptores de palanca para ingresar el código, antes del estándar de 12 bits. Los cambios estaban marcados por tres con 4-2-1 debajo de ellos. Antes de la alfabetización informática de las masas, una vez que se puede especular sobre la selección de dígitos, en lugar de, por ejemplo, hexadecimal, se tuvo en cuenta a medida que se desarrollaba la tecnología IFF y transpondedor. Un código de graznido VFR podría ingresarse como un 12, que tendría el 1 más significativo cambiando hacia arriba y el menos significativo 2 cambiando hacia arriba. Recuerdo que el radar secundario muestra lo mismo que 1200, aunque provenía de un transpondedor sin el estándar de 12 bits. 77, o todos los interruptores eran para emergencias, y 76 y 75, todos asignados respectivamente a los códigos modernos 7700, 7600 y 7500.

Los 12 bits fueron establecidos por la sincronización del sistema y la precisión de la tecnología de generación y procesamiento de pulsos disponible en ese momento. Habiendo configurado 12 bits, podrían haber hecho 0 a 4095, pero eso habría requerido interruptores especiales y/o engranajes para la pantalla. Entonces, para simplificar las cosas, usaron Octal con 4 interruptores simples de 8 posiciones.

En los sistemas informáticos, todo es binario. Esto se debe a que el circuito lógico solo tiene 2 estados, alto y bajo voltaje. Debido a esto, decimal no sería tan fácil de convertir a binario como lo son octal o hexadecimal.

La traducción de decimal a binario es completamente trivial para cualquier sistema informático (¡incluso la calculadora más barata puede hacerlo!), pero los primeros transpondedores de aviones se usaron hacia el final de la Segunda Guerra Mundial, mucho antes de que hubiera computadoras lo suficientemente pequeñas como para caber dentro de un plano y lo suficientemente confiable para ser útil para este tipo de aplicación,
Estos sistemas fueron diseñados hace muchas décadas y el sistema permanece sin cambios por motivos de simplicidad. Pero todas las computadoras siguen siendo binarias. Y el código de máquina no es decimal debido a esto.
y la computación cuántica te dejará boquiabierto si eres fanático de contar posibles estados [qu]bit :)
@mins He oído hablar de las computadoras analógicas, pero ¿no requieren un ajuste casi constante para ser precisas?
@alex: sabemos cómo tener voltajes estables, o relojes estables, con una precisión dada. Podemos utilizar amplificadores operacionales , PLL , etc como base.