¿Puedo usar un bus CAN para adquirir datos?

1

Estoy intentando desarrollar un sistema robótico que tenga un sistema DAQ distribuido con una computadora principal que tenga el bucle de control de alto nivel. Tengo una pregunta sobre los datos que deben transmitirse cada segundo a la computadora de procesamiento. Hice un cálculo 'rápido' sobre la cantidad de datos que queremos enviar a la computadora principal y luego una estimación sobre qué tan rápido podemos enviarlos a través del bus de latas. La velocidad en baudios del bus CAN es: 1Mb / s (bit) La cantidad de bits que tenemos que transferir es: IMU: 4 (mag, accel, gyro, euler) * 4 (x, y, z, time) * 16 bit (resolución) = 256 bit Analógico: 5 * 12 bits (resolución) = 60 bits Codificadores: 3 * 17 bits (resolución) = 51 bits Con un total de 367 bits. Esto significa que con el bus CAN, tenemos una frecuencia de muestreo de 1.000.000 / 367 = + - 3k Hz en la computadora principal

¿Podrían comprobar si esta es una forma correcta de adquirir una cifra aproximada para el actualizador?

    
pregunta Bart Kootte

2 respuestas

1

Sus cálculos de bits son correctos, pero es importante recordar los gastos generales y el uso del bus.

Si usa marcos básicos CAN, cada mensaje puede llevar hasta 64 bits y tiene 44 bits de encabezado. Esto significa que, en el caso más óptimo, necesitará ~ 70% de ancho de banda adicional para la sobrecarga. En realidad, puede ser aún más alto si sus remitentes no se ubican conjuntamente, por ejemplo, si los codificadores son dispositivos separados en el bus, cada uno solo enviará 17 bits por trama, para una sobrecarga de protocolo del 258%.

Además, no debe usar el ancho de banda completo del bus para dejar espacio para relojes imprecisos, mensajes de error, etc. He escuchado que puede ejecutar hasta el 80% de utilización del bus sin mayores problemas.

En general, no obtendrá una frecuencia de muestreo de 3 KHz. Considere múltiples buses CAN o Ethernet si necesita esta velocidad.

    
respondido por el theamk
0

En un cálculo muy, muy, muy aproximado, estás completamente correcto.

Lo que también debe tenerse en cuenta es qué tan rápido pueden los periféricos procesar realmente lo que necesitan. Si no pueden sostener 3kHz entonces el cálculo es discutible. Además, algunos de estos dispositivos pueden funcionar en un sistema de tipo de llamada y respuesta, entonces hay que tener en cuenta el mensaje de solicitud de los datos.

Finalmente, CAN tiene una sobrecarga para la dirección del mensaje y el tamaño del paquete y la suma de verificación, etc ... que consumirá más bits de los que no ha tenido en cuenta.

    
respondido por el vini_i

Lea otras preguntas en las etiquetas