[gc] [tt]
Login
Sitemap Guestbook Mailform
Kai Fett says: schnisM!
Location: schnisM.net > Das schnism.Net-System > PioCT

PioCT

Die Ansteuerung der Stereo-Anlage

von Kai Fettmit Unterstützung der Fa. Pioneer electronics

Teil 1 - Understanding

Alle neueren Geräte von Pioneer sind über einengemeinsamen Bus verbunden. Der eigentliche Sinn davon ist es, daßman nur ein Gerät mit einer Fernbedienung benötigt, um seinegesamte Anlage zu steuern. So empfängt zum Beispiel der Receiver vonder Fernbedienung den Befehl "CD Play". Diesen Befehl gibt er auf den Bus,alle Geräte ignorieren ihn, nur der CD-Player aktiviert halt das entsprechendeKommando.

Der Bus ist folgendermaßen realisiert: Alle Gerätewerden über ein 3,5"-Klinkenstecker-Kabel untereinander verbunden,wobei alle Geräte parallel am Bus hängen. Der Bus wird standardmäßigvom Empfänger (im Beispiel der Receiver) auf einem 5V-Pegel gehalten.Zum Senden eines Kommandos wird er einfach getaktet auf 0V heruntergezogen.

Das schöne ist, daß die Pullup-Widerständeschön hoch sind, so daß man zum Versenden eigener Codes denBus einfach nur getaktet auf Masse legen muß. Das kann zum Beispielam Ausgang des letzten Gerätes am Bus geschehen, oder am Eingang desVerstärkers.

Das Protokoll ist schnell erklärt:

Eine Liste der wichtigsten Geräte-IDs:

A1Tapedeck
A2CD-Player
A4Tuner
A5Verstärker
A8LD-Spieler
ABVideo-Recorder

Eine Liste der wichtigsten Codes:

17Play
18Pause
16Stop
10Vorwärts
11Rückwärts
1CPower

Teil 2 - Die Hardware

Wie schon oben geschrieben, benötigt man im Prinzipnur eine Schaltung, die den Bus kurzfristig auf 0V zieht. Um nun aber auchGeräte ansteuern zu können, die an keinem aktiven SR-Empfängerhängen, sollte man dafür Sorge tragen, daß der Bus auf5V-Pegel gehalten wird. Ferner muß man noch den PC und die Anlageauf das gleiche Massen-Niveau bringen, falls dieses noch nicht durch Soundblasteroder Schutzleiter der Fall sein sollte. Eine doppelte Massenverbindungsollte man hingegen vermeiden, da man sich sonst sehr schönes Brummenauf den Audio-Leitungen einfängt, Stichwort Massenschleife.

Als Schnittstelle mit dem Computer empfiehlt sich der Parallel-Port,da dieser zum einen sehr leicht anzusprechen ist, und zum anderen bereitsdie benötigten Pegel zur Verfügung stellt.

Zum "Kurzschließen" des Busses nimmt man einen handelsüblichenNPN-Transistor, Emmiter an Erde, Kollektor an den Bus, Basis überSpannungsteiler an Erde bzw. D0 der Schnittstelle. Ich verwende zum Beispieleinen BC546, der gerade vorrätig war.

Damit ergibt sich folgende kleine Schaltung:

die SchaltungAbb.1: Die Schaltung

Dabei ist SR der innere Pol des Klinkensteckers zur Anlage.WICHTIG: Der äussere Pol ist keine Masse, sondern dient manchen Gerätenfür weitere Kommunikationsaufgaben. Man darf ihn also keinesfallsals Masse mißbrauchen. Diese muß man also am Gehäuse oderan einer freien Cinch-Buchse der Anlage abgreifen. Falls Ihr die Pinbelegungder parallelen Schnitstelle nicht auswendig wissen solltet (warum interessiertIhr Euch dann überhaupt für solche Texte hier?!), hier die relevantenPins:

PinBedeutung
2D0
3D1
18-25GND

Wie man sehen kann, mißbrauche ich Datenbit 1 zuraktiven Busspeisung, so daß man diese bequem im Program abschaltenkann, wenn sie stören sollte.

Wenn Du von obigem nichts verstanden haben solltest, undder Schaltplan für Dich Ähnlichkeit mit einem Strickmuster ausder Zeitschrift Deiner Oma hat, für Dich aber trotzdem die Welt untergehensollte, wenn Du Deine Anlage nicht in Zukunft vom Rechner aus steuern kannst,dann wende Dich vertrauensvoll an mich,wenn ich noch etwas Zeit habe, bastel ich Dir das Interface für Material+Porto+TüteGummibärchen zusammen.

Teil 3 - Die Software

Nun kommt es zum eigentlichen kribbeligen Akt: Das Interfacewill angesteuert sein. Und zwar teilweise für 0,35 ms, wobei eineToleranz von 5% eingehalten werden sollte. Die PC-Hardware stellt einemallerdings nur Zeitinformationen mit einer Auflösung von 54,9 ms zurVerfügung. Ich verwende daher für die Software eine Zeitschleife,die einfach n-mal eine Addition durchführt. Dadurch ergeben sich zweiKonsequenzen:

  1. Das n muß für jeden Computer von Hand angepaßt werden.
  2. Bei Multitasking kann die Zeitschleife mal schneller, mal langsamer abgearbeitetwerden, weshalb es auch hier zu Toleranz-Überschreitungen kommen kann.

Die Linux-Software kennt diese Probleme nicht, da es unter Linux einenwunderbaren RTC-Support gibt. Aber auch hier gilt: Linux ist keinRealtime-OS, so da˜ man das Tool zum einen mit root-Rechten laufen lassenmu˜ und zum anderen bei vielbesch„ftigten Systemen einen sehr niedrigennice-Value ben÷tigt.

Die Software liegt in mehreren Varianten vor:

Die Doku ist etwas dürftig, also müßt Ihr schon einwenig im Code lesen...

So, viel Spaß mit dem ganzen, und WIEDER EINE STUFE WEITER aufder Leiter zum Hightech-Freak!