Forum: Mikrocontroller und Digitale Elektronik ABS - einlesen der Raddrehzahl?


von Alexander R. (alexrausch)


Lesenswert?

Hi,
weis wer von euch, wie die großen Autofirmen bei ABS-Systemen die 
Radrehzahl der einzelenen Räder einlesen?
Verwenden sie zur Drehzahlauswerteung mehrere µC´s, oder arbeiten sie 
nur dem Counter.
Ich habe noch keine Idee wie ich dieses Problem angehen soll, ohne die 
anderen Abläufe zum behindern, ich brauche es nämlich für unser 
Abschlussprojekt.
Schöne Grüße Alex

von akw (Gast)


Lesenswert?

Wo liegt denn dein Problem? Ist doch egal ob mehrere oder einer?! Oder 
was brauchste genau?

von Otto (Gast)


Lesenswert?

Hallo Alexander,

> Verwenden sie zur Drehzahlauswerteung mehrere µC´s, oder arbeiten sie
> nur dem Counter.

Welches Projekt - was hast Du vor ?

Du darfst auf keinen Fall die Sensoren anzapfen !

Gruss Otto

von Alexander R. (alexrausch)


Lesenswert?

Wir machen einen Versuchsaufbau und haben eine PKW-Achse mit zwei 
Radrehzahlgebern und einen ABS-Block ohne Steuerung zur Verfügung, 
unsere Aufgabe ist es mit diesen Mitteln ein funktionierendes ABS-System 
nachzubauen.
Wir greifen natürlich in kein bestehendes System ein, sondern versuchen 
es im Rahmen unserer Ausbildung nachzubauen, das Problem ist nun, dass 
ich nicht weis wie man die Raddrehzahl einlesen soll ohne das "laufende" 
Programm zu behindern. Ein Gedanke wäre, dass die Drehzahl extra 
ausgewertet wird und die Daten über z.B. TWI in die Steuerung gelangen.
Deswegen würde es mich interessieren wie es die "Großen" handhaben?

von Otto (Gast)


Lesenswert?

Hallo Alexander,

sie nehmen im Allgemeinen EINEN Controller, der über z. B. 
"Window-Watchdog" überwacht wird. Meißt verwendet man dann die "capture 
compare"-Eingänge und ermittelt so die einzelnen Raddrehzahlen.

Gruss Otto

von Karl H. (kbuchegg)


Lesenswert?

> das Problem ist nun, dass ich nicht weis wie man die
> Raddrehzahl einlesen soll ohne das "laufende" Programm
> zu behindern

Mach dir deswegen keinen Kopf. In der Zeit, die du
dafür brauchst, legt dein 'PKW' bei 160 Sachen grade
mal ein paar Millimeter zurück.

Mehere Controller verkomplizieren das in der Regel
gewaltig. Denn dann taucht das nächste Problem auf:
Wie stellst du eine 100% sichere und vor allem
schnelle Kommunikation sicher.

von Alexander R. (alexrausch)


Lesenswert?

Hallo,
danke für Euren Tipp, ich werde mich einmal in diese Richtung begeben.
Gruß Alex

von crazy horse (Gast)


Lesenswert?

es gibt auch Lösungen, bei denen die Radsensor-Signale per CAN (Bosch 
Speedbox) übertragen werden.
Normalerweise werden sie aber per Einzelkabel pro Sensor an das 
ABS-Steuergerät geführt. Das Motorsteuergerät bekommt dann die 
relevanten Informationen vom ABS-Steuergerät. So ist es zumindest bei 
den etwas höherpreisigen Autos, mit denen ich tun habe.

von Matthias (Gast)


Lesenswert?

Ich glaube schon das da ein µC ausreichen dürfte. Das Programm wird ja 
nicht behindert solange die Int Funktion kurz genug ist. Ich würde 
einfach die 2 Externen Interrupt Pins benutzen. Und bei jeder änderung 
des Zustands einen Zähler erhöhen. Ist also nur eine Zeile in der 
Int-Funktion. Und dann alle 50ms die Werte vergleichen und bei einer 
gewissen Differenz für eine gewisse Zeit die Bremse lösen. Ich weis 
nicht ob die Lösung was taugt, ist mir jetzt grade nur so eingefallen.
Ich weis auch nicht in wie weit es bei den Sensoren zu Prell-effekten 
kommt.

von Otto (Gast)


Lesenswert?

Naja - 4 Eingänge für 4 Räder wären für mich das Minimum.....

Gruss Otto

von Matthias (Gast)


Lesenswert?

Er schreibt doch dass er nur eine Achse hat.

Wenn beide Räder blockieren ist ja der differenzwert 0, also müsste man 
noch mit einbeziehen dass sich die Sensoren nicht zu schnell ändern 
dürfen. Und die Räder dürfen auch nicht zu schnell beschleunigen, sonst 
drehen die Räder durch (ARS). Das kannst du auch gleich mit versuchen zu 
implementieren. Ist sicherlich ein sehr interessantes Thema. Ist das für 
eine Uni oder Berufschule etc?

von Otto (Gast)


Lesenswert?

OK - hast Recht ! - wer lesen kann, ist klar im Vorteil

Gruss Otto

von Ray (Gast)


Lesenswert?

Hallo,

normalerweise gehen die Radsensoren direkt in das passende Steuergerät 
(ASIC). Kurze Betrachtung: Bei 216km/h = 60m/sec und einem Radumfang von 
z.B. 2m erhält man 30 Radumdrehungen in der Sekunde. Dann hat so ein 
Sensor noch eine bestimmte Auflösung z.B. 48 Impulse / Umdrehung, das 
wären dann 1440 Impulse pro Rad und sekund also insgesamt 5760 Impulse. 
Im Schnitt hast Du dann ca alle 174µsec einen Impuls - sollte machbar 
sein. Ausserdem solltest Du noch klären, ob der Sensor 'nur' ein 
symetrisches Rechtecksignal ausgibt, oder z.B. über die Impulsdauer auch 
noch die Drehrichtung codiert.

Gruß
Ray

von Dieter Werner (Gast)


Lesenswert?

Für ein ABS System braucht man noch ein von der Raddrehzal unabhängiges 
Signal für die Geschwindigkeit.
Unterhalb von ca. 3 bis 5 km/h muss das ABS abgeschaltet werden, sonst 
lässt sich das Fahrzeug nämlich nicht bis zum Stillstand abbremsen.

von Dirk (Gast)


Lesenswert?

Hm, korrigiert mich wenn ich falsch liege, aber ein ABS Sensor liefert 
doch nur einen Sinus mit Freq. x. Die Ampltitude bestimmt die Drehzahl 
oder Ihre mich da?

von crazy horse (Gast)


Lesenswert?

meist wird ein Induktivsensor benutzt. Ausgewertet wird die Frequenz, 
Amplitude interessiert nicht.

von Seb (Gast)


Lesenswert?

Gude / Hallo
Weiß jemand genaueres über die Geschwindikeitsmessung über die
ABS-Sensoren? Ich muss ein "Referat" darüber halten aud der 
Fachoberschuler FAchbereich E-Tech, also bräuchte ich genaue Infos über 
die Elektronik. Wäre echt nett wenn einer mir helfen könnte, danke

mfg Seb

von Ralph (Gast)


Lesenswert?

Hallo

Erst mal zu den Sensoren :

(älteren ) passive Sensoren liefern ein Sinussignal dessen Frequenz der 
Raddrehzahl entspricht. Die Amplitude steigt mit der Drehzahl, dadurch 
ist bei niedrigen Geschwindigkeiten ( < 4 - 5 km/h) eine Auswertung der 
Geschwindigkeit nicht mehr möglich; Signalpegel zu klein.

aktive Sensoren liefern ein Digitalsignal mit einem 50 % Dutycycle. Die 
Frequenz entspricht der Raddrehzahl. Der Signalpegel ist unabhängik von 
der Geschwindigkeit und beträgt zb 7 (low) und 14 (high) mA. 
STROMSCHNITTSTELLE

http://www.kfztech.de/kfztechnik/elo/sensoren/drehzahlsensor.htm

ABS /ESP  Steuergerät.
 Hier werden die Signale der Drehzahlsensoren ausgewertet, und die 
einzelnen Radgeschwindigkeiten berechnet. Berechnugsgrundlage sind die 
Flanken pro Zeiteinheit, und / oder die Zeitabstände zwischen Flanken.
 Die berechneten Geschwindigkeiten sind  in der Regel über CAN 
auslesbar, und / oder liegen als durchgeführte und gepufferte Signale 
auf dem Steckverbinder.
Das Meßintervall, Aktualisierungsintervall auf dem Can liegt in der 
Größenordnung von < 20 ms.

Ansonsten mal die Homepages der 3 großen Hersteller von ESP Systemen 
durchblättern, da düften noch einiges an Infos zu finden sein.

 - Bosch
 - Conti Teves
 - TRW

von Stefan W. (wswbln)


Lesenswert?

Alexander Rausch wrote:
> Hi,
> weis wer von euch, wie die großen Autofirmen bei ABS-Systemen die
> Radrehzahl der einzelenen Räder einlesen?
> Verwenden sie zur Drehzahlauswerteung mehrere µC´s, oder arbeiten sie
> nur dem Counter.

Es war einmal.... (damals, als Freescale noch Motorola hiess) , da gab 
es mal eine recht enge Zusammenarbeit mit Fahrzeugherstellern (u.a. den 
Berliner Motorrad Werken, abgek. BMW ;-)), wobei dann ein Prozessor für 
Motorsteuerungen und ABS-Systeme herauskam, der MC68332. Für Die 
Erzeugung und Auswertung von externen Timingsignalen bekam der eine 
eigene "Micro-Engine" mit die man TPU (Timing Processing Unit) nannte. 
Diese TPU fanden auch andere Anwender so toll, dass es die bis heute 
(als eTPU) in verschiedenen Controllerfamilien von Freescale (Power, 
ColdFire,...) gibt.

Das Thema ist etwas umfangreich, aber wenn Du Zeit und Interesse hast, 
kannst Du ja mal ein (e)TPU Manual ansehen: (9,3MB): 
http://www.freescale.com/files/32bit/doc/ref_manual/ETPURM.pdf

von Smartie (Gast)


Lesenswert?

Hmmm ziemlich viel Mist was da geschrieben wurde.

Zunächst einmal gibt es ABS von Bosch und Continental Teves (ATE) und 
noch ein paar seltenere Exoten. Ohne das Ding erstmal genau zu 
identifizieren wird es sich schwer in Betrieb nehmen lassen.
Es gibt aktive und passive Raddrehzahlsensoren.
Alle haben gemeinsam, daß sie auf bestimmten Strompegeln (7,14,28mA) 
ihre Daten schicken, die billigen Sensoren schicken nur den Puls, die 
Digitalen schicken zusätzlich noch digitale Daten mit Luftspalt und 
Bremsbelagverschleiß. Referenzsensoren gibt es nicht beim ABS, 
genausowenig wie sich die Sensoren unterhalb 4 Kmh abschalten, alles 
Mist. Auf dem Rad sitzt eine Lochscheibe mit glaube 48 Löchern, darauf 
der Sensor, die Signale wertet das ABS aus.
Normale Loopzeit eines ABS ist 7ms. Wenn in dieser Zeit keine Pulse 
kommen, kann natürlich nichts berechnet werden, deswegen unter 4 Kmh 
keine Radsignale.

von Rene T. (hifi-freak)


Lesenswert?

Hallo!

Bin neu hier und hab mich etwas durchgeschmökert wegen der ABS-Sensoren!

da ich Newbie bin und meine Diplomarbeit drauf basiert, hab ich da noch 
ergänzende Fragen dazu!

1.) Das Umwandeln vom Sinus in Rechteck scheint mal einfach, mal 
schwierig zu sein laut den Antworten!
ich dachte da an einen LM 339....da ich nur 3 Eingänge habe, passt der 
recht gut ins Konzept!

es handelt sich um ein Go-Kart, bei dem die Radumdrehungen respektive 
die Geschwindigkeiten ermittelt werden sollen!
(wird dann auf ein SainSmart 2560 mittels Arduino Software programmiert)

die Sensoren sind Standard (2 Anschlüsse)aus einem Opel Corsa B....29 
Zähne!

muss ich dem LM339 was vorschalten, kommt da ein DC Anteil raus?! ich 
meine, ich habe mit dem Oszi gemessen....aber unter 0 kanns nicht 
gehen....Sinus ist schön zu sehen!


2.) Am Ausgang einen Schmitt-Trigger vorschalten, oder genügt es, damit 
direkt an den PWM Eingang zu gehen?!

3.) Frequenz gemäss Übersetzung, Ritzel und max. Geschwindigkeit bei 
Motorenhöchstdrehzahl ergibt pro Sensor etwa 1280 bzw. 1410Hz...also 
unkritisch, oder ?!

4.) mir ist aufgefallen, dass das Sinus Signal "eiert", also bei 
gleicher Drehzahl in der Amplitude regelmässig schwankt...wie bekommt 
man das in den Griff?

5.) mach ich mehr draus, als dahinter steckt ?

6.) wie ich gesehen habe, macht es einen Unterschied, wie man die Kabel 
an das Oszi schliesst...also ist im Sensorteil sicher mehr, als nur ein 
Induktivgeber?!


vl sind das wirklich teilweise "einfache" Fragen, aber da ich in kurzer 
Zeit EINIGES bewerkstelligen muss, bitte ich hier um Hilfe!

DANKE :)

von Anja (Gast)


Lesenswert?

Rene Trattner schrieb:
> 1.) Das Umwandeln vom Sinus in Rechteck scheint mal einfach, mal
> schwierig zu sein laut den Antworten!
> ich dachte da an einen LM 339....da ich nur 3 Eingänge habe, passt der
> recht gut ins Konzept!
>
Eher so was wie 3*LM1815.
Das ganze scheint ein passiver Induktivgeber zu sein.
>
> 2.) Am Ausgang einen Schmitt-Trigger vorschalten, oder genügt es, damit
> direkt an den PWM Eingang zu gehen?!
s.o.

> 3.) Frequenz gemäss Übersetzung, Ritzel und max. Geschwindigkeit bei
> Motorenhöchstdrehzahl ergibt pro Sensor etwa 1280 bzw. 1410Hz...also
> unkritisch, oder ?!
klar

> 4.) mir ist aufgefallen, dass das Sinus Signal "eiert", also bei
> gleicher Drehzahl in der Amplitude regelmässig schwankt...wie bekommt
> man das in den Griff?
den Luftspalt Sensor/Zahnkranz konstant halten

> 6.) wie ich gesehen habe, macht es einen Unterschied, wie man die Kabel
> an das Oszi schliesst...also ist im Sensorteil sicher mehr, als nur ein
> Induktivgeber?!
Am Induktivgeber mit Differentiellem Tastkopf gemessen?
Oder irgend eine Masseschleife produziert?
Das Oszi ist geerdet. Die Schaltung möglicherweise auch (am Netzteil?).

Gruß Anja

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Rene Trattner schrieb:
> hab ich da noch ergänzende Fragen dazu!
Warum stellst du die nicht in einem neuen Thread und verlinkst den alten 
einfach? Dann müsste man nicht einen 7 Jahre alten Thread durchlesen um 
ganz hinten eine neue Frage zu finden...

Rene Trattner schrieb:
> muss ich dem LM339 was vorschalten, kommt da ein DC Anteil raus?!
Datenblatt ansehen. Dort finden sich auch Anwendungsbeispiele.

Anja schrieb:
> Das ganze scheint ein passiver Induktivgeber zu sein.
Es ist einfach eine Spule mit einem Magneten. Die 29 Zähne machen dann 
den erwähnten Sinus aus der Raddrehung...

Rene Trattner schrieb:
> Newbie ... und ... Diplomarbeit
Warum verfalle ich da jetzt ins Grübeln?
Oder ist das so eine HTL "Diplomarbeit"?

von Thomas W. (wagneth)


Lesenswert?

Also nach meiner Erfahrung wobbelt das Signal von einem Induktivgeber so 
gut wie immer rum.
Ich habe vor 2 Jahren öfter Kurbelwellengeber oszilloskopiert.
Selbst mit einem niegel nagel neuen Inkrementanrad ohne Getriebe dran...

Ist eigentlich auch kein grosses Problem so lange sich das ganze im 
Rahmen hält und die Hysterese passend / adaptiv ist.

von gvs (Gast)


Lesenswert?

Das ganze entspricht doch nur der Abfrage eines Drehgebers der ein 
Impulssignal liefert, dessen Frequenz proportional zur Drehzahl steigt.
Zum Bremsen ist es unerheblich wie das Signal aussieht nur die Frequenz 
(Drehzahl->Geschwindikkeit) ist wichtig. Auch die Drehrichtung ist egal.
(Mein Auto kann erprobt ABS auch bei Rückwärtsfahrt.)

Daher reicht es aus, einen Zähler zu verwenden der die Impulsfrequenz 
misst, indem er über eine konstante Torzeit die Impulse zählt.

Folgender Aufbau allgemein:

Sensor-> Verstärker -> Schmitt-Trigger -> Pegelwandler auf Logik -> 
Zähler

Sensor liefert "Sinus" der zur Auswertung mit dem Schmitt-Trigger evtl. 
Versärkt werden muss, dann haben wir es ein Rechtecksignal (Impulse).
Das wird evtl. über einen Pegelwandler auf den Zähler geschaltet.

Der Zähler muss dann nur noch "gelegentlich" ausgelesen werden per 
Timer.

Ob dein "Sinus" einen DC-Offset hat oder nicht, liegt an deiner 
Sensorschaltung. Grundsätzlich würde es genügen nur die obere Halbwelle 
zu untersuchen.
Statt über einem klassischen Schmitt-Trigger den Pegel des Sinus 
abzufragen kann man auch den Nulldurchgang ermitteln (Zero crossing 
detector).

Fragen
1. Woher soll man das wissen was da hin soll ? keine Schaltung und oszi 
Bild
2. PWM Eingang ? An den ZÄHLER !
3. Zählen tut die Hardware, im Normalfall schnell und sicher genug -> 
Datenblatt deines AVR oder was auch immer.
4. Was interessiert die Sinusspitzen-Änderung ? Wir wollen die doch 
nicht auswerten. Nur der Pegel muss immer einen Mindestwert einhalten 
damit wir keinen IMPULS verpassen.
5. Ja eigentlich schon, was studierst du ?
6. Tastkopf ! Sonst brauchst nicht erst was zu messen versuchen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

gvs schrieb:
>  der Pegel muss immer einen Mindestwert einhalten
Ich würde einfach die Nulldurchgänge der Wechselspannung mit ein paar 
mV Hysterese auswerten. Dann is nur ein kleines Mindestsignal nötig, das 
aber ab den bereits erwähnten 5km/h sicher vorliegt...

> Ob dein "Sinus" einen DC-Offset hat oder nicht, liegt an deiner
> Sensorschaltung.
Den bekommt man zur Not mit einem Kondensator ganz leicht wieder weg. 
Und dann kann man leicht wieder einen draufgeben, wenn eine unipolare 
Versorgung gewünscht ist...

gvs schrieb:
> Fragen
Warum plenkst du? Satzzeichen gehören direkt ans letze Wort des Satzes! 
Beim Punkt klappt's doch auch...

gvs schrieb:
> 5. Ja eigentlich schon, was studierst du ?
Ich tippe auf Österreich und HTL. Das darfst du nicht mit einem 
deutschen Diplom einer Uni oder FH verwechseln. Im Niveau dürfte es ein 
Technisches Gymnasium sein...

: Bearbeitet durch Moderator
von Anja (Gast)


Lesenswert?

Lothar Miller schrieb:
> Ich würde einfach die Nulldurchgänge der Wechselspannung mit ein paar
> mV Hysterese auswerten. Dann is nur ein kleines Mindestsignal nötig, das
> aber ab den bereits erwähnten 5km/h sicher vorliegt...

Es gibt da leider ein kleines Problem:
Die Amplitude ist bei Induktivgebern drehzahlabhängig.
-> die Hysterese sollte daran angepaßt werden.

Gruß Anja

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Anja schrieb:
> -> die Hysterese sollte daran angepaßt werden.
Das mit der adaptiven Hysterese hätte ich erst mal aussen vor gelassen. 
Und gesagt: wenn es mit der kleinsten Amplitude geht, dann geht es auch 
mit höheren...

von Rene T. (hifi-freak)


Lesenswert?

ja vielen Dank vorerst!

dass ich kompliziert denke....stimmt....NULLDURCHGANG messen macht mehr 
Sinn!

zum Studium: es ist eine berufsbegleitende HTL, also ein Abendkolleg!
in insgesamt 3 Jahren kann man unmöglich ALLES NÖTIGE zum Thema 
E-Technik, Elektronik und Mikroelektronik lernen, geschweige denn 
verstehen!

ich greife mit der Abschlussarbeit sogar vor, weil wir noch nicht ein 
einziges Mal einen Microcontroller programmiert haben!
Die Sensortypen haben wir zwar besprochen, aber nur "gobal", nicht im 
Detail!

da der Aufbau des Go-Kart sowieso sehr umfangreich ist, will ich den 
Aufwand für diese Schaltung möglichst gering halten!


Die Programmierung werde ich zu 90% mit der Arduino Software machen...vl 
auch mit labView...Visual Studio geht auch, wobei die 
Registerbezeichnungen mir derzeit noch Kopfzerbrechen bereiten (Timer 
z.B.)

von gvs (Gast)


Lesenswert?

Rene Trattner schrieb:
> da der Aufbau des Go-Kart sowieso sehr umfangreich ist, will ich den
> Aufwand für diese Schaltung möglichst gering halten!

Der Sensor und die Auswerteschaltung müssen schon aneinander angepasst 
werden. Ansonsten ist es unmöglich eine vernünftige Auswertung zu 
machen.
Wenn das nur ein Teilaspekt ist, dann Frag doch jemanden vor Ort, wie 
einen Laboringenieur (so was in der Art werdet ihr doch haben).
Oder rück die Daten raus (Schaltung + Messung). Sonst kann dir nicht 
geholfen werden!

Rene Trattner schrieb:
> Die Programmierung werde ich zu 90% mit der Arduino Software machen...vl
> auch mit labView...Visual Studio geht auch, wobei die
> Registerbezeichnungen mir derzeit noch Kopfzerbrechen bereiten (Timer
> z.B.)

Nennt sich Timer/Counter (weil das Digital das gleiche ist, Timer = 
Counter = Frequenzteiler; nur die Interpretation des Ergebnisses 
entscheidet über den Namen; bei Extern-Counter ist auch die 
Eingangsstufe speziell) das sollte aber bekannt sein.

Benötigte Timer/Counter:
Du brauchst dann 2 externe Eingänge als Counter (zum Zählen der Zähne) 
und einen intern als Timer (Torzeit IRQ für Zähler), dann sind 
vermutlich schon alle belegt (bei Mega8 üblich 3, selten 4, noch 
seltener mehr als 4). Manchmal kann man sich noch einen zusätzlichen 
langsamen Timer "besorgen" indem man den Watchdog nimmt (sehr langsam).

von Rene T. (hifi-freak)


Lesenswert?

der ATMega 2560 hat 2 8-bit und 4 16bit Timer/Counter...somit also 
ausreichend!
im Moment hol ich mal Informationen zum Aufbau der ABS-Sensorik...das 
grössere Problem bereitet im Moment eine ganz andere Sache am Fahrzeug-> 
es gibt keine passende Kupplung mehr und eine Adaptierung für den alten 
Motor gibt es nicht...aber das wird schon!

mein Betreuungslehrer wird mir sicher helfen, er meinte, man baut zuerst 
mal eine Versuchsschaltung mit dem LM339 auf, danach schaut man, wie man 
das mit der Hysterese hinbekommt...bin gespannt....

von gvs (Gast)


Lesenswert?


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.