El marco 2.0a (estándar) más pequeño que puede generar es de 47 bits ... El marco 2.0b (extendido) más pequeño que puede generar es de 67 bits ... Eso incluye 3 bits de espaciado entre cuadros, y excluye el relleno de bits ... .En teoría podemos construir un marco que nunca se rellenará; En realidad, ¡el relleno de bits va a suceder bastante!
El máximo de baudios para CANBus 2.0a / b es de 1 Mbit.
En 1Mb / S, un bit único (dominante / recesivo) tiene una longitud de 1 uS, es decir. 0.000'001 S
Por lo tanto, una trama de 67 bits [la trama teórica 2.0b más pequeña] tomará 67uS para transmitir, antes de que se pueda transmitir otra trama (67 bits).
1'000'000 / 67 proporciona 14,925 fotogramas completos (+ 25 bits del siguiente fotograma)
A medida que se ejecuta a 1/8 de esa velocidad, puede obtener como máximo 1/8 de los paquetes
14'925 / 8 = 1'865 cuadros / Segundo a 125Kb
En el momento en que esté utilizando los 64 bits (8 bytes) de datos, y ASUMIENDO que no ha activado "errores" de relleno de bits al tener cadenas de 1 o 0 consecutivos.
1'000'000 / (67 + 64) = 7'633
7'633 / 8 = 954
Y eso también suponiendo que su cableado sea perfecto. ¿Su lata bus está hecha de cable UTP de 120 ohmios y está desacoplada capacitivamente en ambos extremos? ¿O algún cable aleatorio con una resistencia de 120 ohmios en un extremo?
En general, diría que lo está haciendo bastante bien para obtener el 90% del rendimiento teórico máximo.