SWD Software Ltd. - официальный дистрибьютор QNX на территории России и стран бывшего СССР Операционная система реального времени QNX
Инструменты для создания надёжных встраиваемых систем и
интеллектуальных устройств любой сложности
QNX Software Systems - разработчик встраиваемой операционной системы QNX
Информационные брошюры
Статьи и публикации
Обзоры
Операционные системы
Графические интерфейсы
Средства разработки
Прикладные системы на базе ОС QNX
Разное
Конкурсные статьи
Техническая литература
Материалы конференций QNX-Россия
Полезные ссылки
Блог QNX
Главная страница > Материалы > Статьи и публикации > Конкурсные статьи > Использование QNX Neutrino в системах автоматического управления для ответственных применений Сделать страницу стартовой Послать ссылку коллеге Версия для печати

Использование QNX Neutrino в системах автоматического управления для ответственных применений

Современные подходы к проектированию САУ

Современный уровень развития аппаратных средств позволяет пересмотреть подходы к проектированию САУ для ответственных применений. В настоящее время в методах построения систем управления можно выделить, по крайней мере, три основных тенденции:

  • отказ от представления САУ как набора специализированных программно-аппаратных блоков в пользу унифицированных аппаратно-программных средств;
  • отказ от «федеративных» архитектур в пользу интегрированных решений;
  • внедрение тактируемых архитектур (Time-Triggered Architecture).

Рост производительности и объема памяти современных микропроцессорных систем позволил использовать универсальные операционные системы реального времени. Применение ОСРВ значительно снижает сроки разработки и увеличивает качество и удобство эксплуатации продукции. Операционные системы также представляют собой прослойку между аппаратным и прикладным программным обеспечением, благодаря которой аппаратура может модернизироваться без изменений в программном обеспечении, и наоборот.

Применение производительных вычислителей и ОСРВ привели к идее размещения большей части расчетов в едином процессорном модуле. Такие архитектуры САУ получили название «интегрированные» (в отличие от «старых», «федеративных» архитектур). САУ с интегрированной архитектурой обладает лучшими массогабаритными характеристиками при более низкой себестоимости.

При использовании интегрированной архитектуры остро встает вопрос надежности совместного выполнения различных задач на одном аппаратном модуле. Очевидным требованием является то, что сбои в одном из приложений не должны повлиять на выполнение других. В идеале должна обеспечиваться полная независимость выполнения функций, присущая федеративной архитектуре САУ.

В настоящее время видится только один подход, отвечающий данному требованию – применение специальной операционной системы, поддерживающей разделение приложений (англ. partitioning).

Идеи разделения приложений выражены стандартом ARINC 653. Каждое приложение (возможно, состоящее из нескольких процессов), которое должно выполняться обособленно относительно других приложений, помещается в раздел. Операционная система обеспечивает:

  • невозможность доступа для приложения из одного раздела в память другого раздела (пространственное разделение – spatial partitioning);
  • наличие у каждого раздела гарантированного бюджета времени, который будет ему предоставлен, даже если один или несколько других разделов имеют приложения с более высоким приоритетом (временное разделение – temporal partitioning). Применение разделов, помимо повышения надежности САУ, дает следующие преимущества:
  • независимость разработки. Поскольку разделы работают независимо друг от друга, они могут проектироваться, разрабатываться независимо (но с учетом ограничения бюджета времени и памяти). Большую часть верификации приложений (за исключением совместной доводки изделия) также можно провести независимо;
  • гибкость в развертывании системы. Если в системе есть несколько вычислительных модулей, то раздел может быть при необходимости перенесен с одного вычислителя на другой без изменения кода приложений (при условии, что оба вычислителя работают под управлением одной операционной системы).

Тактируемые архитектуры

Тактируемые архитектуры – одно из наиболее перспективных направлений в проектировании критичных к безопасности САУ. В таких системах модули связаны между собой с помощью единого интерфейса, как правило, с шинной топологией, и все передачи по этому интерфейсу производятся в соответствии с некоторым детерминированным расписанием.

Преимуществами тактируемой архитектуры являются:

  • независимость передач по интерфейсу для каждого из приложений, соответственно, сбои в работе одного из приложений не повлияют на работу других приложений;
  • предопределенность задержки передачи информации между модулями;
  • возможность компенсации одного или нескольких одновременных сбоев при передаче.

Надо сказать, что концепция разделов хорошо сочетается с концепцией тактируемых архитектур. Обе концепции призваны обеспечивать независимость приложений друг от друга и останавливать распространение ошибок. Приложения в тактируемой архитектуре должны разделять не только процессорное время, но и время на шине. Детерминированное расписание передач должно также поддерживаться операционной системой.

Разделение приложений

Концепция разделения приложений также поддерживается QNX Neutrino. В версии 6.3.2 в ядро включен пакет адаптивного разделения («Adaptive Partitioning»). Он обеспечивает защиту разделов по памяти и гарантирует наличие временного бюджета у каждого раздела, но его реализация имеет отличия от традиционного понимания (в духе ARINC 653) управления разделами.

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

Надо отметить, что QNX гибко подходит к распределению времени между разделами. Если какой-либо из разделов не использует полностью свой бюджет, неизрасходованное время может быть отдано другим разделам. Механизм гарантии указанного разработчиком процента начинает работать только при больших нагрузках.

Адаптивное разделение имеет следующие преимущества:

  • уменьшение простоев процессора за счет передачи неиспользованного бюджета другим разделам, что снижает требования к производительности аппаратных средств;
  • сохранение быстрой реакции на события, характерной для QNX (в том числе, уменьшение задержки обработки прерываний).

Использование QNX в тактируемых архитектурах

В QNX введен механизм критических потоков управления, которые выполняются немедленно, как только становятся активными. Критический поток может быть запущен, даже если раздел исчерпал свой бюджет, за счет чего достигается маленькая латентность потока, характерная для систем жесткого реального времени.

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

Возвращаясь к построению тактируемых архитектур, можно предложить достаточно простой способ организации разделов QNX. Каждый раздел должен иметь, по крайней мере, один критический поток, который:

  • активируется по таймеру в соответствии с расписанием передач
  • выполняет только те операции, которые критично выполнить в соответствии с расписанием (как правило, это операции ввода/вывода).

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

Пример САУ ответственного применения

Одной из стратегических задач Института точной механики и вычислительной техники имени С.А. Лебедева РАН (ИТМиВТ) является создание современной аппаратно-программной платформы для разработки систем автоматического управления в ответственных приложениях. Ключевыми особенностями нашей платформы является использование отечественной элементной базы и операционной системы QNX Neutrino.

В рамках создания указанной выше платформы специалистами ИТМиВТ разработан интегрированный аппаратно-программный комплекс для построения систем управления. В его состав входят процессорный модуль на двухъядерном микропроцессоре, функционирующий под управлением ОС QNX, набор драйверов различных интерфейсов и флэш-памяти, средства программирования и отладки. Процессорный модуль предназначен для построения систем автоматического управления газотурбинными двигателями (САУ ГТД), применяемыми в авиации. В качестве элементной базы для этого модуля были использованы только компоненты отечественного производства или разрешенные к использованию Министерством обороны РФ.

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

В соответствии со стандартом POSIX разработаны такие системные сервисы, как:

  • драйвер CAN (последовательная магистраль, обеспечивающая увязку в сеть «интеллектуальных» устройств ввода/вывода, датчиков и др. исполнительных устройств);
  • драйвер интерфейса ARINC-429;
  • драйвер интерфейса QSPI (Quick Serial Peripherial Interface) – быстрый (буферизованный) последовательный периферийный интерфейс;
  • драйвер TPU (Time Processing Unit) - устройство обработки временных интервалов;
  • драйвер MIL-STD1553B - магистральный последовательный интерфейс;
  • драйвер универсального асинхронного порта RS-232;
  • драйвер флэш-памяти;
  • некоторые другие, которые вместе с ОСРВ QNX Neutrino 6.3 составляют на данном процессорном модуле полнофункциональную среду исполнения для прикладного ПО жесткого реального времени.
Изначально предназначенный для применения в бортовых системах управления самолета, процессорный модуль имеет широкие перспективы и в других приложениях. В первую очередь это относится к управлению газотурбинными двигателями на кораблях. В наземных приложениях наиболее очевидно использование данного модуля для управления энергетическими газотурбинными установками и газоперекачивающими агрегатами (ГПА) с газотурбинным приводом на основе конвертированного авиационного двигателя. Вычислительные ресурсы процессорного модуля и возможности ОС РВ QNX обеспечивают регулирование работы привода во всех режимах, антипомпажное регулирование и защиту для центробежного нагнетателя ГПА, ряд других задач. Унификация решений по построению систем управления для авиационных, морских и наземных приложений позволяет снизить затраты, сократить сроки и стоимость работ, в том числе и за счет облегчения согласования применяемых систем. Процессорный модуль является свободно программируемым устройством, поэтому его использование не ограничивается газотурбинной тематикой, в дальнейшем планируется выпуск универсального управляющего контроллера на его основе.

Процессорный модуль стал главным элементом экспозиции ИТМиВТ им. С.А. Лебедева РАН на выставке «Передовые технологии автоматизации-2007», проходившей 26-28 сентября в Москве. Новинку по достоинству оценило авторитетное жюри — на церемонии открытия выставки ИТМиВТ был награжден специальным дипломом за наиболее интересную и перспективную отечественную разработку, представленную на конкурсе журнала «Современные технологии автоматизации» («СТА») в номинации «Лучший проект АСУ ТП».

Владимир Клепиков, Дмитрий Подхватилин, Геннадий Шарапов, Николай Захаров,
Институт точной механики и вычислительной техники им. С.А. Лебедева РАН

Рассказать друзьям:

     Рейтинг@Mail.ru