-
Diese
Erfindung betrifft Verfahren zum Übertragen von Daten, zum Beispiel
in drahtlosen Fernmeldeanlagen, und Systeme zum Übertragen von Daten.
-
Eine
Anordnung zum Organisieren von Knoten in einem Datenübertragungssystem
ist als Master-Slave-Anordnung bekannt. Diese ist in 1 abgebildet.
Eine Anzahl von Slave-Einheiten 1 kann mit einer Master-Einheit 2 kommunizieren.
In diesem Beispiel bilden die Slaves und der Master zusammen ein
Pikonetz. Die Master-Einheit kann einen Datenverbindungsabschnitt 3 zu
weiteren Knoten, die im Allgemeinen als Netzwerk 4 gezeigt
sind, aufweisen. Die Slave-Einheiten können über die Master-Einheit mit
dem Netzwerk 4 kommunizieren. In manchen Systemen können die
Slave-Einheiten auch direkt miteinander kommunizieren. Ein Mittel
zum Ausführen
einer solchen Anordnung ist die Verwendung des Bluetooth-Übertragungsprotokolls.
-
In
einigen solchen Systemen kann zu einer bestimmten Zeit jeweils nur
einer der Slaves mit dem Master kommunizieren. Um dies zu veranschaulichen,
könnte
man sich vorstellen, es gäbe
nur einen einzigen Kanal, mit dem die Slaves mit dem Master kommunizieren
können;
diesen Kanal teilen die Slaves miteinander. 2 ist ein
Zeitablaufdiagramm, das ein Beispiel dieser Anordnung in einem Bluetooth-System
abbildet. 2 zeigt zwei Kanäle: einen
Kanal 10 zur Übertragung
in Abwärtsrichtung vom
Master zu den Slaves, und einen Kanal 11 zur Übertragung
in Aufwärtsrichtung
von den Slaves zum Master. Die Kanäle sind in Zeitschlitze eingeteilt,
die jeweils eine Dauer von 625 μs
aufweisen. In diesem Beispiel werden die Zeitschlitze in Aufwärts- und
in Abwärtsrichtung
nicht gleichzeitig verwendet, so dass die Kanäle in Aufwärts- bzw. Abwärtsrichtung sogar
ein und derselbe sein könnten.
In diesem Beispiel gibt es sieben Slaves.
-
In
einem Bluetooth-System kann ein Slave Daten nur dann auf dem Kanal
in Aufwärtsrichtung zum
Master senden, wenn der Slave im vorhergehenden Zeitschlitz auf
dem Kanal in Abwärtsrichtung vom
Master angesprochen worden ist. Jeder Slave muss fähig sein,
von Zeit zu Zeit Daten zum Master zu senden, und kann das nicht
tun, bevor er vom Master angesprochen worden ist. Der Master weiß jedoch
nicht, wann ein Slave Daten zu versenden hat, und kann somit nicht
wissen, wann er welchen der Slaves ansprechen soll, um eine optimale
Leistungsfähigkeit
zu erzielen. Um diese Schwierigkeit zu überwinden, ist der Master normalerweise
so eingerichtet, dass er jeden der Slaves der Reihe nach anspricht,
wodurch er ihnen eine Gelegenheit gibt, Daten auf Basis des Round-Robin-Verfahrens
in Aufwärtsrichtung
zu senden. Dies ist in 2 abgebildet. Der Master ruft
jeden der Slaves der Reihe nach auf, wie durch die Pakete 20–27 veranschaulicht
ist, die der Reihe nach an die Slaves 1, 2, 3, 4, 5, 6, 7 und wieder
1 adressiert sind. Jene Slaves, die Daten für eine Sendung zum Master aufweisen,
tun dies als Reaktion auf die Pakete, die an sie adressiert sind, wie
durch die Pakete 30–34 von
den Slaves 1, 2, 3, 7 und wieder 1 veranschaulicht ist.
-
Der
Round-Robin-Algorithmus weist den Vorteil auf, dass er einfach zu
organisieren ist. Er weist jedoch den Nachteil auf, dass der Kanal
für die Übertragung
in Aufwärtsrichtung
nur dann zu 100% ausgenutzt werden kann, wenn alle Slaves Daten aufweisen,
die an den Master gesendet werden sollen.
-
Die
Auswirkung eines Round-Robin-Algorithmus auf die Kanalausnutzung
ist in 3 veranschaulicht. 3 geht davon
aus, dass jedem Slave sein eigener physikalischer Kanal zum Übertragen von
Daten in Aufwärtsrichtung
zum Master, und sein eigener physikalischer Kanal zum Empfangen
von Daten in Abwärtsrichtung
vom Master zugewiesen ist. Diese physikalischen Kanäle können sich
zum Beispiel durch ihre Frequenz unterscheiden. In dem System, das
in 3 gezeigt ist, weist ein Slave n einen Kanal in
Abwärtsrichtung
2n–1 und
einen Kanal in Aufwärtsrichtung
2n auf, die ihm zugewiesen sind. 3 zeigt
ein Beispiel der Verwendung der Frequenzen 1 bis 14 in den Zeitschlitzen
T1 bis T16.
-
Mit
dem Ziel, die Ausnutzung des Kanals zur Übertragung in Aufwärtsrichtung
zu erhöhen,
sind auch andere Algorithmen vorgeschlagen worden. Bei diesen Systemen
zieht der Master manche Slaves anderen vor. Zum Beispiel kann der
Master mehr Adressierpakete an Slaves senden, die Daten versendet
haben, als sie das letzte Mal die Gelegenheit dazu hatten. Diese
Systeme können
die Kanalausnutzung verbessern. WO 01/69861 schlägt einen Algorithmus vor, bei
dem ein Slave einen Teil eines Zeitschlitzes verwenden kann, der
bereits einem anderen Slave zugewiesen worden ist. Soll der Master jedoch
einen der Slaves bevorzugen, muss den anderen Slaves weniger Gelegenheit
gegeben werden, Daten zu übertragen,
als es beim Round-Robin-System der Fall ist. Daher können diese
Algorithmen zwar die Kanalausnutzung verbessern, zugleich jedoch
die Verzögerungszeit
für Slaves,
die nur gelegentlich Daten übertragen,
erhöhen.
-
In
manchen Systemen können
die Slaves direkt miteinander kommunizieren. Ein Slave kann Daten
zu einem anderen Slave übertragen,
indem er Daten, die an den anderen Slave adressiert sind, auf seinem
Kanal zur Übertragung
in Aufwärtsrichtung überträgt.
-
Es
gibt einen Bedarf für
ein System, das eine Erhöhung
der Kanalausnutzung ermöglicht,
während eine
relativ niedrige Verzögerungszeit
erhalten bleibt.
-
Gemäß einem
Aspekt der vorliegenden Erfindung ist ein Verfahren zum Übertragen
von Daten in einem Datenübertragungssystem,
das einen ersten Knoten und eine Mehrzahl von zweiten Knoten aufweist,
bereitgestellt, wobei der erste Knoten so eingerichtet ist, dass
er die zweiten Knoten in einer vorbestimmten Reihenfolge anspricht,
und jeder zweite Knoten so eingerichtet ist, dass er, unmittelbar nachdem
er vom ersten Knoten angesprochen worden ist, Daten zum ersten Knoten überträgt; wobei das
Verfahren dadurch gekennzeichnet ist, dass falls ein zweiter Knoten
Daten zur Übertragung
zum ersten Knoten aufweist, und ein anderer zweiter Knoten in der
Reihenfolge bei seiner vorherigen Gelegenheit, dies zu tun, keine
Daten zum ersten Knoten übertragen
hat, mindestens einige der Daten zur Übertragung zum ersten Knoten über den
anderen zweiten Knoten vom zweiten Knoten zum anderen zweiten Knoten
weitergeleitet werden.
-
Wenn
ein zweiter Knoten eigene Daten zur Übertragung zum ersten Knoten
aufweist, so tut er dies vorzugsweise, bevor er Daten, die er von
einem anderen zweiten Knoten empfangen hat, zum ersten Knoten überträgt.
-
Wenn
ein zweiter Knoten seine eigenen Daten zur Übertragung zum ersten Knoten
zu einem anderen zweiten Knoten weitergeleitet hat, so überwacht
er vorzugsweise Übertragungen
zum ersten Knoten, um festzustellen, ob diese Daten zum ersten Knoten übertragen
worden sind.
-
Wenn
ein zweiter Knoten Daten zur Übertragung
zum ersten Knoten zu einem anderen zweiten Knoten weitergeleitet
hat, so überwacht
er vorzugsweise Übertragungen
zum ersten Knoten, um festzustellen, ob diese Daten zum ersten Knoten übertragen
worden sind.
-
Wenn
diese Daten nicht zum ersten Knoten übertragen worden sind, bevor
der betreffende zweite Knoten eine Gelegenheit aufweist, Daten zum
ersten Knoten zu übertragen,
so überträgt er diese
Daten vorzugsweise zum ersten Knoten.
-
Jeder
zweite Knoten ist vorzugsweise so eingerichtet, dass er unmittelbar
nachdem er vom ersten Knoten angesprochen worden ist, ein einzelnes
Datenpaket zum ersten Knoten überträgt.
-
Jedes
Datenpaket umfasst vorzugsweise eine Kennung des Knotens, der es übertragen
hat.
-
Jedes
Datenpaket umfasst vorzugsweise eine Kennung des Knotens, zu dem
es übertragen wird.
-
Die
ersten und zweiten Knoten können
vorzugsweise nach dem Bluetooth-Protokoll betrieben werden.
-
Die
ersten und zweiten Knoten kommunizieren vorzugsweise über drahtlose
Mittel miteinander.
-
In
den beiliegenden Zeichnungen:
-
ist 1 eine
schematische Darstellung eines Datenübertragungssystems;
-
ist 2 ein
Zeitablaufdiagramm, das Pakete in Aufwärts- und in Abwärtsrichtung
bei einer Round-Robin-Anordnung
abbildet;
-
bildet 3 die
Kanalausnutzung bei einer Round-Robin-Anordnung ab;
-
ist 4 eine
schematische Darstellung eines Datenübertragungssystems; und
-
bilden 5 und 6 die
Kanalausnutzung bei verbesserten Anordnungen ab.
-
Die
vorliegende Erfindung ist im Folgenden beispielhaft unter Bezugnahme
auf die Zeichnungen beschrieben.
-
Eine
Ausführungsform
der vorliegenden Erfindung ist in einem System anwendbar, das eine Master-Einheit
und eine Mehrzahl von Slave-Einheiten aufweist. Die Slave-Einheiten können untereinander
und mit der Master-Einheit kommunizieren. Die Slaves werden vom
Master der Reihe nach angesprochen. Ein Slave kann nur während des
Zeitschlitzes unmittelbar nachdem er vom Master angesprochen worden
ist zum Master übertragen.
Der Master spricht die Slaves auf Basis des Round-Robin-Verfahrens
an. Mit dem Ziel, die Kanalausnutzung zu erhöhen, kann ein Slave, der Daten,
die an den Master zu übertragen
sind, aufweist, dies tun, indem er sie während des Zeitschlitzes, der
diesem Slave zur Verfügung
steht, überträgt, oder
indem er die Daten zu einem anderen Slave überträgt, so dass sie dieser letztere
Slave während
des Zeitschlitzes, der ihm zur Verfügung steht, zum Master übertragen
kann.
-
Die
vorliegende Erfindung kann auf ein Netzwerk angewendet werden, das
im Allgemeinen den Typ, der in 4 gezeigt
ist, aufweist. Dies umfasst einen Master 40 und Slaves 41–47.
Jeder Slave weist einen physikalischen Übertragungskanal, auf dem er Daten übertragen
kann, und einen physikalischen Kanal zur Übertragung in Abwärtsrichtung,
auf dem er Daten vom Master empfangen kann, auf. Diese physikalischen
Kanäle
unterscheiden sich zum Beispiel durch ihre Frequenz. Im System,
das in 4 gezeigt ist, weist ein Slave n einen Übertragungskanal
2n–1 und
einen Kanal zur Übertragung
in Abwärtsrichtung
2n auf, die ihm zugewiesen sind. Wie in 1 kann der
Master über
den Verbindungsabschnitt 3 mit einem Netzwerk 4,
das andere Knoten enthält,
kommunizieren.
-
Der
Master und jeder Slave im. System von 4 weisen
einen Kenncode, wie zum Beispiel eine aktive Elementsadresse (AMA
= active member address) auf, die im zugewiesen ist.
-
Daten
auf den Kanälen
werden in Blöcken (zum
Beispiel Paketen) übertragen,
von denen jeweils eines während
jedes Zeitschlitzes gesendet werden kann. Jeder Block weist ein
Kopfteil auf, das die AMA des Masters/Slaves, der das Paket gesendet
hat, und die AMA des Masters/Slaves, der das Paket empfangen soll,
umfasst.
-
Jeder
Slave hört
die Übertragungsfrequenzen
der anderen Slaves ab. Registriert ein Slave ein Paket, das seine
eigene AMA als Empfänger
anzeigt, so empfängt
er das Paket. Auf diese Weise kann jeder Slave direkt mit jedem
der anderen Slaves kommunizieren, ohne Daten über den Master zu senden.
-
Jeder
Slave kennt auch die Reihenfolge, in welcher der Master die Slaves
aufruft. In diesem Beispiel werden die Slaves einzeln nacheinander
in numerischer Reihenfolge aufgerufen, wobei es jedoch auch andere
Möglichkeiten
gibt.
-
Im
vorliegenden System können
die Slaves Daten direkt zum Master übertragen. Des Weiteren können sie
Daten auch indirekt zum Master übertragen,
indem sie diese über
einen Slave senden, der ansonsten ungenutzt wäre. Folglich können zwei
Arten von Daten unterschieden werden, welche die Slaves zum Master
senden können:
- a. die „eigenen
Daten" eines Slaves – das bedeutet
Daten zur direkten Übertragung
zum Master; und
- b. „indirekte
Daten" – das bedeutet
Daten, die zur indirekten Übertragung
zum Master von einem anderen Slave empfangen worden sind.
-
Die
Slaves führen
den folgenden zusätzlichen
Algorithmus aus, um Daten zum Master zu übertragen:
- 1.
Wenn irgendein Slave irgendwelche eigenen Daten hat, die an den
Master gesendet werden sollen, so zieht er diese Sendung der Sendung
irgendwelcher indirekten Daten zum Master vor. Wenn ein Slave keine
eigenen Daten aufweist, er jedoch indirekte Daten zum Senden aufweist,
so sendet er die indirekten Daten. Jede Sendung zum Master erfolgt
immer im Zeitschlitz unmittelbar nachdem der betreffende Slave vom
Master angesprochen worden ist.
- 2. Jeder Slave kennt die Reihenfolge, in der die Slaves vom
Master angesprochen werden, und überwacht,
ob der vorhergehende Slave in der Reihe Daten zum Master gesendet
hat. Hat der vorhergehende Slave während der vorherigen Runde
keine Daten gesendet, so leitet der betreffende Slave den nächsten Datenblock,
den er zu übertragen
hat, zu diesem vorhergehenden Slave weiter. Dies kann während des Übertragungszeitschlitzes
jedes beliebigen Slaves erfolgen. Hat ein Slave Daten zu einem anderen
Slave weitergeleitet, so überwacht
er Übertragungen
in Aufwärtsrichtung
zum Master, um zu überprüfen, ob
seine weitergeleiteten Daten zum Master übertragen worden sind. Ist
dies nicht der Fall, überträgt er die weitergeleiteten
Daten selbst zum Master.
-
Dieser
Algorithmus ist in 5 abgebildet. Es wird davon
ausgegangen, dass sich die Slaves während der vorhergehenden Abruf
runde verhalten hätten,
wie in 3 gezeigt ist, und dass Slave 7 einen durchgehenden
Datenstrom zum Senden an den Master aufweist. Slave 7 beobachtet,
dass die Slaves 4, 5 und 6 während
deren vorhergehenden Gelegenheiten zur Übertragung nichts übertrugen.
Daher leitet Slave 7 im Übertragungszeitschlitz
unmittelbar nach seiner letzten Übertragung
einen ersten Datenblock an Slave 6 weiter. Beim Empfangen der Daten leitet
Slave 6, der beobachtet hat, dass Slave 5 bei seiner vorhergehenden
Gelegenheit nichts übertrug, den
Datenblock an Slave 5 weiter. Beim Empfangen der Daten leitet Slave
5, der beobachtet hat, dass Slave 4 bei seiner vorhergehenden Gelegenheit nichts übertrug,
den Datenblock an Slave 4 weiter. Slave 4 ist dann fähig, zum
Master zu übertragen, und
da er keine eigenen Daten zur Übertragung
an den Master aufweist, übertragt
er den Block indirekter Daten von Slave 7. Slave 7, der Übertragungen
in Aufwärtsrichtung überwacht,
nimmt davon Kenntnis. Dann kann Slave 7 einen zweiten Datenblock
an Slave 6 übertragen,
der diesen zum Master überträgt. Anschließend überträgt Slave
7 einen dritten Datenblock selbst zum Master. Hätte Slave 4 eigene Daten zur Übertragung
aufgewiesen, so hätte
Slave 4 den ersten Datenblock fallen gelassen, anstatt ihn zu übertragen.
In diesem Fall hätte
Slave 7 den ersten Block in der zweiten Weiterleitungsphase zu Slave
6 übertragen,
und sie, falls dieser ausgefallen wäre, statt des zweiten oder
dritten Blocks selbst direkt zum Master übertragen.
-
Der
Master kann die ursprüngliche
Quelle von Daten, die er bei einer Übertragung in Aufwärtsrichtung
empfängt,
nicht aus dem Wissen ableiten, welcher Slave die Daten zu ihm gesendet
hat. Er muss dazu den Kopfteil der Daten überprüfen.
-
Im
System, das in 5 abgebildet ist, ergibt sich
die Frequenz, auf der ein Slave K ein Paket überträgt, aus:
Übertragungsfrequenz
= F(I)
wobei I die Anzahl an Zeitschlitzen ist, die der Knoten K
warten musste, bis er eine Möglichkeit
erhielt, in einem normalen Verlauf zum Master zu übertragen. Der
Slave K-1 muss nur Übertragungen
zwischen Slaves auf der Frequenz abhören, auf welcher der Knoten
K übertragen
würde.
Ein besonderer Fall besteht für
den Knoten, der gerade aufgerufen wird. In diesem Fall ist I = 0.
Für einen
Knoten, der als nächstes
aufgerufen werden soll, ist I = 2. Im Allgemeinen ist I = 2m, wenn
die Position des Knotens K in der Warteschlange der Knoten, die
darauf warten, aufgerufen zu werden, m ist.
-
Es
ist zu beachten, dass unter den folgenden Umständen irgendein Slave einen
indirekten Block (zum Beispiel ein Paket) fallen lassen kann:
- 1. Er hat eigene Daten zu versenden. (Ist dies
bekannt, bevor der indirekte Block zu ihm gesendet wird, muss er
den indirekten Block von seinem Nachfolger gar nicht erst empfangen.)
- 2. Er hat den indirekten Block nicht empfangen. (Der indirekte
Block kann eine Prüfsumme
aufweisen, um ein Nachprüfen
des korrekten Empfangs zu ermöglichen.)
-
Daher
muss ein Slave, nachdem er einen Datenblock zur indirekten Übertragung
zu einem Vorgänger
gesendet hat, die Übertragung
des Blocks zum Master kontrollieren. Er könnte also die Weiterleitung
des Blocks zwischen Vorgängerslaves überwachen.
Dadurch kann er erkennen, ob der Block von einem der Vorgänger fallengelassen
worden ist. Das Verfolgen des Blocks kann einfach dadurch erfolgen,
indem die entsprechenden Übertragungsfrequenzen überwacht
werden.
-
In
einem bevorzugten System speichern Slaves, die einen Block während der
vorherigen Runde weitergeleitet haben, diesen Block vorübergehend, und überwachen
auch seine Übertragung
durch Vorgängerknoten.
Hat der weiterleitende Slave keine Daten zu übertragen und festgestellt,
dass der Block durch einen Vorgängerslave
nicht übertragen
worden ist, so überträgt er den
Block selbst, wenn er eine Gelegenheit erhält, dies zu tun. Dies schafft
weitere Leistungsverbesserungen. Hätte in diesem System Slave
4 in 5 eigenen Daten zum Versenden aufgewiesen, so
hätte Slave
5 den von Slave 7 weitergeleiteten Block senden können.
-
In
einem alternativen System übertragen Slaves,
die Daten weitergeleitet haben, diese Daten vor irgendwelchen eigenen
Daten, die sie anschließend
in derselben Runde empfangen, zum Master, falls diese Daten nicht
durch einen vorhergehenden Slave zum Master gesendet worden sind.
Dieser „einschränkende Algorithmus" kann weitere Leistungsverbesserungen
bereitstellen, und ist in 6 abgebildet.
Sobald Slave 5 in 6 den ersten Datenblock zu Slave
4 weitergeleitet hat, ist er verpflichtet, diesen Block zum Master
zu senden, falls Slave 4 dies verabsäumt. Wenn also Slave 7 die Übertragung
von Slave 5, mit welcher der Block zu Slave 4 weitergeleitet wird,
empfängt,
so weiß er,
dass der Block spätestens
beim Zeitschlitz von Slave 5 für Übertragung
in Aufwärtsrichtung
zum Master übertragen
werden wird. Somit kann Slave 7 das zweite Paket sofort an Slave
6 weiterleiten. Dies kann merkliche Vorteile bei Ausführungen
bereitstellen, die große
Mengen von nur zeitweise arbeitenden Slaves aufweisen.
-
Die
Slaves müssen
nicht darauf eingeschränkt
sein, nur zu übertragen,
nachdem sie vom Master aufgerufen worden sind. In einer alternativen Anordnung
könnten
den Slaves der Reihe nach vorbestimmte Zeitschlitze zugewiesen werden,
und wenn die Slaves entsprechend synchronisiert sind (zum Beispiel
durch Taktgeber oder durch Abhören der Übertragungen
der anderen Slaves), könnte
jeder Slave nur während
seines vorbestimmten Zeitschlitzes zum Master übertragen.
-
Die
vorliegende Erfindung ist im Besonderen, aber nicht ausschließlich, auf
drahtlose Netzwerke, und insbesondere Funknetzwerke anwendbar. Die
vorliegende Erfindung kann mit Protokollen wie Bluetooth und davon
abgeleiteten Formen verwendet werden, ist aber nicht auf solche
beschränkt.
Die vorliegende Erfindung ist insbesondere auf Systeme anwendbar,
in denen eine drahtlose Kommunikation zwischen dem Master und den
Slaves stattfindet. Dies ist jedoch nicht unbedingt erforderlich.
Ein Beispiel eines drahtlosen Protokolls, auf das die vorliegende
Erfindung angewendet werden könnte,
ist Bluetooth. Der eine oder die mehreren Slaves und/oder der Master
könnten
mobil sein.
-
In
einer nützlichen
Ausführungsform
könnte der
Master den Slaves eine Verbindung zu einem lokalen Netzwerk und/oder
zum Internet bereitstellen.
-
Anstatt
auf Master-Slave-Systeme angewendet zu sein, könnte die vorliegende Erfindung
auch auf nicht-hierarchische
Systeme angewendet sein, wo die Einheit, die derjenigen entspricht,
die hierin als Master bezeichnet ist, auf derselben hierarchischen
Stufe angeordnet ist, wie die Slaves.