-Взаимодействие с объектом управления в интерактивном режиме;
-относительно слабая предсказуемость моментов поступления заявок на обслуживание и времени их обслуживания;
-использование текущего времени в качестве основного задающего параметра организации вычислительного процесса;
-Работа с прерываниями, количество и время появления которых является случайным;
-использование режимов мультипрограммирования и мультиобработки, непосредственное управление ЭВМ процессами ввода-вывода информации со специализированных устройств сопряжения с объектом
-работа в режиме теледоступа;
-необходимость динамического изменения правил организации очередей заявок на обслуживание в системе в зависимости от реальной ситуации и приоритетов заявок.
Программное обеспечение бортовой вычислительной системы должно строится по модульному принципу. Модульный принцип проектирования ПО связан с процессом синтеза системы как совокупности слабосвязанных компонент, допускающих их относительно независимую разработку и использование. Проблемы декомпозиции системы на подсистемы, задачи на подзадачи, программного обеспечения на отдельные программы и подпрограммы, возникают на различных этапах анализа и синтеза систем управления. Использование принципа модульности при проектировании программного обеспечения космического аппарата позволяет свести проектирование к оптимальному синтезу функционально-независимых отдельных модулей, совместно выполняющих заданные функции системы с требуемой эффективностью, и значительно сокращает затраты на разработку, внедрение и модификацию систем. При проектировании модульных систем должны быть обеспечены такие основные их свойства, как: функциональность, связность, алгоритмичность, последовательность, маскировка. Любые параметры, влияющие на управление и управляемость КА должны иметь возможность конфигурации. Единожды жестко установленные на Земле значения параметров впоследствии эксплуатации могут становиться неприемлемыми и требовать коррекции. Наиболее оптимальным вариантом передачи конфигурационных параметров на борт могут служить специально определенные виды командно-программной информации.
При проектировании ПО бортовой вычислительной системы КА одним из ключевых моментов является выбор операционной системы реального времени. Главной задачей ОСРВ является обеспечение возможности своевременной реакции бортовой вычислительной системы на происходящие события, в том числе на одновременно происходящие события.
При проектировании аппаратно-программного комплекса реального времени вначале оценивают критерии, предъявляемые к объекту, и классифицируют события на этом объекте. Выделяют события, реакция на которые в заранее запланированное время строго необходима. С каждым событием связывается критическое время отклика на него. Затем прогнозируются худшие из прогнозируемых ситуаций на объекте, описываются требования к поведению системы в этих ситуациях.
Операционная система реального времени, используемая на КА должна отвечать следующим требованиям:
-Скорость реакции системы должна быть соизмерима со скоростью протекающих процессов;
-Отказоустойчивость. Работа системы должны быть непрерывной в течение всего срока активного существования КА;
-успешные случаи применения подобной ОС в реальном полете, либо на имитаторе замкнутого контура. Данный пункт очень важен в плане определения зрелости системы и возможности ее использования в качестве основы построения системы управления КА;
-Возможность создания бездисковой конфигурации;
-Наличие необходимых драйверов устройств;
-Малый размер системы;
-Поддержка необходимых механизмов диспетчеризации и назначения приоритетов;
-Развитые средства межзадачного взаимодействия;
-Средства реализации служб времени.
Таким образом выбор операционной системы для конкретного проекта предстает непростой задачей требующей взвешенных решений. Рассмотрим конкретный проект:
Космический аппарат «Канопус-В» спроектирован в виде технологической платформы с комплексом целевой аппаратуры. Технологическая платформа обеспечивает успешное выполнение задач целевой аппаратуры включающее в себя:
-Обеспечение энергетики КА;
-Обеспечение ориентации космического аппарата в заданной системе координат;
-Обеспечение вычисления и раздачи абонентам данных по времени, навигации и ориентации КА.
Платформа содержит одну общую БВС для комплекса управления и системы ориентации. Такое решении позволяет существенно удешевить конструкцию КА, с другой стороны увеличивая сложность разработки бортового ПО. В качестве ОСРВ, используемой при разработке ПО для КА была выбрана VxWorks. Выбор был сделан исходя из следующих соображений:
-Малое время переключения контекста – порядка 10-100 мкс;
-Наличие необходимых драйверов устройств;
-Размер системы – у VxWorks размер ядра равен 16 килобайтам;
-Система приоритетов и вытесняющие алгоритмы диспетчеризации подходят для создания выбранной архитектуры ПО;
-успешный опыт использования VxWorks в качестве ОС космического аппарата, как беспилотного, так и пилотируемого.
В качестве архитектуры работы ПО была выбрана событийно-управляемая модель. Она позволяет эффективно использовать системные ресурсы, так как задачи прикладного ПО активизируются только при наступлении определенных для них типов событий. Все остальное время задача находится в ожидании наступления события, не тратя на свое обслуживание дополнительных ресурсов системы.
VxWorks позволяет вести разработку на языках Си, C++, Ада. Для КА «Канопус-В» в качестве языка разработки был выбран язык программирования Си. Синтаксис Си известен подавляющему большинству программистов, а количество реализованных с его использованием алгоритмов приближается к общему числу когда-либо запрограммированных алгоритмов. За годы прошедшие с момента создания данного языка он претерпел значительные изменения и прошел этап становления в качестве основного языка системного программирования. Программы, написанные на Си с использованием оптимизирующих компиляторов по скорости исполнения вплотную приближаются к написанным на языке ассемблера, но наряду с этим сохраняют переносимость и читаемость. Существенным недостатком языка си является отсутствие поддержки обработки исключений. С другой стороны отсутствует поддержка объектно-ориентированного программирования – любые абстракции данных приходится представлять при помощи структур, а обработку данных производить через передачу их в функции. Данное обстоятельство требует детальной проработки архитектуры программного обеспечения для недопущения его чрезмерного усложнения. Структуры данных, используемые для схожих операций таких как, например, передача сообщений, должны быть по возможности унифицированы. Ярким примером использования такого подхода является сама операционная система VxWorks. Так, например, для помещения произвольной пользовательской структуры во встроенный двусвязный список VxWorks достаточно добавить в объявление структуры два поля – указателя на предыдущий и последующий элементы, после чего функции, реализующие механизм работы с двусвязным списком, будут способны обслуживать пользовательскую структуру данных.
Архитектура бортового ПО
Бортовое ПО построено на принципе выделения обособленных функций в отдельные, равнозначные задачи, отличающиеся приоритетом исполнения. Получившаяся система является событийно-ориентированной системой мягкого реального времени и управляется следующими событиями:
-прерывания по шине МКО;
-прерывания по шине CAN;
-прерывания по времени;
-события – сообщение;
-семафоры.
Выбор событийно-управляемой системы снимает необходимость в разработке и реализации строгой последовательности исполнения задач в строго заданные интервалы, что делает ее более гибкой и предполагает возможность дальнейшего совершенствования. Система настроена на управление в 20 миллисекундном цикле, который был подобран опытным путем. Иными словами планировщик задач операционной системы раз в 20 миллисекунд проверяет очередь задач на исполнение на наличие более высокоприоритетной задачи и передает ей управление в случае наличия таковой. Операционная система позволяет изменить периодичность данной проверки, но стоит принять во внимание, что увеличение частоты опроса приведет к тому, что процессорное время будет в основном использоваться для частого переключения контекстов исполнения между ядром и пользовательскими задачами. Из-за используемой схемы с мягким реальным временем периодические процессы могут быть исполнены со сдвигом в 20 миллисекунд относительно расчетного из-за возможной высокой нагрузки системы. На данном КА такое смещение не является критичным, и потому допустимо.
Очень важным является распределение приоритетов между задачами. VxWorks предоставляет в распоряжение разработчика возможность использования до 256 приоритетов. Неправильно установленные приоритеты могут привести к некорректному поведению системы в целом и даже к невозможности работы по целевому назначению. Для возможности решения этой проблемы, в случае ее возникновения, VxWorks позволяет динамически изменять приоритет задачи. Тем не менее при неверно расставленных приоритетах может возникнуть ситуация взаимной блокировки, которая может привести к полной невозможности использования системы по целевому назначению. Вопрос с расстановкой приоритетов задачам должен иметь тщательную наземную проработку.
Всего в ПО БВС выделено 18 задач. При старте системы, после инициализации, производимой средствами операционной системы, управление передается на пользовательскую точку входа. Данная точка входа является функцией которая запускает главную пользовательскую задачу – задачу обеспечения безопасности жизнедеятельности КА. Данная задача запускает заранее определенный набор приложений-задач, необходимых к исполнению после старта.
Одной из важнейших базовых задач является задача ведения бортовой шкалы времени. Эта задача имеет наивысший приоритет и тактируется от системного таймера. Задача ведения времени реализует подписку любых других задач на периодическое оповещение о наступлении требуемого времени, тем самым обеспечивая выполнение периодических процессов с заданной частотой. Примером такого периодического процесса может служить опрос устройства цифровой обработки командной радиолинии о наличии команд управления. Другим примером может служить запуск очередного цикла управления в задаче обеспечения ориентации.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 |


