
Запущенные в 1977 году космические аппараты-близнецы «Вояджер-1» и «2» в свое время стали инновационным достижением. Удивительно то, что даже после четырех десятилетий путешествий в суровой, иногда непредсказуемой, среде оба зонда продолжают функционировать и отправлять «домой» важные данные. Хотя для связи с ними и загрузки новых алгоритмов каждый раз требуется всё больше времени, тот факт, что это до сих пор возможно с технологиями прошлой эпохи, является свидетельством качества принятых в нелегких условиях инженерных решений.
История создания и ввода в эксплуатацию компьютеров «Вояджеров» достаточно увлекательна. Период сокращения бюджета NASA после спада энтузиазма эпохи Apollo; трудности, с которыми инженеры впервые столкнутся во время исследований одних из самых интересных мест Солнечной системы, и другие детали заставляют каждого отдать должное технологиям того времени.
Аппараты «Вояджер» имеют по шесть бортовых компьютеров, изначально организованных как распределенная система, состоящая из трех компьютеров с двойным резервированием: Система управления аппаратом (CCS), Система сбора и обработки полётных данных (FDS) и Система управления ориентацией и артикуляцией (AACS). Именно они обеспечили космические путешествия к Юпитеру, Сатурну и за их пределы и до сих пор продолжают поддерживать зонды «на плаву».
Разработка компьютерного оборудования
Процесс разработки программного обеспечения, возможно, и не самый интересный этап, однако чрезвычайно важный для конечного результата.
Одним из первых проектных решений по поводу компьютеров «Вояджеров» было использование Системы управления CCS, разработанной для космических аппаратов Viking, отправившихся к Марсу двумя годами ранее. Это не только удовлетворило предложение по стандартизации компьютерной системы, но и способствовало решению финансового вопроса в связи с сокращением бюджета NASA после миссий Apollo в 1970-х годах. В то время непилотируемое исследование космоса становилось всё менее приоритетным и поэтому для продолжения проекта было важно поддерживать низкие расходы.

В конце концов, системы управления CCS аппаратов Voyager и Viking имеют одинаковый объём памяти – около 70 кБ, хотя программы и инструкции первой намного сложнее. Большую роль в этом сыграла функция программирования на расстоянии, которая устранила необходимость в больших объёмах встроенной памяти и предоставила инженерам возможность регулярно загружать новые алгоритмы в энергонезависимую память.
Новыми элементами программного обеспечения «Вояджеров» стали Система сбора и обработки полётных данных (FDS) и Система управления ориентацией и артикуляцией (AACS). За их функционирование отвечает CCS, отправляя команды и управляя памятью. С этой целью были добавлены ещё две программы: MEMLOAD – для загрузки данных в память устройств и AACSIN – для мониторинга работоспособности AACS.
Первоначальное программное обеспечение для «Вояджеров» было написано с использованием языка программирования Fortran 5 и впоследствии заменено на Fortran 77. Сегодня часть команд разработана с помощью универсального языка C. Низкоуровневое «лёгкое» программное обеспечение становится более важным в нынешних условиях, особенно когда аппараты всё больше удаляются от Земли и общение с ними замедляется.
В структуре руководства программным обеспечением «Вояджеров» также произошли изменения. Главный инженер Х. Кент Фревинг руководил работой всех специалистов, ответственных за каждую компьютерную систему, и одновременно над проектом работали до четырех программистов. Для разработки ПО была создана «Команда инженеров бортового программного обеспечения» (On-Board Software Design Team), а его проверку доверено «Лаборатории по проведению испытаний» (Capability Demonstration Laboratory). После завершения работ над начальным программным обеспечением инженеры переходили к тестированию аппаратуры, сразу же настраивая её в необходимую конфигурацию для интеграции на борт аппарата.
Система управления аппаратом (CCS)
Как уже упоминалось, системы управления CCS аппаратов Voyager и Viking являются почти идентичными; первая лишь с некоторыми модификациями для соединения с системами FDS и AACS.
Система CCS аппарата Viking была первой резервной компьютерной системой в применении Лаборатории реактивного движения NASA (JPL) с относительно простой конструкцией, которая гарантировала гораздо большую вычислительную мощность. Каждого элемента в ней по два: источники питания, процессоры, буферы, устройства ввода и вывода данных. Все они – перекрёстно соединены, что обеспечивает выполнение функции отказоустойчивости: в случае выхода из строя одного компонента первой CCS, компьютер переходит к применению идентичного рабочего компонента второй CCS.

Блок-схема Системы управления CCS аппаратов Voyager и Viking. Источник: NASA
CCS – это главный цифровой мозг «Вояджеров», отвечающий за управление всеми основными операциями, последовательность выполнения программ, контроль состояния аппаратов, связь с другими компьютерными системами и загрузку алгоритмов в память. Система имеет три режима работы: индивидуальный – каждая CCS выполняет задачу независимо друг от друга; параллельный – обе CCS работают над задачей вместе, и тандемный – каждая CCS самостоятельно работает над одной и той же задачей. Во время сближений с Юпитером и Сатурном CCS работала в тандемном режиме.
Кроме того, обе системы CCS постоянно включены, что обеспечивает большую вычислительную мощность аппарата. Именно это и сыграло важную роль для сбора данных во время сближений с Юпитером, Сатурном, Ураном и Нептуном.
На архитектурном уровне процессоры CCS состоят из интерпретатора команд, панели управления трактом данных и регистров, которые работают последовательно: 18-разрядный аккумулятор, 12-разрядный регистр связи, 12-разрядный счетчик команд, 4-разрядный регистр состояния. Команды являют собой 18-битные машинные слова: старшие или наиболее значимые 12 бит содержат адреса (4к прямой адресации), а младшие или наименее значимые 6 бит – коды операций (64 команд).
Система сбора и обработки полётных данных (FDS)
FDS – это система сбора и обработки полётных данных аппаратов «Вояджер», которая собирает, форматирует и сохраняет научную и техническую информацию, а также все результаты измерений телеметрии. Её проектирование началось с дипломной работы, в которой были описаны общие требования, компромиссные решения, функции и преимущества внедрения того или иного аппаратного и программного обеспечения системы.
Одним из важнейших аспектов в конструировании FDS была скорость ввода/вывода данных. По мере совершенствования оборудования разрешающая способность передаваемой информации тоже увеличивалась. Зонды «Вояджер» должны были отправлять данные с высокой скоростью. В случае недостижения необходимого показателя, например, когда аппарат не смог бы связаться с наземной станцией слежения из-за определённых препятствий, вся информация записывалась бы на магнитные ленты, которыми оснащены FDS. И даже сегодня инженеры часто применяют их на борту космических зондов с целью сбора и передачи данных.

В отличие от двух других компьютерных систем «Вояджеров» CCS и AACS, FDS не разработана с использованием микросхем на основе ТТЛ технологии (англ. TTL, Transistor-Transistor Logic – транзисторно-транзисторная логика). Система FDS стала первым компьютером с применением энергозависимой памяти КМОП-чипов, который полетел в космос (англ. CMOS, Complementary Metal-Oxide Semiconductor – комплементарная МОП-структура).
Это стало огромным шагом, поскольку технология была достаточно новой, и если на мгновение исчезло бы питание к КМОП-микросхемам, все данные были бы потеряны. Для того, чтобы этого никогда не случилось, к ним от радиоизотопных генераторов, которые обеспечивали постоянный ток, была проведена прямая линия питания. Это решало проблему – конечно, условием должно было бы быть, что с генераторами всё в порядке. В случае выхода из строя генераторов, необходимости в FDS всё равно не было бы.
Системы CCS и FDS были спроектированы отдельно из-за разницы в скоростях ввода/вывода данных, даже если в вычислительном отношении их можно было бы легко объединить. Они также были сконструированы с возможностью программирования на расстоянии, что позволяет вносить изменения и оптимизировать процессы во время путешествий. В конце концов, аппараты «Вояджер» оказались последними разработанными Лабораторией реактивного движения зондами, в которых эти системы отделены друг от друга.
Система управления ориентацией и артикуляцией (AACS)
AACS – система управления ориентацией и артикуляцией зондов «Вояджер», которая определяет их направление и положение в пространстве, удерживая аппараты нацеленными на Землю. Сначала в её проектировании планировали применить новую технологию под названием HYSPACE (англ. Hybrid Programmable Attitude Control Electronics – «Гибридная электронная аппаратура с программным управлением ориентацией»). Она объединяет аналоговые и цифровые элементы, использует адресацию по индексному регистру и 4-байтную последовательную архитектуру. Это позволило бы применить один и тот же код для всех трех осей AACS.
Однако команда разработчиков подвергалась давлению с целью применения системы CCS аппарата Viking и для управления ориентацией, поскольку она тоже предусматривала выполнение этой функции. К тому же, это сократило бы затраты на разработку полностью новой системы.
В конце концов, программисты создали модифицированную версию CCS с некоторыми элементами HYSPACE, чтобы получить преимущества адресации по индексному регистру. В документации систему AACS всё еще обозначают как HYSPACE, хотя это её модификация.
Система управления ориентацией и артикуляцией «Вояджеров» состоит из четырех основных компонентов, обеспечивающих выполнение её функций: шаговые двигатели платформы для сканирования, электроприводы, микродвигатели управления ориентацией и логические элементы двигателей. Кроме этого, AACS регулярно отправляет к CCS сигналы о своём состоянии.
Итоги
Общественное настроение во времена проектирования аппаратов «Вояджер» существенно повлияло на выбор их программного обеспечения. Повторное использование и модификация конструкций для сокращения расходов, оптимизация настроек памяти из-за её ограниченного объёма и максимизация скорости без увеличения потребности в электроэнергии – всё еще проблемы, с которыми сталкиваются современные космические проекты.
А впрочем, невероятно впечатляет не только то, что команда разработчиков компьютеров «Вояджер» создала недорогие, эффективные и мощные в вычислительном отношении системы, но и то, что благодаря их прогрессивному мышлению и изобретательным инженерным решениям оба зонда продолжают работать и по сей день. С положительными прогнозами, по крайней мере, на еще одно десятилетие …