CAN/LIN/PWM/GM LAN Board für Rapsberry PI/Arduino und Co

OP #4162309
Lesenswert?

Hallo Community,

ich bin auf der Suche nach einem kleinen Board, welches z.B. an einem 
Raspberry PI oder Arduino (wichtig Mini PC) angeschlossen werden kann 
und nach Möglichkeit folgende Busse unterstützt (für Fahrzeugdiagnose) :

HighSpeed CAN
ISO 9141
J 1850 PWM/VPW
Low Speed CAN
GM LAN

Das Board sollte nach Möglichkeit die OBD II Grundfunktionalitäten bzw. 
CAN unterstützen. Im Netz habe ich schon einige Möglichkeiten gefunden. 
Allerdings werden da nicht alle Busse unterstützt bzw. bin ich mir nicht 
ganz sicher, ob diese Boards etwas taugen. Unter anderem habe ich 
folgende Boards gefunden:

- http://www.carberry.it/en/p/347/Carberry/
- 
http://skpang.co.uk/catalog/pican-canbus-board-for-raspberry-pi-p-1196.html
- 
http://www.linux-magazin.de/NEWS/Adapterboard-bringt-Gnublin-Module-an-den-Raspberry-Pi
- 
http://shop.embedded-projects.net/embedded-projects-gmbh/gnublin-module-gnupi-fuer-raspberrypi.html
- http://www.mhs-elektronik.de/index.php?news=4957&l=1

Habt ihr Erfahrungen mit diesen Boards bzw. gibt es Alternativen, die 
Ihr empfehlen könnt?

Gibt es auch eine Möglichkeit sich solche HArdware selbst zusammen zu 
bauen?
#4166009
Lesenswert?

Klar kann man sich die Hardware selbst bauen. Nur mit der physischen 
Anbindung an den jeweiligen Bus ist es ja nicht getan. Die darüber 
liegenden Protokolle musst du ja auch kennen, sonst nützt dir das ja 
alles nix.
Was genau hast du denn vor? Soll das eine eierlegende Wollmilchsau 
werden, die in jedem Fahrzeug funktionieren soll?
OP #4171745
Lesenswert?

Das kann man fast so sagen :-)

Die gängigen Transportprotokolle sind mir soweit bekannt, jedoch müssten 
die nicht unbedingt mit dabei sein. Mir würde es pronzipiell reichen, 
wenn alle OBDII Protokolle unterstützt werden würde. Bei J1850 könnte 
ich da noch eine Ausnahme machen.

Auf dem Markt gibt es ja das ein oder andere Tool, aber die sind 
natürlich sehr teuer. Hast du da eine Idee, wie man da ggfs. was 
zusammenbauen kann? Hab zwar Informationstechnik studiert und auch ein 
wenig Erfahrung in Elektrotechnik, aber an so etwas habe ich mich bisher 
noch nie heran gewagt.
Persönliche Seite #4171871
Lesenswert?

Ich kann nicht oft genug wiederholen:

Der RPi ist im Grunde ein Grafikprozessor, an dem durch einige Klimmzüge
Ethernet angeflanscht wurde. CAN muss extern z.B. über SPI angebunden
werden. Da funkt dann z.B. der FIQ für den USB-Ethernet 8000 mal in der 
Sekunde dazwischen.

Ein Beaglebone hat zwei integrierte CAN Interfaces, zig I2C, UART und
PWM Kanäle. Und wem das noch nicht reicht nimmt man die integrierten
PRUSS (2x 200MHz Realtime Kerne), um noch andere Protokolle abbilden
zu können. Damit könnte man dann zB. die OBDII Protokolle abseits
von CAN abbilden.

Wenn man es besonders preiswert haben will, kann man natürlich
auch den STN11100 verwenden, der die OBDII Protokolle beherscht.
Hat aber den Nachteil, das man der Qualität der Firmware auf Gedeih
und Verderb ausgeliefert ist.
OP #4172122
Lesenswert?

Hallo,

vielen Dank für die Hilfe. Auf das Beaglobone bin ich schon mal 
gestoßen, habe es dann mehr oder weniger verworfen, da dies nicht 
(zumindest gefühlt) so bekannt wie das Raspberry PI ist und es für das 
RPI mehr Informationen im Internet zu finden gibt.

Gibt es dazu auch Tutorials wie man auf auf dem CAN-Bus Daten versenden 
und empfangen kann?

P.S: Wenn ich deine Info schon irgendwo gelesen, dann hätte ich hier 
nicht so dumm fragen müssen :-)
Persönliche Seite #4172251
Lesenswert?

Hallo Marko

Marko Kochendörfer schrieb:
> Hallo,
>
> vielen Dank für die Hilfe. Auf das Beaglobone bin ich schon mal
> gestoßen, habe es dann mehr oder weniger verworfen, da dies nicht
> (zumindest gefühlt) so bekannt wie das Raspberry PI ist und es für das
> RPI mehr Informationen im Internet zu finden gibt.

Stimmt, das BBB ist nicht so bekannt. Ich habe mich mit beiden
Boards beschäftigt: Die Anzahl der RPi User ist riesig,
aber das Know-How der BBB Nutzer ist wesentlich besser.

>
> Gibt es dazu auch Tutorials wie man auf auf dem CAN-Bus Daten versenden
> und empfangen kann?

Das Interface kann man auch einfach auf einem Stück Locchraster-
Platine selbst machen (Seite 2):
https://github.com/CircuitCo/BeagleBone-CANBus-RevA1/blob/master/BeagleBone-CANBus-RevA1-schematic.pdf?raw=true

Der Linux Kernel untestützt das BBB CAN-Interface mit SocketCAN:
https://de.wikipedia.org/wiki/SocketCAN
http://www.koervernet.de/elektronik/beagle-bone-black
http://lnxpps.de/openwrt/wr841/can2eth.c

Das gute an SocketCAN: Portierbarkeit.
>
> P.S: Wenn ich deine Info schon irgendwo gelesen, dann hätte ich hier
> nicht so dumm fragen müssen :-)

Siehe auch:
http://fabiobaltieri.com/2013/07/23/hacking-into-a-vehicle-can-bus-toyothack-and-socketcan/

Zum BananaPI:
Auch interessant nur schafft es Allwinner mit seiner beschränkten
Informationspolitik Kernel Entwickler zu vergraulen.
IMHO gibt es nur einen can4linux Treiber; SocketCAN habe ich auch
gesehen aber Nutzer sind sehr rar ..
Gast #4172640
Lesenswert?

Marko Kochendörfer schrieb:

> vielen Dank für die Hilfe. Auf das Beaglobone bin ich schon mal
> gestoßen, habe es dann mehr oder weniger verworfen, da dies nicht
> (zumindest gefühlt) so bekannt wie das Raspberry PI ist und es für das
> RPI mehr Informationen im Internet zu finden gibt.

Dabei gibt es das Beagleboard und seinen Nachfolger Beaglebone schon 
viel länger als den Raspberry. Der war als billiger Abklatsch für 
Schulungs- und Ausbildungszwecke konzipiert. Daher wurde alles 
weggelassen, was man irgendwie weglassen konnte. Hauptsache billig, 
billig, billig, ...
OP #4172772
Lesenswert?

Hallo,

erst mal Danke für die zahlreichen Rückmeldungen.

Ich habe mich beim Beaglebone noch mal ein weiter eingelesen. Der BBB 
enthält ein CAN-Bus Interface, welches noch mit einem CAN-Transceiver 
bestückt werden muss, ist dies so korrekt?

Welchen Transceiver würdet ihr da empfehlen und gibt es auch welche, die 
weitere Busse (z.B. K-Line ISO 9142) unterstützen und dort verwendet 
werden können? Ist dort viel "Lötarbeit" notwendig oder können diese 
Transceiver gesteckt werden?
Gast #4172790
Lesenswert?

Für Highspeed-CAN setzt man heutzutage einen TJA1051 (TJA1050) ein, oder 
mit weckfähigem Standby einen TJA1055 (TJA1054). Wenn Du noch einen 
PCA82C250 rumliegen hast, kannst Du den natürlich auch verwenden, oder 
besser einem Technologiemuseum spenden.

Für K-Line ISO 9142 und LIN kannst Du z.B. den TLE7259, TJA1021 oder 
ATA6663 einsetzen. Prozessorseitig ist ein UART erforderlich, so wie für 
RS-232 oder -485.
#4172923
Lesenswert?

Der TJA1055 ist ein Fault Tolerant CAN-Transceiver, kein High Speed.
Aber wie schon genannt, Transceiver kann man von den ganzen "üblichen 
Verdächtigen" NXP, Infineon, Atmel, Texas Instruments, ON Semi, 
Microchip, STM nehmen. In den entsprechenden Application Notes finden 
sich auch Angaben zur Beschaltung.

So recht ist mir aber noch immer noch nicht klar, was du genau machen 
willst.
Du hast was von Mini-PC erwähnt. Soll es ein CAR-PC werden, der 
OBD-Daten ausliest? Dann wären ja Raspberry, Beaglebone und co. als 
"Schnittstelle" völlig overpowert.
Und sollen es nur die standardisiersten abgasrelevanten OBDII Daten 
sein? Nix Herstellerspezifisches? Dann würde sich ja - wie bereits 
erwähnt - der STN1110 anbieten. Oder ein ELM327. Da braucht man sich um 
die Protokolle nicht mehr kümmern. Mit Transportprotokollen ala ISOTP 
oder VW TP2.0 ist es ja nicht getan, das OSI-Modell hat ja noch ein paar 
mehr Ebenen.

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