¿Cómo puedo configurar un sistema DAQ encadenado con tablas pequeñas? [cerrado]

0

Estoy construyendo un exoesqueleto en un equipo de estudiantes y tenemos algunos problemas para encontrar el sistema de prototipos adecuado para nuestro sistema electrónico. Todos los sistemas de estanterías son demasiado lentos o demasiado grandes. La configuración es simple. Cada pata tiene 3 articulaciones y cada articulación tiene una serie de sensores. Estos sensores deben ser leídos por un sistema DAQ y luego enviados a una computadora de destino que ejecuta un ciclo de control (simulink o labview).

NI nos ha ofrecido algo de ayuda al usar sus MyRIO para adquirir todos los datos de los sensores a los que luego podemos enviarlos a un CompactRIO a través de CANbus. Sin embargo, no estamos seguros de si eso es lo suficientemente rápido. Cada conjunto debe enviar 500 bits por muestra y realmente necesitamos mantener la latencia lo más baja posible. En total necesitamos muestrear a 200Hz. Por lo que he escuchado y leído, CANbus no podrá proporcionarnos una conexión lo suficientemente rápida debido a todo tipo de sobrecargas. Quizás es posible encadenar múltiples CANbusses en paralelo?

También examinamos EtherCAT pero todos los sistemas de adquisición de datos son enormes e industriales. Necesitamos mantenerlo pequeño.

Diseñar nuestros propios tableros electrónicos es realmente difícil debido a nuestras limitaciones de tiempo y conocimiento dentro del equipo.

Entonces, mi pregunta es cuáles son las opciones disponibles en caso de que CANbus con hardware de NI no se desarrolle debido a su velocidad.

Los requisitos para los tableros y el sistema general son:

  • Interfaz con Simulink o Labview
  • Los tableros DAQ no son más grandes que un MyRIO
  • programable
  • 4 entradas digitales y 3 entradas analógicas por placa

EDITAR: tasa de muestreo adicional

    
pregunta Ortix92

1 respuesta

1

Entonces, tiene 2 tramos por 3 uniones = 6 nodos CAN, cada uno de los cuales necesita enviar 500 bytes a una frecuencia de muestreo de 200Hz.

Cada mensaje CAN puede contener datos de hasta 8 bytes, y dado que selecciona identificadores CAN de 11 bits, cada mensaje CAN tiene una sobrecarga de 47 bits (incluido el final del marco y el intermedio). El número de mensajes = 500/8 = 62.5, redondea hasta 63 mensajes necesarios.

El número total de bits a enviar por nodo será:

Total bits = total data bits + number of messages * overhead bits

Total bits = 500*8 + 63*47 = 6961 bits

Necesita una frecuencia de muestreo de 200Hz, lo que significa que se deben enviar 6961 bits cada 1/200 = 5 milisegundos. 6961 / (5*10^-3) = 1.39 Mbit/s , suponiendo una transmisión continua en el bus con 100% de carga de bus. La velocidad de datos máxima recomendada para un bus CAN es de 1 Mbit / s.

Y eso es solo la necesidad de un nodo. Multiplique esto por 6 y obtendrá una necesidad total de 8.35 Mbit / s.

Así que el bus CAN no funcionará. Ni siquiera si usara 6 buses CAN paralelos, lo que a su vez también lo obligaría a usar algunos MCU de automoción poco ortodoxos con más de 6 controladores CAN a bordo. O, como alternativa, cree alguna solución de pesadilla con un conjunto de 6 controladores CAN externos ...

También de interés: su CPU "maestra" tendrá que poder procesar 500 * 6 = 3000 bytes de datos cada 5 milisegundos = 600k bytes / segundo. A menos que los datos sean de naturaleza trivial, necesita una CPU potente para manejar eso.

Entonces, la solución sensata aquí es revisar esos 500 bytes y ver si realmente necesitas tantos:

  • ¿Los enteros tienen una resolución de 32 bits y, de ser así, por qué lo necesita?
  • ¿Cuál es la resolución real en los DAC y ADC?
  • ¿Hay datos de punto flotante? Reemplazar con enteros.
  • ¿Hay cadenas ASCII u otras formas de datos no compactos que podrían reemplazarse por números de índice?
  • ¿Hay algún tipo de identificador o prioridad entre los datos que puede reemplazar con el identificador CAN?
  • ¿Los datos tienen una suma de comprobación y, de ser así, realmente necesita uno, dado que un mensaje CAN viene con un CRC de 15 bits incorporado?
  • Y así sucesivamente.
respondido por el Lundin

Lea otras preguntas en las etiquetas