-
HINTERGRUND
DER ERFINDUNG
-
Die vorliegende Erfindung bezieht
sich auf ein Verfahren und eine Vorrichtung zum Ermitteln einer
Hardwarekonfiguration in einem digitalen Terminal, wie etwa einer
Set-Top-Fernsehstation, die zum Empfangen von digitalem Video und
anderen Daten in einem Teilnehmernetz verwendet wird, und als Reaktion
darauf das Auswählen
eines entsprechenden ausführbaren
Softwarepfads, um z. B. die Hardware zu initialisieren.
-
US-A-5,951,639 offenbart ein System zum Herunterladen
von verschiedenen Versionen von Software oder Datenmodulen in einer
Vielzahl von Terminals, die verschiedene Kompatibilitätsschnittstellen
aufweisen, wobei das System eine Authoring-Komponente zum Erzeugen
von Modulversionen, eine Quelle zum Herunterladen einschließlich einer
Deskriptortabelle, die jeder Modulversion eine Liste Kompatibilitätsanforderungen
zuordnet, die benötigt
werden, um das Modul herunterzuladen, und eine Vielzahl von Terminals,
die an die Quelle zum Herunterladen gekoppelt sind, umfasst.
-
Das neue Aufkommen von digitalen Set-Top-Terminals
hat das Wachstum von Teilnehmerfernsehleitungsnetzen, wie etwa Kabel-/Satellitenfernsehleitungsnetzen
angeregt. Derartige Terminals können
erhöhte
Stufen von Programmierdiensten und eine Vielzahl von auf Software
basierenden Anwendungen/Funktionen, wie etwa einen elektronischen
Programmführer,
Aktien- oder Wetterbanner, Homeshopping und Homebanking-Dienste,
Spiele und dergleichen, unterstützen.
Darüber
hinaus wird sich dieser Trend erwartungsgemäß mit der Konvergenz von Telefon-,
Fernseh- und Computernetzen und der Zunahme von hausinternen Computernetzen fortsetzen.
-
Es ist jedoch schwierig, Kompatibilität zwischen
der Software und der Hardware der verschiedenen Terminals in einem
Netz aufrechtzuerhalten. Verschiedene Terminals in einem Netz können zum Beispiel
Hardware von verschiedenen Herstellern oder verschiedene Komponentenversionen
von demselben Hersteller aufweisen.
-
Die Hardware kann zum Beispiel Tuner,
Demodulatoren, MPEG-2-Decodierer
(z. B. Audio, Video und Daten), Video-Codierer, Mischpulte und so weiter
umfassen.
-
Im Allgemeinen sind kontinuierliche
Veränderungen
der Hardware in Set-Top-Terminals
ein Resultat von Verbesserungen, Kostensenkungen, neuen Komponenten
und Unterlieferanten.
-
Veränderungen der Hardware forcieren
die Entwicklung separater Softwareausführungen (z. B. Softwareobjekte)
für die
verschiedenen Hardwarekomponenten. Ein Softwareobjekt ist eine einzelne Softwareausführung. Herkömmlicherweise
erfordert jede Art von Hardwarekomponente ihr eigenes Objekt oder
ihre eigene Ausführung.
-
Dies ist problematisch, da es Verwirrung
stiftet und zusätzliche
Aufzeichnungsführung
erfordert, um eine Vorgeschichte des Status von jedem Terminal in
einem Netz zu führen.
-
Zusätzlich muss den Terminals aktualisierte Software
bereitgestellt werden, was zu zusätzlichen Kosten und Aufzeichnungsführungsanforderungen für den Netzprovider
führt. Üblicherweise
kann die Software in Download-Messages auf spezifische Terminals
heruntergeladen werden. Dieser Vorgang verbraucht jedoch die begrenzte
Bandbreite in dem Netz. Lieferung der Software über andere Mittel, wie etwa
lokale Installation über
eine Chip-Karte, ist ähnlich
mühsam.
-
Wenn zum Beispiel zehn Hardware-Plattformen
in einer Kabelfernsehanlage existieren, müssten zehn entsprechende Objekte
heruntergeladen werden, eins für
jede Plattform.
-
Darüber hinaus werden diese Probleme durch
das kontinuierliche Hochrüsten
und das Ersetzen von Terminals in einem Netz im Laufe des Fortschreitens
der Technologie verstärkt.
-
Dementsprechend wäre es wünschenswert, ein System zum
dynamischen Ermitteln von Information der Hardwarekonfiguration
in einer digitalen Fernsehstation bereitzustellen. Als Reaktion
auf diese Information sollte das System Softwarekomponenten aus
einer einzelnen ausführbaren
Plattform-Firmware, die die ganze Software umfasst, die notwendig
ist, um die Plattform des Terminals zu betreiben, auswählen.
-
Im Besonderen sollte das System ein
einzelnes Set-Top-Firmware-/Softwareobjekt
bereitstellen, dass alle Softwarekomponenten enthält, die
erforderlich sind, um auf allen Hardware-Plattformen in einem Netz
zu laufen. Die Software sollte basierend auf der Hardwarekonfiguration
entscheiden, welche Komponenten verwendet werden.
-
Das System sollte die Information
der Hardwarekonfiguration auf eine Weise speichern, die Verfälschung
vermeidet.
-
Das System sollte die Mühe der Handhabung
von Softwareausführungen
in einem Teilnehmerfernsehleitungsnetz verringern.
-
Das System sollte die Menge an Bandbreite, die
erforderlich ist, um Software an Terminals in einem Kommunikationsnetz
zu liefern, verringern.
-
Das Ermitteln der Information der
Hardwarekonfiguration sollte als Reaktion auf jede beliebige Voraussetzung,
z. B. derart, wenn das Terminal initialisiert wird (z. B. betrieben
auf "an" oder "reset") als Reaktion auf
ein Signal von der Kopfstelle des Netzes oder periodisch, gemäß einem
Taktsignal an dem Terminal, initiiert werden.
-
Das System sollte mit Netzen, die
digitales Video, Audio und andere Daten an Teilnehmerendgeräte kommunizieren,
kompatibel sein.
-
Die vorliegende Erfindung stellt
ein System mit den obigen und weiteren Vorteilen bereit.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die vorliegende Erfindung bezieht
sich auf ein Verfahren und eine Vorrichtung zum Ermitteln einer
Hardwarekonfiguration in einem digitalen Terminal, und als Reaktion
das Auswählen
eines entsprechenden ausführbaren
Softwarepfads, z. B. zum Initialisieren der Hardware.
-
In einer besonderen Ausführungsform
wird ein Verfahren zum Initialisieren einer Hardwarekomponente in
einem digitalen Terminal vorgestellt. Das Terminal kann zum Beispiel
eine Fernsehstation oder ein Computerterminal sein. Das Verfahren
umfasst den Schritt des Lesens von Daten aus einem Speicher des
Terminals, der identifizierende Information bezüglich mindestens einer Hardwarekomponente des
Terminals bereitstellt. Ein ausführbarer
Softwarepfad wird aus einer Vielzahl von vorhandenen ausführbaren
Softwarepfaden gemäß der identifizierenden
Information ausgewählt.
Zusätzlich
wird der ausgewählte
ausführbare
Softwarepfad an einem Prozessor des Terminals ausgeführt, um
die Hardwarekomponente zu initialisieren.
-
Die identifizierende Information
kann z. B. ein Hersteller und/oder eine Modellnummer der Hardwarekomponente
sein. Darüber
hinaus kann die Hardwarekomponente zum Beispiel ein Tuner, ein Demodulator,
ein Decodierer, ein Codierer oder ein Mischer sein.
-
Die Vielzahl von vorhandenen ausführbaren Softwarepfaden
ist vorzugsweise für
eine entsprechende Vielzahl von verschiedenen Arten von Hardwarekomponenten,
die ein gemeinsames Softwareobjekt verwenden, bereitgestellt. Das
gemeinsame Softwareobjekt umfasst Software, die den verschiedenen
Arten von Hardwarekomponenten gemeinsam ist, und Software, die für jede der
verschiedenen Arten von Hardwarekomponenten spezifisch ist.
-
Günstigerweise
wird die gesamte Menge an Software, die an den Terminals benötigt wird,
durch Entwürfe
des Stands der Technik verringert, da das gemeinsame Softwareobjekt
Software umfasst, die den verschiedenen Arten von Hardwarekomponenten
nur einmal gemeinsam ist, anstatt ein anderes Objekt für jede Art
von Hardwarekomponente bereitzustellen, was in einer Verdoppelung
der gemeinsamen Software resultiert.
-
Eine entsprechende Vorrichtung ist
ebenfalls offenbart.
-
Es wird ebenfalls ein Verfahren zum
Initialisieren von Hardwarekomponenten in einer Vielzahl von digitalen
Fernsehterminals in einem digitalen Fernsehnetz vorgestellt, wobei
die Terminals jeweils verschiedene Arten von Hardwarekomponenten
aufweisen. Das Verfahren umfasst den folgenden Schritt: Bereitstellen
von Daten in jeweiligen Speichern der Terminals, die identifizierende
Information bezüglich
mindestens einer Art von Hardwarekomponente jedes jeweiligen Terminals
bereitstellen. Ein gemeinsames Softwareobjekt wird den Terminals
bereitgestellt, das eine Vielzahl von verschiedenen ausführbaren
Softwarepfaden enthält,
die den verschiedenen Arten von Hardwarekomponenten entsprechen.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 stellt
ein Verfahren zum Ermitteln von Information der Hardwarekonfiguration
in einem digitalen Terminal und zum Auswählen entsprechender Software
gemäß der vorliegenden
Erfindung dar.
-
2 stellt
ein digitales Terminal dar, das die Information der Hardwarekonfiguration
ermittelt und entsprechende Software gemäß der vorliegenden Erfindung
auswählt.
-
AUSFÜHRLICHE
BESCHREIBUNG DER ERFINDUNG
-
Die vorliegende Erfindung bezieht
sich auf ein Verfahren und eine Vorrichtung zum Ermitteln einer
Hardwarekonfiguration in einem digitalen Terminal, und, als Reaktion,
zum Auswählen
eines entsprechenden ausführbaren
Softwarepfads.
-
Gemäß der Erfindung sind Hersteller,
Modell und andere hardwarespezifische Information in einem nichtflüchtigen,
schreibgeschützten
Bereich des Speichers bereitgestellt. Auf diese Information wird während der
Initialisierung der Plattform der Terminalhardware zugegriffen,
z. B. während
das Terminal auf "on" oder "reset" betrieben wird.
Die Information wird verwendet, um Software auszuwählen, die
zum Steuern und Initialisieren spezifischer Hardwarestücke erforderlich
ist.
-
Durch das Ermitteln von hardwarespezifischer
Information während
der Initialisierung des Terminals kann die Software auf Plattformen
mit verschiedenen Hardwarekomponenten und Schaltkreisen ausführen. Dies
bietet dem Netzbetreiber die Freiheit, Terminals mit günstigen
Komponenten auszuwählen,
z. B. von verschiedenen Herstellern.
-
Hersteller, Modellnummer und andere
Information der Hardwarekomponente sind im geschützten Speicher in dem Terminal
gespeichert. Der Speicher ist vorzugsweise nichtflüchtig und
schreibgeschützt
durch Hardware, um Verfälschung
zu verhindern. Eine elektrisch löschbare
programmierbare Festwertspeicher (EEPROM)-Speichervorrichtung mit einer I2C-Bus-Schnittstelle und ein geschützter Flash-Sektor
können
zum Beispiel verwendet werden. Ein I2C-Bus
wird verwendet, um integrierte Schaltkreise (ICs) zu verbinden.
Er ist ein Multi-Master-Bus,
was bedeutet, dass mehrere Chips mit dem gleichen Bus verbunden
werden können,
und jeder einzelne kann als ein Master wirken, indem er einen Datentransfer
initiiert.
-
Es wird angenommen, dass eine Bereitstellung
zum Speichern von 128 Bytes Hardware identifizierenden Daten für die meisten
Situationen ausreichend ist, obwohl mehr oder weniger Raum wie erforderlich
zugewiesen werden kann.
-
Ein Treiber kann verwendet werden,
der die Fähigkeit
aufweist, den Inhalt eines nichtflüchtigen geschützten Speichers
zu lesen.
-
Abschnitte des Speichers werden während der
Initialisierung gelesen. Der Inhalt des Speichers wird dann verwendet,
um Softwarekomponenten auszuwählen
(z. B. Ausführungspfade).
Es kann zum Beispiel eine Anzahl von Tunern vorliegen, die auf einer
gegebenen Plattform des Terminals verwendet werden können. V860D
und V860DL, hergestellt von General Instrument Corporation, dem
Anmelder hiervon, sind zwei Beispiele für Tunermodelle. Während des
Starts wird die Art des Tuners von dem Speicher gelesen. Ein entsprechender
Softwarepfad wird ausgeführt,
basierend auf der bestimmten Art des Tuners, um den Tuner zu initialisieren.
-
Darüber hinaus befinden sich beide
Tunerpfade in einem einzelnen Softwareobjekt. Wenn mehr als zwei
Pfade vorliegen, befinden sie sich alle vorzugsweise in einem einzelnen
Softwareobjekt. Daher kann dieses einzelne, gemeinsame Softwareobjekt
auf verschiedenen Plattformen laufen, die die verschiedenen Arten
von Tuner aufweisen.
-
In nichtflüchtigem Speicher eingeschlossene Information
stellt sicher, dass heruntergeladene Ausführungen auf der Plattform laufen
werden.
-
1 stellt
ein Verfahren zum Ermitteln von Information der Hardwarekonfiguration
in einem digitalen Terminal und zum Auswählen von entsprechender Software
gemäß der vorliegenden
Erfindung dar.
-
Das Verfahren beginnt bei Block 100.
Bei Block 105 erfolgt der Start des Prozessors und des Speichers.
Bei Block 110 wird die Gültigkeit der Information der
Hardwarekonfiguration verifiziert, z. B. unter Verwendung einer
bekannten Prüfsummenmethode.
Bei den Blöcken 125–170 wird
die Hardware der Plattform initialisiert. Bei Block 125 beginnt
spezifischerweise die Initialisierung der ersten "n" Hardwarekomponenten in dem Terminal.
Eine oder mehrere Komponenten können
initialisiert werden.
-
Bei Block 130 werden Komponenten
identifizierende Daten (z. B. hardwarespezifische Information) aus
dem Speicher für
die gegenwärtige
Komponente gelesen.
-
Wenn die Komponente eine der ersten
Art (z. B. Typ "A") ist, wird die entsprechende
Information als eine globale Variable (Block 150) bei Block 135 gespeichert.
Der Begriff "global" wird verwendet,
um Variablen zu beschreiben, die im Bereich für jedes beliebige externe Modul
liegen, das Zugriff darauf erfordert. Wenn zum Beispiel ein separates
Modul die Art des Tuners erfordert, ermöglicht es dessen Speichern
als ein globales, wenn die Art dynamisch bestimmt ist, dem anderen
Modul, die Variable zu verwenden, indem es sie als extern deklariert.
-
Wenn die Komponente eine der zweiten
Art (z. B. Typ "B") ist, wird die entsprechende
Information als eine globale Variable (Block 150) bei Block 140 gespeichert.
Das Verfahren kann jede Anzahl von verschiedenen Arten von Komponenten
ausmachen. Darüber
hinaus können
manche Komponenten nur eine Art von Komponente aufweisen. Wenn die
Art der Komponente, die gelesen wird, keiner bekannten Art von Komponente
entspricht, ist ein Fehler aufgetreten, und ein weiterer Versuch,
die Komponente zu lesen, kann erfolgen.
-
Bei Block 160 wird die Komponente
unter Verwendung des entsprechenden Softwarepfads für die Art
der Komponente initialisiert.
-
Wenn die gegenwärtige Komponente nicht die
letzte zu initialisierende Komponente ist, dauert das Verarbeiten
bei Block 125 für
die nächste
Komponente an. Wenn keine weiteren Komponenten initialisiert werden
sollen, wird ein Ausgangspfad (Block 180) genommen.
-
2 stellt
ein digitales Terminal dar, das die Information der Hardwarekonfiguration
ermittelt und entsprechende Software gemäß der vorliegenden Erfindung
auswählt.
-
Das Terminal 200, in einer
vereinfachten Form gezeigt, umfasst einen Bus 260, wie
etwa einen I2C Bus, einen nichtflüchtigen
Speicher 210 (wie etwa ein EEPROM), einen Prozessor 220,
eine ausführbare
Softwarefunktion 230, und jede beliebige Anzahl von Komponenten,
dargestellt durch Komponente 1 (240), ..., Komponente n
(250). Information kann zwischen den verschiedenen Funktionen über den
Bus 260 ausgetauscht werden.
-
Im Allgemeinen kann der Prozessor
die Komponente 240, ..., 250 abfragen, um die
hardwarespezifische Information zu erhalten, und diese Information
zur Speicherung in den Speicher 210 zu übertragen. Nach Initialisierung
des Terminals liest der Prozessor die Information aus dem Speicher 210 und
stellt sie der ausführbaren
Softwarefunktion 230 bereit, um den entsprechenden Softwarepfad
auszusuchen, z. B. zum Initialisieren der Komponente.
-
Dementsprechend ist ersichtlich,
dass die vorliegende Erfindung ein Verfahren und eine Vorrichtung
zum Ermitteln einer Hardwarekonfiguration in einem digitalen Terminal,
und, als Reaktion, zum Auswählen
eines entsprechenden ausführbaren Softwarepfads
bereitstellt. Im Besonderen versieht die Erfindung alle Terminals
mit einem einzelnen, gemeinsamen Set-Top-Firmware-/Softwareobjekt,
das alle Softwarekomponenten enthält, die erforderlich sind,
um auf allen Plattformen der Hardware zu laufen. Es wird angenommen,
dass sich spezifische Einzelheiten zum Bereitstellen eines solchen
Objekts innerhalb des Bereichs der Fachmänner in Hinsicht auf die vorliegende
Offenbarung befinden. Darüber
hinaus kann jede geeignete objektorientierte Programmiersprache
verwendet werden.
-
Die gesamte Menge an Software, die
an den Terminals benötigt
wird, wird durch Entwürfe
des Stands der Technik verringert, da das gemeinsame Softwareobjekt
Software umfasst, die den verschiedenen Arten von Hardwarekomponenten
nur einmal gemeinsam ist, anstatt ein anderes Objekt für jede Art
von Hardware bereitzustellen, was in einer Verdoppelung der gemeinsamen
Software resultiert.
-
Die Erfindung ermöglicht es Software von einem
gemeinsamen Softwareobjekt an einer digitalen Fernsehstation, auf
Plattformen mit verschiedenen Hardwarekomponenten und Schaltkreisen
abzulaufen. Dies bietet dem Netzbetreiber die Freiheit, Terminals
mit günstigen
Komponenten auszuwählen,
z. B. von verschiedenen Herstellern.
-
Die Techniken der vorliegenden Erfindung können unter
Verwendung jeder bekannten Hardware, Software und/oder Firmware
durchgeführt
werden.
-
Obwohl die Erfindung in Verbindung
mit verschiedenen spezifischen Ausführungsformen beschrieben worden
ist, versteht der Fachmann, dass daran zahlreiche Änderungen
und Modifikationen vorgenommen werden können, ohne von dem Bereich
der Erfindung, wie er in den Ansprüchen dargelegt ist, abzuweichen.
-
Während
die Erfindung zum Beispiel in Verbindung mit Terminals für Kabel-
oder Satellitenfernseh-Breitband-Kommunikationsnetze besprochen wurde,
versteht es sich, dass andere Netze, wie etwa lokale Datennetze
(LAN), Großstadtnetze
(MAN), weiträumige
Netze (WAN), Internets, Intranets und das Internet oder Kombinationen
davon verwendet werden können.