Ich bin ein Anfänger in der Software- / Firmware-Entwicklung und bin gerade erst von Arduino auf den STM32F105 gekommen. Ich verwende Keil Uvision, um meinen Code zu entwickeln.
Ich habe ein einfaches CAN-Bus-Gateway mit 2 CAN-Transceivern gebaut. Ich habe eine Firmware geschrieben, die bestimmte IDs von einem Kanal zum anderen und umgekehrt weitergibt und bestimmte Daten ändert und auf den anderen Kanal überträgt. Alles funktioniert gut.
Aber ich arbeite jetzt an einem komplexeren Projekt mit mindestens 30 IDs auf jedem Kanal, die jeweils komplexe Daten mit komplexen Multiplikatoren und Bitfeldern usw. haben.
Ich habe eine CAN-Bus-Datenbank in der branchenüblichen Vector .dbc-Datei für beide Netzwerke erstellt.
Aber ich habe Probleme damit, die .dbc-Datei mit meinem Code zu verbinden, ich kann keine Bibliotheken oder sogar Informationen darüber finden, wie das geht.
Ich würde eine andere IDE in Betracht ziehen, aber meine einzige Erfahrung ist mit Keil, daher möchte ich, dass es keine zu große Lernkurve ist.
Meine Frage ist, gibt es Bibliotheken für Keil, mit denen ich eine .dbc-Datei oder eine Dokumentation dazu importieren kann. Oder welche anderen IDEs haben diese Fähigkeit, mit einer .dbc-Datei zu arbeiten?
Die Verwendung von CAN dbc besteht darin, dass wir Signale in lesbaren Namen unterscheiden können. Wenn die Nachricht aus Geschwindigkeit besteht, analysiert die Benutzerschnittstelle die Can-Nachricht und zeigt die Daten anders als 0x3C oder eine Hex-ID an. Um Nachrichten zu senden, müssen Sie die DBC in Strukturen mit Hex-ID konvertieren, damit Sie diese in der Firmware verwenden können. Ich sehe keine Anwendung für dbc auf Firmware-Ebene, es dient nur zum einfachen Lesen und Plotten usw. in einem grafischen Frontend.
Eine Sache, die Sie tun können, ist, ein Python- oder Shell-Skript zu schreiben, um eine dbc-Datei in CAN_Msgs.c und CAN_Msgs.h zu konvertieren, die sich einfacher in die Firmware integrieren lassen und aktualisiert werden können.
Bitte korrigiert mich jemand, wenn ich falsch liege
Neuling Noob
Ganeshredcobra