Frage zu USB Daten über CAN senden

Gast #5661581
Lesenswert?

Hallo allerseits,

kennt jemand eine Möglichkeit USB HID Daten an den CAN Bus zu senden?

Hintergrund:
Von einem Gerät werden Daten gesendet. Das Gerät erscheint im PC als USB 
HID
 device.

Das funktioniert auch ganz prima (Windows). Nun möchte ich einige Daten 
aber auf dem CAN Bus senden.

Leider hab ich von Can wenig Ahnung und es gibt wohl auch nichts 
fertiges.

Wie würdet ihr da heran gehen?
Gast #5661650
Lesenswert?

CanCan schrieb:
> Guter Tip, hab aber mit dem Raspi noch nie was gemacht. Gibt es da USB
> HID (host) und

Ja.

CanCan schrieb:
> und CAN?
Nicht direkt. Du brauchst immer noch einen CAN-Adapter. Es gibt aber 
bestimmt ähnliche Boards welche CAN eingebaut haben, da darfst du selber 
mal nach suchen. Die TI Sitara Prozessoren haben CAN und USB-Host 
integriert, bei Boards die das nutzen (z.B. Beaglebone Black) könnte das 
gehen.
Gast #5661667
Lesenswert?

Dr. Sommer schrieb:
> Nicht direkt. Du brauchst immer noch einen CAN-Adapter. Es gibt aber
> bestimmt ähnliche Boards welche CAN eingebaut haben, da darfst du selber
> mal nach suchen.

Suche ich gern, noch eine Frage:

Wie sieht es mit der CAN Software aus. Bei USB gibt es ja libs (und es 
ist wohl sehr komplex).

Gibt es das auch für CAN oder kann man das selbst machen?
Gast #5661671
Lesenswert?

Herby schrieb:
> Suche dir einen STM32F-Controller auf einem EVA-Board mit USB & CAN
> heraus.

Aber aufpassen dass USB und CAN bei dem Controller gleichzeitig nutzbar 
sind. Die benötigte USB-Host-Implementation ist sehr komplex.

CanCan schrieb:
> Gibt es das auch für CAN oder kann man das selbst machen?

Es sollte Linux-Treiber dafür geben, kann man aber auch selbst machen; 
hängt vom verwendeten Prozessor ab. CAN ist ja nicht so kompliziert.
Gast #5661696
Lesenswert?

CanCan schrieb:
> Wie läuft das bei CAN in der Praxis. Es gibt ja jede Menge Geräte.
> Wie "verstehen" die was ich ihnen sende?

Du musst in deren Datasheet nachlesen, was du ihnen senden musst. Ggf. 
wird ein High-Level-Protokoll wie CANopen benutzt. Lies dich erstmal zu 
CAN ein, die Grundlagen sind nicht schwierig. Aber so Plug&Play wie USB 
ist das nicht, man muss schon wissen was man tut.
Gast #5661714
Lesenswert?

Dr. Sommer schrieb:
> Lies dich erstmal zu  CAN ein, die Grundlagen sind nicht schwierig.

Hab ich schon gemacht, ist mir auch klar wie es von der Hardware funzt.
Auf der Datenebene steht da aber immer ID / Daten

Wenn ich das richtig verstehe bekommt der Empfänger Daten und weiß über 
die ID was gemeint ist (z.B. Drehzahl, Reifendruck Innenbeleuchtung an).

Was und wie es da steht ist völlig frei (auch die ID) und man muss 
selber sehen wie das im aktuellen Umfeld konfiguriert ist.

Z.b. weiß man nicht welche ID's bereits vergeben sind. Das kann man auch 
nicht herausfinden weil ja nicht immer alle "online" sind, man muss 
schlicht vorher wissen.

Stimmt das so?
#5661717
Lesenswert?

CanCan schrieb:
> Dr. Sommer schrieb:
>> Nicht direkt. Du brauchst immer noch einen CAN-Adapter. Es gibt aber
>> bestimmt ähnliche Boards welche CAN eingebaut haben, da darfst du selber
>> mal nach suchen.
>
> Suche ich gern, noch eine Frage:
>
> Wie sieht es mit der CAN Software aus. Bei USB gibt es ja libs (und es
> ist wohl sehr komplex).
>
> Gibt es das auch für CAN oder kann man das selbst machen?

Es gibt keinen HID-over-CAN-Standard oder so. Du musst dir also selber 
überlegen, wie du die Informationen auf den CAN legst. Das kommt 
letztenlich ja auch darauf an, was die Gegenstelle erwartet.

CanCan schrieb:
> Herby schrieb:
>> Suche dir einen STM32F-Controller auf einem EVA-Board mit USB & CAN
>> heraus.
>
> Warum gerade den und nicht den Raspi?

Ohne Betriebssystem, muss daher nicht booten und nicht heruntergefahren 
werden.
Gast #5661718
Lesenswert?

Ja so ist es. Du musst wissen welche Geräte am CAN-Bus hängen, welche 
ID's die senden/empfangen und wie die Formate sind. Eine entsprechende 
Übersicht über alle Nachrichten eines Netzes nennt sich 
Kommunikations-Matrix oder CAN-Matrix. Ein übliches Format dafür ist 
Vector DBC. Ohne die Matrix musst du die Format erst aufwendig 
erraten/reverse engineeren.
Gast #5661732
Lesenswert?

Dr. Sommer schrieb:
> Du musst wissen welche Geräte am CAN-Bus hängen, welche
> ID's die senden/empfangen und wie die Formate sind.
Danke für die Antwort, ist also so wie bei TCP/IP mit festen IP adressen 
(ohne DHCP).

> Eine entsprechende
> Übersicht über alle Nachrichten eines Netzes nennt sich
> Kommunikations-Matrix oder CAN-Matrix.

Wird das händisch erzeugt bzw. "by human definition"?

> Ein übliches Format dafür ist
> Vector DBC. Ohne die Matrix musst du die Format erst aufwendig
> erraten/reverse engineeren.

Wenn ich das richtig lese ist das eine Datenbank die zwischen den 
Entwicklern ausgetauscht wird, nicht zwischen den Geräten.


Rolf M. schrieb:
> Ohne Betriebssystem, muss daher nicht booten und nicht heruntergefahren
> werden.

Danke für die Info.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren