Apollo Guidance Computer - logiciel d'architecture et de système. Partie 1

Lien vers la partie 2

Dans cette publication, nous discutons les bases de l'architecture, de la structure matérielle et de la structure du logiciel système de la carte informatique de mission Apollo - AGC (Apollo Guidance Computer). Pour ceux qui veulent étudier le sujet en détail, je recommande le livre [ 1 ] et d'autres matériaux, dont les liens sont donnés à la fin de l'article.

Ordinateur de guidage Apollo





Dans le programme Apollo, cet ordinateur a été utilisé dans deux vaisseaux spatiaux: dans le module de commande et dans le module lunaire. Dans les deux cas, il a été monté sur une «plaque froide» avec un mélange eau-glycol en circulation, pour le refroidissement.


Bloc d'eau avec tuyaux de liquide de refroidissement

Un fait intéressant: le nom complet de l'ordinateur utilisé dans le programme Apollo est AGC-4, car il y avait des conceptions antérieures. Son prédécesseur, AGC-3, était construit sur des cellules à transistor en ferrite.


Schéma fonctionnel d'un système de navigation

Abréviations utilisées:

AOT - Télescope optique d'alignement
LR - Radar d'atterrissage
RR - Radar Rendez-vous
CDU - Unité de données de couplage
DSKY - (AGC) Écran et clavier
LGC - Ordinateur de guidage LM (ou AGC)
PTA - Assemblage de couple d'impulsions
IMU - Unité de mesure inertielle
PSA - Power Servo Assembly
OSS - Sous-système optique
ISS - Sous-système inertiel
RS - Sous-système radar
Spécifications techniques

Spécification


Longueur du mot: 16 bits (14 bits + signe + parité)
Mémoire: ROM (noyau de corde) 36K mots; RAM (core) 2K mots
Cycle d'accès à la mémoire (ROM et RAM) - 11,72 μs
Périphériques d'E / S: DSKY (deux périphériques dans le navire)
Vitesse: temps d'addition - 20 μs
Fréquence d'horloge: 2,048 MHz
Technologie: RTL bipolaire, boîtiers plans
Dimensions: 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)
Poids: AGC - 70 livres (32 kg); DSKY - 8 kg (17,5 lb)
Tension d'alimentation 28 V.
Consommation: mode de fonctionnement: 70 W @ 28VDC; veille 15,0 W
Nombre d'appareils fabriqués: AGC: 75; DSKY: 138
Coût: inconnu. En 2009, DSKY a été vendu aux enchères pour 50 788 $.

L'ordinateur était complètement hermétique et ne contenait aucune pièce nécessitant un entretien. Mais malgré cela, les ingénieurs craignaient que les nouveaux microcircuits numériques ne tombent en panne dans l'espace, de sorte que dans les premières versions, il était possible de remplacer les blocs. Dans les versions ultérieures, lorsque tout le monde était convaincu de la fiabilité de l'ordinateur, l'exigence de maintenabilité était exclue de l'énoncé des travaux.


Figure AGC de la documentation technique


AGC ouvert

Le boîtier AGC se compose de deux moitiés, avec des modules installés. Les moitiés du corps ont des connecteurs qui connectent les circuits électriques les uns aux autres. Au milieu de la moitié droite du boîtier se trouvent les modules RAM qui ne sont pas sur la photo. Ils seront discutés ci-dessous.

Fondamentaux des circuits




L'ordinateur est entièrement construit sur des microcircuits qui contiennent deux éléments NOR-3 (de type alarme OU-NON), et sont fabriqués à l'aide de la technologie résistance-transistor. Le schéma de circuit est illustré dans la figure ci-dessus. Le principe de fonctionnement d'un tel élément est simple: si la broche 5 est connectée à 0, et la broche 10 est connectée à l'alimentation plus, alors s'il y a des zéros aux entrées 2-4, alors les transistors 1-3 (en comptant de gauche à droite) seront fermés, et la sortie 1 sera le journal. 1 depuis Il est attiré vers le plus par une résistance. Si au moins une entrée est appliquée 1, le transistor correspondant s'ouvrira et ramènera la sortie 1 à zéro.

Il est facile de voir que lorsque deux sorties ou plus de ces éléments sont connectées, une fonction ET est générée. Dans ce cas, il suffit de laisser l'alimentation (borne 10) connectée à un seul élément. Mais parfois, l'alimentation est laissée connectée à tous les éléments connectés par les sorties, cela vous permet d'obtenir une capacité de charge accrue de la sortie.



Un élément avec une puissance non connectée est représenté dans un diagramme avec une extrémité ombrée (voir. Fig.).

La première version de l'ordinateur contenait 4100 microcircuits, un élément OU-NON dans chacun, dans la deuxième version, qui était utilisée en vol, il y avait 2800 microcircuits, deux éléments OU-NON dans le cas.



La mémoire


La mémoire AGC se compose de 2 000 mots de RAM et de 36 000 mots de ROM. Seuls 12 bits sont alloués pour le champ d'adresse, ce qui permet d'adresser des mots 4K, et la mémoire est divisée en banques. Pour changer de banque, un registre spécial de 4 bits est utilisé, ce qui donne une adresse de 16 bits qui permet d'adresser 64Kwords.

Les banques de mémoire seront discutées plus en détail dans la section des logiciels système.

ROM


La ROM de l'ordinateur est réalisée en utilisant la technologie de la mémoire de corde (voir photo ci-dessous).



Apparence du module mémoire Rope:



Le principe de fonctionnement de la «mémoire de corde» est illustré dans la figure ci-dessous:



Malheureusement, la documentation des blocs Core Rope Memory n'a pas été conservée, mais les passionnés ont réussi à comprendre l'interface, à connecter le bloc à l'ordinateur et à lire le contenu, puis à l'exécuter sur le simulateur.

Le volume total de la ROM AGC est de 36 864 mots de 16 bits. AGC a 6 blocs ROM, chacun de 6 kiloslovol (soit environ 12 kb). Jusqu'à 192 fils codant les données sont passés (ou non passés) à travers chaque noyau chaque cœur code 192 bits.

Le firmware de chaque unité ROM a pris 8 semaines et a coûté 15 000 $. Tout cela a été fait manuellement.

RAM


La RAM AGC a une capacité de 2048 mots 16 bits. La RAM de l'ordinateur est constituée de noyaux magnétiques, comme la plupart des ordinateurs de l'époque.


Module RAM installé sur l'ordinateur.

On peut voir que le module RAM occupe la largeur de deux modules logiques ordinaires. La RAM est constituée de «plans», chacun correspondant à un bit dans le mot de données, au total des plans 16. Chaque plan représente un réseau de 64x32 anneaux, 2048 anneaux au total. Quatre conducteurs traversent chaque anneau: les lignes de coordonnées X et Y, la ligne de lecture et la ligne d'inhibition. Les lignes X et Y s'étendent respectivement verticalement et horizontalement, la ligne de lecture parcourt tous les anneaux d'un même plan en diagonale, et la ligne de l'interdiction d'écriture traverse également tous les anneaux du plan verticalement.

De plus, l'avion était appelé «tapis» (tapis). La figure ci-dessous montre un avion avec une taille de 64x32 anneaux.


Disposition des lignes de lecture


Module RAM sectionnel


Module RAM. Rayons X


Module RAM ouvert


Assemblage du module RAM

DSKY




DSKY signifie Display and Keyboard Unit, un module d'affichage et de clavier, et est conçu pour permettre l'interaction de l'AGC et de l'équipage.




DSKY démonté

En substance, DSKY n'est qu'un simple terminal pour AGC. Il est construit sur la base de relais qui commutent des segments de l'indicateur luminescent, alimentés par une tension de 250VAC avec une fréquence de 800 Hz, et sur des transistors. Dans les versions ultérieures de DSKY, les relais électromécaniques ont été remplacés par des thyristors, car ils ont introduit un retard important dans l'affichage des informations.


Schéma fonctionnel DSKY


Diagramme fonctionnel DSKY



La figure montre le schéma de connexion de l'écran. Relais polarisés utilisés avec deux enroulements, se souvenant de leur état. L'impulsion appliquée à un enroulement allume l'indicateur, à l'autre il s'éteint. Les enroulements de relais sont inclus dans la matrice.

L'AGC fournit un numéro de 15 bits au canal de sortie 010 (numéro de canal octal). Les bits 12 à 15 sont envoyés à un décodeur ayant 12 sorties comprenant des lignes de matrice.

L'unité a également des indicateurs séparés pour afficher les signaux PROG, TRACKER, GIMBAL LOCK et NO ATT, et d'autres signaux.

Les informations sont saisies à l'aide du clavier. Chaque bouton est éclairé par des lumières à une tension de 115VAC à une fréquence de 400 Hz. Lorsque chaque touche est enfoncée, à l'exception de PRO, un code 5 bits est généré. Le code est envoyé au port de l'ordinateur et une interruption est générée par laquelle le code est lu. Lorsque le bouton est relâché, un signal de réinitialisation spécial est généré. La touche STBY permet de mettre l'ordinateur en mode veille et de le remettre en mode de fonctionnement lorsque vous appuyez de nouveau sur.

Le clavier possède 10 touches numériques et 9 touches supplémentaires: VERBE, NOM, CLR, PRO, RELATION DES TOUCHES, ENTR, RÉINITIALISATION, + et -.



Les boutons contiennent des contacts de commutation qui sont activés de manière à exclure la génération de deux codes en même temps (voir la figure ci-dessous). Les codes clés entrent dans le port d'entrée AGC.



Une tension de + 28V est connectée au circuit du bouton. Connexion à un ordinateur comme suit:



Le filtre d'entrée protège le système contre les rebonds de contact et les interférences accidentelles.


Vue arrière DSKY

La procédure standard pour entrer une commande dans DSKY est la séquence: VERB-DIGIT-DIGIT, NOUN-DIGIT-DIGIT et ENTR. Cela reflète l'idéologie de l'interaction de l'utilisateur avec AGC: le verbe (VERBE) est entré, et le numéro d'action à effectuer, et le nom (NOM), également codé par le numéro, qui indique l'objet vers lequel l'action est dirigée. La liste des codes de verbe et de nom est contenue dans les instructions des astronautes.

Appuyez sur le bouton VERBE du clavier pour effacer l'indicateur VERBE. L'astronaute introduit ensuite deux nombres, qui sont interprétés comme le nombre du verbe, puis la même chose se fait avec le nom (NOM). Jusqu'à ce que le bouton ENTR soit enfoncé, les codes peuvent être corrigés en répétant l'entrée NOM ou VERBE. Après avoir appuyé sur ENTR, les chiffres sur les indicateurs VERBE et NOM clignotent toutes les 1,5 secondes, cela signifie que l'opérateur doit saisir des données qui dépendent de l'opération. Après cela, l'opération commence.


À l'intérieur de DSKY

Les données peuvent être saisies en octal et décimal. L'ordinateur estime que si le signe "+" ou "-" n'est pas entré, les données seront sous forme octale. Si vous appuyez sur les touches 8 ou 9 lors de la saisie d'un nombre octal, l'indicateur OPR ERR clignote. Si vous appuyez sur les touches "+" ou "-", le signe correspondant apparaît à l'écran, ce qui signifie que l'ordinateur est prêt à recevoir un nombre décimal. Si l'opérateur fait une erreur, il peut appuyer sur la touche CLR et répéter la saisie. Appuyez sur ENTR pour terminer l'entrée. Pour réinitialiser le signal OPR ERR et revenir en mode d'entrée, utilisez le bouton RSET.

Le bouton RSET est utilisé pour couper tous les signaux d'avertissement: TEMP, GIMBAL LOCK, PROG, RESTART et TRACKER. Cela peut être utile pour savoir si le signal d'avertissement était de courte durée ou si l'erreur qui l'a provoqué était présente.


À l'intérieur de DSKY

Le décodeur contient quatre pilotes de ligne de relais et un réseau de diodes, ainsi que des clés d'excitation pour les lignes de la matrice de relais. Les bits 12 à 15 sélectionnent l'une des lignes de la matrice de relais.


Décodeur à matrice relais

Voyons comment la ligne 1 est activée. Le code 0001 lui correspond. Il est fourni via l'interface A25 et le connecteur J9 sur le boîtier DSKY, et sur la ligne CE225 - CE228. Les signaux sont inversés, c'est-à-dire CE226 - CE228 accepte la valeur du journal. 1, et CE225 est le journal. 0. La logique 1 à l'entrée ferme le transistor Q1, le transistor Q2 est également fermé et le transistor Q3 est ouvert. Ainsi, pour les sorties des lignes X de CE226-CE228 et pour la sortie des lignes Y de CE225, l'état sera un journal. 1. La matrice de diodes possède 8 entrées connectées aux sorties directes et inverses des commutateurs à transistors (sorties X et Y sur la figure). Dans notre cas, les diodes CR53 des modules D2, D3 et D4, ainsi que la diode CR63 du module D5, doivent être polarisées en sens inverse. Si ces diodes sont fermées, le bloc CKT004 s'allume, excitant la ligne 1, tandis que la tension + 28V traverse le circuit Q1 (CKT011), R8, CR44, R9 (CKT004) et ouvre les transistors Q4, Q5 (CKT004). Lorsque les transistors s'ouvrent, ils connectent la première rangée de relais à zéro, ce qui signifie que la rangée est sélectionnée.

La rangée inférieure de diodes du réseau de diodes (CR54 dans les modules D2-D5) est utilisée pour détecter la présence d'un journal. 0 dans les bits 12-15 du canal 10. Si au moins un zéro est présent, au moins une des diodes est ouverte et la tension 0VDC est fournie à la source de tension des pilotes d'extraction de ligne. Si les quatre bits sont à 0, les quatre diodes sont fermées et une tension de + 28VDC est appliquée à l'entrée du pilote de puissance. Le transistor Q2 s'ouvre et le transistor Q3 se ferme. Le transistor Q1 est fermé, et la sortie du pilote est un circuit ouvert, et aucune tension n'est fournie aux pilotes de ligne.


Vue de dessous DSKY

Pour contrôler les indicateurs d'état et d'erreur, la matrice de relais du module pilote d'indicateur est utilisée (Fig.). En plus du relais, il contient 6 pilotes de transistor identiques (D1-D6).


Module pilote d'indicateur DSKY

La matrice de relais est illustrée dans la figure ci-dessous:


Matrice de relais

Chaque pilote de relais reçoit du bit 1-11 du canal 10. Considérons le bit 11 (circuit 006 dans le module D6). Si le bit 1 du canal 10 est défini pour se connecter. 1, il est inversé sur le circuit d'interface A25, sur le connecteur J9 du circuit CE224. Cela ouvre le transistor Q8, qui ferme le transistor Q9. Une tension de 28 V est présente à la borne 10 de la colonne de relais, y compris les signes "+" et "-" sur l'affichage. La ligne est sélectionnée par la matrice de diodes. En sélectionnant une ligne et une colonne, l'ordinateur peut commuter chaque relais individuel dans la matrice.

Les relais matriciels contrôlent les indicateurs DSKY. La ligne 12 contrôle les indicateurs d'état et les alarmes.


Codes de matrice de relais

Le tableau ci-dessus montre la correspondance entre le contenu du canal 10 et le chiffre indicateur contrôlé par le relais correspondant. Cinq relais contrôlent un chiffre. Les bits 6 à 10 sont utilisés pour contrôler le premier chiffre, les bits 1 à 5 contrôlent le deuxième chiffre, le bit 11 contrôle le signe ("+" ou "-"). Les codes numériques sont donnés dans le tableau:


Codes à chiffres

Journal 1 correspond à un relais activé.



Le tableau ci-dessus montre la correspondance des codes et des chiffres indiqués.

Le schéma de connexion des indicateurs au relais est illustré dans la figure ci-dessous.


Schéma d'une matrice relais d'indicateurs

Les circuits d'état et d'alarme sont constitués de pilotes et de relais non polarisés.


Circuits d'état et d'alarme

Par exemple, lorsque le signal ISS WARNING est dans le journal. 0, il ouvre le transistor Q13 et fournit + 28V au relais K21. Le relais K21 s'allume et transmet le signal d'entrée ALARM COMMON à l'écran et à la section PGNCS en tant que signal ISS WARNING.


Câble DSKY pour ordinateur et systèmes embarqués

Le DSKY est alimenté par 28V et 14V DC à partir de l'ordinateur, et un signal de synchronisation de 800 Hz est utilisé, qui est utilisé pour générer une tension de 250VAC avec une fréquence de 400 Hz pour alimenter l'affichage.


Schéma d'alimentation DSKY

La source d'alimentation se compose de trois étages de transistors push-pull, isolés par des transformateurs. Un signal rectangulaire d'une tension d'environ 14 V et d'une fréquence de 800 Hz est appliqué à l'entrée. Le niveau de tension peut être contrôlé à partir du panneau de l'engin spatial et sert à régler la luminosité des indicateurs. Les transformateurs T1 et T2 augmentent la tension, à la sortie il y a une self avec saturation L2. L'inductance est nécessaire pour stabiliser la tension sur les indicateurs. Les indicateurs sont une charge capacitive, la valeur de la capacité dépend du nombre d'indicateurs allumés. Les modifications de la charge entraînent une modification de la tension dans le circuit de rétroaction, qui est envoyée à travers le pont redresseur à l'enroulement de commande L2. Si plusieurs indicateurs sont allumés, la tension au niveau de l'enroulement de commande augmente, le noyau commence à devenir saturé, si le nombre d'indicateurs allumés diminue, la tension à l'enroulement de contrôle diminue, le noyau cesse de saturer, de sorte que la tension de sortie est maintenue constante.


Une première version de DSKY. Cette option n'a pas été utilisée en vol.

Littérature et références:



1. L'ordinateur de guidage Apollo: architecture et fonctionnement. Frank O'Brien, Springer Praxis Books, 2010

2. Le concept d'AGC

3. http://www.righto.com/ Blog avec un tas d'articles sur AGC

4. https://hackaday.com/2016/09/02/decoding-rediscovered-rope-memory-from-the-apollo-guidance-computer/ - Décodage de la mémoire de corde redécouverte depuis l'ordinateur de guidage Apollo

5. https://hackaday.com/2016/07/05/don-eyles-walks-us-through-the-lunar-module-source-code/ - Don Eyles nous guide à travers le code source du module lunaire

6. https://github.com/chrislgarry/Apollo-11 - référentiel avec les codes source du logiciel

7. https://github.com/shirriff/rope-simulator - référentiel avec des circuits de simulateur ROM.

8. https://dodlithr.blogspot.com/search/label/Apollo%20Systems - une large sélection de documents sur AGC et DSKY.

9. http://www.ibiblio.org/apollo/ - simulateur AGC en ligne.

10. https://github.com/virtualagc - un référentiel avec beaucoup d'informations utiles, y compris la version Verlog d'AGC, ainsi que des circuits et des cartes de réplique AGC, et des schémas AGC et DSKY originaux (dans le référentiel https://github.com/virtualagc / virtualagc )

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


All Articles