Forum: Mikrocontroller und Digitale Elektronik Signaldecodierung eines Drehmoment-Sensors


von Oliver (olijumper)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe ein kleines Problem und zwar habe ich ein Signal eines 
Drehmomenten Sensors wozu ich aber kein Datenblatt habe.

Ich habe den Sensor in Labor Bedingungen angeschlossen und ein paar 
Signale gemessen. Das hat auch alles wunderbar geklappt. Nun aber stehe 
ich vor der Herausforderung das Signal zu dekodieren und das Datenpaket 
des Momentes auszulesen.

Die Annahme die ich getroffen habe ist, dass das Signal (siehe 
Signa_raw.png) eine Manchester  Codierung aufweist. Mittels der Annahme 
habe ich in dem Programm meines Oszilloskops Picoscope 6 das Signal 
digitalisiert.
Nach der Digitalisierung habe ich das ganze in ein .csv File umgewandelt 
in Python eingelesen und erstmal die Startbits ignoriert.

Mit einem simplen Python Skript habe ich dann versucht das Datenpaket zu 
suchen. Und zwar in dem ich eine gewisse Länge des Datenpaketes 
festgelegt habe und durch das Signal "geswiped" bin. Dadurch entstand 
dann das Diagramm  "Signal.png" was am vielversprechendsten aussah.

Leider weist der Verlauf sehr hohe unplausible Sprünge auf.
Da ich absolut keine Erfahrung damit habe würde ich gerne von euch 
wissen wie ihr hier vorgehen würdet? Gib es vielleicht bei der 
Signalübertragung irgendwelche Besonderheiten die man beachten muss 
bevor man das Signal decodiert?

Die gesamte Messung im csv Format habe ich zusätzlich hier angehangen. 
(hardcore.csv). Aufgenommenes Signal war ein starkes Drehmoment 
(hardcore) nach links zu einem schwachen Drehmoment rechts

Danke!
Grüße Oli

: Bearbeitet durch User
von Hans-jürgen H. (hjherbert) Benutzerseite


Lesenswert?

Guten Morgen

Welcher Hersteller?
Typenschild?
Handbuch?

von Oliver (olijumper)


Lesenswert?

Hans-jürgen H. schrieb:
> Guten Morgen
> Welcher Hersteller?
> Typenschild?
> Handbuch?

Hallo Hans Jürgen,
Ich habe leider absolut keine Hintergrundinformationen.

: Bearbeitet durch User
von Wf88 (wf88)


Lesenswert?

Eine Info könntest du abernoch geben. Ein Fotodes Sensors.

Vielleicht erkennt den ja jemand wieder.

von Thomas F. (igel)


Lesenswert?

Oliver schrieb:
> Ich habe den Sensor in Labor Bedingungen angeschlossen und ein paar
> Signale gemessen. Das hat auch alles wunderbar geklappt.

Wieso hat das Signal nur 60mV? Ist das evtl. ein Open-Collector Ausgang 
und es fehlt der Pull-up?

Am Anfang ähnelt das Signal dem LIN-Bus. Aber die Baudrate ist zu hoch 
wenn die Zeitachse stimmt.
Oder CAN-Bus? Dann fehlt die 2. Leitung.

von Oliver (olijumper)


Lesenswert?

Wf88 schrieb:
> Eine Info könntest du abernoch geben. Ein Foto des Sensors.
>
> Vielleicht erkennt den ja jemand wieder.

Leider auch nicht möglich, der Sensor wird in Der Automobilindustrie als 
Lenkmomentensensor genutzt und ist komplett versiegelt.

Thomas F. schrieb:
> Oliver schrieb:
>> Ich habe den Sensor in Labor Bedingungen angeschlossen und ein paar
>> Signale gemessen. Das hat auch alles wunderbar geklappt.
>
> Wieso hat das Signal nur 60mV? Ist das evtl. ein Open-Collector Ausgang
> und es fehlt der Pull-up?
>
> Am Anfang ähnelt das Signal dem LIN-Bus. Aber die Baudrate ist zu hoch
> wenn die Zeitachse stimmt.
> Oder CAN-Bus? Dann fehlt die 2. Leitung.

Ich bin von einem Stromsignal ausgegangen und habe die Signalleitung mit 
ca 8V mit Spannung versorgt und über einen Shunt habe ich dieses Signal 
gemessen. Deswegen die geringe Signalamplitude.
Die 8V habe ich deshalb genommen, da bei Messungen am Auto eine 
Gleichspannung an der Signalleitung von 8V herausgemessen wurde.

Die Zeitachse stimmt soweit.

Vielleicht ne hilfreiche Zusatzinfo:
Der Sensor hat 3 Anschlüsse 0V, 5V Spannungsversorgung und ein 
zusätzlicher worüber ich mittels Shunt das Signal gemessen habe.

: Bearbeitet durch User
von Jochen S. (jochen_s)


Lesenswert?

Wenn es ein automotive Sensor ist, kommt mir nur ein Signalausgang etwas 
komisch vor. Ist der Sensor aus der Gebermechanik des Lenkrades zur 
Ansteuerung der Servolenkung?
Wenn ja, ist ein recht sicherheitskritische Anwendung, da würde ich ein 
mehrkanaliges Signal erwarten, LIN wäre da eigentlich raus, CAN könnte 
gehen wäre aber aufwändiger...

Hätte was Richtung zweikanaliger Stromschnittstelle oder PWM maximal 
zwei analoge Signale erwartet. Auf alle Fälle was redundantes bzw. 
absicherbares hinsichtlich der Signalintegrität.

Wenn es sehr neue Teile sind käme auch noch das SENT Protokoll in 
betracht....

von T.U.Darmstadt (Gast)


Lesenswert?

Was wäre denn, wenn du mit einer (heute völlig untypischen und 
altbackenen) Methode des Soll-Ist-Vergleichs an das Thema herangehen 
würdest?

Also Eingang mit Ausgang in Bezug setzen?

Man gibt es bestimmtes Drehmoment, z.B. Null auf den Eingang des Systems 
und misst den Ausgang? Ohne einen solchen Zusammenhang (und den hast du 
entweder nicht parat oder uns nicht mitgeteilt) wird es schwer, das 
Protokoll zu knacken - abgesehen davon, warum es überhaupt nötig ist, 
einen Sensor zu hacken, wenn man ihn offiziell besitzt und den 
Hersteller fragen könnte.

Man würde mehrere Drehmomente auflgen und betrachten, wie sich die Daten 
verändern. Wenn es nur bestimmte Bits sind, werden das die LSB sein. 
Bleibt eines immer auf Null, ist es eventuell ein Startbit. Verteilt 
sich die Änderung einer langsamen Drehmomenterhöhung auf alle Bits und 
ist jedes mal betroffen, könnte es ein Pulse-Dichte-Strom sein. 
Eventuell mal einen Tifpass dranhängen, um das auszuschließen.

Zu deiner Auswertung ist zu sagen, dass du da ganz offensichtliche 
Überläufe und Unterläufe hast. Wenn du Pech hast, macht die der Sensor 
von sich aus, um sich die Übertragung eines Bits zu sparen. Dann darfst 
du das korrigieren. Wenn du sehr viel Pech hast, ist der Datenstrom mit 
Versatzbits gespickt, damit der Sensor nicht gehackt werden kann. 
(Unserer ist es! Wie wir das dekodieren, binde ich aber nun niemandem 
auf die Nase)

Die Thematik "open collector" lässt sich auch leicht testen.

von Oliver (olijumper)


Lesenswert?

Jochen S. schrieb:
> Wenn es ein automotive Sensor ist, kommt mir nur ein Signalausgang
> etwas
> komisch vor. Ist der Sensor aus der Gebermechanik des Lenkrades zur
> Ansteuerung der Servolenkung?
> Wenn ja, ist ein recht sicherheitskritische Anwendung, da würde ich ein
> mehrkanaliges Signal erwarten, LIN wäre da eigentlich raus, CAN könnte
> gehen wäre aber aufwändiger...
>
> Hätte was Richtung zweikanaliger Stromschnittstelle oder PWM maximal
> zwei analoge Signale erwartet. Auf alle Fälle was redundantes bzw.
> absicherbares hinsichtlich der Signalintegrität.
>
> Wenn es sehr neue Teile sind käme auch noch das SENT Protokoll in
> betracht....

Genau, der Sensor nimmt das Lenkdrehmoment des Fahrers auf und übergibt 
dieses der elektrischen Servolenkung.

SENT wurde auch schon in Betracht gezogen. Da aber Messungen ohne 
angelegte Hilfsspannung am Signalkabel misslungen sind, d.h. es war 
keine Spannung zu messen, hab ich SENT ausgeschlossen, da SENT ja ein 
Spannungssignal sein müsste. Zusätzlich hab ich die Serielle 
Entschlüsselung von Picoscope auch mal auf SENT angesetzt aber auch 
leider nichts brauchbares rausgelesen.

Mit der Redundanz wirst du wahrscheinlich recht haben, da für 
elektrische Servolenkungen soweit ich weiß ASIL D festgesetzt ist. Was 
mich wundert ist halt, dass es an dem Sensor nur die 3 genannten 
Anschlüsse gibt.

Nichtsdestotrotz sollte man aus meinem ausgelesenen Signal sicherlich 
auch schon das Drehmoment rauslesen können. Gibts da irgendwelche 
Bitreihenfolgen die im Signal umgedreht sind für leichtere Berechnung in 
Microcontrollern? Z.B. LSB, MSB, Zweierkomplement, Endian....

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


Lesenswert?

Oliver schrieb:
> Die Annahme die ich getroffen habe ist, dass das Signal (siehe
> Signa_raw.png)
Sind alle Datenpakete, die da kommen, immer gleich lang? Oder haben sie 
gleich viele Flankenwechsel? Oder keines von beiden? Wie sehen weitere 
Datenpakete aus? Was machst du da am Sensor selber?

 eine Manchester  Codierung aufweist.
Für mich sieht das aus, als ob es lange und kurze Bits gäbe. Und die 
könnten 1 und 0 entsprechen. Dort im 
Beitrag "Erbitte Hilfe bei der Protokollidentifizierung" war so ein ähnliches Signal 
zu sehen.

> "Signal.png" was am vielversprechendsten aussah.
Entspricht das dem Drehmomentverlauf, den du vorgegeben hast? Oder warum 
versprichst du dir von diesem Gezappel viel?

Jochen S. schrieb:
> Wenn es sehr neue Teile sind käme auch noch das SENT Protokoll in
> betracht....
SENT ist langsamer und weniger "statisch" und mit den Augen eindeutig zu 
erkennen:
https://de.wikipedia.org/wiki/SENT

von Jochen S. (jochen_s)


Lesenswert?

Im ersten Schritt wäre es wohl auch hilfreich sicherzustellen, dass das 
was am Oszi ankommt richtig ist. Wenn Vergleichsmessungen im 
Originaleinbau möglich sind wie sieht das Signal dort aus? Muss der 
Sensor eventuell initialisiert werden, alles stochern im Nebel...

von Oliver (olijumper)


Lesenswert?

Lothar M. schrieb:
> Oliver schrieb:
>> Die Annahme die ich getroffen habe ist, dass das Signal (siehe
>> Signa_raw.png)
> Sind alle Datenpakete, die da kommen, immer gleich lang? Oder haben sie
> gleich viele Flankenwechsel? Oder keines von beiden? Wie sehen weitere
> Datenpakete aus? Was machst du da am Sensor selber?
>
>  eine Manchester  Codierung aufweist.
> Für mich sieht das aus, als ob es lange und kurze Bits gäbe. Und die
> könnten 1 und 0 entsprechen. Dort im
> Beitrag "Erbitte Hilfe bei der Protokollidentifizierung" war so ein
> ähnliches Signal
> zu sehen.
>
>> "Signal.png" was am vielversprechendsten aussah.
> Entspricht das dem Drehmomentverlauf, den du vorgegeben hast? Oder warum
> versprichst du dir von diesem Gezappel viel?
>
> Jochen S. schrieb:
>> Wenn es sehr neue Teile sind käme auch noch das SENT Protokoll in
>> betracht....
> SENT ist langsamer und weniger "statisch" und mit den Augen eindeutig zu
> erkennen:
> https://de.wikipedia.org/wiki/SENT

Die Signalpakete sind immmer zeitlich gleich lang und haben 
unteschiedlich viele Flanken, 82-86.
Das aufgenommene Signal:
>Die gesamte Messung im csv Format habe ich zusätzlich hier angehangen.
>(hardcore.csv). Aufgenommenes Signal war ein starkes Drehmoment
>(hardcore) nach links zu einem schwachen Drehmoment rechts

Zwischen den Sprüngen sieht es vielversprechend aus, die Sprünge konnte 
ich noch nicht erklären, aber das ist das plausibelste Signal was ich 
bisher rauslesen konnte.

Jochen S. schrieb:
> Im ersten Schritt wäre es wohl auch hilfreich sicherzustellen,
> dass das
> was am Oszi ankommt richtig ist. Wenn Vergleichsmessungen im
> Originaleinbau möglich sind wie sieht das Signal dort aus? Muss der
> Sensor eventuell initialisiert werden, alles stochern im Nebel...

Das Signal am Originaleinbau sieht ähnlich aus. Da es wie ich vermute es 
sich aber um ein Stromsignal handelt, konnte ich es bisher nur mit viel 
"knauberei" messen. Mit den Messungen am Fahrzeug konnte ich auch 
bestimmen dass der Sensor kein Aufwecksignal benötigt.

von Wf88 (wf88)


Lesenswert?

Oliver schrieb:
> Leider auch nicht möglich, der Sensor wird in Der Automobilindustrie als
> Lenkmomentensensor genutzt und ist komplett versiegelt

Gähn. Suchst du Hilfe oder jemanden, der Prosa liest?

"Ich kann keine Schuhe binden, wer hat passende Schnürs3nkel für mich?"

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.