Forum: Mikrocontroller und Digitale Elektronik CAN/LIN/PWM/GM LAN Board für Rapsberry PI/Arduino und Co


von Marko K. (imperator82)


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?

von Jens E. (surfjenser)


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?

von Marko K. (imperator82)


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.

von Gerd B. (bertr2d2) Benutzerseite


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.

: Bearbeitet durch User
von Marko K. (imperator82)


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 :-)

von Gerhard (Gast)


Lesenswert?

Der Banana Pi ist deutlich performanter als der Raspberry, kostet etwa 
das gleiche und hat einen CAN Controller on Board. Treiber unter Linux 
scheinen vorhanden. Hier ein bisschen Info:
http://forum-bananapi.de/Thread-CAN-Bus-Controller-Area-Network

Bzgl. der OBDII Protokolle wird man mal schauen muüssen.

Gerhard

von Gerd B. (bertr2d2) Benutzerseite


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 ..

: Bearbeitet durch User
von Soul E. (Gast)


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, ...

von Marko K. (imperator82)


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?

von Soul E. (Gast)


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.

von Jens E. (surfjenser)


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.

von Soul E. (Gast)


Lesenswert?

Jens E. schrieb:

> Der TJA1055 ist ein Fault Tolerant CAN-Transceiver, kein High Speed.

Richtig, das war Bullshit. TJA1042 meinte ich, bzw dessen aktuelle 
Nachfolger.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.