-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft das Gebiet der Audio-Video-Systeme.
Die Erfindung bezieht sich insbesondere auf die Vernetzung einer
Anzahl von elektronischen Geräten
zum Aufbau eines Audio-Video-Systems. In einer ihrer Verkörperungen
stellt die Erfindung ein Audio-/Video-Heimnetz mit 2-Schicht-Gerätesteuerung
dar.
-
HINTERGRUND
DER ERFINDUNG
-
Eine
typische Anlage mit audiovisuellen Heimgeräten umfaßt eine Anzahl von Komponenten, z.B.
einen Rundfunkempfänger,
einen CD-Player, ein Lautsprecherpaar, einen Fernseher, einen Videorekorder,
ein Bandgerät
usw.. Alle diese Komponenten sind über einen Satz von Leitungen
miteinander verbunden. Eine der Komponenten bildet üblicherweise die
zentrale Komponente des audiovisuellen Heimsystems. In der Regel
ist dies der Rundfunkempfänger
oder der Tuner. Der Tuner besitzt eine Anzahl von spezifischen Eingängen für den Anschluß der anderen
Komponenten. Dazu weist der Tuner eine entsprechende Zahl von Steuertasten
und Steuerschaltern auf, die einen begrenzten Grad an Steuerbarkeit und
Interoperabilität
für die
Komponenten ermöglichen.
Die Steuertasten und Steuerschalter befinden sich normalerweise
an der Frontseite des Tuners. In vielen Fällen sind einige oder alle
diese Tasten und Schalter an einer Handfernsteuereinheit dupliziert. Der
Benutzer steuert das audiovisuelle Heimsystem durch Betätigen der
Tasten und Schalter an der Frontseite des Tuners oder alternativ
durch Betätigen der
Tasten der Handfernsteuereinheit.
-
Dieses
herkömmliche
Paradigma für
audiovisuelle Heimsysteme wurde sehr populär. Da elektronische Consumergeräte immer
leistungsfähiger
und komplexer werden, ist die Nachfrage nach den neuesten und leistungsfähigsten
Geräten
größer geworden.
Wenn neue Geräte
auf den Markt kommen und populär
werden, werden diese Geräte
von den Konsumenten gekauft und an ihre audiovisuellen Heimsysteme "angeschlossen". Im allgemeinen
sind die neuesten und komplexesten dieser Geräte (z.B. digitale Tonbandgeräte, DVD-Player, digitale
Camcorder und dgl.) recht teuer. Wenn ein Konsument ein neues Gerät erwirbt,
wird das neue Gerät
meistens zusammen mit den bereits vorhandenen älteren Geräten (z.B. Kassettenrekorder,
CD-Player und dgl.) in das System eingesteckt. Das neue Gerät wird in
einen freien Eingang an der Rückseite
des Tuners oder eines mit dem Tuner verbundenen anderen Geräts eingesteckt.
Der Konsument (z.B. der Benutzer) steuert das neue Gerät über die
Steuertasten an dem Tuner, über
die Steuertasten und Steuerschalter an der Frontseite des neuen
Geräts
selbst oder über
eine ganz neue separate Fernsteuereinheit für das neue Gerät.
-
Da
die Zahl neuer elektronischer Consumergeräte für audiovisuelle Heimsysteme
größer geworden
ist und die technische Perfektion und die Fähigkeiten dieser Geräte zugenommen
haben, entstehen mit dem herkömmlichen
Paradigma eine Anzahl von Problemen. Eines dieser Probleme ist die
Inkompatibilität
zwischen Geräten
in dem audiovisuellen Heimsystem. Elektronische Consumergeräte eines
Herstellers werden häufig
anders mit einem audiovisuellen System verbunden als ähnliche
Geräte
eines anderen Herstellers. So kann es vorkommen, daß ein von
einem Hersteller hergestellter Tuner mit einem von einem anderen
Hersteller hergestellten Fernseher nicht richtig zusammenpaßt.
-
Wenn
ein Gerät
sehr viel neuer ist als ein anderes Gerät, können darüber hinaus weitere Inkompatibilitäten existieren.
So kann ein neues Gerät Hardware
aufweisen (z.B. spezifische Eingänge
und Ausgänge),
die ausgeklügeltere
Fernsteuerfunktionen ermöglicht.
Dabei kann es vorkommen, daß diese
Hardware nicht mit älteren
Geräten
innerhalb des Systems benutzt werden kann. Oder es kann vorkommen,
daß ältere Tuner
nicht über
geeignete Eingänge
für einige
neuere Geräte
(z.B. Minidisc-Player, Videorekorder usw.) verfügen oder nicht genug Eingänge für alle Geräte des Systems
haben.
-
Ein
anderes Problem ist der Mangel an funktioneller Unterstützung für unterschiedliche
Geräte innerhalb
eines audiovisuellen Systems. So kann es z.B. vorkommen, daß ein Fernseher
fortschrittliche Tonformate (z.B. Surroundklang, Stereo usw.) unterstützen kann,
daß die
Vorteile dieser fortschrittlichen Tonformate jedoch verlorengehen
können,
wenn diese Funktionalität
von einem älteren
Tuner, der weniger leistungsfähig
ist, nicht untertützt
wird. Ein anderes Problem besteht in der ausufernden Zunahme von
Steuerungen für
die neuen und die anderen Geräte
innerhalb des audiovisuellen Heimsystems. So können z.B. ähnliche Geräte von verschiedenen Herstellern
jeweils unterschiedliche Steuertasten- und Steuerschalterformate
für die
Erfüllung ähnlicher
Aufgaben haben (Einstellen der Uhr an einem Videorekorder, Programmieren
eines Videorekorders für
die Aufzeichnung eines späteren
Programms und dgl.). Außerdem
führt jedes
neue Gerät,
das mit dem audiovisuellen System verbunden wird, häufig zu
einer anderen dedizierten Fernsteuereinheit, wobei der Benutzer
die Übersicht
behalten und deren Bedienung erlernen muß.
-
Die
Literaturstelle Child S.: "Intelligent
home technology looks for leverage from related markets" Computer Design,
Band 36, Nr. 12, 1. Dezember 1997, Seiten 85 bis 87, offenbart Heim-Technologie.
-
Während das
Auftauchen von Vernetzungs- und Schnittstellentechnologie (z.B.
der serielle IEEE-1394-Kommunikationsbus und die weit verbreitete
Anwendung von digitalen Systemen) Aussichten zur Lösung dieser
Probleme bietet, gibt es noch nicht kohärente, offene, erweiterbare
Architektur, die intelligente, selbstkonfigurierende, leicht erweiterbare Geräte oder
AV-Systeme zur Verfügung
stellen kann. Während
z.B. verschiedene Lösungen
die Benutzung von IEEE 1394 als Basis eines AV-Systems involvieren,
gibt es keine Lösung,
die die Erweiterbarkeit des AV-Systems über seine ganze Lebensdauer vorsieht,
wenn neue Geräte
mit noch unbekannten Fähigkeiten
und Merkmale hinzugefügt
werden. Keines dieser Systeme gewährleistet, daß mit allen
Geräten
kommuniziert werden kann und daß der
Benutzer sie steuern und genießen
kann.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es
wird also eine neue Architektur für ein audiovisuelles Heimsystem
gefordert, das die Interoperabilitäts- und Funktionalitätsprobleme
des herkömmlichen
Systems korrigiert. Es wird neue Architektur für ein offenes, interoperables
audiovisuelles System für
Geräte
innerhalb eines Heimnetzes gefordert. Es wird eine Architektur gefordert,
die es ermöglicht,
daß Geräte eines
beliebigen Herstellers nahtlos mit einem audiovisuellen Heimsystem
funktionieren. Es wird eine Architektur gefordert, die erweiterbar
ist und leicht modifiziert und fortentwickelt werden kann, wenn
die Markterfordernisse und die Technologie sich ändern.
-
Die
vorliegende Erfindung sieht ein audiovisuelles (AV)-Heimnetz vor,
das eine offene Architektur für
miteinander operierende elektronische Consumergeräte (CE-Geräte) in einem
Heimnetz definiert. Die Interoperabilitätsaspekte der vorliegenden
Erfindung definieren ein Architekturmodell, das es CE-Geräten eines
Herstellers ermöglicht,
innerhalb des AV-Heimsystems des Benutzers nahtlos zu interoperieren
und zu funktionieren. Das System gemäß der Erfindung enthält eine
Kombination aus einem Basissatz von generischen Gerätesteuerungen
mit einem Verfahren zur Erweiterung eines Basis-Steuerprotokolls,
wenn neue Merkmale und neue CE-Geräte in das AV-Heimnetz integriert
werden. Dadurch ist die Architektur der vorliegenden Erfindung erweiterbar
und kann leicht modifiziert und fortentwickelt werden, wenn die
Markterfordernisse und die Technologie sich ändern.
-
Für die Implementierung
der obigen Merkmale umfaßt
die vorliegende Erfindung eine Architektur, die es ermöglicht,
das neu angeschlossene Gerät abzufragen.
Unter Verwendung der Abfrageergebnisse wird eine softwarebasierte
Abstraktion des Geräts erzeugt
und anderen Elementen in dem Netz zur Verfügung gestellt. Die Software-Abstraktion
wird als Gerätesteuermodul
bezeichnet. Das Gerätesteuermodul
liefert einen vorbestimmten stan dardisierten Satz an Interoperabilität, Funktionalität und Steuerschnittstellen
für das
Gerät.
Das CE-Gerät
wird mit dem Heimnetz verbunden und kommuniziert mit diesem über ein
Gerätesteuermodul.
Jedes CE-Gerät
in dem AV-Heimnetz besitzt ein entsprechendes Gerätesteuermodul
(DCM) [device control modul]. Das DCM gemäß vorliegender Erfindung sieht
auch ein Anwendungsprogrammier-Interface (API) vor, um es anderen
Anwendungen zu ermöglichen,
auf ein neu angeschlossenes CE-Gerät zuzugreifen und dieses zu
handhaben.
-
Wenn
neue Geräte
hinzugefügt
werden, deren Fähigkeiten
und Merkmale anderen Geräten nicht
oder nur teilweise bekannt sind, wird durch die DCMs der vorliegenden
Erfindung über
die Lebensdauer des AV-Systems, ein Mechanismus bereitgestellt,
der gewährleistet,
daß mit
allen Geräten
auf einer minimalen Basisschicht kommuniziert und diese Geräte gesteuert
werden können
und dann, wo dies möglich
ist, eine bessere Abstraktion des neuen Geräts erzeugt wird, wenn mehr
Informationen über
das Gerät
gewonnen werden.
-
Wenn
ein neues Gerät
an ein AV-Heimsystem angeschlossen wird, wird gemäß einem
Ausführungsbeispiel
der Erfindung automatisch ein (als Schicht 1 bezeichnetes) Vorgabe-DCM für das neue Gerät generiert.
Ein Gerätemanager
(z.B. ein softwarebasiertes Steuerobjekt), der auf einem der Geräte in dem
AV-System ausgeführt
wird, ermittelt automatisch die Basiseigenschaften des Geräts, kategorisiert
das Gerät
in eine Klasse (die z.B. gemeinsamen Merkmale aufweist) und initialisiert
ein (dieser Geräteklasse
entsprechendes) generisches oder ein Vorgabe-DCM für das Gerät. Dadurch
stellt das Schicht-1-DCM der vorliegenden Erfindung sicher, daß das System
unabhängig
davon, welches Gerät hinzugefügt wird,
in der Lage ist, eine Basisschicht-(z.B. eine Schicht-1)-Gerätesteuerung
zu erzeugen und die Fähigkeiten
des Geräts
für andere Teile
des Systems und den Benutzer verfügbar zu machen.
-
Wenn
sich während
dieser Initialisierungsphase herausstellt, daß das Gerät einen Pseudocode oder einen
Verweis zu einem Pseudocode enthält, der
ein fähigeres
oder höherentwickeltes
DCM für das
Gerät implementiert,
ruft der Gerätemanager
den Pseudocode ab und initialisiert auf der Basis des Pseudocodes
ein DCM. Dieses wird als Schicht-2-DCM bezeichnet. Da in diesem
Fall ein solcher Pseudocode typischerweise von dem Gerätehersteller
zur Verfügung
gestellt wird und deshalb mit der Hardware des Geräts enger
vertraut ist, kann er eine bessere Software-Abstraktion der Fähigkeiten des
Geräts
anbieten. In Abhängigkeit
von den in dem AV-System enthaltenen Geräten wird eines der DCMs, oder
es werden beide DCMs initialisiert und instantiiert.
-
Indem
das System gemäß der Erfindung
sowohl das Schicht-1-DCM als auch das Schicht-2-DCM der vorliegenden Erfindung verfügbar macht,
stellt es sicher, daß beliebige
neue Geräte,
die zu dem einen Netz hinzugefügt
werden, für Anwendungen,
Systemsoftware und den Benutzer nahtlos und einfach zur Verfügung gestellt
werden. Indem man so verfährt,
liefert die vorliegende Erfindung einen extrem flexiblen Mechanismus,
der sicherstellt, daß neue
Geräte
nicht nur Teil des AV-Systems werden, sondern daß sie auf auch in Abhängigkeit
von den Fähigkeiten
der anderen Geräte
in dem AV-System auf unterschiedliche Weise zugegriffen werden kann.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Anhand
der Figuren der anliegenden Zeichnungen, in denen für ähnliche
Elemente gleiche Bezugszeichen benutzt werden, wird die Erfindung
beispielhaft erläutert,
ohne daß dies
eine Einschränkung darstellt.
-
1A zeigt
ein Heim-AV-Netz nach einem Ausführungsbeispiel
der Erfindung,
-
1B zeigt
eine logische Buskonfiguration des HAVI-Netzes von 1A,
-
2 zeigt
ein exemplarisches Peer-to-Peer-Netz mit zwei IAV-(intermediate
audio video)-Knoten nach einem Ausführungsbeispiel der Erfindung
-
3 zeigt
ein HAVI-Netz mit einem einzigen FAV-(full audio video)-Cluster
nach einem Ausführungsbeispiel
der Erfindung,
-
4 zeigt
einem mit einem IAV-Peer-to-Peer-HAVI-Netz integrierten FAV-Cluster,
-
5 zeigt
ein exemplarisches HAVI-Netz mit mehreren FAVs,
-
6 zeigt
ein Diagramm einer Set-Top-Box nach einem Ausführungsbeispiel der Erfindung,
-
7 zeigt
ein logisches Blockdiagramm eines Ausführungsbeispiels der HAVI-Architektur
gemäß vorliegender
Erfindung,
-
8 zeigt
ein logisches Schicht-Diagramm einer HAVI-Architektur gemäß der Erfindung,
-
9 zeigt
ein Diagramm von lokalen und entfernten Meldungen in der HAVI-Architektur
eines Ausführungsbeispiels,
-
10 zeigt
ein Diagramm einer Nachricht, die über 1394 in der HAVI-Architektur
eines Ausführungsbeispiels
gesendet wird,
-
11 zeigt
ein Diagramm einer Anwendung, die eine andere Anwendung aufruft,
in einem Ausführungsbeispiel
der HAVI-Architektur,
-
12A zeigt eine erste exemplarische UI-[user interface]-Anzeige
(z.B. auf einem Fernsehbildschirm) für ein Gerät (z.B. den Camcorder),
-
12B zeigt eine zweite exemplarische UI-Anzeige
(z.B. auf einem Fernsehbildschirm) für ein Gerät (z.B. den Camcorder),
-
13 zeigt
ein Flußdiagramm
eines Prozesses für
die Bereitstellung einer nahtlosen Interoperabilität und die
Integration mehrerer Geräte
in einem HAVI-Netz durch Verwenden der in jedem Gerät gespeicherten
SDD-Information nach einem Ausführungsbeispiel
der Erfindung,
-
14 zeigt
ein Flußdiagramm
eines Prozesses für
die Bereitstellung einer Grund-Befehlsfunktionalität und einer
erweiterten Befehlsfunktionalität
zwischen mehreren Geräten
in einem HAVI-Netz nach einem Ausführungsbeispiel der Erfindung,
-
15 zeigt
ein Flußdiagramm
eines Prozesses für
die Sicherstellung zukünftiger
Aufwertbarkeit und Erweiterbarkeit von Geräten in einem HAVI-Netz nach
einem Ausführungsbeispiel
der Erfindung,
-
16 zeigt
ein Flußdiagramm
eines Prozesses für
die Bereitstellung von nahtloser Interoperabilität und Integration von Legacy-Geräten mit
den HAVI-konformen Geräten
in einem HAVI-Netz nach einem Ausführungsbeispiel der Erfindung,
-
17A zeigt ein Flußdiagramm eines Prozesses für die Steuerung
von Geräten
in einem Heim-Audio-/-Videonetz unter Verwendung eines Anwendungsprogramms
aus einem externen Service-Provider nach einem Ausführungsbeispiel
der Erfindung,
-
17B zeigt ein Diagramm eines HAVI-Netzes mit einem
Service-Provider entsprechend dem Prozeß von 17A.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Es
wird nun detailliert auf die Ausführungsbeispiele der Erfindung
Bezug genommen, von denen Beispiele in den anliegenden Zeichnungen
dargestellt sind. Obwohl die Erfindung in Verbindung mit den bevorzugten
Ausführungsbeispielen
beschrieben wird, soll die Erfindung nicht auf diese Ausführungsbeispiele
beschränkt
sein. Die Erfindung soll im Gegenteil Alternativen, Modifizierungen
und Äquivalente
abdecken, die in dem Geist und Rahmen der Erfindung enthalten sein
können,
wie diese in den anliegenden Ansprüchen definiert ist. Darüber hinaus sind
in der folgenden detaillierten Beschreibung der Erfindung zahlreiche
spezifische Details ausgeführt, um
ein durchgehendes Verständnis
der Erfindung zu ermöglichen.
Es ist für
den einschlägigen
Fachmann jedoch offensichtlich, daß die Erfindung auch ohne diese
spezifischen Detail praktiziert werden kann. In anderen Fällen wurden
allgemein bekannte Verfahren, Prozeduren, Komponenten und Schaltungen nicht
detailliert beschrieben, um Aspekte der vorliegenden Erfindung nicht
unnötig
zu verdunkeln.
-
Die
vorliegende Erfindung liefert ein Heim-AV-Netz, das eine offene
Architektur für
die Interoperation von CE-[consumer electronics]-Geräten in einem
Heimnetz definiert. Die Interoperabilitäts-Aspekte der Erfindung definieren
ein Architekturmodell, das es CE-Geräten von
einem Hersteller ermöglicht,
innerhalb des Heim-AV-Systems des Benutzers zu interoperieren und
nahtlos zu funktionieren. Das System gemäß der Erfindung umfaßt eine Kombination
aus einer Basisgruppe von allgemeinen Gerätesteuerungen mit einem Verfahren
zur Erweiterung eines Basis-Steuerprotokolls, wenn neue Merkmale
und neue CE-Geräte
in dem Heim-AV-Netz benutzt werden. Dadurch ist die Architektur
der vorliegenden Erfindung erweiterbar und kann leicht modifiziert
und fortentwickelt werden, wenn sich die Markterfordernisse und
die Technologie ändern.
Die vorliegende Erfindung und ihre Vorteile werden im folgenden
näher beschrieben.
-
NOTATION UND
NOMENKLATUR
-
Einige
Abschnitte der ausführlichen
Beschreibungen, die nun folgen, werden in Form von Prozeduren, Schritten,
logischen Blöcken,
Verarbeitungen und anderen symbolischen Darstellungen von Operationen
an Datenbits in einem Computerspeicher (siehe 2)
dargestellt. Diese Beschreibungen und Darstellungen sind das Mittel,
das von dem einschlägigen
Fachmann auf dem Gebiet der Datenverarbeitung benutzt wird, um anderen
Fachleuten die Substanz seiner Arbeit am effektivsten zu übermitteln.
Eine Prozedur, ein von einem Computer ausgeführter Schritt, ein logischer
Block, ein Prozeß usw.
werden hier und allgemein als selbstkonsistente Sequenz von Schritten
oder Instruktionen aufgefaßt, die
zu einem gewünschten
Ergebnis führen.
Die Schritte sind solche, die physikalische Manipulationen von physikalischen
Größen erfordern.
Diese Größen nehmen
im allgemeinen, jedoch nicht notwendigerweise, die Form von elektrischen
oder magnetischen Signalen an, die gespeichert, übertragen, kombiniert, verglichen
und anderweitig in einem Computersystem manipuliert werden können. Es
hat sich mitunter, hauptsächlich
zum Zweck des allgemeinen Gebrauchs, als praktisch herausgestellt,
diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Ausdrücke, Zahlen
oder dgl. zu bezeichnen.
-
Es
ist jedoch zu bedenken, daß alle
diese und ähnliche
Ausdrücke
den passenden physikalischen Größen zuzuordnen
sind und lediglich bequeme Etiketten bilden, die diesen Größen angeheftet werden.
Falls die folgenden Diskussionen nicht ausdrücklich anderes nahelegen, beziehen
sich Diskussionen, die Ausdrücke
wie "Verarbeiten" oder "Rechnen" oder "Übersetzen" oder "Instantiieren" oder "Festlegen" oder "Anzeigen" oder "Erkennen" oder dgl. benutzen, auf die Aktion
und Prozesse eines Computersystems oder eines ähnlichen elektronischen Rechners,
die Daten, die in Registern und Speichern des Computers als physikalische
(elektronische) Größen dargestellt
werden, in andere Daten manipulieren und transformieren, die ähnlich in
Speichern oder Registern oder anderen Informationsspeicher-, Übertragungs-
oder Anzeigevorrichtungen des Computersystems als physikalische
Größen repräsentiert
werden.
-
ÜBERBLICK ÜBER DIE ARCHITEKTUR
-
Die
Architektur der vorliegenden Erfindung ermöglicht die Schaffung eines
Heim-AV-Systems, das eine nahtlose Unterstützung neuer Geräte und eine
problemlose Interoperabilität
von Geräten
in einem Heim-AV-Netz erlaubt. Die Grundkomponenten eines Systems
gemäß vorliegender
Erfindung sind eine Heim-AV-Interoperabilitäts-Architektur, eine Reihe
von Heim-AV-Interoperabilitäts-Interfaces
und ein Heim-AV-Netz. Die Heim-AV-Interoperabilitäts-Architektur ist ein breiter übergreifender
Ausdruck, der das physikalische Netz und die steuernden Programmierungs-Interfaces
umfaßt.
Interoperabilitäts-Interfaces ist
ein Ausdruck, der zur Beschreibung der Interaktionen und Interfaces
der Komponenten der AV-Architektur benutzt wird. Zusätzlich zu
der Bereitstellung eines gemeinsamen Befehlssatzes liefern die Interoperabilitäts-Interfaces
eine Software-Architektur, die es ermöglicht, neue Geräte in das
Netz zu integrieren und ihre Dienste nahtlos zur Verfügung zu
stellen. Das Heim-AV-Netz ist der Ausdruck, der zur Beschreibung
des physikalischen Netzes und seiner Topologie benutzt wird.
-
Es
ist zu beachten, daß die
Heim-AV-Interoperabilitäts-(HAVI)-Architektur
der vorliegenden Erfindung ein offenes, plattformunabhängiges,
architekturneutrales Netz ist, das es den Herstellern und Produzenten
von elektronischen Consumer-Geräten ermöglicht,
interoperable Einrichtungen zu liefern. Sie kann auf unterschiedlichen
Hardware-/Softwareplattformen implementiert sein und beinhaltet
keine Merkmale, die für
irgendeine der Plattformen ausschließlich gelten. Die Interoperabilitäts-Interfaces der
HAVI-Architektur sind erweiterbar und können hinzugefügt, modifiziert
und fortgebildet werden, wenn sich die Marktanforderungen und die
Technologie ändern.
Sie liefern die Infrastruktur für
die Steuerung des Routings und die Verarbeitung von isochronen und
zeitsensitiven Daten (z.B. von Audio- und Videoinhalten).
-
Die
HAVI-Architektur sieht speziell eine Ausführungs-Umgebung vor, die die
visuelle Darstellung und Steuerung von Einrichtungen unterstützt, ferner Anwendungs-
und Systemdienste sowie Kommunikationsmechanismen für die dynamische
Erweiterung der Umgebung durch einfaches Einstecken (plug and play)
oder anderweitig.
-
Es
ist zu beachten, daß die
HAVI-Architektur Legacy-Einrichtungen unterstützt, (z.B. Einrichtungen, die
bereits existieren und für
Benutzer verfügbar sind).
Dies ist wichtig, weil der Übergang
zu intelligenteren netzwerkfähigen
Einrichtungen langsam vonstatten geht. Die meisten Hersteller beginnen nicht
plötzlich,
ausschließlich "intelligente" Einrichtungen zu
produzieren, und die meisten Consumer beginnen nicht schnell damit,
ihre sämtlichen
vorhandenen Einrichtungen zu ersetzen.
-
Gemäß vorliegender
Erfindung gibt es zwei Klassen von Legacy-Einrichtungen. Eine erste
Klasse umfaßt "Einwege"- oder Einrichtungen
mit Steuerung ohne Quittungsgabe. Eine zweite Klasse umfaßt steuerbare "Zweiwege"-Einrichtungen. Beispiele
für Einwege-Einrichtungen
sind Audio-/Videokomponenten, die durch Infrarotbefehle einer Handfernsteuerung
gesteuert werden. Zweiwege-Einrichtungen sehen eine Quittierung
der Befehlausführung,
Status- und Fehlerbericht vor. Beispiele für Zweiwege-Einrichtungen umfassen
die in jüngerer
Zeit erfolgte Einführung
bekannter IEEE-1394-fähiger
digitaler Kameras.
-
Es
ist zu beachten, daß das
Heim-AV-Netz (im folgenden HAVI-Netz) gemäß der Erfindung die Unterstützung zur
Anpassung zukünftiger
Einrichtungen und Protokolle durch eine gemeinsame Sprache vorsieht,
die einmal geschrieben wird und überall läuft [writeonce,
run-everywhere]. Gemäß vorliegender
Erfindung enthält
jede Einrichtung eine selbstbeschreibende Information, die das Benutzer-Interface und
die Gerätesteuerung
betrifft und von einer externen Steuereinrichtung benutzt werden
kann. Diese Information ist in Form von Programmen in der gemeinsamen
Sprache spezifiziert.
-
Wie
weiter unten beschrieben wird, besteht die untere Struktur für ein solches
Netz aus einem Satz von miteinander verbundenen Clustern von Einrichtungen.
In dem Heim befinden sich üblicherweise mehrere
Cluster und zwar einer pro Stockwerk oder pro Raum. Jeder Cluster
arbeitet als eine Gruppe von miteinander verbundenen Geräten, um
den Benutzern eine Gruppe von Diensten zur Verfügung zu stellen. Häufig arbeitet
ein Gerät
als Steuereinrichtung für
eine Gruppe von anderen Geräten.
Die Architektur ist jedoch hinreichend flexibel, so daß ein Heim
auch aus einem einzigen Cluster ohne Hauptsteuerung bestehen kann.
-
In
einem Ausführungsbeispiel
der vorliegenden Erfindung kann z.B. ein intelligenter Fernseher im
Wohnzimmer des Benutzers als Steuereinrichtung für eine Anzahl von miteinander
verbundenen Einrichtungen fungieren. Jede der gesteuerten Einrichtungen
besitzt selbstbeschreibende Daten und möglicherweise einen zugeordneten
Steuercode. Wenn diese Einrichtungen erstmalig verbunden werden,
erhält
die Steuereinrichtung das Benutzer-Interface und das Steuerprogramm
für die
Einrichtung. Auf dem Fernsehschirm kann dann ein Icon erscheinen, das
die Einrichtung repräsentiert,
und das Manipulieren des Icons kann dazu führen, daß Elemente des Steuerprogramms
die dargestellte Einrichtung oder die Einrichtungen in der vorgeschriebenen
Weise aktivieren. Eine Ausnahme zu diesem Modell bilden Legacy-Geräte, die
weder selbstbeschreibende Daten noch einen Steuercode haben. Für zusätzliche
Beschreibungen und den Stand der Technik zu selbstbeschreibenden
Daten wird verwiesen auf Ludtke, et al., A METHOD AND APPARATUS
FOR INCLUDING SELF-DESCRIBING INFORMATION WITHIN DEVICES, provisional
application Nr. 60/054,327, eingereicht am 31. Juli 1997.
-
Es
ist zu beachten, daß das
HAVI-Netz gemäß vorliegender
Erfindung "Plug
and Play"-Consumer-Geräte unterstützt, die
leicht zu installieren sind und einen erheblichen Teil ihres Werts
für den
Consumer zur Verfügung
stellen, ohne daß der
Benutzers über
das physikalische Verbinden der Kabel hinaus irgendeine Aktion vornehmen
muß. Dies
bildet den Unterschied zu existierenden Einrichtungen, die ein Konfigurieren
erfordern, um den größeren Teil
ihrer Funktionalität
zur Verfügung
zu stellen. Das Ziel besteht darin, "heißes" Plug and Play anzubieten
(bei dem der Benutzer keine Geräte
ausschalten muß), das
von dem Verbindungsverfahren sicher und zuverlässig unterstützt wird.
-
Gemäß vorliegender
Erfindung konfiguriert eine Einrichtung sich selbst und integriert
ohne Eingreifen des Benutzers ein systemweites "Look-and-Feel"-Benutzer-Interface. Einfache Kommunikationsdienste
liefern eine Notifizierung, wenn eine neue Einrichtung in dem AV-Netz
identifiziert wird. Obwohl es häufig
Einstellungen gibt, die von dem Benutzer zur Anpassung an seine
Präferenzen geändert werden
können,
erfordert die Einrichtung nicht, daß der Benutzer so verfährt, um
ihre Grundfunktionalität
zu erfüllen.
-
Es
ist auch zu beachten, daß das
HAVI-Netz der vorliegenden Erfindung flexibel ist und Mehrfach-Benutzer-Interfaces
unterstützt,
die sich sowohl an die Erfordernisse des Benutzers als auch an die Forderung
der Hersteller zur Markendifferenzierung anpassen. In dem AV-Netz
reichen die Protokolle von ressourcenreichen, intelligenten PC-artigen
Einrichtungen bis zu "dummen", mit wenigen Ressourcen ausgestatteten
Einrichtungen (z.B. Kaffeemaschinen oder Thermostaten). Um dies
zu erreichen, ermöglicht
die AV-Architektur, daß einfache
Einrichtungen in wohldefinierter Weise die Ressourcen von intelligenten
Einrichtungen nutzen. In ähnlicher
Weise ermöglicht
die AV-Architektur die Spezifizierung von Zusammenstellungen von
Einrichtungen, bei denen aus einer logischen Sammlung von verschiedenen einfachen
Einrichtungen eine abstrakte Einrichtung erzeugt wird.
-
Zusätzlich sollte
beachtet werden, daß das HAVI-Netz
der vorliegenden Erfindung existierende Standards unterstützt. Das
HAVI-Netz ist zu verschiedenen existierenden, allgemein bekannten
Industriestandards und Technologien komplementär, einschließlich CEBus;
Home Plug and Play; EHSI; VESA; Heim-Netz, DAVIC, CoMMeND, Lonworks, USB,
IEEE1394 usw. Es ist dementsprechend ein Ziel der vorliegenden Erfindung,
eine Infrastruktur bereitzustellen, in die existierende Vorrichtungen
eingepaßt
werden können.
-
DAS SYSTEMMODELL
DER HAVI-ARCHITEKTUR
-
Es
sei nun auf 1A Bezug genommen, in der ein
HAVI-Netz 10a gemäß einem
Ausführungsbeispiel
der Erfindung dargestellt ist. Wie oben beschrieben wurde, unterstützt die
HAVI-Architektur einen großen
Bereich von Geräten,
einschließlich
intelligenter Empfän ger/Dekodierer
(IRDs), z.B. der Set-Top-Box 301, digitaler Videorekorder
(DVTRs), Videorekorder (VCRs), Personalcomputer (PCs), Abspielgeräte für digitale
Videoplatten (DVDs) usw., die über
ein gemeinsames Nachrichtensystem miteinander kommunizieren. 1A zeigt
die physikalische Anschluß-zu-Anschluß-Verbindungskonfiguration 10a eines
exemplarischen HAVI-Netzes. Es sind CE-Geräte ("Geräte") 12 bis 24 dargestellt,
die über Bus-Segmente 30a bis 30f miteinander
verbunden sind. In einem HAVI-Ausführungsbeispiel wird der serielle
IEEE-1394-Kommunikationsbus-Standard als Plattform benutzt, die
das gemeinsame Nachrichtensystem zur Verfügung stellt.
-
1B zeigt
eine logische Buskonfiguration 10b des HAVI-Netzes von 1A.
Wie in 1B dargestellt, können alle
Geräte 12 bis 24 des
HAVI-Netzes so betrachtet werden, daß sie logisch mit einem gemeinsamen
seriellen IEEE-1394-Kommunikationsbus 30 verbunden sind.
Innerhalb dieser Buskonfiguration 10b wird eine Peer-to-Peer-Gerätekommunikation
unterstützt.
So kann z.B., wie in 1C dargestellt,
ein Gerät
(das die passenden Fähigkeiten
besitzt), z.B. das Gerät 12,
Kommunikationspakete zu einem anderen Gerät in dem HAVI-Netz senden oder
von diesem empfangen. In dem Beispiel von 1B kann
die Set-Top-Box (z.B. ein IRD) Nachrichten von irgendeinem der anderen
Geräte 14 bis 24 des
HAVI-Netzes empfangen oder Nachrichten für diese erzeugen.
-
Es
sei weiterhin auf 1A und 1B Bezug
genommen. Wie oben beschrieben wurde, sieht das Interoperabilitäts-Modell
in HAVI folgendes vor: 1) Unterstützung für existierende Geräte; 2) ein
Default-[Vorgabe]-Steuermodell; 3) ein Mittel zur Erweiterung des
Default-Steuermodells,
wenn neue Geräte
oder eine neue Funktionalität
auf den Markt gebracht wird; und 4) ein gemeinsames Mittel für die Gerätedarstellung
(z.B. graphische Benutzer-Interfaces).
Um dies zu erreichen, definiert die HAVI-Architektur drei Typen
von Knoten in dem Heim-Netz, nämlich
den Voll-AV-Knoten (FAV), den Zwischen-AV-Knoten (IAV) und den Basis-AV-Knoten (BAV).
-
Ein
Voll-AV-Knoten ist eine Vorrichtung, die ein komplettes Beispiel
des (weiter unten näher
erläuterten)
AV-Softwaremodells enthält.
Diese Art von Knoten besitzt im allgemeinen einen umfangreicheren
Satz von Ressourcen und kann eine komplexe Software-Umgebung unterstützen. Das
primäre
Unterscheidungsmerkmal eines FAV besteht darin, daß er die
Steuerverantwortung für
weniger hochentwickelte Geräte übernehmen
kann und dies dadurch tut, daß er üblicherweise
von den weniger hochentwickelten Gerät ein Steuermodul lädt und dieses
lokal ausführt.
Beispiele für
solche Knoten sind Set-Top-Boxen (z.B. die Set-Top-Box 301),
intelligente Fernsehgeräte,
universelle Heim-Steuervorrichtungen oder auch Heim-PCs.
-
Zwischen-AV-Knoten
sind im allgemeinen kostengünstigere
Geräte
mit begrenzten Ressourcen. Sie sehen keine Umgebung für die Ausführung von
Steuermodulen vor und können
so innerhalb des Heim-Netzes nicht als Hauptsteuerung agieren. Da sie
begrenzte Ressourcen haben, können
sie auf eine von zwei Arten auf entfernte Ressourcen zugreifen,
nämlich
durch Zusammenarbeit mit anderen IAV-Geräten, die gewisse Fähigkeiten
besitzen, die ihnen selbst fehlen, oder durch Benutzung eines FAV-Knotens,
der ein Steuermodul unterstützt,
um sie zu steuern. Bei dieser zweiten Betriebsart verlassen sie
sich auf Voll-AV-Knoten, um solche Möglichkeiten zur Verfügung zu
stellen, wie eine Anzeigevorrichtung, universelle Rechen-Ressourcen
oder einen Rahmen für
die Gesamtsteuerung. Dadurch sind Voll-AV-Geräten in der Lage, eine Vielfalt
von Zwischen-AV-Geräten
miteinander zu verbinden, um dem Benutzer einen Service oder eine
Abstraktion zu bieten.
-
Basis-Knoten
sind Knoten, die weder FAV- noch IAV-Knoten sind. Es gibt zwei allgemeine
Typen, nämlich
Legacy-Basisknoten und andere Basisknoten. Legacy-Basisknoten sind
Geräte,
die vor dem Aufkommen der HAVI-Architektur hergestellt wurden. Diese
Geräte
benutzen oft eigene Protokolle für
Ihre Steuerung und haben sehr häufig
ein einfaches, wohldefiniertes Protokoll ausschließlich für die Steuerung.
Solche Geräte
können
in dem HAVI-Netz arbeiten, machen es jedoch erforderlich, daß ein Voll-AV-Knoten
als Gateway agiert. Die Kommunikation zwischen einem Voll- oder
Zwischen-AV-Knoten und Legacy-Geräten macht es erforderlich,
daß die
in der HAVI-Architektur benutzten Heim-AV-Befehle in das und aus
dem Legacy-Befehlsprotokoll übersetzt werden.
Andere Basisknoten sind Geräte,
die aus Geschäfts-
oder Ressourcengründen
zukunftsfähiges
Verhalten implementieren, indem sie heraufladbare Steuersoftware
benutzen, und unterstützen
weder die HAVI-Architektur noch das Nachrichtenkommunikationssystem.
Diese Geräte
werden von einem FAV-Knoten mit einem privaten Befehlsprotokoll
zwischen FAV- und BAV-Knoten gesteuert.
-
Mit
Ausnahme von Legacy-Knoten besitzt jeder Knoten zumindest genügend Funktionalität, die es
ihm erlaubt, mit anderen Knoten in dem System zu kommunizieren.
Im Verlauf einer Interaktion tauschen Knoten Steuer- und Dateninformationen
aus, um zusammenzuarbeiten, und tun dies peer-to-peer. Dadurch ist
sichergestellt, daß kein
einziges Gerät
in der Kommunikationsschicht als Master oder Steuerung für das System
agieren muß.
Es erlaubt jedoch auch, daß ein
logischer Master oder eine logische Steuerung dem grundlegenden
Peer-to-Peer-Kommunikationsmodell eine Steuerstruktur aufprägt. In dem
HAVI-Netz werden
Dienste von einem oder mehreren Knoten zur Verfügung gestellt, die untereinander
kommunizieren, um dem Benutzer einen Service oder eine Anwendung
zu liefern. Wenn ein Knoten mit einem Benutzer interagieren muß, verhandelt der
Knoten mit anderen Knoten über
den Zugriff auf die und die Benutzung der Anzeigevorrichtung.
-
Außerdem ist
zu beachten, daß eine
Unterscheidung zwischen logischen und physikalischen Knoten getroffen
ist. Ein gutes Beispiel für
diese Unterscheidung findet sich in einem normalen Fernsehgerät. Obwohl
das Fernsehgerät
im allgemeinen eine einzige physikalische Box ist, enthält es mehrere funktionelle
Komponenten, z.B. den Tuner, den Audioausgang usw. Vom Standpunkt
des Systems aus ist ein physikalischer Knoten ein adressierbarer Peer-Knoten
in dem System. Falls der Fernseher so konstruiert ist, daß seine
einzelnen funktionalen Komponenten individuell adressierbar sind,
bildet er logisch einen einzigen Knoten und physikalisch mehrere
Knoten. Wenn er umgekehrt so konstruiert ist, daß er eine einzige adressierbare
Entität
besitzt, bildet er sowohl einen einzigen logischen Knoten als auch
einen einzigen physikalischen Knoten.
-
Die
IAV-Geräte
und FAV-Geräte
kommunizieren, indem sie Nachrichten über das Heim-Netz senden, wobei
sie ein allgemeines System zur Weitergabe von Nachrichten benutzen.
Wenn neue Geräte
zu dem Heim-Netz hinzukommen, werden sie erkannt und zu einer globalen
Namen-Datenbank hinzugefügt
(Registrierung). Die Registrierung speichert Informationen über ihre
Eigenschaften und verschafft dem Steuerungsprogramm [Handler] eine
Referenz für
dieses Gerät.
Andere Geräte
und Dienste können die
Registrierung abfragen, um ein Gerät zu lokalisieren und dann
das Steuerungsprogramm zu benutzen, und können mit dem Gerät interagieren.
Für zusätzliche
Beschreibungen und den Stand der Technik bezüglich der Kommunikations- und
Identifizierungsprozesse der vorliegenden Erfindung wird auf Ogino, et
al., "METHOD AND
SYSTEM FOR PROVIDING A DEVICE IDENTIFICATION MECHANISM WITHIN A CONSUMER
AUDIO/VIDEO NETWORK",
eine US-Patentanmeldung, eingereicht am 6. Januar 1998, verwiesen.
-
Wenn
ein Gerät
neu zu dem Heim-Netz hinzugefügt
wird, fragt das System das Gerät
ab, um seine Eigenschaften und Fähigkeiten
zu bestimmen. Sobald die Eigenschaften eines Geräts bekannt sind, stellt die
Architektur zwei Methoden zu seiner Steuerung zur Verfügung. Die
erste Methode, die Schicht-1-Interoperatibilität, benutzt einen vordefinierten
Nachrichtensatz. Alle IAV- und FAV-Knoten können diesen Befehlssatz benutzen,
um auf andere Geräte
zuzugreifen und diese zu steuern (BAV-Knoten werden mit Hilfe von
Legacy-Protokollen gesteuert, weil sie entwickelt wurden, bevor
die Architektur definiert wurde). Diese Methode liefert eine Steuer-Default-Schicht.
Die FAV-Knoten arbeiten als Steuerknoten und erzeugen eine lokale
Darstellung des IAV-Knotens, der als Geräte-Steuermodul (DCM) bekannt
ist, das eine API liefert, die zum Senden von Steuerbefehlen an
das Gerät
benutzt wird.
-
Die
Schicht-2-Interoperabilität
innerhalb eines HAVI-Netzes geht weiter und unterstützt auch hinzugefügte zukünftige Funktionalität und neue
Geräte.
Um dies zu erreichen, kann ein spezielles Gerät in seinem ROM ein Override-DCM
enthalten, das von dem IAV-Gerät in
das FAV-Gerät
heraufgeladen wird und das Default-DCM für das spezielle Gerät ersetzt. Dieses
Override-DCM enthält
nicht nur den grundlegenden Schicht-1-Befehlssatz für das spezielle
Gerät,
sondern auch zuliefererspezifische Befehle, um fortschrittliche
Merkmale des Geräts
zu steuern. Das Modell ermöglicht
es dem Gerät,
ein anderes über seine
spezielle Funktionalität
zu informieren. Da das Override-DCM in das FAV eines beliebigen
Zulieferers geladen werden kann, ist das Format des DCM architekturneutral.
-
Um
es einem Gerät
zu ermöglichen,
die Fähigkeiten
eines anderen Geräts
zu entdecken und festzulegen, welcher Befehlssatz mit diesem Gerät benutzt
werden muß,
ist eine Standard-Gerätebeschreibungsstruktur
vorgesehen, die als selbstbeschreibende Daten-(SDD)-Struktur bezeichnet
wird. Die SDD-Datenstruktur ist erweiterbar. Sie kann aus einer
kleinen Zahl von Bytes bestehen, die den Gerätetyp, z.B. Fernseher oder
Videorekorder usw., beschreiben. Alternativ kann die SDD-Datenstruktur eine
komplexere Struktur sein, die auch das Override-DCM und eine graphische
Darstellung des Geräts definiert.
Die graphische Darstellung innerhalb der SDD-Datenstruktur ermöglicht es
einem FAV-Knoten, den Benutzern eine bildliche Darstellung der Geräte in dem
Heim-Netz zu präsentieren.
Durch Definieren der graphischen Darstellung in einer ausreichend
allgemeinen Weise, können
die graphischen SDD-Daten eines Geräts in dem Produkt irgendeines
Zulieferers benutzt werden, um ein Benutzer-Interface für dieses
Gerät anzuzeigen.
Dies liefert eine verbesserte Schicht der Zulieferer-Interoperabilität und ermöglicht es
außerdem
einem Zulieferer, ein Produkt zu differenzieren, während das
Look-and-Feel der Anzeigevorrichtung beibehalten wird. Dies ermöglicht es
einer Steuervorrichtung (dem FAV-Knoten), unabhängig von den Unterschieden
in Typ und Anbieter für
alle Geräte
in dem Heim-Netz ein allgemeines Steuer-Benutzer-Interface zu präsentieren.
-
Wie
oben beschrieben wurde, sind Legacy-Geräte solche Geräte, die
vor Einführung
der HAVI-Architektur gebaut wurden, oder Geräte, die HAVI nicht benutzen.
HAVI unterstützt
Legacy-Geräte
durch die Bereitstellung von Legacy-DCMs, die Protokoll-Umwandlungen
für Legacy-Geräte liefern. Diese
Legacy-DCMs können
genügend
Intelligenz enthalten, die es ihnen ermöglicht, ein vorhandenes Ein-
oder Zweiwege-Steuerprotokoll zu unterstützen und den Geräten ein
spezifisches Steuer-Interface zur Verfügung zu stellen, das mit HAVI
konform ist. Ein Legacy-DCM wirkt als Brücke zwischen den Legacy- und
HAVI-Geräten.
Dieser Lösungsweg
ermöglicht
es HAVI auch, mit irgendwelchen zukünftigen Gerätesteuer-Protokollen zusammenzuarbeiten, wie
Protokollen, die für
das Energiemanagement oder die Sicherheit des Heims benutzt werden.
-
Es
ist zu beachten, daß die
Kommunikations-Hardware und -Protokolle, die von der HAVI-Architektur benutzt
werden, nicht spezifisch sind. Die HAVI-Architektur eignet sich
ohne weiteres für
die Einbeziehung und die Benutzung beliebiger Exemplare aus mehreren Kommunikationsmedien,
mit der einfachen Forderung, daß das
Medium einen allgemeinen Kommunikations-Mechanismus vorsieht, der die
HAVI-Interfaces unterstützt.
Das unterstellte Basismodell ist solches mit einem logischen Kommunikations-Rahmen
(z.B. IEEE 1394). Alle AV-Geräte seien
mit diesem Rahmen verbunden und können alle anderen AV-Geräte lokalisieren
und mit ihnen kommunizieren, wie dies in 1B dargestellt
ist. Bei einer physikalischen Einrichtung besteht dieser logische
Rahmen wahrscheinlich aus mehr als einem physikalischen Kommunikationsmedium.
Es wird ferner angenommen, daß in
verschiedenen physikalischen Medien Mehrfach-Protokolle in Benutzung sein
können.
Die Heim-AV-Architektur abstrahiert über dieses Ganze und stellt
ein allgemeines Modell von kommunizierenden Knoten dar. Sie liefert
einen Mechanismus über
der Transportschicht (funktional wie ein Stecker), um die Transparenz
des Netzwerks zu gewährleisten.
Dieser Mechanismus kann als "zuverlässiger,
geordneter Datagramm-Service" beschrieben
werden, der jede Fragmentierung und Wiederzusammensetzung ermöglicht.
-
Es
ist dementsprechend ein Ziel der vorliegenden Erfindung, jeden physikalischen
Bus in gleicher Weise zu unterstützen,
so daß eine
Anwendung sich nicht darum kümmern
muß, welchen
physikalischen Transport sie benutzt. Da die Industrie für elektronische
Geräte
jedoch mit IEEE 1394 vertraut ist, werden Merkmale der vorliegenden
Erfindung im Hinblick auf das Funktionieren mit IEEE 1394 dargestellt
und beschrieben. Andere Busse, wie CEBus und USB erfordern möglicherweise
nicht alle die gleichen Merkmale.
-
Es
sei nun auf 2 Bezug genommen, in der ein
exemplarisches Peer-to-Peer, nämlich
ein HAVI-Netz 200 mit zwei IAV-Knoten, nach einem Ausführungsbeispiel
der vorliegenden Erfindung dargestellt ist. Das HAVI-Netz 200 enthält ein erstes
IAV 201 (z.B. einen Fernseher), der mit einem zweiten IAV 202 (z.B.
einem Empfänger)
verbunden ist. Das IAV 201 und das IAV 202 verhalten
sich nach Art von Peer-to-Peer, indem sie notwendige Ressourcen
untereinander vermitteln. Ihnen fehlen zwar die Ressourcen, um das
Hinzufügen
eines BAV- oder LAV-Geräts
zu unterstützen,
sie können
jedoch sinnvolle Aktivitäten
in ihrem Kontext ausführen.
Es ist nicht erforderlich, daß das
IAV irgendeine Standard-UI-Fähigkeit
zur Verfügung
stellt. Es ist keine "Vorwärtskompatibilität" oder die Entdeckung
von neuen Funktionen in der AV-Architektur vorgesehen (z.B. kennt
IAV die Funktionen, die IAV 202 unterstützt, nur auf der Basis der
bei der Verbindung von IAV2 bereitgestellten SDD). Jedoch können gemäß vorliegender
Erfindung die Merkmale der SDD leicht dazu benutzt werden, eine "ad-hoc"-Merkmal-Entdeckung
durchzuführen.
-
3 zeigt
ein HAVI-Netz 300 mit einem einzelnen FAV-Cluster nach
einem Ausführungsbeispiel der
Erfindung. Das HAVI-Netz 300 umfaßt ein FAV 301 (z.B.
eine Set-Top-Box),
die mit einem ersten LAV 302 (z.B. einem Fernseher), einem
zweiten LAV 303 (z.B. einem Videorekorder) bzw. einem BAV 304 (z.B.
einer digitalen Kamera) verbunden ist.
-
In
dem HAVI-Netz 300 steuert das FAV 301 Legacy-
und Basis-AV-Geräte
(z.B. die Geräte 302 bis 304),
wobei es clusterweite Dienste zur Verfügung stellt.
-
4 zeigt
einen FAV-Cluster, der mit einem IAV-Peer-to-Peer-HAVI-Netz 400 integriert
ist. Gemäß vorliegender
Erfindung sieht die Konfiguration des HAVI-Netzes 400 Unterstützung für Legacy-Geräte 302 und 303 vor,
während
es eine unabhängige Steuerung
innerhalb der beiden IAV-Geräte 401 und 402 ermöglicht,
wenn ihre Ressourcen nicht von dem FAV-Gerät 301 benutzt werden.
Die IAV-Geräte 401 und 402 verhalten
sich gegenüber
dem FAV-Gerät 301 als
Peers. Zum Zwecke der Effizienz kann für Ressourcen-Anforderungen sowohl
von FAV zu FAV als auch von FAV zu IAV eine Ressourcen-Konfliktpolitik implementiert
sein. Das IAV wird von dem FAV über
ein in dem FAV 301 laufendes DCM gesteuert.
-
5 zeigt
ein exemplarisches HAVI-Netz 500 mit mehreren FAVs. Das
HAVI-Netz 500 enthält ein
zusätzliches
FAV 501 (z.B. einen Satellitenempfänger). Diese Konfiguration
verhält
sich ähnlich
wie das oben beschriebene HAVI-Netz 400. In dieser Konfiguration
agieren die FAV-Geräte 301 und 501 als
Peers.
-
DIE PLATTFORM
DES COMPUTERSYSTEMS
-
In 6 ist
ein Diagramm einer Set-Top-Box 301 nach einem Ausführungsbeispiel
der Erfindung dargestellt. Wie oben beschrieben wurde, können irgendwelche
elektronischen Consumer-Geräte
ein FAV sein und damit eine Computersystem-Plattform für HAVI-Software zur Verfügung stellen.
Die Set-Top-Box 301 des exemplarischen HAVI-Netzes enthält z.B.
spezielle Komponenten, die eine Operations-Plattform für Softwarekomponenten
der HAVI-Architektur zur Verfügung
stellen, die weiter unten beschrieben werden. Im speziellen Fall
werden die unten beschriebenen Aspekte der Erfindung in Form von
Schritten diskutiert, die auf einem Computersystem ausgeführt werden
(z.B. die in 13 bis 17A dargestellten
Prozesse). Obwohl eine Vielfalt unterschiedlicher Computersysteme
mit der vorliegenden Erfindung benutzt werden kann, ist in der Set-Top-Box
von 6 ein exemplarisches Universal-Computersystem
dargestellt.
-
Die
Set-Top-Box 301 in 6 besitzt
zusätzlich
zu einer Video-/Audioempfänger-(Dekodierer)-Einheit 606 und
einer MPEG-Einheit 607 einen Adressen-/Datenbus 600 für die Übertragung
von Informationen, einen oder mehrere mit dem Bus 600 verbundene
Zentralprozessoren 601 zur Verarbeitung von Informationen
und Befehlen, einen mit dem Bus 600 verbundenen flüchtigen
Speicher 602 (z.B. einen Speicher mit wahlfreiem Zugriff
RAM) zum Speichern von Informationen und Befehlen für den Zentralprozessor 601 und
einen mit dem Bus 600 verbundenen nichtflüchtigen
Speicher 603 (z.B. einen Nurlesespeicher ROM) für die Speicherung
von statischen Informationen und Befehlen für den Prozessor 601.
Die Set-Top-Box 301 kann optional auch eine mit dem Bus 600 verbundene
Datenspeichervorrichtung 604 ("Platten-Subsystem") enthalten, z.B. eine magnetische oder
optische Platte und ein Plattenlaufwerk, für die Speicherung von Informationen
und Befehlen. Außerdem
enthält
die Set-Top-Box 301 eine Bus-Interfaceeinheit 608 als Schnittstelle
mit dem lokalen Bus 30 (z.B. einem seriellen IEEE-1394-Bus).
-
Die
Set-Top-Box 301 kann unter einer Vielzahl verschiedener
Betriebssysteme arbeiten (z.B. Windows-Betriebssystem, DOS-Betriebssystem,
Macintosh O/S), wobei in der vorliegenden Erfindung jedoch das Aperios-Betriebssystem
benutzt wird.
-
DAS HAVI-SOFTWAREMODELL
-
Gemäß vorliegender
Erfindung sind die Recheneinheiten der HAVI-Architektur (z.B. DCMs)
als Objekte modelliert. Jedes Objekt ist eine selbständige Entität, die über ein
wohldefiniertes Interface zugänglich
ist und in einer wohldefinierten Umgebung der Software-Ausführung arbeitet.
Die Umgebung der Software-Ausführung
(z.B. die Set-Top-Box 301 von 6) liefert
einen Satz von wohldefinierten Diensten (lokal oder entfernt), die
ebenfalls als Objekte modelliert sind und auf die unter Verwendung der
Kommunikations-Infrastruktur über ihre
wohldefinierten Interfaces zugegriffen werden kann.
-
Jedes
Objekt ist eindeutig benannt. Es wird keine Unterscheidung getroffen
zwischen Objekten, die zum Aufbau von System-Diensten genutzt werden,
und solchen, die für
Anwendungsdienste benutzt werden. Alle Objekte machen sich selbst über die
Registrierung bekannt. Objekte in dem System können die Registrierung abfragen,
um einen speziellen Service oder ein spezielles Gerät zu ermitteln, und
können
das Ergebnis dieser Abfrage dazu benutzen, Nachrichten zu diesem
Service oder Gerät
zu senden. Der einem Objekt zugeordnete Identifizierer wird erzeugt,
wenn das Objekt registriert wird. Falls erforderlich, wird garantiert,
daß diese
Identität
während
der Lebenszeit des Objekts persistent ist und selbst bei einem vollständigen Neu-Booten
des Heim-Netzes persistent bleibt.
-
Gemäß vorliegender
Erfindung kommunizieren die Objekte, indem sie ein Nachrichtenübermittlungs-Modell
benutzen. Ein Objekt, das den Service eines anderen Objekts benutzen
möchte,
tut dies, indem es einen universellen Mechanismus zur Nachrichtenübermittlung
benutzt, der die Service-Anforderung an das Zielobjekt liefert.
Das Zielobjekt wird mit Hilfe des oben erwähnten eindeutigen Objekt-Identifizierers
spezifiziert. Im vorliegenden Ausführungsbeispiel arbeitet der
Mechanismus zur Nachrichtenübermittlung
mit IEEE 1394, wobei jedoch zu erwähnen ist, daß kein Unterschied
besteht zwischen dem Senden einer Nachricht über einen 1394-Bus oder über eine
Control-A1-Verbindungsleitung.
-
Ebenso
wird keine Unterscheidung getroffen zwischen Objekten in dem gleichen
Knoten und einem Objekt in einem entfernten Knoten. Die praktische
Implementierung der Infrastruktur zur Nachrichtenübermittlung
hängt von
der System- und Netzumgebung ab und differiert von Knoten zu Knoten
und zwischen Zulieferern. Das tatsächliche Format der Nachrichten
muß jedoch
ein gemeinsames sein, damit Interoperabilität gewährleistet ist.
-
Es
ist zu beachten, daß die
generelle Absicht des Objektmodells und des Nachrichtensystems darin
besteht, ein vollständig
generisches Softwaremodell zur Verfügung zu stellen, das hinreichend
flexibel ist, um mehrfache Implementierung mit einer Vielfalt von
Softwaresystemen und Sprachen zu ermöglichen. Details der Verknüpfung zwischen
Nachrichten und dem sie behandelnden Code sind dem Implementierer
des Systems überlassen.
-
ÜBERBLICK ÜBER DIE
SOFTWARE-ARCHITEKTUR
-
Die
HAVI-Software-Architektur definiert die Art und Weise, in der das
Softwaremodell benutzt wird, um die HAVI-Architektur zu unterstützen. Insbesondere
definiert sie die Art und Weise, in der Geräte in der AV-Architektur abstrahiert
und verwaltet werden. Sie definiert die Art und Weise, in der Interoperabilität gewährleistet
wird, und sie definiert die Möglichkeiten,
zukünftige
Geräte
und Dienste in die Architektur zu integrieren.
-
Voll-AV-Knoten
als Software-Manager: Gemäß vorliegender
Erfindung arbeiten Voll-AV-Knoten (FAVs)
als Manager für
Zwischen-(IAVs)- und Basis-(BAVs)-Knoten und liefern eine Plattform
für die Dienste,
die die HAVI-Architektur unterstützen.
Um dies zu erreichen, stellen sie eine Ausführungs-Umgebung zur Verfügung, die
es Objekten ermöglicht, Dienste
und Geräte
zu steuern und mit ihnen zu kommunizieren. Um sicherzustellen, daß innerhalb
des Heim-AV-Netzes auf Geräte
zugegriffen werden kann, unterstützen
die FAV-Knoten eine Software-Abstraktion der Dienste, die ein Gerät anderen Geräten bietet.
Wie oben beschrieben wurde, wird diese Abstraktion als Geräte-Steuermodul
(DCM) bezeichnet. Das DCM ist als Objekt innerhalb der Software-Architektur
modelliert, wird im folgenden jedoch zur Unterscheidung einfach
als DCM bezeichnet. Das Interface, das das DCM gegenüber dem
Rest des Systems exponiert, stellt die Mittel zur Verfügung, um
auf dieses Gerät
zuzugreifen und es zu steuern. Im allgemeinen Fall verwaltet ein
FAV eine Gruppe von DCMs, eines für jeden IAV-Knoten und Basis-Knoten
in dem Heim-Netz oder in dem von ihm verwalteten Abschnitt des IAV-Netzes.
So sollte also beachtet werden, daß aus der Perspektive der Interoperabilität die primäre Rolle
des FAV-Knotens darin besteht, DCMs der vorliegenden Erfindung zu
verwalten und als Ausführungs-Umgebung
für DCMs
zu agieren.
-
Voll-AV-Knoten
als Steuereinrichtung und Anzeigevorrichtung: Gemäß vorliegender
Erfindung haben FAVs in den meisten Fällen eine zugehörige Anzeigevorrichtung,
die für
die Anzeige von AV-Inhalten und von Benutzer-Interface-(UI)-Material
benutzt wird. Die HAVI-Software-Architektur fordert dies jedoch
nicht. FAV-Knoten können
vielmehr auch "kopflos" sein. In diesem
Fall kooperieren operieren sie mit anderen Knoten, um Inhalte und
UI-Informationen anzuzeigen (siehe weiter unten). FAV-Geräte sind
jedoch verantwortlich für
die Unterstützung
der UI-APIs der oberen Schicht, die das Look-and-Feel des gesamten
Heim-Netzes liefern. Die APIs der niedrigen Schicht zur Graphik-Manipulation
sind im allgemeinen in der Nähe
der graphischen Anzeigevorrichtung selbst angeordnet und werden
von den FAV-APIs der oberen Schicht manipuliert.
-
Peer-to-Peer-Architektur
zwischen Voll-AV-Knoten: In einem Heim-AV-Netz gemäß vorliegender
Erfindung kann es mehr als ein FAV geben. In diesem Fall arbeitet
jedes FAV mit anderen FAVs zusammen, um sicherzustellen, daß dem Benutzer Dienste
zur Verfügung
gestellt werden. Dies ermöglicht
es FAV-Knoten, zusammenzuarbeiten, um Ressourcen gemeinsam zu nutzen.
Ein FAV-Knoten, der keinen direkten Zugriff auf eine Anzeigevorrichtung hat,
kann z.B. einen entfernten FAV-Knoten benutzen, um DCM-Benutzer-Interfaces anzuzeigen.
Alternativ kann ein FAV-Knoten die Dienste eines Datenübersetzungs-Moduls
anfordern das sich in einem entfernten Knoten befindet, um ihm die
Einrichtung eines Datenweg zwischen zwei AV-Geräten zu ermöglichen.
-
SCHICHT-1- UND SCHICHT-2-INTEROPERABILITÄT ALLGEMEIN
-
Gemäß vorliegender
Erfindung besteht eines der Hauptziele der HAVI-Architektur der
vorliegenden Erfindung darin, die Interoperabilität zwischen
Geräten
zu unterstützen.
Dies schließt
existierende Geräte
und zukünftige
Geräte
ein. Um diese Interoperabilität
zu erreichen, unterstützt
die HAVI-Architektur der vorliegenden Erfindung ein generelles Modell,
das zwei Interoperabilitäts-Schichten
ermöglicht.
Diese Schichten werden als Schicht 1 und Schicht 2 bezeichnet.
-
Schicht-1-Interoperabilität: Die Schicht-1-Interoperabilität der vorliegenden
Erfindung widmet sich der allgemeinen Notwendigkeit, existierenden Geräten zu ermöglichen,
miteinander zu kommunizieren. Um dies zu erreichen, definiert und
benutzt die Schicht-1-Interoperabilität der vorliegenden
Erfindung einen allgemeinen Satz von Steuernachrichten (Befehlen),
die ein Gerät
befähigen,
mit einem anderen Gerät
zu sprechen, sowie einen Satz von Ereignis-Nachrichten, die es vernünftigerweise
von dem Gerät
erwarten sollte. Um diesen Lösungsweg
zu unterstützen,
ist eine Grundmenge von Prozessen erforderlich. Diese Prozesse umfassen
die Geräte-Entdeckung,
die Kommunikation und einen Satz von allgemeinen Nachrichten.
-
Der
Prozeß zur
Geräte-Entdeckung
gemäß vorliegender
Erfindung sieht vor, daß jedes
Gerät in dem
Heim-AV-Netz ein wohldefiniertes Verfahren benötigt, das es ihm erlaubt, seine
Eigenschaften anderen Geräten
anzuzeigen. Der von uns übernommene Lösungsweg
besteht darin, eine in allen FAV- und IAV-Geräten benötigte Datenstruktur zu spezifizieren,
die Informationen über
das Gerät
enthält
und auf die von allen anderen Geräten zugegriffen werden kann.
Diese Datenstruktur wird als selbstbeschreibende Datenstruktur (SDD)
bezeichnet. Die SDD enthält
als Minimum genügend
Informationen, um es einem anderen Gerät zu ermöglichen, seine Basisfähigkeiten
zu entdecken und so die Grundmenge an Befehlsnachrichten erkennen
zu lassen, die zu diesem Gerät
gesendet werden können,
sowie Ereignisse, von denen es vernünftigerweise erwarten kann, daß es sie
von dem Gerät
empfängt.
-
Der
Kommunikationsprozeß der
vorliegenden Erfindung sorgt dafür,
daß ein
Gerät in
der Lage sein muß,
auf die Fähigkeiten
eines anderen Geräts zuzugreifen,
sobald es diese festgestellt hat. Um dies zu erreichen, ist eine
generelle Kommunikationsmöglichkeit
erforderlich, die es einem Gerät
erlaubt, an ein anderes Gerät
eine Nachricht zu senden, die eine Befehlsanforderung enthält. Die
allgemeinen Prozesse für
den Nachrichten-Service gemäß der Erfindung wurden
oben diskutiert.
-
Ein
allgemeine Gruppe von Nachrichten bezieht sich auf den Prozeß, der für die Unterstützung der
Schicht-1-Interoperabilität
benötigt
wird. Diese enthält
einen wohldefinierten Satz von Nachrichten, die von allen Geräten einer
speziellen Klasse unterstützt
werden müssen.
Dadurch ist sichergestellt, daß ein
Gerät unabhängig vom
Hersteller mit anderen Geräten
zusammenarbeiten kann, weil bei allen Geräten Übereinstimmung über einen
gemeinsamen Satz von allgemeinen Befehlen besteht. Wie oben diskutiert
wurde, werden diese Befehle in der HAVI-Software-Architektur der
vorliegenden Erfindung dem Rest des Systems als ein DCM präsentiert.
-
Diese
drei Basis-Prozesse der vorliegenden Erfindung unterstützen zumindest
eine minimale Interoperabilitäts-Schicht.
Da in den meisten Fällen
ein Gerät
die Fähigkeiten
eines anderen über
die SDD abfragen kann, kann ein Gerät den von einem anderen Gerät unterstützten Befehlssatz
fest stellen. Und da jedes Gerät
Zugriff zu einem allgemeinen Nachrichtensystem hat, kann dann ein
Gerät mit
einem anderen Gerät
interagieren.
-
Es
ist jedoch zu beachten, daß die Schicht-1-Kompatibilität gemäß der Erfindung
lediglich sicherstellt, daß Geräte in einer
minimalen oder sehr einfachen Funktionalitäts-Schicht miteinander arbeiten
können.
Der allgemeine Nachrichtensatz für jede
Geräteklasse
ist ein minimaler und gemeinsamer Satz von Befehlen. Die SDD-Möglichkeit
bietet ein Mittel für einen
gewissen Grad von Kundenanpassung eines Geräts, indem sie eine Information über sein
UI und einige Aspekte seines Interaktions-Modells liefert. Andere
IAV-Geräte
können
diese Information benutzen, um dem Gerät ein Interface zu präsentieren.
Alternativ kann ein FAV-Gerät
diese Information zur kundenspezifischen Anpassung des allgemeinen
DCM benutzen, das es für
dieses Gerät erzeugt
hat. Es ist jedoch zu beachten, daß auch ein Mechanismus mit
größerer Erweiterbarkeit
benötigt wird,
um es einem Gerät
zu ermöglichen,
anderen Geräten
irgendwelche zusätzliche
Funktionalität
mitzuteilen, die es besitzt. Die Schicht-2-Interoperabilität der vorliegenden
Erfindung stellt diesen Mechanismus zur Verfügung. Die Schicht-1- und Schicht-2-Interoperabilität werden
weiter unten näher
erläutert.
-
SCHICHT-1- UND SCHICHT-2-DCMs
-
Wie
oben beschrieben wurde, besteht die Funktion des DCM der vorliegenden
Erfindung darin, Zugriff, Steuerung und Interaktion mit einem Gerät zu ermöglichen.
DCMs werden typischerweise auf den Ressourcen von FAVs in der Heim-AV-Architektur
instantiiert (d.h. ausgeführt).
Das DCM der vorliegenden Erfindung stellt einem Gerät ein Interface
zur Verfügung
und verwaltet ein UI, das das Gerät den Benutzern präsentieren
möchte.
-
Gemäß vorliegender
Erfindung sind die für Geräte erzeugten
DCMs mit der Schicht-1-Interoperabilität generisch. Sie unterstützen einen
minimalen Befehlssatz, der eine generische Steuerung des Geräts ermöglicht.
Um gerätespezifische
Merkmale zu unterstützen,
muß die
DCM sich Zugang zu solchen gerätespezifischen
Merkmalen verschaffen und ist in der Lage, Benutzern über daß UI gerätespezifische Merkmale
zu präsentieren.
-
Um
dies zu ermöglichen
wird die Schicht-2-Interoperabilität benutzt. Gemäß vorliegender
Erfindung ermöglicht
es die Heim-AV-Architektur, einem Gerät, ein "Override"-DCM für das generische DCM zur Verfügung zu
stellen, das normalerweise für
dieses Gerät
erzeugt wird. Das Override-DCM (z.B. ein Schicht-2-DCM) ist in der
Lage, das Default-DCM (z.B. ein Schicht-1-DCM) in dem FAV zu ersetzen.
Es ist zu beachten, daß das Schicht-2-DCM von verschiedenen
Quellen aufgerufen werden kann. Eine solche Quelle ist das SDD des Geräts selbst.
In diesem Fall wird das Schicht-DCM abgerufen, empfangen oder anderweitig
von dem SDD des Geräts
akquiriert und in einem FAV-Knoten instantiiert, wenn das Gerät in dem
System installiert wird. Da die Heim-AV-Architektur zuliefererneutral
ist, ist es notwendig, daß das
Schicht-2-DCM in verschiedenen FAV-Knoten arbeitet, die jeweils
potentiell unterschiedliche Hardware-Architekturen haben. Um dies
zu erreichen, ist das Format sowohl der Schicht-1- als auch der
Schicht-2-DCMs der vorliegenden Erfindung architekturneutral, so
daß eine große Vielfalt
von Umgebungen zur Software-Ausfüh rung
der FAV-Knoten, die in der Lage sind, die Schicht-1- und Schicht-2-DCMs
zu instantiieren und laufen zu lassen.
-
Es
ist zu erwähnen,
daß gemäß vorliegender Erfindung
die DCMs der Erfindung, sobald sie in den FAV-Knoten erzeugt sind
und laufen, in der gleichen Weise mit den IAV- und BAV-Knoten kommunizieren, wie
dies oben beschrieben wurde, indem sie den Basis-Nachrichten-Mechanismus benutzen.
-
Wie
oben beschrieben wurde, gibt es in einem gegebenen HAVI-Netz viele
mögliche
Permutationen von FAV-, IAV- und BAV-Knoten. Diese Permutationen
fallen im allgemeinen uner einen von zwei Typen: HAVI-Netzwerk-Konfigurationen,
die ein FAV-Gerät
unterstützen,
und solche, die das nicht tun. Diese Unterscheidung definiert im
Wesentlichen, ob ein HAVI-Netz eine Peer-to-Peer-Konfiguration benutzt
(wie sie z.B. in 2 dargestellt ist, in der kein
FAV vorhanden ist) oder ob es irgendeine Form von Steuerhierarchie
bedingt (z.B. das in 3 dargestellte FAV-Cluster).
-
Nach
einem Ausführungsbeispiel
der vorliegenden Erfindung ist in Fällen, in denen keine FAV vorhanden
ist, nur die Schicht-1-Interoperabilität verfügbar, und die Geräte sind
gezwungen, die SDD-Information zu benutzen, um andere IAV-Fähigkeiten zu
entdecken, diese Fähigkeiten
zu präsentieren
und das Gerät
zu steuern. Falls FAVs vorhanden sind, werden DCMs instantiiert
und benutzt. Wenn es sich hierbei um Schicht-1-DCMs (z.B. generische
DCMs) handelt, arbeiten die Geräte
mit Schicht-1-Interoperabilität.
Falls wenigstens ein Schicht-2-DCM vorhanden ist, arbeiten einige
der Geräte
mit Schicht-2-Interoperabilität.
-
Es
ist zu beachten, daß gemäß vorliegender Erfindung
ein gemischter Operationsmodus möglich ist,
in dem Cluster von Geräten
unter dem Steuereinfluß eines
FAV-Knotens miteinander arbeiten, während andere Geräte nach
Art von Peer-to-Peer miteinander arbeiten. Auf diese Weise verschafft
die Flexibilität
der Erfindung den Zulieferern die Möglichkeit, Geräte über das
ganze Kosten-/Fähigkeits-Spektrum
zu entwickeln und zu bauen mit der Gewißheit, daß diese Geräte nahtlos mit anderen Geräten in dem
HAVI-Netz zusammenarbeiten
-
Es
sei nun auf 7 Bezug genommen, in der ein
logisches Blockdiagramm 700 eines Ausführungsbeispiels der HAVI-Architektur
dargestellt ist. 7 zeigt eine HAVI-Gesamtachitektur
gemäß vorliegender
Erfindung. Folgende Komponenten sind in dem Diagramm 700 dargestellt:
Geräte-Manager 761:
Der Geräte-Manager 761 ist verantwortlich
für die
Schaffung und Verwaltung der DCMs, die von einem FAV-Gerät verwaltete
Geräte repräsentieren.
-
Geräte-Module 720:
Dieses sind die DCMs für
individuelle Geräte.
Wie oben beschrieben wurde, fungiert jedes DCM als Kontrollpunkt
für ein
Gerät und
liefert eine UI-Komponente und eine Steuerkomponente. Die DCMs (z.B.
Geräte-Module 720)
liefern ein API, um anderen Anwendungen zu ermöglichen auf die Geräte zuzugreifen
und sie zu handhaben.
-
Service-Module 730:
Diese Module können als
Software-Geräte
betrachtet werden. Sie sind DCMs für irgendeine Software-Komponente
(im Gegensatz zu einem Hardware-Gerät), die
anderen Geräten
oder Komponenten in dem Heim-Netz einen generellen Service liefert.
-
Comms-Media-Manager 740:
Diese Komponente ist verantwortlich für die Verwaltung des darunter
liegenden physikalischen Kommunikationsprozesses. Sie liefert ein
API, das es Code-Modulen ermöglicht,
mit den Merkmalen der Kommunikations-Medien (z.B. IEEE 1394) zu
interagieren.
-
Registrierdatenbank 706:
Dies ist eine Service-Datenbank. Alle DCMs für physikalische Geräte und Software-Dienste
registrieren sich selbst in der Registrierdatenbank 706,
und alle Module (z.B. die Geräte-Module 720)
können
die Registrierdatenbank abfragen, um ein Handle für ein anderes
Gerät oder Modul
zu bekommen.
-
Kommunikations-Manager 750:
Diese Komponente ist eine Low-Level-Abstraktion der Kommunikations-Medien.
-
Messaging 702:
Diese Komponente stellt eine Basis-Nachrichtenübermittlungseinrichtung zur Verfügung, um
es sowohl Geräten
(Hardware) als auch Geräte-Modulen 720 und
Service-Modulen 730 zu ermöglichen, miteinander zu kommunizieren.
-
Ereignis-Manager 703:
Dieses Modul stellt einen generischen Ereignis-Service zur Verfügung. Es
ist ein Kommunikations-Service von einem Objekt zu vielen Objekten,
der die Anmeldung in dem HAVI-Netz ermöglicht.
-
Initialisierungs-Manager 701:
Diese Komponente wird als Teil des Geräte-Bootstrap-Prozesses benutzt.
-
Daten-Routing 762:
Die Daten-Routing-Komponente 762 ist verantwortlich, Services
bei der Einrichtung von Routen zwischen Geräten und Geräte-Modulen zu unterstützen. Sie
berücksichtigt die "Kosten" der Übertragung
von Daten über
eine spezielle Route, die Forderungen nach Datenformatübersetzung
usw. Für
die Basis-Architektur wird diese Komponente nicht benötigt.
-
AV-Aktionen/Makros 763:
Diese Komponente ist ein Manager für AV-Aktionen auf höherem Niveau,
die Gruppen von individuellen Befehlen niedrigen Niveaus bilden,
d.h. sie liefert einen Makro-Service. Für die Basis-Architektur wird
diese Komponente nicht benötigt.
-
High-Level-UI-Bibliothek 704:
Diese Komponente liefert einen Satz von High-Level-UI-Komponenten, die
von den Geräte-Modulen 720 für den Aufbau
von UIs für
ihre entsprechenden Geräte
benutzt werden. Für
die Basis-Architektur wird diese Komponente nicht benötigt.
-
Anwendungs-(und
Benutzer)-Interface 705: Diese Komponente liefert die Verknüpfung zwischen einer
gemeinsamen Plattform von elektronischen Consumer-Geräten (CCEP)-APIs der HAVI-konformen
Geräte
und Anwendungen, die lokal oder möglicherweise entfernt angeordnet
sind. Für
die Basis-Architektur wird diese Komponente nicht benötigt.
-
Es
ist zu beachten, daß die
obigen Komponenten, wie sie in 7 schematisch
dargestellt sind, Funktionalitäts-Abstraktionen
darstellen. Sie dienen zur Erläuterung
dafür,
welche Funktionalität
in der Architektur für
HAVI-konforme Geräte
enthalten ist. Um das Verständnis
der Erfindung nicht unnötig
zu erschweren, sind die Beziehung zwischen den Komponenten 701 bis 763 und
der Nachrichtenfluß zwischen
ihnen nicht dargestellt.
-
DCM-KONFIGURATION
UND -FUNKTION
-
Überblick
-
In
einem Ausführungsbeispiel
der Erfindung existiert in HAVI-Netz-Konfigurationen, in denen ein FAV-Knoten
verfügbar
ist, für
jedes physikalische Gerät
im HAVI-Netz ein DCM, das dem FAV-Knoten bekannt ist. Das DCM liefert
ein Interface für
das Gerät und
präsentiert
es als ein Objekt in der Architektur. Andere DCMs, System-Services
oder Anwendungs-Services können
die lokale Registrierdatenbank abfragen, um die verfügbaren Geräte zu ermitteln
und sich einen Identifizierer zu verschaffen, der es ihnen ermöglicht, über ihr
DCM mit den Geräten zu
interagieren.
-
Gerätesteuer-Module
sind auch verantwortlich für
die Interaktion mit der Software-Architektur, um dem Benutzer das
Benutzer-Interface (UI) des Geräts
zu präsentieren.
Eingaben von Benutzern werden dann zu dem DCM übertragen, das die Eingabe
für die
Steuerung des tatsächlichen
Geräts
benutzt.
-
Wie
oben diskutiert wurde, unterstützen DCMs
die Schicht-1- und die Schicht-2-Interoperabilität. Ein Schicht-1-DCM ist ein
generisches DCM, das üblicherweise
mit dem FAV-Knoten
geliefert wird und einen vordefinierten Basis-Satz von Merkmalen einer
Geräteklasse
verwalten kann, wobei sie einen vordefinierten Nachrichten-Satz
benutzt. Während der
Initialisierung arbeitet das DCM mit dem (unten beschriebenen) Geräte-Manager
zusammen, um die tatsächlichen
Eigenschaften des zu verwaltenden Geräts zu entdecken, und konfiguriert
sich selbst, um dieses Gerät
zu steuern. So könnte
eine generische Videorekorder-Steuerung instantiiert werden, um
einen Standard-Videorekorder entweder mit Hilfe von 1394-AV/C-Nachrichten
oder über
Control A1 zu steuern.
-
Im
Fall der Schicht-2-Interoperabilität ist das für dieses Gerät instantiierte
DCM ein Override-DCM, das aus einer externen Quelle, z.B. dem Gerät selbst, geladen
wurde. Diese Override-DCMs sind in dem gemeinsamen Sprach-Format
für DCMs
geschrieben. Die Funktion eines Override-DCM unterscheidet sich
nicht von derjenigen generischer DCMs, das angebotene API ist jedoch
wahrscheinlich umfassender.
-
Sobald
DCMs instantiiert sind, liefern sie nicht nur Steuer-Interfaces
für das
Gerät,
sondern verschafft auch Zugriff auf die einem Gerät zugeordneten
SDD-Daten. Sie arbeiten als Ereignis-Manager für ein Gerät, indem sie gerätespezifische
Ereignisse empfangen und solche in dem Ereignis-System (siehe unten)
verbuchen. Sie arbeiten auch als UI-Manager für das Gerät, indem sie mit dem UI-Management-Systems
zusammenwirken, um über
eine Anzeigevorrichtung ein Benutzer-Interface zur Verfügung zu
stellen. Letztlich arbeitet das DCM als Ressourcen-Manager für Geräte, indem
es Anforderungen auf Gerätezugriff
und – service
vermittelt.
-
Generelle
DCM-Terminologie
-
In
der Terminologie der vorliegenden Erfindung, so wie sie in den folgenden
Beschreibungen benutzt wird, präsentiert
jedes DCM ein Modell eines Geräts
in dem Heim-Netz. Die verwendete Basis-Terminologie ist folgende:
- 1) Gerät:
Dieser Ausdruck bezieht sich auf das ganze Gerät.
- 2) Untergerät:
Dieser Ausdruck bezieht sich auf eine oder möglicherweise viele Komponenten,
die ein Gerät
bilden. Einige Technologien haben nicht die Möglichkeit, Untergeräte zu unterscheiden.
- 3) Interne Verbindung: Dieser Ausdruck bezieht sich auf die
logische oder physikalische Verbindung zwischen internen Untergeräten.
- 4) Externe Verbindung: Dieser Ausdruck bezieht sich auf die
Verbindung zwischen einem physikalischen Verbinder an der Außenseite
eines Geräts und
einem Zielgerät
außerhalb
des Geräts.
Das gleiche gilt für
den seriellen Einheits-Bus und externe Eingangs- und Ausgangs-Steckverbindungen
für AV/C.
- 5) Protokoll: Dieser Ausdruck bezieht sich auf das von dem Untergerät oder dem
Gerät gesprochene Steuerprotokoll
(z.B. AV/C, Control A1, usw.). Es ist zu beachten, daß ein Gerät Untergeräte enthalten
kann, die verschiedene Protokolle sprechen.
- 6) Interface: Dieser Ausdruck bezieht sich auf das physikalische
Bus-Verbindungs-Interface (1394, USB usw.).
- 7) Geräteklasse:
Dieser Ausdruck ist eine Möglichkeit,
die Basis-Funktionalität
einer gegebenen Sammlung von Geräten
zu beschreiben. So kann z.B. die Klasse von digitalen Videorekordern
[DVCR-Geräten]
Daten auf einem bandförmigen
Medium aufzeichnen. Ebenso kann es viele Geräte geben, die ein Audiosignal
aufnehmen, irgendeine Art spezieller Effekte ausführen und
den modifizierten Audiostrom ausgeben können. Diese gehören alle
zur Klasse Audioprozessor oder irgend etwas von dieser Art. Der
Nutzen dieses Konzepts wird weiter unten in diesem Dokument weiter
verdeutlicht.
- 8) Gerätemodell:
Dieser Ausdruck bezieht sich auf die Sammlung von Untergeräten und
Verbindungen, die eine Definition entweder eines Standard- oder
Customer-Geräts
bilden. Individuelle Untergeräte,
auf die innerhalb physikalisch getrennter Geräte zugegriffen werden kann,
können kombiniert
werden, um logische oder virtuelle Geräte zu bilden, die das Gerätemodell
benutzen.
- 9) Standard-Gerät:
Dieser Ausdruck bezieht sich auf Standard-Modell-Definitionen (z.B.
besteht ein digitaler Videorekorder zumindest aus einem Tuner-Untergerät und einem
Videorekorder-(Transport)-Untergerät mit Steckverbindungen zwischen
ihnen).
- 10) Spezielles Gerät:
Dieser Ausdruck bezieht sich auf ein zuliefererspezifisches Gerätemodell, das
entweder aus Standard-Untergeräten
oder aus einer Kombination von Standard- und zuliefererspezifischen
Untergeräten
besteht. So kann z.B. ein digitaler Zweifach-Videorekorder zwei
Videorekorder-Untergeräte
besitzen, die an sich Standardartikel sind, jedoch in einer Nichtstandard-Konfiguration
vorliegen.
- 11) Geräte-Komplex:
Dieser Ausdruck bezieht sich auf logische Entitäten, die aus verschiedenen Komponenten
kombiniert sein können.
Physikalische Geräte
und Untergeräte
sind individuell zugängliche
Hardwareteile. Wenn Geräte
Untergeräte
haben, auf die zugegriffen werden kann, wird dieses Modell auf die
Unterstützung
von Geräte- Komplexen erweitert.
Beispiele für
Geräte-Komplexe
umfassen Untergeräte
aus getrennten physikalischen Geräten oder innerhalb eines einzelnen
Geräts
sowie Software-Module, wie Software-Codecs, die ähnliche Services oder Fähigkeiten
bieten wie Geräte
und Untergeräte.
Alle diese Module können
in dem gleichen Knoten in dem AV-Netz angeordnet oder auf viele
Knoten verteilt sein.
-
Geräte-Klassifikation
-
Die
Klassifizierung von Geräten
auf der Basis der Arten von Aktionen, die sie durchführen, oder die
Art des Mediums, mit dem sie arbeiten, ist eine Möglichkeit,
die es uns erlaubt, ein generalisiertes Steuer-API zu erzeugen,
das für
Geräte
arbeitet, die in Zukunft hergestellt werden. Das Ziel besteht darin, daß unabhängig von
dem Gerätetyp
oder dem Hersteller des Geräts
immer ein hoher Prozentsatz an Basis-Funktionalität zugänglich ist.
-
Eine
herstellerspezifische oder gerätespezifische
Funktionalität,
die ebenfalls steuerbar ist, jedoch aus dem generalisierten Steuer-API
herausfällt, ist
nur über
die SDD-Information und andere Technologien zugänglich, um eine DCM zu erweitern.
-
In
der allgemeinsten Form kann die Klassifikation von Geräten oder
Untergeräten
durch ihre Hauptfunktionalität
geschrieben werden. Das AV/C-Steuerprotokoll des 1394-Standards
benutzt ein bequemes Verfahren zu Klassifizieren von Geräten, das
wir unten übernommen
haben. Im folgenden wird die erste Gruppe von Faktoren angegeben,
die für
die Klassifizierung eines Geräts
oder Untergeräts benutzt
werden:
- 1) Ob ein spezielles Gerät einen
Transportmechanismus besitzt,
- 2) ob der Nutzen diese Untergeräts meistens durch die Tatsache
definiert ist, daß ein
Signal hier endet (unabhängig
von der Tatsache, daß es ohne Änderungen
ausgebreitet werden kann).
- 3) ob ein spezielles Untergerät eine Signalquelle ist (z.B.
einen Signalausgang hat).
- 4) ob ein spezielles Gerät
ein Eingangssignal aufnimmt, irgendeine Art von Verarbeitung durchführt und
dann modifizierte Daten ausgibt.
- 5) ob es keinen Signaleingang oder -ausgang irgendwelcher Art
gibt (das Gerät
ist z.B. eine Einrichtung eines bestimmten Typs, z.B. ein Mechanismus
zum Positionieren einer Satellitenantenne).
-
Gemäß vorliegender
Erfindung lassen sich in einer zweiten Klassifizierungs-Schicht
Geräte
untersuchen, die einen Transportmechanismus enthalten. In diesem
Fall könnte
eine generelle Frage lauten: "Arbeitet
dieses Gerät
mit entfernbaren Medien?". Wenn
dies der Fall ist, wird eine Basisgruppe von Steuerungen angewendet,
wie Play(), Stop() oder auch Suchen(). Geräte mit Medien können nach
ihrer Fähigkeit
zur Aufzeichnung abgefragt werden, um die Organisation der Information
auf dem Medium zu bestimmen (Ist sie spurbasiert? Kontinuierlich
wie ein Band? Wie wird sie gemessen – SMPTE-Zeitcodes, Zeitversatz
gegenüber
einer bestimmten Position usw.).
-
In
der vorliegenden Erfindung kann ein Signalverarbeitungs-Service
durch die Art des Signals (der Signale) beschrieben werden, das
(die) er akzeptieren kann, und die Art, die er als Ergebnis produzieren
kann. Dies erfordert die Einrichtung gemeinsamer Definitionen für die Beschreibung
von Signaltypen und von Verfahren für den Zugriff auf die Services,
so daß ein
Client erkennen kann, wie er beschreiben muß, nach welcher Art von Service
gesucht werden soll und wie auf diesen Service zugegriffen wird.
-
Ein
Gerät,
das eine Art von Daten akzeptiert und die Möglichkeit bietet, diese Daten
an verschiedene Verbindungstypen übertragen kann (es nimmt z.B.
digitales Video als Eingangssignal auf und besitzt analoge Standard-Video-RCA-Klinkenstecker, die
die Daten zurücksenden
können),
kann als Datenwandler-Klasse agieren. Das DCM für diese Geräte registriert sich selbst
als Datenwandler in der Registrierdatenbank des Systems, so daß Clients
sie finden und benutzen können,
falls dies erforderlich ist.
-
Gerätezugriff
und -Steuerung
-
Sobald
eine Basis-Geräteklassifikation durchgeführt wurde,
liefert das generische DCM, das für dieses Gerät instantiiert
wurde, erfindungsgemäß ein API,
das veranlaßt,
daß Nachrichten
zu diesem Gerät
gesendet werden. Die Basisgruppe von Steuernachrichten, die (im
Fall von Ereignissen) zu einer speziellen Geräteklasse gesendet oder von
dieser empfangen werden können,
ist standardisiert und in der (in dieser Version des Dokuments nicht
verfügbaren)
Anlage detailliert. In der vorliegenden Erfindung repräsentieren
diese Nachrichten ein Basis-API, das von dem DCM präsentiert
wird.
-
Geräte-Management
-
Gemäß vorliegender
Erfindung stellt das DCM-API auch eine Gruppe von Services einer
höheren
Schicht zur Verfügung,
die eine komplexere Verwaltung des Geräts ermöglichen. Beispiele hierfür umfassen
die Gerätereservierung
und das Ereignis-Management. Im Fall der Gerätereservierung ist es wahrscheinlich,
daß eine
Anforderung für
ein Gerät
wegen bereits vorhandener Anforderungen für dieses Gerät zurückgewiesen
werden kann oder alternativ die Geräteanforderung für eine zukünftige Reservierung
für ein
zeitbasiertes Makro benutzt werden kann. In diesen Fällen liefert
das DCM ein Interface, das es einer Anwendung oder einem Service ermöglicht,
Anforderungen mit dem DCM in einer Warte schlange anzuordnen, d.h.
ein Gerät
zu reservieren oder eine Meldung zu empfangen, wenn ein Gerät verfügbar wird.
-
Verbindungs-Management
-
Die
DCMs der vorliegenden Erfindung stellen auch ein High-LeveI-API
zur Verfügung,
um es anderen Objekten zu ermöglichen,
den Zustand von Verbindungen zwischen Geräten abzufragen und solche Verbindungen
zu manipulieren. Dieses API wird primär von dem Routen-Manager benutzt,
ist jedoch auch für
irgendein anderes Objekt in dem System verfügbar. Das Verbindungs-Management
erlaubt die Einrichtung von Verbindungen sowohl intern zwischen
Untergeräteeinheiten
als auch extern zwischen Geräten.
Der Verbindungsstatur kann abgefragt werden, und die Verbindungsmöglichkeiten
(Signalformate) können
ebenfalls abgefragt werden.
-
SDD-Management
-
Die
DCMs der vorliegenden Erfindung stellen auch dem SDD-Management
ein generalisiertes Interface zur Verfügung. Dies ermöglicht es,
daß die SDD-Daten
in dem Gerät
abgefragt und benutzt werden können.
Das API ist in zwei Teile unterteilt. Teil 1 liefert APIs zur Erlangung
wohlbekannter Informationen aus den SDD-Daten, einschließlich des
Gerätebilds,
seines Namens und (falls verfügbar)
der URL-Adresse eines Orts für
ein Override-DCM oder andere Icons, die bei der Darstellung des
UI des Geräts
zu benutzen sind. Teil 2 des SDD-API dient dazu, einen detaillierteren
Zugriff auf funktionelle Aspekte des Geräts zu verschaffen.
-
Geräte-Darstellung und Benutzer-Interface
(Ui)
-
Gemäß vorliegender
Erfindung ist das DCM auch verantwortlich für die UI-Aspekte des Geräts. Im Fall
der Schicht-1-Interoperabilität
wird ein generisches UI benutzt, um eine Schnittstelle mit Benutzern herzustellen.
Dies kann durch Basis-SDD-Daten erweitert werden, die Aspekte ermöglichen,
wie das Spezifizieren von UI-Icons und der Zugriff auf sie durch
das generische DCM. Um das Verständnis
der Erfindung nicht unnötig
zu erschweren, werden die Details, wie das DCM mit dem UI-Management-System
zur Darstellung eines gerätespezifischen
UI zusammenwirkt, nicht im einzelnen diskutiert. In der vorliegenden
Erfindung besteht das Basismodell jedoch darin, daß ein interner
Management-Code
in dem DCM mit dem UI-Management-System zusammenarbeitet, um ein
UI für
das Gerät
zu repräsentieren.
Die Benutzereingabe wird dann von dem UI-Management-System an das
DCM weitergegeben, das sie dann in gerätespezifische Befehle umwandelt. Diese
Befehle werden mit Hilfe des Basis-Nachrichtensystems an das Gerät gesendet.
Falls Ant worten empfangen werden, werden diese über das DCM an das UI weitergeleitet.
Darüber
hinaus werden irgendwelche Statusänderungen des Geräts, z.B.
Ein-/Ausschalten, ebenfalls über
das Ereignissystem an das DCM weitergegeben, das sie für die Aktualisierung des
UI benutzt.
-
Service-Module
-
Service-Module
(z.B. die Service-Module 730) haben ein ähnliches
Konzept wie Geräte-Steuermodule. Sie
liefern ein Interface zu einem Service, der üblicherweise nur durch Software
zur Verfügung steht.
In der vorliegenden Erfindung gibt es zwei Typen von Service-Modulen, nämlich System-Services und
Anwendungs-Services. Ein System-Service ist ein allgemein bekannter
Service, der als Teil der HAVI-Software-Architektur vorgesehen ist.
Beispiele für diesen
Servicetyp sind Datenformat-Übersetzer,
Protokollwandler oder Graphik-Services. Diese Services haben allgemein
bekannte APIs, die als Teil der HAVI-Architektur definiert sind. Anwendungs-Services sind
Objekte, die für
und durch andere Service-Objekte erzeugt wurden. Diese Objekte liefern
ein wohldefiniertes API, wobei dieses API jedoch nicht öffentlich
ist. In der vorliegenden Erfindung benötigt jede Anwendung oder jedes
andere Objekt, das ein Anwendungsobjekt benutzten möchte, die
Kenntnis seines API und der Ruf-Semantik. Obwohl dies nicht erforderlich
ist, existieren System-Services
im allgemeinen während
der ganzen Lebensdauer des Systems. Anwendungs-Services existieren während der Lebenszeit
einer Anwendung und können
sehr kurzlebig sein.
-
System-Services
-
Gemäß vorliegender
Erfindung sind viele der von der AV-Architektur zur Verfügung gestellten
Services als Service-Module vorgesehen, die ihre Services in der
Registrierdatenbank des Systems registrieren und auf die mittels
Nachrichtübermittlung
zugegriffen werden kann. Beispiele für solche Services sind die
UI-Service-Module, die einen Mechanismus zur Verfügung stellen,
der es Geräten
ermöglicht, dem
Benutzer ein UI zu präsentieren,
Datenformat-Services, die AV-Daten zwischen verschiedenen Formaten
umwandeln.
-
DER DCM-MANAGER
-
Überblick
-
Gemäß vorliegender
Erfindung ist der DCM-Manager für
alle Aspekte zur Behandlung der Sammlung von DCMs verantwortlich,
die in einem FAV-Knoten residieren. Dies umfaßt die Aufgaben, alle möglichen
Geräte-Steuermodul-Kandidaten
zu entdecken, zu instantiieren und anzuordnen, die in einem gegebenen
System verfügbar
sind. Das Geräte-Ressourcen-Management
wird im allgemeinen von individuellen DCMs durchgeführt. Falls
jedoch mehrere Geräte
oder Services interagieren und einige der DCMs in verschiedenen
FAV-Knoten angeordnet
sind, wird ein Higher-Level-Management benötigt. Deshalb kommuniziert
der DCM-Manager mit anderen DCM-Managern in entfernten Knoten, um über die
netzwerkweite Zuteilung und Verwaltung von Geräte- und Untergeräte-Ressourcen
zu entscheiden. Seine Verantwortlichkeiten werden weiter unten diskutiert.
-
Entdeckung
und Aufzählung
von physikalischen Geräten
-
Gemäß vorliegender
Erfindung arbeitet der DCM-Manager mit den zugrunde liegenden Services des
Betriebssystems zusammen, um eine rohe Liste der verfügbaren Geräte zu gewinnen.
Es ist zu beachten, daß diese
DCMs in Abhängigkeit
von der zugrundeliegenden Bus-Technologie dynamisch sein können. Wenn
in dem vorliegenden Ausführungsbeispiel
physikalische Geräte
beispielsweise auf einem 1394-Bus kommen und gehen, kommen und gehen die
DCMs mit ihnen. In der gleichen Weise sind auch die Service- und
Gerätekomplex-DCMs
dynamisch, die als Reaktion auf Ereignisse in dem FAV-Knoten erzeugt
und zerstört
werden.
-
Diese
Aufgabe erfordert eine Interaktion sowohl mit Elementen der AV-Architektur
als auch mit Elementen des FAV-Host-OS, der Knoten-Hardware und
der Kommunikations-Hardware.
Dies ist darauf zurückzuführen, daß der exakte
Prozeß,
der für
die Entdeckung von Geräten
erforderlich ist, von der Systemumgebung abhängt. Der generelle Lösungsweg
zur Abfrage eines Geräts
und irgendwelcher SDD-Daten, die es enthält, um seine Eigenschaften zu
entdecken, wie dies oben in dem DCM-Abschnitt diskutiert wurde,
ist jedoch gemeinsam. In dem vorliegenden Ausführungsbeispiel erfordert dies,
daß der
DCM-Manager jedesmal, wenn das System initialisiert wird oder jedesmal,
wenn das System sich ändern
kann (z.B. wenn der Bus zurückgesetzt
wird), einen Satz Regeln in einer gegebenen Sequenz befolgt.
-
Erzeugung
von generischen DCMs
-
Gemäß vorliegender
Erfindung arbeitet der DCM-Manager für jeden Knoten genug, um festzustellen,
daß er
ein DCM erzeugen soll. Diese Arbeit wird für alle medienbezogen Geräte durchgeführt, die von
dem FAV-Knoten verwaltet werden. In dem vorliegenden Ausführungsbeispiel
können
Geräte
unter einer abweichenden Management-Technologie, z.B. USB-basierte
Geräte,
innerhalb der Architektur als DCMs in Knoten präsentiert werden, die USB-Kommunikation
unterstützen,
oder als spezielle DCMs, die als Proxies für ein entferntes Management-System
arbeiten. Es ist jedoch zu beachten, daß einige USB-basierte Geräte, wie
Festplattenlaufwerke, in Wirklichkeit so beschaffen sein können, daß sie einfach
als Medien-Aufzeichnungs- oder -Wiedergabegeräte mit wahlfreiem Zugriff erscheinen.
In diesen Fällen
werden sie als ein anderes "reales" Mediengerät behandelt.
In dem vorliegenden Ausführungsbeispiel
erzeugt der DCM-Manager für
jede medienbezogene Entität
ein generisches oder Schicht-1-DCM. Jedes DCM trägt später selbst die Verantwortung
dafür,
daß es
sich selbst medienspezifischer macht, falls dies möglich ist.
Dies wird weiter unten beschrieben.
-
Integration von Schicht-2-DCMs
-
In
Fällen,
in denen ein Override-(z.B. Schicht-2)-DCM verfügbar und zugänglich ist,
ist der DCM-Manager dafür
verantwortlich, zu versuchen, dieses DCM abzurufen und es in dem
FAV-Knoten zu installieren. In dem vorliegenden Ausführungsbeispiel
sind die Details, wie das Override-DCM und das generische DCM interagieren,
von dem DCM-Entwickler
abhängig.
In einigen Fällen
ersetzt es z.B. das Default-DCM vollständig, in anderen Fällen arbeitet
es mit dem Default-DCM zusammen, um dessen Fähigkeiten zu erweitern.
-
Gemäß vorliegender
Erfindung können
vom Hersteller gelieferte Schicht-2-DCMs aus verschiedenen Quellen
stammen. So können
Geräte
sie in ihrer ROM oder einem anderen Speichermechanismus, wie dem
Header einer Platte oder eines Bandes, mit sich führen. Sie
können
von einer Netz- oder ftp-Seite heruntergeladen werden, wenn solche
Möglichkeiten
dem FAV-Knoten zugänglich
sind, oder sie können
in der typischen Art der Computerindustrie über eine Installation von einer
Platte oder einem anderem Speichermedium geliefert werden. Um diese vom
Hersteller gelieferte Override-DCM-Fähigkeit zu ermöglichen,
wird ein Modell zum Erzeugen und Installieren von DCMs benötigt. In
dem vorliegenden Ausführungsbeispiel
liefert das Schicht-2-DCM, wenn es installiert ist, dem Client das
gleiche Basis-Interface wie ein Schicht-1-DCM, während es entweder zusätzliche
Interfaces oder Modifikationen der zugrundeliegenden Funktionalität bereitstellt.
-
DCM-Entfernung
-
Gemäß vorliegender
Erfindung ist der DCM-Manager dafür verantwortlich, daß DCMs zu geeigneten
Zeiten entfernt werden und den Clients gemeldet wird, daß DCMs entfernt
wurden. In dem vorliegenden Ausführungsbeispiel
können
die Regeln dafür,
wann eine DCM-Entfernung
stattfindet, und die Verteilung der Verantwortlichkeit für das Säubern zwischen
dem DCM und dem DCM-Manager passend auf die spezifischen Erfordernisse
eines speziellen HAVI-Netzes abgestellt werden.
-
Koordinieren
zwischen Mehrfach-DCMs
-
Einige
komplexe Services unter Mehrfach-DCMs, z.B. das Anordnen von Befehlen
von komplexen Operationen in einer Warteschlange usw., machen es
erforderlich, daß der
DCM-Manager Mehrfach-DCMs koordiniert, um diese Operationen auszuführen. Dies
wird durch das "Befehlsmodell" beeinflußt, das
es für
Clients vorsieht. Wenn z.B. ein API einer oberen Schicht definiert
wird, mit dem der Kunde Aktionen auf der Basis von HH:MM:SS:FF-Zeitcodes
spezifizieren kann, muß zwischen
diesem Zeitmodell und dem, womit die Hardware oder die zugrundeliegenden
Unterstützungs-Module
umgehen, übersetzt
werden. Es ist zu beachten, daß komplexen,
zeitbasierten Operationen Rechnung getragen werden muß, die durch
mechanische Verzögerungen
usw. beeinflußt
werden können.
Dieser Typ von Koordination erfordert die Beachtung des Echtzeitverhaltens
in dem Netz und ist von der physikalischen und der Software-Infrastruktur
abhängig,
die eine gewisse Garantie liefern muß.
-
Es
sei nun auf 8 Bezug genommen, in der ein
logisches Schichtdiagramm 800 einer HAVI-Architektur gemäß vorliegender
Erfindung dargestellt ist. Die in dem Diagramm 800 dargestellte
Komponenten gleichen den in dem Diagramm 700 dargestellten
Komponenten, wobei das Diagramm 800 jedoch so organisiert
ist, daß Prozesse
einer hohen Schicht (z.B. Anwendungen 801) oben angeordnet sind,
während
Prozesse einer niedrigeren Schicht (z.B. das 1394-Modul 830)
unten angeordnet ist. Das Diagramm 800 zeigt auch andere
Services 810, Transport-Adaptierungs-Module 815 und
andere Module 840.
-
Wie
oben beschrieben wurde, kann die HAVI-Gesamtarchitektur in Form
von Kommunikations-Komponenten und Service-Komponenten dargestellt
werden. Anwendungen 801 in der höchsten Schicht der Architektur
benutzen die Services und die Kommunikations-Komponenten (z.B. DCMs 720, Service-Module 730 usw.).
Umgekehrt benutzt eine Anzahl von Service-Komponenten (z.B. die
Service-Module 730, die DCMs 720 usw.), die zugrundeliegenden
Kommunikations-Komponenten (z.B. das Messaging 702, die
Transport-Adaptions-Module 815 usw.). So kann z.B. eine
der Anwendungen 801 über die
Registrierdatenbank 706 das Handle für einen digitalen Videorekorder
(DVTR) anfordern und dann einen Abspiel-Befehl an das Gerät senden.
Wie oben beschrieben wurde, kommunizieren Komponenten in der HAVI-Architektur
unter Verwendung des zugrundeliegenden Nachrichtensystems, d.h.
die Module benutzen Nachrichtenübermittlung.
-
9 zeigt
ein Diagramm 900 mit lokaler und entfernter Nachrichtenübermittlung
in der HAVI-Architektur eines Ausführungsbeispiels. Die Nachrichten-Komponente 702 ist
so dargestellt, daß sie sowohl
lokale Nachrichtenübermittlung
als auch entfernte Nachrichten übermittlung
handhabt. Deshalb ist die Nachrichten-Komponente 702 als
Basis des Diagramms 900 dargestellt. Lokale Nachrichten
sind als Abschnitte 902a, 903a, 904a zu
verschiedenen Anwendungen 901 bis 904 dargestellt.
Eine entfernte Nachricht ist als Pfeil 901b dargestellt.
Aus Gründen der
klaren Darstellung ist in dem Diagramm 900 und in den folgenden
Diskussionen die lokale Kommunikation über das Nachrichten-System
nicht gezeigt. Lokale Nachrichtenübermittlung (z.B. die Pfeile 901a bis 904a)
ist vielmehr so dargestellt, als ob sie auf direkten Funktions-Abrufen
zwischen Komponenten basieren würden.
-
10 zeigt
ein Diagramm 1000 einer Nachricht, die in der HAVI-Architektur
eines Ausführungsbeispiels über 1394
gesendet wird. In dem Diagramm 1000 ist eine Nachricht
1 (z.B. der Pfeil 820a) eine Anforderung von einer der
Anwendungen 801 an die Registrierdatenbank 706 (über das
Abruf-API) für das
Handling eines DVTR-Geräts.
Die Registrierdatenbank 706 schickt in der Nachricht 2
(z.B. Pfeil 820b) ein Handle für das DVTR-DCM zurück. Dieses Handle
ist die Nachrichtenadresse, die für das Nachrichtensystem benutzt
wird.
-
Gemäß vorliegender
Erfindung benutzt die Anwendung dann das Handle, um mit der Nachricht 3
(z.B. 820c) das DCM für
den DVTR aufzurufen. Das DCM wandelt den Anwendungs-Aufruf des Abspiel-Befehls
in einen internen Befehl um, der zu der Nachrichten-Komponente gesendet
wird, Nachricht 4 (z.B. Pfeil 820d). Dieser interne Befehl
ist Teil des wohldefinierten Befehlssatzes der Schicht 1, d.h. es ist
ein HAVI-Befehl. Die Nachrichten-Komponente 702 benutzt
dann intern die Handle-Information um festzulegen, an welchem Bus
sich dieses Gerät
befindet. Wenn sie entdeckt, daß es
an den IEEE-1394-Bus
angeschlossen ist, benutzt es das IEEE-1394-Transport-Adaptions-Modul
(TAM) 830, um die Nachricht in ein 1394-Paket umzuwandeln, Nachricht
5 (z.B. Pfeil 820e), das in dem Datenteil eines FCP-Pakets
angeordnet wird. Das TAM ruft dann den 1394-Gerätetreiber, Nachricht 6 (z.B.
Pfeil 820f), um die Nachricht über 1394 zu senden.
-
Auf
der (nicht dargestellten) Empfangsseite wird die Nachricht an den
1394-Gerätetreiber
ausgeliefert und dann über
ein 1394-TAM an die Nachrichten-Komponente weitergegeben. Die Nachrichten-Komponente
empfängt
ein HAVI-Nachrichtenpaket, das sie dann über eine Nachrichten-Warteschlange
oder eine Rückruffunktion
direkt an den Empfangs-Code liefert. Wenn das empfangene Gerät in dem
vorliegenden Ausführungsbeispiel
ein IAV-Gerät ist, besitzt
dieses nur die Kommunikations-Komponente der CCEP-Architektur und
die Registrierdatenbank. Jede andere Funktionalität, die sie besitzt,
ist gerätespezifisch.
-
Es
ist zu erwähnen,
daß das
vorherige Beispiel in 10 eine Unterscheidung in der
HAVI-Architektur zwischen dem Nachrichten-System und dem für die Steuerung
von Geräten
benutzten Befehlssatz zeigt. Gemäß vorliegender
Erfindung ist das Nachrichten-System
ein allgemeiner Nachrichten-Mechanismus, der ein Nachrichtenpaket
mit einem Datenteil vorsieht, dessen Inhalte für das Nachrichten-System völlig undurchsichtig
sind. Das Nachrichten-System kann z.B. eine private Anwendung an Anwendungsbefehle,
AVC-CTS-Befehle,
CAL-Befehle oder an irgendeinen anderen Befehl übergeben. Das DCM ist die Entität, die für die Kommunikation
mit entfernten Geräten
verantwortlich ist, es benutzt das Nachrichten-System zum Transportieren von
Befehlen, die für
dieses Gerät
spezifisch sind. Für
ein Schicht-1-HAVI-konformes Gerät
ist der von dem Nachrichten-System
transportierte Befehlssatz als Teil der CCEP-Architektur definiert.
Nachrichten, die von dem Nachrichten-System zwischen DCMs und Geräten transportiert
werden, die sie steuern, enthalten diese wohldefinierten Befehle.
Für Schicht-2-Geräte ist der
erweiterte Befehlssatz undefiniert, es können reine AV/C-CTS, CAL- oder
irgendwelche anderen Befehle sein.
-
Es
sei nun auf 11 Bezug genommen, in der ein
Diagramm 1100 einer Anwendung dargestellt ist, die eine
andere Anwendung in einem Ausführungsbeispiel
der HAVI-Architektur aufruft. Das Diagramm 1100 zeigt eine
auf einem Gerät 1101 laufende
Anwendung 801a, die eine Nachricht 1105 der Nachrichten-Systeme 702a und 702b an
eine Anwendung 801b weitergibt, die auf einem getrennten Gerät 1102 läuft. Wie
oben beschrieben wurde, kann jede Anwendung, die in dem HAVI-Netz
läuft,
auf irgendeine andere Anwendung zugreifen, wenn sie ein Nachrichten-Handle
für diese
Anwendung besitzt. Um ein Nachrichten-Handle zu akquirieren, wird
der gleiche Prozeß benutzt
wie für
ein entferntes IAV-Gerät
(z.B. wie in 10 beschrieben). Sobald ein Nachrichten-Handle
verfügbar
ist, kann die Quell-Anwendung 801a eine Nachricht 1105 an
die Ziel-Anwendung 801b senden. Wie oben beschrieben wurde,
ist das Format dieser Nachrichten völlig abhängig von der Anwendung und
betrifft somit die CCEP-Architektur nicht. Es liefert einfach einen
Kommunikations-Mechanismus zum Senden und Empfangen von Nachrichten
zwischen den Anwendungen.
-
Es
ist zu beachten, daß in
dem obigen Beispiel angenommen wird, daß die Anwendungen 801a und 801b sich
in verschiedenen AV-Geräten 1101 und 1102 befinden.
Wie oben diskutiert wurde, ist es jedoch ohne weiteres auch möglich, daß diese
Anwendungen 801a und 801b sich in dem gleichen AV-Gerät befinden
und das Nachrichten-System einen rein lokalen Kommunikations-Anruf
ausführt
statt eines Anrufs, der zum Transportieren der Nachricht das 1394-Netz
benutzt.
-
Aufrufen eines Software-Service
-
Ein
Software-Service ist ein spezieller Fall des obigen allgemeinen
Anwendungsfalls. Gemäß der Erfindung
ist ein Software-Service einfach eine Anwendung, die Teil der System-Infrastruktur
ist. Wenn in diesem Fall ein Modul einen System-Service, z.B. die
UI-Komponente aufrufen
möchte,
benutzt es hierfür
die Nachrichten-Komponente. Falls die UI-Komponente lokal ist, ist
der Anruf vollständig in
einem AV-Gerät
enthalten. Falls die UI-Komponente entfernt ist, wird der Anruf
hingegen über
das 1394-Netz zu dem entfernten AV-Gerät geleitet, in dem das Nachrichten-System
den Anruf an den UI-System-Service sendet.
-
Hinzufügen eines
neuen Geräts
zu dem HAVI-Netz
-
Beim
Hinzufügen
von neuen Geräten
zu einem HAVI-Netz gibt es drei generelle Situationen: Behandlung
eines Legacy-Geräts
unter Verwendung eines Legacy-Protokolls, das über ein Nicht-1394-Netz transportiert
wird; Behandlung eines Basis-Geräts
unter Verwendung eines Nicht-HAVI-Protokolls über ein 1394-Netz und Behandlung
eines neuen IAV-Geräts, das
HAVI-konform ist.
-
Im
Fall des Hinzufügens
eines Legacy-Geräts
in dem vorliegenden Ausführungsbeispiel
kann ein Legacy-Gerät
nur direkt von einem FAV-Knoten gesteuert werden. Wie oben beschrieben
wurde, muß für jedes
Legacy-Gerät
ein Legacy-DCM erzeugt werden. Es sei ein FAV betrachtet, das einen 1394-Port
und einen Ethernet-Port besitzt. Das CMM-Modul wurde so konfiguriert,
daß es
sowohl 1394 als auch Ethernet verwaltet. Wenn das Legacy-Gerät dem FAV
bekannt wird, wird es zunächst von
dem CMM-Modul erkannt. Es ist zu beachten, daß der hierfür benutzte Mechanismus nicht
im Rahmen der CCEP-Architektur liegt. Er ist für die Kommunikationsmedien
spezifisch. Sobald das CMM ein neues Gerät erkennt, geht es über den
von ihm benutzten medienspezifischen Mechanismus daran, den Typ
des Geräts
zu bestimmen. Dies ist wieder nicht Teil der CCEP-Architektur. Es
fordert das DM ggf. auf, ein Legacy-DCM für dieses Gerät zu instantiieren.
Es sei angenommen, daß der
FAV-Knoten mit diesem DCM vorkonfiguriert wurde.
-
Sobald
in dem vorliegenden Ausführungsbeispiel
das DCM erzeugt ist, registriert es sich selbst in der gleichen
Weise wie irgendein Standard-DCM. Ein schwieriger Unterschied zwischen
diesem DCM und anderen DCMs besteht jedoch darin, daß das Kommunikationsmodell
und der Befehlssatz, der für die
Steuerung des Legacy-Geräts
benutzt wird, der CCEP-Architektur völlig unbekannt sind. Es ist
z.B. möglich,
daß das
Gerät ein
IP-Gerät
ist, das einen Druckerservice implementiert. In diesem Fall liefert das
DCM einen Befehlssatz, wie Drucken, Status usw. Wenn eine Applikation
das DCM-API mit einer Druckanforderung aufruft, wird der Druckbefehl
von dem DCM über
einen IP-Stapel an die Druck vorrichtung gesendet. Die tatsächlichen
Details, wie dies geschieht, sind implementationsspezifisch.
-
Gemäß vorliegender
Erfindung besteht eine Möglichkeit
darin, daß das
Legacy-DCM eine volle Implementierung des IP-Stapels in dem DCM
aufweist und weiß,
wie der Ethernet-Gerätetreiber
einzubinden ist. Eine andere Möglichkeit
besteht darin, daß das
FAV-Gerät
einen IP-Stapel und ein Higher-Level-API, wie z.B. Steckverbindungen,
zur Verfügung
stellt. Dies sind Details der FAV-Implementierung und nicht Teil
der CCEP-Architektur. Es ist jedoch zu beachten, daß das Legacy-DCM
als "Proxy"-DCM arbeitet. Sobald
es in der Registrierdatenbank registriert wurde, ist es für alle anderen
Module in dem Heim-Netz sichtbar. Sie können alle sein API aufrufen,
und es führt
die notwendige Umwandlung in die private Befehlssprache des Ethernet-IP-Druckers durch.
-
Falls
in dem vorliegenden Ausführungsbeispiel
ein Basis-AV-Gerät
hinzugefügt
wird und wenn das CMM über
das neue Gerät
informiert ist, erkennt es, daß dies
kein CCEP-Knoten ist, es entdeckt jedoch auch, daß ein DCM
für dieses
Gerät verfügbar ist.
In diesem Fall ist das CMM dafür
verantwortlich, einen Mechanismus zu implementieren, der es ihm erlaubt,
das DCM zu laden und das DM aufzufordern, dieses DCM zu erzeugen.
Sobald das DCM instantiiert ist, benutzt es dann einen rein privaten
Kommunikationsmechanismus, um auf das Gerät zuzugreifen und es zu steuern.
Wie oben beschrieben wurde, ist in dem vorliegenden Ausführungsbeispiel
ein Basis-AV-Gerät
ein solches, das 1394 benutzt und das Override-DCM implementiert,
jedoch kein Teil der CCEP-Architektur implementiert und keine Schicht-1-HAVI-Befehle
implementiert. Ein Beispiel für
dieses Gerät
könnte
ein solches sein, das ein Override-DCM enthält, die CCEP-Kommunikations-Infrastruktur
jedoch nicht unterstützt.
-
Für den Fall,
daß ein
IAV-Gerät
hinzugefügt wird,
ist zu beachten, daß die
Anwendung in den vorangehenden Beispielen die Registrierdatenbank
abfragt, um ein Nachrichten-Handle für das Gerät zu erlangen, mit dem es kommunizieren
möchte.
Es ist zu beachten, daß für ein FAV-Gerät das zurückgesendete
Handle immer für
den Zugriff auf das DCM benutzt wird. Es ist nicht möglich, Nachrichten
direkt zu dem Gerät
zu senden. Das folgende Beispiel dient dazu, zu verstehen, wie ein
zu dem Netz hinzugefügtes
Gerät über die
Registrierdatenbank verfügbar
wird.
-
Es
sei z.B. angenommen, daß ein
neues Gerät
(z.B. ein Camcorder) in das (z.B. 1394-basierte) HAVI-Netz eingesteckt wird.
Dies verursacht ein Rücksetzen
des Busses. Das Rücksetzen
des Busses wird von dem Kommunikations-Medien-Manager (CMM) in dem
IRD bewirkt. Das CMM ist verantwortlich, die SDD-Daten des Camcordergeräts abzufragen,
um seine Fähigkeiten
zu ermitteln. Wenn man annimmt, daß das Gerät ein Schicht-1- Gerät ist, d.h. kein
ladbares DCM hat, informiert das CMM den Geräte-Manager, daß ein neues
Gerät installiert
wurde. Der Geräte-Manager
erzeugt ein neues DCM für
diesen Gerätetyp
und registriert das DCM mit der Registrierdatenbank. Wenn das DCM
initialisiert wird, steht es ihm frei, um das Gerät direkt
abzufragen, um mehr Informationen über dieses selbst herauszufinden
und sich selbst, falls nötig,
zu spezialisieren, es kann z.B. auf die UI-Information zugreifen,
wenn diese in dem Gerät
existiert. Sobald das DCM in der Registrierdatenbank registriert
ist, kann ein anderes Modul die Registrierdatenbank abfragen, um
ein Handle für
das Gerät
zu erlangen und mit dem DCM kommunizieren, um auf das Gerät zuzugreifen
und es zu steuern und dem Benutzer das UI zu präsentieren.
-
12A und 12B zeigen
eine exemplarische UI-Anzeige (z.B. auf einem Fernsehbildschirm)
für ein
solches Gerät
(z.B. den Camcorder). 12A zeigt
eine Textmenü-Anzeige,
in der dem Benutzer verschiedene Steuerungen präsentiert werden, die mit Hilfe
der Steuerungsnamen und Steuerungswerte modifiziert werden können. Der
Benutzer kann Tasten wählen
(was dem Drücken
einer Taste gleicht). 12B zeigt
eine UI-Anzeige der "nächsten Schicht" für den Camcorder.
Hier wählte
der Benutzer das Hauptpanel aus dem Menü in 12A, und
die Anzeige präsentiert
Steuerungen auf der Basis ihrer Gruppierungs-Information. In dem
vorliegenden Ausführungsbeispiel
werden Gruppennamen auf einem mit Registerkarten versehenen Interface
benutzt, um dem Benutzer das Navigieren zwischen Gruppen innerhalb
des ausgewählten
Paneels zu ermöglichen.
-
Es
sei nun auf 13 Bezug genommen, in der ein
Flußdiagramm
eines Prozesses 1300 nach einem Ausführungsbeispiel der Erfindung
dargestellt ist. Der Prozeß 1300 zeigt
die Schritte eines Verfahrens zur Bereitstellung von nahtloser Interoperabilität und Integration
einer Mehrzahl von Geräten
in einem HAVI-Netzwerk mit Hilfe der in jedem Gerät gespeicherten
SDD-Information. Der Prozeß 1300 beginnt in
dem Schritt 1301, in dem ein neues Gerät an das HAVI-Netz angeschlossen
wird. In dem Schritt 1302 wird das Gerät abgefragt, um eine Beschreibung (z.B.
SDD) von Schicht-1-Funktionen zu erhalten, die von dem Gerät unterstützt werden.
In dem Schritt 1303 wird auf der Basis der SDD ein Schicht-1-DCM, das
die Schicht-1-Funktionen implementiert, für das Gerät erzeugt. In dem Schritt 1304 prüft der Geräte-Manager,
ob das neue Gerät
Software für
ein Schicht-2-DCM
enthält.
-
Es
sei weiter auf 13 Bezug genommen. Falls das
neue Gerät
Software zum Implementieren von Schicht-2-Funktionen enthält, wird
die Software in dem Schritt 1305 aus dem Gerät aufgerufen,
und in dem Schritt 1306 wird unter Verwendung der Software
ein Schicht-2-DCM erzeugt, das die Schicht-2-Funktionen implementiert.
In den Schritten 1307 und 1308 wird über das
Schicht-2-DCM kontinuierlich auf das Gerät zugegriffen. Falls das neue Gerät keine
Software für
ein Schicht-2-DCM enthält, wird
in den Schritten 1309 und 1310 über das Schicht-1-DCM
kontinuierlich auf das Gerät
zugegriffen. Auf diese Weise ermöglicht
die Kombination aus der Schicht-1-DCM und der Schicht-2-DCM der
Erfindung, eine nahtlose Interoperabilität und Integration des neuen
Geräts
mit der Mehrzahl von Geräten
in dem Netz bereitzustellen.
-
14 zeigt
ein Flußdiagramm
eines Prozesses 1400 nach einem Ausführungsbeispiel der Erfindung.
Der Prozeß 1400 zeigt
die Schritte eines Verfahrens zur Bereitstellung einer Basis-Befehls-Funktionalität und einer
erweiterten Befehls-Funktionalität
zwischen mehreren Geräten
in einem HAVI-Netz. In dem Schritt 1401 wird ein Gerät mit dem
HAVI-Netz verbunden, das ein FAV-Gerät enthält. In dem Schritt 1404 erzeugt
das FAV-Gerät ein
generisches Schicht-1-DCM für
das Gerät.
Wie oben beschrieben wurde, ist das generische Schicht-1-DCM eine
Basis-Abstraktion der Fähigkeiten
des Geräts.
Das generische Schicht-1-DCM versetzt das Gerät in die Lage, auf einen Basis-Befehlssatz
aus dem FAV-Gerät zu antworten.
In den Schritten 1403 und 1404 benutzt das FAV-Gerät das generische
DCM, um das Gerät
abzufragen und festzustellen, ob das Gerät eine beschreibende Information (z.B.
SDD) enthält.
Wie oben beschrieben wurde, beschreibt die beschreibende Information
die Fähigkeiten
des Geräts.
Falls das Gerät
beschreibende Informationen enthält,
erzeugt das FAV-Gerät
in dem Schritt 1405 ein parametrisiertes DCM für das Gerät, indem
es das generische DCM auf der Basis der beschreibenden Information
modifiziert. In den Schritten 1406 und 1407 wird
das Gerät
unter Verwendung des parametrisierten Schicht-1-DCM kontinuierlich gesteuert.
Falls das Gerät
keine beschreibende Information enthält, wird das FAV-Gerät in den
Schritten 1408 und 1409 kontinuierlich über das
generische Schicht-1-DCM gesteuert.
-
Es
sei nun auf 15 Bezug genommen, in der ein
Flußdiagramm
eines Prozesses 1500 nach einem Ausführungsbeispiel der Erfindung
dargestellt ist. Der Prozeß 1500 zeigt
die Schritte eines Verfahrens zur Sicherstellung zukünftiger
Aufrüstbarkeit und
Erweiterbarkeit von Geräten
in einem HAVI-Netz. In dem Schritt 1501 wird ein Schicht-1-Default-DCM für ein mit
dem Netz verbundenes Gerät
erzeugt. Wie oben beschrieben wurde, ist das Schicht-1-Default-DCM
so konfiguriert, daß es
zumindest einen minimalen Grad an Interoperabilität zwischen
dem Gerät
und anderen Geräten
an dem HAVI-Netz gewährleistet.
In dem Schritt 1502 greifen andere Geräten über das Schicht-1-Default-DCM
auf das Gerät zu.
Wie oben beschrieben wurde, ermöglicht
das Default-DCM dem ersten Gerät,
auf einen Default-Befehlssatz aus anderen Geräten in dem HAVI-Netz zu antworten.
In dem Schritt 1503 wird ein aktualisiertes Schicht-1-DCM
für die
Geräte
entweder empfangen oder nicht empfangen. In dem Schritt 1504 wird
ein aktualisiertes Schicht-2-DCM für das Geräte entweder empfangen oder
nicht empfangen. Wie oben beschrieben wurde, ermöglichen die Aktualisierungen eine
Weiterentwicklung der Fähigkeiten
und der Funktionalität
des Geräts
(z.B. wenn neue, effizientere Software verfügbar wird).
-
Wenn
ein aktualisiertes Schicht-1-DCM empfangen wird, wird dieses aktualisierte
Schicht-1-DCM in
den Schritten 1509 und 1508 eingebaut (dies kann z.B.
darin bestehen, daß nur
das laufende Schicht-1-DCM modifiziert wird), und über dieses DCM
wird kontinuierlich auf das Gerät
zugegriffen, bis eine spätere
Aktualisierung verfügbar
ist. Wenn ein aktualisiertes Schicht-2-DCM empfangen wird, trennt
der DCM-Manager in dem Schritt 1505 das laufende DCM ab,
und in den Schritten 1506 und 1507 wird das aktualisierte
Schicht-2-DCM verknüpft, und
die Registrierdatenbank wird aktualisiert, um anderen Geräten in dem
HAVI-Netz den Zugriff auf das aktualisierte Schicht-2-DCM zu ermöglichen.
Dieses DCM wird kontinuierlich für
den Zugriff auf das Gerät benutzt,
bis ein späteres,
aktualisiertes Schicht-2-DCM empfangen wird. Wenn weder ein aktualisiertes
Schicht-1- noch ein aktualisiertes Schicht-2-DCM empfangen wird,
setzt der Prozeß 1500 in
dem Schritt 1510 die Operation mit dem laufenden DCM (z.B.
dem zuletzt installierten DCM) fort.
-
16 zeigt
ein Flußdiagramm
eines Prozesses 1600 nach einem Ausführungsbeispiel der Erfindung.
Der Prozeß 1600 zeigt
die Schritte eines Verfahrens zum Bereitstellen von nahtloser Interoperabilität und Integration
von Legacy-Geräten
mit den HAVI-konformen Geräten
in einem HAVI-Netz. Der Prozeß 1600 beginnt
in dem Schritt 1601, in welchem ein Legacy-Gerät mit dem
HAVI-Netz verbunden wird. In dem Schritt 1602 wird das
Legacy-Gerät über das
proprietäre
Protokoll abgefragt, um einen Satz von Basis-Fähigkeiten des Legacy-Geräts zu ermitteln.
Wie oben beschrieben wurde, benutzen HAVI-konforme Geräte ein gemeinsames
HAVI-definiertes Protokoll. Das Legacy-Gerät kommuniziert typischerweise
(falls überhaupt)
mit externen Geräten mittels
eines proprietären
Protokolls. In dem Schritt 1603 bildet der Prozeß 1600 einen
Satz von Basisbefehlen aus dem gemeinsamen Protokoll auf den Satz von
Basis-Fähigkeiten
des Legacy-Geräts
ab. In dem Schritt 1604 wird ein Schicht-1-DCM für das Legacy-Gerät erzeugt.
Wie oben beschrieben wurde, basiert das DCM auf dem Satz von Basisbefehlen.
In den Schritten 1605 und 1606 wird über das Schicht-1-DCM
kontinuierlich auf das Legacy-Gerät zugegriffen, so daß die anderen
HAVI-Geräte
auf den Satz von Basis-Fähigkeiten
des Legacy-Geräts
zugreifen können.
-
17A zeigt ein Flußdiagramm eines Prozesses 1700 nach
einem Ausführungsbeispiel
der Erfindung. Der Prozeß 1700 zeigt
die Schritte eines Verfahrens zur Steuerung von Geräten innerhalb
eines Heim-Audio-/Video-Netzes unter Verwendung eines Anwendungsprogramms
aus einem externen Service-Provider. In dem Schritt 1702 wird
ein Anwendungsprogramm von einem Service-Provider (z.B. über Kabelfernsehen,
Internet-Webseite
usw.) aufgerufen. In dem Schritt 1703 überträgt der Service-Provider das
Anwendungsprogramm aus dem Service-Provider zu einem intelligenten
Empfangs/Dekodiergerät
des HAVI-Netzwerks über
einen logischen Kanal. Die Anwendung wird anschließend in
einer computerlesbaren Speichereinheit des intelligenten Empfängers/Dekodierers
instantiiert.
-
In
dem Schritt 1704 von 17A fragt
das Anwendungsprogramm die HAVI-Registrierdatenbank des Geräts (z.B.
eines FAV-Geräts)
ab, um DCMs in dem Netz zu lokalisieren, und wählt ein entsprechendes DCM
aus der Registrierdatenbank aus. In dem Schritt 1705 bestimmt
die heruntergeladene Anwendung eine Kommunikationspunkt-Information aus
dem ausgewählten
DCM. In dem Schritt 1706 steuert die Anwendung ein entsprechendes
Gerät des
HAVI-Netzes durch Kommunikation mit dem Gerät mit Hilfe der Information über den
Kommunikationspunkt. Falls die Anwendung ein anderes Gerät steuern
soll, werden in dem Schritt 1707 die Schritte 1704 bis 1706 wiederholt.
Falls die Anwendung kein anderes Gerät steuern soll, endet der Prozeß 1700 in dem
Schritt 1708.
-
17B zeigt ein Diagramm eines HAVI-Netzes 1750 mit
dem Service-Provider 1720 entsprechend dem Prozeß 1700 von 17A. Wie oben beschrieben wurde, wird das Anwendungsprogramm von
dem Service-Provider 1720 in das HAVI-Netz 1750 heruntergeladen.
Die Anwendung wird in dem Prozessor 601 und dem Speicher 602 des
intelligenten Geräts
(z.B. der Set-Top-Box 301) instantiiert. Das HAVI-Netz 1750 enthält auch
vier HAVI-Geräte, Gerät 0 bis
Gerät 3
(z.B. Fernseher, DVTR, usw.).
-
DCM-MANAGEMENT-API
-
Im
folgenden wird ein Beispiel für
ein DCM-Management-API nach einem Ausführungsbeispiel der Erfindung
vorgestellt. In dem vorliegenden Ausführungsbeispiel beinhalten die
gemeinsamen DCM-Befehle Bereiche, wie Verbindungs-Management, Informations-
und Status-Abfrage für
das Gerät und
ihre Steckverbindungen usw.. Unabhängig von dem von dem DCM repräsentierten
Gerätetyp
müssen
solche Nachrichten-Sätze
unterstützt
werden.
-
Das
Folgende ist eine Liste von DCM-Management-Nachrichten, die in dem
vorliegenden Ausführungsbeispiel
von allen DCMs für
die HAVI-Architektur unterstützt
werden müssen:
ChannelUsage(plug);//stellt
den von der Steckverbindung der spezifizierten Einheit benutzten
isoch. 1394-Kanal zurück
PIugUsage(channel);//stellt
die dem spezifierten Kanal zugeordnete Steckverbindung zurück
GetDevicePIugCount(count);//stellt
die Zahl von Einheits-Steckverbindungen an dem Gerät zurück
EstablishlntemalConnection(sourcePlug,
destPlug);
EstabIishExternalConnection(sourcePlug, destPlug)
StartDataFlow(plug);
StopDataFlow(plug);
GetSourceConnection(in
dest, out source);//wenn eine Ziel-Steckverbindung gegeben ist,
wird die Quelle zurückgestellt,
mit der sie verbunden ist, (stellt die Quellen-Steckverbindung des
sendenden Geräts zurück, das
denselben isoch. Kanal benutzt)
GetDestinationConnection(in
source, out);
GetAllConnection();
NotifyOnConnectionChange();
GetDynamicConnectionCapability();//berichtet,
ob das Zielgerät
dynamische Verbindungsänderungen unterstütz oder
nicht (z.B. Nicht-1394-Gerät)
LockConnection(plug);
UnIockConnection(plug);
GetConnectionStation(plug);//Status
= besetzt, Datenübertragungsformat,
Kanal, Bandbreitenbenutzung, usw.
BreaklnternalConnection(plug);
BreakExternalConnection(plug);
GetlnputSignalFormat(plug);
setlnputSignalFormat(plug);
NotifylnputSignaIFormat(plug);//sendet
eine Meldung, falls Signalformat geändert ist
GetSupportedInputSignaIFormats(plug);//wiederhole
das obige für
Ausgangssignale
GetFunctionlnfo();//stellt Information über die
funktionalen Module in dem Gerät
(z.B., die AV/C-Untereinheiten) zurück
GetDeviceType();
GetVendorName();
Get
VendorLogo();
SetDevicePowerState(powerstate);
GetDevicePowerState(powerstate);
GetSupportedPowerStates(list);
NotiyPowerState(powerstate);
ReserveDevice();
GetDeviceReservationStatus();
NotifyDeviceReservationStatus();
VendorDependentCommand(command
parameters);//einen zuliefererspezifischen Befehl in dem nativen
Protokoll durchgeben
-
Funktionssteuermodul-(FCM)-Nachrichten
-
Die
funktionsspezifischen Nachrichten entsprechen den typischen nativen
Befehlen, wie ABSPIELEN, STOP, RÜCKSPULEN
für die
Funktionalität
eines Videorekorders in einem Gerät. Da diese Nachrichten an
einen wohldefinierten Ort in einem Gerät adressiert sein müssen, benutzt
man das FCM (Funktionssteuermodul), um das Ziel dieser Nachrichten
darzustellen. Wie DCMs gibt es einige Nachrichten, die mit der Administration
und dem Management von FCMs umgehen müssen. Diese Nachrichten werden
von allen FCMs, unabhängig
von ihrer speziellen Domäne,
unterstützt.
Die Nachrichten sind folgende:
GetFunctionType();//Videorekorder,
Tuner, Platte, usw.
GetFunctionlnfo();//detailliertere Information über die Function,
wie z.B. die spezielle Art des Disc-Players DVD, CD, usw.)
GetNumberOfPlugs(inputPlugs
outputPlugs);//stellt die Zahl von Quellen- und Ziel-Steckverbindungen für das Funktions-Modul
zurück
GetFunctionStatus();//laufender
Status des Funktions-Moduls, einschließlich des Status die Quellen- und
Ziel-Steckverbindungen (Eingang und Ausgang)
GetPowerState(powerState);//Funktions-Module können individuell
steuerbare Stromversorgungszustände
haben
SetPowerState(powerState);
GetSupportedPowerStates(list);
GetSupportedDataFormats(list);//stellt
die von diesem Funktions-Modul unterstützten Dateiformate wieder her
NativeCommand(params);//sendet
dem Funktions-Modul einen Befehl in seinem nativen Befehls-Protokoll
-
Die
funktionellen Domain-Nachrichten basieren auf dem Funktionstyp (Videorekorder,
Tuner, usw.). Dieses sind die typischen ABSPIEL-, STOP-, RÜCKSPUL-Befehle,
die man erwartet.
-
Die
Schicht-1-Interoperabilität
umfaßt
sowohl Interaktionen von Gerät
zu Gerät
als auch von Mensch zu Gerät.
Die funktionalen Nachrichtensätze,
wie ABSPIELEN, STOP und RÜCKSPULEN
werden für
die Interaktion von Gerät
zu Gerät
benutzt. Ein Beispiel hierfür
wäre ein
Video-Schnittsoftware-Paket, das irgendeinen Typ von Videorekorder steuern
möchte.
Das Programm ist mit einem sehr spezifischen Satz von Benutzer-Interface-Steuerungen
aufgebaut, die für
alle Videorekorder passen. Wenn der Benutzer mit der Anwendung interagiert, sendet
die Anwendung ihrerseits domänenspezifische
Befehle, wie ABSPIELEN und STOP an das Zielgerät.
-
In
der HAVI-Architektur sendet die Anwendung diese Nachrichten an das
DCM, und das DCM übersetzt
sie in die native Sprache des Ziel-BAV-Geräts. Falls das Zielgerät die HAVI-Nachrichten-Architektur
unterstützt,
müssen
diese Befehle nicht übersetzt
werden. Sie werden einfach als HAVI-Nachricht an das HAVI-Ziel gesendet.
-
Camcorder ähneln im
wesentlichen Videorekordern. Ihre zusätzliche Funktionalität ist Teil
der Camcorder-Effekte, -Übergänge, usw.
Es sind folgende:
stop()
play()
rewind()
forward()
record()
volume(setvalue)
changeStatus(newMode)//neuer
Modus für
VIDEOREKORDER, KAMERA, STANDBY
cameraControl(controlType)//controlType
definiert Steuerungstyp and Untertyp-Strukturen, z.B. Zoom, Zoomwert oder
Effect, Übergänge usw.
-
Minidisks
gehören
zur Kategorie der Speicher mit wahlfreiem Zugriff. Sie unterstützen einen Basissatz
von Befehlen zur Steuerung von ABSPIELEN, VORWÄRTS usw. und einen Satz von
Befehlen die für
Medien mit wahlfreiem Zugriff spezifisch sind. Diese Befehle sind
die folgenden:
stop()
Play()
rewind()
forward()
record()
volume(setValue)
changeStatus(newMode)//neuer
Modus: STANDBY
seek(track)
seekstart()
seekEnd()
getDiskInfo()
mdControl(controlType)//controlType
definiert Steuerungstyp and Untertyp-Strukturen, z.B. Intro-Modus, zufallsgesteuertes
Abspielen.
-
Festplatten
gehören
zur Kategorie der Speicher mit wahlfreiem Zugriff. Sie unterstützen einen Basissatz
von Befehlen zur Steuerung von ABSPIELEN, VORWÄRTS usw. und einen Satz von
Befehlen, die für
Medien mit wahlfreiem Zugriff spezifisch sind. Diese Befehle sind
die folgenden:
stop()
play()
rewind()
forward()
record(type)//Typ-Structure
liefert Information, die intelligenten Geräten Optimierung der Speicherpolitik ermöglicht
changestatus(newMode)//neuer
Modus: STANDBY
seek(track)
seek(block)
seekStart()
seekEnd()
HDDControl(controlType)//definiert
Steuerungstyp and Untertyp-Strukturen, z.B. Layout Befehle für Blockstrukturen
-
In
Bezug auf Benutzer-Interfaces ist zu erwähnen, daß ein generisches und einfaches
UI ein textbasiertes Interface sein kann, wie es in 12A dargestellt ist. Ein komplexeres Exemplar,
das auf einer DCM-Spezialisierung basiert, kann so sein, wie dies
in 12B dargestellt ist, in der eine graphische Information,
die in dem SDD transportiert wird, von dem generischen DCM benutzt
wird, um sich selbst zu spezialisieren.
-
Die
vorliegende Erfindung stellt also ein audiovisuelles (AV) Heim-Netz
zur Verfügung,
das eine offene Architektur für
die Interoperation von elektronischen Consumer-Geräten (CE-Geräten) in
einem Heim-Netz definiert. Die Interoperabilitäts-Aspekte der Erfindung definieren
ein Architekturmodell, das CE-Geräten irgendeines Herstellers
nahtlose Interoperation und Funktion in dem Heim-AV-System des Benutzers
ermöglicht.
Das System der vorliegenden Erfindung enthält eine Kombination aus einem
Basissatz von generischen Gerätesteuerungen
mit einem Verfahren zur Erweiterung eines Basis-Steuerprotokolls,
wenn neue Merkmale und neue CE-Geräte in dem Heim-AV-Netz eingesetzt
werden. Dadurch ist die Architektur der vorliegenden Erfindung erweiterbar
und kann leicht modifiziert und fortentwickelt werden, wenn sich
die Markterfordernisse und die Technologie ändern.
-
Die
vorangehenden Beschreibungen von spezifischen Ausführungsbeispielen
der vorliegenden Erfindung wurden zum Zwecke der Illustration und
Beschreibung präsentiert.
Sie sollen nicht erschöpfend
sein oder die Erfindung auf die offenbarten Formen beschränken. Im
Licht der obigen Lehre sind offensichtlich viele Modifizierungen
und Variationen möglich.
Die Ausführungsbeispiele
wurden ausgewählt
und beschrieben, um die Prinzipien der Erfindung und ihre praktische
Anwendung so gut wie möglich
zu erläutern
und anderen einschlägigen Fachleuten
die beste Nutzung der Erfindung und verschiedene Ausführungsbeispiele
mit verschiedenen Modifizierungen zu ermöglichen, wie sie für die jeweils
in Betracht gezogene Benutzung geeignet sind. Der Rahmen der Erfindung
soll durch die anliegenden Ansprüche
und ihre Äquivalente
definiert sein.