Forum: Mikrocontroller und Digitale Elektronik ESP Sensor simulieren: Evtl Highside-Treiber verwenden?


von Stefan  . (phreakshow)


Lesenswert?

Hi Leute, folgendes Problem.

Ich hab hier ein ESP Steuergerät, welches ich am Schreibtisch betreiben 
will. Das ESP soll denken, dass Radsensoren angeschlossen sind und sich 
das "Auto" bewegt. Deshalb habe ich einen Radsensor gekauft und alles 
verkabelt. Wenn ich einen Magnet vor den Sensor halte, "bewegt" sich das 
Auto im Diagnosejob vorwärts.

Dieser Radsensor und alle drei zusätzlichen sollen durch einen 
Microcontroller simuliert werden. Der Sensor ist zweipolig ausgeführt.
Pin1 bekommt 12V vom ESP Steuergerät, Pin2 liefert ein PWM Signal 
abhängig von den Betriebszuständen (Stillstand, vorwärts, rückwärts, 
Luftspalt zum Magnet zu groß) zum Steuergerät.

Ich beschreibe einfach mal den Fahryeug-Stillstand, der ist einfach und 
reicht mir eigentlich für mein Problem erstmal.

Der Sensor scheint den Strom zu beeinflussen, dieser wechselt von 7mA 
auf 14mA, für 1,6ms, alle 740ms. Dann erkennt das ESP Steuergerät, dass 
der Sensor in Ordnung ist und das Fahrzeug steht.

Genau das soll jetzt ein Microcontroller erledigen. Ich dachte zuerst an 
ein Reedrelais und entsprechende Widerstaende, aber das kanns nicht 
sein. Viel eleganter waere es doch, den 7mA Zustand per Widerstand zu 
machen und dann mit einem Treiber einen weiteren Widerstand parallel zu 
schalten, so dass der Strom auf 14mA steigen kann.
Allerdings ist mein Problem, ich weiss nicht wie ich einen FET in dem 
Fall als Schalter verwende, weil er ja kein Lowside-Treiber sein kann, 
weil ich nicht gegen Masse schalte. Kann ich den einfach als Highsider 
in der Parallelschaltung verwenden? Oder gibt es noch eine elegantere 
Methode um das zu realisieren?

Prozessor soll ein Pic18f26k80 sein. Die Frage ist aber glaub recht 
unabhaengig vom Prozessor, wobei der Pic iirc 20mA treiben oder senken 
kann.

Vg Phreak

von RP6conrad (Gast)


Lesenswert?

Nur die Radsensoren reichen nicht aus zum simulieren ! Ein ESP hat 
daneben auch noch Lenkwinkel sensor und Beschleunigungsensoren. Und ist 
dan auch noch mit CAN verbunden an die andere Systemen in Fahrzeug. Wen 
du das alles simulieren wollen, sind Systemkentnissen (Software) 
unbedingt notwendig. Da sind tig "Plausibilitats testen" in solche 
systemen, wen irgend etwas nicht stimmt geht das System gleich in 
Notlauf : Rote ESP Warnlampe geht an (ueber CAN), und da werd nicht mehr 
geregelt.
Fangen sie mal an mit ein alteres ABS-system ATE MK20 von 2004, da macht 
du noch eine Chance um das fucntionieren zu lassen. Wir haben mal ein so 
ein System simuliert mit zwei Achsen, angetrieben ueber eine Rolle. Die 
Hinterachsen werden simuliert ueber die Rolle. Das functionierte recht 
gut !

von Ralph (Gast)


Lesenswert?

das Sensorelement in deine Radsensor ist dieses hier:
Infineon TLE4942-1C

Datasheet:
http://www.google.de/url?url=http://media.digikey.com/pdf/Data%2520Sheets/Infineon%2520PDFs/TLE4942-1,1C.pdf&rct=j&q=&esrc=s&sa=U&ei=0LQeVLP2CIrd7QaJtYD4Cw&ved=0CBQQFjAA&usg=AFQjCNHTS6fdznYKuN_0YqQ4x0SlQQWodw

Da steht die Stromshcnittstellenbeschreibung drin und ebenfalls die 
Protokollbeschreibung der Fahrtrichtung....

Die extern zu simulieren ist kein großes Thema.
Reicht dir bei genau 12 Volt, oder willst du auch etwas mit der 
Versorgungsspannung spielen, also so wie die im auto auch schwankt ?

Bei 12Volt fest:
Ein Widerstand R = 12 V/7mA von SensorPlus nach Sensorminus
Dazu parallel ein Transistor mit einem 2 identischen Widerstand.
highside treiber brauchst du nicht, der Sensor hat eine 2 
Drahtschnittstelle. Als Bezugspunkt kannst du Masse Der ECU Versorgung 
nehmen.
Bei wechselnden Spannungen bekommst du ein Problem da der Strom ja von 
der Spannung abhängt. Kommst mit Festwiederständen also schnell in den 
Fehlerbereich.
Hier geht zb ein 7805 zusätzlich.
also
Vin vom 7805 an SensorPlus.
GND vom 7805 an SensorMinus
Vout vom Sensor an die Widerstand / Transistor kombi von vorher.
Allerdings sind jetzt die Widerstände unterschiedlich.
Der 7mA Grundstrom setz sich jetzt aus dem Basisstrom des 7805 ~2mA ( 
musst du aus dem Datenblatt dees ausgewählten 7805 raussuchen) und 
zusätzlich einem widerstand zusammen R = 5V/~5 mA.
Der andere Zweig aus Transistor und Widerstand R = 5 V/7mA liefert die 
2. 7mA.

Die Basis des Transistors kannst du dann mit einem Rechtecksignal 
ansteuern.



Damit bekommst du schon mal die Radgeschwindigkeiten in die ECU.

Um die ECU "Fehlerfrei" zu bekommen fehlt da aber viel mehr.

RP6conrad schrieb:
> Nur die Radsensoren reichen nicht aus zum simulieren ! Ein ESP hat
> daneben auch noch Lenkwinkel sensor und Beschleunigungsensoren. Und ist
> dan auch noch mit CAN verbunden an die andere Systemen in Fahrzeug. Wen
> du das alles simulieren wollen, sind Systemkentnissen (Software)
> unbedingt notwendig. Da sind tig "Plausibilitats testen" in solche
> systemen, wen irgend etwas nicht stimmt geht das System gleich in
> Notlauf : Rote ESP Warnlampe geht an (ueber CAN), und da werd nicht mehr
> geregelt.

Dem ist leider so.
Du wirst die vollständige CAN Kommunikationsspezifikation aus dem 
Fahrzeug brauchen.
Damit kannst du dann die Can Simulation erstellen.

Deine Chance diese Daten zu bekommen geht gegen NULL.

Dazu brauchst du noch einiges an Systemwissen. Zum Fahrzeug und auch zu 
ECU internas.
Deine Chance diese Daten zu bekommen sind in etwa vergleichbar wie für 
die CAN Spezifikation.

Aber fang schon mal mit den Radsensoren an.
Ein Schritt nach dem anderen.

von Stefan  . (phreakshow)


Lesenswert?

Danke für eure Antworten, die natürlich ihrerseits weitere Fragen 
erzeugen :) Aber der Reihe nach:

@RP6conrad: Ja, das ist mir bewusst dass da noch Lenkwinkel und Gyro 
reinspielen, um ein komplettes ESP zu simulieren. Beide Steuergeräte 
liegen auch neben mir am Schreibtisch, ebay ist herrlich wenn man 
Steuergeräte braucht und Zeit hat. Die sind auch sehr kompakt und machen 
daher kein Problem.
Radsensoren machen aber Probleme, weil ich mir ungern vier Achsschenkel 
samt Rädern auf den Tisch stellen will.
Wenn die ganze Geschichte über CAN laufen würde, wär das viel einfacher. 
Leider sind die Steuergeräte nicht über CAN, sondern über Flexray 
vernetzt. Ich fand es deswegen einfacher, die komplette Kette zum ESP 
aufzubauen und die Radsensoren zu faken, als einen Flexray an einen 
Microcontroller anzubinden, from scratch und ohne Doku :)
Plausibilisierungen könnten ein Problem werden, aber bisher scheint das 
System mit einem Radsensor und nem Magneten davor recht glücklich zu 
sein. Wenn ich vor dem Sensor mit dem Magneten wedel, seh ich auf den cm 
wie sich das "Rad" bewegt.

@Ralph: Unabhängigkeit von der Versorgungsspannung wäre schon toll. Das 
vorgeschlagene Modell funktioniert aber doch nur, wenn das ESP den Strom 
auf der High-Seite misst, also das was aus der ECU zum Sensor fließt? Im 
ausgeschalteten Zustand messe ich 100kOhm von Sensor- nach ECU 
Versorgungsmasse. Wenn die den reinfließenden Strom misst, kriegt die 
ECU vom 7805 ja nichts mit?

In dem verlinkten Dokument (das wird mir später beim eigentlich 
Protokoll helfen, thx) wird aber beim Testaufbau auf der "falschen" 
Seite gemessen. Das kann ich doch mit dem 7805 nicht realisieren?

Vg Phreak

von Ralph (Gast)


Lesenswert?

Stefan Mayer schrieb:
> In dem verlinkten Dokument (das wird mir später beim eigentlich
> Protokoll helfen, thx) wird aber beim Testaufbau auf der "falschen"
> Seite gemessen. Das kann ich doch mit dem 7805 nicht realisieren?

Doch kannst du.
Die ECU liefert Plus und Minus Seite des Sensors.
Das Signal ist Stromkodiert. ==>Stromschnittstelle.

Daher ist es völlig egal ob die ECU an der Plus oder Minus Seite das 
Signal misst.
Der Strom ist an beiden Seiten der gleiche.

Zu beachten vieleicht noch das Plus des Sensors nah an der ECU 
Versorgungsspannung liegt,aber nicht 100% diese ist, da ist ein 
Schalter( FET) dazwischen.
Das gleiche gilt auf für die minus Seite mit ECU Masse.

Außerdem wirst du von außen niemals feststellen können ob die ECU den 
Strom an Plus oder Minus Seite einliest.
Vergiss eine Widerstandsmessung an den Pins, du misst gegen einen 
gesperrten FET der erst nach eine Systemprüfung innerhalb der ECU 
durchgeschaltet wird.

von Stefan  . (phreakshow)


Lesenswert?

Ralph schrieb:
> Die ECU liefert Plus und Minus Seite des Sensors.
> Das Signal ist Stromkodiert. ==>Stromschnittstelle.
>
> Daher ist es völlig egal ob die ECU an der Plus oder Minus Seite das
> Signal misst.
> Der Strom ist an beiden Seiten der gleiche.

Aber wenn S+ auf einen 7805 führt, und S- an Masse des 7805, und der 
Strom durch die Widerstände am Ausgang des 7805, dann fließt doch kein 
Strom in den S-, dh es ist aus Sicht der ECU nicht in beiden Fällen der 
gleiche Strom. Was ich so an Infos im Netz gefunden habe meine ich, dass 
das ESP auf der Minusseite misst. Wie würd ichs dann anstellen?

von Paul B. (paul_baumann)


Lesenswert?

Stefan schrub:
>Ich hab hier ein ESP Steuergerät, welches ich am Schreibtisch betreiben
>will.

Na, dann mußt Du doch ohnehin Räder an die Tischbeine montieren, da ist
es mit den Radsensoren dann auch erledigt...

Flücht
;-)

MfG Paul

von RP6conrad (Gast)


Lesenswert?

Radsensoren ohne Drehrichtungserkennung hat auch NXP (KMI)produziert. In 
ATE ESP gerate wird eine Reihenwiederstand van 115 ohm an Masse genutzt 
um diese 7/14 mA Pegel zu erkennen. Eine Encoder hat normal ca 48 
Polparen, damit konnen sie auch mal die Frequenz ausrechnen. Welches ESP 
verwendet du ?

von Ralph (Gast)


Angehängte Dateien:

Lesenswert?

So wie in dem Bild ist das gedacht.

Es gibt 2 Messvarianten.
1. Nach dem Beispiel im Datenblatt, ein Lastwiderstand von Sensor - nach 
GND. ==> Wandlung des Signals in Spannung typischerweise ~100 Ohm ergibt 
dann 0.7 und 1.4 Volt.
2. direkte Strommessung über zb Stromspiegel, was dann an High und Low 
Seite machbar ist

von Stefan  . (phreakshow)


Lesenswert?

Argh, wie eine Zeichnung doch helfen kann. Ich dachte ich soll mit U_aus 
über die Widerstände nach Masse gehen, und quasi Strom abzweigen. So wie 
es die Zeichnung zeigt, fließt überall der gleiche Strom.
Werd ich die Tage gleich mal austesten. Danke.

@RP6conrad: Ich verwende das ESP aus einem aktuellen BMW. DSC nennt man 
das bei BMW, und die ärgern mich mit ihrem Flexray, über den ist das DSC 
ans ICM angebunden welches die Beschleunigungssensoren enthält.

von Ralph (Gast)


Lesenswert?

Na da hast du dir so ziemlich das schwierigste ausgesucht was du finden 
konntest.
Muss es unbedingt das Flexray Teil aus dem BMW sein ?

von Stefan  . (phreakshow)


Lesenswert?

Hehe, ja muss es. Ich fahre einen Volvo, dem ich das Navi aus einem BMW 
F02 Facelift verpasst habe. Problem ist, BMW nutzt das GPS Signal nur 
zum  Positionsabgleich alle 30s, der Rest wird normal über die 
Radsensoren gerechnet. Das geht auf der Autobahn grade noch so gut, in 
der Stadt ist es ziemlich nutzlos.
Mein erster Ansatz war eine Umrechnung von Volvos Radsensoren auf den 
BMW Standard, aber irgendwie geht das daneben. Der Volvo liefert mir die 
Radgeschwindigkeit, BMW erwartet aber Wegstrecke absolut. Irgendwo beim 
Integrieren mach ich Unfug, aber ich finde den Fehler nicht. Da das DSC 
und vor allem das ICM mit neueren Versionen der BMW Headunit besser 
zusammenarbeitet, hab ich mich entschieden beide Geräte mit anzubinden.
Da mein Volvo auch ein variables Fahrwerk hat, ergänzt sich das gut mit 
BMWs Fahrerlebnisschalter und der Anzeige in der Headunit.
Nachdem ich nun also zwei CANs und einen MOST nachgerüstet habe, kommts 
jetzt auf den Flexray auch nicht mehr an :)

von Ralph (Gast)


Lesenswert?

Vergiss das mal ganz schnell.

Das wirst du nie sauber und stabil zum laufen bekommen.

1.
Die Radsensoren kannst du nicht parallel mit beiden Steuergeräten 
abgreifen.
Da werden beide feststellen das die Werte nicht stimmen und abschalten.

2. Das Volvo ESP durch das BMW ersetzen wird auch nicht funktionieren. 
Da passt die gesamte Fahrzeugarchitektur nicht zusammen. Dazu müsstest 
du alles neu Programmieren, und glaub mir das bekommst du nicht hin.
Abgesehen davon wirst du niemals die Einstellungen / Parametersätze 
passend zum Volvo hinbekommen.

3. Wenn du so tief in die Elektronik des Autos eingreifst verfällt die 
ABE des Autos. Das heißt du fährst dann ohne Versicherungschutz mit 
einem nicht zugelassene Fahrzeug.


Alternative.
Nimm eine einzelnes Navi von Garmin, TomTom und so weiter und bau dir 
das ins Auto.


Achja, der Hauptgrund warum das Navi so bescheiden geht liegt nicht an 
den Radesensoren.
Das liegt daran das das Navi merkt, das es nicht in dem Auto ist in dem 
es sein sollte.
==> Das Teil, wie auch die anderen Steuergeräte funktioniere nur in dem 
Auto korrekt und in vollem Umfang in dem sie eingebaut und kodiert 
waren.
In einem neuen  Auto müssen sie wieder neu kodiert werden. Das wird 
allerdings im Volvo nicht funktionieren.

Stefan M. schrieb:
> BMW erwartet aber Wegstrecke absolut. Irgendwo beim
> Integrieren mach ich Unfug, aber ich finde den Fehler nicht.

Schon möglich das du Unfug machst.
Hast du die BMW Diagnosetools mit den zugehörigen Kryptoschlüssel ?
Wenn ja, na vielleicht bekommst du eine winzige Chance.
Wenn nein, naja ein Lottojackpot ist auch möglich,.......

Woher weißt du ob BMW navi die Wegstrecke absolut brauch? Oder ist das 
eine Annahme ?

von Stefan  . (phreakshow)


Lesenswert?

1. Da hast du mich falsch verstanden. Der Volvo hat ein CEM, welches die 
Radgeschwindigkeiten bereitstellt. Dank mühsamem Reverse Engineering hab 
ich das Protokoll fertig, ich kriege also vier Radgeschwindigkeiten aufm 
Volvo-CAN.

2. und 3. Das ist nicht der Plan. Der Plan ist, den Volvo serienmäßig zu 
betreiben, bis auf die Headunit. Die kriegt ihre Infos von DSC und ICM, 
über das ZGW.
Ich lese also vom Volvo Bus die Radgeschwindigkeiten, rechne die in 
Radimpulse um und füttere diese Info ins DSC.
Alle Teile sind Serienbauteile, der Volvo fährt serienmäßig.

Das Navi denkt es ist in einem BMW, das funktioniert korrekt. Dem fehlt 
nur die Information der Radsensoren, das ist der einzige Grund warum es 
nicht tut. Es ist korrekt codiert und ich hab eh schon das halbe BMW 
Bordnetz nachgerüstet.

Der Unfug war aufs Umrechnen der Daten bezogen. Ich hab da irgendwo 
einen Bug im Code und finde ihn nicht, so wars gemeint. Evtl ist der 
kleine Pic18 auch überfordert, wobei ich das weniger glaub.

Das System an sich ist schon im Auto und seit nem Jahr in Betrieb. 
Freisprechen, Spracherkennung, Musik, DAB+, Dimmung vom Lichtsensor, 
Multifunktionslenkrad, alles da. Nur das Navi fehlt noch.

Dass die Headunit die Wegstrecke absolut braucht, weiß ich ebenfalls aus 
mühsamem Reverse Engineering. CAN-Trace aufgezeichnet, mit Filter an das 
Navi am Schreibtisch abgespielt und so lange den Filter verändert, bis 
ich die Nachrichten hatte.

Auf die Betriebserlaubnis dürfte diese Geschichte keinen Einfluss haben. 
Alle Teile sind Serienteile mit E-Zulassung, das Geräusch- und 
Lichtverhalten des Fahrzeuges wird nicht verändert, ebenso wenig wie 
Leistung, Hubraum und Außenmaße. Die ganzen CarHifi und CarPC Einbauten 
sind da ähnlich, im Prinzip bau ich nurn verdammt aufwändiges Navi ein. 
Alle Basteleien finden ja am BMW Bus statt, und der hat mit meinem 
Fahrzeug nix zu tun. Wie du schon sagtest, die sind inkompatibel.

: Bearbeitet durch User
von Stefan  . (phreakshow)


Lesenswert?

Kurzes Update: Ich hab eine kleine Testplatine gebaut mit µC, einem 
Optokoppler und zwei 1,5k Widerständen. Der Optokoppler schaltet bei 
Bedarf den zweiten Widerstand parallel zu ersten, so dass der Strom sich 
verdoppeln kann. Bei ~63% Tastverhältnis zeigt mir das Steuergerät eine 
Geschwindigkeit von ~83km/h.
Jetzt muss ich nur noch das Protokoll nachbauen und dann kanns losgehen 
:D

von Stefan  . (phreakshow)


Lesenswert?

Hatte ganz vergessen hier zu posten: Vom letzten Update mit dem 
rudimentären proof of concept bin ich noch einen Schritt weiter 
gegangen. Das System funktioniert, allerdings ist die Abweichung nach 
30min ohne GPS fix schon recht groß. Bis 10min ohne fix deckt sich meine 
Position noch perfekt mit der tatsächlichen.

von Alexander S. (esko) Benutzerseite


Lesenswert?

Stefan M. schrieb:
> Das System funktioniert

Gratulation!

> allerdings ist die Abweichung nach 30min ohne GPS fix schon recht groß.
> Bis 10min ohne fix deckt sich meine Position noch perfekt mit der
> tatsächlichen.

Ich finde das erstaunlich gut, schließlich haben die Reifen Schlupf und 
in Kurven gibt es immer einen gewissen Drift.

von Stefan  . (phreakshow)


Lesenswert?

Ich glaube das liegt vor allem daran, dass die Headunit einen gewissen 
Toleranzbereich hat und wenn die Radsignale da noch drin liegen, 
platziert er einen direkt auf der plausibelsten Straße.
Soll mir recht sein, dass ja das was ich wollte.

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.