Forum: Mikrocontroller und Digitale Elektronik Welches Protokoll/Format könnte das sein?


von Trond (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

ich habe hier ein Gerät, welches seriell Daten überträgt. Von den 
Signalpegeln her ist das simples RS485 mit je zwei Leitungen 
(Differenzsignal) in jede Richtung.

Im Anhang ist die übertragene Wellenform zu finden. Mit dem breiten 
Startbit am mutmaßlichen Anfang eines Frames (1.5 oder 2 Bits breit?) 
würde ich ja sagen, das ist UART. Allerdings passt der Rest nicht dazu. 
Die übertragenen Daten sollten 20-Bit-Werte sein, aber egal wie ich die 
Pulse zähle, ich komme auf nichts, was zu diesen 20 Bit (oder 20 Bit pus 
irgend eine Prüfsumme) passen würde. Auch kenne ich kein UART, welches 
mehr als 8 Bit Nutzdaten kann.

Deswegen: hat irgend jemand eine Idee, was für eine Übertragung das sein 
könnte?

Bin für jeden Tipp dankbar!

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Ohne jetzt da Kaestchen gezaehlt zu haben: Vielleicht ists ein 
Protokoll, wie's IR-Fernbedienungen verwenden. Also vielleicht RC5 oder 
aehnliches?

Gruss
WK

von Wolfgang (Gast)


Lesenswert?

Trond schrieb:
> Die übertragenen Daten sollten 20-Bit-Werte sein, aber egal wie ich die
> Pulse zähle, ich komme auf nichts, was zu diesen 20 Bit (oder 20 Bit pus
> irgend eine Prüfsumme) passen würde.

Was sollen "pus" sein?

Deine Daten scheinen inklusive Framing aus 34 Pulsen zu bestehen. Für 20 
Bit Nutzdaten könnte das doch ok sein.
Lege die Datenpakete mal synchronisiert aufeinander und guck, wo sich 
bei Änderung des Dateninhalts in dem Telegramm etwas ändert.

von Andras H. (kyrk)


Lesenswert?

Da wird doch die Phase geschiftet, oder?

von Trond (Gast)


Lesenswert?

Wolfgang schrieb:
> Was sollen "pus" sein?

Kleiner Tippfehler, das sollte "plus" heißen.

> Deine Daten scheinen inklusive Framing aus 34 Pulsen zu bestehen. Für 20
> Bit Nutzdaten könnte das doch ok sein.
> Lege die Datenpakete mal synchronisiert aufeinander und guck, wo sich
> bei Änderung des Dateninhalts in dem Telegramm etwas ändert.

OK, wo siehst du da 34 Pulse? Ich sehe insgesamt drei unterschiedliche 
Pulsweiten und egal wie ich die zähle, komme ich auf keine 34 Pulse.

Und selbst wenn es 34 wären: was für ein Protokoll sollte das sein?

Ich habe schon Manchester-Code vermutet, aber der fällt raus, da gibt es 
maximal 2 verschiedene Pulsweiten.

von Marvin (Gast)


Lesenswert?

Leitungscodes gibt es wie Sand am Meer.
Kuck da: https://de.wikipedia.org/wiki/Kategorie:Leitungscode

von Ford (Gast)


Lesenswert?

Trond schrieb:
> Im Anhang ist die übertragene Wellenform zu finden. Mit dem breiten
> Startbit am mutmaßlichen Anfang eines Frames (1.5 oder 2 Bits breit?)
> würde ich ja sagen, das ist UART. Allerdings passt der Rest nicht dazu.

UART ist die Abkürzung für Universal Asynchronous Receiver Transmitter. 
Der darauf aufbauende Übertragungsstandard nennt sich RS-232 bzw 
V.24/V.28.

Schau dir mal 
https://www.analog.com/en/analog-dialogue/articles/uart-a-hardware-communication-protocol.html 
an.

Eine für manche Belange bessere Darstellung nennt sich Augendiagramm. 
Anhand dessen kannst du gewisse Eigenschaften des Signals besser (und 
einfacher) bewerten und Hiweise auf die verwendete Leitungs-Codierung 
gewinnen.

Kuck hier, wie man sich das per DSO anschauen kann: 
https://teledynelecroy.com/support/knowledgebase.aspx?docid=530&typeid=1

von Trond (Gast)


Lesenswert?

Ford schrieb:
> UART ist die Abkürzung für Universal Asynchronous Receiver Transmitter.
> Der darauf aufbauende Übertragungsstandard nennt sich RS-232 bzw
> V.24/V.28.

Der UART erzeugt den Bitstrom, einschließlich der möglichen 
Start/Stoppbits. Auf der Leitung kann das dann ein RS232 oder - wie in 
meinem Fall und wie in meiner Ursprungsfrage bereits geschrieben - RS485 
sein.

Das hat also alles nichts mit meiner Frage zu tun.

von Wolfgang (Gast)


Angehängte Dateien:

Lesenswert?

Trond schrieb:
> OK, wo siehst du da 34 Pulse? Ich sehe insgesamt drei unterschiedliche
> Pulsweiten und egal wie ich die zähle, komme ich auf keine 34 Pulse.

Die Information kann in der Pulslänge stecken. Ohne sich ändernde 
Dateninhalte ist es allerdings müßig, darüber zu spekulieren.
Leg Datenpakete mit unterschiedlichem, idealerweise bekanntem, Inhalt 
übereinander und gucke, was sich ändert.

> Ich sehe insgesamt drei unterschiedliche Pulsweiten
Warum nicht? Dann gibt es vielleicht drei verschiedene Zustände pro 
Symbol. Da kann man sich viel ausdenken.

von Trond (Gast)


Lesenswert?

Wolfgang schrieb:
>> OK, wo siehst du da 34 Pulse? Ich sehe insgesamt drei unterschiedliche
>> Pulsweiten und egal wie ich die zähle, komme ich auf keine 34 Pulse.

...und wie kommst du darauf, die roten Linien dort einzuzeichnen? Ich 
kann die Idee dahinter leider nicht erkennen.

Nach 17 Pulsen kommt bereits so ein breiter Puls, wie du Ihn an Position 
34 identifizierst. Also warum nicht schon der bei 17 sondern erst der 
bei 34?

Danke :-)

von Wolfgang (Gast)


Lesenswert?

Trond schrieb:
> ...und wie kommst du darauf, die roten Linien dort einzuzeichnen?

Die Position ist willkürlich. Der Abstand der roten Linien entspricht 
der Periode deines Signals. Eine lange Zeitaufzeichnung in PNG-Form 
macht den Vergleich der Datenpakete allerdings sehr mühsam. Guck dir die 
Pulslängenstatistik deines Signals an und extrahiere dann einen 
Pseudodatenstrom, der sich besser korrelieren lässt.
Was von den Pulsen Framing ist, kann man nur erkennen, wenn man das 
Protokoll kennt oder sich die Dateninhalte ausreichend ändern.

von N. M. (mani)


Lesenswert?

Wolfgang schrieb:
> korrelieren

Muss man überhaupt einen Pseudo Datenstrom extrahieren?
Eine Autokorrelation des Signals sollte doch Peaks im Abstand der Frames 
geben.
Zumindest wenn die Daten annähernd gleich bleiben.

@Trond: stell Mal deine Daten hier ein. Mit deinem Bild kann man leider 
nicht sehr viel ausprobieren.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

N. M. schrieb:
> Muss man überhaupt einen Pseudo Datenstrom extrahieren?
> Eine Autokorrelation des Signals sollte doch Peaks im Abstand der Frames
> geben.

Muss man nicht, ist aber einfacher als mit PNG-Pixeln ;-)
In der Autokorrelationsfunktion erkennt man gut die Länge des 
Datentelegramms, aber Details gehen in der Mittelung verloren. Außerdem 
muss alles synchron zu einem ausreichend stabilen Takt laufen (Fehler 
über die Aufzeichnungslänge typ <1/10T).

von Yalu X. (yalu) (Moderator)


Lesenswert?

Das ist S/PDIF oder AES3, dein geheimes Gerät also vermutlich irgendein
Audiogerät.

von Ford (Gast)


Lesenswert?

Trond schrieb:
> Ford schrieb:
>> UART ist die Abkürzung für Universal Asynchronous Receiver Transmitter.
>> Der darauf aufbauende Übertragungsstandard nennt sich RS-232 bzw
>> V.24/V.28.
>
> Der UART erzeugt den Bitstrom, einschließlich der möglichen
> Start/Stoppbits. Auf der Leitung kann das dann ein RS232 oder - wie in
> meinem Fall und wie in meiner Ursprungsfrage bereits geschrieben - RS485
> sein.
>
> Das hat also alles nichts mit meiner Frage zu tun.

Hatte ich was anderes behauptet? Weder die Begriffe USART noch RS-485 
bringen dich weiter - genausowenig wie RS-422, RS-232 oder V.24/28. Das 
ganze RS- und V-Gemocke sind Begriffe für die physische Schnittstelle 
einer asynchronen, seriellen Datenübertragung. Dabei geht es um Pegel 
und Stecker und so'n Kram - Du mit diesen Begrifflichkeiten aber an der 
ganz falschen Stelle suchst.

Aber mach mal wie Du denkst...

Ist zumindest eine schöne Knobelaufgabe, die Du dir da ausgesucht hast. 
Viel Spass noch beim Raten!

von Ford (Gast)


Lesenswert?

Yalu X. schrieb:
> Das ist S/PDIF oder AES3, dein geheimes Gerät also vermutlich irgendein
> Audiogerät.

Aus https://de.wikipedia.org/wiki/Sony/Philips_Digital_Interface:

  "Sony/Philips Digital Interface (S/PDIF) ist eine Spezifikation
  für eine unidirektionale, selbstsynchronisierende und serielle
  Schnittstelle [...]"

Unidirektional - kommt dann überhaupt RS-485 in Betracht? Wo könnte 
man in einem RS-485-Signal die Taktinformation verstecken?

von Trond (Gast)


Lesenswert?

Yalu X. schrieb:
> Das ist S/PDIF oder AES3, dein geheimes Gerät also vermutlich irgendein
> Audiogerät.

Wiki sagt: Als Leitungscode wird ein Biphase-Mark-Code (BMC) verwendet.

BMS kennt aber maximal zwei Pulsweiten (bei einer "1" doppelt so breit 
wie bei einer logischen "0"). In dem Muster oben sehe ich aber drei 
verschiedene Pulsweiten. Oder habe ich da was übersehen?

von Dergute W. (derguteweka)


Lesenswert?

Trond schrieb:
> Oder habe ich da was übersehen?

Ja. Dass der BMC bei SPDIF zum Markieren des Headers (Preambel) verletzt 
wird.

Gruss
WK

von Yalu X. (yalu) (Moderator)


Lesenswert?

Ford schrieb:
> Unidirektional - kommt dann überhaupt RS-485 in Betracht?

Man muss ja nicht unbedingt beide Übertragungsrichtungen nutzen.

> Wo könnte man in einem RS-485-Signal die Taktinformation verstecken?

Die Taktinformation steckt im Datensignal. Der Leitungscode von S/PDIF
und AES3 ist im Wesentlichen ein differentieller Manchester-Code.

Trond schrieb:
> BMS kennt aber maximal zwei Pulsweiten (bei einer "1" doppelt so breit
> wie bei einer logischen "0"). In dem Muster oben sehe ich aber drei
> verschiedene Pulsweiten. Oder habe ich da was übersehen?

Das gilt nur für die Kodierung der Datenbits. Die Synchronisationsmuster
hingegen sind der Unterscheidbarkeit wegen nicht Biphase-Mark-kodiert,
sondern enthalten auch Impulse, die 3 Schritte lang sind.

von Hmmm (Gast)


Lesenswert?

Riecht nach AES3 (balanced), insbesondere wenn im Gerät eine XLR-Buchse 
dafür verbaut ist.

von Trond (Gast)


Lesenswert?

Dergute W. schrieb:
> Trond schrieb:
>> Oder habe ich da was übersehen?
>
> Ja. Dass der BMC bei SPDIF zum Markieren des Headers (Preambel) verletzt
> wird.

Ah...cool...klingt sehr gut, Danke!!!

von Georg A. (georga)


Lesenswert?

Ein nicht ganz unwichtiges Detail beim lustigen Protokollraten ist das 
Timing, das hier natürlich nicht erwähnt wurde ;) Damit allein wäre 
AES3/SPDIF schon recht auffällig geworden...

von Marvin (Gast)


Lesenswert?

Ich liebe Salami - luftgetrocknet und schön scheibchenweise. Yummy!

von Jobst M. (jobstens-de)


Lesenswert?

Es IST S/P-DIF.
Kenne ich seit 30 Jahren und erkenne es sofort.
Es sind auch alle Preamblen enthalten.
2 Kanäle.
Beide Samples stehen immer auf 2 und das Validity-Bit ist immer gesetzt.
Sonst sind keine Informationen enthalten. Wie schnell wurde das 
aufgezeichnet?

https://www.mikrocontroller.net/articles/S/PDIF

Gruß
Jobst

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.