¿Cuál es la tasa de bits máxima admitida en Can Bus?

0

Comencé a leer sobre Can Bus para mi proyecto del último año

Tengo que enviar un archivo para que se coloque en el microcontrolador mediante el CAN BUS. Descubrí que la velocidad máxima de bits que se puede alcanzar es de 1Mb / s, pero hay muchas cosas que considerar como el reconocimiento. El tiempo y el espaciado entre marcos.

Entonces, ¿cómo puedo saber la velocidad de bits máxima admitida en el CAN BUS? Es posible obtener 1mb / s como la tasa de bits máxima, cómo se puede lograr esto.

El microcontrolador que estoy usando es MPC 5748 Hoja de datos aquí

Cualquier ayuda será apreciada, gracias.

    
pregunta The Beast

2 respuestas

4

Ya escribiste que la velocidad máxima de datos es 1Mbit / s, pero esta es la velocidad sin procesar .

Un mensaje CAN (marco de datos) tiene este aspecto en el ámbito:


( Fuente )

y consta de estas secciones con su longitud en bits:

Start-of-frame                            1
Identifier (green)                       11
Remote transmission request (RTR) (blue)  1
Identifier extension bit (IDE)            1
Reserved bit (r0)                         1
Data length code (DLC) (yellow)           4
Data field (red)                       0–64
CRC                                      15
CRC delimiter                             1
ACK slot                                  1
ACK delimiter                             1
End-of-frame (EOF)                        7  
Inter-frame bits                          3

( Fuente )

es decir, hay 46 bits de "administración" para hasta 64 bits de datos. Esto reduce su tasa de datos neta a aproximadamente 580kBit / s .

El remitente envía un 0 recesivo en la ranura ACK, y el receptor lo llevará a un 1 dominante cuando el mensaje se recibió correctamente. Esto significa que el mecanismo de reconocimiento ya es parte de este marco de datos y no cuesta ancho de banda adicional.

Inter-frame bits es la distancia mínima entre dos cuadros, por lo que el siguiente cuadro puede seguir directamente. Sin embargo, si hay más tráfico en el bus, la velocidad de datos puede reducirse drásticamente. Tenga en cuenta: quienquiera que tenga que enviar un mensaje verifica si alguien más está hablando y, si no, comienza a hablar. Si dos dispositivos comienzan a hablar al mismo tiempo, notarán esto, abortarán, esperarán un poco e intentarán nuevamente. (Es como si varias personas hablaran entre sí. Algunas tienden a decir unas pocas palabras, se detienen por un segundo y vuelven a hablar. A veces no puedes saltar para decir lo que quieres ...)

Finalmente, todos los dispositivos deben configurarse a 1MBit / s, y la longitud máxima del cable está limitada a 40m.

Aparte de esto, necesita averiguar qué velocidad de datos puede manejar su MCU. Es posible que el módulo CAN de la MCU pueda manejar una velocidad de bus de 1MBit / s, pero que la MCU no pueda copiar los datos del módulo antes de que llegue el siguiente módulo. En estos casos, debe implementar pausas entre los marcos.

    
respondido por el sweber
3
He encontrado que la velocidad de bits máxima que se puede alcanzar es 1mb / s

En realidad es 1 Mbit / s. Eso es "mega", no "milli".

¿cómo puedo saber la velocidad de bits máxima admitida en CAN BUS
?

Al leer tus propias palabras solo dos oraciones antes, suponiendo que tu error milli versus mega fue solo un error tipográfico.

En un sistema CAN privado donde controlas todos los nodos y el cableado del bus y la longitud y los circuitos de interfaz del bus eléctrico, puedes ir más rápido. Como CAN se especifica para 1 Mbit / sy la mayoría de las implementaciones dividen un poco el tiempo en 9-20 "quanta de tiempo", la mayoría de los periféricos CAN no pueden ir mucho más rápido. Sin embargo, mire cuidadosamente el generador de tasa de bits periféricos CAN en su micro. Con un reloj rápido, probablemente pueda ejecutarlo a más de 1 Mbit / s.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas