Forum: Mikrocontroller und Digitale Elektronik Suche Protokol zu Datenstrom


von Robert (Gast)


Lesenswert?

Hallo Liebe Leute...

Ein Rätsel.... ;-)

Ich habe da einen Datenstrom von einem (Sensor)Modul
und suche dazu ein Protokoll das passen könnte.

Scheinbar fängt das Signal mit 4 Start-Bits an.
1* 11µs High,11µs Low
1* 11µs High,22µs Low
1* 11µs High,11µs Low
1* 11µs High,11µs Low

dann 616µs High (Pause)

Dann ein Datenstrom von ca.106 bis 119 mal High
wobei die Längen der Bits sich ändern.
(schaut irgendwie aus wie ein Digitalisiertes Analogsignal ?!)

dann 1,13ms High (Pause)

und dann kommen wieder die 4 Startbits  (siehe oben)

von Startbit zu Startbit vergeht 10ms

Ich dachte an Manschester Code, aber es gibt kein Taktsignal dazu ..

Das Modul möchte ich nicht nennen (verzeiht mir),
aber vielleicht hättet ihr eine Idee, was das sein könnte ?

Danke im vorhinein :-)

l.G. Robert

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

SPI? I2C? RS232?

Ich glaube kaum, dass sich ein Hersteller die Mühe macht, ein möglichst 
inkompatibles Protokoll zu implemetiren ...

von Robert (Gast)


Lesenswert?

Hallo Frank
Das Teil ist schon 10 Jahre alt und das Schema passt leider in keines 
der mir bekannten.. :-(

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Robert schrieb:
> dann 616µs High (Pause)
>
> Dann ein Datenstrom von ca.106 bis 119 mal High
> wobei die Längen der Bits sich ändern.
> (schaut irgendwie aus wie ein Digitalisiertes Analogsignal ?!)
>
> dann 1,13ms High (Pause)

 Da du anscheinend Schwierigkeiten hast, den ganzen Vorgang
 irgendwie verständlich zu beschreiben, wie wäre es mit einer
 LA-Aufzeichnung oder ganz einfacher Zeichnung ?

 Das, was du beschrieben hast, ergibt für mich ein ununterbrochenes
 High...

von Route_66 H. (route_66)


Lesenswert?

Robert schrieb:
> Ein Rätsel.... ;-)

Bereits Deine Beschreibung ist ein großes Rätsel!

Robert schrieb:
> Scheinbar fängt das Signal mit 4 Start-Bits an.
> 1* 11µs High,11µs Low
> 1* 11µs High,22µs Low
> 1* 11µs High,11µs Low
> 1* 11µs High,11µs Low
>
> dann 616µs High (Pause)
>
> Dann ein Datenstrom von ca.106 bis 119 mal High
> wobei die Längen der Bits sich ändern.
> (schaut irgendwie aus wie ein Digitalisiertes Analogsignal ?!)
>
> dann 1,13ms High (Pause)
>
> und dann kommen wieder die 4 Startbits  (siehe oben)
>
> von Startbit zu Startbit vergeht 10ms

Male das mal auf.

Ich hätte ja eine Idee, aber verzeih mir, dass ich sie hier nicht 
preisgebe.

von Voodoo (Gast)


Lesenswert?

Robert schrieb:
> Das Modul möchte ich nicht nennen (verzeiht mir),
> aber vielleicht hättet ihr eine Idee, was das sein könnte ?

Warum? Ich habe leider kein Verständnis dafür warum man in einem freien 
Forum nach Hilfe frag aber wichtige Informationen zurückhalten will.

Robert schrieb:
> aber es gibt kein Taktsignal dazu ..

Ein Taktsignal muss ja nicht übertragen werden, solange sich beide 
Seiten über die Verarbeitung der Informationen einig sind. Daher 
wahrscheinlich die Startbits.

Super wäre ein oder mehrere(bei sich ändernden Daten) Datensätze z.B. 
als csv mit Zeit und Wert. So etwas kann man dann weiter verarbeiten und 
analysieren.

Wie wurden denn diese Werte ermittelt?

Robert schrieb:
> Scheinbar fängt das Signal mit 4 Start-Bits an.
> 1* 11µs High,11µs Low
> 1* 11µs High,22µs Low
> 1* 11µs High,11µs Low
> 1* 11µs High,11µs Low

Warum 4 Startbits und nicht 9? Haben die 11µs irgend einen Bezug zu 
deinem  geheimen System?

Robert schrieb:
> (schaut irgendwie aus wie ein Digitalisiertes Analogsignal ?!)

Willst du sagen das du ein Analogsignal auswertest? Kein Mensch ausser 
dir kann einen Zusammenhang herstellen da nur du weisst um was für ein 
Gerät es sich handelt.

von Robert (Gast)


Angehängte Dateien:

Lesenswert?

Hallo
Danke für die Antworten...:-)

Ein paar Bilder (vom LA)
(ich hoffe man sieht die Bilder..(vorschau geht nicht))

screenshot1:
Ist das Signal im Überblick (3 Sequenzen)

screeshot2:
den linken Teil vergrößert
die linken 4 Highs vermute ich als Startsequenz
rechts davon dann die Daten mit unterschiedlichen Bitlängen..

von Robert (Gast)


Lesenswert?

@Route_66 H
welche Idee hättest Du den ?

von Wolfgang (Gast)


Lesenswert?

Robert schrieb:
> Dann ein Datenstrom von ca.106 bis 119 mal High
> wobei die Längen der Bits sich ändern.

Ohne Bild vermutet man da erstmal insgesamt ein laaanges High und fragt 
sich, wie man sich anhand dieser Beschreibung wohl die Trennung zwischen 
den Bits vorzustellen hat.

Robert schrieb:
> Ein paar Bilder (vom LA)
> (ich hoffe man sieht die Bilder..(vorschau geht nicht))

Ein Bild sagt mehr als Tausend Worte und klärt zumindest die Trennung 
der Bits. Diese regelmäßigen High Pulse könnten Stop Bits einer 
seriellen Übertragung sein, wobei dann die am Ende folgende Flanke das 
Start Bit des nächsten Datenwortes einleitet. Die längeren High Phasen 
entsprechen einem Space Signal.
Aus dem Bild irgendwelche genauen Zeitinformationen rauszuziehen, ist 
mir jetzt allerdings zu mühsam, da die begrenzte Auflösung 
wahrscheinlich auch noch einen erheblichen Jitter in den Datenflanken 
vortäuscht.
Evtl. gibt es bei deinem LA die Möglichkeit, Daten nicht nur als Bild an 
die Welt weiter zu reichen.

von Yalu X. (yalu) (Moderator)


Lesenswert?

93750,8,E,2

von A. S. (Gast)


Lesenswert?

Der erste bitstrom links könnte ein normales uart-Signal sein.

Ausmessen (sind das 2 oder 3 Bits in der Mitte?) Baudrate ausrechnen und 
per Inverter auf seriellen Port geben oder vom LA analysieren lassen.

Warum sollte das kein normales UART-signal sein?

von A. S. (Gast)


Lesenswert?

Yalu X. schrieb:
> 93750,8,E,2

Also Profibus?

von Robert (Gast)


Lesenswert?

Hallo
Sorry dass ich mich erst jetzt melde...

@ Yalu X

Du bist der Hit !!!!!
Du hast Recht !!!

Das ergibt wirklich einen Sinn !!

Auf das wäre ich nie gekommen ...

Wie bist du auf das gekommen ??


Danke Danke!!

von Yalu X. (yalu) (Moderator)


Lesenswert?

Robert schrieb:
> Wie bist du auf das gekommen ??

Das ist nicht schwer: Im mittleren Teil von screenshot2.png wiederholt
sich das gleiche Muster siebenmal. Das legt die Vermutung nahe, dass es
sich dabei um 7 Datenframes handelt, die ohne Pause hintereinander
gesendet werden. Die Low-Phase dieser Frames ist so lang wie das kurze
Datenpaket links im Bild. Dieses besteht offensichtlich aus 10 Bits,
nämlich 0101001010. 1 Bit ist dabei im Mittel knapp 3 Pixel lang. Die
High-Phasen der periodischen Frames sind 6 Pixel, also 2 Bit lang. Somit
ist die Framelänge 10+2=12 Bit.

Auch die nichtperiodischen Abschnitte enthalten alle 12 Bits die
Bitfolge 110, was vermuten lässt, dass es sich dabei um 2 Stopbits und 1
Startbit zweier aufeinanderfolgender Frames handelt. Zwischen dem
Startbit und dem nächsten Stopbit liegen also 12-1-2=9 Bits. Das sind
entweder 9 Datenbits oder 8 Datenbits und 1 Paritätsbit. Bei näherer
Betrachtung kann man erkennen, dass die Anzahl der 1-Bits in jedem Frame
geradzahlig ist.Das deutet darauf hin, dass das 9. Bit ein Paritätsbit
ist.

Bei der Baudrate habe ich etwas geraten: Aus deiner Anfrage ist zu
entnehmen, dass 1 Bit etwas 11µs lang ist. Das entspräche 90909 Baud,
was aber weit weg von den üblichen RS-232-Baudraten liegt. Für die
weitverbreiteten, mit 12MHz getakteten 8051-Derivate werden mitunter
auch 12000000/2⁷=93750 Baud genutzt, was einer Bitdauer von 10,7µs ≈
11µs entspricht und damit ganz gut passen würde. Aber da bin ich mir
nicht so sicher, vielleicht kannst du die genaue Bitdauer mit LA ja noch
einmal nachmessen.

von A. S. (Gast)


Lesenswert?

Yalu X. schrieb:
> Für die
> weitverbreiteten, mit 12MHz getakteten 8051-Derivate werden mitunter
> auch 12000000/2⁷=93750 Baud genutzt, was einer Bitdauer von 10,7µs ≈
> 11µs entspricht und damit ganz gut passen würde.

Das heisst, Du kennst Profibus gar nicht? Respekt! Ich wollte die 
Baudrate gerade Posten, weil sie zu den 11µs als einziges irgendwie 
passte, nachdem ich genau das gemacht habe, was ich empfohlen hatte ;-) 
Ansonsten sind mir 93750 Baud noch nie begegnet.

von Yalu X. (yalu) (Moderator)


Lesenswert?

A. S. schrieb:
> Das heisst, Du kennst Profibus gar nicht?

Nur vom Namen her, damit gearbeitet habe ich noch nie. Ursprünglich
wusste ich auch nicht, dass die 93750 Baud überhaupt irgendwo eingesetzt
werden. Ich sah nur, dass die 1/11µs=90909 in keinem einfachen
rationalen Verhältnis zu den üblichen Baudraten wie 38400 oder 115200
stehen. Somit ist es unwahrscheinlich, das der µC im Sensor mit einem
Baudratenquarz getaktet wird. Wahrscheinlicher ist es, dass als
Taktfrequenz die vom µC-Hersteller spezifizierte Maximalfrequenz gewählt
wurde, die oft ein Vielfaches von 4MHz ist, also bspw. 8MHz, 12MHz,
16MHz oder 20 MHz. Um die 90909 zu erreichen, müssten diese Frequenzen
durch 88, 132, 176 bzw. 220 geteilt werden. Der Faktor 132 liegt
verdächtig nahe bei 2⁷=128. Damit wäre eine gut zu realisierende
Baudrate 12e6/128=93750. Um zu sehen, ob das Ganze nicht zu sehr an den
Haaren herbeigezogen ist, habe ich im Netz spaßeshalber nach "93750
baud" gesucht, was tatsächlich ein paar Treffer geliefert hat. Neben
Profibus und Modbus gibt (oder gab) es diese Baudrate wohl auch in der
Diagnoseschnittstelle einiger Autos:

  https://www.freebasic.net/forum/viewtopic.php?t=10041

In dem Link ist auch die Rede von einem 8051, mit dessen Derivaten ich
in der Vergangenheit schon etwas Erfahrung sammeln durfte und deswegen
auch wusste, dass sie (zumindest die älteren Typen) üblicherweise mit
12MHz getaktet werden. Ich vermute mal, dass der 8051 (einer der
Mikrocontroller in der Industrieautomatisierung, bspw. auch in älteren
SPSen verbaut) ein Grund dafür waren, dass die 93750 Baud als eine der
möglichen Baudraten für Profibus und Modbus spezifiziert wurden.

Die Dateninhalte scheinen übrigens weder zum Profibus noch zum Modbus zu
passen:

1
Start   Daten    Parity Stop  hex
2
—————————————————————————————————
3
  0    10100101    0     11   a5
4
  Pause
5
  0    10100000    0     11   05
6
  0    11100010    0     11   47
7
  0    00000000    0     11   00
8
  0    00000000    0     11   00
9
  0    00000000    0     11   00
10
  0    01000000    1     11   02
11
  0    00000000    0     11   00
12
  0    00000000    0     11   00
13
  0    00000000    0     11   00
14
  0    00000000    0     11   00
15
  0    00000000    0     11   00
16
  0    00000000    0     11   00
17
  0    00000000    0     11   00
18
  0    10000000    1     11   01
19
  0    00000000    0     11   00
20
  0    00000000    0     11   00
21
  0    00000000    0     11   00
22
  0    00000000    0     11   00
23
  0    00000000    0     11   00
24
  0    00000000    0     11   00
25
  0    11000000    0     11   03
26
  0    01001000    0     11   12
27
  0    10000000    1     11   01
28
  0    11110100    1     11   2f
29
  0    00100000    1     11   04
30
  0    00110011    0     11   cc
31
  0    11111111    0     11   ff
32
  0    01001011    0     11   d2
33
  :       :        :     :    :
34
  (insgesamt ca. 61 Bytes)
35
  Pause
36
—————————————————————————————————

Da die Daten binär kodiert sind, lässt sich ihnen ohne weitere
Informationen zu dem ominösen Sensor auch keine Bedeutung zuordnen.

: Bearbeitet durch Moderator
von Robert (Gast)


Lesenswert?

@Yalu X
Da hast Du dir ja echt viel Mühe gemacht !!
Echt toll !! :-)
Danke!


Ich hätte da noch ein paar Signale, vom gleichen Modul.

Wenn Ihr Interesse habt, könnte ich das posten...

Wenn ihr es rausfindet, schreibe ich welches Modul es ist.

Es ist etwas, was jeder von Euch kennt ;-)

von Robert (Gast)


Angehängte Dateien:

Lesenswert?

Schade... kein Interesse ... aber ich schreibe doch mal... ;-)

Die anderen Signal die ich habe, schauen so aus...

Bild: Alle_1
Alles Signale im Überblick

Bild: Alle_2
Alle Signale ein biischen näher
Pin5 und Pin6 sind die Serielen Signale, die "Yalu X" so super erkannt 
hat.:-)


Bild: Alle_4_1
die linke Seite vom Bild größer

Bild: Alle_4_2
die rechte Seite vom Bild größer


Ich habe auch eine CSV Datei angehängt von 0,1 sek
(Falls es jemanden hilft ?!)

Also meine Idee wäre, dass es ein SPI Signal ist.

Pin1 müsste das Clock sein
Pin2 könnte Enable sein
Pin3 Daten In
Pin4 Daten Out

Wenn ich das im LA eingebe, meckert er nicht einmal.... :-)

Aber:
1.) Pin1 (Clock) hat manchmal 9 und machmal 10 Bits
    Sollten das nicht immer 8 Bit sein ?!

2.) Pin1 (Clock) ist Ausgang (also müsste das Master sein)
    Pin2 (Enable) ist Eingang.  Müsste dann aber
          eigentlich auch Ausgang sein ?
          ist aber laut Hardware, Eingang

 (IN und OUT bezieht sich auf das Modul)

3.) auf Pin 7 scheint ein Trigger Signal zu kommen, dass dann die obigen 
Signale anstößt  ..

Wobei die oberen dann eine Anfangssequenz haben und dann kommen erst 
mehere Daten Sequenzen  ?!


Wie seht ihr das ?
Ideen, ob das SPI ist   ?


und nun zur Auflöung des Gerätes ;-)
Es ist das BSA(Gleichgewichtsmodul) von einem Segway

von Theor (Gast)


Lesenswert?

Yalu wird für heute zum Rätselkönig ernannt. Respekt. :-)

von Yalu X. (yalu) (Moderator)


Lesenswert?

Robert schrieb:
> Also meine Idee wäre, dass es ein SPI Signal ist.
>
> Pin1 müsste das Clock sein
> Pin2 könnte Enable sein
> Pin3 Daten In
> Pin4 Daten Out

Ja, das könnte hinkommen.

> Aber:
> 1.) Pin1 (Clock) hat manchmal 9 und machmal 10 Bits
>     Sollten das nicht immer 8 Bit sein ?!

Du hast wahrscheinlich den LA zu langsam eingestellt (2 MHz Abtastrate),
so dass einige Details des Clocks nicht angezeigt werden.

Miss doch mal mit der höchsten Abtastrate, die der LA kann. Falls es
sich tatsächlich um SPI handelt, kannst du dann dessen Frequenz und die
Anzahl der Bits je SPI-Block ablesen.

Auch wenn man aus einem unterabgetasteten Signal nicht viel herauslesen
kann, wage ich mal folgende These:

Der Clock hat eine Frequenz von etwa 1,27 MHz und ein Tastverhältnis von
etwa 55%. In jedem Block (wie in deinem Screenshot "Alle_4_1.png"
gezeigt) werden 16 Bit übertragen. Ich bin mir dessen zwar mehr als
unsicher, aber es würde am ehesten zu den Messergebnissen passen.

von Robert (Gast)


Lesenswert?

@Yalu.X

OK, werde mal mit höchster Frequenz probieren
(Kann aber noch ein bisschern dauern..)


Was sagst Du zu den Aus- und Eingängen ?
Habe ich da einen Denkfehler ?

Clock und /SS kann ja nur vom Master kommen ?!

/SS sollte Pin2 sein (oben bezeichnet mit Enable)

Pin1 Clock ist Ausgang
Pin2 /SS   ist Eingang

Oder kann Clock vom Master und /SS vom Slave kommen ?

von Yalu X. (yalu) (Moderator)


Lesenswert?

Robert schrieb:
> Oder kann Clock vom Master und /SS vom Slave kommen ?

Es muss ja kein SPI, sondern könnte auch eine beliebige andere synchrone
(getaktete) serielle Kommunikation nach Gutdünken des Hersteller sein.
Solange die Gegenstelle (also das Gerät, das die Sensordaten liest)
darauf eingerichtet ist, ist alles in Ordnung.

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.