¿Cómo decodificar datos ARINC 429?

Estoy buscando ayuda con respecto a la decodificación de datos ARINC 429. Tengo un documento CSV que contiene etiquetas ARINC 429 almacenadas secuencialmente.

Mi objetivo general es poder buscar 4 etiquetas específicas y solo decodificar esos marcos (campo de datos, campo de etiqueta y campo ssm) y agregarlos al documento.

¿ARINC 429 viene aleatoriamente en diferentes formatos de datos (es decir, BCD, BNR, bits discretos, etc.)?

Dado que estoy buscando etiquetas específicas, ¿está bien configurarlo solo para decodificar el formato BNR o necesito poder identificar y decodificar todos los formatos de datos?

Este es un tema un poco fuera de lugar para este intercambio, pero es posible que desee consultar este proyecto .
Su pregunta parece un poco fuera de tema ya que está más relacionada con la programación. Si no encuentra lo que busca, intente preguntarlo en un intercambio de programación.
Creo que está en el tema, ya que la pregunta real es sobre los datos de aviación, no la programación, eso es solo información de fondo.
¿Tiene una lista específica de etiquetas que está tratando de decodificar?
Arinc 429 no se trata de aviación? ¿No es un bus de datos encontrado en... un avión?
Incluso con la edición que propone, su pregunta aún no está clara. Quiere ayuda para decodificar datos. Parece que tiene algún conocimiento de Arinc 429. ¿Qué le impide identificar en su flujo de datos las etiquetas que le interesan? No le proporcionaremos un pseudocódigo, pero podemos explicarle el protocolo si tiene un problema específico sobre el flujo de datos en su muestra de CSV. Sea específico, de lo contrario no se puede proporcionar ninguna respuesta.
@mins, propuse la edición para eliminar las referencias a Python en la pregunta. Hasta ahora, mi respuesta a la pregunta parece haber ayudado al OP. La pregunta realmente gira en torno a la comprensión de la estructura de la palabra ARINC 429.
@selectstriker2: Escribí este comentario mientras estaba en la cola de revisión, no vi que fuera su edición, pero voté para reabrir ya que la edición fue una gran mejora, ahora que leí su respuesta y los comentarios de OP, creo que esto es va a ser resuelto.
Nicho de los sistemas de aviónica en el mundo de los programas informáticos. Supongo que el piloto promedio sabría más sobre la codificación Arinc que el programador promedio.

Respuestas (2)

ARINC 429 es un estándar definido que no solo describe la estructura del paquete (32 bits) sino también los formatos de datos para diferentes etiquetas según la ID del equipo. Para saber cómo decodificar correctamente una etiqueta ARINC 429, necesita conocer la identificación del equipo, que luego se puede usar para buscar el significado de una etiqueta específica.

El fabricante del dispositivo del que provienen los datos también puede proporcionar la definición de cualquier etiqueta no estándar/personalizada.

Si sabe qué etiquetas está buscando, no tiene que decodificar la etiqueta completa, solo necesita inspeccionar los bits 8-1 para determinar la etiqueta.

Sin embargo, en general, la especificación ARINC 429 proporciona una guía para las etiquetas:

Subgrupo decimal codificado en binario (BCD) 001 a 067, 125, 165, 170, 200, 201,230 a 237.

Subgrupo binario (BNR) 070 a 124, 126 a 144, 150 a 154, 162 a 164, 166, 167, 171 a 177, 202 a 227, 240 a 257, 262 a 265, 267, 310 a 347, 360 a 376 .

Subgrupo mixto BCD y BNR 260, 261

Subgrupo discreto 145 a 147, 270 a 276

Subgrupo de mantenimiento y datos discretos 155, 156

Subgrupo de datos de mantenimiento 157 a 161, 350 a 354

Subgrupo de palabras de prueba 266, 277

Subgrupos dependientes de la aplicación 300 a 307

Agradecimiento subgrupo 355

Mantenimiento ISO #5 subgrupo 356

Subgrupo de mensajes ISO #5 357

¡Oh, ya veo! Actualmente tengo 2 de las 4 etiquetas que necesito (204 y 210), pero sigo buscando las otras 2 (temperatura del aire exterior y presión barométrica). Entonces, suponiendo que obtenga los otros dos entre 202 y 227, no necesitaría identificar qué formato es, ¿podría ir directamente a traducir el complemento de dos (BNR) a decimal?
Además, disculpe si esta es una pregunta tonta, pero si termino obteniendo una etiqueta de 376, ¿cómo se transmitiría si la representación bnr tiene una longitud de 9 bits? (algo así como 0010000111)
¿Sabe qué ID de equipo está utilizando el dispositivo del que está recibiendo datos?
Sí, los dispositivos para el individuo (creo), logré encontrar un documento con un montón de etiquetas con identificaciones de equipos. La identificación de equipo que tengo para 210 es 006 y 204 es 060. Otra pregunta (posiblemente tonta), ¿son las identificaciones de equipo exclusivas de la computadora de datos aéreos? editar: no importa, creo que respondí mi propia pregunta en función de lo que acabo de leer. Entonces, sí, la identificación del equipo es única para el dispositivo de aviónica. Mi próximo paso debería ser adquirir la identificación del equipo de la computadora de datos aéreos de la que recibiré, ¿correcto? ¿Cómo puedo hacer eso? Debo señalar que la computadora de datos aéreos no es exactamente accesible para mí en este momento
El ID del equipo describe qué tipo de computadora transmite. ID 006 es Air Data System e ID 060 es Unidad de navegación GNSS. Para ID 006, la etiqueta 210 es la velocidad aerodinámica real en nudos, 204 es la altitud corregida de baro en pies.
Ah, ya veo, así que no es un dispositivo específico, sino el tipo de dispositivo. ¿Quiere decir algo como un número de serie que identifique específicamente la marca y el modelo de la computadora de datos aéreos?
¿Puedo volver a usted en eso? Mi jefe sería el que tendría esa información, pero estará fuera de la oficina por un tiempo... ¿Sería posible que yo siguiera descifrando cómo decodificar estos marcos arinc429 hasta que pueda obtener la marca y el modelo? de la computadora de datos de aire?
Claro, recomendaría echar un vistazo a esta breve descripción primero, debería ayudar a identificar qué bits están asignados a diferentes partes de la palabra ARINC 429: aim-online.com/pdf/OVIEW429.PDF
Su empresa también podría considerar comprar el documento estándar ARINC 429, que define la mayoría de las etiquetas estándar utilizadas y algunos ejemplos para ayudar con la codificación/descodificación: aeec-amc-fsemc.com/cf/store/catalog_detail.cfm?item_id= 1940
Leí la descripción general y mostraré el documento estándar completo con mi jefe cuando regrese. ¿El documento estándar completo contiene todo sobre el protocolo ARINC 429? como códigos de etiqueta con ID de equipo, métodos que se pueden usar para decodificar y codificar marcos, etc.
Además, noté que mencionaba un tipo de datos que usa comunicación bidireccional... cuando estaba leyendo antes, leí que ARINC 429 usa comunicación símplex (unidireccional), entonces, ¿cómo sería la comunicación bidireccional? Al intentar adquirir datos, ¿una computadora de datos aéreos transmitiría automáticamente una vez encendida o requeriría un código de solicitud? cuando descubrí que usaba comunicación símplex, automáticamente asumí que transmitiría una vez encendido porque no puedo enviar un comando de activación de vuelta...
ARINC 429 es unidireccional, por lo que para la comunicación bidireccional se necesitan dos conexiones seriales ARINC 429: 1 de entrada y 1 de salida. Piense en ello como una interfaz de transmisión. El transmisor envía continuamente datos sin saber quién los recibe.
Ohh, está bien, entonces estaba en lo cierto al suponer que una vez que se enciende, automáticamente comenzará a transmitir datos, pero como dijiste, no sabrá quién los está recibiendo, ¿solo está transmitiendo? Así que volví a leer la descripción general y me ayudó a entender el protocolo. Entiendo las etiquetas mucho más claras ahora. Para las etiquetas, ahora sé que los códigos de etiqueta son valores octales, no decimales y se envían en 3 conjuntos de octales en binario (es decir, la etiqueta 210 se envía como 100-001-10).
Las únicas partes sobre las que todavía tengo un poco de confusión son las secciones que tratan sobre el Protocolo Williamsburg/Buckhorn (WBP) y los datos BNR. Para BNR Data, ¿puede explicarme el factor de escala? No pude comprender cómo los bits eran fracciones decrecientes del factor de escala. Para WBP, ¿solo se implementa cuando los bits de datos superan los 21? ¿Básicamente empaqueta un bloque de palabras con palabras que contienen las palabras de datos regulares con las palabras SOT, GFI, EOT, etc.? ¿Tendría que preocuparme por determinar cómo separar los bloques en sus palabras e identificar cuál es una palabra de datos y cuál no?
Dudo que deba preocuparse por WBP, ya que se usa para transferencias de archivos en lugar de los datos típicos de ARINC 429.
Para el factor de escala, echa un vistazo a mi respuesta aquí: Aviation.stackexchange.com/a/37485/17732
Lo siento, todavía estoy un poco confundido por las explicaciones del factor de escala en el enlace que enviaste. De la documentación que vinculó y de un video que vi, tuve la idea de que para identificar el valor en el campo de datos se decodificaría identificando los bits sig en el campo (los 1) y multiplicando el factor de escala asociado de ese índice (1 /2, 1/4, 1/8, etc) por el máximo valor posible de la etiqueta identificada. Además, el bit 29 es el bit de signo. ¿Es ese el entendimiento correcto?

De la palabra ARINC 429 de 32 bits, la etiqueta está codificada por los bits 1 a 8 de la siguiente manera: bits 1 a 3 para el dígito octal menos ponderado, bits 4 a 6 para el siguiente más alto y bits 7 y 8 para el dígito octal más ponderado. dígitos octales. Entonces la etiqueta se decodifica en base 8 y no en base 10, aquí un ejemplo. Por ejemplo, dada la siguiente etiqueta binaria: 11100110 Los 3 bits 110 se decodifican 0+2+4=6 Los 3 bits 100 se decodifican 0+0+4=4 Los dos dígitos 11 se decodifican 1+2=3 Por lo tanto, la etiqueta es 346 Nota: si todos los bits se establecen en 1, la etiqueta más grande es, por lo tanto, 377. Por supuesto, puede transmitir más de 377 parámetros, porque parámetros similares de diferentes fuentes o sensores, por ejemplo, AOA izquierdo, AOA derecho, tienen la misma etiqueta. Para distinguir parámetros similares que tienen diferentes fuentes,