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
Hi, such mal nach ELM327 mit Arduino. Da gibt es schon fertige Libs die man als Beispiel verwenden kann. Gruß.
Schorschi schrieb: > Hi, > > such mal nach ELM327 mit Arduino. Da gibt es schon fertige Libs die man > als Beispiel verwenden kann. > > Gruß. Stimmt. Damit kannst du die meisten Autos auslesen.
Gerade am Anfang würde ich ein vollwertiges CAN-Interface nehmen. Das ermöglicht auch eine erweiterte Fehlerdiagnose. Sofern Linux eine Option ist bietet sich der Banana Pi M1 (integrierter CAN-Controller) oder RPi mit MCP2515 an. ELM327 sind langsam und decken nur eine Teilmenge der CAN-Möglichkeiten ab.
Gerd B. schrieb: > ELM327 sind langsam und decken nur eine Teilmenge der CAN-Möglichkeiten > ab. Ok, das ist mal ein Punkt. Aber was genau meinst du mit Teilmenge? Die Frage nach der prinzipiellen Verwendbarkeit so eines OBD Adapters bezog sich hauptsächlich auf die Tatsache das er nunmal im Haus ist.
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.
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
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 hab dafür den USBtin aufgebaut.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.