Forum: Mikrocontroller und Digitale Elektronik Was ist das für ein Protokoll?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Maximilian O. (creapetime)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
ich habe hier gerade ein sehr altes Autoradio liegen (Pioneer 
KEH9030SDK) und wollte versuchen den Bus vom Frontpanel auszulesen um 
Daten über die Tasteneingaben zu bekommen. Das Problem ist nur, dass ich 
dieses Protokoll noch nie so gesehen habe und die Chips von Pioneer 
selbst hergestellt wurden.
(Gelb ist SCK not und Blau ist SI)

Daher allein aus Interesse die Frage an euch: Wisst ihr was das für ein 
Busprotokoll ist bzw. wie es funktionieren könnte?

Vielen Dank im vorraus

von Sebastian R. (sebastian_r569)


Lesenswert?

SPI?

von Rainer W. (rawi)


Lesenswert?

Maximilian O. schrieb:
> (Gelb ist SCK not und Blau ist SI)

Es fehlt SO. Warum lässt du es nicht von einem Logikanalysator 
dekodieren?

> 20us.png

Für ein digitales Signal sieht das nicht gut aus

: Bearbeitet durch User
von Maximilian O. (creapetime)


Lesenswert?

Das Radio gab es anscheinend schon 1986, ein Jahr bevor SPI erfunden 
wurde.

Man sieht aber, dass es eigentlich getrennte SI und SO Leitungen gibt, 
welche zusammen geschlossen wurden. Man könnte also denken, dass es sich 
einfach um ein syncrones serielles Protokoll handelt.
Allerdings sieht es eher so aus, als ob die Daten eher über die 
Pulsweite übertragen werden. Diese 8 Bit am Anfang sind nämlich immer 
gleich, und das einzige was variiert ist die länge des Blocks danach.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Maximilian O. schrieb:
> Das Radio gab es anscheinend schon 1986, ein Jahr bevor SPI erfunden
> wurde.

I²C gibt es seit 82, aber das Format passt nicht so ganz.

Rainer W. schrieb:
> Für ein digitales Signal sieht das nicht gut aus

Die runden steigenden Flanken wären recht typisch für I²C...

von Rainer W. (rawi)


Lesenswert?

Niklas G. schrieb:
> Die runden steigenden Flanken wären recht typisch für I²C...
Gut sieht das trotzdem nicht aus, auch wenn I2C damit vielleicht gerade 
noch klar käme.

Eine Signalbezeichnung "SI" wäre für I²C allerdings ausgesprochen 
ungewöhnlich. Schon als Philips den I²C-Bus 1982 eingeführt hat, hießen 
die Signals SCL und SDA. Außerdem reicht für I²C die Anzahl der 
Clock-Pulse nicht aus.

: Bearbeitet durch User
von Maximilian O. (creapetime)


Angehängte Dateien:

Lesenswert?

Ja SPI und I2C würde ich auch ausschließen. Warscheinlich ist es 
wirklich etwas proprietäres, aber dennoch wüsste ich gerne wie es 
funktioniert.
Jetzt mal mit LA:
D0 SCK not
D1 SO
D2 SI

Wie gesagt zu beachten ist das SI durch die Schaltung Low wird wenn SO 
High ist.

Ich habe in Idle 3 mal markiert was ich mit der Pulsweite meine.
Außerdem habe ich mal eine Reihe aufgenommen, die zeigt was passiert, 
wenn ich einmal die Plus taste drücke.
Es ist bei dem Knopf immer die selbe Reihe, nur unterschiedliche 
zoomstufen.

von Joe F. (easylife)


Lesenswert?

Ich vermute das ist einfach ein synchrones, serielles Protokoll bei dem 
die beiden Richtungen offenbar unterschiedliche Clock-Frequenzen 
benutzen (grob geschätzt ca. 15 kHz und 150 kHz).

Da in beide Richtungen übertragen wird, ist anzunehmen, dass sowohl die 
Clock- als auch die Datenleitung irgendwo einen Pull-up haben, und von 
den beiden Busteilnehmern auf low gezogen werden können. Im Schaltplan 
sieht man auch die das Senden einen entsprechenden Transistor an der 
Datenleitung hängen.

Das sehr simple Protolkoll scheint immer damit zu beginnen und 
synchronisiert zu werden, dass eine Seite die Datenleitung auf low zieht 
und danach die Übertragung von 8 Bit mit auf der langsameren Frequenz 
stattfindet (SPI, Datenübernahme bei steigender CLK Flanke).

Nachdem 8 Bit in eine Richtung übertragen wurden, wartet die Gegenseite 
vermutlich einfach bis die Datenleitung wieder "losgelassen" wird (high 
wird), bevor sie eine Antwort zurückschickt.
Das sind dann ebenfalls wieder 8 Bit, SPI, ebenfalls auf steigende 
Flanke, bei der ca. 10-fach höheren Clock-Frequenz.

Und dann geht das Spiel wieder von vorne los.

Man kann an den beiden leicht unterschiedlichen Low-Pegeln ganz gut 
erkennen, dass es zwei unterschiedliche Stellen sind, die den Bus 
abwechselnd kontrollieren.
Deswegen ist es immer gut nicht nur einen Logic-Analyzer 
draufzuschmeissen, sondern sich das Ganze auch erstmal analog 
anzugucken, so wie du es gemacht hast.
Dass die Flanken bei der schnelleren Clock so rund sind, kann übrigens 
auch an der Kapazität deines Tastkopfes liegen. Stelle mal auf "x10" um, 
wenn es das gibt.

PS: weil jemand sagte SPI gäbe es erst seit 1986, Schieberegister gab es 
schon deutlich früher und das Protokoll entspricht dem von SPI.

: Bearbeitet durch User
von Andreas M. (amesser)


Lesenswert?

Rainer W. schrieb:
> Gut sieht das trotzdem nicht aus, auch wenn I2C damit vielleicht gerade
> noch klar käme.

Warum? Schau Dir mal das Signal eines mit 100MHz betrieben Quad-SPI 
Flash an. Das sieht genau so aus, da gibt man sich sogar extra Mühe das 
gerade eben keine harten Schaltflanken da sind, EMV und so...

von Rainer W. (rawi)


Lesenswert?

Andreas M. schrieb:
> Schau Dir mal das Signal eines mit 100MHz betrieben Quad-SPI
> Flash an.

Hier geht es um 150kHz Clock. Bei I²C im Fast-Mode ist lt. Specs eine 
maximale Fall- bzw. Rise-Time von 300ns zulässig.

von Dirk E. (dirk_1980)


Lesenswert?

Schau dir mal das philips Dsa Protokoll an.
Kann so was in der Art sein.

Ich habe jetzt nicht alle Bilder angeschaut, also kann sein das es nicht 
passt.

von Maximilian O. (creapetime)


Lesenswert?

Danke an alle Beiträge und Hinweise, vermutlich ist es aber wirklich so 
wie Joe F. es erklärt hat. Vielen Dank dafür!

Ich werde mich dann jetzt erstmal dran machen das ganze noch weiter 
auszulesen und würde den Thread noch gerne kurz offen lassen falls dabei 
noch Fragen aufkommen.

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.