Computador de orientação Apollo - arquitetura e software de sistema. Parte 1

Link para a parte 2

Nesta publicação, discutimos os conceitos básicos de arquitetura, estrutura de hardware e estrutura do software do sistema da placa de computador da missão Apollo - AGC (Apollo Guidance Computer). Para quem deseja estudar o tópico em detalhes, recomendo o livro [ 1 ] e outros materiais, cujos links são fornecidos no final do artigo.

Computador de orientação Apollo





No programa Apollo, este computador foi usado em duas naves espaciais: no módulo de comando e no módulo lunar. Nos dois casos, foi montado em uma “placa fria” com uma mistura de água-glicol circulante, para resfriamento.


Bloco de água com tubos de refrigeração

Um fato interessante: o nome completo do computador usado no programa Apollo é AGC-4, pois havia projetos anteriores. Seu antecessor, AGC-3, foi construído em células de transistor de ferrite.


Diagrama de blocos de um sistema de navegação

Abreviações usadas:

AOT - Telescópio óptico de alinhamento
LR - Radar de pouso
RR - Radar de Encontro
CDU - Unidade de dados de acoplamento
DSKY - Visor e teclado (AGC)
LGC - Computador de orientação LM (ou AGC)
PTA - Conjunto de torque de pulso
IMU - Unidade de Medição Inercial
PSA - Power Servo Assembly
OSS - Subsistema Óptico
ISS - Subsistema Inercial
RS - Subsistema Radar
Especificações técnicas

Especificação


Comprimento da palavra: 16 bits (14 bits + sinal + paridade)
Memória: ROM (núcleo da corda) 36K palavras; RAM (núcleo) 2K palavras
Ciclo de acesso à memória (ROM e RAM) - 11,72 μs
Dispositivos de E / S: DSKY (dois dispositivos no navio)
Velocidade: tempo de adição - 20 μs
Frequência de clock: 2.048 MHz
Tecnologia: RTL bipolar, caixas planares
Dimensões: AGC - 24 "x 12,5" x 6 "(HWD) (61 cm x 32 cm x 15 cm); DSKY - 8" x 8 "x 7" (HWD) (20 cm x 20 cm x 18 cm)
Peso: AGC - 32 kg (70 libras); DSKY - 8 kg (17,5 libras)
Tensão de alimentação 28 V.
Consumo: modo de operação: 70 W @ 28VDC; 15,0 W em modo de espera
Número de dispositivos fabricados: AGC: 75; DSKY: 138
Custo: Desconhecido. Em 2009, a DSKY foi leiloada por US $ 50.788.

O computador foi completamente hermeticamente fechado e não continha nenhuma peça que exigisse manutenção. Mas, apesar disso, os engenheiros temiam que os novos microcircuitos digitais pudessem falhar no espaço; portanto, nas primeiras versões ofereciam a possibilidade de substituir os blocos. Nas versões subsequentes, quando todos estavam convencidos da confiabilidade do computador, o requisito de manutenção foi excluído da declaração de trabalho.


Figura AGC da documentação técnica


AGC aberto

O gabinete AGC consiste em duas metades, com módulos instalados. As metades do corpo têm conectores que conectam circuitos elétricos entre si. No meio da metade direita do gabinete, existem módulos de RAM que não estão na foto. Eles serão discutidos abaixo.

Fundamentos de circuitos




O computador é totalmente construído em microcircuitos que contêm dois elementos NOR-3 (tipo de alarme OR-NOT) e são feitos usando a tecnologia resistor-transistor. O diagrama do circuito é mostrado na figura acima. O princípio de operação de um elemento desse tipo é simples: se o pino 5 estiver conectado a 0 e o pino 10 estiver conectado à fonte de alimentação mais, se houver zeros nas entradas 2-4, os transistores 1-3 (contando da esquerda para a direita) serão fechados e a saída 1 será fechada. o log. 1 desde É atraído para o plus por um resistor. Se pelo menos uma entrada for aplicada 1, o transistor correspondente será aberto e puxará a saída 1 para zero.

É fácil ver que, quando duas ou mais saídas desses elementos são conectadas, uma função AND é gerada. Nesse caso, basta deixar a energia (terminal 10) conectada a apenas um elemento. Às vezes, porém, a energia é deixada conectada a todos os elementos conectados pelas saídas, o que permite obter maior capacidade de carga da saída.



Um elemento com energia desconectada é representado em um diagrama com uma extremidade sombreada (consulte a Fig.).

A primeira versão do computador continha 4100 microcircuitos, um elemento OR-NOT em cada um; na segunda versão, usada em vôo, havia 2800 microcircuitos, dois elementos OR-NOT no caso.



A memória


A memória AGC consiste em 2K palavras RAM e 36K palavras ROM. Apenas 12 bits são alocados para o campo de endereço, o que permite que as palavras-chave em 4K sejam endereçadas e a memória é dividida em bancos. Para trocar de banco, é usado um registro especial de 4 bits, que resulta em um endereço de 16 bits que permite o endereçamento de 64Kwords.

Os bancos de memória serão discutidos em mais detalhes na seção de software do sistema.

ROM


A ROM do computador é feita usando a tecnologia da memória de corda (veja a foto abaixo).



Aparência do módulo de memória Rope:



O princípio de operação da “memória do cabo” é ilustrado na figura abaixo:



Infelizmente, a documentação para os blocos da memória Core Rope não foi preservada, mas os entusiastas conseguiram descobrir a interface, conectar o bloco ao computador e ler o conteúdo e, em seguida, executá-lo no simulador.

O volume total da ROM AGC é de 36.864 palavras de 16 bits. O AGC possui 6 blocos ROM, cada um com 6 quiloslovol (ou seja, cerca de 12 kb). Até 192 fios que codificam dados são passados ​​(ou não passados) por cada núcleo cada núcleo codifica 192 bits.

O firmware de cada unidade de ROM levou 8 semanas e custou US $ 15.000. Tudo isso foi feito manualmente.

RAM


A RAM do AGC tem capacidade para 2048 palavras de 16 bits. A RAM do computador é feita em núcleos magnéticos, como a maioria dos computadores da época.


Módulo de RAM instalado no computador.

Pode-se observar que o módulo RAM ocupa a largura de dois módulos lógicos comuns. A RAM consiste em "planos", cada um dos quais corresponde a um bit na palavra de dados, total de planos 16. Cada plano representa uma treliça de 64x32 anéis, 2048 anéis no total. Quatro condutores passam por cada anel: as linhas de coordenadas X e Y, a linha de leitura e a linha de inibição. As linhas X e Y correm respectivamente na vertical e na horizontal, a linha de leitura percorre todos os anéis do mesmo plano em direções diagonais e a linha da proibição de escrever também percorre todos os anéis do plano verticalmente.

Além disso, o avião foi chamado de "tapete" (tapete). A figura abaixo mostra um plano com um tamanho de 64x32 anéis.


Layout da linha de leitura


Módulo RAM secional


Módulo de RAM. Raio X


Módulo RAM aberto


Montagem do módulo RAM

DSKY




DSKY significa Unidade de exibição e teclado, um módulo de exibição e teclado, e foi projetado para permitir a interação do AGC e da equipe.




DSKY desmontado

Em essência, o DSKY é apenas um terminal simples para a AGC. Ele é construído com base em relés que comutam segmentos do indicador luminescente, alimentados por uma tensão de 250VAC com uma frequência de 800 Hz e em transistores. Nas versões posteriores do DSKY, os relés eletromecânicos foram substituídos por tiristores, pois introduziram um atraso significativo na exibição das informações.


Diagrama de blocos DSKY


Diagrama Funcional DSKY



A figura mostra o diagrama de conexão da tela. Usavam relés polarizados com dois enrolamentos, lembrando seu status. O pulso aplicado a um enrolamento liga o indicador e, no outro, ele desliga. Os enrolamentos do relé estão incluídos na matriz.

O AGC fornece um número de 15 bits ao canal de saída 010 (número do canal octal). Os bits 12 a 15 são alimentados a um decodificador com 12 saídas, incluindo linhas da matriz.

A unidade também possui indicadores separados para exibir os sinais PROG, TRACKER, GIMBAL LOCK e NO ATT e outros sinais.

As informações são inseridas usando o teclado. Cada botão é iluminado com luzes na voltagem de 115VAC e na frequência de 400 Hz. Quando cada tecla é pressionada, exceto PRO, um código de 5 bits é gerado. O código é enviado para a porta do computador e é gerada uma interrupção pela qual o código é lido. Quando o botão é solto, um sinal de redefinição especial é gerado. A tecla STBY é usada para colocar o computador no modo de espera e voltar ao modo de operação, quando pressionado novamente.

O teclado possui 10 teclas numéricas e 9 teclas adicionais: VERBO, NOUN, CLR, PRO, REL. CHAVE, ENTR, RESET, + e -.



Os botões contêm contatos de comutação que são ativados de forma a excluir a geração de dois códigos ao mesmo tempo (veja a figura abaixo). Os códigos das teclas entram na porta de entrada AGC.



Uma tensão de + 28V está conectada ao circuito do botão. Conectando a um computador da seguinte maneira:



O filtro de entrada protege o sistema contra rejeição de contato e interferência acidental.


Vista traseira DSKY

O procedimento padrão para inserir um comando no DSKY é a sequência: VERB-DIGIT-DIGIT, NOUN-DIGIT-DIGIT e ENTR. Isso reflete a ideologia da interação do usuário com o AGC: o verbo (VERB) é inserido, o número da ação a ser executada e o substantivo (NOUN), também codificado pelo número, que indica o objeto ao qual a ação é direcionada. A lista de códigos de verbo e substantivo está contida nas instruções que os astronautas tinham.

Pressionar o botão VERB no teclado apaga o indicador VERB. Então o astronauta introduz dois números, que são interpretados como o número do verbo, e o mesmo é feito com o substantivo (NOUN). Até que o botão ENTR seja pressionado, os códigos podem ser corrigidos repetindo a entrada NOUN ou VERB. Depois de pressionar ENTR, os números nos indicadores VERB e NOUN piscam a cada 1,5 segundos, o que significa que o operador deve inserir dados que dependem da operação. Depois disso, a operação começa.


Inside DSKY

Os dados podem ser inseridos em octal e decimal. O computador acredita que, se o sinal "+" ou "-" não for inserido, os dados estarão na forma octal. Se você pressionar os botões 8 ou 9 ao inserir um número octal, o indicador OPR ERR pisca. Se as teclas "+" ou "-" forem pressionadas, o sinal correspondente aparecerá no visor, o que significa que o computador está pronto para receber um número decimal. Se o operador cometer um erro, ele pode pressionar a tecla CLR e repetir a entrada. Pressionar ENTR completa a entrada. Para redefinir o sinal OPR ERR e retornar ao modo de entrada, use o botão RSET.

O botão RSET é usado para silenciar todos os sinais de aviso: TEMP, GIMBAL LOCK, PROG, RESTART e TRACKER. Isso pode ser útil para descobrir se o sinal de aviso foi de curto prazo ou se o erro que o causou estava presente.


Inside DSKY

O decodificador contém quatro drivers de linha de relé e uma matriz de diodos, além de teclas de excitação para as linhas da matriz de relés. Os bits 12 a 15 selecionam uma das linhas da matriz de relés.


Decodificador de matriz de relé

Vamos considerar como a linha 1. está ativada.O código 0001 corresponde a ela.É fornecido pela interface A25 e pelo conector J9 no gabinete DSKY e na linha CE225 - CE228. Os sinais são invertidos, ou seja, CE226 - CE228 aceitam o valor do log. 1 e CE225 é o log. 0. A lógica 1 na entrada fecha o transistor Q1, o transistor Q2 também está fechado e o transistor Q3 está aberto. Assim, para as saídas das linhas X de CE226-CE228 e para as saídas das linhas Y de CE225, o estado será um log. 1. A matriz de diodos possui 8 entradas conectadas às saídas diretas e inversas dos comutadores de transistor (saídas X e Y na figura). No nosso caso, os diodos CR53 dos módulos D2, D3 e D4, bem como o diodo CR63 do módulo D5, devem ser polarizados na direção oposta. Se esses diodos estiverem fechados, o bloco CKT004 liga, excitando a linha 1, enquanto a tensão + 28V passa pelo circuito Q1 (CKT011), R8, CR44, R9 (CKT004) e abre os transistores Q4, Q5 (CKT004). Quando os transistores se abrem, eles conectam a primeira linha de relés a zero, o que significa que a linha está selecionada.

A linha inferior de diodos na matriz de diodos (CR54 nos módulos D2-D5) é usada para detectar a presença de um log. 0 nos bits 12-15 do canal 10. Se pelo menos um zero estiver presente, pelo menos um dos diodos estará aberto e a tensão 0VDC será fornecida à fonte de tensão dos drivers de busca de linha. Se todos os quatro bits forem 0, todos os quatro diodos serão fechados e uma tensão de + 28VDC será aplicada à entrada do driver de energia. O transistor Q2 é aberto e o transistor Q3 é fechado. O transistor Q1 está fechado e a saída do driver é um circuito aberto, e nenhuma tensão é fornecida aos drivers de linha.


Vista inferior DSKY

Para controlar os indicadores de status e erro, é utilizada a matriz de relés no módulo do driver do indicador (Fig.). Além do relé, ele contém 6 drivers de transistor idênticos (D1-D6).


Módulo de driver indicador DSKY

A matriz do relé é mostrada na figura abaixo:


Matriz de relé

Cada driver de relé recebe do bit 1-11 do canal 10. Considere o bit 11 (circuito 006 no módulo D6). Se o bit 1 do canal 10 estiver definido para registrar. 1, é invertido para o circuito de interface A25, para o conector J9 no circuito CE224. Isso abre o transistor Q8, que fecha o transistor Q9. Uma tensão de 28V está presente no terminal 10 da coluna do relé, incluindo os sinais "+" e "-" no visor. A linha é selecionada pela matriz de diodos. Ao selecionar uma linha e coluna, o computador pode alternar cada relé individual na matriz.

Os relés matriciais controlam os indicadores DSKY. A linha 12 controla indicadores de status e alarmes.


Códigos da matriz de relé

A tabela acima mostra a correspondência entre o conteúdo do canal 10 e o dígito indicador controlado pelo relé correspondente. Cinco relés controlam um dígito. Os bits 6 a 10 são usados ​​para controlar o primeiro dígito, os bits 1 a 5 controlam o segundo dígito, o bit 11 controla o sinal ("+" ou "-"). Os códigos de dígitos são fornecidos na tabela:


Códigos de dígitos

Log 1 corresponde a um relé ligado.



A tabela acima mostra a correspondência de códigos e dígitos indicados.

O diagrama de conexão dos indicadores ao relé é mostrado na figura abaixo.


Diagrama de uma matriz de relés de indicadores

Os circuitos de status e alarme consistem em drivers e relés não polarizados.


Circuitos de status e alarme

Por exemplo, quando o sinal ISS WARNING está no log. 0, abre o transistor Q13 e fornece + 28V ao relé K21. O relé K21 liga e passa o sinal de entrada ALARM COMMON para o display e para a seção PGNCS como um sinal ISS WARNING.


Cabo DSKY para computadores e sistemas de bordo

O DSKY é alimentado por 28V e 14V DC do computador e é usado um sinal de sincronização de 800 Hz, que é usado para gerar uma voltagem de 250VAC com uma frequência de 400 Hz para alimentar o monitor.


Diagrama da fonte de alimentação DSKY

A fonte de energia consiste em três estágios de transistor push-pull, isolados por transformadores. Um sinal retangular com uma tensão de cerca de 14V e uma frequência de 800 Hz é alimentado à entrada. O nível de tensão pode ser controlado a partir do painel da nave espacial e serve para ajustar o brilho dos indicadores. Os transformadores T1 e T2 aumentam a tensão, na saída há um estrangulamento com saturação L2. O indutor é necessário para estabilizar a tensão nos indicadores. Os indicadores são uma carga capacitiva, o valor da capacidade depende do número de indicadores. Mudanças na carga causam uma mudança na tensão no circuito de realimentação, que é alimentado através do retificador da ponte ao enrolamento de controle L2. Se mais indicadores forem ativados, a tensão no enrolamento de controle aumentar, o núcleo começará a ficar saturado, se o número de indicadores ativados diminuir, a tensão no enrolamento de controle diminuir, o núcleo sairá da saturação, portanto a tensão de saída será mantida constante.


Uma versão anterior do DSKY. Esta opção não foi usada em voo.

Literatura e referências:



1. O Computador de Orientação Apollo: Arquitetura e Operação. Frank O'Brien, Springer Praxis Books, 2010

2. O conceito de AGC

3. http://www.righto.com/ Blog com vários artigos sobre AGC

4. https://hackaday.com/2016/09/02/decoding-rediscovered-rope-memory-from-the-apollo-guidance-computer/ - Decodificando a memória de corda redescoberta do computador de orientação Apollo

5. https://hackaday.com/2016/07/05/don-eyles-walks-us-through-the-lunar-module-source-code/ - Don Eyles nos guia pelo código-fonte do módulo lunar

6. https://github.com/chrislgarry/Apollo-11 - repositório com códigos-fonte de software

7. https://github.com/shirriff/rope-simulator - repositório com circuitos de simulador de ROM.

8. https://dodlithr.blogspot.com/search/label/Apollo%20Systems - uma grande variedade de materiais em AGC e DSKY.

9. http://www.ibiblio.org/apollo/ - simulador AGC online.

10. https://github.com/virtualagc - um repositório com muitas informações úteis, incluindo a versão Verlog do AGC, bem como circuitos e placas de réplicas AGC e circuitos originais AGC e DSKY (no repositório https://github.com/virtualagc / virtualagc )

Source: https://habr.com/ru/post/pt461095/


All Articles