-
Die
Erfindung bezieht sich auf Informationsverteilungssysteme, und insbesondere
auf ein Verfahren und eine Vorrichtung zur Bereitstellung einer Steuerkanalkommunikation
für ein
Informationsverteilungssystem.
-
Hintergrund
der Erfindung
-
Jüngste Fortschritte
in digitalen Signalverarbeitungstechniken und insbesondere Weiterentwicklungen
in digitalen Kompressionstechniken haben zu einer Fülle von
Vorschlägen
geführt,
Kunden zu Hause neue digitale Dienstleistungen über existierende Telefon- und
Koaxialkabel-Netzwerke bereitzustellen. Zum Beispiel wurde vorgeschlagen,
Teilnehmer dadurch Hunderte von Kabelfernsehkanälen bereitzustellen, dass digitale
Videos komprimiert werden, komprimierte digitale Video über konventionelle Fernsehkoaxialkabel übertragen
werden und dann das Video bei dem Set-Top-Terminal des Teilnehmers dekomprimiert
wird. Eine andere vorgeschlagene Anwendung dieser Technologie ist
das Videosystem des Video-on-Demands, bei welchem ein Teilnehmer direkt
mit einem Videoservice-Provider über
Telefonleitungen kommuniziert, um ein bestimmtes Videoprogramm von
einer Videobibliothek anzufordern, wobei das angeforderte Videoprogramm über Telefonleitungen
oder über
die koaxialen Fernsehkabel zum sofortigen Anschauen geleitet wird.
-
Innerhalb
dieser Systeme werden typischerweise Steuerinformationen zum erleichterten
Betrieb des Set-Top-Terminals beim Teilnehmer zu Hause als Kontrollpakete
innerhalb des Videodatenstroms gesendet. Diese Kontrollpakete beinhalten
gewisse Header- bzw. Kopfzeilen-Informationen, welche es dem Set-Top-Terminal
ermöglichen,
zwischen Videodaten und Steuerdaten zu unterscheiden. Folglich mindert
der Einsatz von Paketen zum Senden von Steuerdaten durch den Videodatenkanal
automatisch die verfügbare
Bandbreite für
die Übertragung von
Videoinformationen zum Teilnehmer.
-
Weiterhin
werden die Steuerinformationen, die vom Set-Top-Terminal zum Service-Provider
gesendet werden, typischerweise über
das Telefonsystem versandt. Hierbei benötigt der Teilnehmer eine zugeordnete
Telefonverbindung, um die interaktive Funktionalität für das Videosystem
bereitzustellen. Weiterhin erlaubt es die niedrige Datenrate des
Telefonsystems nicht, umfangreich zwischen dem Set-Top-Terminal
und dem Service-Provider zu kommunizieren. Diese Systeme stellen
allgemein lediglich rudimentäre
Steuerbefehle zur Verfügung,
wie zum Beispiel die Auswahl eines Dienstes oder bestimmter Informationen über ein
Menü auf
dem Fernsehbildschirm des Teilnehmers.
-
Es
gibt daher im Stand der Technik einen Bedarf für ein Verfahren und eine Vorrichtung,
die einen unabhängigen
Steuerkanal zum Übertragen
von Steuerinformationen von einem Set-Top-Terminal zu einem Service-Provider
in einem Informationsverteilungssystem bereitstellt, ohne dass dies
Auswirkungen auf die Informationsbandbreite hat, welche Informationen
vom Service-Provider zum Set-Top-Terminal überträgt.
-
Die
US-A-5 355 162 offenbart ein Kabelfernsehsystem. Benutzer haben
eine Kabelkonverterbox (Teilnehmer-Terminal), welche ihren Fernseher
mit dem Kabelsystem verbindet. Das Kabelsystem verbindet die Kabelkonverterboxen
mit einem Kopfende. Signale und Programme werden über das
Kabelsystem vom Kopfende downstream zu den Konverterboxen übertragen.
Anforderungssignale, welche Menüs und
Pay-per-View-Programme anfordern, werden über das Kabelsystem von den
Konverterboxen zum Kopfende upstream übertragen. Ein Kopfende-Controller
umfasst eine CPU, welche an Programmquellen und ein Modem zur Kommunikation
mit den Kabelkonverterboxen gekoppelt ist. Die CPU hat einen RAM-Speicher
(random access memory). Ein Teil des RAMs der CPU wird als ein Anfrage-Eingabepuffer
zum temporären
Speichern von Benutzer-Anfragenachrichten
benutzt, welche über
das Modem empfangen werden, und zum temporären Speichern von Nachrichten,
welche über
das Modem zu den Kabelboxen übertragen
werden.
-
Zusammenfassung
der Erfindung
-
Aspekte
der vorliegenden Erfindung werden durch die Ansprüche wiedergegeben
auf welche ausdrücklich
verwiesen wird.
-
Ein
Steuerkanalmodem gemäß einer
Ausführungsform
der vorliegenden Erfindung stellt unabhängige Kommunikationskanäle für einen
bidirektionalen Nachrichtenverkehr zwischen einem Service-Provider und einem
Set-Top-Terminal bereit. Durch Benutzung des Steuerkanalmodems werden Nachrichten,
Steuerinformationen und Statusinformationen zwischen dem Service-Provider
und dem Set-Top-Terminal des Teilnehmers übertragen, wobei ein unabhängiger Kanal
benutzt wird, der verschieden ist von demjenigen Kanal, der für das Senden angeforderter
Informationen, wie zum Beispiel Spielfilme, vom Service-Provider
zum Teilnehmer nach Hause benutzt wird. Insbesondere stellt die
Ausführungsform
einen Downstream-Datenkanal und zwei Upstream-Kanäle zur Verfügung. Der Downstream-Kanal
verbindet den Service-Provider mit dem Set-Top-Terminal über einen
Kanal, der eine Datenrate von ungefähr 750 kbps (Kilobits pro Sekunde)
hat. Die zwei Upstream-Datenkanäle
verbinden das Set-Top-Terminal mit dem Service-Provider, wobei jeder
eine effektive Datenrate von ungefähr 43,5 kbps hat.
-
Insbesondere
enthält
ein Informationsverteilungssystem allgemein einen Informationsserver,
der mit einem Vorwärts-Datenkommunikationskanal
verbunden ist welcher eine hohe Bandbreite hat und welcher Videoinformationen
vom Server zu einem Set-Top-Terminal des Teilnehmers überträgt. Der Server
beinhaltet allgemein eine Busstruktur zum Übertragen von Befehls- und
Steuerinformationen. Eine beispielhafte Busstruktur ist ein VME-Bus.
Die vorliegende Ausführungsform
verbindet den VME-Bus mittels einer VME-Busschnittstelle. Nachrichten,
Steuerinformationen und Statusinformationen, welche von einem speziellen
Modem befördert werden
müssen,
werden von der VME-Busschnittstelle
vom VME-Bus extrahiert und werden zu einem Nachrichtenpuffer bzw.
Statusregister geführt.
Nach der Pufferung erzeugt ein Nachrichtenprozessor bzw. Router
Nachrichten, welche an ein bestimmtes Set-Top-Terminal adressiert
werden. Diese Nachrichten werden dann zu einem Modulator übertragen,
der die Nachrichtsinformation auf einen Träger quadraturmoduliert, wonach
dieser über
einen Leistungsverstärker
in ein Kabelnetz eingespeist wird.
-
Nachrichten
vom Set-Top-Terminal werden durch ein Paar Demodulatoren demoduliert,
welche die Nachricht von den zwei Upstream-Datenkanälen extrahieren.
Die Upstream-Daten werden auch auf eine Trägerfrequenz quadraturmoduliert,
wobei diese durch die Demodulatoren verarbeitet werden, um die Nachrichtsinformation
zu extrahieren. Die Nachrichtsinformation von jedem der Demodulatoren
wird zum Nachrichtenprozessor und Router weitergeleitet, welcher
dann die Nachrichten zum Nachrichtenpuffer sendet, wo sie auf die
VME-Busschnittstelle warten, damit diese die Nachrichten vom Set-Top-Terminal zum
Server des Service-Providers weiterleitet.
-
Kurze Beschreibung
der Figuren
-
Die
Lehren der vorliegenden Erfindung können leicht verstanden werden,
wenn die nachfolgende detaillierte Beschreibung im Zusammenhang
mit den begleitenden Figuren in Betracht gezogen werden, bei denen
-
1 ein
höheres
Blockdiagramm eines interaktiven Informationsverteilungssystems
darstellt, welches die vorliegende Erfindung beinhaltet;
-
2 ein
höheres
Blockdiagramm des Steuerkanalmodems der vorliegenden Erfindung darstellt;
-
3 ein
Blockdiagramm der VME-Schnittstelle darstellt;
-
4 ein
Blockdiagramm des Nachrichtenpuffers und Statusregisters darstellt;
-
5 ein
Blockdiagramm des Nachrichtenprozessors ist;
-
6 ein
Blockdiagramm des Modulators ist; und
-
7 ein
Blockdiagramm des ersten Demodulators darstellt.
-
Zum
erleichterten Verständnis
werden, sofern möglich,
identische Bezugszeichen benutzt, mit denen identische Elemente
bezeichnet werden, die bei allen Figuren gleich sind.
-
Ausführliche
Beschreibung
-
1 stellt
ein höheres
Blockdiagramm eines interaktiven Informationsverteilungssystems 100 dar.
Das System 100 besitzt eine Dienstanbieterausrüstung 102,
die über
einen Vorwärts-Informationsverteilungskanal 104 und
eine Mehrzahl von bidirektionalen Steuerkanälen 106, die einen
unidirektionalen Upstream-Steuerkanal und einen unidirektionalen
Downstream-Steuerkanal besitzen, mit einer Mehrzahl von Teilnehmerausrüstungen 108 verbunden
ist. Ein Teilnehmer kann durch Gebrauch der bei sich zu Hause befindlichen
Teilnehmerausrüstung 102 Informationen über den
Steuerkanal 106 von der Dienstanbieterausrüstung 102 anfordern.
Die angeforderte Information wird von der Dienstanbieterausrüstung 102 durch
den Vorwärts-Informationsverteilungskanal 104 zu
der Teilnehmerausrüstung 108 übertragen,
welche die Information angefordert hat. Zum Beispiel kann der Teilnehmer
einen bestimmten Spielfilm über
den Steuerkanal anfordern, und die Dienstanbieterausrüstung wird
diesen Spielfilm aus dem Speicher abrufen und den Spielfilm durch
den Vorwärts-Informationsverteilungskanal 104 zwecks Anzeige
auf der Teilnehmerausrüstung 108 "abspielen". Spielfilmauswahlinformationen,
Statusnachrichten und Steuerungsnachrichten werden durch den Steuerkanal 106 (den
unidirektionalen Upstream-Steuerkanal) von der Dienstanbieterausrüstung 102 zur
Teilnehmerausrüstung 108 gesendet.
Antworten auf diese Nachrichten als auch Rückfragen an die Dienstanbieterausrüstung werden
von der Teilnehmerausrüstung 108 durch
die Steuerkanäle 106 (den
unidirektionalen Downstream-Steuerkanal) zur Dienstanbieterausrüstung 102 gesendet. Folglich
ist das in 1 dargestellte System ein vollständig interaktives
Echtzeit-Informationsverteilungssystem.
-
Insbesondere
besitzt eine Dienstanbieterausrüstung 102 einen
Informationsserver 110, eine Netzwerkschnittstelle bzw.
einen Modulator 112, ein Steuerkanalmodem 114 und
einen Steuerbus 116, welcher den Informationsserver 110,
die Netzwerk-Schnittstelle, den Modulator 112 und das Steuerkanalmodem 114 miteinander
verbindet. In einem konkreten System, welches eine große Zahl
von Teilnehmerausrüstungen
bedient (zum Beispiel 3000 oder mehr), sind eine Mehrzahl von Netzwerkschnittstellen
und Modulatorschaltkreisen 102, und eine Vielzahl von Steuerkanalmodems 114 in
der Dienstanbieterausrüstung 102 integriert.
-
Befehle
vom Teilnehmer erreichen die Dienstanbieterausrüstung über den Downstream-Kanal, welcher
mit dem Steuerkanalmodem 114 verbunden ist. Das Steuerkanalmodem
interpretiert diese Befehle und legt die erhaltenen Steuerungs-
und Nachrichtsinformationen auf den Steuerbus 116. Diese
Informationen werden entweder zum Informationsserver oder zur Netzwerk-Schnittstelle
bzw. zum Modulator übertragen,
um die Informationen, welche zu einem bestimmten Set-Top-Terminal,
welches die Informationen angefordert hat, zu steuern. Der Informationsserver
lässt in
Beantwortung der Steuerungsinformationen vom Teilnehmer eine gewisse
Software ablaufen, welche zum Beispiel bestimmte Menüs für den Teilnehmer
erzeugt, mit der gewisse Informationen ausgewählt werden, oder um bestimmte
Informationen, welche vom Teilnehmer angefordert werden, zu senden.
Eine Mehrzahl von Kanälen
mit hoher Datenrate verbindet den Server zur Netzwerkschnittstelle
bzw. zum Modulator 112. Die Netzwerk-Schnittstelle bzw.
der Modulator nimmt jeden der Datenströme, welche über diese Kanäle übertragen
werden, und bringt diese Datenströme in Paketform, und zwar in
ein Format, das mit dem Vorwärts-Informationsverteilungskanal
kompatibel ist. Typischerweise entspricht diese Paketierung einem bestimmten Übertragungsstandard,
wie zum Beispiel dem MPEG- (Moving
Pictures Experts Group) Standard für die Übertragung von Videoinformationen. Andere
Standards können
implementiert werden, wie zum Beispiel der asynchrone Transfermodus
(ATM).
-
Gewisse
Nachrichten können
zu Anzeigezwecken zur Teilnehmerausrüstung gesendet werden. Diese
Nachrichten werden vom Server durch den Steuerbus zum Steuerkanalmodem übermittelt und
auf einem Upstream-Steuerkanal zur Teilnehmerausrüstung 108 gesendet.
Der Vorwärts-Informationsverteilungskanal
und der Steuerkanal werden auf ein Koaxialkabelnetzwerk, welches
ein hybrides Faser-Koaxial-Kabelnetzwerk oder Ähnliches sein kann, frequenzmultiplext.
-
Die
Teilnehmerausrüstung 108 besitzt
allgemein ein Set-Top-Terminal 118, eine Eingabevorrichtung 120 und
eine Anzeigevorrichtung 122. Das Set-Top-Terminal besitzt
eine Elektronik, die sowohl mit den Steuerkanälen als auch mit den Informationsverteilungskanälen zusammenarbeitet,
und die auch die Eingabebefehle von der Eingabevorrichtung verarbeitet.
Die Eingabevorrichtung 120 ist typischerweise eine Fernbedienungseinheit,
die mit dem Set-Top-Terminal 118 entweder über eine
RF- oder eine IR-Verbindung interagiert. Die Anzeige 122 ist typischerweise
ein gebräuchlicher
Fernseher oder ein Monitor.
-
Das
Set-Top-Terminal demoduliert und verarbeitet sowohl die Informationen
vom Verteilungskanal als auch die Steuerkanalinformationen. Zusätzlich verarbeitet
es die Steuerungsinformationen von der Eingabevorrichtung und überträgt bei Bedarf
diese Information innerhalb der Dienstanbieter-Ausrüstung über den
Upstream-Steuerkanal zum Steuerkanalmodem.
-
2 stellt
ein Blockdiagramm des Steuerkanalmodems 114 von 1 dar.
Das Steuerkanalmodem 114 besitzt eine Busschnittstelle 200 (zum Beispiel
eine VME-Busschnittstelle), einen Nachrichtenpuffer bzw. ein Statusregister 202,
einen Nachrichtenprozessor bzw. Router 204, einen Modulator 206 und
ein Paar Demodulatoren 208 und 210. Die Busschnittstelle
ist mit dem Steuerbus 116 verbunden. Ein für diese
Anwendung geeigneter Bus ist ein VME-Bus, der dafür allgemein
bekannt ist, dass er Nachrichten, Steuerungsinformationen und Statusinformationen
zwischen digitalen Vorrichtungen überträgt.
-
Die
Busschnittstelle extrahiert Informationen vom Bus, welche vom Server
zu einem bestimmten Steuerkanalmodem gerichtet werden. Die Nachrichten
werden vorübergehend
in eine Mehrzahl von Nachrichtenpuffer bzw. Statusregister 202 gespeichert.
Zu geeigneten Zeiten werden die Nachrich tenpuffer bzw. Statusregister
geleert, und werden ihre Informationen zum Nachrichtenprozessor
bzw. Router 204 weitergeleitet. Zusätzlich können gewisse Rücksetz-
und Unterbrechungsinformationen über den
VME-Bus zum Steuerkanalmodem gesendet werden. Diese Informationen
werden allgemein nicht gepuffert, und werden direkt von der VME-Busschnittstelle
zum Nachrichtenprozessor bzw. Router 204 zwecks sofortiger
Ausführung
geleitet. Upstream-Nachrichten werden vom Nachrichtenprozessor bzw.
Router 204 zum Modulator 206 weitergeleitet. Der
Modulator quadraturmoduliert einen Träger mit der Nachrichtsinformation
und koppelt den modulierten Träger
in den Upstream-Steuerkanal. Die jeweilige Frequenz, die für die Übertragung
einer bestimmten Nachricht benutzt wird, wird vom Server gesteuert.
Diese Information wird daher vom Steuerbus übertragen und von derjenigen
Busschnittstelle interpretiert, welche die Frequenzsteuerungsinformation in
den Modulator einkoppelt.
-
Downstream-Informationen
werden dem Demodulatorenpaar 208 und 210 von den
Steuerkanälen
geliefert. Ein Demodulatorenpaar wird benutzt, um die Wahrscheinlichkeit
einer Nachrichtenkollision beim Modem zu reduzieren. Jeder Demodulator
ist ein Quadraturmodulator, welcher die Nachrichtsinformation vom
Steuerkanal extrahiert und diese Nachrichtsinformation in den Nachrichtenprozessor
bzw. Router 204 einkoppelt. Diese Nachrichtsinformation wird
dann innerhalb der Nachrichtenpuffer bzw. Statusregister 202 gepuffert
und letztlich zur Busschnittstelle 200 weitergeleitet,
welche die Nachrichtsinformation in den Steuerbus 116 zwecks
Kommunikation zum Informationsserver oder zur Netzwerkschnittstelle
bzw. zum Modulator einkoppelt.
-
3 stellt
ein detailliertes Blockdiagramm der Busschnittstelle 200,
und insbesondere eine VME-Busschnittstelle
dar. Diese Busschnittstelle stellt die Schnittstelle zwischen dem
Steuerkanalmodem 114 und dem Steuerbus 116 dar.
Die gesamte Kommunikation zwischen dem Steuerkanalmodem und dem
Steuerbus erfolgt über
speicheradressierte Operationen innerhalb der Steuerbusschnittstelle 200.
Die Schnittstelle 200 unterstützt die folgenden VME-Busmodi:
A16, D16 (Word-Datentransfers)
für Register
und Puffer, und D8 (EO) (Byte-Datentransfers) für Puffer. Weiterhin besitzt
die Busschnittstelle 200 einen Datentransceiver 300,
einen Interrupt-Controller 302, einen Slave-Controller 304,
einen Interrupt-Vektorgenerator 306, ein FPGA (field programmable
gate array) 308, einen Generator für die Basisadressen 310,
und einen Verzögerungsgenerator 312.
Der Interrupt-Controller ist ein VME3000 (VME-Bus-Interruptgenerator)
von PLX Technology. Entsprechend ist der Slave-Controller ein VME2000 "VME bus slave module
interface device",
ebenfalls von PLX Technology. Der Datentransceiver 300,
der Interrupt-Controller 302 und der Slave-Controller 304 sind
jeweils direkt mit dem VME-Bus verbunden. Der Slave-Controller 304 überwacht
die Bussignale des VME-Datentransfers, um die Art des durchgeführten Zugangs
zu bestimmen. Der Slave-Controller 304 erzeugt
Datenabtastungen und Bestätigungsinformationen,
welche in den FPGA 308 eingekoppelt werden. Das Gate-Array 308 (erhältlich von
Altera) interpretiert die Datenabtastungen unter Benutzung eines Adressenkomparators
um sicherzustellen, dass der angeforderte Zugang geeignet ist. Nicht
unterstütze Zugangsversuche
werden vom FPGA ignoriert. Während
laufender Datenübertragungen
steuert das Gate-Array den lokalen Adressbus an, gibt die Datentransceiver
frei, und stellt die geeigneten Auswahl- und Freigabesignale für Register-
oder RAM-Zugriffe zur Verfügung.
Das Gate-Array bestätigt
dann den Zugang zum VME-Bus durch den Slave-Controller 304.
-
Der
Interrupt-Controller 302 akzeptiert einstufige lokale Interrupts
vom Steuerkanalmodem. Wenn ein lokaler Interrupt vom Interrupt-Controller detektiert
wird, erzeugt der Controller einen Interrupt auf dem VME-Bus, und
behandelt die sich ergebende Interrupt-Entscheidung über den
VME-Prioritätsinterruptbus.
Die Interrupt-Steuerung arbeitet im ROAC- (Reset On Acknowledge)
Modus, und der VME-Interrupt wird nach dem Empfang vom VME-Controller gelöscht. Als
Teil des Interrupt-Entscheidungsprozesses
versorgt der Interrupt-Controller den VME-Controller über den
Datenbus mit einem 8-Bit-Interrupt-Vektor. Als solcher ist der Interrupt-Controller 302 über den
Freigabeport mit dem Interrupt-Vektorgenerator 306 verbunden,
sodass nach der Freigabe des Interrupt-Vektorgenerators der Vektor für die Daten-Transceiver
auf dem Datenbus gelegt wird, um an den VME-Bus anzukoppeln. Die
VME-Busadressierung ist direkt an das FPGA gekoppelt. Das FPGA wird
nachfolgend mit Bezug auf 5 diskutiert.
-
4 stellt
ein Blockdiagramm der Nachrichtenpuffer und der Statusregister 202 dar.
Die Register und Puffer werden durch Benutzung eines 16-Bit weiten
Dual-Port-RAM 400 implementiert. Das RAM 400 enthält vollständige Paare
von Eingabe-/Ausgabe-Ports, einschließlich RAM busy, Chip Select,
Read/Write, Output Enable, Upper Byte Select, Lower Byte Select,
Address und Data. Ein vollständiger
Satz von Ports ist mit der VME-Busschnittstelle und dem Nachrichtenprozessor
verbunden. Als solche können
diese beiden Einheiten zur gleichen Zeit auf das Dual-Port-RAM zugreifen.
-
Dieses
RAM ist in zwei Pufferseiten aufgeteilt; eine für jeden Modulator und Demodulator,
und der Speicher enthält
ein Statusregister für
jede Pufferseite. Für
den Modulator wird das Statusregister benutzt, um den Server zu
informieren, dass eine Seite zur Verfügung steht um beschrieben zu
werden (wurde bereits übertragen),
und wenn der Modulator einen Interrupt erzeugt. Ein Interrupt kann
erzeugt werden, wenn die Pufferseite eines Demodulators zur Verfügung gestellt
wird, um zum Server übertragen
zu werden. Die Pufferseite des Demodulators hat auch ein damit verbundenes
Statusregister. Dieses Register enthält Informationen betreffend
Nachrichten, die von der Teilnehmerausrüstung empfangen wurden. Das
Statusregister enthält
eine Anzahl von Feldern einschließlich eines Feldes welches
anzeigt, wann der Puffer zum Beschreiben zur Verfügung steht,
eines Feldes welches anzeigt, wann eine Nachricht in den Puffer
abgelegt wurde, einem Anzeigebit das immer dann gesetzt wird, wenn
eine abgesetzte Nachricht nicht in den Puffer abgelegt werden konnte,
ein Überlauffehlerfeld
welches anzeigt, dass eine Nachricht empfangen wurde, die länger ist
als es die Spezifikation erlaubt, und dass die Nachricht abgeschnitten
wurde, und eines Längenfeldes
welches anzeigt, wie groß die
Länge der
erhaltenen Nachricht in Bytes ist.
-
Während des
normalen Betriebs der Puffer werden der Server und der Nachrichtenprozessor über die
VME-Schnittstelle synchronisiert, so dass für jedes Subsystem eine Vorrichtung
auf die Pufferseite 0 zugreift, während das andere Subsystem
auf die Pufferseite 1 zugreift. Wenn dies abgeschlossen ist, schalten
die Vorrichtungen zwischen den Pufferseiten, welche sie benutzen,
um. Diese Herangehensweise maximiert die für jede Vorrichtung verfügbare Prozesszeit
und minimiert die Wahrscheinlichkeit einer Zugriffskollision innerhalb
des Speichers.
-
Im
Gegensatz zu den Pufferseiten ist es möglich, dass sowohl der Server
als auch der Nachrichtenprozessor auf das gleiche Statusregister
zugreifen. Zum Beispiel kann der Nachrichtenprozessor das Statusregister
des Modulators zyklisch abfragen, um eine neue Nachricht abzurufen,
während
der Server den Status aktualisiert. Um fehlerhafte Ergebnisse zu
vermeiden, werden die Entscheidungsfähigkeiten des Speichers benutzt.
Wenn der Speicher anzeigt, dass er beschäftigt ist, wird der Zugriff
durch den Nachrichtenprozessor durch die Benutzung des DTACK-Signals
verzögert,
während
Zugriffe durch dem VME-Bus durch eine Verzögerung mit dem VMEACK-Signal
von der VME-Busschnittstelle verzögert werden. Solch eine Zugriffskontrolle
wird durch das programmierbare Gate-Array 308 von 3 im
Zusammenspiel mit dem Verzögerungsgenerator 312 bewerkstelligt,
welcher die Zugriffssignale vom VME-Bus verzögert, wenn der RAM-beschäftigt-Anzeiger
hochgesetzt ist.
-
5 stellt
ein Blockdiagramm des Nachrichtenprozessors bzw. Routers 204 von 2 dar. Der
Nachrichtenprozessor bzw. Router 204 besitzt einen Mikrokontroller 500,
ein Flash-ROM (read only memory) 502, ein statisches RAM
(random access memory) 504 und ein FPGA (field programmable gate
array) 506. Der Zweck des Nachrichtenprozessors bzw. Routers
besteht darin, ausgehende Nachrichten des Nachrichtenpuffers zu
lesen und zu formatieren, und sie zum Modulator zu senden, und darin,
eintreffende Nachrichten von jedem Demodulator zu erhalten, und
diese Nachrichten zum Nachrichtenpuffer zu transferieren. Als solches
ist der Mikrokontroller mit dem Nachrichtenpuffer verbunden, um
die Funktionen des Lesens und Schreibens, der Ausgabefreigabe und
der Chip-Select
Funktionen zu steuern. Auch wird das DTACK-Signal vom FPGA 308 von 3 in
den Mikrokontroller 500 eingekoppelt. Das DTACK-Signal
wird mit dem "Ready"-Signal des Dual-Port-RAM
decodiert. Wenn das RAM bereit ist, wird ein DTACK generiert. Ist
es nicht bereit, wird das DTACK verzögert, bis das RAM Bereitschaft
anzeigt. Für
andere Register, die nicht mit anderen Vorrichtungen geteilt werden
(das heißt,
die nicht innerhalb des Dual-Port-RAMs gehalten werden), ist das
Bereitschaftssignal jeweils aktiv. Der Datenbus des Mikrokontrollers
ist mit dem Modulator und beiden Demodulatoren verbunden, und ebenso
mit dem ROM 502, dem RAM 504, und dem FPGA 506.
Der Adressbus des Mikrokontrollers ist auch mit dem ROM, dem RAM,
und dem FPGA verbunden, und ebenso mit dem Nachrichtenpuffer (400 von 4).
-
Das
FPGA 506 stellt ebenso wie der VME-Schnittstellenbus eine
Schnittstelle zwischen dem Mikrokontroller und den Demodulatoren
dar. Insbesondere erzeugt das FPGA 506 FIFO-Lese- und Ausgangs-Freigabesignale
sowie Modulatorschreibfreigabesignale. Auch werden FIFO-Statussignale
des Modulators und des Demodulators von den Modulatoren und Demodulatoren
direkt in den Mikrokontroller eingekoppelt. Das FPGA besitzt allgemein Rücksetz-
und Interrupt-Register, welche von der VME-Schnittstelle benutzt
werden, und die sich nicht innerhalb des Pufferspeichers befinden.
Es ist zu beachten, dass ein Zugriff auf das Rücksetz- oder Interrupt-Register
durch den VME-Bus
ein Level-4-Interrupt der Mikrokontroller initiiert. Dieser Interrupt
kann durch einen physikalischen Jumper auf der Platine deaktiviert
werden.
-
Normalerweise
ist ein beispielhafter Mikrokontroller, der für die vorliegende Erfindung
geeignet ist, ein 68306 Mikroprozessor von Motorola. Die Rücksetz-
und Interrupt-Register wird benutzt, um es dem Server durch den
VME-Bus zu ermöglichen,
das Steuerkanalmodem vollständig
zurückzusetzen,
und auch um gewisse Komponenten des Steuerkanalmodems wie den Modulator
oder jeden der Demodulatoren unabhängig voneinander zu unterbrechen
oder zurückzusetzen.
-
6 stellt
ein Blockdiagramm des Modulators 206 dar. Der Modulator
besitzt einen FIFO- (first-in/first-out) Puffer 600 für ausgehenden
Nachrichtenverkehr, einen FEC (forward error correction) Prozessor 602,
einen Pulsformfilter 604, einen frequenzagilen Frequenzgenerator 606,
einen QPSK- (quadrature
phase shift key) Modulator 608, eine Verstärkervorstufe 610,
und einen Kanalfilter 612. Das FIFO 600 empfängt Daten
vom Nachrichtenprozessor in Form einer Nachrichtenserie, welche
innerhalb der seriellen Speicherorte innerhalb des FIFOs abgelegt
werden. Eine Statusverbindung verbindet das FIFO mit dem Nachrichtenprozessor,
um den Mikrokontroller vom Status des FIFOs zu informieren, das heißt, ob das
FIFO weitere Daten zur Pufferung empfangen kann. Das FIFO 600 ist
mit dem FEC-Prozessor 602 über zwei Pfade verbunden. Der
erste Pfad ist ein Lesepfad, welcher einen Adressgenerator innerhalb
des FEC-Prozessors mit dem FIFO verbindet, um spezifische Daten
vom FIFO-Speicher anzufordern. Diese Daten werden auf einem Datenpfad zwischen
dem FIFO und dem FEC-Prozessor 602 transferiert. Der FEC-Prozessor
erzeugt auf bekannte Weise Quadraturdaten, das heißt in Phase
befindliche Daten (I-Daten) und Quadraturdaten (Q-Daten), welche
in den Pulsformfilter 604 eingekoppelt werden. Die I- und
Q-Daten besitzen die FEC-Codierung, welche
eine effektive Fehlerkorrektur der empfangenen Daten durch den Demodulator
innerhalb des Set-Top-Terminals erleichtert.
-
Jede
im FIFO abgelegte Nachricht enthält 184
Bytes Daten. Im Allgemeinen enthalten diese Nachrichten (Nachrichtenblöcke) acht
Set-Top-Terminal-Nachrichten von jeweils 23 Bytes, und werden Nachrichten,
die innerhalb eines Blocks unbenutzt bleiben, mit Nullen gefüllt, um
das Erfordernis der 184 Bytes zu erfüllen. Jede Nachricht von 23
Bytes besitzt 2 Bytes für
eine Adresse eines Set-Top-Tenninals,
1 Byte für
den Nachrichtenlängenindikator,
1 Byte für
einen Steuerindikator, 1 Byte für
eine Sequenzzahl, und 18 Bytes Daten. Der Nachrichtenprozessor fügt auch
jeder Nachricht einen Header von 4 Bytes Länge hinzu, bevor die Nachricht
zum FIFO transferiert wird. Der Header ist der Header eines Transportprotokolls,
zum Beispiel ein MPEG-Transportpaket-Header.
-
Die
I- und Q-Datenströme
haben Bitraten von 500 kbps. Der FEC-Prozessor ist beispielhafterweise
eine Xilinx-programmierbare FEC-Vorrichtung 614 kombiniert
mit einem FPGA (field programmable gate array) 616 von
Altera, und ein 32K × 8
RAM 618. Das FPGA stellt zwei Funktionen zur Unterstützung der
FEC-Vorrichtung bereit. Da die FEC-Vorrichtung 614 von
Natur aus seriell arbeitet, besteht die erste Funktion des FPGA 616 darin,
Daten vom FIFO 600 zu lesen und die byte-breiten Daten
in einen seriellen Datenstrom zu konvertieren. Dieser Datenstrom
wird unter Kontrolle der FEC-Vorrichtung 614, welche den Datenstrom
periodisch anhält,
um eine FEC-Prüfsumme
einzufügen, übertragen.
Die zweite Funktion des FPGAs 616 besteht darin, den von
der FEC-Vorrichtung 614 erzeugten seriellen Datenstrom
in I- und Q-Datenströme
zu konvertieren. Dies wird durch einfaches Übertragen aller ungeradzahligen
und geradzahligen Bits zu alternierenden Ausgangsports erreicht.
Die I- und Q-Daten werden neu getaktet um einen Abgleich am Ausgang
des FPGAs zu erzielen. Die FEC-Vorrichtung 614 führt die
Signalverwürfelung
und das Interleave-Verfahren aus, sowie die Codierung der Daten
für die
vorwärts
gerichtete Fehlerkorrektur nach Reed-Solomon. Das RAM 618 wird von
der FEC-Vorrichtung 614 während des Interleave-Verfahrens
benutzt. Alle 94 Bytes (2-mal pro Paket) wird der eintreffende
Datenstrom angehalten, und werden zwei Bytes FEC-Codierung in den Datenstrom eingefügt.
-
Nach
der Verarbeitung durch den FEC-Prozessor 602 werden die
dualen Datenströme
vor der Modulation durch die Pulsformfilter 604 geleitet.
Diese Filter basieren auf einem 4-poligen Besseldesign als einer
Näherung
für eine
Durchlasskurve in Form eines raised Cosine. Der 50%-Punkt des Filters
liegt bei 650 kHz, was zusätzliche
30% Bandbreite für
Datenströme
von 500 kbps bereitstellt.
-
Um
die geeignete Modulationsfrequenz zu erzeugen, wird ein varactorgetunter
PLL- (phase lock loop) Frequenzgenerator 606 eingesetzt.
Die Modulationsfrequenz wird vom Server über ein speicheradressiertes
Register innerhalb eines der FPGAs festgelegt. Alternativ werden
die Frequenzen im Dual-Port-RAM abgelegt. Die Auflösung der
Frequenzwahl beträgt
2 MHz, was bedeutet, dass bei einer Erhöhung des Registerwertes um
1 die Modulationsfrequenz um 2 MHz angehoben wird. Gültige Werte
für dieses
Register sind 35 bis 65 (dezimal) entsprechend eines Frequenzbereichs
von 70 bis 130 MHz.
-
Die
Modulation der I- und Q-Datenströme wird
durch einen monolithischen QPSK-Vektormodulator 608 erreicht.
Ein solcher kommerziell verfügbarer
Modulator ist der HPMX-2005 von Hewlett Packard. Nach diesem Modulator
ist ein HPMX-3002 Verstärker 610 vorgesehen,
welcher bis zu 23 dBm gesättigter
Ausgangsleistung bereitstellt. Die spezifische Verstärkung dieser
Vorrichtung wird durch eine Anpassung auf der Leiterplatine festgelegt.
-
Der
QPSK-Vektonnodulator 608 moduliert herkömmlicherweise die Frequenz
des Frequenzgenerators mit den von den Pulsformfiltern 604 gelieferten
I- und Q-Daten. Der Steuerverstärker 610 verstärkt dann
das RF-modulierte QPSK-Signal und koppelt das verstärkte Signal
in einen Trennfilter 612. Das verstärkte Signal wird dann gefiltert,
um falsche Energie außerhalb
des Frequenzbandes von 70 bis 130 MHz zu eliminieren. Dieses Filter
ist eine passive Bandpassvorrichtung basierend auf einem 3-poligen Butterworth-Filter.
-
7 stellt
einen der zwei Modulatoren 208 und 210 in Form
eines Blockdiagramms dar. Beide Demodulatoren sind identisch. Das
Trennfilter 700, welches sich am Eingang des Demodulators
befindet, wird von beiden Demodulatoren 208 und 210 gemeinsam
benutzt. Dies ist die einzige Komponente der Demodulatoren, welche
gemeinsam benutzt wird. Der Demodulator 208 besitzt einen
Trennfilter 700, einen AGC-Verstärker 702 mit einem
Steuerschaltkreis 704, einen Frequenzmischer 706,
einen Anti-Alias-Filter 708, einen frequenzagilen Frequenzgenerator 710,
einen Analog-Digital- (A/D) Wandler (ADC) 712, ein Gate-Array 714,
einen digitalen Signalprozessor (DSP) 716, und einen Ausgabe-FIFO-Puffer 718.
Das Trennfilter 700 begrenzt die Frequenzen, die in das
Subsystem des Demodulators eingespeist werden. Dieses Filter ist
eine Butterworth-Vorrichtung dritter Ordnung mit 3 dB-Punkten bei
7,5 MHz und 15 MHz. Seine Eingangsimpedanz ist 75 Ohm. Während dieses
Filter das Interferieren der Signale außerhalb des erlaubten Uplink-Frequenzbereichs
beseitigt, beeinflusst er keine Signale innerhalb des erlaubten
Uplink-Bandes.
-
Dem
Trennfilter unmittelbar nachgeordnet ist ein Verstärker mit
automatischer Verstärkungsregelung 702 welcher
benutzt wird, um eine konstante Signalamplitude beim A/D-Wandler 712 zu
erzielen. Der AGC-Schaltkreis 704 tastet das Signal am
Eingang des A/D-Wandlers 716 ab. Der Schaltkreis 704 erzeugt
ein Verstärkungssteuerungssignal
entsprechend der Größe der Abtastung
und koppelt das Verstärkungssteuerungssignal
in den AGC-Verstärker 702.
Alternativ wird der AGC-Verstärker 702 durch eine
einfache Klemmenschalter (harter Begrenzer) ersetzt, welche die
Signalstärke,
welche in den Mischer 706 eingekoppelt wird, begrenzt.
-
Dem
AGC-Verstärker
ist ein Mischer 706 nachgeordnet, welcher das empfangene
Signal direkt nach unten zum Basisband umwandelt. Um die Komplexität in der
Hardware des Mischers 706 zu begrenzen, führt der
Mischer 706 nur eine Demodulation der I-Daten durch. Da
der lokale Oszillator 710 nicht mit dem Eingangssignal
synchronisiert ist, ist es sehr wohl möglich, dass die empfangene
Information gegenüber
diesem Oszillator um 90° phasenverschoben
ist. Da der eintreffende Datenstrom mit 62,5 Kilobits pro Sekunde
empfangen wird, ist eine Umwandlung des Signals auf die Mittenfrequenz
von 62,5 kHz möglich,
welches eine I/Q-Separierung im DSP-Prozessor ermöglicht.
Dem Mischer 706 nachgeordnet ist ein Anti-Alias-Filter 708,
vor dem Analog-Digital-Wandler (ADC). Dieses Filter ist eine Tiefpass-Butterworth-Vorrichtung
fünfter
Ordnung mit einer flachen Wiedergabe bei 130 kHz, und einem Verlust
von 29 dB bei 260 kHz.
-
Die
Umwandlung des Ausgangs des Anti-Alias-Filters erfolgt durch einen
8-Bit ADC unter Kontrolle des digitalen Signalprozessors 716.
Der Timer des DSPs wird eingestellt, um Pulse mit der gewünschten Abtastrate
von 255 ksps zu erzeugen. Diese Pulse werden vom feldprogrammierten
Gate-Array 714 interpretiert und initiieren eine Umwandlung
durch den ADC. Nach Abschluss der Umwandlung wird das Ergebnis im
FPGA 714 gehalten bis die Daten vom DSP 716 gelesen
werden. Wenn der DSP 716 die Daten vor der vollständigen Umwandlung
anfordert, wird der Betrieb des DSP über die Einfügung eines Speicher-Waitstates
bis zur Vervollständigung
der Umwandlung verzögert.
-
Zur
Verdeutlichung ist der digitale Signalprozessor ein TMS320C30 von
Texas Instruments. Wie allgemein bekannt demoduliert dieser DSP
die I- und Q-Komponenten des Eingangsdatensignals, behält eine
Symbolanordnung durch Benutzung einer Timing-Schleife bei und führt eine
Trägerwiederherstellung
durch, welche die zyklische Vertauschung des Eingangssignals aufhebt.
Der sich einstellende Bitstrom wird dann verarbeitet, um die Nachrichten-Header
zu lokalisieren, welche die Anordnung der Nachricht bestimmen. Nachdem
die Nachricht identifiziert wurde, wird sie in das FIFO 718 geschrieben,
um zum Nachrichtenprozessor im Byte-Format transferiert zu werden.
Ein zusätzliches
Bit wird auch in das FIFO geschrieben, welches den Anfang der Nachricht
anzeigt.
-
Die
Daten werden dem Nachrichtenprozessor in byte-breiten Mengen vom
FIFO zur Verfügung gestellt,
mit einem zusätzlichen
Bit, welches den Anfang der Nachricht anzeigt. Ein Startbit ist
mit dem Eingang D15 des Mikrokontroller-Datenbusses verbunden, während die
Datenbits mit dem Pins D7 bis D0 verbunden sind. Eintreffende Nachrichten
haben eine variable Länge
und bestehen aus 7 bis 23 Bytes. Es ist anzumerken, dass Header
für die
Kanalsynchronisierung vom Demodulator entfernt wurden. Das Format
der Demodulatornachricht ähnelt
dem Format der Modulatornachricht und besitzt ein Adressfeld mit
einer Länge
von 2 Bytes, welches das Set-Top-Terminal, welches die Nachricht
sendet, identifiziert, ein Nachrichtenlängenfeld von 1 Byte, ein Steuerfeld
von 1 Byte, ein Reihenfolgenfeld von 1 Byte, ein Datenfeld mit einer
variablen Anzahl von Bytes (die maximale Anzahl sind 16 Bytes),
und ein CRC-Feld mit 2 Bytes. Der Nachrichtenprozessor überwacht
den Status der Demodulator-FIFOs 718 über ihre leeren und fast leeren
Flags, um die Anwesenheit eintreffender Nachrichten zu überprüfen. Wenn
eine Nachricht empfangen wird, überprüft der Nachrichtenprozessor
zuerst das Statusregister betreffend der aktuell ausgewählten Nachrichtenpuffer, um
zu bestimmen, ob es zur Verfügung
steht. Steht es zur Verfügung,
beginnt der Nachrichtenprozessor mit der Übertragung der Bytes vom FIFO 718 zum Nachrichtenpuffer.
Da die Uplink-Datenrate recht gering ist, muss der Nachrichtenprozessor
darauf achten, beim FIFO 718 während des Transfers keine Bereichsunterschreitung
vorzunehmen.
-
Während des
Nachrichtentransfers überprüft der Nachrichtenprozessor
den Wert des Längenfeldes
bei den eintreffenden Daten. Dieses Feld gibt dem Nachrichtenprozessor
die Länge
der Nachricht an, einschließlich
der Steuer-, Reihenfolgen-, Daten- und Prüfsummenfelder. Da die Nachrichten eine
variable Länge
haben, wird dieser Wert benutzt, um zu bestimmen, wie viele Bytes
vom FIFO übertragen werden
müssen.
Das Bit für
den Anfang der Nachricht kann als Bestätigung für die Länge der Nachricht benutzt werden,
steht aber nicht zur Verfügung,
bis die nächste
Nachricht empfangen wird. Es ist zu beachten, dass der Wert für das Prüfsummenfeld
direkt zum Nachrichtenpuffer übertragen
wird, und dass seine Gültigkeit
nicht vom Nachrichtenprozessor überprüft wird.
Die Gültigkeit
wird durch einen Server-Subsystem oder eine Netzwerkschnittstelle überprüft.
-
Gültige Werte
für das
Längenbyte
liegen zwischen 4 und 20. Wenn eine Nachricht, die eine Länge größer 20 hat,
empfangen wird, wird die Nachrichtenübertragung nach 23 Bytes abgeschnitten,
und das Bit für
den Anfang der Nachricht muss benutzt werden, um die nächste eintreffende
Nachricht zu synchronisieren.
-
Nachdem
eine vollständige
Nachricht empfangen wurde, wird das Statusregister für den Nachrichtenpuffer
aktualisiert. Der verfügbare
Puffer für das
Schreibbit wird zurückgesetzt,
das einen wartenden Interrupt anzeigende Bit wird gesetzt und das Längenfeld
wird auf die gesamte Nachrichtenlänge gesetzt, das heißt, die
empfangene Nachrichtenlänge
plus 3 Bytes wie durch das Transportprotokoll definiert. Zusätzlich wird
ein geeignetes Bit im Interrupt-Register gesetzt, um anzuzeigen,
ob entweder für
den Demodulator oder für
den Modulator ein Interrupt wartet. Wenn die Nachricht abgeschnitten
wurde, wird auch das Überlaufbit
gesetzt.
-
Für den Fall,
dass eine Nachricht empfangen wurde und eine Überprüfung des Statusregisters ergibt,
dass der Puffer nicht zur Verfügung
steht, überprüft der Nachrichtenprozessor
den anderen Puffer des Demodulators hinsichtlich seiner Verfügbarkeit. Dies
erlaubt eine Wiederherstellung, wenn die Umschaltsynchronisation
bzw. Toggle-Synchronisation mit dem Server verloren ging. Wenn tatsächlich keiner
der Puffer zur Verfügung
steht, löscht
der Nachrichtenprozessor die eintreffende Nachricht und aktualisiert
das Statusregister des Demodulators, indem es das Bit setzt, welches
eine gelöschte
Nachricht anzeigt. Der Nachrichtenprozessor stellt auch sicher, dass
die Bits im Statusregister und im Interrupt-Register, welche einen
wartenden Interrupt anzeigen, gesetzt werden.
-
Auch
wenn verschiedene Ausführungsformen,
welche die Lehre der vorliegenden Erfindung beinhalten, gezeigt
wurden, und hierin im Detail beschrieben wurden, kann der Fachmann
andere abgewandelte Ausführungsformen
entwickeln, welche weiterhin diese Lehre beinhalten.