ARINC 653 (Interfaz de software estándar de aplicación de aviónica) es una especificación de software para la partición de tiempo y espacio en sistemas operativos en tiempo real (RTOS) de aviónica críticos para la seguridad . Permite el alojamiento de múltiples aplicaciones de diferentes niveles de software en el mismo hardware en el contexto de una arquitectura de aviónica modular integrada . [1]
Es parte de los estándares de la serie ARINC 600 para simuladores de vuelo y aeronaves digitales.
Descripción general
Para desacoplar la plataforma del sistema operativo en tiempo real del software de la aplicación, ARINC 653 define una API llamada APplication EXecutive (APEX).
Cada software de aplicación se denomina partición y tiene su propio espacio de memoria. También tiene un intervalo de tiempo dedicado asignado por la API APEX. Dentro de cada partición , se permite la multitarea . La API APEX proporciona servicios para administrar particiones, procesos y tiempos, así como la comunicación de particiones / procesos y manejo de errores. El entorno de particionamiento se puede implementar utilizando un hipervisor [2] para mapear particiones a máquinas virtuales, pero esto no es necesario.
El trabajo actual del Subcomité AEEC APEX incluye la mejora de ARINC 653 para arquitecturas de procesadores multinúcleo . [3]
Historia
Versión inicial
La versión inicial de ARINC 653 se publicó el 10 de octubre de 1996.
ARINC 653-1
El Suplemento 1 se publicó en enero de 1997 e introdujo los conceptos de APEX y partición de tiempo y espacio.
ARINC 653-2
El Suplemento 2 se publicó en 3 partes entre marzo de 2006 y enero de 2007: [4]
- Parte 1 (servicios obligatorios): gestión de particiones ARINC 653, definición de arranque en frío y arranque en caliente, manejo de errores de software de aplicación, conformidad con ARINC 653, enlaces de lenguaje Ada y C ;
- Parte 2 (servicios opcionales): acceso al sistema de archivos , registro de datos , puntos de acceso al servicio, ...
- Parte 3 (Especificación de la prueba de conformidad);
Organización actual de la norma
- Parte 0: Introducción a ARINC 653 (actualmente en revisión 1, publicada en junio de 2013) [5]
- Parte 1: Servicios requeridos (actualmente en revisión 4, publicada en agosto de 2015) [6]
- Parte 2 - Servicios extendidos (actualmente en revisión 3, publicada en agosto de 2015) [7]
- Parte 3 - Especificación de la prueba de conformidad (actualmente en revisión 1, publicada el 16 de octubre de 2006) [8]
- Parte 4 - Servicios de subconjunto (actualmente en revisión 1, publicada en junio de 2012) [9]
- Parte 5: Capacidades recomendadas del software principal (actualmente en revisión 1, publicada en diciembre de 2014) [10]
Principios básicos de la partición
Plataforma ARINC 653
Una plataforma ARINC 653 contiene:
- Una plataforma de hardware que permite servicios deterministas de computación en tiempo real .
- Una capa de abstracción que gestiona el temporizador y las limitaciones de partición de espacio de la plataforma ( memoria , CPU , entrada / salida ).
- Una implementación para los servicios ARINC 653 (la API APEX).
- Una interfaz para poder configurar la plataforma y su dominio de uso.
- Varias herramientas de instrumentación.
Inicialización
La inicialización de una partición ARINC 653 crea recursos utilizados por la partición. La creación de recursos (PROCESO, EVENTO, SEMÁFORO ...) se realiza llamando a los servicios API denominados CREATE_xxxx .
Manejo de errores
El manejador de errores de proceso es un proceso preventivo de la más alta prioridad dedicado a manejar excepciones de partición. Es creado por el servicio CREATE_ERROR_HANDLER durante la inicialización de la partición.
La API permite que el controlador de errores detenga un proceso defectuoso ( STOP_SELF ). En ese caso, el programador RTOS provocará el siguiente proceso con la prioridad más alta.
ARINC 653 no especifica cómo debe comportarse el planificador si el gestor de errores no detiene un proceso defectuoso. En algunos casos (teóricos), esto podría conducir a un bucle infinito entre el proceso defectuoso y el controlador de errores.
El controlador de errores puede obtener información sobre la fuente y el contexto de la excepción.
Gestión de modo
Cada partición puede estar en varios modos de activación:
- COLD_START y WARM_START: Solo se ejecuta el proceso de inicialización,
- NORMAL: El proceso de inicialización se detiene y el programador RTOS llama a los demás procesos de partición según su prioridad.
- IDLE: No se ejecuta ningún proceso. Sin embargo, una implementación podría en teoría ejecutar un proceso oculto de la prioridad más baja, por ejemplo, para iniciar un bucle infinito.
El servicio SET_PARTITION_MODE permite gestionar estos estados. Puede ser llamado por cualquier proceso en la partición. Entrar en el estado IDLE es irreversible para la partición. Solo un evento externo (como un reinicio de la plataforma) puede cambiar el estado a otro modo cuando la partición se encuentra en este estado.
Los procesos de una partición
Cada partición tiene al menos un proceso .
La programación de procesos es preventiva . El programador es llamado por un temporizador o por servicios API.
Servicios API
Los servicios ARINC 653 APEX son llamadas API que pertenecen a seis categorías:
- Gestión de particiones
- Gestión de proceso
- Gestión del tiempo
- Comunicación entre particiones
- Comunicación intrapartición
- Manejo de errores
No se proporcionan servicios ARINC 653 para la gestión de la memoria de las particiones. Cada partición tiene que manejar su propia memoria (aún bajo las limitaciones de la partición de memoria impuesta por ARINC 653).
Cada servicio devuelve un valor RETURN_CODE que indica si la llamada ha sido exitosa:
- NO_ERROR: el servicio se realiza nominalmente después de una solicitud válida
- NO_ACTION: el estado del sistema no ha cambiado después de ejecutar el servicio
- NOT_AVAILABLE: el servicio no está disponible temporalmente
- INVALID_PARAM: al menos uno de los parámetros del servicio no es válido
- INVALID_CONFIG: al menos uno de los parámetros del servicio es incompatible con la configuración actual del sistema
- INVALID_MODE: el servicio es incompatible con el modo actual del sistema
- TIMED_OUT: el retraso para la ejecución del servicio ha expirado
Enlaces a POSIX y ASAAC
El campo cubierto por ARINC 653 es similar a ASAAC Def Stan 00-74 . Sin embargo, existen diferencias entre los dos estándares. [11]
Algunas llamadas ARINC 653 (APEX) tienen un equivalente POSIX , pero son diferentes de cómo se definen en POSIX. [11]
Por ejemplo, la siguiente llamada definida en ASAAC:
recibirBuffer
sería traducido en ARINC 653 por:
RECEIVE_BUFFER ()
y también en POSIX por:
recv ()
Referencias
- ^ "ARINC 653 - Un estándar de aviónica para sistemas seguros, particionados" (PDF) . Seminario Wind River Systems / IEEE . Agosto de 2008. Archivado desde el original (PDF) el 7 de octubre de 2009 . Consultado el 30 de mayo de 2009 .
- ^ VanderLeest, SH (1 de octubre de 2010). "Hipervisor ARINC 653". 29ª Conferencia de sistemas de aviónica digital : 5.E.2–1–5.E.2–20. doi : 10.1109 / DASC.2010.5655298 . ISBN 978-1-4244-6616-0.
- ^ "Subcomité APEX" . AEEC. Agosto de 2008 . Consultado el 20 de octubre de 2013 .
- ^ "Enfoque del producto: ARINC 653 y RTOS" . aviationtoday.com. 2004-07-01 . Consultado el 30 de mayo de 2009 .
- ^ "Interfaz estándar del software de aplicación de aviónica: especificación ARINC 653 parte 0" . Aeronautical Radio, Inc. Junio de 2013. Archivado desde el original el 20 de noviembre de 2013.
- ^ "Interfaz estándar del software de aplicación de aviónica: especificación ARINC 653P1-3, servicios requeridos" . Aeronautical Radio, Inc. 2010-11-15. Archivado desde el original el 10 de mayo de 2012 . Consultado el 20 de octubre de 2013 .
- ^ "Interfaz estándar de software de aplicación de aviónica: especificación ARINC 653P2-2, parte 2, servicios extendidos" . Aeronautical Radio, Inc. 2012-06-01. Archivado desde el original el 25 de agosto de 2012 . Consultado el 20 de octubre de 2012 .
- ^ "Interfaz estándar de software de aplicación de aviónica: especificación ARINC 653P3, especificación de prueba de conformidad" . Aeronautical Radio, Inc. 2006-10-20. Archivado desde el original el 10 de mayo de 2012 . Consultado el 20 de noviembre de 2013 .
- ^ "Interfaz estándar del software de aplicación de aviónica: Especificación ARINC 653 Parte 4, Servicios de subconjunto" . Aeronautical Radio, Inc. 2012-06-01. Archivado desde el original el 25 de agosto de 2012 . Consultado el 20 de octubre de 2013 .
- ^ "Tienda ARINC" . ARINC IA. 2014-12-01 . Consultado el 23 de abril de 2015 .
- ^ a b "Flexibilidad y capacidad de gestión de proyectos IMS" (PDF) . Universidad de York . Consultado el 27 de julio de 2008 .
Ver también
- Aviónica modular integrada
- ASAAC
- ARINC
- DO-178B