OBD 2 Adapter als CAN interface

OP #6261024
Lesenswert?

Guten Morgen liebes Forum,

Ich spiele mit dem Gedanken, in meiner Bastelkistenumgebung mit CAN zu 
experimentieren.

Erstmal was verhältnismäßig simples, zwei oder drei Mikrocontroller die 
miteinander fröhlich kommunizieren.
Ich möchte auch gerne meinen Rechner irgendwie in den Bus hängen um 
Pakete zu empfangen und zu senden.

Nun habe ich einen billigen OBD2-Bluetooth Adapter den ich hin und 
wieder für mein Auto benutze.
Da stelle ich mir die Frage, ob es nicht möglich wäre, den Adapter als 
Interface für den Rechner zu verwenden?

Zur Klarstellung, das soll kein KFZ-Projekt werden.

Danke, Gruss,
Lars
Gast #6261511
Lesenswert?

Lars L. schrieb:

> Ok, das ist mal ein Punkt. Aber was genau meinst du mit Teilmenge?

Stell es Dir vor wie ein Gerät mit LAN-Schnittstelle, das ausschließlich 
das BitTorrent-Protokoll versteht. Ja, man kann damit ein Netzwerk 
prüfen. Es damit Schritt für Schritt in Betrieb nehmen ist aber nicht 
möglich.


> Die Frage nach der prinzipiellen Verwendbarkeit so eines OBD Adapters
> bezog sich hauptsächlich auf die Tatsache das er nunmal im Haus ist.

Der Adapter sendet Diagnoseanforderungen am Bus und erwartet 
entsprechende Antworten. Wenn Du also mit Deinem zweiten Teilnehmer ein 
OBD-Diagnosegateway implementierst dann kannst Du das testen.

Ansonsten wäre irgend ein anderes Gerät, was einfach zyklisch Daten 
sendet, für den Anfang praktischer. Z.B. ein ESP-Sensor, oder ein 
Evalboard mit bekannt funktionierender Demo-Software.
#6262314
Lesenswert?

Soul E. schrieb:

> Der Adapter sendet Diagnoseanforderungen am Bus und erwartet
> entsprechende Antworten. Wenn Du also mit Deinem zweiten Teilnehmer ein
> OBD-Diagnosegateway implementierst dann kannst Du das testen.

Ganz genau so ist es.
Das Datenblatt des ELM327 ist ja nicht geheim, lies es doch mal!

Am einfachsten ist es wahrscheinlich, (Atmel-) Arduinos und diese 
billigen "Ni Ren" CAN - SPI Interfaces zu nehmen. Dazu gibt es genügend 
Bibliotheken und Beispielsketche und kosten tut der Kram auch nix.

Und im Gegensatz zum ebenso möglichen Banana Pi M1 (oder Orange Pi Zero 
mit "Ni Ren") hast Du mit den Atmels keine Probleme bei den 
Pegeln/Stromversorgung; ein nicht zu unterschätzender Punkt: 
Hardwareprobleme ausschliessen zu können, wenn man mit etwas 
"Unbekanntem" anfängt zu experimentieren...



Gruß

Elux
Persönliche Seite #6262635
Lesenswert?

Michael K. schrieb:
> Gerd B. schrieb:
>> Gerade am Anfang würde ich ein vollwertiges CAN-Interface nehmen.
>
> Der Meinung bin ich auch. Sonst bastelt man mehr am Interface als am
> eigentlichen Projekt.

ich sehe das genauso. Ich stand Anfangs auch vor dem gleichen Problem 
beim CAN-Einstieg. Man braucht etwas, auf das man sich verlassen kann; 
auf etwas wo man weiss das es funktioniert.

> Ich hab dafür den USBtin aufgebaut.

Der USBtin bzw. die SLCAN API hat aber keine erweiterten Möglichkeiten 
wie Erkennung von Bus-Fehlern. Hier mal ein Beispiel des Banana Pis mit 
Linux und SocketCAN bei dem ein CAN-Frame auf den Bus gesendet wird wo 
kein anderer Teilnehmer verbunden ist:
1
BPi:~# candump -tA -a -xe can0,0:0,#FFFFFFFF
2
 (2020-05-13 10:27:29.477281)  can0  RX - -  2000008C   [8]  00 08 81 00 00 00 88 00   ERRORFRAME
3
  controller-problem{tx-error-warning}
4
  protocol-violation{{single-bit-error,error-on-tx}{}}
5
  bus-error
6
  error-counter-tx-rx{{136}{0}}
7
 (2020-05-13 10:27:29.477287)  can0  RX - -  20000004   [8]  00 20 00 00 00 00 88 00   ERRORFRAME
8
  controller-problem{tx-error-passive}
9
  error-counter-tx-rx{{136}{0}}
10
 (2020-05-13 10:27:29.483440)  can0  RX - -  20000040   [8]  00 00 00 00 00 00 8F 00   ERRORFRAME
11
  bus-off
12
  error-counter-tx-rx{{143}{0}}
13
 (2020-05-13 10:27:29.500108)  can0  RX - -  20000100   [8]  00 00 00 00 00 00 00 00   ERRORFRAME
14
  restarted-after-bus-off

Gerade am Anfang sind solche Fehlermeldungen sehr hilfreich.
Der RPi, oder jeder beliebige SBC mit MCP2515 liefert so etwas auch.

Gruß

Gerd

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