Articulo de referencia

Cifal

{{cite web | url=https://opencyphal.org/consortium | title=Open technology for real-time communications in cyber-physical systems }} "},"operating_system":{"wt":"[[Cross-platfor...

Cyphal es un protocolo ligero diseñado para comunicaciones fiables dentro del vehículo mediante diversos protocolos de transporte de comunicaciones, originalmente destinado al bus CAN [ 2 ] , pero que en revisiones posteriores se adaptó a varios tipos de red [ 3 ] . OpenCyphal es un proyecto de código abierto que busca proporcionar implementaciones del protocolo Cyphal con licencia MIT. El proyecto se conocía como UAVCAN (Uncomplicated Application-level Vehicular Computing and Networking) antes de su cambio de nombre en marzo de 2022.

Historia

El primer RFC que esbozaba a grandes rasgos las ideas generales que más tarde conformarían los principios de diseño centrales de Cyphal (conocido entonces como UAVCAN) se publicó a principios de 2014. [ 4 ] Fue una respuesta a la percibida falta de tecnología adecuada que pudiera facilitar un intercambio de datos intravehicular robusto y en tiempo real entre los componentes distribuidos de los vehículos inteligentes modernos (principalmente aeronaves no tripuladas).

Desde el RFC original, el protocolo ha pasado por tres iteraciones de diseño importantes, que culminaron en el lanzamiento de la primera revisión estable a largo plazo en 2020 (6 años después), denominada UAVCAN v1.0. Mientras tanto, el protocolo se ha implementado en numerosos sistemas diversos, incluidos vehículos aéreos no tripulados, [ 5 ] [ 6 ] naves espaciales, [ 7 ] robots submarinos, [ 8 ] coches de carreras, [ 9 ] sistemas robóticos generales, [ 10 ] y vehículos de micromovilidad. [ 11 ] En 2022, el protocolo fue renombrado como Cyphal. [ 12 ]

Cyphal es posicionado por sus desarrolladores como una alternativa altamente determinista y orientada a la seguridad a los marcos de publicación-suscripción de alto nivel como DDS o el grafo de computación de ROS , que es suficientemente compacto y simple para ser utilizado en aplicaciones profundamente integradas de alta integridad. [ 13 ] Se ha demostrado que Cyphal es utilizable con microcontroladores bare metal equipados con tan solo 32K ROM y 8K RAM. [ 14 ]

El protocolo es abierto y puede reutilizarse libremente sin necesidad de aprobación ni pago de licencias. El desarrollo del estándar principal y sus implementaciones de referencia se lleva a cabo de forma abierta, coordinado a través del foro de debate público. [ 15 ] A partir de 2020, el proyecto cuenta con el apoyo de varias organizaciones importantes, entre ellas NXP Semiconductors [ 16 ] y el Dronecode Project. [ 17 ]

Historia de Cyphal en el contexto de otros protocolos seriales

a. MODBUS a menudo funciona sobre RS-232.

b. DDS toma prestado un lenguaje de definición de interfaz de CORBA.

c. MODBUS sobre el puerto TCP 502.

d. Airbus se pone en contacto con ARINC para solicitar el desarrollo de un nuevo estándar CAN. Michael Stock aporta su experiencia en el desarrollo de CAN Aerospace . El resultado es ARINC-825-1.

e. El Grupo de Trabajo AVB del grupo de trabajo IEEE 802.1 publica el primer estándar AVB . Se publica el estándar IEEE1722-2011.

f. El Grupo de Trabajo AVB pasa a llamarse Grupo de Trabajo TSN.

g. ROS2 se basa en DDS . El medio típico para los sistemas ROS2 distribuidos es Ethernet.

Se publican los estándares 802.1Qbv y 802.1Qbu, lo que permite definir redes Ethernet totalmente deterministas.

i. Pavel Kirienko lidera un proyecto de código abierto para definir UAVCAN v0. Inicialmente, solo es compatible con CAN 2.0B.

j. Airbus presenta ante el IEEE una ponencia titulada "Aviónica Full Duplex Ethernet y el estándar de redes sensibles al tiempo" en la que propone incorporar AFDX a los estándares TSN.

k. ARINC 825-4 agrega soporte para CAN-FD y define la tunelización sobre ARINC-664.

l. Amazon Prime Air define un conjunto mínimo de cambios a v0 que añade soporte para CAN-FD. La variante no oficial se denomina v0.5. Al mismo tiempo, en la Cumbre de Estocolmo, [ 18 ] se concibió UAVCAN v1.

Se ha añadido el estándar IEEE 802.3, que define el medio Ethernet multipunto, de dos hilos y semidúplex con PLCA ( Prevención de Colisiones a Nivel PHY ). La especificación está dirigida a casos de uso en los sectores automotriz e industrial (por ejemplo, como sustituto de MODBUS).

n. Finaliza la producción del Airbus A380 .

o. UAVCAN v1 pasa a ser beta.

p. DroneCAN se hace cargo del mantenimiento de la especificación UAVCAN v0/v0.5 y de los avances relacionados con ella.

q. UAVCAN v1 pasa a llamarse Cyphal. [ 12 ]

Diseño

Cyphal proporciona abstracciones de costo cero que son accesibles y familiares para los ingenieros de software [ 19 ] sin comprometer la seguridad funcional y el determinismo. [ 3 ] Como tecnología nueva, no está lastrada por sistemas heredados [ 3 ] y se inspira en gran medida en desarrollos recientes en el campo de la tecnología de la información general . [ 20 ] El protocolo ofrece un modelo de comunicación de publicación-suscripción sin estado donde un nodo puede comenzar a operar inmediatamente después de conectarse a la red para dar cabida a aplicaciones de alta integridad. [ 13 ]

El protocolo tiene dos componentes principales claramente separados: [ 21 ] la capa de transporte que funciona sobre redes vehiculares confiables como Ethernet o CAN FD , y la capa de presentación (serialización) independiente del transporte basada en el llamado lenguaje de descripción de estructuras de datos (DSDL). Se ha demostrado que el protocolo se puede implementar en menos de 1000 líneas lógicas de código. [ 22 ]

DSDL es ideológicamente similar al lenguaje de descripción de interfaces utilizado en ROS, excepto que introduce restricciones estáticas adicionales para que la solución sea adecuada para sistemas embebidos de alta integridad en tiempo real. Esta similitud impulsó a algunos desarrolladores a conectar ROS con Cyphal mediante capas de traducción automatizadas. [ 10 ] [ 23 ]

Principios fundamentales

El protocolo se basa en los siguientes principios de diseño fundamentales, cuyo objetivo es garantizar que la solución sea idónea para los sistemas vehiculares modernos, complejos y críticos para la seguridad.

  • Red democrática : no hay un nodo maestro. Todos los nodos de la red tienen los mismos derechos de comunicación; no debería haber un único punto de fallo.
  • Facilitación de la seguridad funcional : los diseñadores de sistemas Cyphal disponen de las garantías y herramientas necesarias para analizar el sistema y asegurar su correcto funcionamiento.
  • Abstracciones de comunicación de alto nivel : el protocolo admite semántica de comunicación de publicación/suscripción y llamada a procedimiento remoto con tipos de datos (esquema) definidos y verificados estáticamente. Los tipos de datos utilizados para la comunicación se definen de forma clara e independiente de la plataforma, lo que facilita su comprensión tanto para máquinas como para humanos.
  • Facilitación de la interoperabilidad entre proveedores : Cyphal proporciona una base común sobre la que diferentes proveedores pueden construir para garantizar la interoperabilidad de sus equipos. Cyphal ofrece un conjunto genérico de tipos de datos de comunicación estándar independientes de la aplicación.
  • Funciones genéricas de alto nivel bien definidas : Cyphal define servicios y mensajes estándar para funciones comunes de alto nivel, tales como: descubrimiento de red, configuración de nodos, actualización de software de nodos, monitoreo del estado de los nodos, sincronización horaria en toda la red, soporte de nodos plug-and-play, etc.
  • Abstracciones de datos atómicas : los nodos pueden intercambiar grandes estructuras de datos que superan la capacidad de una sola trama de transporte. Cyphal realiza la descomposición y el reensamblaje automáticos de datos a nivel de protocolo, ocultando la complejidad correspondiente a la aplicación.
  • Alto rendimiento, baja latencia y determinismo : Cyphal añade una sobrecarga mínima al protocolo de transporte subyacente, lo que garantiza un alto rendimiento y una baja latencia. Esto hace que Cyphal sea ideal para aplicaciones de tiempo real estricto.
  • Compatibilidad con interfaces y nodos redundantes : Cyphal es adecuado para aplicaciones que requieren redundancia modular.
  • Lógica sencilla, bajos requisitos computacionales : Cyphal está diseñado para una amplia variedad de sistemas embebidos, desde ordenadores de a bordo de alto rendimiento hasta microcontroladores con recursos extremadamente limitados. Su mantenimiento es económico en términos de potencia de cálculo y horas de ingeniería, y las funciones avanzadas se pueden implementar de forma incremental según sea necesario.
  • Abstracciones de interfaz y tipos de datos enriquecidos : un lenguaje de descripción de interfaces es una parte fundamental de la tecnología, que permite que los subsistemas profundamente integrados interactúen directamente (y de forma mantenible) con sistemas de nivel superior, al tiempo que posibilita la simulación y las pruebas funcionales.
  • Compatibilidad con diversos protocolos de transporte : Cyphal se puede utilizar con varios protocolos de transporte diferentes y se puede ampliar para admitir otros protocolos de transporte en el futuro.
  • Estándar independiente de la API : a diferencia de otros estándares de red, Cyphal no intenta describir la interfaz de programación de aplicaciones (API). Cualquier detalle que no afecte el comportamiento de una implementación observable por otros participantes de la red queda fuera del alcance de la especificación.
  • Especificación abierta e implementaciones de referencia : La especificación Cyphal es, y siempre será, abierta y de uso gratuito para todos. Las implementaciones de referencia se distribuyen bajo los términos de la permisiva Licencia MIT o se publican en el dominio público.

capa de transporte

Cyphal/CAN

El transporte CAN se basa en CAN y CAN FD utilizando identificadores de 29 bits. La carga útil CAN incluye una sobrecarga de tamaño fijo de un byte por trama para las necesidades de la capa de transporte. [ 21 ]

Cyphal/UDP

Se ha propuesto el transporte Cyphal/UDP para redes vehiculares basadas en Ethernet en tiempo real. Se dice que el diseño está influenciado por AFDX , DDS/RTPS y SOME/IP. [ 20 ]

Tipos de datos estándar

Al igual que otras tecnologías similares, Cyphal proporciona una biblioteca de tipos de datos comunes, gestionada y curada por los responsables del protocolo, que tienen como objetivo abordar ciertos problemas comunes en aplicaciones populares. [ 24 ] Estos tipos de datos complementan los tipos de datos específicos del proveedor o de la aplicación definidos por los usuarios, de forma similar a como un lenguaje de programación definiría una biblioteca estándar en la que se basa el software desarrollado por el usuario. La especificación del protocolo proporciona un conjunto de reglas destinadas a evitar conflictos y mejorar la interoperabilidad de los tipos de datos definidos por proveedores independientes. [ 25 ]

Referencias

  1. "Tecnología abierta para comunicaciones en tiempo real en sistemas ciberfísicos" .
  2. "Acerca de OpenCyphal" . Consultado el 28 de febrero de 2020 .
  3. 1 2 3 "UAVCAN - Kvaser - Soluciones CAN avanzadas" . Consultado el 16 de octubre de 2019 .
  4. "Drones debaten | UAVCAN - bus CAN para UAV" . groups.google.com/forum/#!topic/drones-discuss . Consultado el 27 de febrero de 2020 .
  5. Meier, Lorenz (2017). Arquitectura dinámica de robots para visión artificial robusta en tiempo real (Tesis). ETH Zurich. doi : 10.3929/ethz-a-010874068 . hdl : 20.500.11850/129849 .
  6. "Desarrollador de ArduPilot | Bus CAN y protocolo UAVCAN" . ardupilot.org . Consultado el 27 de febrero de 2020 .
  7. Losekamm, Martin; Milde, Michael; Poschl, Thomas; Greenwald, David; Paul, Stephan (2016). "Monitoreo omnidireccional de radiación en tiempo real en naves espaciales". AIAA Space 2016 (artículo). doi : 10.2514/6.2016-5532 . ISBN 978-1-62410-427-5.
  8. Bhat, Sriharsha; Stenius, Ivan; Bore, Nils; Severholt, Josefine; Ljung, Carl; Torroba Balmori, Ignacio (2019). «Hacia un sistema ciberfísico para vehículos submarinos autónomos hidrobáticos». OCEANS 2019 - Marsella . pp. 1–7 . doi : 10.1109/OCEANSE.2019.8867392 . ISBN  978-1-7281-1450-7. S2CID 204700489 . 
  9. "Copia archivada" (PDF) . Archivado del original (PDF) el 28 de febrero de 2020. Recuperado el 28 de febrero de 2020 .{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace )
  10. 1 2 "GitHub - MonashUAS/Canros: Interfaz UAVCAN a ROS" . GitHub . 5 de abril de 2022.
  11. "Nueva versión 2019 de VESC-Tool" . 8 de febrero de 2019.
  12. 1 2 "UAVCAN v1 ahora es Cyphal" . Foro de OpenCyphal . 25 de marzo de 2022. Consultado el 13 de octubre de 2022 .
  13. 1 2 "UAVCAN: Un protocolo de publicación-suscripción altamente confiable para redes intravehiculares en tiempo real" . 2 de julio de 2019.
  14. "Nuevo OpenGrab EPM V3 para la sujeción de carga en UAV" . 4 de diciembre de 2015.
  15. "Foro de OpenCyphal" . Foro de OpenCyphal . Consultado el 25 de abril de 2024 .
  16. "NXP Semiconductors is pleased to support UAVCAN V1.0". 9 December 2019.
  17. "Dronecode | Leading open-source components for UAVs". www.dronecode.org. Retrieved 27 February 2020.
  18. "Stockholm Summit recap". OpenCyphal Forum. 5 October 2018. Retrieved 13 October 2022.
  19. "OlliW's Bastelseiten » UC4H: UAVCAN for Hobbyists".
  20. 12"Alternative transport protocols in UAVCAN". 11 January 2019.
  21. 12Specification opencyphal.org
  22. "Compact Cyphal/CAN v1 in C". GitHub. 22 November 2021.
  23. "Our first ROS2 UAVCAN (PyCyphal) publisher and service nodes". OpenCyphal Forum. 12 April 2022. Retrieved 13 October 2022.
  24. "Regulated DSDL definitions". GitHub. 16 November 2021.
  25. "Data type regulation policy and membership fees". 8 December 2019.
  • Official website
  • Public forum for development coordination and feedback