Was ist das für ein Protokoll?

#7825175
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

Angehängte Dateien:
#7825209
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.

#7825282
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.

#7825322
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.

Angehängte Dateien:
#7825324
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren