Хабрахабр

Apollo Guidance Computer — архитектура и системное ПО. Часть 1

Ссылка на часть 2

Тем, кто хочет изучить тему подробно, я рекомендую книгу [1] и другие материалы, ссылки на которые приведены в конце статьи. В предлагаемой вашему вниманию публикации рассмотрены основы архитектуры, аппаратной структуры, и структуры системного ПО бортового компьютера миссий Apollo — AGC (Apollo Guidance Computer).

Apollo Guidance Computer

В обоих случаях он крепился на «холодную плиту» с циркулирующей водно-гликолевой смесью, для охлаждения. В программе Аполлон этот компьютер использовался в двух космических аппаратах: в командном модуле и в лунном модуле.


Водоблок с трубками для подключения охлаждающей жидкости

Его предшественник, AGC-3 был построен на феррит-транзисторных ячейках. Интересный факт: полное название компьютера, использовавшегося в программе Аполлон — AGC-4, так как имелись более ранние разработки.


Структурная схема системы навигации

Используемые сокращения:

AOT — Alignment Optical Telescope
LR — Landing Radar
RR — Rendezvous Radar
CDU — Coupling Data Unit
DSKY — (AGC) Display and Keyboard
LGC — LM Guidance Computer (or AGC)
PTA — Pulse Torque Assembly
IMU — Inertial Measurement Unit
PSA — Power Servo Assembly
OSS — Optical Subsystem
ISS — Inertial Subsystem
RS — Radar Subsystem
Технические характеристики

Спецификация

Длина слова: 16 бит (14 бит + знак + чётность)
Память: ROM (rope core) 36Kслов; RAM (core) 2Kслов
Цикл обращения к памяти (ROM и RAM) — 11,72 мкс
Устройства ввода-вывода: DSKY (два устройства в корабле)
Быстродействие: время сложения — 20 мкс
Тактовая частота: 2.048 МГц
Технология: биполярная РТЛ, планарные корпуса
Размеры: AGC — 24" x 12.5" x 6" (HWD) (61 см x 32 см x 15 см); DSKY — 8" x 8" x 7" (HWD) (20 см х 20 см х 18 см)
Вес: AGC — 70 фунтов (32 кг); DSKY — 17.5 фунтов (8 кг)
Напряжение питания 28 В.
Потребление: режим работы: 70 Вт @ 28VDC; режим ожидания 15.0 Вт
Количество произведённых устройств: AGC: 75; DSKY: 138
Стоимость: неизвестно. В 2009 году DSKY был продан с аукциона за $50788.

Но несмотря на это, инженеры опасались, что новые цифровые микросхемы могут выйти из строя в космосе, поэтому в ранних версиях предусмотрели возможность замены блоков. Компьютер был полностью герметично закрыт, и не содержал каких-либо частей, нуждающихся в обслуживании. В последующих версиях, когда все убедились в надёжности компьютера, требование к ремонтопригодности было исключено из ТЗ.


Рисунок AGC из технической документации


AGC в открытом виде

Половины корпуса имеют разъёмы, которыми соединяются друг с другом электрические цепи. Корпус AGC состоит из двух половин, с установленными модулями. О них пойдёт речь ниже. В середине правой половины корпуса расположены модули ОЗУ, отсутствующие на фотографии.

Основы схемотехники

Схема микросхемы приведена на рисунке выше. Компьютер полностью построен на микросхемах, которые содержат по два элемента NOR-3 (тревходовое ИЛИ-НЕ), и выполнены по резисторно-транзисторной технологии. 1, т.к. Принцип действия такого элемента прост: если вывод 5 соединить с 0, а вывод 10 — с плюсом питания, то, если на входах 2-4 нули, то транзисторы 1-3 (если считать слева направо) будут закрыты, и на выходе 1 будет лог. Если хотя бы на один вход подать 1, то соответствующий транзистор откроется, и притянет выход 1 к нулю. он притянут к плюсу резистором.

При этом достаточно оставить питание (вывод 10) подключенным только к одному элементу. Легко видеть, что при соединении двух или более выходов этих элементов образуется функция AND (И). Но иногда питание оставляют подключенным у всех элементов, соединённых выходами, это позволяет получить повышенную нагрузочную способность выхода.

рис). Элемент с неподключенным питанием изображается на схеме с заштрихованным концом (см.

Первая версия компьютера содержала 4100 микросхем, по одному элементу ИЛИ-НЕ в каждом, во второй версии, которая использовалась в полётах, было 2800 микросхем, по два элемента ИЛИ-НЕ в корпусе.

Память

Память AGC состоит из ОЗУ объёмом 2Кслова и ПЗУ объёмом 36Кслов. Под поле адреса отводится всего 12 бит, что позволяет адресовать 4Кслова, и память разделена на банки. Для переключения банков используется специальный регистр размером 4 бита, что даёт в результате 16битный адрес, позволяющий адресовать 64Кслов.

Более подробно банки памяти будут обсуждаться в разделе, посвящённом системному ПО.

ПЗУ

ПЗУ компьютера выполнено по технологии rope memory (см. фото внизу).

Внешний вид модуля Rope memory:

Принцип действия «верёвочной памяти» (rope memory) проиллюстрирован на рисунке снизу:

К сожалению, документация на блоки Core Rope Memory не сохранилась, но энтузиасты сумели разобраться с интерфейсом, подключить блок к компьютеру и считать содержимое, а затем запустить его на симуляторе.

AGC имеет 6 блоков ПЗУ, каждый по 6 килослов (т.е. Общий объём ПЗУ AGC составляет 36,864 слов по 16 бит. Через каждый сердечник пропущено (или не пропущено) до 192 проводов, кодирующих данные, т.е. около 12 кб). каждый сердечник кодирует 192 бита.

Всё это делалось вручную. Прошивка каждого блока ПЗУ занимала 8 недель и обходилась в $15000.

ОЗУ

ОЗУ AGC имеет объём 2048 16-битных слов. ОЗУ компьютера выполнено на магнитных сердечниках, как и у большинства компьютеров того времени.


Модуль ОЗУ, установленный в компьютер.

ОЗУ состоит из «плоскостей» (planes), каждая из которых соответствует биту в слове данных, всего плоскостей 16. Видно, что модуль ОЗУ занимает ширину двух обычных модулей логики. Через каждое кольцо проходит четыре проводника: координатные линии X и Y, линия считывания и линия запрета записи (inhibit line). Каждая плоскость представляет собой решётку 64x32 кольца, всего 2048 колец. Линии X и Y илут соответственно вертикально и горизонтально, линия считывания проходит через все кольца одной плоскости по диагональным направлениям, а линия запрета записи проходит также через все кольца плоскости вертикально.

На рисунке ниже представлена одна плоскость размером 64x32 кольца. Также плоскость называлась «ковриком» (mat).


Схема укладки линии считывания


Модуль ОЗУ в разрезе

Рентгеновский снимок
Модуль ОЗУ.


Модуль ОЗУ в открытом виде


Модуль ОЗУ в сборе

DSKY

DSKY расшифровывается как Display and Keyboard Unit, модуль дисплея и клавиатуры, и предназначен для обеспечения взаимодействия AGC и экипажа.


DSKY в разобранном виде

Он построен на основе реле, которые переключают сегменты люминисцентного индикатора, питающиеся напряжением 250VAC частотой 800 Гц, и на транзисторах. По сути, DSKY является просто простым терминалом к AGC. В более поздних версиях DSKY электромеханические реле были заменены тиристорами, так как вносили существенную задержку при отображении информации.


Структурная схема DSKY


Функциональная схема DSKY

Используются поляризованные реле с двумя обмотками, запоминающие своё состояние. На рисунке показана схема подключения дисплея. Обмотки реле включены в матрицу. Импульс, поданный на одну обмотку, включает индикатор, на другую — выключает.

Биты 12-15 подаются на декодер, имеющий 12 выходов, включающих строки матрицы. AGC подаёт в выходной канал 010 (восьмеричный номер канала) 15-битное число.

Также блок имеет отдельные индикаторы для отображения сигналов PROG, TRACKER, GIMBAL LOCK и NO ATT, и других сигналов.

Каждая кнопка подсвечивается лампочками на напряжение 115VAC частотой 400 Гц. Ввод информации осуществляется с клавиатуры. Код подаётся на порт компьютера, и генерируется прерывание, по которому код считывается. При нажатии каждой клавиши, кроме PRO, генерируется 5-битный код. Клавиша STBY используется для перевода компьютера в режим ожидания, и обратно в режим работы, при повторном нажатии. Когда кнопка отпускается, генерируется специальный сигнал reset.

Клавиатура имеет 10 цифровых клавиш, и 9 дополнительных клавиш: VERB, NOUN, CLR, PRO, KEY REL, ENTR, RESET, +, и -.

рисунок ниже). Кнопки содержат переключающие контакты, включенные теким образом, чтобы исключить генерацию двух кодов одновременно (см. Коды клавиш поступают в порт ввода AGC.

Подключение к компьютеру выполнено следующим образом: К цепи кнопок подведено напряжение +28В.

Фильтр на входе предохраняет систему от дребезга контактов и случайных помех.


DSKY, вид сзади

Это отражает идеологию взаимодействия пользователя с AGC: вводится глагол (VERB), и номер действия, которое нужно сделать, и существительное (NOUN), также кодируемое номером, которое указывает объект, на который направлено действие. Стандартной процедурой ввода команды в DSKY является последовательность: VERB-DIGIT-DIGIT, NOUN-DIGIT-DIGIT и ENTR. Список кодов глаголов и существительных содержится в инструкции, которая была у астронавтов.

Затем астронавт вводит две цифры, которые интерпретируются как номер глагола, затем то же самое делается с существительным (NOUN). Нажатие кнопки VERB на клавиатуре очищает индикатор VERB. После нажатия ENTR каждые 1. До тех пор, пока кнопка ENTR не нажата, коды можно исправить повторением ввода NOUN или VERB. После этого начинается выполнение операции. 5 секунды мигают цифры на индикаторах VERB и NOUN, это означает, что оператор должен ввести данные, зависящие от операции.


Внутри DSKY

Компьютер считает, что если знак "+" или "-" не введён, то данные будут в восьмеричной форме. Данные могут вводиться в восьмеричной и десятичной форме. Если нажаты клавиши "+" или "-", то соответствующий знак появляется на дисплее, означая, что компьютер готов к приёму десятичного числа. Если при вводе восьмиричного числа нажать кнопки 8 или 9, будет мигать индикатор OPR ERR. Нажатие на ENTR завершает ввод. Если оператор ошибся, он может нажать на клавишу CLR и повторить ввод. Для сброса сигнала OPR ERR и возврата в режим ввода используется кнопка RSET.

Это может быть полезно для того, чтобы выяснить, был ли предупреждающий сигнал кратковременным или вызвавшая его ошибка присутствует в данный момент. Кнопка RSET используется для гашения всех предупреждающих сигналов: TEMP, GIMBAL LOCK, PROG, RESTART и TRACKER.


Внутри DSKY

Биты 12-15 выбирают один из рядов релейной матрицы. Декодер содержит четыре драйвера линий реле и диодную матрицу, а также ключи возбуждения строк релейной матрицы.


Декодер релейной матрицы

Ему соответствует код 0001. Рассмотрим, как включается ряд 1. Сигналы подаются в инверсной форме, т.е. Он подаётся через интерфейс A25 и разъём J9 на корпусе DSKY, и на линии CE225 — CE228. 1, а CE225 — лог. CE226 — CE228 принимают значение лог. Логическая 1 на входе закрывает транзистор Q1, транзистор Q2 также закрыт, и транзистор Q3 открыт. 0. 1. Таким образом, для выходов X линий CE226-CE228 и для выхода Y линии CE225 состоянием будет лог. В нашем случае диоды CR53 модулей D2, D3 и D4, а также диод CR63 модуля D5 должны быть смещены в обратном направлении. Диодная матрица имеет 8 входов, подключенных к прямым и инверсным выходам транзисторных ключей (выходы X и Y на рисунке). Транзисторы, открывшись, подключают первый ряд реле к нулю, что означает, что ряд выбран. Если эти диоды закрыты, включается блок CKT004, возбуждающий ряд 1, при этом напряжение +28В проходит по цепи Q1 (CKT011), R8, CR44, R9 (CKT004) и открывает транзисторы Q4, Q5 (CKT004).

0 в битах 12-15 канала 10. Нижний ряд диодов в диодной матрице (CR54 в модулях D2-D5) используется для детектирования наличия лог. Если все четыре бита равны 0, то все четыре диода закрыты, и напрядение +28VDC приложено к входу драйвера питания. Если хотя бы один ноль присутствует, хотя бы один из диодов открыт и напряжение 0VDC подаётся на источник напряжения драйверов выборки строки. Транзистор Q1 закрыт, и выход драйвера представляет собой разомкнутую цепь, и напряжение на драйвера строк не подаются. Транзистор Q2 открывается, и транзистор Q3 закрывается.


DSKY, вид снизу

). Для управления индикаторами статуса и ошибок используется релейная матрица в модуле драйвера индикатора (рис. Кроме реле, она содержит 6 идентичных транзисторных драйверов (D1-D6).


Модуль драйвера индикаторов DSKY

Релейная матрица показана на рисунке ниже:


Релейная матрица

Рассмотрим бит 11 (цепь 006 в модуле D6). Каждый драйвер реле принимает от биты 1-11 канала 10. 1, он в инверсном виде поступает в интерфейсную цепь A25, на разъём J9 в цепь CE224. Если бит 1 канала 10 установлен в лог. Напряжение 28В присутствует на выводе 10 столбца реле, включающего знаки "+" и "-" на дисплее. Это открывает транзистор Q8, который закрывает транзистор Q9. Путем выбора строки и столбца компьютер может переключать каждое единичное реле в матрице. Диодной матрицей выбирается строка.

Ряд 12 управляет индикаторами состояния и аварийными сигналами. Реле матрицы управляют индикаторами DSKY.


Коды матрицы реле

Одной цифрой управляет пять реле. В таблице выше приведено соответствие между содержимым канала 10 и цифрой индикатора, управляемой соответствующим реле. Коды цифр приведены в таблице: Биты 6-10 используются для управления первой цифрой, биты 1-5 управляют второй цифрой, бит 11 управляет знаком ("+" или "-").


Коды цифр

1 соответствует включенному реле. Лог.

В таблице выше показаны соответствия кодов и индицируемых цифр.

Схема подключения индикаторов к реле приведена на рисунке ниже.


Схема релейной матрицы индикаторов

Цепи состояния и аварийных сигналов состоят из драйверов и неполяризованных реле.


Цепи состояния и аварийных сигналов

0, он открывает транзистор Q13 и подаёт питание +28В на реле K21. Например, когда сигнал ISS WARNING находится в лог. Реле K21 включается и пропускает входной сигнал ALARM COMMON на дисплей и в секцию PGNCS как сигнал ISS WARNING.


Кабель подключения DSKY к компьютеру и бортовым системам

Питание блока DSKY осуществляется напряжениями 28В и 14В постоянного тока, поступающими с компьютера, также подаётся сигнал синхронизации частотой 800 Гц, который используется для генерации напряжения 250VAC частотой 400 Гц для питания дисплея.


Схема источника питания DSKY

На вход подаётся прямоугольный сигнал напряжением около 14В и частотой 800 Гц. Источник питания состоит из трёх двухтактных транзисторных каскадов, развязанных трансформаторами. Трансформаторы T1 и T2 повышают напряжение, на выходе стоит дроссель с насыщением L2. Уровень напряжения может управляться с панели космического корабля и служит для регулировки яркости индикаторов. Индикаторы являются ёмкостной нагрузкой, величина ёмкости зависит от количества включенных индикаторов. Дроссель нужен для стабилизации напряжения на индикаторах. Если включено больше индикаторов, напряжение на управляющей обмотке увеличивается, сердечник начинает входить в насыщение, если количество включенных индикаторов уменьшается, то напряжение на управляющей обмотке уменьшается, сердечник выходит из насыщения, таким образом напряжение на выходе поддерживается постоянным. Изменения в нагрузке вызывают изменение напряжения в цепи обратной связи, которое через мостовой выпрямитель подаётся на управляющую обмотку L2.

Этот вариант не использовался в полётах.
Ранний вариант DSKY.

Литература и ссылки:

The Apollo Guidance Computer: Architecture and Operation. 1. Frank O'Brien, Springer Praxis Books, 2010

Принципиальная схема AGC 2.

http://www.righto.com/ Блог с кучей статей по AGC 3.

https://hackaday.com/2016/09/02/decoding-rediscovered-rope-memory-from-the-apollo-guidance-computer/ — Decoding Rediscovered Rope Memory From The Apollo Guidance Computer 4.

https://hackaday.com/2016/07/05/don-eyles-walks-us-through-the-lunar-module-source-code/ — Don Eyles Walks Us Through The Lunar Module Source Code 5.

https://github.com/chrislgarry/Apollo-11 — репозиторий с исходными кодами ПО 6.

https://github.com/shirriff/rope-simulator — репозиторий со схемами симулятора ПЗУ. 7.

https://dodlithr.blogspot.com/search/label/Apollo%20Systems — большая подборка материалов по AGC и DSKY. 8.

http://www.ibiblio.org/apollo/ — онлайновый симулятор AGC. 9.

https://github.com/virtualagc — репозиторий с множеством полезной информации, включая Verlog-версию AGC, а также схемы и платы реплики AGC, и оригинальные схемы AGC и DSKY (в репозитории https://github.com/virtualagc/virtualagc) 10.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Проверьте также

Закрыть
Кнопка «Наверх»
Закрыть