¿Cómo usar una base de datos CAN .dbc con STM32F usando Keil Uvision?

1

Soy un principiante en el desarrollo de software / firmware, acabo de alejarme de Arduino y entrar en STM32F105. Estoy usando Keil Uvision para desarrollar mi código.

He construido una simple pasarela de bus CAN utilizando 2 transceptores CAN. He escrito algunos firmware que pasan ciertos ID de un canal a otro y viceversa, y ciertos datos se cambian y se transmiten al otro canal. Todo funciona bien.

Pero ahora estoy trabajando en un proyecto más complejo que involucra al menos 30 ID en cada canal, cada uno con datos complejos con multiplicadores complejos y campos de bits, etc.

He creado una base de datos CAN Bus en el archivo Vector .dbc estándar de la industria para ambas redes.

Pero tengo dificultades para establecer una interfaz entre el archivo .dbc y mi código, no puedo encontrar ninguna biblioteca ni información sobre cómo hacerlo.

Consideraría otro IDE pero mi única experiencia es con Keil, así que me gustaría que no fuera una curva de aprendizaje.

Mi pregunta es, ¿hay alguna biblioteca para Keil que me permita importar un archivo .dbc o cualquier documentación sobre cómo hacerlo? ¿O qué otros IDE tienen esa capacidad para trabajar con un archivo .dbc?

    
pregunta Terry Gould

1 respuesta

1

El uso de CAN dbc es que podemos diferenciar las señales en nombres redimibles humanos. Si el mensaje consiste en velocidad, la interfaz de usuario analiza el mensaje de lata y muestra los datos que no se muestran como 0x3C o algún ID hexadecimal. Para enviar mensajes, debe convertir el dbc a estructuras con ID hexadecimal para poder usarlo en el firmware. No veo ninguna aplicación para dbc en el nivel de firmware, es solo para leer y trazar fácilmente, etc. en una interfaz gráfica.

Una cosa que puedes hacer es escribir un script de Python o shell para convertir un archivo dbc a CAN_Msgs.c y CAN_Msgs.h que será más fácil de incorporar en el firmware y se puede actualizar.

Alguien por favor me corrige si estoy equivocado

    
respondido por el ganeshredcobra

Lea otras preguntas en las etiquetas