20 июля 2019 исполнилось 50 лет со дня приземления на Луну космического корабля Аполлон-11. Много любопытных мероприятий было приурочено к этой дате, но, пожалуй, одним из самых интересных, с технической точки зрения, было возрождение Бортового Управляющего Компьютера космического корабля Аполлон (AGC) командой разработчиков из Сан-Франциско.
В программе Аполлон, AGC использовался в двух космических аппаратах: в командном модуле и в лунном модуле. В командном модуле он осуществлял навигацию с Земли на Луну и обратно. В лунном модуле помогал приземлиться на Луну, взлететь с поверхности Луны, а затем состыковаться с командным модулем.
В руки команде разработчиков попал AGC, приобретенный частным образом в 70-х годах, как часть партии избыточного оборудования NASA. Этот AGC не включался в течение полувека, и находился в нерабочем состоянии. Для восстановления работоспособности AGC, разработчикам пришлось решить немало технических задач. Одной из наиболее серьезных являлась задача организации и использования памяти. AGC был разработан с двумя типами памяти: ОЗУ (RAM) и ПЗУ (ROM). AGC попавший в руки разработчикам, был без модуля ПЗУ, а модуль ОЗУ оказался неработоспособным (хотя впоследствии он был отремонтирован).
Несмотря на все эти трудности, один из разработчиков - Майк Стюарт, смог воспроизвести весь функционал AGC, включая ПЗУ и ОЗУ на ПЛИС. Используя пакет программного обеспечения Intel® Quartus® Prime, он сделал аппаратную эмуляцию AGC на плате Terasic DE0-Nano, построенной на базе ПЛИС Cyclone® IV.
Для того, чтобы воспроизвести функционал бортового компьютера на плате Terasic DE0-Nano Стюарту необходимо было преобразовать асинхронную логику AGC, основанную на логических элементах NOR с 3 входами, в синхронную логику ПЛИС Cyclone IV. Он сделал это, организовав на логических элементах ПЛИС - синхронизированные вентили NOR. Тактирование было выбрано таким образом, чтобы наиболее точно воспроизвести временные характеристики оборудования созданного в 1962-м году на основе RTL (resistor-transistor logic). А когда возникла необходимость заменить отсутствующий модуль ПЗУ и неработающий модуль ОЗУ чем-то другим, у Стюарта были готовые модули памяти ПЗУ и ОЗУ, реализованные на ПЛИС Cyclone IV. Все, что нужно было сделать, - это преобразовать уровень напряжение 3,3 В платы Terasic DE0-Nano в уровень напряжение 4 В бортового компьютера AGC.
Подробнее ознакомиться с программой «Возрождения Управляющего Компьютера космического корабля АПОЛЛОН» можно на специальной страничке в YouTube.
Подробнее ознакомиться с отладочной платой DE0-Nano можно на официальном сайте Terasic.
Плата Terasic DE0-Nano есть у нас на складе в Санкт-Петербурге. Заказ можно оформить по ссылке.