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!
Moin,
Ohne jetzt da Kaestchen gezaehlt zu haben: Vielleicht ists ein
Protokoll, wie's IR-Fernbedienungen verwenden. Also vielleicht RC5 oder
aehnliches?
Gruss
WK
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.
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.
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
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.
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.
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 :-)
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.
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.
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).
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!
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?
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?
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.
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!!!
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...
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