Forum: Mikrocontroller und Digitale Elektronik Spannung und Stromfluss: Protokoll zwischen Steuerung und Endgerät auslesen und nachbauen


von Mike O. (stereo0219)


Lesenswert?

Hallo Zusammen,

möchte demnächst gerne ein Protokoll auslesen, welches zwischen dem 
Steuergerät meiner Musikanlage und dem Verstärker zum Einsatz kommt, um 
letzteren an/auszuschalten und einzustellen.

Bislang habe ich unter Anderem hier versucht zu recherchieren. Da die 
Anlage derzeit jedoch funktioniert und aufgrund ihres Alters (ca. Ende 
90er) keine Ersatzteile mehr existieren, möchte ich bezüglich Spannung 
und Stromfluss auf den Leitungen lieber auf nummer sicher gehen. Mit dem 
Reverse-Engineering habe ich bereits Erfahrungen gemacht, dabei handelte 
es sich allerdings um ein Funkprotokoll - da kann man nichts falsch 
anschließen und Chips durchbrennen :)

Die Daten werden mittels eines dreiadrigen Kabels übertragen. Eine 
Leitung ist GND, die zweite Leitung aktiviert den Verstärker durch 
Anlegen einer Spannung von 9V, die Dritte übertragt Daten und ist 
inaktiv bei 5V bzw. aktiv darunter.

Nach bisheriger Recherche könnte es sich bei dem Protokoll tatsächlich 
um ein gewöhnliches serielles Protokoll handeln.

Nun möchte ich einen Arduino in die Leitung einklinken, welcher zunächst 
die Datenleitung abhören soll. Ich vermute, dass der Eingangspin dabei 
auf Pull-Up geschaltet werden muss, sodass die Steuerung bei einer 
Übertragung den Spannungspegel unterhalb von 5V ziehen kann. Aber schon 
dabei stelle ich mir die Frage, ob die zusätzliche Last durch den 
Arduino die Chips auf der Sendeseite überlasten könnte.

Sobald das Protokoll ausgelesen ist, möchte ich den Arduino zum 
Immitieren der Steuerung verwenden. Da sowohl an Aktivierungs- wie auch 
Datenleitung im normalen Betrieb Spannung anliegt, stellt sich hierbei 
die Frage, wie sich sicherstellen lässt, dass der Stromfluss des 
Arduinos die Chips im Verstärker nicht überlastet.

Was die Datenleitung anbetrifft, kann der Arduino nur einen sehr 
geringen Stromfluss an seinen Pins bereitstellen und wenn der Verstärker 
auch einen Pull-Up verwendet, müsste man den Arduino eigentlich direkt 
verbinden können, oder?

Was die Aktivierungsleitung anbetrifft, so weiß ich nicht, ob auch eine 
geringere Spannung - idealerweise die 5V des Arduinos - ausreichen 
würden. Ich vermute jedoch dass es keine gute Idee wäre, diese Leitung 
einfach mit 9V aus einem Netzteil zu versorgen. Wie lässt sich 
herausfinden, welchen Widerstand man hier vorschalten muss, um den 
Stromfluss zu begrenzen? Und falls wirklich 9V erforderlich sind, kann 
man dann einen Step-Up-Wandler von 5V auf 9V hierfür verwenden?

Mein Messgerät kann auch Milliampere messen, allerdings weiß ich nicht 
wie präzise es ist. Lässt sich hier mehr erfahren, wenn ich es in den 
jeweiligen Leitungen zwischenschalte?

Sofern es keine juristischen Probleme bereitet kann ich gerne noch den 
Hersteller/Modellnamen beifügen.

Vielen Dank im Voraus,

Mit freundlichen Grüßen und ein schönes Wochenende,

Mike

von Route_66 H. (route_66)


Lesenswert?

Mike O. schrieb:
> möchte demnächst gerne ein Protokoll auslesen, welches zwischen dem
> Steuergerät meiner Musikanlage und dem Verstärker zum Einsatz kommt,

Sollen wir jetzt raten, welche geheime Musikanlage Du besitzt?

von Route_66 H. (route_66)


Lesenswert?

Mike O. schrieb:
> möchte demnächst gerne ein Protokoll auslesen, welches zwischen dem
> Steuergerät meiner Musikanlage und dem Verstärker zum Einsatz kommt,

Sollen wir jetzt raten, welche geheime Musikanlage Du besitzt?

Mike O. schrieb:
> Sofern es keine juristischen Probleme bereitet kann ich gerne noch den
> Hersteller/Modellnamen beifügen.

Ich darf garantiert weltweit kundtun, welches Radio bei mir steht!!!

von Mike O. (stereo0219)


Lesenswert?

Bei der Steuerung handelt es sich um ein (Geschützte Namen und Zeichen 
gehören Ihren jeweiligen Eigentümern) Bose Lifestyle Model 5 Music 
Center.

Unabhängig davon möchte ich gerne die allgemeine Herangehensweise für 
solche Situationen erlernen - vielleicht ist demnächst ja die 
Spülmaschine oder die Heizung dran :)

von Dietrich L. (dietrichl)


Lesenswert?

Mit einem Arduino an die Analyse herangehen heißt, dass du schon einiges 
über das Protokoll weißt. Wenn nicht, musst du zuerst den Ablauf des 
Signals und das Timing herausfinden.
Du kannst zwar der Arduino als mäßig leistungsfähigen Logic-Analyser 
programmieren (mit passender Anzeige), aber einfacher wäre der Einstieg
- mit einem "richtigen" Logig-Analyser (soll es billig als Gerät am PC 
geben)
- mit einen Oszi (notwendig, wenn man den genauen Spannungsverlauf nicht 
kennt).

von Stefan F. (Gast)


Lesenswert?

Mike O. schrieb:
> Geschützte Namen und Zeichen gehören Ihren jeweiligen Eigentümern

Sind wir schon so weit, dass Leute sich nicht mehr trauen, Namen zu 
benennen? Bist du Katholik (die haben damit angefangen)?

> Unabhängig davon möchte ich gerne die allgemeine Herangehensweise für
> solche Situationen erlernen

Besorge Dir einen "8 CH Logic Analyzer" für ca 10 Euro und zeichne damit 
erstmal das Signal auf.

Der nächste Schritt besteht darin, das Signal mit bekannten Signalen aus 
der Erfahrung abzugleichen. Ohne Erfahrung hast du keine Chance. Aber 
hier hast du Kontakt zu vielen Leuten, die aus Bildern einiges heraus 
lesen können.

von Mike O. (stereo0219)


Lesenswert?

Dietrich L. schrieb:
> Mit einem Arduino an die Analyse herangehen heißt, dass du schon einiges
> über das Protokoll weißt. Wenn nicht, musst du zuerst den Ablauf des
> Signals und das Timing herausfinden.
> Du kannst zwar der Arduino als mäßig leistungsfähigen Logic-Analyser
> programmieren (mit passender Anzeige), aber einfacher wäre der Einstieg
> - mit einem "richtigen" Logig-Analyser (soll es billig als Gerät am PC
> geben)
> - mit einen Oszi (notwendig, wenn man den genauen Spannungsverlauf nicht
> kennt).

Habe mir gerade ein paar Geräte auf Amazon angesehen, mir scheint sie 
unterscheiden sich in ihrer Abtastrate, ihrer zulässigen 
Eingangsspannung und in der Anzahl an Kanälen. Sind tatsächlich recht 
günstig, die Analyse wird dann so ähnlich ablaufen wie mit einem 
rtl-sdr?

Ich vermute, dass das hier vorliegende Protokoll recht simpel ist, da es 
sich um alte Technik handelt und lediglich eine Handvoll Kommandos 
übertragen werden müssen, daher der Ansatz direkt mit dem Arduino zu 
arbeiten.

Wenn ich mal vom gewöhnlichen Spannungsmesser ausgehe: Dieser hat einen 
sehr hohen Widerstand, damit es beim Messen nicht zu einem Kurzschluss 
kommt.

Möchte ich nun die Datenleitung abhören - quasi eine schnelle 
Spannungsmessung - so muss ich also dafür sorgen, dass auch hier ein 
hoher Widerstand im Spiel ist. Bei inaktiv hohem Pegel wäre dass dann 
ein Pull-Up, oder?

Möchte ich nun Daten bei abgeklemmter Steuerung senden, so stellt sich 
die Frage, ob der Hersteller den Stromfluss seitens des Verstärkers am 
Ende der Leitung begrenzt hat (der Schaltplan und ob irgendein Standard 
eingehalten wird ist unbekannt).

Tut er das, so wäre es dann ja prinzipiell egal wie viel mA der Arduino 
auf die Leitung schicken könnte, denn der hohe Widerstand am Verstärker 
würde diesen sachgerecht mindern. Tut er das nicht, so würde, ohne 
Widerstand beim Sender, zu viel Strom fließen, sodass Arduino und/oder 
Verstärker überlastet würden.

Oder ist es normal, dass bei dieser Art von Schaltung der Empfänger 
immer über einen entsprechenden Widerstand verfügt und man beim 
Einhalten der Signalspannung auf Seiten des Senders nicht weiter auf den 
Stromfluss achten muss?

Danke! :)

von Stefan F. (Gast)


Lesenswert?

Mike O. schrieb:
> Möchte ich nun die Datenleitung abhören - quasi eine schnelle
> Spannungsmessung - so muss ich also dafür sorgen, dass auch hier ein
> hoher Widerstand im Spiel ist. Bei inaktiv hohem Pegel wäre dass dann
> ein Pull-Up, oder?

Nein. Ich weiss auch gar nicht, wie ich das mit wenigen Worten 
korrigieren soll. Pull-Up Widerstände dienen einem völlig anderen Zweck.

Besorge Die einfach so einen Logik Analyzer: 
https://www.amazon.de/AZDelivery-%E2%AD%90%E2%AD%90%E2%AD%90%E2%AD%90%E2%AD%90-Logic-Analyzer-gratis/dp/B01MUFRHQ2/ref=sr_1_3?keywords=Logic+Analyzer&qid=1572630002&s=ce-de&sr=1-3

Der hat hochohmige Eingänge, die auf jeden Fall bis zu 5V vertragen 
(vielleicht auch mehr).

> Oder ist es normal, dass bei dieser Art von Schaltung der Empfänger

Normal ist da gar nichts. Jede Anlage funktioniert anders, es gibt 
diesbezüglich keinen allgemeinen Standard. Du wirst die bestehende 
Schaltung detailliert analysieren müssen, um sie zu modifizieren.

> nicht weiter auf den Stromfluss achten

ist der direkte Weg in die Hölle, damit macht du deine Anlage mit hoher 
Wahrscheinlichkeit ratz-fatz kaputt.

von Mike O. (stereo0219)


Lesenswert?

>> nicht weiter auf den Stromfluss achten

> ist der direkte Weg in die Hölle, damit macht du deine Anlage mit hoher
> Wahrscheinlichkeit ratz-fatz kaputt.

Vielen Dank für den Hinweis! Gut dass ich's nicht einfach probiert habe.

Habe eben den Analyser bestellt und werde in der nächsten Woche schauen 
was der so auffängt.

> Normal ist da gar nichts. Jede Anlage funktioniert anders, es gibt
> diesbezüglich keinen allgemeinen Standard. Du wirst die bestehende
> Schaltung detailliert analysieren müssen, um sie zu modifizieren.

Zum Verständnis: Wenn in einem Gerät bspw. eine standardisierte 
UART-Schnittstelle zum Einsatz kommt, dann kann ich diese (bei korrekter 
Spannung) mit einem anderen UART ansteuern. Handelt es sich jedoch nicht 
(oder nicht ganz) um eine standardisierte Schnittstelle, so muss die zu 
ersetzende Komponente ein exakter Nachbau des Originals sein. Eine 
Messung des Stromflusses wäre unzureichend, da nicht bekannt ist, auf 
welcher Seite der Leitung dieser gemindert wird, oder?

Habe eben noch den Subwoofer herausgeholt und das bestens versteckte 
Typenschild abgeknipst. Es handelt sich um einen Acoustimass 9 (AM9P) 
Verstärker und ich habe sogar den Schaltplan gefunden:

https://www.eserviceinfo.com/downloadsm/45671/Bose_AM9P.html

Der DIN-Stecker sieht aus wie in diesem Thread:

https://www.ecoustics.com/electronics/forum/home-audio/591057.html

Vielen Dank und schönes Wochenende,

Mike

von Sebastian S. (amateur)


Lesenswert?

Ich würde aus dem Problem zweie machen.
1. Rein passives "Lauschen".
   Notfalls ein C-MOS-Gatter zur Entkopplung zwischenschalten
   (vielleicht reicht ja auch ein einfacher FET) und versuchen zu
   "verstehen", was da abgeht. Hat‘s die Steuerung nicht
   zu allzu eilig, so sollte ein 08/15 Mikrokontroller (auch Dein
   Arduino) dafür ausreichen.
2. Erst dann ein dazu passendes Steuergerät entwickeln. Schritt eins
   kostet ja kein Vermögen.

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.