mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CAN Starthilfe


Autor: Tobias B. (roxxity)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ich möchte an meinem Fahrzeug die Geschwindigkeit und Motordrehzahl über 
den CAN-Bus auslesen. Ich bin aber nicht wirklich vom Fach, daher hab 
ich mal einige Fragen:

- Was ist denn CAN-High und was CAN-Low? Ich dachte bisher die CAN-High 
Leitung wäre die, die auf dem höheren Potential liegt (~5V ?), wenn 
keine Daten anliegen.

- Wie ermittle ich denn die Baudrate ordentlich? Hab leider nur ein 
Oszi, und die Daten liegen ja nicht kontinuerlich an.

- Ich habe einen CANanalyser USB von der Hochschule, der bisher nur 
Fehlermeldungen ausgibt, oder auch gar nichts, je nachdem was für eine 
Baudrate eingestellt ist.

- Gibt es eine einfache Möglichkeit, das Signal aufzunehmen, so dass man 
es mal in Ruhe analysieren kann?

- Abschlusswiederstände brauch ich ja keine, ich hab ja schon einen 
funktionierenden Bus, oder?

Danke schonmal,
Grüße, Tobias

Autor: Christian Gärtner (christiang)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CAN HIGH und CAN LOW sind die beiden Datenleitungen. Deren Pegel hängt 
von dem aktuellen Buszustand (dominant oder rezessiv) UND von der 
verwendeten Treibertechnik, nämlich Highspeed CAN oder Lowspeed CAN, ab.
-> Studium der Grundlagen!

Wenn du die Zündung anhast, kann man davon ausgehen, dass ständig (alle 
paar ms) eine Nachricht übertragen wird. Die Baudrate mit dem Oszi 
ausmessen sollte also kein Problem darstellen.

Warum dein CANanalyser nur Fehler liefert kann in diese Fall auch wieder 
High- bzw. Lowspeed zusammenhängen. Also hier mal mehr Details posten.

Abschlusswiderstände: Da du dich irgendwo reinhängst, würde ich nicht 
mit 120 Ohm terminieren sondern mit vielleicht 1KOhm. Aufjedenfall deine 
zusätzliche Stichleitungen so kurz wie nur möglich halten.

Signal aufnehmen: Sollte jeder halbwegs professionelle Software 
ermöglichen. Ist der CANalayser zufällig von Vector?

Autor: Tobias B. (roxxity)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab zwei Datenleitungen, von dene eine normal aussieht (0 entspricht 
~1 V, 1 entspricht ~5V), die andere invertiert. Ich hab bisher nirgends 
rauslesen können, welche Leitung jetzt LOW und HIGH sind. Vielleicht hab 
ich den Analyser nur falsch angeschlossen?

Der ist übrigens von IXXAT und kann nur Highspeed. Ist die Leitung 
zwischen Motorsteuergerät, Bordcomputer und ABS, daher tipp ich auf 
Highspeed (als langsamer Bus ist auch noch irgendwo VAN-Bus verbaut)

Autor: Willivonbienemaya .. (willivonbienemaya)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tobias B. schrieb:
> Ist die Leitung
> zwischen Motorsteuergerät, Bordcomputer und ABS,

Mir wird übel wenn ich das lese. Hast du eine Ahnung was passiert wenn 
du mit deinem Unwissen den CAN Bus zwischen Motorsteuergerät und ABS 
blockierst? Ich vermute nein, da du keine Ahnung zu haben scheinst.
Ernstgemeinter Rat: Entferne alles an deinem Auto was du angebracht 
hast. Danach lese ein paar Artikel über CAN und dann fang klein an. Aber 
lass in jedem Fall die Finger vom Auto weg.

Autor: Thomas S. (tsalzer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Willivonbienemaya .. (willivonbienemaya)

..jetzt haben hier alle pflichtgemäß von Deinem Sachverstand Kenntnis 
genommen.

Laß uns teilhaben, und erzähl doch mal was sachdienliches.

Bist Du staatlich geprüfter Techniker?....vermutlich!

guude
ts

Autor: Tobias B. (roxxity)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey bevor du mir hier frechkommst, halt einfach den Mund, dann warte ich 
eben bis der Prof Zeit hat. Ich lern allerdings dann auch nichts dabei.

Autor: schwups... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Thomas P. (topla)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tobias B. schrieb:
> Hi!
>
> Ich möchte an meinem Fahrzeug die Geschwindigkeit und Motordrehzahl über
> den CAN-Bus auslesen. Ich bin aber nicht wirklich vom Fach, daher hab
> ich mal einige Fragen:

Welche Elektronikkenntnisse hast Du denn? Wenn wirklich gleich Null, 
dann lass es lieber bleiben.

> - Was ist denn CAN-High und was CAN-Low? Ich dachte bisher die CAN-High
> Leitung wäre die, die auf dem höheren Potential liegt (~5V ?), wenn
> keine Daten anliegen.

Die beiden Datenleitungen des CAN-Busses.

> - Wie ermittle ich denn die Baudrate ordentlich? Hab leider nur ein
> Oszi, und die Daten liegen ja nicht kontinuerlich an.

Da laufend Übertragungen stattfinden durch genaues Hinsehen. So viele 
Möglichkeiten gibt es ja nicht, der CAN im E34 zwischen Motor- und 
Getriebesteuergerät läuft mit 500kBit. Ich habe einen LA dazu genommen; 
ein Telegramm aufnehmen und dann mit dem Interpreter solange probieren, 
bis es passt.

> - Ich habe einen CANanalyser USB von der Hochschule, der bisher nur
> Fehlermeldungen ausgibt, oder auch gar nichts, je nachdem was für eine
> Baudrate eingestellt ist.

Schaltplan vom Auto hernehmen und nachschauen, ist eingetragen, was Low 
und High ist.

> - Gibt es eine einfache Möglichkeit, das Signal aufzunehmen, so dass man
> es mal in Ruhe analysieren kann?

Bustreiber und LA, wie oben schon geschrieben, alternativ auch ein 
Speicheroszi.

> - Abschlusswiderstände brauch ich ja keine, ich hab ja schon einen
> funktionierenden Bus, oder?

Ich habe die Leitung zwischen den Steuergeräten angezapft und eine 
Stichleitung ins Fahrzeug gelegt (ca. 150cm) - ohne Abschlußwiderstand 
und ohne Probleme (keinerlei Fehlerspeichereinträge). Das wird hier aber 
bestimmt gleich theoretisch widerlegt....

Gruß
Thomas

Autor: Christian Gärtner (christiang)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich hab zwei Datenleitungen, von dene eine normal aussieht (0 entspricht
> ~1 V, 1 entspricht ~5V), die andere invertiert.

Scheint ein Lowspeed CAN zu sein, da kannst du mir deinem IXXAT 
Highspeed nichts machen (unterschiedliche Signalpegel!), wobei ich mir 
das mit Ort, wo du abgreifst, allerdings spanisch vorkommt.

Könnte natürlich sein, dass der Bordcomputer nur einige ausgewählte 
Nachrichten bekommt (z.B. Gateway dazwischen), dann würde ein Lowspeed 
wieder Sinn machen.

Mach mal ein paar Screenshots von der Leitung, am besten auch mit 
Ruhepegel, daran kann man den Unterschied zwischen Highspeed und 
Lowspeed eindeutig sehen.

@Willivonbienemaya: So schlimm ist reines Mithören nicht, sofern ich 
nicht die Busabstimmung/Terminierung willenlos ins Nirvana verschiebe.
Selbst wenn ich den Bus komplett blokieren würde, dann nichts schlimmes 
passieren. Alle Steuergeräte, die auf Daten von anderen Teilnehmern 
angewiesen sind müssen dann nach Erkennen eines Timeouts in den Notlauf 
gehen, sprich unabhängig arbeiten. Schließlich kann es ja sein, dass ein 
Steuergerät mal hops geht und den Bus ins Verderben reißt, oder dass ein 
Stecker/Kabel abreißt.
Das äußert sich dann darin, dass die Karre nur noch bis etwa 2500 
Umdrehungen geht und nicht schneller wie 50 fahren kann.

Trotzdem sollte man bei den Basteleien an Sicherheitskritischen Teilen, 
wie ABS und die Airbags hängen auch noch dran, sich
1) zweimal überlegen was man macht
2) sich zumindest mit der Theorie auskennen und ewatiges 
Gefahrenpotential abschätzen
3) keine dummen Versuche unternehmen, wie ich Müll mal den Bus zu
4) seine Messinstrumente beherrschen, also sichersein, dass der 
Datenlogger nicht plötzlich sendet, weil ich zufällig die 
Restbussimulation geladen habe

> VAN-Bus
Ist das ein Peugeot oder Citroen?

Autor: Henry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dürfte ich erfahren um welches Fabrikat es sich handelt?

Da du den Signale im Antrieb auslesen willst, ist davon auszugehen dass 
die Botschaften auf einen Highspeed CAN laufen. Der ist meist auch vom 
Rest (Comfortelektrik) getrennt.Versuchs mal mit 500kBaud. Das heißt, 
für alles andere (Klima etc.) wird ein Lowspeed verwendet (da kann man 
die Leitungen länger machen)... aber der Teil ist ja irrelevant.

Welche Leitung High und Low ist, sollte für dich egal sein, da nur der 
Potenzuialunterschied zählt.
Allerdings kenne ich es so, dass bei einem Highspeed CAN 2,5 auf beiden 
bzw. bei Datenübertragung 1,5 zu 3,5V (Differenz 2) auftreten. Dagegen 
hat der Lowspeed rezessiv 0 und 5V. Bei einen Signal springen die dan 
auf 1,4 un 3,6 (Diff 2,5).
Ob davon abweichende Standards vorhanden sind weiß ich nicht.

Bei dem Abschlusswiderstand bin ich mir auch nichts sicher. Ich meine du 
kannst ihn weglassen.

Nun bleibt zu fragen, woher du die Botschaften erkennen willst. Ein 
Busprotokoll wird schon notwendig sein. Ich schätze das gibt kein 
Hersteller raus.

Autor: Henry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da muss ich Christian recht geben. Dazu ist es ja ein CAN geworden, 
dammit der ganze Laden nicht wegen einem defekt flöten geht und nichts 
mehr funktioniert.
Ich habe in meinem Praktikum faktisch jeden Tag Cans ausgelesen und 
signale geschickt. Die karren fahren immer noch :-)

Autor: Tobias B. (roxxity)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Endlich mal jemand, der helfen will :D

Ich bin in kürze Maschinenbau-Ing. und hatte daher E-Technik nur am 
Rande. Andererseit hab ich mein Motorrad schon mit einer 
selbstentwickelten Ganganzeige ausgestattet (ATMega) und hab unlängst 
einen Röhrenverstärker für die Gitarre gebaut. Mir fehlen allerdings 
irgendwelche speziellen Kniffe und Tricks, weil ich nie ordentliche 
Vorlesungen darüber besucht habe und das alles eben nur Bastlerniveau 
hat.

Es handelt sich um einen Peugeot 206 BJ 2006.

Werde mit deinen Tipps mal weiterforschen (und dokumentieren)

Grüße, Tobias

Autor: Henry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ei... da krieg ich spitze öhrchen. So eine Ganganzeig wäe auch was für 
mich... allerdings befinde ich mich noch auf niedrigstem Level was AVR 
Kenntnisse angeht. Könntest du mir einen Schaltplan/die Software zur 
Verfügung stellen? Dann würd ich da mal einarbeiten....

Autor: Willivonbienemaya .. (willivonbienemaya)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian Gärtner schrieb:
> @Willivonbienemaya: So schlimm ist reines Mithören nicht,

Das ist korrekt. Aber dazu benötigt man einige Kenntnisse des CAN 
Busses. Die scheint der OP nicht zu haben, sonst würde er nicht fragen 
was CAN-H und CAN-L ist.

Autor: MeinerEiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei sowas wäre der CAN232 von Lawicel nicht schlecht. Die eine Seite an 
den CAN-Bus, auf der anderen kommt dann alles per RS232 raus. Und RS232 
sollte ja wohl jeder noch hinkriegen, ohne was zu zerstören (und selbst 
dann ist nur die RS232-Seite vom CAN232 hin und nicht gleich das ganze 
KFZ-Steuergerät).
Und solange das Teil nicht explizit einen Sende-Befehl kriegt, wird auch 
nix gesendet.

Autor: Tobias B. (roxxity)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bisher hab ich nur den CANanalyser drangehabt, und mehr als die beiden 
Leitungen verpolen kann man da ja nicht falsch machen...

Ich habe übrigens mehrere Artikel und auch ein Skript darüber gelesen, 
jedoch wird das Thema immer nur an der Oberfläche angekratzt. Die 
Spezifikation von Bosch sagt übrigens auch nix über Pegel, so weit ich 
das nach kurzem Überlfliegen beurteilen kann.

@ Henry: Schau dir mal das an und schreib mir evtl. ne Mail wenn du 
Hilfe brauchst
http://files.roxxity.net/mo/GV2/Ganganzeige%20V2%2...

Autor: Henry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine obigen Angaben zu den Pegeln sollten stimmen, denn soweit ich weiß 
wurde der CAN von Bosch entwickelt. Mein Prof. war bei Bosch und es 
wurde uns mit den Angaben vermittelt.

Gruß

Autor: Tobias B. (roxxity)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ok jetzt klappts, vielen Dank für eure Hilfe!

Hatte von Peugeot falsche Informationen und hab daher am falschen 
Stecker gesucht, und wohl den VAN-Bus gefunden, der wie Lowspeed CAN 
aussieht.

Der Highspeed CAN hat beim Peugeot 206 übrigens einen Takt von 250 kHz. 
Er sitzt am 40poligen schwarzen Stecker an Pin 2 und 4.

Grüße, Tobias

Autor: Willivonbienemaya .. (willivonbienemaya)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MeinerEiner schrieb:
> Bei sowas wäre der CAN232 von Lawicel nicht schlecht. (...)
> Und solange das Teil nicht explizit einen Sende-Befehl kriegt, wird auch
> nix gesendet.

Das ist absolut falsch. Du hast scheinbar den CAN Bus auch nicht 
verstanden. Nur weil man dem CAN Controller nicht sagt dass er senden 
soll, heisst es noch lange nicht dass er nix sendet. Er kann immer noch 
das ACK Bit setzen und auf RTR anworten.
Es gibt CAN Controller mit einem Listen-Only Modus. Diese Möglichkeit 
gibts aber bei dem CAN232 gar nicht so wie ich das im Manual lese.
Er ist also nicht "nicht schlecht", sondern sehr schlecht weil damit auf 
jedenfall der Bus beeinflusst wird.

Autor: Tobias B. (roxxity)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hauptsache es funktioniert.

Mithören geht einwandfrei, ob im normalen oder im Silent-Mode. Die Daten 
sind auch nicht wie es immer wieder zu hören ist verschlüsselt, sondern 
lassen sich wunderbar mitloggen und nachher als Grafik darstellen 
(Gaspedalstellung, Geschwindigkeit, Drehzahl, diverse Temperaturen usw.)
Sind natürlich auch einige digitale Signale dabei, aber die 
interessieren eh nicht.

Der AT90CAN128 kann Silent-Mode und gibts bei Reichelt. Funktioniert 
alles super :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.