Andy schrieb:
> Über einen CAN-USB Adapter kann man dann CAN-Nachrichten am PC auslesen.
> Kennt sich jemand mit dem Thema Treiberprogrammierung aus? Kann ich
> dafür vllt. schon vorhandene Treiber verwenden?
Um vorhandene Treiber verwenden zu können, muss Dein Gerät sich
verhalten wie eines, für das es bereits Treiber gibt. Am einfachsten ist
das mit einer der Standardgeräteklassen, bei Dir bietet sich da das
HID-Protokoll an. Denn das ist für Geräte wie Mäuse, Tastaturen,
Joysticks und eben auch Lenkräder gemacht.
Also brauchst Du statt eines USB-CAN-Adapters einen Adapter, der die
relevanten Inhalte per CAN empfängt und in das USB-HID-Protokoll
umsetzt.
So etwas gibt es mit hoher Wahrscheinlichkeit nicht als Fertiggerät, so
etwas wirst Du selbst entwickeln müssen.
Aber das ist der richtige Weg, den Du gehen solltest.
Ja, es ist natürlich auch möglich, einen Windows-Treiber zu basteln, der
sich mit dem Treiber Deines USB-CAN-Adapters unterhält und daraus
wiederum für das Windows-Multimedia-/Spiele-Gedöns die relevanten Daten
erzeugt, aber das ist ganz erheblich komplizierter und hat vor allem
den riesigen Nachteil, daß es dann auch nur mit Windows funktioniert.
Sollte Microsoft mal wieder die Devicetreiberarchitektur ändern (das gab
es schon häufiger), musst Du Deinen Treiber erneut anpassen und testen.
Obendrein erlauben aktuelle Windows-Versionen nur die Installation
signierter Treiber, so eine Treibersignatur kann man sich aber nicht
selber bastelen.
Ohne Not sollte man also um Treiberentwicklungsversuche einen großen
Bogen machen. Vor allem, wenn es so komplett unnötig ist, wie im
vorliegenden Fall, da es mit HID bereits eine fertige Treiberarchitektur
für Dein Gerät/Vorhaben gibt.
Also:
Du brauchst einen µC, der CAN versteht und mit Deinem Lenkrad
kommunziert und die anfallenden Nachrichten auswertet bzw. anfordert.
Ist das Lenkrad von sich aus aktiv oder muss es gezielt angesteuert und
nach seinem aktuellen Befinden befragt werden? Das ist Aufgabe für den
µC.
Der µC muss dann auch noch USB "sprechen" können und das HID-Protokoll
implementieren, und zwar so, daß er die anfallenden Lenkradinformationen
(Drehbewegungen, etwaige Tasten etc.) in die korrekten USB-Daten
umsetzt.