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.
Leitungscodes gibt es wie Sand am Meer. Kuck da: https://de.wikipedia.org/wiki/Kategorie:Leitungscode
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.
:
Bearbeitet durch User
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).
Das ist S/PDIF oder AES3, dein geheimes Gerät also vermutlich irgendein Audiogerät.
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?
Trond schrieb: > Oder habe ich da was übersehen? Ja. Dass der BMC bei SPDIF zum Markieren des Headers (Preambel) verletzt wird. Gruss WK
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.
Riecht nach AES3 (balanced), insbesondere wenn im Gerät eine XLR-Buchse dafür verbaut ist.
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...
Ich liebe Salami - luftgetrocknet und schön scheibchenweise. Yummy!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.