Бортовой управляющий компьютер «Аполлона»
Бортовой управляющий компьютер КА Аполлон (Apollo Guidance Computer, AGC) проводил вычисления и контролировал движение, навигацию, и управлял командным и лунным модулями в ходе полётов по программе Аполлон. Отличительной особенностью конструкции компьютера являлось применение микросхем, что было сделано впервые.
AGC был разработан для программы Аполлон в начале 1960-х годов в лаборатории приборов Массачусетского технологического института.
Работа в составе КА
В ходе каждого полёта к Луне по программе Аполлон (за исключением Аполлон-8, в составе которого не было лунного модуля) на борту командного и лунного модулей присутствовало по одному AGC. AGC командного модуля был основным вычислительным средством системы навигации и управления, а AGC лунного модуля работал со своей собственной системой управления, навигации и контроля, называвшейся PGNCS (Primary Guidance, Navigation and Control System).
Также при полёте к Луне использовались два дополнительных компьютера:
- Цифровой компьютер ракеты-носителя (Launch Vehicle Digital Computer ,LVDC), расположенный в приборном отсеке ракеты-носителя Сатурн-5 и
- Аварийная система наведения (Abort Guidance System, AGS), расположенная на борту лунного модуля на случай отказа PGNCS. AGS могла быть использована для взлёта с поверхности Луны и стыковки с командным модулем, но не для посадки.
Разработка
Руководителем разработки AGC выступил Чарльз Старк Дрейпер, а главным конструктором аппаратного обеспечения — Элдон Холл. Изначальные изыскания проводили Лэнинг Младший, Альберт Хопкинс, Рамон Алонсо и Хьюг Блэйр-Смит. Серийное производство осуществлялось фирмой Рейтеон, причём в группу разработчиков был включён её представитель, Херб Тэлер.
Компьютер постоянно совершенствовался. Так, его первая версия содержала 4100 микросхем, каждая из которых представляла собой трёхвходовое исключающее ИЛИ, а последующая, вторая версия, использовавшаяся в пилотируемых полётах, использовала 2800 микросхем, каждая из которых объединяла два трёхвходовых исключающих ИЛИ. Микросхемы, производимые фирмой «Фэйрчайлд семикондактор», работали на резисторно-транзисторной логике и были заключены в корпуса типоразмера flat-pack (уплощённый позолоченный корпус с ленточными выводами).
Микросхемы были соединены посредством монтажа накруткой с последующей заливкой эпоксидным компаундом. Использование в ходе разработки микросхем только одного типа позволило избежать ряда проблем, с которыми столкнулись в ходе разработки другого бортового компьютера, предназначенного для ракеты Минитмен II, в конструкции которого использовались диодно-транзисторная логика и диодно-диодная логика.
Память компьютера состояла из 2048 слов перезаписываемого ОЗУ и 36 К слов ПЗУ с линейной выборкой на многократно прошитых сердечниках. Цикл чтения-записи ОЗУ и ПЗУ занимал 11,72 мкс. Длина слова составляла 16 бит: 15 бит данных и 1 бит чётности. Формат 16-битного слова процессора включал в себя 14 бит данных, бит переполнения и бит знака.
Интерфейс дисплея и клавиатуры
Пользовательский интерфейс AGC представлял собой индицируемые на панели 7-сегментные цифры и транспаранты и клавиатуру, похожую на клавиатуру калькулятора. Команды вводились в цифровом режиме как двузначные числа: действие и объект. Действие описывало тип выполняемой операции, а объект определял данные для работы.
Цифры зелёного цвета отображались на высоковольтных семисегментных индикаторах. Сегменты индикаторов управлялись электромеханическими реле, что увеличивало время обновления дисплея (обновлённая версия компьютера использовала более быстрые элементы — тиристоры). На дисплее могли отображаться одновременно три числа по пять цифр в каждом, формат отображения мог быть как восьмеричным, так и десятичным, и использовался в основном для отображения векторов положения КА или необходимого изменения скорости (ΔV). Хотя данные хранились в метрической системе, они отображались в системе мер, принятой в США. Подобный интерфейс был первым в своём роде, послужив прототипом для всех подобных интерфейсов панелей управления.
Командный модуль располагал двумя интерфейсами, подключёнными к их AGC. Один располагался на главной панели управления, а второй — нижнем приборном отсеке возле секстанта и использовался для корректировки навигационной платформы. На борту лунного модуля имелся один AGC. Над интерфейсом на панели командира, а также в лунном модуле, был расположен индикатор положения модуля (Flight Director Attitude Indicator, FDAI), также управляемый AGC.
В 2009 г. один из интерфейсов был продан на открытом аукционе, проводимом Heritage Auctions, за 50,788 долларов США.
Синхронизация по времени
Временные эталоны работы AGC задавались кварцевым резонатором с частотой в 2,048 МГц. Частота делилась на два, чтобы обеспечить AGC четырёхфазным источником рабочей частоты. Частота 1,024 МГц также делилась пополам, чтобы получить сигнал с частотой 512 кГц, называвшейся основной частотой, использовавшийся для синхронизации внутренних систем КА.
Основная частота впоследствии делилась блоком масштабирования сначала на пять (посредством счётного устройства с кольцевой схемой) для получения сигнала с частотой 102,4 кГц. Затем она делилась на два посредством следующих друг за другом логических вентилей: от F1 (51.2 кГц) до F17 (0.78125 Гц). Частота с вентиля F10 (100 Гц) передавалась по каналу обратной связи в AGC для работы часов бортового времени и прочих постоянных счётчиков, работающих на приращение. Частота с вентиля F17 использовалась для периодического запуска AGC, когда тот находился в режиме ожидания.
Центральные регистры
Для проведения основных вычислений AGC располагал четырьмя 16-битными регистрами, называвшихся центральными регистрами:
A : | Аккумулятор, для основных вычислений |
Z : | Счётчик команд, хранивший адрес следующей команды для выполнения |
Q : | Остаток при выполнении команды DV (деление), и адрес точки возврата после выполнения команды TC (безусловный переход) |
LP : | Младшая часть произведения при выполнении команды MP (умножение) |
В адресном пространстве ОЗУ четыре адреса (с 20 по 23) назывались «редактирующими» (англ. editing locations). Данные, записанные по трём адресам, считывались со сдвигом на один бит, а по четвёртому со сдвигом вправо на 7 бит — эта операция использовалась для выделения 7-битных интерпретируемых команд, которые были записаны по две в одно слово. Подобным образом работали как первая, так и вторая модель AGC.