Apollo-Bordsteuerungscomputer: Messstab und technische Analyse des Speichers auf mehreren zusammengefügten Kernen

Der Steuercomputer (Apollo Guidance Computer, AGC) befand sich an Bord des Apollo-Raumfahrzeugs und half dem Schiff, zum Mond zu gelangen und auf seiner Oberfläche zu landen. Die AGC-Software wurde physisch in einen Nur-Lese-Speicher-Kernkernspeicher [Kernseilspeicher] verwoben. Ken Shirrif und Gleichgesinnte bauen AGC (siehe Abbildung unten) neu auf, das nicht über genügend Speicher auf den Kernen verfügt, statt dessen Simulatorboxen mit diesem Speicher installiert sind. Diese Boxen wurden während der Programmentwicklung und des Bodentests verwendet, sodass die Ingenieure nicht ständig den Speicher flashen mussten. Der Simulator hat keine Dokumentation, so dass ich [der Autor des Blogeintrags / ca. transl.] führte seine technische Analyse durch, baute die Schnittstelle zusammen und startete mit dem Simulator Programme auf unserer AGC. Dabei stießen wir jedoch auf einige Schwierigkeiten.


AGC-Computer mit abgenommener Abdeckung. Sie können das Motherboard mit einer Reihe von Kabeln sehen. An den Speicherplätzen sind Simulationsfelder sichtbar. Schnittstellenkarten im Vordergrund sind modern.

Speicher auf mehreren zusammengefügten Kernen


Die AGC hatte sechs Speichermodule auf mehreren zusammengefügten Kernen, von denen jeder nur 6 Kiloslovol Informationen (ungefähr 12 Kb) speicherte. Die Speichermodule waren ein bisschen wie ROM-Kassetten für ein Videospiel und hielten die Software in einer konstanten, aber löschbaren Form. Programme wurden aufgezeichnet, indem Drähte durch Magnetkerne gewebt wurden. Der Draht, der durch den Kern verläuft, ist mit Bit 1 und der Bypass mit Bit 0 bezeichnet. Durch Weben von 192 Drähten durch oder um den Kern konnten 192 Bits gespeichert werden, was eine viel höhere Dichte ergab als der wiederbeschreibbare Speicher auf Magnetkernen, in denen ein Bit pro Kern gespeichert war.


Speicher auf mehreren zusammengefügten Kernen (Block I) mit AGC

Das Erstellen eines solchen Speichers war ein mühsamer Prozess, der 8 Wochen dauerte und 15.000 USD pro Modul kostete. Erfahrene Frauen führten die Drähte manuell durch und blitzten die Kerne nacheinander mit einer Hohlnadel auf, durch die der Draht gefädelt wurde (siehe Abbildung unten). Sie wurden von einem automatischen System unterstützt, das das Programm vom Lochstreifen las und ein Loch über der Anordnung der Kerne platzierte. Der Weber führte die Nadel durch das Loch und führte den Draht, wo nötig. Danach wurde der Speicher zusammen mit Hunderten von Widerständen und Dioden auf dem Modul montiert und zur Zuverlässigkeit im Flug mit Epoxidharz gefüllt.


Eine Frau lässt eine permanente Erinnerung aufblitzen und führt ein Programm ein

Speichersimulator für wiederholt zusammengenähte Kerne


Das Flashen des Speichers nahm viel Zeit und Geld in Anspruch, sodass beim Testen und Entwickeln eine Alternative erforderlich war. Anstelle von zusammengefügten Kernen verwendete die NASA ihre Simulatoren, sodass die AGC Daten von einem externen System herunterladen konnte. Unsere AGC wurde für Bodentests verwendet, hatte also keine zusammengenähten Kerne, sondern einen Simulator. Es besteht aus zwei Boxen, die mit den Anschlüssen für zusammengefügte Kerne verbunden sind, und jede Box belegt drei Speichersteckplätze. Sie sind auf der linken Seite der AGC auf dem Foto unten zu sehen und verfügen über runde militärische Anschlüsse für den Anschluss an einen externen Computer.


Auf der linken Seite der AGC sind Simulatorboxen anstelle von echten Speichermodulen installiert.

Obwohl wir eine detaillierte Dokumentation für die AGC haben, konnte ich die Dokumentation für den Simulator nicht finden. Ich musste eine technische Analyse anwenden, alle Schemata befolgen und erkennen, was die Boxen tun. Externes Studium von ihnen gibt wenig. Auf einer Seite jeder Box befindet sich ein MIL-Spec-Anschluss zum Anschließen an ein externes System. Auf der anderen Seite sind drei Gruppen von 96 Pins mit der AGC verbunden. Jede Gruppe von Kontakten ersetzt ein Speichermodul auf den Kernen.



Das Öffnen der Kartons zeigte nicht standardmäßige Montagetechniken. Teilweise in den Konturen wurde eine Methode verwendet, die strukturell ähnlich wie Cordholz war - die Komponenten wurden vertikal mit Löchern im Metallblock montiert . Auf beiden Seiten der Einheit wurden die Kontakte mit den Drähten verlötet. Andere Schaltkreise in den Boxen verwendeten standardmäßige integrierte Schaltkreise (TTL 7400). Im Gegensatz zu modernen Leiterplatten wurden die Chips jedoch in Kunststoffmodulen mit der Bezeichnung „Dipstik“ montiert [ Dipstik, dt. - Sonde ] und wurden mit Drähten zusammengewickelt.



Cordwood Layout


Das „Cordwood“ -Layout wurde in der AGC aktiv zur Erstellung analoger Schaltkreise verwendet und ist auch in den Speichersimulatoren vorhanden (siehe Foto unten). Die weißen Kreise in der Mitte sind die Enden der Widerstände und Dioden, die vertikal im Modul montiert sind und deren Kontakte auf beiden Seiten verlötet sind. Die Komponenten sind wie Holzstämme dicht gepackt, weshalb dieses Layout als Cordholz bezeichnet wird. Impulstransformatoren befinden sich unter großen grauen Kreisen. Auf der anderen Seite des Moduls befinden sich dieselben, und ihre orangefarbenen, gelben, roten und braunen Drähte kommen aus den Löchern. Schwarze Drähte verbinden die Cordwood-Schaltung mit der digitalen Logik. Oben auf dem Foto sehen Sie die Stifte, an denen die Dioden und Widerstände montiert sind, sowie die Verbindung mit den an die AGC angeschlossenen Kontakten.



Das Hauptziel des Cordwood-Layouts besteht darin, eine elektrische Isolation zwischen AGC-Schaltkreisen und Speichersimulatorboxen bereitzustellen. In modernen Schaltungen erfüllen Optoisolatoren diese Funktion, aber Simulatoren verwendeten stattdessen kleine Impulstransformatoren. Da jede Box Signale empfängt, die für drei verschiedene Speichermodule ausgelegt sind, kombinieren viele Dioden drei Signale zu einem. Widerstände steuern den Strom, der durch Impulstransformatoren fließt.

Das Verständnis der Struktur analoger Cordwood-Schaltkreise war schwierig. Erstens ist die Komponente nicht sichtbar, da sie in das Modul integriert ist. Ich musste ein Multimeter verwenden, um zu verstehen, wo sie sind. Zweitens habe ich viel Zeit damit verbracht, die Box auf der Suche nach den richtigen Kontakten umzudrehen, da die Kontakte auf beiden Seiten im Cordwood-Layout angezeigt werden. Schließlich konnte ich keine bequeme Möglichkeit finden, ein Layoutdiagramm eines Cordholzes zu zeichnen, das kein Labyrinth von Linien erzeugte.

Digitale Logik und Ölmessstab


Dipstik war ein Plug-In, das 1968 eingeführt wurde, um das Prototyping von integrierten Schaltkreisen zu erleichtern. Er ersetzte Leiterplatten durch ein Verpackungssystem mit doppelter Dichte.



Die Idee war im Kunststoffblock des Steckers mit dem Anschluss der Wickelkontakte von unten, um den Stromkreis anzuschließen. Integrierte Schaltkreise wurden auf einem Halter montiert, der in den Verbindungsblock eingesetzt war. Der Halter oben hatte Lötohren zum Installieren zusätzlicher Komponenten, wie z. B. Entkopplungskondensatoren. Das Foto unten zeigt Ölmessstabmodule mit einem herausgezogenen Halter. Jeder Halter enthielt 5 IPs. Die IC-Kontakte wurden zwischen den Kontakten des Halters und den Kontakten des Anschlussblocks platziert. Diese Idee schien gut zu sein, aber am Ende war sie unzuverlässig. Deepstick war ein gescheitertes Projekt.



Das Foto unten zeigt die Kontakte, die mit Hilfe der Drahtwicklung von der Unterseite der Ölmessstäbe verbunden wurden. Es war äußerst schwierig für mich, sie aufzuspüren, es war unmöglich, jeden Posten im Meer identischer blauer Drähte zu durchlaufen. Ich musste alles mit einem Multimeter anrufen. Dann konnte ich ein schematisches Diagramm zeichnen und darüber nachdenken, was es tut. Insgesamt wurden im Simulator ca. 50 ICs eingesetzt.



Gemessen an der Kennzeichnung der Komponenten wurden die Simulatorboxen 1971 zusammengebaut. Und obwohl seit dem Entwurf der AGC nur wenige Jahre vergangen sind, sehen die Technologien in den Simulatoren bereits fortschrittlicher aus, was den raschen Fortschritt des geistigen Eigentums von Mitte der 1960er bis Anfang der 1970er Jahre zeigt. AGC wurde auf der Basis einfacher integrierter Schaltungen zusammengesetzt, von denen jede zwei NOR-Gatter und eine integrierte primitive Widerstandstransistorlogik (RTL) enthält. In den Simulatorboxen befinden sich bereits komplexere Chips der Serie 7400, die mehr als zehn Elemente in der Transistor-Transistor-Logik (TTL) enthalten. Im Gegensatz zu veralteten flachen ICs in AGC verwenden Simulatorboxen Chips im DIP-Paket (Dual Inline Package), und solche Fälle werden immer noch verwendet.

Ergebnisse der technischen Analyse


Nachdem ich alle Konturen verfolgt hatte, erkannte ich, wie der Simulator funktioniert, und zeichnete die Diagramme . Tatsächlich dekodiert eine Box die Adresse, von der aus auf den Zugriff zugegriffen wird, und die zweite sendet die erforderlichen Daten an die AGC (ich werde sie als "Adressbox" und "Datenbox" bezeichnen).

Das Adressfeld empfängt die Signale und wandelt sie in Binärsignale um. Die Aufgabe ist nicht einfach, da die Signale in Form von Hochstromimpulsen und einer 14-V-Spannung vorliegen, die zum Schalten von Kernen ausgelegt sind. Außerdem werden diese Impulse zeitlich getrennt, da einige den Kern in eine Richtung schalten, während andere zurückschalten. Schließlich enthalten die an die Kerne gesendeten Impulse nicht nur eine Adresse, sondern auch ein Signal zum Auswählen eines der 6 Module und zum Auswählen eines der 12 Threads im Modul.

Die Adressbox verwendet Impulswandler, die 14-V-Impulse in TTL-Signale umwandeln. Es enthält eine Reihe von UND-ODER-Logik zum Konvertieren von Signalen in binäre Adressen (und dies ist nicht trivial, da jedes Modul 6 Kiloslovol enthält, ist dies keine Zweierpotenz, so dass viele bitweise Manipulationen erforderlich sind). Flip Flops blockieren eine Adresse, wenn eine verfügbar ist. Schließlich steuert die RC-Schaltung des Multivibrators das Timing und bestimmt anhand verschiedener Signale die Verfügbarkeit der Adresse und wann das Ergebnis an die AGC gesendet werden soll.

Die Datenbox ist einfacher. Es empfängt 16 Datenbits von einem externen System und sendet Signale an AGC-Verstärker, wobei Millivolt-Signale vom Kern simuliert werden. Diese Signale werden von Impulswandlern erzeugt. Das Adressfeld und das Datenfeld kommunizieren über die Drähte der AGC-Rückwandplatine.

Boxen kommunizieren mit einem externen System über Differenzsignale, um Störungen durch lange Kabel zu vermeiden. Die Boxen enthalten 5-V-LM109-Regler, die TTLs versorgen. Eine Box empfängt einen ungeregelten Gleichstrom über einen externen Anschluss und sendet einen ungeregelten Gleichstrom über eine AGC-Rückwandplatine an einen anderen (was für mich ziemlich seltsam ist).



BeagleBone als Schnittstelle


Nachdem wir uns mit der Arbeit des Simulators befasst hatten, war es notwendig, eine Schnittstelle zu erstellen, die Daten aus dem Programm an den Simulator liefern kann. Ich habe BeagleBone verwendet , einen winzigen Linux-basierten Single-Board-Computer. Der Vorteil von BeagleBone besteht darin, dass es über schnelle Mikrocontroller verfügt, die in Echtzeit auf Speicheranforderungen von AGC reagieren können.


Die Schnittstelle ist die Karte, die im BeagleBone steckt. Jedes der beiden Kabel geht zu seinem Box-Simulator.

Ich habe eine Schnittstellenkarte für die Verbindung mit einem BeagleBone entworfen. Es ist ganz einfach: Die differentiellen linearen Empfänger AM26C32 , die die differentiellen Signale des Simulators in 3,3-V-Logiksignale für BeagleBone umwandeln, und die differentiellen linearen Treiber AM26C31 zum Senden von Signalen an den Simulator. Ich habe das Board bei KiCad entworfen und die Produktion bei PCBWay bestellt , dem Sponsor der Restaurierung von AGC.

Ich habe ein Programm geschrieben, das auf einem BeagleBone-Mikrocontroller, PRU, ausgeführt wird. Dies ist in der Tat eine Zustandsmaschine, die auf die Adresse aus der Simulatorbox wartet, auf das Zeitsignal wartet, das Wort aus dem BeagleBone-RAM liest und das Wort an den Simulator sendet. Ich habe das Programm auf Github gepostet.

Simulatorprobleme


Speichersimulatoren auf wiederholt zusammengefügten Kernen wurden nicht gemäß den Apollo-Standards für Bordsteuercomputer zusammengebaut, weshalb ich lange Zeit zum Debuggen benötigen musste. Viele Verbindungen waren unterbrochen, sie mussten erneut gelötet werden (ich weiß nicht, ob sie von Zeit zu Zeit unterbrochen wurden oder wann ich das Arbeitsschema verstanden habe). Wir haben auch einen Kurzschluss in einem Messstab und einen fehlerhaften IC gefunden.



Am allermeisten waren die Probleme mit Teststäbchen, da viele Kontakte zwischen Teststäbchen und IP verteilt waren. Das Problem bestand darin, dass sich die Kontakte des IC in der Art eines Sandwichs zwischen den Kontakten am Ölmessstabhalter und dem Block befanden, in den sie eingesetzt wurden. Kunststoffmessstäbe biegen sich nach außen, weshalb die Kontakte regelmäßig nicht funktionieren. Nachdem Mark die Beine des IP in Form des Buchstabens S gebogen hatte, gelang es ihm, ihnen zumindest für eine Weile Kontakt von beiden Seiten zu verschaffen. Aber nach ein paar Stunden bogen sich die weichen Beine des IC zurück und die Kontakte funktionierten wieder schlecht, sodass wir keine langfristige Lösung für dieses Problem hatten.

Das interessanteste Problem war das Rennen zweier Signale der AGC, die gleichzeitig anhalten sollten. Sie speisten beide Enden der Spule des Impulswandlers, die kein Signal geben sollte. Ein Signal blieb jedoch hinter dem anderen zurück, was zum Auftreten eines Störimpulses führte. Leider war die digitale Logik in der Simulatorbox asynchron, dieser Impuls blockierte das falsche Bit der Adresse in den Flip-Flops und infolgedessen trat der Zugriff auf die falsche Stelle im Speicher auf. Infolgedessen haben wir dieses Problem verfolgt und zusätzliche Kondensatoren installiert, die den Impuls filtern. Leider haben wir zu große Kondensatoren genommen und das Signal wurde in anderen Fällen zu stark verzögert, was zum Auftreten anderer Fehler führte. Dann haben wir kleinere Kondensatoren eingesetzt und es schließlich geschafft, Programme auf AGC mit Vintage-Core-Memory-Simulatoren erfolgreich auszuführen.

Fazit


Der integrierte Bordcomputer von Apollo verwendet Speicher für mehrere zusammengefügte Kerne. Da es unpraktisch wäre, ein solches Gedächtnis während der Entwicklung ständig neu zu erstellen, wurden stattdessen Simulatoren verwendet. Ich führte eine technische Analyse des Simulators durch und erstellte mit BeagleBone eine Schnittstelle für dessen Betrieb. Wir haben AGC-Programme erfolgreich über diese Schnittstelle gestartet. Der Speichersimulator erwies sich jedoch als problematisch und unzuverlässig.

@CuriousMarc hat ein Video erstellt, in dem unsere Arbeit mit dem Speichersimulator detailliert beschrieben wird:

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


All Articles