ARINC 653 - ARINC 653
ARINC 653 (Стандартный программный интерфейс приложения Avionics) - это спецификация программного обеспечения для пространства и времени. разделение в критически важный для безопасности авионика операционные системы реального времени (ОСРВ). Это позволяет размещать несколько приложений разных уровни программного обеспечения на том же оборудовании в контексте Интегрированная модульная авионика архитектура.[1]
Это часть ARINC серии 600 Стандарты для цифровых самолетов и авиасимуляторов.
Обзор
Чтобы отделить операционную систему реального времени Платформа из прикладного программного обеспечения ARINC 653 определяет API называется APplication EXecutive (APEX).
Каждое прикладное программное обеспечение называется раздел и имеет собственное пространство памяти. Он также имеет выделенный временной интервал, выделенный API APEX. Внутри каждого раздел, многозадачность позволено. APEX API предоставляет услуги для управления разделами, процессами и синхронизацией, а также для обмена данными между разделами / процессами и обработки ошибок. Среда секционирования может быть реализована с помощью гипервизора.[2] для сопоставления разделов с виртуальными машинами, но это не обязательно.
Текущая работа Подкомитета AEEC APEX включает усовершенствование ARINC 653 для многоядерный архитектуры процессоров.[3]
История
Первоначальный вариант
Первоначальная версия ARINC 653 была опубликована 10 октября 1996 г.
ARINC 653-1
Дополнение 1 было опубликовано в январе 1997 года и ввело концепции APEX и разделения времени и пространства.
ARINC 653-2
Приложение 2 было опубликовано в трех частях с марта 2006 г. по январь 2007 г .:[4]
- Часть 1 (обязательные услуги): управление разделами ARINC 653, определение холодного и горячего старта, обработка ошибок прикладного программного обеспечения, соответствие ARINC 653, Ада и C языковые привязки;
- Часть 2 (дополнительные услуги): Файловая система доступ, Регистрация данных, Точки доступа к услугам, ...
- Часть 3 (Спецификация испытаний на соответствие);
Текущая организация стандарта
- Часть 0 - Введение в ARINC 653 (в настоящее время редакция 1, выпущенная в июне 2013 г.)[5]
- Часть 1 - Необходимые услуги (в настоящее время редакция 4 выпущена в августе 2015 г.)[6]
- Часть 2 - Расширенные службы (в настоящее время редакция 3, выпущена в августе 2015 г.)[7]
- Часть 3 - Спецификация испытаний на соответствие (в настоящее время редакция 1, выпущенная 16 октября 2006 г.)[8]
- Часть 4 - Подмножество услуг (в настоящее время редакция 1 выпущена в июне 2012 г.)[9]
- Часть 5 - Рекомендуемые возможности основного программного обеспечения (в настоящее время редакция 1 выпущена в декабре 2014 г.)[10]
Основные принципы разбиения
Платформа ARINC 653
ARINC 653 Платформа содержит:
- Аппаратная платформа, позволяющая вычисления в реальном времени детерминированные услуги.
- An слой абстракции управление таймером и ограничениями разделения пространства платформы (объем памяти, ЦПУ, Ввод, вывод ).
- Реализация сервисов ARINC 653 (API APEX).
- Интерфейс для настройки платформы и области ее использования.
- Различные инструментальные средства.
Инициализация
Инициализация раздела ARINC 653 создает ресурсы, используемые разделом. Создание ресурсов (ПРОЦЕСС, СОБЫТИЕ, СЕМАФОР ...) выполняется путем вызова служб API с именем CREATE_xxxx.
Обработка ошибок
Обработчик ошибок процесса - это упреждающий процесс наивысшего приоритета, выделенного для обработки исключений разделов. Его создает сервис CREATE_ERROR_HANDLER во время инициализации раздела.
API позволяет обработчику ошибок остановить неисправный процесс (STOP_SELF). В этом случае ОСРВ планировщик вызовет следующий процесс с наивысшим приоритетом.
ARINC 653 не определяет, как планировщик должен вести себя, если обработчик ошибок не останавливает ошибочный процесс. В некоторых (теоретических) случаях это могло привести к бесконечному циклу между неисправным процессом и обработчиком ошибок.
Обработчик ошибок может получить информацию об источнике и контексте исключения.
Управление режимами
Каждый раздел может находиться в нескольких режимах активации:
- COLD_START и WARM_START: выполняется только процесс инициализации,
- НОРМАЛЬНЫЙ: процесс инициализации останавливается, и другие процессы раздела вызываются ОСРВ. планировщик в зависимости от их приоритета,
- IDLE: никакие процессы не выполняются. Однако реализация теоретически может выполнять скрытый процесс с самым низким приоритетом, например, запускать бесконечный цикл.
В SET_PARTITION_MODE сервис позволяет управлять этими состояниями. Его может вызвать любой процесс в разделе. Переход в состояние IDLE необратим для раздела. Только внешнее событие (например, перезапуск платформы) может изменить состояние на другой режим, когда раздел находится в этом состоянии.
Процессы раздела
В каждом разделе есть хотя бы один процесс.
Планирование процессов упреждающий. Планировщик вызывается либо таймером, либо службами API.
API сервисы
Сервисы ARINC 653 APEX: API звонки принадлежат к шести категориям:
- Управление разделами
- Управление процессом
- Тайм-менеджмент
- Связь между разделами
- Внутригрупповая связь
- Обработка ошибок
Сервисы ARINC 653 для управление памятью перегородок. Каждый раздел должен обрабатывать свою собственную память (все еще в рамках ограничений разделения памяти, предусмотренных ARINC 653).
Каждая служба возвращает значение RETURN_CODE, которое указывает, был ли вызов успешным:
- NO_ERROR: обслуживание выполнено номинально после действительного запроса
- NO_ACTION: состояние системы не изменилось после выполнения службы
- NOT_AVAILABLE: сервис временно недоступен
- INVALID_PARAM: хотя бы один из параметров службы недействителен
- INVALID_CONFIG: хотя бы один из параметров сервиса несовместим с текущей конфигурацией системы
- INVALID_MODE: услуга несовместима с текущим режимом системы
- TIMED_OUT: задерживать для выполнения услуги истек срок
Ссылки на POSIX и ASAAC
Поле, охватываемое ARINC 653, похоже на ASAAC Def Stan 00-74. Однако между двумя стандартами есть различия.[11]
Некоторые вызовы ARINC 653 (APEX) имеют POSIX эквивалентны, но отличаются от того, как они определены в POSIX.[11]
Например, следующий вызов, определенный в ASAAC:
receiveBuffer
будет переведено в ARINC 653 с помощью:
RECEIVE_BUFFER ()
а также в POSIX:
recv ()
Рекомендации
- ^ «ARINC 653 - Стандарт авионики для безопасных разделенных систем» (PDF). Системы Wind River / IEEE Семинар. Август 2008. Архивировано с оригинал (PDF) на 2009-10-07. Получено 2009-05-30.
- ^ ВандерЛест, С. Х. (01.10.2010). «Гипервизор ARINC 653». 29-я конференция по системам цифровой авионики: 5.E.2–1–5.E.2–20. Дои:10.1109 / DASC.2010.5655298. ISBN 978-1-4244-6616-0.
- ^ «Подкомитет APEX». AEEC. Август 2008 г.. Получено 2013-10-20.
- ^ «Ориентация на продукт: ARINC 653 и RTOS». Aviationtoday.com. 2004-07-01. Получено 2009-05-30.
- ^ «Стандартный интерфейс прикладного программного обеспечения авионики: спецификация ARINC 653, часть 0». Aeronautical Radio, Inc. Июнь 2013 г. Архивировано с оригинал 2013-11-20.
- ^ «Стандартный интерфейс прикладного программного обеспечения авионики: спецификация ARINC 653P1-3, необходимые услуги». Aeronautical Radio, Inc. 15 ноября 2010 г. Архивировано из оригинал на 2012-05-10. Получено 2013-10-20.
- ^ «Стандартный интерфейс прикладного программного обеспечения авионики: спецификация ARINC 653P2-2, часть 2, расширенные услуги». Aeronautical Radio, Inc. 2012-06-01. Архивировано из оригинал на 2012-08-25. Получено 2012-10-20.
- ^ «Стандартный интерфейс прикладного программного обеспечения авионики: Спецификация ARINC 653P3, Спецификация испытаний на соответствие». Авиационное радио, Inc. 20 октября 2006 г. Архивировано из оригинал на 2012-05-10. Получено 2013-11-20.
- ^ «Стандартный интерфейс прикладного программного обеспечения авионики: спецификация ARINC 653, часть 4, услуги подмножества». Aeronautical Radio, Inc. 2012-06-01. Архивировано из оригинал на 2012-08-25. Получено 2013-10-20.
- ^ «Магазин АРИНК». ARINC IA. 2014-12-01. Получено 2015-04-23.
- ^ а б «Гибкость и управляемость проектов IMS» (PDF). Йоркский университет. Получено 2008-07-27.