-
Die
vorliegende Erfindung bezieht sich auf ein drahtloses Kommunikationssystem
mit einem Sendegerät
und einem Empfangsgerät;
wobei
das genannte Sendegerät
Nachrichtensendemittel aufweist zum Übertragen eines Nachrichtenframes,
und Bestätigungsempfangsmittel
zum Empfangen eines Bestätigungsframes;
und
wobei das genannte Empfangsgerät Nachrichtenempfangsmittel
aufweist zum Empfangen eines Nachrichtenframes, und Bestätigungssendemittel zum Übertragen
eines Bestätigungsframes
wenn die genannten Nachrichtenempfangsmittel ein Nachrichtenframe
einwandfrei empfangen haben.
-
Die
vorliegende Erfindung bezieht sich weiterhin auf ein Gerät, das geeignet
ist zur Verwendung in einem derartigen System.
-
Kommunikation
zwischen zwei Geräten
kann verschiedenartig erfolgen. Drahtlose Kommunikation wird weitgehend
angewandt zur Kommunikation bei tragbaren Geräten. Für Produkte in dem Bereich der Konsumentenelektronik
wird meistens IR-Licht als Träger
zur drahtlosen Kommunikation verwendet. Bei bekannten IR-Kommunikationssystemen
umfasst ein sendendes Gerät,
wie eine tragbare Fernsteuerung, einen IR-Sender und ein Empfangsgerät, wie ein Fernseher,
umfasst einen IR-Empfänger.
Die Information wird in Form von Nachrichtenframes übertragen.
Die Nachrichtenframes sind auf eine maximale Größe begrenzt, wodurch es möglich ist,
dass das Sende- und Empfangsgerät
Puffer mit einer entsprechenden maximalen Größe verwendet zur vorübergehenden
Speicherung der Nachrichtenframes. Durch Anwendung einfacher Kommunikationsprotokolle
dadurch, dass mit niedrigen Bitraten gearbeitet wird, wird eine
kosteneffektive Kommunikation erreicht. Typischerweise werden die
Protokolle durch die Haupt-CPU durchgeführt, wodurch spezielle Logik-
oder Kommunikations-ICs neben einem IF-Sender oder einem IR-Empfänger nicht
erforderlich sind. Eine Übertragung über Infrarot
kann aber auf einfache Weise gestört werden, beispielsweise durch
andere IR-Sender, die mit derselben Frequenz arbeiten. Um die Zuverlässigkeit
derartiger Kommunikationssysteme zu steigern, sind die Kommunikationsprotokolle
dadurch verbessert worden, dass Bestätigungsmechanismen zum Mitteilen
eines einwandfreien Empfangs eines übertragenen Frames verwendet wer den.
Wenn in Reaktion auf die Übertragung
eines Nachrichtenframes kein Bestätigungsframe empfangen wird,
kann das Nachrichtenframe neu übertragen werden.
Die kann beispielsweise auf Initiative des Benutzers erfolgen, indem
er dieselbe Taste auf der Fernbedienung abermals betätigt. Auch
das sendende Gerät
kann das Nachrichtenframe automatisch neu übertragen, und zwar bis zu
einem vorbestimmten Maximum oder einer Einheit oder bis ein Bestätigungsframe
empfangen worden ist. Der Bestätigungsmechanismus
kann auch benutzt werden um zu detektieren, dass keine Kommunikation
möglich war,
beispielsweise in Situationen, in denen der maximale Arbeitsabstand überschritten
wird oder der optische Kontakt unterbrochen wurde. Um den Bestätigungsmechanismus
zu unterstützen
umfassen die beiden Geräte
einen IR-Sender und einen IR-Empfänger. Ein derartiges System
ist an sich aus Drain-Elektrode-A-3508562 bekannt.
-
Dieses
System beschreibt die Kommunikation zwischen zwei Geräten, wobei
das sendende Gerät
Nachrichtenframes erzeugt und Bestätigungsframes empfängt; und
wobei das empfangende Gerät
in Reaktion darauf Nachrichtenframes empfängt und Bestätigungsframes
erzeugt. Die Hinzufügung
eines dritten Geräts
kann dazu führen,
dass das System aussetzt.
-
Eine
derartige Situation tritt beispielsweise auf, wenn ein VCR ebenfalls
die Nachrichtenframes empfängt,
die von der Fernbedienung des Fernsehers ausgesendet werden, und
in Reaktion darauf Bestätigungsframes
aussendet. Die Übertragung
eines einzigen Nachrichtenframes könnte dann zu zwei Bestätigungsframes
führen,
die nahezu gleichzeitig ausgesendet werden (das eine Frame von dem Fernseher
und das andere Frame von dem VCR), was zu Interferenz führt und
was dazu führt,
dass überhaupt
keine Bestätigung
empfangen wird. Diese Situation wird meistens dadurch vermieden,
dass Empfangsgeräten
einzigartige Adressen zugeordnet werden. Ein von der Fernbedienung
ausgesendetes Nachrichtenframe umfasst die Adresse eines spezifischen
Empfangsgeräts.
Nur das adressierte Gerät wird
das Nachrichtenframe empfangen und es bestätigen. Typischerweise kommen
mit einer vom Hersteller eingestellten Adresse oder bieten dem Benutzer
eine Wahl aus Adressen, wie eine Wahl aus den logischen Adressen: "VCR1" und "VCR2" für einen VCR.
Die Tatsache, dass jedes Gerät
aus einem Kommunikationsgesichtspunkt einzigartig gemacht wird,
hat deutliche Vorteile. Der Nachteil ist aber, dass Information,
die für
mehr als nur ein Gerät
relevant ist, soll mehrere Male übertragen
werden, jeweils an ein anderes Gerät adressiert. So kann beispielsweise
nach Kopierung eines Heimkinofilms kann es sein, dass ein Benutzer
drei Bereitschafts-Befehle auf Fernbedienung(en) durchführen muss
um den Fernseher, den VCR1 und den VCR2 in die Bereitschaftsmode
zu bringen.
-
Auf
gleiche Weise kann das System versagen, wenn es zwei Fernbedienungen
gibt zum Steuern desselben Fernsehers. Ein nahezu gleichzeitiger Gebrauch
der zwei Fernbedienungen wird dazu führen, dass zwei Nachrichtenframes
einander stören. Eine
automatische Wiederholung der Übertragung kann
zu einer wiederholten Störung
führen,
insbesondere wenn die Wiederholungsraten einander entsprechen. Wenn
die zweite Fernbedienung ein zweites Nachrichtenframe überträgt, und
zwar kurz nachdem die erste Fernbedienung ein erstes Nachrichtenframe übertragen
hat, kann das zweite Nachrichtenframe das Bestätigungsframe für das erste
Nachrichtenframe stören.
Wenn das zweite Nachrichtenframe übertragen wird, bevor das erste
Nachrichtenframe bestätigt
worden ist, kann Verwirrung entstehen über die Frage, welches Nachrichtenframe
durch das Bestätigungsframe
wirklich bestätigt
worden ist.
-
In
US 4.941.143 wird weiterhin
ein Netzwerk beschrieben zum Abtasten, zum Kommunizieren und zum
Steuern, wobei dieses Netzwerk eine Anzahl Zellen aufweist, die
mit Paketen kommunizieren. Eine Übertragungszelle überträgt ein Paket,
wobei eine Anzahl Bestimmungszellen um Bestätigung gebeten wird. Die sendende
Zelle wartet danach auf Bestätigung
von den Bestimmungszellen. Die sendende Zelle wartet eine vorbestimmte
Periode um die Bestätigungen
zu empfangen und folgert dann, dass ein Zusammenstoß stattgefunden
haben soll, wenn von keiner der Zielzellen eine Antwort erhalten
wird. Als Ergebnis der Störung
durch einen Zusammenstoß werden
von der sendenden Zelle verschiedene Aktionen durchgeführt, dies
im Gegensatz zu dem Fall, wo die Zelle von wenigstens einer Zielzelle
eine Bestätigung
empfängt.
-
Es
ist nun u. a. eine Aufgabe der vorliegenden Erfindung, ein drahtloses
Kommunikationssystem zu schaffen, wodurch Kommunikation zwischen wenigstens
drei Geräten
möglich
ist, die aus dem Gesichtspunkt der Kommunikation, einander gleich sind.
Es ist eine weitere Aufgabe der vorliegenden Erfindung, dass ein
derartiges System imstande ist, die Möglichkeit, dass ein einziges übertragenes Nachrichtenframe
zu mehreren störenden
Bestätigungsframes
führt.
Es ist auch eine Aufgabe der vorliegenden Erfindung, die Möglichkeit,
dass Nachrichtenframes einander stören, zu reduzieren.
-
Um
diese Aufgabe zu erfüllen
weist das System nach der vorliegenden Erfindung das Kennzeichen
auf, dass das genannte System wenigstens drei Geräte umfasst;
wobei
jedes Gerät
ein Sendegerät
sowie ein Empfangsgerät
ist,
jedes Gerät
weiterhin die nachfolgenden Elemente umfasst:
- – Detektionsmittel
zum Detektieren einer Übertragung
eines Frames,
- – erste
Zeitgebermittel zum Einstellen eines ersten Zeitgebers zu einer
vorbestimmten ersten Zeit, wenn die genannten Detektionsmittel das Ende
der genannten Übertragung
detektieren, und
- – zweite
Zeitgebermittel um, wenn die genannten Nachrichtenempfangsmittel
ein Nachrichtenframe einwandfrei empfangen, einen zweiten Zeitgeber auf
eine beliebige Zeit mit einer vorbestimmten oberen Grenze zu setzen;
wobei die genannte vorbestimmte obere Grenze kleiner ist als die
genannte erste Zeit;
die genannten Nachrichtensendemittel
dazu vorgesehen sind, ein Nachrichtenframe zu übertragen, wenn der genannte
erste Zeitgeber beendet ist und die genannten Detektionsmittel keine Übertragung eines
anderen Frames detektieren; und
die genannten Bestätigungssendemittel
dazu vorgesehen sind, ein Bestätigungsframe
nur denn zu übertragen,
wenn der genannte zweite Zeitgeber beendet ist, bevor die genannten
Detektionsmittel eine Übertragung
eines anderen Frames detektieren.
-
Um
eine zuverlässige
und kosteneffektive Kommunikation zwischen einer Gruppe von Geräten zu erzielen,
benutzt die vorliegende Erfindung die nachfolgenden Mechanismen:
- 1. Ein Nachrichtenframe und ein Bestätigungsframe
bilden ein "synchrones" Paar. Wenn ein Nachrichtenframe
einmal übertragen
worden ist, wird eine erste Periode, gesteuert durch den ersten Zeitgeber,
exklusiv reserviert zum Zurückkehren eines
Bestätigungsframes.
Die Verwendung von synchronen Paaren gewährleistet, dass das sendende
und empfangende Gerät
die erforderlichen Vorgänge
sequentiell durchführen
können
(es sind keine parallele Aktivitäten
erforderlich).
- 2. Ein Nachrichtenframe wird nur von einem einzigen empfangenen
Gerät bestätigt. Für viele
Applikationen wird ein ausreichender Zuverlässigkeitspegel erreicht, wenn
das sendende Gerät darüber informiert
wird, dass wenigstens ein Gerät
das Nachrichtenframe einwandfrei empfangen hat. Dies wird auf zweierlei
Weisen erreicht:
- – Es
wird eine beliebige Verzögerung,
gesteuert durch den zweiten Zeitgeber, verwendet, bevor das Bestätigungsframe übertragen
wird. Der Zeitgeber wird auf Empfang eines Nachrichtenframes gesetzt.
Dies reduziert die Möglichkeit,
dass eine Anzahl Geräte
nahezu gleichzeitig mit der Übertragung
eines Bestätigungsframes
starten. Die beliebige Verzögerung
hat eine obere Grenze, die kleiner ist als die erste Zeit, wodurch
gewährleistet
wird, dass die Übertragung
des Bestätigungsframes
vor der Übertragung
eines anderen Nachrichtenframes startet.
- – Die
Geräte
detektieren, ob während
der beliebigen Verzögerungsperiode
ein Frame übertragen wird.
Sollte dies der Fall sein (wobei vorausgesetzt wird, dass ein anderes
Gerät eine
kürzere Verzögerung hatte
und bereits die Übertragung
eines Bestätigungsframes
gestartet hat), so wird kein anderes Bestätigungsframe übertragen.
- 3. Nur jeweils ein einziges Gerät überträgt ein Nachrichtenframe (wonach
die Übertragung
eines Bestätigungsframes
durch ein empfangendes Gerät
folgt). Die Geräte
detektieren, ob ein Frame übertragen
wird. Wenn eine Übertragung
detektiert wird, wird keine Übertragung
eines anderen Nachrichtenframes gestartet. Am Ende der detektierten Übertragung
wird der erste Zeitgeber gesetzt (wodurch gewährleistet wird, dass das Paar noch
immer zusammen ist). Wenn der Zeitgeber abläuft, kann eine Übertragung
eines anderen Nachrichtenframes starten. Um zu gewährleisten, dass
kein anderes Gerät
bereits eine Übertragung gestartet
hat, überprüft ein Gerät zunächst, ob ggf.
eine Übertragung
aktiv ist. Dieser Mechanismus bietet einen ziemlich guten Schutz
vor gegenseitiger Störung
von Nachrichtenframes, insbesondere für Systeme, bei denen relativ
wenig Nachrichtenframes übertragen
werden und die Nachrichtenframes auf Initiative der Benutzer übertragen
werden.
-
Eine
erste Ausführungsform
eines Systems nach der vorliegenden Erfindung weist das Kennzeichen
auf, dass das genannte erste Zeitgebermittel dazu vorgesehen ist,
den genannten ersten Zeitgeber auf eine beliebige Zeit innerhalb
eines Zeitfensters zu setzen; wobei das genannte Zeitfenster aus einer
Anzahl vorbestimmter, nicht überlappender Zeitfernster
gewählt
worden ist, wobei das Zeitfenster, das der genannten Detektion des
Endes einer Übertragung
eines Frames am nächsten
folgt, zum Übertragen
eines Nachrichtenframes mit höchster Priorität reserviert
ist und die jeweils nachfolgenden Zeitfenster zum Übertragen
eines Nachrichtenframes mit einer jeweils niedrigeren Priorität reserviert
sind.
-
Insbesondere
wenn von den Geräten
automatisch Nachrichtenframes erzeugt werden oder wenn relativ viel
Frames übertragen
werden sollen, kann die Situation auftreten, dass eine Übertragung eines
Frames wenigstens zwei Geräte
auf nahezu denselben Zeitpunkt verzögert (gesteuert durch den ersten
Zeitgeber). In einer derartigen Situation könnten diese Geräte die Übertragung
starten, ohne dass detektiert wird, dass eine andere Übertragung
gestartet hat. Zur Verringerung der Gefahr, dass dies passiert,
wird der erste Zeitgeber auf eine beliebige Zeit innerhalb eines
vorbestimmten Zeitfensters gesetzt. Außerdem wird das beliebige Zeitfenster
in wenigstens zwei sich nicht überlappende
Zeitfenster aufgeteilt, wodurch es ermöglicht wird, dass die Übertragung
von Nachrichtenframes Priorität
erhalten. Nachrichtenframes mit einer hohen Priorität benutzen
das erste Zeitfernster; Nachrichtenframes mit einer niedrigen Priorität benutzen
ein späteres
Zeitfenster.
-
In
einem Kommunikationssystem kann das sendende Gerät weiterhin dritte Zeitgebermittel
enthalten zum Setzen eines dritten Zeitgebers auf eine vorbestimmte
dritte Zeit, nachdem die Nachrichten sendenden Mittel ein Nachrichtenframe übertragen hat;
wobei die Nachrichten sendenden Mittel dazu vorgesehen sind, das
Nachrichtenframe eine vorbestimmte Anzahl Male neu zu übertragen,
wenn der dritte Zeitgeber aufhört,
bevor die Bestätigungsempfangsmittel
ein Bestätigungsframe
empfangen. Eine weitere Ausführungsform
des Systems nach der vorliegenden Erfindung weist das Kennzeichen
auf, dass jedes Gerät
die genannten dritten Zeitgebermittel enthält;
dass die genannten
Nachrichtensendemittel dazu vorgesehen sind, eine lange Nachricht über eine
Reihe von Nachrichtenframes zu verteilen; wobei jedes nachfolgende
Nachrichtenframe der Reihe anders ist als das unmittelbar vorhergehende
Nachrichtenframe und wobei ein nachfolgendes Nachrichtenframe übertragen
wird, nachdem ein Bestätigungsframe
für das
unmittelbar vorhergehende Nachrichtenframe von den genannten Bestätigungsempfangsmitteln empfangen
worden ist,
dass die genannten Nachrichtenempfangsmittel dazu
vorgesehen sind, eine Reihe von Nachrichtenframes zu empfangen und
zwischen aufeinander folgenden Nachrichtenframes der Reihe zu unterscheiden,
und
dass die genannten Bestätigungssendemittel
dazu vorgesehen sind, nur dann das genannte Bestätigungsframe zu übertragen,
und zwar wenn die genannten Nachrichtenempfangsmittel ein Nachrichtenframe
der genannten Reihe einwandfrei empfangen, wenn die genannten Nachrichtenempfangsmittel
alle vorhergehenden Nachrichtenframes der genannten Reihe einwandfrei
empfangen haben.
-
Bei
dieser Ausführungsform
werden lange Nachrichten über
eine Reihe von Nachrichtenframes verteilt. Die Nachrichtenframes
werden nacheinander übertragen.
Das nächste
Nachrichtenframe der Reihe wird nur dann übertragen, wenn das aktuelle Nach richtenframe
bestätigt
worden ist. Wenn keine Bestätigung
empfangen wird, wird das aktuelle Nachrichtenframe automatisch neu übertragen.
In einer Umgebung mit einem großen
Risiko einer Zerrüttung der Übertragung
ist es vorteilhaft, einzelne Nachrichtenframes neu zu übertragen
stattdessen, dass die ganze Reihe von Nachrichtenframes übertragen wird.
Es kann auch die nachfolgende Situation auftreten, dass ein empfangendes
Gerät ein
Nachrichtenframe bestätigt
hat, dass aber das Bestätigungsframe
von dem Gerät,
welches das Nachrichtenframe übertrug,
nicht einwandfrei empfangen wurde. In einer derartigen Situation
wird das sendende Gerät
das Nachrichtenframe neu übertragen.
Um zu gewährleisten,
dass das empfangende Gerät
zwischen einer Neuübertragung
und einer Übertragung
des nächsten
Nachrichtenframes differenzieren kann, ist jedes nachfolgende Nachrichtenframe
der Reihe anders als das unmittelbar vorhergehende Nachrichtenframe.
Wie oben bereits beschrieben, ist es erwünscht, dass wenigstens ein
Gerät eine
Nachricht einwandfrei empfängt.
Auf gleiche Weise ist es erwünscht, dass
wenigstens ein Gerät
eine lange Nachricht einwandfrei empfängt, wobei diese lange Nachricht
die ganze Reihe Nachrichtenframes ist. Ein Nachrichtenframe wird
von nur einem einzigen Gerät
bestätigt. Es
könnte
die Situation auftreten, dass jedes einzelne Nachrichtenframe der
Reihe bestätigt
wird, dass aber kein Gerät
die ganze Nachricht einwandfrei empfangen hat. So kann beispielsweise
von einer langen Nachricht, die über
zwei Nachrichtenframes verteilt ist, das erste Nachrichtenframe
nur von dem Gerät
A empfangen und von dem Gerät
A bestätigt werden
und das zweite Nachrichtenframe könnte nur von dem Gerät B empfangen
und von dem Gerät
B bestätigt
werden. Um dieses Problem zu überwinden bestätigt ein
Gerät nur
den einwandfreien Empfang eines Nachrichtenframes, wenn es alle
vorhergehenden Nachrichtenframes der Reihe einwandfrei empfangen
hat.
-
Bei
einer weiteren Ausführungsform
der vorliegenden Erfindung weist das System das Kennzeichen auf,
dass die Bestätigungssendemittel
dazu vorgesehen sind, nur dann das Bestätigungsframe zu senden, wenn
die Bestätigungssendemittel
ein Bestätigungsframe
für alle
vorhergehenden Nachrichtenframes der genannten Reihe übertragen
hat. Zur Steigerung der Möglichkeit,
dass eine lange Nachricht empfangen wird, ist das Gerät, welches das
erste Nachrichtenframe der Reihe bestätigte, das einzige Gerät, das die
restlichen Nachrichtenframes der Reihe bestätigt.
-
Bei
einer anderen Ausführungsform
der vorliegenden Erfindung weist das System das Kennzeichen auf,
dass einem Nachrichtenframe, welches das erste Frame einer Reihe
von Nachrichtenframes ist, eine geringere Priorität zugeordnet
wird als den restlichen Nachrichtenframes der Reihe. Dies gewährleistet,
dass wenn die Übertragung
einer langen Nachricht einmal gestartet ist, die lange Nachricht Priorität erhalten
hat. Sonst ist es möglich,
dass insbesondere bei Systemen, bei denen eine Vielzahl von Nachrichten übertragen
werden, jedes einzelne Nachrichtenframe der Reihe mit allen Nachrichten, die
von den anderen Geräten übertragen
werden sollen, wetteifern muss. Dies könnte die Dauer der Übertragung
eventuell sehr lang machen. Das beschriebene System ist deswegen
besonders vorteilhaft für
IR-basierte Systeme, bei denen die Möglichkeit den optischen Kontakt
zu verlieren, zunimmt, wenn die Übertragung
lange dauert.
-
Bei
einer weiteren Ausführungsform
nach der vorliegenden Erfindung weist das System das Kennzeichen
auf, dass Nachrichtenframes einer Reihe von Nachrichtenframes eine
Nummer aufweisen, die für
nachfolgende Nachrichtenframes der Reihe jeweils anders ist. Die
Verwendung von Nummern ist eine einfache Art und Weise zwischen
aufeinander folgenden Frames zu unterscheiden. So können beispielsweise
Nummern verwendet werden, die für
aufeinander folgende Nachrichtenframes der Reihe aufeinander folgend
höher sind.
Bei einer alternativen Ausführungsform
weist das System das Kennzeichen auf, dass aufeinander folgende
Nachrichtenframes der Reihe abwechselnd die Nummer Null oder Eins
enthalten. Unter Verwendung dieses Mechanismus braucht nur eine
Bitstelle in dem Nachrichtenframe für diese Nummer reserviert zu
werden, was ermöglicht,
dass das empfangende Gerät
auf einfache Art und Weise zwischen einer Neuübertragung und einer Übertragung
des nächsten
Nachrichtenframes der Reihe differenzieren kann.
-
Bei
einer anderen Ausführungsform
nach der vorliegenden Erfindung weist das System das Kennzeichen
auf, dass
- – jedes
Gerät Prüfsummenberechnungsmittel
aufweisen zum Berechnen einer Prüfsumme,
die eine Reihe von Nachrichtenframes darstellt,
- – die
genannten Nachrichtensendemittel dazu vorgesehen sind, dafür zu sorgen,
dass die genannten Prüfsummenberechnungsmittel
eine erste Prüfsumme
berechnen, welche die Reihe von Nachrichtenframes darstellt, die
von den genannten Nachrichtensendemitteln übertragen werden sollen; wobei
die genannten Nachrichtensendemittel die genannte erste Prüfsumme in
ein vorbestimmtes Nachrichtenframe der Reihe einfügen,
- – die
genannten Nachrichtensendemittel weiterhin dazu vorgesehen sind,
in das letzte Nachrichtenframe der Reihe eine Angabe einzufügen, dass
dieses Nachrichtenframe das letzte Nachrichtenframe der Reihe ist,
- – die
genannten Nachrichtenempfangsmittel dazu vorgesehen sind, dafür zu sorgen,
dass die genannten Prüfsummenberechnungsmittel
eine zweite Prüfsumme
berechnen, werde die Reihe von Nachrichtenframes darstellt, die
von den genannten Nachrichtenempfangsmitteln empfangen worden sind,
- – die
genannten Bestätigungssendemittel
dazu vorgesehen sind, wenn die genannten Nachrichtenempfangsmittel
das letzte Nachrichtenframe der Reihe empfangen haben, das genannte
Bestätigungsframe
nur dann zu übertragen,
wenn die genannte erste Prüfsumme
in dem genannten vorbestimmten Nachrichtenframe der Reihe, die von
den genannten Nachrichtenempfangsmitteln empfangen worden ist, der
genannten zweiten Prüfsumme
entspricht.
-
Die
Prüfsumme
ermöglicht
es, dass die Empfangsgeräte
bestimmen, ob alle Nachrichtenframes der Reihe einwandfrei empfangen
worden sind. Wenn ein Empfangsgerät einen Fehler detektiert,
bestätigt
es nicht das letzte Nachrichtenframe der Reihe. Auf diese Weise
kann das sendende Gerät
detektieren, dass nicht nur einzelne Nachrichtenframes einwandfrei
empfangen worden sind, sondern dass die ganze Nachricht empfangen
worden ist. Ein zusätzlicher
Vorteil tritt auf, wenn eine auf Infrarot basierte Kommunikation
angewandt wird, insbesondere für
tragbare Geräte.
Bei derartigen Systemen kann der optische Kontakt leicht unterbrochen
werden. Ohne Vorkehrungen könnte
dies zu dem nachfolgenden Szenario führen: ein Gerät A startet
die Übertragung
einer Reihe von Nachrichtenframes. Gerät B empfängt die Reihe. Gerät C empfängt nicht
den Anfang der Reihe und startet auch die Übertragung einer Reihe von
Nachrichtenframes (beispielsweise richtet der Benutzer nur C auf
die anderen Geräte, wenn
C eine Nachricht übertragen
soll). Die beiden Geräte
A und B empfangen die von C übertragene Reihe
von Nachrichtenframes. Dadurch verliert A die Entscheidung und beendet
die Übertragung
(im Wesentlichen gewann C das Recht auf Übertragung indem er nicht einwandfrei
entschied) Das Ende der Geschichte ist: B hat eine Reihe von Nachrichtenframes
empfangen, teilweise von A herrührend
und teilweise von C herrührend.
Auf vorteilhafte Weise ermöglicht
die Prüfsumme
dass B dies detektiert und C darüber
dadurch informiert, dass er das letzte Nachrichtenframe nicht bestätigt.
-
Ausführungsbeispiele
der Erfindung sind in der Zeichnung dargestellt und werden im vorliegenden
Fall näher
beschrieben. Es zeigen:
-
1 eine
Darstellung eines Systems aus vier Geräten bestehend, die imstande
sind, drahtlos miteinander zu kommunizieren,
-
2 ein
Blockschaltbild eines Geräts
für ein
System nach der vorliegenden Erfindung,
-
3 ein
Blockschaltbild einer Implementierung auf Basis eines Mikrocontrollers,
-
4 ein
Flussdiagramm, das die Rolle des zweiten Zeitgebers illustriert
bei der Vermeidung zum Erhalten von zwei Bestätigungen,
-
5 ein
Flussdiagramm, das die Rolle des ersten Zeitgebers illustriert bei
der Vermeidung, dass Nachrichtenframes einander stören,
-
6 eine
Darstellung der Zeitfenster, die zur Übertragung von Nachrichtenframes
und Bestätigungsframes
verwendet werden,
-
7 ein
Blockschaltbild einer weiteren Ausführungsform eines Geräts für ein System
nach der vorliegenden Erfindung,
-
8 ein
Flussdiagramm, das die Rolle des dritten Zeitgebers illustriert
bei der Neuübertragung eines
Nachrichtenframes,
-
9 Strukturen
eines Nachrichtenframes und eines Bestätigungsframes,
-
10 eine
Darstellung einer Reihe von vier Nachrichtenframes, und
-
11 ein
Blockschaltbild einer weiteren Ausführungsform eines Geräts für ein System
nach der vorliegenden Erfindung.
-
Das
System nach der vorliegenden Erfindung umfasst eine Gruppe von wenigstens
drei Geräten,
die imstande sind, drahtlos miteinander zu kommunizieren. 1 zeigt
ein derartiges System mit vier Geräten 100 bis 104.
Das beschriebene System kann für
mehrere Fernbedienungsapplikationen verwendet werden, ist aber auch
praktisch geeignet für
tragbare Kommunikationsapparatur. So kann beispielsweise eine Gruppe
von Kindern, die je einen tragbaren Spielcomputer haben, ein Gruppenspiel spielen,
indem jedes Kind örtliche
Daten in seinen Spielcomputer eingibt und indem sein Spielcomputer die
betreffende Information zu den anderen Computern überträgt. Weiterhin
bietet das betreffende System Kindern die Möglichkeit, als Team zusammenzuarbeiten,
wobei jedes Kind seinen Beitrag zu der Aufgabe liefert, die das
Team lösen
möchte.
So könnten beispielsweise
die Kinder ein komplexes Puzzle lösen, indem jedes Kind mit Hilfe
seines eigenen Spielcomputers einen Teil des Puzzles löst und seine Teillösung von
sein Spielcomputer zu den an deren Spielcomputern übertragen
wird. In einem anderen Beispiel kann ein "Personal Digital Assistent" (PDA) mit vielen
Applikationen erweitert werden, die aus Gruppenkommunikation Nutzen
zieht. Ein derartiger PDA könnte
einem Kind die Möglichkeit
bieten, eine Mitteilung einzugeben und diese den PDAs der Klassenkammeraden
zuzusenden. Für
diese Typen von Gruppenapplikationen wird ein ausreichender Pegel der
Zuverlässigkeit
erreicht, wenn wenigstens ein Gerät ein übertragenes Nachrichtenframe
empfängt. Da
Gruppen sehr dynamisch gebildet werden (Kinder können kommen und gehen) ist
es nicht erforderlich, dass jedes Gerät das Nachrichtenframe empfängt. Es
kann zu überraschenden
Effekten führen,
wenn eine Nachricht am Wiedergabeschirm von einigen erscheint, nicht
aber bei allen. Dies kann leicht den Eindruck geben, dass der übertragene
Gegenstand ein eigens Leben führt.
-
Es
dürfte
einleuchten, dass das beschriebene System sind insbesondere für diese
Typen von Gruppenapplikationen eignet, wobei jedes Gerät aus Kommunikationsgesichtspunkt
dasselbe ist und Gruppen mit Kommunikationsgeräten dynamisch gebildet werden.
Die Einfachheit des beschriebenen drahtlosen Kommunikationssystems
ermöglicht
kosteneffektive Implementierungen, die für Spielcomputer und Kinder-PDAs
sehr wichtig sind. IR-Kommunikation ist besonders kosteneffektiv
und hat die zusätzlichen
Vorteile, dass die Kommunikation auf einen einzigen Raum begrenzt
ist und keinen behördlichen
Vorschriften unterliegt. In Situationen, in denen Kommunikation über größere Abstände erforderlich ist,
beispielsweise mit Nachbarkindern, die unter Verwendung ihrer PDSa
kommunizieren möchten,
kann dasselbe System unter Anwendung einer einfachen HF-Übertragungstechnologie benutzt
werden, die beispielsweise aus tragbaren Sprechfunkgeräten bekannt
ist.
-
Die
Geräte
an sich können
verschieden sein. So können
beispielsweise für
interaktives Fernsehen vier verschiedene Fernbedienungen verwendet
werden um mit einer intelligenten Schnittstellenbox zu kommunizieren.
Die Schnittstellenbox kann ihrerseits über eine Telefonverbindung
mit dem Sendestudio verbunden sein. Jeder Benutzer kann Selektionen oder
Antworten über
die Fernbedienung eingeben und diese der Schnittstellenbox zuführen. Die Schnittstellenbox überträgt diese
Information zu dem Studio. Auf gleiche Weise kann das Studio Daten, wie
Fragen, zu der Schnittstellenbox übertragen, die ihrerseits diese
Information allen Fernbedienungen zuführt. In diesem Beispiel handelt
es sich um fünf Geräte von zwei
Typen (vier Fernbedienungen und eine Schnittstellenbox). Die vorliegende
Erfindung bezieht sich nur auf die Kommunikation zwischen den fünf Geräten; die
Kommunikation zwischen der Schnittstellenbox und dem Sendestudio
liegt nicht im Rahmen der vorliegenden Erfindung.
-
Nebst
der Tatsache, dass die Geräte
nach 1 zur drahtlosen Kommunikation ausgelegt sind, werden
sie typischerweise Eingabemittel 10, wie ein Tastenfeld,
und eine Wiedergabeanordnung 20, wie eine LCD-Wiedergabeanordnung,
enthalten. Vorzugsweise wird für
die Wiedergabeanordnung 20 eine Graphiktafel verwendet,
die ebenfalls Eingaben mittels eines Stiftes oder durch Fingerberührung ermöglicht.
-
2 zeigt
ein Blockschaltbild eines Geräts für ein System
nach der vorliegenden Erfindung. Der Deutlichkeit halber sind zwei
Geräte 100 und 101 dargestellt.
Jedes Gerät
umfasst Nachrichtensendemittel 200 zum Übertragen eines Nachrichtenframes, Nachrichtenempfangsmittel 210 zum
Empfangen eines Nachrichtenframes, Bestätigungssendemittel 220 zum Übertragen
eines Bestätigungsframes,
und Bestätigungsempfangsmittel 230 zum
Empfangen eines Bestätigungsframes.
In 2 ergreift das Gerät 100 die Initiative
ein Nachrichtenframe zu übertragen.
Die Initiative kann automatisch ergriffen werden, beispielsweise
auf Initiative eines Programms, oder auf alternative Weise, durch
ein Ereignis von draußen
getriggert werden, wie durch einen Benutzer, der eine Taste berührt. Es
sind mehrere Verfahren zum Detektieren äußerer Ereignisse, wie ein Mikrocontroller,
der ein Tastenfels abtastet, bekannt und werden an dieser Stelle
nicht näher
beschrieben. Dadurch übertragen
die Nachrichtensendemittel 200 des Geräts ein Nachrichtenframe 500.
Die Nachrichtenempfangsmittel 210 des Geräts 101 empfangen
das Nachrichtenframe 500. Die Nachrichtenempfangsmittel 210 überprüfen ebenfalls,
ob die Nachricht einwandfrei empfangen worden ist. Es sind mehrere diesbezügliche Verfahren
bekannt, wie das Überprüfen der
Bitzeit (beispielsweise Doppelphasencodierung), das Überprüfen, ob
die Parität
Paritätsbits
in dem Nachrichtenframe entsprechen oder das Überprüfen, ob eine berechnete Prüfsumme,
wie eine CRC, der Prüfsumme
in dem Nachrichtenframe entspricht. Auf Basis derartiger Verfahren
kann ein empfangendes Gerät
zu der Schlussfolgerung gelangen, dass ein Nachrichtenframe nicht
einwandfrei empfangen worden ist. Wenn kein Fehler detektiert worden
ist, geht das empfangende Gerät
davon aus, dass das Nachrichtenframe einwandfrei empfangen worden
ist.
-
Jedes
Gerät umfasst
weiterhin zweite Zeitgebermittel 302. Wenn die Nachrichtensendemittel 210 ein
Nachrichtenframe einwandfrei empfangen, setzen die zweiten Zeitgebermittel 320 einen
zweiten Zeitgeber auf eine beliebige Zeit mit einer vorbestimmten
oberen Grenze T2. In dem vorliegenden Beispiel geschieht dies, wenn
das Gerät 101 das Nachrichtenframe 500 einwandfrei
empfängt.
Die Bestätigungssendemittel 220 übertragen
ein Bestätigungsframe
erst nach Ablauf des zweiten Zeitgebers. Geräte anders als das Gerät 101 können das
Nachrichtenframe 500 auch einwandfrei empfangen und den
zweiten Zeitgeber gestartet haben. Der zweite Zeitgeber eines der
empfangenden Geräte
wird zunächst
in Pauselage gebracht. Die Bestätigungssendemittel 220 dieses
Geräts
werden ein Bestätigungsframe 510 übertragen.
Jedes Gerät
umfasst weiterhin Detektionsmittel 400 zum Detektieren
einer Übertragung
eines Frames. Wenn die Detektionsmittel 400 eines Geräts, das
darauf wartet, dass der zweite Zeitgeber beendet ist, eine Übertragung
eines anderen Frames detektieren, bevor der zweite Zeitgeber geendet
hat, wird kein Bestätigungsframe übertragen.
Auf alternative Weise können
die Detektionsmittel bei Detektion der Übertragung eines Frames, vermeiden,
dass die zweiten Zeitgebermittel 320 enden, auch dazu führen, dass
kein Bestätigungsframe übertragen
wird. Die Verwendung des beliebigen Zeitgebers und der Detektion
von Frameübertragungen
gewährleistet
eine große
Gefahr, dass nur ein einziges Gerät das Nachrichtenframe 500 bestätigt. Wenn
wenigstens ein Gerät
das Bestätigungsframe 500 einwandfrei
empfangen hat, werden die Bestätigungsempfangsmittel 230 des
Geräts 100 ein
Bestätigungsframe 510 erhalten.
Offenbar können
andere Geräte
dasselbe Bestätigungsframe 510 detektieren und
empfangen, aber da diese Geräte
ein Bestätigungsframe
nicht erwarten, wird das Frame gestrichen.
-
Jedes
Gerät kann
die Initiative ergreifen, ein Nachrichtenframe zu übertragen.
Folglich könnte
die Übertragung
eines Nachrichtenframes, ausgelöst von
einem ersten Gerät,
die Übertragung
eines Nachrichtenframes, ausgelöst
von einem anderen Gerät,
oder die Übertragung
eines Bestätigungsframes
stören.
Die Detektionsmittel 400 werden auch benutzt zum Reduzieren
der Möglichkeit,
dass dies passiert. Wenn die Detektionsmittel 400 eine Übertragung
detektieren, verzögern
die Nachrichtensendemittel 200 den Start der Übertragung
eines anderen Nachrichtenframes. Wenn die Detektionsmittel 400 das
Ende der Übertragung
detektieren, setzen die ersten Zeitgebermittel 310 einen
ersten Zeitgeber auf eine vorbestimmte erste Zeit T1. Wenn der erste Zeitgeber
abgelaufen ist, können
die Nachrichtensendemittel 200 die Übertragung eines anderen Nachrichtenframes
starten. Da ein anderes Gerät verzögert sein
kann durch Detektion derselben Übertragung,
ist es vorteilhaft, wieder zu überprüfen, ob eine Übertragung
ggf. aktiv ist, bevor in Wirklichkeit die Übertragung gestartet wird.
Dieser Mechanismus bietet einen ziemlich guten Schutz gegen Nachrichtenframes,
die einander stören,
insbesondere für Systeme,
bei denen relativ wenig Nachrichtenframes übertragen werden und die Nachrichtenframes
auf Initiative der Benutzer übertragen
werden. Es dürfte einleuchten,
dass stattdessen, dass der Zeitgeber am Ende der Detektion einer Übertragung
eines Frames eingestellt wird, der Zeitgeber auch zu einem anderen
Zeitpunkt während
der Frameübertragung,
wie beim Start des Frames, eingestellt werden kann. Bei vielen Systemen,
bei denen die maximale Länge (und
Dauer) eines Frames bekannt sind, wird dies zu ähnlichen Ergebnissen führen. Bei
einigen Systemen, wie beispielsweise bei Systemen auf IR-Basis, können Störungen auftreten,
die von den Detektionsmitteln 400 als eine Übertragung
eines Frames interpretiert werden, was die vorbestimmte erste Zeit
T1 übersteigt.
Bei derartigen Systemen ist es besonders vorteilhaft, den Zeitgeber
am Ende der Detektion der Übertragung
oder der Störung
einzustellen.
-
Außerdem wird
die vorbestimmte erste Zeit T1 derart gewählt, dass diese länger ist
als die vorbestimmte obere Grenze T2 des zweiten Zeitgebers, eingestellt
durch die zweiten Zeitgebermittel 320. Dies gewährleistet,
dass ein Nachrichtenframe und das entsprechende Bestätigungsframe
ein "synchrones" Paar bilden. Wenn
ein Nachrichtenframe einmal detektiert worden ist, wird die erste
Zeitperiode, gesteuert durch den ersten Zeitgeber, exklusiv reserviert
zum Zurücksenden
des Bestätigungsframes. Auf
vorteilhafte Weise gewährleistet
die Verwendung von Synchronpaaren, dass die Sende- und Empfangsgeräte die erforderlichen
Vorgänge
sequenziell durchführen
können
(es sind keine parallelen Aktivitäten erforderlich).
-
Ein
Gerät kann,
indem es ein Nachrichtenframe oder ein Bestätigungsframe überträgt, jeden Empfang
von Frames sperren. Auf alternative Weise kann es möglich sein,
auf vorteilhafte Weise zu prüfen,
ob eine Störung
der Übertragung
stattgefunden hat.
-
Die
Nachrichtensendemittel 200 sowie die Bestätigungssendemittel 220 übertragen
ein Frame. Offenbar können
beide Mittel teilweise kombiniert werden. So können beispielsweise unter Anwendung einer
Kommunikation auf IR-Basis die beiden Mittel auf vorteilhafte Weise
eine Codierungsschaltung und eine Modulationsschaltung sich teilen,
wobei die Codierungsschaltung zum Codieren des Frames in beispielsweise
ein Doppelphasensignal, und die Modulationsschaltung zum Übertragen
eines IR-Signals verwendet wird, dem das codierte Signal aufmoduliert
ist. Typischerweise betrifft die Modulation das Modulieren des Signals
auf einem Hilfsträger,
der typischerweise in dem Bereich von 33 bis 40 kHz liegt, und daraufhin
das Modulieren des Hilfsträgers
auf dem IR-Träger.
Auf gleiche Weise können
die Nachrichtenempfangsmittel 210, die Bestätigungsempfangsmittel 230 und
die Detektionsmittel 400 sich eine Modulationsschaltung
teilen zum Empfangen des IR-Lichtsignals und zum Demodulieren desselben
in ein codiertes Signal. Die Nachrichtenempfangsmittel 210 und
die Bestätigungsempfangsmittel 230 können weiterhin
sich eine Decodierschaltung zum Decodieren des empfangenen codierten
Signals in ein Frame teilen. Insbesondere ist es, wenn das Gerät bereits
einen Mikrocontroller enthält,
beispielsweise von dem Typ PCA 84C822 der Firma Philips, vorteilhaft,
die Nachrichtensendemittel 200, die Nachrichtenempfangsmittel 220,
die Bestätigungssendemittel 220 und
die Bestätigungsempfangsmittel 230 mit
dem Mikrocontroller zu kombinieren. Die ersten Zeitgebermittel 310 und
die zweiten Zeitgebermittel 320 werden vorzugsweise mit
den Zeitgeberfunktionen des Mikrocontrollers kombiniert. In der
Praxis werden die Modulations- und Demodulationsschaltungen von
dem Mikrocontroller getrennt gehalten. In Situationen, wo die Echtzeit-Anforderungen
des Mikrocontrollers dies ermöglichen,
ist es vorteilhaft, den ersten Modulationsschritt (das Modulieren
des Signals auf einem Hilfsträger)
mit dem Mikrocontroller zu kombinieren.
-
3 zeigt
eine Implementierung unter Verwendung eines Mikrocontrollers. Ein
Mikrocontroller 600 benutzt eine Modulationsschaltung 610 zum
Modulieren eines Hilfsträgers
auf einem IR-Lichtsignal. Ein Beispiel einer derartigen Modulationsschaltung, auch
als IR-LED bezeichnet, ist LD2475 der Firma Siemens. Eine Demodulationsschaltung 620 empfängt das
IR-Lichtsignal und demoduliert es in ein digitales Signal, das dem
Mikrocontroller 600 zugeführt wird. Ein Beispiel einer
derartigen Demodulationsschaltung ist TFNS 5360 der Firma Telefunken.
-
4 zeigt
die Verwendung des zweiten Zeitgebers zur Vermeidung davon, dass
man zwei Bestätigungen
erhält.
So ist als Beispiel eine Interaktion zwischen drei Geräten A, B
und C dargestellt. Die Interaktion startet zu dem Zeitpunkt t =
t0. Es wird vorausgesetzt, dass zu diesem
Zeitpunkt keine anderen Interaktionen aktiv sind und dass alle Zeitgeber beendet
sind. Zu dem Zeitpunkt t = t0 startet A
mit der Übertragung
(Tx) eines Nachrichtenframes. Gleichzeitig detektieren B und C die Übertragung
und starten den Empfang (Rx) des Nachrichtenframes. Au dem Zeitpunkt
t = t1 endet die Übertragung. Zu diesem Zeitpunkt
haben B und C das Nachrichtenframe empfangen und, wenn kein Fehler
detektiert wird, starten die beiden Geräte den zweiten Zeitgeber zu einem
beliebigen Zeitpunkt tb bzw. tc mit
einer vorbestimmten oberen Grenze T2 (tb ≤ T2l tc ≤ T2). B und C bzw. tc mit
einer vorbestimmten oberen Grenze T2 (tb ≤ T2l tc ≤ T2). B und C warten (Wt) bis der Zeitgeber abgelaufen
ist, bevor sie ein Bestätigungsframe übertragen.
In diesem Beispiel ist tb die kürzeste Zeit (tb < tc). Zu dem Zeitpunkt t = t2 endet
der Zeitgeber in B. Da B zwischen t = t1 und
t = t2 keine Übertragung detektiert hat,
startet B die Übertragung
eines Bestätigungsframes
zu t = t2. C detektiert (DET) diese Übertragung
auch zu dem Zeitpunkt t = t2, was bedeutet,
dass C nicht länger
ein Bestätigungsframe übertragen
wird.
-
5 zeigt
die Verwendung des ersten Zeitgebers bei der Vermeidung, dass Nachrichtenframes einander
stören.
So ist als Beispiel eine Interaktion zwischen drei Geräten A, B
und C dargestellt. Die Interaktion startet zu dem Zeitpunkt t =
t0. Es wird vorausgesetzt, dass zu diesem
Zeitpunkt keine anderen Interaktionen aktiv sind und dass alle Zeitgeber
beendet sind. Zu dem Zeitpunkt t = t0 startet
A mit der Übertragung
(Tx) eines Nachrichtenframes. Gleichzeitig detektieren B und C die Übertragung
und starten den Empfang (Rx) des Nachrichtenframes. Zu dem Zeitpunkt
t = t1 beendet A die Übertragung und B und C detektieren
das Ende der Übertragung.
A, B und C starten den ersten Zeitgeber zu einem vorbestimmten ersten
Zeitpunkt T1. Sie warten (Wt) mit der Übertragung
eines anderen Nachrichtenframes bis der erste Zeitgeber beendet
ist. Der Einfachheit halber ist vorausgesetzt, dass nur B das Nachrichtenframe
einwandfrei empfangen hat (die Situation, dass die beiden das Nachrichtenframe
einwandfrei empfangen wurde oben bereits beschrieben). B startet den
zweiten Zeitgeber (zur Bestätigung)
zu einem beliebigen Zeitpunkt tb mit der
vorbestimmten oberen Grenze T2 (tb ≤ T2). B wartet (Wt) bis der zweite Zeitgeber
beendet ist. Dies geschieht zu dem Zeitpunkt t = t2.
Daraufhin startet B die Übertragung
eines Bestätigungsframes.
A und C detektieren diese Übertragung
ebenfalls zu dem Zeitpunkt t = t2. Zu dem
Zeitpunkt t = t3 beendet B die Übertragung
des Bestätigungsframes
und A und C detektieren das Ende der Übertragung. A und C starten
den ersten Zeitgeber abermals zu dem vorbestimmten ersten Zeitpunkt
T1. Zu dem Zeitpunkt t = t3 hat
A das Bestätigungsframe empfangen.
Auch C kann das Bestätigungsframe empfangen
und es folglich gelöscht
haben, da C kein Bestätigungsframe
erwartet. Auf alternative Weise kann C den Empfang des Bestätigungsframes
beendet haben, sobald C detektierte, dass es ein Bestätigungsframe
war. Solange der erste Zeitgeber nicht beendet ist oder die Übertragung
eines Frames detektiert wird, wird keine Übertragung eines neuen Nachrichtenframes
gestartet. Auf diese Weise kann von dem Anfang der Übertragung
des ersten Nachrichtenframes zu dem Zeitpunkt t = t0 kein
neues Nachrichtenframe erzeugt werden bis t = t4 für B (erster
Zeitgeber endet in B) oder t = t5 für A und
C (erster Zeitgeber endet in A und C). Wenn B auch imstande ist,
die eigene Übertragung
zu detektieren, kann B auch den ersten Zeitgeber zu dem Zeitpunkt
t = t3 rückgestellt
haben, was dazu führt,
dass der erste Zeitgeber auch in B zu dem Zeitpunkt t = t5 endet. Es sei bemerkt, dass die obere Grenze
T2 für
den zweiten Zeitgeber niedriger ist als die vorbestimmte Zeit T1 für
den ersten Zeitgeber. Dies gewährleistet,
dass das Bestätigungsframe übertragen
wird, bevor ein neues Nachrichtenframe übertragen wird. In praktischen
Implementierungen kann eine bestimmte Zeitmarge zwischen T1 und T2 für Verarbeitungsverzögerungen
erforderlich sein. Außerdem
kann das System eine AVR benutzen um die richtigen Pegel der empfangenen
Signale anzupassen. In diesem Fall ist es günstig, eine minimale Zeit für den zweiten
Zeitgeber zu definieren. In dem Beispiel nach 4 könnte es
sonst passieren, dass B nahezu sofort den Empfang des Nachrichtenframes
bestätigt,
während
die AVR in A die Empfindlichkeit der Empfangsschaltung in A reduziert
hat, während
A das Nachrichtenframe übertrug.
Dadurch kann A nicht imstande sein, das Bestätigungsframe einwandfrei zu
empfangen. Die minimale Periode macht, dass die AVR zu einem hohen
Pegel der Empfindlichkeit zurückgeht.
-
Aus 5 dürfte es
einleuchten, dass die Übertragung
eines Nachrichtenframes die Übertragung
eines anderen Nachrichtenframes verzögert. Wenn während dieser
Periode zwei oder mehr Geräte
ein neues Nachrichtenframe übertragen
möchten, können die
Geräte
zu einem gleichen Zeitpunkt verzögert
werden (A und C werden in dem Beispiel nach 5 zu t =
t5 verzögert).
Wenn die Verarbeitungsverzögerungen
in A und C einander sehr ähnlich sind,
kann es passieren, dass die beiden die Übertragung nahezu gleichzeitig
starten und nicht imstande sind, zu detektieren, dass eine Übertragung
bereits gestartet wurde bevor sie tatsächlich selber ihre Übertragung
starteten. Um dieses Problem zu überwinden
wird bei einer weiteren Ausführungsform
der erste Zeitgeber zu einem beliebigen Zeitpunkt in einem Zeitfenster
gestartet. Wie aus 5 ersichtlich, muss die untere
Zeitgrenze des Zeitfensters höher sein
als die obere Grenze T2 des zweitem Zeitgebers, damit
gewährleistet
wird, dass das Bestätigungsframepaar
nicht von einem neuen Nachrichtenframe unterbrochen werden kann.
Das Zeitfenster für
den ersten Zeitgeber wird weiterhin in wenigstens zwei nicht überlappenden
Zeitfenstern abgebrochen. Das erste Fenster dieser Zeitfenster ist
für die Übertragung
eines Nachrichtenframes mit höchster
Priorität
reserviert. Die nachfolgenden Zeitfenster sind für die Übertragung eines Nachrichtenframes
mit einer jeweils geringeren Priorität reserviert. Das erste Zeitfenster ist
das Zeitfenster zum Senden eines neunen Nachrichtenframes, das dem
Zeitpunkt am nächsten
liegt, zu dem die Detektionsmittel 400 das Ende eines Übertragung
eines Frames detektieren. Es sei bemerkt, dass solange Nachrichtenframes
mit einer hohen Priorität übertragen
werden müssen,
ein Nachrichtenframe mit einer niedrigen Priorität verzögert wird (der erste Zeitgeber
wird durch Detektion der Übertragung
eines Nachrichtenframes mit einer hohen Priorität neu gestartet). Auf gleiche
Weise wird jeweils nur ein Nachrichtenframe mit einer hohen Priorität übertragen
und die anderen Nachrichtenframes mit hoher Priorität werden
verzögert.
-
6 zeigt
die für
die Übertragung
von Nachrichtenframes und Bestätigungsframes
verwendeten Zeitfenster. Es wird vorausgesetzt, dass zu dem Zeitpunkt
t = 0 das Ende einer Übertragung
eines Nachrichtenframes detektiert wird, das Zeitfenster 10 zum
Senden eines Bestätigungsframes
reserviert ist. Der wirkliche Zeitpunkt, wo das Bestätigungsframe übertragen
wird, ist beliebig, innerhalb dieses Zeitfensters. Das Zeitfenster
hat eine vorbestimmte obere Grenze T2. Das
Zeitfenster 20, welches das erste Fenster nach T2 ist, ist zum Übertragen eines Nachrichtenframes
mit hoher Priorität
reserviert. Wenn ein Gerät
ein Nachrichtenframe mit hoher Priorität übertragen möchte, ist der wirkliche Zeitpunkt,
wo das Nachrichtenframe übertragen
wird, innerhalb des Zeitfensters 20 beliebig. Das nachfolgende
Zeitfenster 30 ist für
das Nachrichtenframe mit nächst
höchster
Priorität
reserviert usw. Es sei bemerkt, dass wenn ein Nachrichtenframe mit
hoher Priorität übertragen
wird, die Detektion der Übertragung
die Zeitgeber rückstellen
wird. Auf diese Weise wird ein Nachrichtenframe mit niedrigerer
Priorität nur
dann übertragen,
wenn kein Gerät
ein Nachrichtenframe mit hoher Priorität übertragen möchte.
-
Bei
einer weiteren Ausführungsform,
wie in 7 dargestellt, sind die eine Nachricht sendenden Mittel 200 dazu
vorgesehen, eine lange Nachricht über eine Reihe von Nachrichtenframes
zu verteilen und die Reihe von Nachrichtenframes danach zu übertragen.
Außerdem
sind die eine Nachricht empfangenden Mittel 210 dazu vorgesehen,
eine Reihe von Nachrichtenframes zu empfangen. Es sei bemerkt, dass
die Nachrichtensendemittel 200 eine Nachricht aktiv in
Nachrichtenframes aufteilen können,
oder auf alternative Weise kann eine Nachricht bereits als eine
Reihe von Nachrichtenframes gespeichert sein. Typischerweise werden
Nachrichtenframes in der Länge
begrenzt (und dadurch aus in der Übertragungszeit). Die Länge wird
meistens derart gewählt,
dass diese der Applikation entspricht. Wenn beispielsweise Nachrichtenframes
nur zum Übertragen
einfacher Instruktionen verwendet werden, wie der Benutzer, der
eine Taste der Fernbedienung betätigt,
wird eine Datenlänge
von bis zu zwei Bytes ausreichen. Für komplexere Situationen, wie das
Programmieren eines VCRs mit Hilfe der Fernbedienung durch den Benutzer
und das Übertragen
der Reihe von Instruktionen in einem einzigen Vorgang, ist die Verwendung
eines größeren Frames,
wie 16 Datenbytes, günstig.
Für Applikationen,
wie oben bereits beschrieben, bei denen Zeichnungen oder Briefe übertragen
werden sollen, würden
noch mehr Bytes erforderlich sein. Wenn aber die Framegröße zu stark
ansteigt, werden Probleme entstehen. Außerdem wird bei Steigerung
der Puffergröße (extra Kosten)
auch die Zuverlässigkeit
reduziert. Dies könnte
insbesondere bei IR-Kommunikation zu einem unzuverlässigen System
führen,
wenn kein Bestätigungsframe
für das
Nachrichtenframe empfangen wird. Dazu umfasst jedes Gerät dritte
Zeitgebermittel 330, zum Einstellen eines dritten Zeitgebers auf
eine vorbestimmte dritte Zeit T3, nachdem die Nachrichtensendemittel 200 ein
Nachrichtenframe übertragen
haben. Wenn der dritte Zeitgeber endet, bevor die Bestätigungsempfangsmittel 230 ein
Bestätigungsframe
empfangen haben, senden die Nachrichtensendemittel 200 das
Nachrichtenframe abermals, bis zu einer vorbestimmten maximalen
Anzahl Male. Die Bestätigungsempfangsmittel 230 können die
Nachrichtensendemittel 200 darüber informieren, dass ein einwandfreies
Bestätigungsframe empfangen
worden ist oder, auf alternative Weise beenden die dritten Zeitgebermittel 330,
so dass diese nicht enden. Die maximale Anzahl Neuübertragungen
könnte
beispielsweise drei sein. Für
Kommunikation auf IR-Basis wird eine größere Anzahl Male, wie sechzehn,
bevorzugt, da IR-Kommunikation ganz
leicht gestört
werden kann. Die Zuverlässigkeit wird
weiterhin dadurch gesteigert, dass die Bestätigungssendemittel 220 dazu
vorgesehen sind, nur dann ein zur Bestätigung eines einwandfreien
Empfangs eines Nachrichtenframes ein Bestätigungsframe zu übertragen,
wenn die Nachrichtenempfangsmittel 210 alle Nachrichtenframes
der bisherigen Reihe einwandfrei empfangen haben. Dies vermeidet, dass
die Situation auftritt, wo alle Nachrichtenframes einer Reihe bestätigt worden
sind, dass aber keines der bestätigenden
Geräte
die ganze Reihe einwandfrei empfangen hat.
-
Bei
einer weiteren Ausführungsform
wird die Zuverlässigkeit
dadurch noch weiter gesteigert, dass die Bestätigungssendemittel 220 dazu
vorgesehen sind, nur dann ein Bestätigungsframe auf einen einwandfreien
Empfang eines Nachrichtenframes einer Reihe zu übertragen, wenn die Nachrichtenempfangsmittel 210 alle
Nachrichtenframes der bisherigen Reihe einwandfrei empfangen haben
und wenn die Bestätigungssendemittel 220 ein Bestätigungsframe
für alle
diese Nachrichtenframes übertragen haben.
Dies gewährleistet,
dass nur ein einziges Gerät
den Empfang von Reihen mit Nachrichtenframes bestätigt.
-
8 zeigt,
dass die vorbestimmte dritte Zeit T3 zum Warten auf das Bestätigungsframe
länger sein
muss als die vorbestimmte obere Grenze T2 zur Bestätigung des
Empfangs des Nachrichtenframes. Zu dem Zeitpunkt t = t1 hat das
Gerät A
die Übertragung
(Tx) eines Nachrichtenframes beendet. A setzt den dritten Zeitgeber
auf T3 und wartet (Wt) bis der Zeitgeber beendet ist. In diesem
Beispiel hat B kein Nachrichtenframe empfangen. Hätte B das
Nachrichtenframe empfangen, so hätte
B zu dem Zeitpunkt t = t1 den zweiten Zeitgeber auf eine beliebige
Zeit gesetzt, mit einem Maximum von T2. In dem Fall hätte B das
Bestätigungsframe
spätestens
während
der Periode t = t2 bis t = t3 übertragen.
Dadurch, dass gewährleistet
wird, dass T3 größer ist
als T2, startet A die Neuübertragung
des Bestätigungsframes
zu dem Zeitpunkt t = t4, wenn A nicht länger ein Bestätigungsframe
empfangen wird. Vorzugsweise ist T3 genügend größer als T2 um einige Verarbeitungsverzögerungen
zu ermöglichen.
-
Die
Nachrichtensendemittel 200 aus 7 übertragen
ein nächstes
Nachrichtenframe einer Reihe von Nachrichtenframes nur dann, wenn
ein Bestätigungsframe
für das
unmittelbar vorhergehende Nachrichtenframe empfangen worden ist.
Ohne Vorkehrungen könnte
die nachfolgende Situation auftreten: das Gerät A überträgt ein Nachrichtenframe einer
Reihe zu B; B sendet ein Bestätigungsframe,
das gestört
wird und nicht von A empfangen wird; A überträgt abermals dasselbe Nachrichtenframe,
während B
das nächste
Nachrichtenframe der Reihe erwartet. Um dieses Problem zu lösen ist
jedes nachfolgende Nachrichtenframe der Reihe anders als das unmittelbar
vorhergehende Nachrichtenframe und die Nachrichtenempfangsmittel 210 sind
imstande zwischen aufeinander folgenden Frames der Reihe zu unterscheiden.
Folglich können
die Nachrichtenempfangsmittel 210 ein Nachrichtenframe,
das ein Teil der Reihe ist, streichen, wenn dieses dasselbe ist
wie das vorher empfangene Nachrichtenframe.
-
Bei
einer weiteren Ausführungsform
wird dem ersten Nachrichtenframe der Reihe eine niedrigere Priorität zugeordnet
als den restlichen Nachrichtenframes der Reihe. Wenn beispielsweise
ein System zwei Prioritäten
unterstützt,
hätte das
erste Nachrichtenframe die niedrigere Priorität und die nachfolgenden Nachrichtenframes
die höhere
Priorität.
Unter Anwendung dieses Mechanismus bewirbt sich zunächst jede
Nachricht gleichermaßen
um das Recht zu übertragen
(geringe Priorität).
Wenn die Übertragung
einer langen Nachricht einmal gestartet ist, hat die lange Nachricht
Priorität
erhalten. Dies gewährleistet
eine schnelle Übertragung
einer Nachricht und reduziert die Möglichkeiten von Störungen, insbesondere
für Systeme
auf IR-Basis.
-
Der
linke Teil in 9 zeigt eine einfache Struktur
eines Nachrichtenframes 500 und eines Bestätigungsframes 510.
Das Nachrichtenframe 500 enthält ein DATA-Feld mit einer
variablen Anzahl Daten-Bytes oder Bits mit einem Maximum von beispielsweise
16 Daten-Bytes. Das Bestätigungsframe 510 enthält ein ACK-Feld
von beispielsweise einem Bit. Zum Vereinfachen der Taktsynchronisation
der Empfangsschaltung und der Detektion des Anfangs eines Frames,
kann ein Frame außerdem
mit einem speziellen Kopffeld (HDR), wie einem speziellen Doppelphasen-codierten
Muster starten. Der rechte Teil der 9 zeigt
eine erweiterte Struktur des Nachrichtenframes 500 und
des Bestätigungsframes 510.
Die Felder DA und SA umfassen die Adresse des Zielgeräts (DA)
und des Quellengeräts
(SA). Dies bedeutet, dass die Quellenadresse des Bestätigungsframes 510 die
Zieladresse des empfangenen Nachrichtenframes 500 enthält und dass
die Zieladresse des Bestätigungsframes 510 die
Quellenadresse des empfangenen Nachrichtenframes 500 enthält. Dieses
System nach der vorliegenden Erfindung beruht nicht auf die Verwendung
von Adressen (Geräte
sind einander gleich und haben keine einzigartige Adresse). Es ist
aber vorteilhaft eine Framestruktur einzuhalten, die diese Felder
aufweist, obgleich die Felder nur mit festen Adressen verwendet werden,
damit man imstande ist, ein bestehendes Kommunikationssystem zu
verwenden, wobei eine der Adressen für die Geräte nach der vorliegenden Erfindung
reserviert ist. Unter Verwendung der reservierten Adresse kann ein
Gerät mit
den Geräten
des Systems nach der vorliegenden Erfindung kommunizieren, und zwar
unter Befolgung der in diesem Dokument beschriebenen zusätzlichen
Prozeduren. Vorzugsweise wäre
dasselbe Gerät
imstande, eine der anderen Adressen zu benutzen um mit dem Rest des
bestehenden Kommunikationssystems zu kommunizieren, wobei die Basisprozeduren
für dieses System
befolgt werden. So kann beispielsweise die Basisprozeduren und die
Framestruktur eines bestehenden Fernbedienungssystem befolgend ein
tragbarer Spielcomputer nach der vorliegenden Erfindung als eine
Fernbedienung für
einen Fernseher verwendet werden.
-
Die
in dem rechten Teil der 9 dargestellte Framestruktur
umfasst ebenfalls ein Feld TYPE, von wenigstens einem Bit, um zwischen
einem Nachrichtenframe und einem Bestätigungsframe zu unterscheiden.
Unter Verwendung dieses Feldes können die beiden
Frametypen dieselbe Framestruktur verwenden. Obschon dies die Größe insbesondere
des Bestätigungsframes
steigern kann, hat es den Vorteil, dass ein wesentlicher Teil der
erforderlich Software und Hardware, die für die beiden Frametypen erforderlich
sind, geteilt werden kann. Das Feld LNGTH wird verwendet um die
Länge des
nachfolgenden Datenfeldes anzugeben. Insbesondere wenn die Datengröße wesentlich
variiert, ist es vorteilhaft, imstande zu sein, die Länge der
Daten auf einfache Weise zu detektieren (beispielsweise damit man
imstande ist, zu ermitteln, wann mit dem Empfang aufgehört werden
soll). Das Feld SEQ wird verwendet um Sequenzinformation anzugeben.
Wie oben beschrieben, sind aufeinander folgende Nachrichtenframes
einer Reihe anders als das unmittelbar vorhergehende Nachrichtenframe.
Dies kann dadurch erreicht werden, dass in das Feld SEQ aufeinander
folgender Frames jeweils eine andere Zahl eingegeben wird. Es sei
bemerkt, dass Frames, die nicht aufeinander folgen, dieselbe Nummer
haben können.
Ein einfaches Verfahren ist aber, dass aufeinander folgenden Nachrichtenframes
einer Reihe eine sequenziell höhere
Nummer gegeben wird. Dadurch, dass das Feld SEQ auch für das Bestätigungsframe 510 verwendet
wird, und dass die Nummer aus dem SEQ-Feld des Nachrichtenframes 500 kopiert
wird, wird es ermöglicht,
besser zu überprüfen, dass
ein empfangenes Bestätigungsframe
tatsächlich
ein Nachrichtenframe bestätigt,
das von dem Gerät übertragen
wurde.
-
Der
obere Teil aus 10 zeigt ein Beispiel einer
Reihe von vier Nachrichtenframes, wobei das SEQ-Feld aufeinander
folgender Frames eine sequenziell höhere Zahl hat. Das erste Nachrichtenframe 500 umfasst
die Zahl; Null; das zweite Nachrichtenframe 501 eine 1;
usw. Der untere Teil der 10 zeigt
eine alternative Annäherung,
wobei das SEQ-Feld in drei Teilfelder T, F und L aufgeteilt ist. Das
T-Feld umfasst abwechselnd die Zahl Null oder die Zahl Eins ("toggle bit") für aufeinander
folgende Nachrichtenframes einer Reihe. Dies ermöglicht es, zwischen aufeinander
folgenden Nachrichtenframes zu differenzieren. Es könnte aber
die Situation auftreten, dass eine gerade Anzahl aufeinander folgender Frames
von einem bestimmten Gerät
nicht einwandfrei empfangen werden. Dieses Gerät wäre nicht imstande, dies zu
detektieren. Um dieses Problem zu lösen umfasst das erste Nachrichtenframe
einen Längenindikator,
der die gesamte Anzahl Nachrichtenframes in der Reihe angibt. In
diesem Beispiel gibt es in der Reihe vier Nachrichtenframes. Der
Längenindikator
könnte
beispielsweise ein Teil der Daten in dem DATA-Feld sein. Damit man
imstande ist, zu detektieren, dass ein Nachrichtenframe das erste
Frame der Reihe ist, umfasst das SEQ-Feld ein Teilfeld F von wenigstens
einem Bit, um dies anzugeben. Außerdem umfasst das SEQ-Feld
ein Teilfeld L von wenigstens einem Bit, um anzugeben, dass das
Nachrichtenframe das letzte Frame der Reihe ist. Wenn ein Gerät das letzte
Nachrichtenframe empfängt, überprüft es, ob
es alle Nachrichtenframes empfangen hat. Sollte dies nicht der Fall
sein, so bestätigt
es das Nachrichtenframe nicht. Es sei bemerkt, dass in einer derartigen
Situation andere Geräte,
die alle Nachrichtenframes empfangen haben, den Empfang durchaus
bestätigen
können.
-
Eine
einfache Prüfsumme,
wie der beschriebene Längenindikator,
schützt
vor einer begrenzten Anzahl Fehler. Für einige Systeme kann dieser Schutzpegel
nicht ausreichen. Für
Kommunikation auf IR-Basis, insbesondere die Verwendung tragbarer
Geräte,
kann der optische Kontakt leicht unterbrochen werden. Ohne Vorkehrungen
könnte
dies zu dem nachfolgenden Szenario führen: ein Gerät A startet
die Übertragung
einer Reihe von sechs Nachrichtenframes, wobei die Länge in dem
ersten Frame angegeben ist. Das Gerät B empfängt die Nachrichtenframes.
Das Gerät
C empfängt
nicht den Anfang der Reihe und startet die Übertragung einer Reihe von
vier Nachrichtenframes (beispielsweise der Benutzer zeigt C in Richtung
der anderen Geräte,
wenn C eine Nachricht übertragen
soll) zu dem Zeitpunkt, wo A nur zwei Nachrichtenframes übertragen
hat. Die beiden Geräte
A und B detektieren die Reihe von Nachrichtenframes, die von C übertragen
wurden. Dadurch verliert A die Entscheidung und beendet die Übertragung
(im Wesentlichen gewann C das Recht zu übertragen dadurch, dass es
nicht einwandfrei entschied). Am Ende hat B eine Reihe von sechs Nachrichtenframes
empfangen, wobei die ersten zwei Frames von A herrühren und
die vier letzten Frames von C herühren. Eine Längenprüfsumme gestattet
B nicht, zu detektieren, dass die Reihe nicht einwandfrei ist. Nötigenfalls
können
kompliziertere Prüfsummen
benutzt werden, wie Prüfsummen
auf Paritätsbasis
oder zyklische Redundanzprüfungen (CRC).
-
11 zeigt
eine weitere Ausführungsform, wobei
das Gerät 100 Prüfsummenberechnungsmittel 410 aufweist
zum Berechnen einer Prüfsumme,
die eine Reihe von Frames darstellt. So könnte beispielsweise die Prüfsumme eine
CRC sein, berechnet über den
ganzen Inhalt aller Nachrichtenframes der Reihe. Es dürfte einleuchten,
dass die Prüfsumme
auch einfacher sein kann und auf bestimmte Felder des Nachrichtenframes
begrenzt, wie nur das Datenfeld. Die Nachrichtensendemittel 200 sind
dazu vorgesehen, die Prüfsummenberechnungsmittel 410 zu
benutzen zum Berechnen einer Prüfsumme über die Reihe
von Nachrichtenframes, welche die Nachrichtensendemittel 200 übertragen
sollen. Die Nachrichtensendemittel 200 fügen dann
die Prüfsumme
an einer vorbestimmten Stelle in ein vorbestimmtes Bestätigungsframe
ein. Offenbar können
viele verschiedene Positionen gewählt werden, wie die erste Position
des Datenfeldes des ersten Nachrichtenframes. Die Reihe von Nachrichtenframes
wird von den Nachrichtenempfangsmitteln 210 eines anderen
Gerätes
oder mehrerer anderer Geräte
empfangen. Die Nachrichtenempfangsmittel 210 sind dazu
vorgesehen, die Prüfsummenberechnungsmittel 410 zum Berechnen
einer Prüfsumme über die
empfangenen Reihen von Nachrichtenframes zu benutzen. Die Nachrichtenempfangsmittel 210 extrahieren
auch die Prüfsumme
von der vorbestimmten Position in dem vorbestimmten Nachrichtenframe.
Die Bestätigungssendemittel 220 sind
dazu vorgesehen, nur dann ein Bestätigungsframe für das letzte
Nachrichtenframe der Reihe zu übertragen,
wenn die beiden Prüfsummen
miteinander übereinstimmen.
Je nach der Wahl der Prüfsumme
kann dies einen ausreichenden Schutz vor Fehlern gewährleisten,
wie Basisübertragungsfehlern
(was dazu führt,
dass einige Bits falsch empfangen werden), Verlust von Nachrichtenframes und
Verkettung von Nachrichtenframes, die von verschiedenen Geräten übertragen
wurden. Für
eine Implementierung auf Basis eine Mikrocontrollers, wie in 3 dargestellt,
kann der Mikrocontroller auf vorteilhafte Weise zum Berechnen der
Prüfsumme
benutzt werden.