Apollo Guidance Computer: software de arquitectura y sistema. Parte 1

Enlace a la Parte 2

En esta publicación, discutimos los conceptos básicos de la arquitectura, la estructura del hardware y la estructura del software del sistema de la placa de la computadora de la misión Apollo - AGC (Apollo Guidance Computer). Para aquellos que quieran estudiar el tema en detalle, les recomiendo el libro [ 1 ] y otros materiales, cuyos enlaces se encuentran al final del artículo.

Computadora de guía Apollo





En el programa Apollo, esta computadora se utilizó en dos naves espaciales: en el módulo de comando y en el módulo lunar. En ambos casos, se montó en una "placa fría" con una mezcla de agua y glicol circulante, para enfriar.


Bloque de agua con tubos de refrigerante.

Un hecho interesante: el nombre completo de la computadora utilizada en el programa Apollo es AGC-4, ya que hubo diseños anteriores. Su predecesor, AGC-3, fue construido sobre células de transistor de ferrita.


Diagrama de bloques de un sistema de navegación.

Abreviaturas utilizadas:

AOT - Telescopio óptico de alineación
LR - Radar de aterrizaje
RR - Radar de encuentro
CDU - Unidad de datos de acoplamiento
DSKY - (AGC) Pantalla y teclado
LGC - Computadora de guía LM (o AGC)
PTA - Conjunto de par de impulsos
IMU - Unidad de medida inercial
PSA - Ensamblaje de servomotores
OSS - Subsistema óptico
ISS - Subsistema de inercia
RS - Subsistema de radar
Especificaciones técnicas

Especificación


Longitud de palabra: 16 bits (14 bits + signo + paridad)
Memoria: ROM (núcleo de la cuerda) 36K palabras; RAM (núcleo) 2K palabras
Ciclo de acceso a memoria (ROM y RAM) - 11.72 μs
Dispositivos de E / S: DSKY (dos dispositivos en el barco)
Velocidad: tiempo de adición - 20 μs
Frecuencia de reloj: 2.048 MHz
Tecnología: RTL bipolar, carcasas planas
Dimensiones: 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 - 70 libras (32 kg); DSKY - 17.5 lbs (8 kg)
Tensión de alimentación 28 V.
Consumo: modo de operación: 70 W @ 28VDC; en espera 15,0 W
Número de dispositivos fabricados: AGC: 75; DSKY: 138
Costo: Desconocido. En 2009, DSKY fue subastado por $ 50,788.

La computadora estaba completamente sellada herméticamente y no contenía ninguna pieza que requiriera mantenimiento. Pero a pesar de esto, los ingenieros temían que los nuevos microcircuitos digitales pudieran fallar en el espacio, por lo que en las primeras versiones brindaban la posibilidad de reemplazar los bloques. En versiones posteriores, cuando todos estaban convencidos de la confiabilidad de la computadora, el requisito de mantenimiento se excluía de la declaración de trabajo.


Figura AGC de la documentación técnica


AGC abierto

El caso de AGC consta de dos mitades, con módulos instalados. Las mitades del cuerpo tienen conectores que conectan los circuitos eléctricos entre sí. En el medio de la mitad derecha del caso están los módulos de RAM que no están en la foto. Se discutirán a continuación.

Fundamentos de circuitos




La computadora está completamente construida sobre microcircuitos que contienen dos elementos NOR-3 (tipo de alarma O-NO), y están hechos con tecnología de resistencia-transistor. El diagrama del circuito se muestra en la figura anterior. El principio de funcionamiento de un elemento de este tipo es simple: si el pin 5 está conectado a 0 y el pin 10 está conectado al power plus, si hay ceros en las entradas 2-4, los transistores 1-3 (contando de izquierda a derecha) se cerrarán y la salida 1 se cerrará. el registro 1 desde Es atraído al plus por una resistencia. Si se aplica al menos una entrada 1, se abrirá el transistor correspondiente y la salida 1 se pondrá a cero.

Es fácil ver que cuando se conectan dos o más salidas de estos elementos, se genera una función AND. En este caso, es suficiente dejar la alimentación (terminal 10) conectada a un solo elemento. Pero a veces la potencia se deja conectada a todos los elementos conectados por las salidas, esto le permite obtener una mayor capacidad de carga de la salida.



Un elemento con potencia no conectada se representa en un diagrama con un extremo sombreado (ver. Fig.).

La primera versión de la computadora contenía 4100 microcircuitos, un elemento OR-NOT en cada uno, en la segunda versión, que se usó en vuelo, había 2800 microcircuitos, dos elementos OR-NOT en el estuche.



El recuerdo


La memoria AGC consta de 2K palabras RAM y 36K palabras ROM. Solo se asignan 12 bits para el campo de dirección, lo que permite direccionar palabras 4K, y la memoria se divide en bancos. Para cambiar de banco, se utiliza un registro especial de 4 bits, que da como resultado una dirección de 16 bits que permite direccionar 64Kwords.

Los bancos de memoria se analizarán con más detalle en la sección de software del sistema.

ROM


La ROM de la computadora está hecha con la tecnología de memoria de cuerda (ver foto a continuación).



Apariencia del módulo de memoria de cuerda:



El principio de funcionamiento de la "memoria de la cuerda" se ilustra en la siguiente figura:



Desafortunadamente, la documentación de los bloques de memoria Core Rope no se conservó, pero los entusiastas lograron descubrir la interfaz, conectar el bloque a la computadora y leer el contenido, y luego ejecutarlo en el simulador.

El volumen total de la ROM AGC es de 36.864 palabras de 16 bits. AGC tiene 6 bloques ROM, cada uno de 6 kiloslovol (es decir, aproximadamente 12 kb). Se pasan (o no se pasan) datos de codificación de hasta 192 hilos a través de cada núcleo cada núcleo codifica 192 bits.

El firmware de cada unidad ROM tomó 8 semanas y costó $ 15,000. Todo esto se hizo manualmente.

RAM


AGC RAM tiene una capacidad de 2048 palabras de 16 bits. La RAM de la computadora está hecha en núcleos magnéticos, como la mayoría de las computadoras de esa época.


Módulo RAM instalado en la computadora.

Se puede ver que el módulo RAM ocupa el ancho de dos módulos lógicos ordinarios. RAM consiste en "planos", cada uno de los cuales corresponde a un bit en la palabra de datos, planos totales 16. Cada plano representa una red de 64x32 anillos, 2048 anillos en total. Cuatro conductores pasan a través de cada anillo: las líneas de coordenadas X e Y, la línea de lectura y la línea de inhibición. Las líneas X e Y corren, respectivamente, vertical y horizontalmente, la línea de lectura atraviesa todos los anillos del mismo plano en direcciones diagonales, y la línea de la prohibición de escritura también atraviesa todos los anillos del plano verticalmente.

Además, el avión se llamaba "estera" (estera). La siguiente figura muestra un plano con un tamaño de anillos de 64x32.


Diseño de línea de lectura


Módulo seccional RAM


Módulo RAM Rayos X


Módulo RAM abierto


Montaje del módulo RAM

DSKY




DSKY significa Unidad de pantalla y teclado, un módulo de pantalla y teclado, y está diseñado para permitir la interacción del AGC y la tripulación.




DSKY desmontado

En esencia, DSKY es solo un terminal simple para AGC. Está construido sobre la base de relés que conmutan segmentos del indicador luminiscente, alimentados por un voltaje de 250 VCA con una frecuencia de 800 Hz, y en transistores. En versiones posteriores de DSKY, los relés electromecánicos fueron reemplazados por tiristores, ya que introdujeron un retraso significativo en la visualización de la información.


Diagrama de bloques DSKY


Diagrama funcional DSKY



La figura muestra el diagrama de conexión de la pantalla. Utiliza relés polarizados con dos devanados, recordando su estado. El pulso aplicado a un devanado enciende el indicador, al otro se apaga. Los devanados de relé están incluidos en la matriz.

El AGC proporciona un número de 15 bits al canal de salida 010 (número de canal octal). Los bits 12-15 se alimentan a un decodificador que tiene 12 salidas que incluyen filas de matriz.

La unidad también tiene indicadores separados para mostrar señales PROG, TRACKER, GIMBAL LOCK y NO ATT, y otras señales.

La información se ingresa usando el teclado. Cada botón se ilumina con luces a un voltaje de 115 VCA a una frecuencia de 400 Hz. Cuando se presiona cada tecla, excepto PRO, se genera un código de 5 bits. El código se envía al puerto de la computadora y se genera una interrupción mediante la cual se lee el código. Cuando se suelta el botón, se genera una señal de reinicio especial. La tecla STBY se usa para poner la computadora en modo de espera, y nuevamente en modo de operación, cuando se presiona nuevamente.

El teclado tiene 10 teclas numéricas y 9 teclas adicionales: VERBO, NOUN, CLR, PRO, KEY REL, ENTR, RESET, + y -.



Los botones contienen contactos de conmutación que se activan de tal manera que excluyen la generación de dos códigos al mismo tiempo (consulte la figura a continuación). Los códigos clave ingresan al puerto de entrada AGC.



Un voltaje de + 28V está conectado al circuito del botón. Conexión a una computadora de la siguiente manera:



El filtro de entrada protege el sistema contra rebotes de contacto e interferencias accidentales.


DSKY vista trasera

El procedimiento estándar para ingresar un comando en DSKY es la secuencia: VERB-DIGIT-DIGIT, NOUN-DIGIT-DIGIT y ENTR. Esto refleja la ideología de la interacción del usuario con AGC: se ingresa el verbo (VERBO) y el número de acción a realizar, y el sustantivo (NOUN), también codificado por el número, que indica el objeto al que se dirige la acción. La lista de códigos verbales y sustantivos está contenida en las instrucciones que tenían los astronautas.

Al presionar el botón VERBO en el teclado se borra el indicador VERBO. Luego, el astronauta introduce dos números, que se interpretan como el número del verbo, luego se hace lo mismo con el sustantivo (NOUN). Hasta que se presione el botón ENTR, los códigos se pueden corregir repitiendo la entrada NOUN o VERB. Después de presionar ENTR, los números en los indicadores VERB y NOUN parpadean cada 1.5 segundos, esto significa que el operador debe ingresar datos que dependen de la operación. Después de eso, comienza la operación.


DSKY interior

Los datos se pueden ingresar en octal y decimal. La computadora cree que si no se ingresa el signo "+" o "-", entonces los datos estarán en forma octal. Si presiona los botones 8 o 9 al ingresar un número octal, el indicador OPR ERR parpadeará. Si se presionan las teclas "+" o "-", el signo correspondiente aparece en la pantalla, lo que significa que la computadora está lista para recibir un número decimal. Si el operador comete un error, puede presionar la tecla CLR y repetir la entrada. Al presionar ENTR se completa la entrada. Para restablecer la señal OPR ERR y volver al modo de entrada, use el botón RSET.

El botón RSET se usa para silenciar todas las señales de advertencia: TEMP, GIMBAL LOCK, PROG, RESTART y TRACKER. Esto puede ser útil para averiguar si la señal de advertencia fue a corto plazo o si el error que lo causó estaba presente.


DSKY interior

El decodificador contiene cuatro controladores de línea de relé y una matriz de diodos, así como teclas de excitación para las filas de la matriz de relés. Los bits 12-15 seleccionan una de las filas de la matriz de retransmisión.


Decodificador de matriz de relé

Consideremos cómo se activa la fila 1. El código 0001 corresponde a ella. Se suministra a través de la interfaz A25 y el conector J9 en el caso DSKY, y en la línea CE225 - CE228. Las señales están invertidas, es decir CE226 - CE228 acepta el valor del registro. 1, y CE225 es el registro. 0. La lógica 1 en la entrada cierra el transistor Q1, el transistor Q2 también está cerrado y el transistor Q3 está abierto. Por lo tanto, para las salidas de las líneas X de CE226-CE228 y para la salida de las líneas Y de CE225, el estado será un registro. 1. La matriz de diodos tiene 8 entradas conectadas a las salidas directas e inversas de los interruptores de transistor (salidas X e Y en la figura). En nuestro caso, los diodos CR53 de los módulos D2, D3 y D4, así como el diodo CR63 del módulo D5, deben estar polarizados en la dirección opuesta. Si estos diodos están cerrados, el bloque CKT004 se enciende, excitando la fila 1, mientras que el voltaje + 28V pasa a través del circuito Q1 (CKT011), R8, CR44, R9 (CKT004) y abre los transistores Q4, Q5 (CKT004). Cuando los transistores se abren, conectan la primera fila de relés a cero, lo que significa que la fila está seleccionada.

La fila inferior de diodos en la matriz de diodos (CR54 en módulos D2-D5) se utiliza para detectar la presencia de un registro. 0 en los bits 12-15 del canal 10. Si al menos un cero está presente, al menos uno de los diodos está abierto y el voltaje 0VDC se suministra a la fuente de voltaje de los controladores de búsqueda de fila. Si los cuatro bits son 0, los cuatro diodos están cerrados y se aplica un voltaje de + 28 VCC a la entrada del controlador de alimentación. El transistor Q2 se abre y el transistor Q3 se cierra. El transistor Q1 está cerrado, y la salida del controlador es un circuito abierto, y no se suministra voltaje a los controladores de línea.


Vista inferior de DSKY

Para controlar los indicadores de estado y error, se utiliza la matriz de relés en el módulo del controlador del indicador (Fig.). Además del relé, contiene 6 controladores de transistor idénticos (D1-D6).


Módulo de controlador de indicador DSKY

La matriz de relés se muestra en la figura a continuación:


Matriz de relé

Cada controlador de relé recibe del bit 1-11 del canal 10. Considere el bit 11 (circuito 006 en el módulo D6). Si el bit 1 del canal 10 está configurado para iniciar sesión. 1, se invierte al circuito de interfaz A25, al conector J9 en el circuito CE224. Esto abre el transistor Q8, que cierra el transistor Q9. Un voltaje de 28V está presente en el terminal 10 de la columna del relé, incluidos los signos "+" y "-" en la pantalla. La fila es seleccionada por la matriz de diodos. Al seleccionar una fila y columna, la computadora puede cambiar cada relé individual en la matriz.

Los relés de matriz controlan los indicadores DSKY. La fila 12 controla los indicadores de estado y las alarmas.


Códigos de matriz de retransmisión

La tabla anterior muestra la correspondencia entre el contenido del canal 10 y el dígito indicador controlado por el relé correspondiente. Cinco relés controlan un dígito. Los bits 6-10 se utilizan para controlar el primer dígito, los bits 1-5 controlan el segundo dígito, el bit 11 controla el signo ("+" o "-"). Los códigos de dígitos se dan en la tabla:


Códigos de dígitos

Registro 1 corresponde a un relé de encendido.



La tabla anterior muestra la correspondencia de códigos y dígitos indicados.

El diagrama de conexión de los indicadores al relé se muestra en la figura a continuación.


Diagrama de una matriz de indicadores de relevo

Los circuitos de estado y alarma consisten en controladores y relés no polarizados.


Circuitos de estado y alarma

Por ejemplo, cuando la señal de ADVERTENCIA ISS está en el registro. 0, abre el transistor Q13 y suministra + 28V para retransmitir K21. El relé K21 se enciende y pasa la señal de entrada ALARMA COMÚN a la pantalla y a la sección PGNCS como una señal de ADVERTENCIA ISS.


Cable DSKY para computadora y sistemas a bordo

El DSKY funciona con 28 V y 14 V CC desde la computadora, y se utiliza una señal de sincronización de 800 Hz, que se utiliza para generar un voltaje de 250 VCA con una frecuencia de 400 Hz para alimentar la pantalla.


Diagrama de fuente de alimentación DSKY

La fuente de alimentación consta de tres etapas de transistor push-pull, aisladas por transformadores. Una señal rectangular con un voltaje de aproximadamente 14 V y una frecuencia de 800 Hz se alimenta a la entrada. El nivel de voltaje se puede controlar desde el panel de la nave espacial y sirve para ajustar el brillo de los indicadores. Los transformadores T1 y T2 aumentan el voltaje, en la salida hay un estrangulador con saturación L2. El inductor es necesario para estabilizar el voltaje en los indicadores. Los indicadores son una carga capacitiva, el valor de la capacidad depende del número de indicadores encendidos. Los cambios en la carga provocan un cambio en el voltaje en el circuito de retroalimentación, que se alimenta a través del rectificador de puente al devanado de control L2. Si se encienden más indicadores, el voltaje en el devanado de control aumenta, el núcleo comienza a saturarse, si el número de indicadores encendidos disminuye, el voltaje en el devanado de control disminuye, el núcleo se queda sin saturación, por lo que el voltaje de salida se mantiene constante.


Una primera versión de DSKY. Esta opción no se ha utilizado en vuelo.

Literatura y referencias:



1. La Computadora de Orientación Apolo: Arquitectura y Operación. Frank O'Brien, Springer Praxis Books, 2010

2. El concepto de AGC

3. http://www.righto.com/ Blog con un montón de artículos sobre AGC

4. https://hackaday.com/2016/09/02/decoding-rediscovered-rope-memory-from-the-apollo-guidance-computer/ - Decodificación de la memoria de la cuerda redescubierta desde la computadora de orientación Apollo

5. https://hackaday.com/2016/07/05/don-eyles-walks-us-through-the-lunar-module-source-code/ - Don Eyles nos guía por el código fuente del módulo lunar

6. https://github.com/chrislgarry/Apollo-11 - repositorio con códigos fuente de software

7. https://github.com/shirriff/rope-simulator - repositorio con circuitos de simulador de ROM.

8. https://dodlithr.blogspot.com/search/label/Apollo%20Systems : una gran selección de materiales sobre AGC y DSKY.

9. http://www.ibiblio.org/apollo/ - simulador en línea de AGC.

10. https://github.com/virtualagc : un repositorio con mucha información útil, incluida la versión Verlog de AGC, así como circuitos y placas de réplica AGC, y esquemas AGC y DSKY originales (en el repositorio https://github.com/virtualagc / virtualagc )

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


All Articles