Die Grundidee der Steuerung bei DB0QI liegt in der Verwendung von vielen verschiedenen
Teilen die sowohl Steuern und Schalten, als auch gesteuert und geschaltet werden
können. Als ideale Busstruktur kristallisierte sich der I²C-Bus heraus. Es gibt
viele verschiedene fertige Bausteine, die eben über diesen Bus bedient werden
können. Der I²C-Bus ist Multi-Master-fähig, was bedeutet, es können beliebig
viele Steuergeräte andere Geräte über den Bus bedienen, nicht gleichzeitig aber
nacheinander, durcheinander, wie es nun gerade notwendig ist. Der der als erstes
auf den Bus zugreift hat dann in dem Moment die Hoheit über den Bus.
Problem: Die Adressierung der fertigen Bausteine/Geräte, z.B. ein PLL-Baustein,
ist begrenzt. Konkret sind es maximal 4-7 Adressen die ein Baustein annehmen
kann. Das gibt bei z.B. 8 gleichen Tunern ein Problem.
Abhilfe schafft ein "Unterbus-System" Es gibt Bausteine die einen
Hauptbus auf 8 Unterbusse verteilen können, somit ist dieses Problem kein solches
mehr, im Gegenteil, es verschafft zusätzliche Möglichkeiten Aufgaben zu verteilen
und Adressresourcen zu sparen. Eine beliebige Kaskadierung ist somit möglich,
und eine schier unbegrenzter Ausbau ist realisierbar. Wie zum Beispiel 32 Tuner
aufgeteilt in 4 19" Einschübe die jeweils 8 Tuner, also Empfänger tragen,
wobei jeder Tuner die gleiche I²C-Bus Adresse hat. Angesprochen wird der einzelne
Tuner über die Adresse des Multischalters der vor ihm sitzt und der Busnummer
des Multischalters. Hierbei existieren also 4 Multischalter. 8 Adressen kann
ein Multischalter annehmen, somit bleiben noch 4 Adressen übrig für z.B.: 32
Sender ..... spinnen wir weiter, sollte das nicht reichen wird einfach ein Multischalter
vorgesetzt ... schon hat man 8x8Busse zur Verfügung und nur 2 Adressen der Multischalter
benutzt. Eine Adresse des Multischalters am Hauptbus, und eine Adresse für 8
Multischalter am jeweiligen "Unterbus" ... nur mal so als Hausnummer
der Dimensionen die erreicht werden können ohne unüberschaubar zu bleiben:
Bei DB0QI gibt es verschiedene Einzelgeräte die nur einmal vorhanden sind. Diese sind direkt am Hauptbus angeschlossen:
Hier eine Übersicht:
Geräte die mehrfach vorhanden sind wie Sender, Empfänger und Temperaturfühler verschwinden quasi hinter einem oder mehreren Multischaltern, die diesen Bus nur bei Bedarf nach außen verbinden. Somit ist es möglich je Multischalter bis zu 8 Geräte mit gleicher Adresse bereit zu stellen.
Die Möglichkeit eben mit diesen I²C-Multischaltern sind doch sehr vielfältig. Die tatsächliche Realisierung ist dann nur die erste Ausbaustufe, diese genügt den Ansprüchen bei DB0QI. Vorgesehen sind grundsätzlich 8 Empfänger und 8 Sender, die jeweils in einem Einschub beheimatet sind. Und nur hier ist jeweils ein PCA8584, eine 1x8 I²C-Matrix verbaut. Der Baustein befindet sich Jeweils in der Einschubsteuerung des Sender bzw. Empfänger-19"-Trägers. Damit lassen sich nun für alle Empfänger mit Steuerung bzw. Sender mit Steuerung, immer die gleichen I²C-Bus-Adressen verwenden.
Hier noch eine Übersicht im PDF-Format
Die Einschubsteuerung ist inzwischen für RX-Träger und TX-Träger gleich.
Im Bild ist ganz rechts zu sehen: die Einschubsteuerung
Anfangs wurden die Steueraufgaben für RX TX und Einschubsteuerung von Pic-Prozessoren erledigt. Im Laufe der Zeit entstanden immer Aufgaben die mit Atmel Prozessoren erledigt worden sind, genauer ATMega8. Der Bascom Compiler ist erschwinglicher als ein Basic-Compiler für Pic-Prozessoren, und Basic ist für viele Einsteiger die Programmiersprache. Somit entstand der Wunsch alle Prozessoren im Laufe der Zeit auf ATMegas umzusetzen. ATMega8, 48, 88,169, 328 sind bis auf zwei Ausnahmen die Prozessoren der Wahl geworden. Auch eine I²C-Bus Multimaster Bibliothek fand sich im Internet. Damit war der Weg frei den Pic16F88 mit den ATMegas zu ersetzen.
Inzwischen sind die Möglichkeiten der Einschubsteuerung ziemlich massiv angewachsen,
daß nicht nur die Sender und Empfänger bedient werden können sondern auch die
Rufzeichen für die OSDs und verschiedene Schaltvorgänge über Busexpander ausgeführt
werden können. Der Kniff der Einschubsteuerung ist, daß diese das Gehirn des
19"-Trägers ist. Es befinden sich an der 1x8 I²C-Kreuzschiene 8 FRAMs in
denen die Daten gespeichert sind, wie sich der entsprechende RX oder TX einzustellen
hat. Die Einschubsteuerung selbst hat nur die Aufgabe die einzelnen Bedienfelder
der 8 Sender/Empfänger zu ersetzen und der I²C-Kreuzschiene eine Adresse
zu geben. Die an den 8 I²C-Bussen hängenden RXe/TXe holen sich ihre aktuellen
Daten aus dem jeweiligen FRAM, und überprüfen zyklisch ob eine Änderung der
Daten vorliegt.
Sollte einer der 8 Unterbusse mit einer oder beiden Leitungen (SCL SDA) aufgrund
eines Fehlers dauerhaft auf "0" liegen, und den Hauptbus ebenfalls
auf "0" legen prüft der Prozessor in der Einschubsteuerung ob dies
der Fall ist und schaltet den Unterbus vom Hauptbus weg. Die passiert über eine
Resetleitung vom Prozessor zum I²C-Matrix-IC.
Hier sind die Frams und der PCF9648 schön zu sehen:
Sollte der 19" Träger mal ohne Spannungsversorgung sein wird der I²C-Hauptbus mittels einem Relais freigeschaltet, damit der I²C-Bus der ja mit anderen 19"-Trägern verbunden ist nicht "tot" gelegt wird. Durch die Anzeige ist die Frontplatte etwas breiter, und damit ist nun noch Platz hinter der Anzeige noch zusätzliche Funktionen zu verstauen. Konkret steckt dort ein Bus-Expander, der entweder zum Schalten von 8 Leitungen verwendet werden kann oder beim RX-Baugruppen-Träger als Zustandsmelder der Empfänger Video-Rauschsperren. Etwas Platz ist dort noch ... vorgesehen vielleicht noch für ein extra 5V Schaltnetzteil oder oder ... :-)
Die Daten in den Frams können von verschiedenen Komponenten verändert werden. Hierzu zählen, die Einschubsteuerung selbst, die Sync-Erkennung (Ablauf-Prozessor) sowie verschiedene Steuerungen über DTMF, oder über einen Wandler von RS232-I²C (dahinter, kann ein PC/Laptop über direktes Kabel, RS232-DSTAR
In einen Träger passen mit Einschubsteuerung 8 Senderplatinen hinein. Auf der Platine sind Steuersender, Basisbandaufbereitung, verschiedene Relais und der Prozessor der für deren Einstellung zuständig ist. Egal wie die Baugruppe bestückt ist, jeder Steckplatz wird mit den Daten aus dem FRAM versorgt, und dementsprechend stellt nach Abfrage der Daten der Prozessor die Komponenten ein. Diese Komponenten sollten dann zum verwendeten Steckplatz passen.
Die Empfänger hat sie zwischenzeitlich ein paar Mal geändert, ist jetzt PLL-stabilisiert, sowohl die HF als auch der NF-Träger, ebenso ist die Videopolarität ist fernsteuerbar. Auf der Steuerplatine befindet sich der Prozessor der diese Aufgaben erledigt. Weiter sind Verstärker für Video und Audio vorhanden, um an der Frontplatte auch das Video messen zu können. Die Feldstärke sowie Audio-Pegel wird gemessen und von einem weiteren Prozessor an das OSD-Modul weitergereicht. Der Steuerprozessor findet seine Daten im FRAM, der Prozessor der das OSD-Modul anspricht wird direkt über I²C angesprochen.
Diese Karte ist eine sehr universelle Karte.
Hierauf befinden sich vielerlei Prozessoren die unterschiedliche Aufgaben erfüllen:
|
Mehrere Karten können problemlos gleichzeitig verwendet werden.
Diese kann unterschiedlich ausgeführt sein. Grundlegend ist aber eine Kreuzschiene von Maxim verbaut mit 16 Ausgängen und entweder 32 oder 16 Eingängen. Sie wird mit Drehgeber und I²C bedient.
Dieser existiert auch in unterschiedlichen Varianten und Generationen. hat meist 16 Ein- und Ausgänge. Er wird mit Drehgeber + Taste und I²C bedient.
Es gibt verschiedene Platinen mit unterschiedlichen Relais und Funktionen. Diese können Spannungsversorgungen, Steckdosenleisten, etc. schalten, und auch als Taster für Reset-Funktionen dienen.
Weitere verwendete Baugruppen sind verschiedene SD-Karten-Player, verschiedene digitale DVB-S Empfänger, verschiedene digitale Sender, Netzteile, und verschiedene Bild-in-Bild-Generatoren. Diese werden ebenso über Wandler-Prozessoren bedient, die vom I²C-Bus aus bedient werden.
die Steuersoftware dazu nennt sich QIST und bietet allerlei Möglichkeiten den I²C-Bus zu bedienen.
73 de Tomtom