Comunicaciones
CAN - Introducción
El coche tiene dos subsistemas que reciben acciones de control y dan feedback de su estado:
- Sistema de tracción
- Sistema de dirección
CAN - Sistema de tracción
Cómo bien hemos expresado en la introducción, el sistema de tracción se controla mediante CAN.
Este código está procesando mensajes de una red CAN en un sistema llamado MasterDrive, donde se manejan distintos PDOs (Process Data Objects) para la comunicación entre un Master, un Slave y una Computadora.
📌 ¿Qué significan las constantes?
Las constantes como PDO1_MISO_MtoC y PDO1_MOSI_MtoS representan los identificadores CAN ID de los mensajes en la red.
Estas son definiciones de valores hexadecimales que indican qué tipo de mensaje es cada uno.
| Constante | ID (Hex) | ID (Decimal) | Significado |
|---|---|---|---|
PDO1_MISO_MtoC |
0x1A6 |
422 |
Master → Computer (Datos de corriente, voltaje, batería) |
PDO1_MOSI_MtoS |
0x227 |
551 |
Master → Slave (Comandos de control) |
PDO2_MISO_MtoC |
0x2A6 |
678 |
Master → Computer (Datos de velocidad, temperatura) |
PDO2_MISO_StoC |
0x2A7 |
679 |
Slave → Computer (Temperatura y corriente del Slave) |
PDO1_MISO_StoM |
0x1A7 |
423 |
Slave → Master (Estados y fallas del Slave) |
PDO1_MOSI_CtoM |
0x226 |
550 |
Computer → Master (Acción de control Accelerador) |
candump-2025-02-13_124653_conector_rojo.log
CAN - Herramientas
- https://github.com/linux-can/can-utils
- https://mintonperformance.com/blogs/controller-area-networking/setup-and-installation-of-can-utils-on-linux-2022-update?srsltid=AfmBOoqO-Zz8XW9iiHUu_DC6VKThbfrxMTdchiCR2tbKv1svMpi2Hj2f
CAN - Bibliografía
Tutoriales:
- Blog - mbedded.ninja - How To Use SocketCAN With The Command-Line In Linux - https://blog.mbedded.ninja/programming/operating-systems/linux/how-to-use-socketcan-with-the-command-line-in-linux/
- Blog - mbedded.ninja - How To Use SocketCAN With C++ In Linux https://blog.mbedded.ninja/programming/operating-systems/linux/how-to-use-socketcan-with-c-in-linux/