Hi Leute, ich baue mir grade einen kleinen Drehzahlmesser für mein Auto. Aktuell bekommt er sein Drehzahlsignal über OBDII. Allerdings bietet mein Auto an der SChnittstelle nur das KWP2000 Protokoll mit wahnsinnigen 10kBaud an. Das Resultat ist, daß men Drehzahlmesser die Daten verzögert anzeigt. Da mein Drehzahlmesser aber auch noch einen CAN Anschluss hat, möchte ich mir jetzt ein kleines Gerät bauen, daß im Motorraum verbaut wird und an der Zündspule/Kerze/Leitung (oder wo auch immer es sinnvoll ist) die Drehzahl misst und dann über CAN an meinen DZM schickt. Kann mir jemand ein paar Tips geben, wie und wo man die Drehzahl am einfachsten mit einem µC messen kann? Suche ausserdem noch einen passenden kleinen (8Bit sollte langen) Controller mit CAN für diese Aufgabe.
Messen am besten am Hallsensor des Fingerrades. Ein Atmel der CAN Serie reicht. Gruss Robert
Hallo peterguy schrieb: > Hi Leute, > > ich baue mir grade einen kleinen Drehzahlmesser für mein Auto. Was für ein Auto? (Typ / Baujahr) Gruss Andi
Das OBD2-Protokoll ist genormt und die Drehzahl ist über Service 01 PID 0x0C auszulesen. Die KWP2000 Übertragungsrate von 10.400 Baud ist auch nicht das Problem, weil nur sehr wenige Daten übertragen müssen, viel wichtiger ist, dass das Timing eingehalten werden muss und hier sind ziemlich grosse Timeoutwerte vorgeschrieben, die die Abfragen verzögern und die Abtastrate gering halten. Sicher sind die gewünschten Daten auch über den schnellen CAN-Bus auszulesen, jedoch gibt es hierzu keinerlei Unterlagen und man kann davon ausgehen, dass das Datenformat und die CAN-Adressen bei jedem Fahrzeug unterschiedlich sind. Ja es kann sogar sein, dass unterschiedliche Baureihen eines Fahrzeuges unterschiedliche Daten liefern. Es ist eben nur ein interner Datenbus, den jeder Fahrzeug- und Steurgerätehersteller nach eigenen Belieben und Bedarf belegen kann. Als CAN-Controller bieten sich natürlich die gängigen AVR-Typen AT90CAN32, AT90CAN64, AT90CAN128 an. Im 32-Bit-Bereich ist die Auswahl natürlich viel größer. Erwin
@Robert: Fingerrad sagt mir nichts aber ich frag mal Tante Google. Habe auch mal was gehört von einer Firma die zur Messung der Drehzahl eine Drahtschlaufe um ein Zündkabel legt und dann darüber misst. Müsste auch gehen, oder? @Andreas: Es handelt sich bei dem Auto um ein Z4 Coupe 3.0si, BJ Ende 2006 @Erwin Das Kernproblem bei der Kommunikation über KWP2000 ist, daß ich noch weitere Werte auslesen möchte, z.B. Geschwindigkeit, Temperaturen, Motordaten, ... Da bleibt für das Drehzahlsignal nicht mehr viel Bandbreite. Deswegen meine idee dafür ein kleines CAN Modul zu bauen. Und keine Sorge, den Fahrzeugbus lasse ich unangetastet, habe keine Lust da rumzupfuschen... :-)
peterguy schrieb: > @Andreas: > Es handelt sich bei dem Auto um ein Z4 Coupe 3.0si, BJ Ende 2006 > > Deswegen meine idee dafür ein kleines CAN Modul zu bauen. > > Und keine Sorge, den Fahrzeugbus lasse ich unangetastet, habe keine Lust > da rumzupfuschen... :-) warum denn nicht, solange Du nur mit lesen tust. Ausserdem musst Du ja nicht unbedingt an den Motor-CAN ran, der etwas langsamere Infortainment- CAN tut es ja auch:-) Einen Z4 hatte ich noch nicht in den Fingern, somit kann ich Dir leider auch nicht sagen, auf welcher ID die Drehzahl liegt. Aber meine Glaskugel meint (0xAA). Gruss Andi
Ja klar, es wäre schon möglich den CAN anzuzapfen. Allerdings müsste ich da auch erstmal suchen wo genau die Busse langlaufen, dann müsste man sich da irgendwie zerstörungsfrei mit draufhängen und schlussendlich ID + Signalposition + Skalierung raustüfteln. So eine kleine intelligente Messeinheit reizt mich mehr. Das ganze ist ja Hobby und es muss nicht immer der einfachste Weg sein :-)
peterguy schrieb: > Fingerrad sagt mir nichts aber ich frag mal Tante Google. > Habe auch mal was gehört von einer Firma die zur Messung der Drehzahl > eine Drahtschlaufe um ein Zündkabel legt und dann darüber misst. Müsste > auch gehen, oder? Moin hab mal sowas gebaut für einen 2-Takter. Funktioniert Prima. Anbei ein Auszug aus meinem Schaltplan. An JP1 kommt einfach ne Krokoklemme, die man um das Zünkabel macht und Pin3 vom 4093N geht auf einen Interrupt-Pin (steigende Flanke) vom AVR Viele Grüße Henning
> Funktioniert Prima. Überflüssig. Es reicht eine kapazitive Kopplung um das Zündkabel (was du mit einer Krokolklemme gemacht hast, aber auch mit drumgewickleten Draht oder Blech ginge) direkt an einen Eingang des uC zu legen der einen Schmitt-Trigger besitzt, wie quasi alle AVR Eingänge. Da ein Zündimpuls schwingt, und ein AVR schnell ist, gibt das pro Zündfunke schnell nacheinander Impulse, man muß also nach der ersten Flanke (Interrupt) einige Zeit taubstumm sein und folgeimpuls ignorieren (man könnte auf ihnen erkennen, ob der Zündfunke gezündet hat). Man braucht nicht mal einen Vorwiderstand, weil ja die kapazitive Kopplung entsprechend schwach sein kann, andererseits darf man die Kopplung auch mit Vorwiderstand nicht zu stark machen, sonst wird nicht nur der uC gestört, sondern vielleicht sogar (Strom über die Eingangsschutzdioden) zerschossen. Es ist baer nicht nötig, einen (CMOS) IC vorzuschalten, der ist nicht besser als der uC direkt (und so teuer ist ein uC nun auch nicht). Also besteht eine Schaltung, die aus abgefangenen Zündimpulsen CAN-Bus Meldungen (in hoffentlich dokumentiertem Protokoll) macht nur aus Bordspannung---5V-KFZ-Regler--+ | +-------+ Zündkabel Kabelende-------| uC |-- CAN ^ +-------+ ^ interner Pullup | ggf. 120 Ohm Terminierung damit Kabel nicht GND offen
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.