Por que o intervalo de dígitos do transponder 0 para 7 em vez de 0 para 9?

36

Como controlador no IVAO, às vezes atribuo códigos como 0168 e descubro mais tarde que o código não é válido. Para mim, o intervalo 0-9 parece mais lógico. Por que temos que usar números octais e não decimais?

por Hugo Woesthuis 27.04.2017 / 22:04

6 respostas

O código do transponder de quatro dígitos inserido por um piloto é um octal número em vez de um número decimal e, no sistema de numeração octal, apenas os dígitos 0-7 são válidos.

Tão longe quanto porqueinternamente, na verdade, é um número binário do tipo 12 e o octal funciona muito bem, pois pode ser usado como um "atalho" para inserir grupos de três dígitos binários por vez (000 - 111, que é 0-7 em octal).

Se ele fosse projetado hoje, com a capacidade computacional adicional e a complexidade do software disponível, seria possível usar um número decimal, mesmo que ele seja armazenado como binário internamente, apenas para que ele seja mais familiar. No momento em que o sistema foi criado, alterar os mostradores definia diretamente o código no hardware e fazer a conversão seria muito mais complexo / difícil / caro.

Em resumo, era conveniente para os engenheiros e fabricantes, e apenas uma singularidade para os usuários finais, então eles deixaram dessa maneira.

27.04.2017 / 22:05

Os transponders estão usando uma série de valores com estados 2 que podem ser vistos como números binários até certo ponto. Uma resposta muito curta à sua pergunta é: ao lidar com bits, é mais fácil ter dispositivos que funcionem com várias combinações, que são uma potência do 2 (2, 4, 8, 16, 32 ...) do que uma alimentação de dez (10, 100 ...).

Isso realmente não explica, então proponho olhar o problema em profundidade para a diversão, e, ao fazer isso, vamos corrigir uma série de equívocos frequentes. Como bônus, mostrarei a complexidade real do uso de seletores decimais no caso do transponder, tentando projetar um circuito usando ferramentas booleanas.


Especificação técnica: um número binário 12 e valores 4096

O sinal de rádio do transponder para a transmissão de ID é feito de pulsos 12 (modos A / C) que podem ser baixos ou altos, isso permite combinações 4096 ($ 2 ^ {\ small {12}} $).

Como os pulsos possuem apenas dois estados, baixo ou alto, podemos referenciá-los diretamente como um número binário do tipo 12.

insira a descrição da imagem aqui
fonte

Os pulsos são A4-A2-A1 B4-B2-B1 C4-C2-C1 D4-D2-D1, eles são intercalados na transmissão.

Como seria um desperdício não usar todos eles, ficamos com esse número de possibilidades 4096.

Para informar ao transponder quais são os níveis L / H dos pulsos 12, precisamos fornecer um número binário de bits 12 entre 0 e 4095.

Vamos pegar alguns valores (você pode acompanhar todas as conversões usando este conversor online):

insira a descrição da imagem aqui

Tornar os números mais humanos: números octais e hexadecimais

Não é fácil lembrar com precisão esse número binário de 12-bit. Para poder gerenciar valores binários, geralmente substituímos grupos de bits por outro equivalente.

É comum usar grupos de bits 3 e 4 (podemos adicionar quantos 0 à esquerda quisermos, como fazemos no decimal: 25 = 025 = 00025):

insira a descrição da imagem aqui

Octal: Um grupo de bits 3 pode gerar combinações 8, podemos substituir facilmente esse grupo por uma única figura no radical 8 para cobrir essas combinações. Radix 8 é nomeado "octal"numeração.

Talvez você esteja se perguntando por que o radix 8 tem apenas números 8: é uma consequência do definição de radix, por exemplo, estamos usando o radix 10 na vida, temos números de 10 de 0 a 9.

Hexadecimal: Da mesma forma, um grupo de bits 4 gera combinações 16 (duas vezes o número de combinações para um grupo de 3, pois o bit adicional pode ter dois valores). Podemos substituir os bits 4 de um grupo por uma figura no radical 16, cujo nome é "hexadecimal"numeração.

insira a descrição da imagem aqui

Vamos voltar aos nossos exemplos e substituir os grupos de bits por seus equivalentes no radix 8 ou 16:

insira a descrição da imagem aqui

Selecione qual raiz usar

O que temos até agora? Começamos com um número de bits 12, agrupados por 3 ou 4, obtendo o valor octal (0000 a 7777) e o valor hexadecimal (000 a fff) igual ao número binário. Também temos o valor decimal dos bits (0 a 4095). Qual é o melhor neste caso?

A resposta foi fornecida em outras postagens: No início, havia apenas pulsos 6 alocados para o ID. Logicamente, eles foram agrupados pelo 3 e o octal foi escolhido. Se houvesse pulsos 7, provavelmente a representação hexadecimal teria sido selecionada, com valores de 00 a 7f.

Do radix ao interruptor eletromecânico

Foi fácil projetar um comutador de roda (roda giratória) com símbolos octais 8 que gerenciam os comutadores reais 3 para gerar sinais elétricos de ativação / desativação (baixo / alto) do 3:

insira a descrição da imagem aqui
fonte

Para usar a posição angular da roda para fechar ou abrir os três contatos, poderíamos usar muitos modelos, um é usar pincéis girando sobre um disco com faixas condutoras impressas:

insira a descrição da imagem aqui
fonte

O comutador fornece diretamente o grupo binário. Ao montar quatro switches, poderíamos fornecer ao transponder o código "squawk", que é a configuração binária dos pulsos de identificação.

É tão fácil usar rodas hexadecimais com contatos 4.

Então, por que não os símbolos 10?

Não podemos agrupar bits de um número binário em grupos que podem ter exatamente combinações 10. Esta propriedade está limitada à potência do 2 radix (4, 8, 16, 32 ...)

Os números de raiz 10 (nosso sistema decimal) não são bons substitutos para a conversão direta de binário.

Foi possível mais tarde, com a introdução de circuitos integrados (memórias), converter com bastante facilidade de decimal para binário. o 74S484 foi um desses CIs. Ele pode lidar com duas entradas que representam valores decimais (o chamado "decimal codificado em binário", BCD) e converta-os em binário puro. O conversor para números decimais 4 (0 para 4095) seria projetado desta maneira, usando o 5 destes circuitos:

insira a descrição da imagem aqui


Como você vê, é mais simples usar apenas símbolos 8 ($ 2 ^ {\ small {3}} $) ou 16 ($ 2 ^ {\ small {4}} $) e, geralmente, uma potência de dois.

É legítimo pensar que também poderíamos usar uma lógica baseada em portas booleanas simples (NAND, XOR ...) para gerenciar a conversão de decimal para binário em vez de uma memória. Isso não é aparente à primeira vista, mas na verdade requer uma quantidade enorme de portões.

Para se convencer, basta seguir a última parte deste longo post, eu fiz o exercício apenas por um único bit (fora do 12) e por apenas duas rodas decimais do 4.


Calcular o valor do bit 4 usando apenas portas lógicas

Vamos avaliar o circuito booleano necessário para obter o valor certo para o bit 4 do ID binário (aquele que pesa o 16), levando em conta apenas décadas 2: a roda para as dezenas e a roda para as unidades.

Em duas décadas, gerenciamos IDs 100, 0 a 99 em decimal. Quando convertemos esses números decimais em binários, vemos que o bit 4 tem um valor de 1 para combinações de rodas 16 para 31, 48 para 63 e 80 para 95. Usei esta tabela para deixar isso claro (clique para ampliar):

insira a descrição da imagem aqui

Também existem saídas BCD de roda que não são válidas, porque uma roda decimal não emitirá um código BCD de 1010 que seja maior que 9. O resultado final está na tabela verdade em rosa nas colunas da direita.

Também parece que o valor do bit mais à direita da saída BCD da roda unitária não tem impacto no valor do bit 4; portanto, podemos descartá-lo da análise.

Atualmente, a função para obter o bit 4 não foi otimizada e possui dezenas de termos, cada um exigiria mais ou menos seu próprio portão (Dt é o bit D do valor BCD da roda Tens, Cu é o bit C da roda Units etc):

insira a descrição da imagem aqui

Vamos inserir isso em um Mapa de Karnaugh utilização Karma da UFRGS. Estamos interessados ​​em indicar as combinações de entradas para as quais o bit 4 tem um valor de 0, de 1, e casos em que seu valor não é relevante (observe "-" na tabela verdade):

insira a descrição da imagem aqui

A ordem dos valores de bits BCD no mapa é tal que apenas um bit varia entre células adjacentes (essa ordem tem a vantagem de localizar de perto uma variável e o complemento de 1 e criar eixos de simetria no mapa (mais detalhes no artigo da Wikipedia em Mapa de Karnaugh).

Usando Karma, agora podemos simplificar a função usada para definir o valor do bit 4:

Após minimização:

insira a descrição da imagem aqui

A minimização permitiu reduzir o número de termos (daí os portões) do complexo 24 para o 10 simples. Ainda assim, isso é apenas para um bit e duas rodas. Às vezes, simplesmente não vale a dificuldade adicional, especialmente no momento em que não havia CIs, para manter o decimal.

Esta última parte foi divertida, mas demonstra claramente como o uso de octal ou hexadecimal pode simplificar bastante o trabalho a ser feito.

28.04.2017 / 00:16

Resposta curta

Inserindo códigos squawk em octal ou base-8 onde os dígitos permitidos são 0 a 7, torna o interface homem-máquina entre o piloto e o transponder o mais simples possível.

fundo

Modo A e Modo C transponders compatíveis usam códigos de beacon ou identidade de bits 12. Cada bit possui duas opções, alta ou baixa, que resultam em um total de 212 = 4,096 representável (ou seja, que se encaixam nos identificadores 12 bits), variando de 0 a 4,095 na base-10, escrito 409510. Agora, nem todos os identificadores representáveis ​​são válido. Por exemplo, 75008 é reservado para situações específicas, mas não é para se preocupar com o circuito.

Quantidades que se encaixam exatamente dentro de um número de bits não se alinham perfeitamente com potências de dez. Considere um transponder hipotético que aceite quatro dígitos decimais 0000 a 9999 ou 104 = 10,000 entradas possíveis. É mais provável que o piloto atropele um grito falso do que um representável. Essa interface “mais simples” agora possui uma condição de erro com a qual deve lidar: entradas representáveis ​​e não representáveis. Se o piloto digitar ou girar os mostradores para algo acima do 4095, como o transponder responderá? Deveria piscar uma luz de erro que o piloto pode perder? Como deve responder ao interrogatório em mau estado? Prenda silenciosamente o código do beacon em todos os bits altos (111 111 111 1112 = 409510 = 77778)? Parar de responder completamente? Mais modos significam mais testes e mais despesas.

Compensações

'Ah', pensa o engenheiro inteligente da velha escola. Não há mais botões sofisticados; daremos ao mostrador mais à esquerda apenas cinco posições, 0 a 4. ' Mas e o segundo mostrador que deve ser 0 quando o primeiro é 4, mas pode ter qualquer dígito?

Temos doze bits para preencher. Talvez o piloto entre diretamente no binário. “Cessna 123AB, grite zero-zero-um-zero-um-zero-zero-zero-…” Imagine o congestionamento de frequência com instruções tão longas, readbacks, correções e confirmações.

Nossa memória de curto prazo é boa para cerca de sete itens, mais ou menos dois. Doze dígitos binários ("bits") são muito difíceis de manejar. Outros fatores do 12 são 6 × 2 e 4 × 3.

Dividir os doze bits de identidade em seis e dois significa códigos squawk em duas quantidades de bits 6 (0-63) ou em seis pedaços de bits 2 (0-3). Imagine lidar com os mostradores da posição 64 nos velhos tempos. Fazer isso com botões decimais nos leva de volta ao problema dos códigos não representáveis. Seis mostradores, cada um com 0 a 3, podem funcionar, mas isso os torna menores e obriga o piloto a lidar próximo ao limite da memória de curto prazo, tornando essa opção propensa a erros e, portanto, menos desejável.

Três grupos de bits 4 ou hexadecimal quantidades podem funcionar. Embora os valores hexadecimais variem de 0 a 1510, uma convenção comum é usar os dígitos 0 a 9 e, em seguida, de A a F por dez a quinze. Em outras palavras, reduzimos um dígito por local, mas antigamente isso significaria o uso de discagens de locais 16. Hoje, isso significaria dezesseis botões na face do transponder. No entanto, “Abordagem, Cessna tree-alpha-bravo declarando uma emergência e gritando foxtrot-charlie-zero para este charlie foxtrot!” Tem algum valor mnemônico.

The Sweet Spot

Considerando o contrário, temos quatro grupos de três bits. Em binário, os valores dos lugares são potências de dois (não potências de dez, como estamos acostumados a pensar em decimal). Trabalhando com três bits cada, o valor máximo para qualquer dígito do código de beacon é

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

Aqui encontramos várias vantagens:

  • Os códigos Squawk têm quatro lugares - facilmente gerenciáveis ​​na memória de curto prazo.
  • Todos os dígitos são familiares do 0 ao 7, portanto,
    • As entradas de discagem têm apenas oito posições ou
    • Oito botões são suficientes.
  • Todas as entradas piloto de quatro dígitos são representáveis ​​no modo A ou no modo C.
  • O transponder não precisa se preocupar com o que fazer com insumos ruins.
28.04.2017 / 17:13

A resposta simples é que um transponder de modo A ou modo C permite bits de dados de identificação 12 e três bits podem ser descritos como um dígito octal. Portanto, existem quatro dígitos octais, dos quais variam entre 0000 e 7777.

A questão mudou, então estou complementando esta resposta. A convenção de usar números octais para códigos de transponders remonta a uma implementação anterior de transponders que possuíam bits de identificação de aeronaves 6. Foi decidido (creio que por algum COTR de camisa branca) ir com dígitos octais. Lidar com computadores, octal ou hexadecimal é mais fácil que decimal. Mais tarde, o campo de identificação da aeronave transponder se tornou bits 12, e a convenção octal foi mantida. É uma convenção e foi mantida.

Suplementar: Lembro-me de um transponder com interruptores de alternância 6 para inserir o código, antes do padrão de bits 12. Os comutadores foram marcados por três com 4-2-1 embaixo deles. Voltar antes da alfabetização computacional das massas, uma vez pode-se especular a seleção de dígitos, em vez de, por exemplo, hexadecimal, levados em consideração à medida que a tecnologia IFF e o transponder foram desenvolvidos. Um código squawk de VFR pode ser inserido como um 12, que teria a troca 1 mais significativa e a mudança 2 menos significativa. Lembro-me de que o radar secundário mostra o mesmo que o 1200, apesar de ter vindo de um transponder sem o padrão de bits 12. 77, ou todas as opções, eram para emergências, e 76 e 75, respectivamente, mapeados para os códigos modernos de 7700, 7600 e 7500.

27.04.2017 / 22:07

Os bits 12 foram definidos pelo tempo do sistema e precisão da geração de pulsos e tecnologia de processamento disponível no momento. Depois de definir os bits 12, eles poderiam executar o 0 em 4095, mas isso exigiria interruptores e / ou engrenagens especiais para a exibição. Portanto, para simplificar, eles usaram a Octal com os interruptores de posição 4 simples e 8.

24.10.2018 / 23:01

Nos sistemas de computadores, tudo é binário. Isso ocorre devido ao circuito lógico ter apenas estados 2, alta e baixa tensão. Por esse motivo, o decimal não seria tão simples de converter em binário quanto o octal ou o hex.

27.04.2017 / 22:29