-
Die
vorliegende Erfindung bezieht sich auf einen Funkfrequenzsendeempfänger niedriger
Leistung, der ausgebildet ist, um ein Funknetz von kommunizierenden
Funkfrequenzsendeempfängern
auszubilden. Insbesondere bezieht sie sich auf einen Bluetooth-Master-Sendeempfänger, der
ausgelegt ist, um zu verhindern, dass die verbundenen Slave-Sendeempfänger die
Synchronisation verlieren, während
der Master-Sendeempfänger
ein Abfrageverfahren (inquiry) oder ein Funkrufverfahren (paging)
ausführt.
-
Die
WO 99/37106 offenbart ein
System, das eine drahtlose Master-Einheit und ein oder mehrere drahtlose
Slave-Einheiten, die jeweils eine eindeutige Kennung haben, umfasst.
Wenn eine drahtlose Slave-Einheit aktiv ist, wird sie durch eine
Adresse einer begrenzten Anzahl von temporären Adressen adressiert. Ein
PARK-Modus erlaubt es einer drahtlosen Slave-Einheit, sich in einem
Ruhezustand zu befinden, während
dem ihre temporäre
Adresse gelöst wird,
was es ermöglicht,
dass die Adresse einer anderen drahtlosen Slave-Einheit zugewiesen
wird. Um einen geparkten Slave zu rufen, wird ein Funkrufleitstrahlpaket
(polling beacon packet) zu jeder der drahtlosen Slave-Einheiten
in festen Intervallen während
eines Master-Slave-Zeitschlitzes rundgesendet und empfangen. Jede
drahtlose Slave-Einheit bestimmt, ob das empfangene Funkrufleitstrahlpaket ihre
eindeutige Kennung einschließt.
Wenn dem so ist, so ruft die drahtlose Slave-Einheit eine temporäre Adresse
vom Funkrufleitstrahlpaket ab. Die drahtlose Einheit sendet eine
Antwort an die drahtlose Master-Einheit während eines folgenden Slave-zu-Master-Zeitschlitzes,
wenn das empfangene Funkrufleitstrahlpaket die eindeutige Kennung
einschließt,
die zur drahtlosen Slave-Einheit gehört. Geparkten drahtlosen Slave-Einheiten
wird auch eine eindeutige Antwortnummer vom Master zugewiesen. Der
Master führt
eine Rundsendung eines Funkrufleitstrahlpakets während eines Master-zu-Slave- Zeitschlitzes aus.
Wenn die geparkte Slave-Einheit einen Zugang zum Kanal wünscht, sendet
sie eine Antwort in einem N-ten
Slave-zu-Master-Zeitschlitz, der dem Funkrufleitstrahlpaket folgt,
wobei N eine Funktion der eindeutigen Antwortnummer des Slave ist.
-
1 zeigt
ein Netz (Bluetooth-Pikonetz) 2 von Funksendeempfängereinheiten,
das eine Mastereinheit 4 und Slave-Einheiten 6, 8 und 10 einschließt, die
durch das Senden und Empfangen von Funkpaketen kommunizieren. Die
Master-Einheit ist die
Sendeempfängereinheit,
die die Verbindung eines Slaves mit dem Netz initiiert. Es gibt
nur einen Master in einem Netz. Das Netz arbeitet im Zeitduplex.
-
Die
Sendeempfänger
senden und empfangen, in diesem Beispiel in einem Mikrowellenfrequenzband,
das mit 2,4 GHz gezeigt ist. Das Netz reduziert die Interferenz
durch das Ändern
der Frequenz, mit dem jedes Funkpaket übertragen wird. Eine Anzahl
von getrennten Frequenzkanälen
wird jeweils mit einer Bandbreite von 1 MHz zugeordnet, und die
Frequenz kann mit einer Rate von 1600 Sprüngen/s springen.
-
Betrachtet
man die 2, so ist ein Rahmen dargestellt.
Dieser Rahmen 20 ist der Zeitrahmen, der von der Mastereinheit 4 verwendet
wird. Der Rahmen weist in der Illustration Schlitze 22 bis 29 gleicher
Länge auf.
Die Schlitze, die mit geraden Zahlen bezeichnet sind, sind reserviert.
Nur die Master-Einheit kann das Senden eines Funkpakets in Ausrichtung
mit dem Start der gerade nummerierten Schlitze beginnen. Die Schlitze,
die mit ungeraden Nummern bezeichnet sind, sind reserviert. Nur
Funkpakete, die durch einen Slave gesendet werden, das heißt Funkpakete,
die für
einen Empfang durch die Master-Einheit adressiert sind, können ihren
Start in Ausrichtung mit dem Start der ungerade nummerierten Schlitze haben.
Jedem Schlitz wird eine andere Frequenz einer Sequenz von Sprungfrequenzen
zugewiesen. Es ist jedoch für
ein Funkpaket möglich,
sich über
eine Anzahl von Schlitzen zu erstrecken, und in diesem Fall bleibt
die Frequenz, mit der das Paket gesendet wird, konstant auf der,
die dem Schlitz am Start des Pakets zugewiesen wurde. Ein Schlitz
hat eine konstante Zeitdauer und dauert typischerweise 625 Mikrosekunden.
-
Das
Netz ist ein Funkfrequenznetz, das für das Senden von Sprachinformation
oder Dateninformation zwischen Sendeempfängern geeignet ist. Die Sendungen
weisen eine niedrige Leistung auf, beispielsweise 0 bis 20 dBm,
und die Sendeempfängereinheiten
können über einen
Bereich von einigen wenigen Zentimetern bis zu einen wenigen zehn
oder hundert Metern wirksam kommunizieren. Die Master-Einheit hat
die Last der Identifizierung der anderen Sendeempfängereinheiten
in ihrem Sendebereich, was unter Verwendung eines Abfrageverfahrens
erzielt wird, und die Last des Rufens einer Sendeempfängereinheit,
um eine Kommunikationsverbindung zwischen der Master-Einheit und
der Slave-Einheit aufzubauen, was unter Verwendung eines Zugangsverfahrens
(Access Procedure) erreicht wird.
-
Betrachtet
man die 3, so ist ein typisches Funkpaket 30 dargestellt.
Das Funkpaket weist einen Start 32 auf und enthält drei
verschiedene Teile: einen ersten Vorspannteil, der einen Zugangskode 34 enthält, einen
zweiten Teil, der einen Kopfteil 36 enthält, und
einen dritten Teil, der eine Nutzlast 38 enthält.
-
Der
Zugangskode ist eine Serie von Bits, die im Netz verwendet werden,
um den Start eines Funkpakets zu identifizieren und eine Synchronisation
und DC-Schätzung
zu bewirken. Er weist eine feste Länge auf. Im Empfänger führt ein
gleitender Korrelator eine Korrelation gegen ein Synchronisationswort
im Zugangskode aus und löst
aus, wenn ein Schwellwert überschritten
wird. Es gibt drei Typen von Zugangskodes. Der Kanalzugangskode
wird aus der Bluetooth-Vorrichtungsadresse
(BD_ADDR) der Master-Einheit abgeleitet und identifiziert ein Pikonetz.
Er ist in allen Paketen, die im Pikonetzkanal übertragen werden, eingeschlossen.
Der Vorrichtungszugangskode wird aus der Bluetooth-Vorrichtungsadresse
(BD_ADDR) der Zieleinheit abgeleitet, und signalisiert die Zielvorrichtung
beispielsweise während
des Zugangsverfahrens. Der Abfragezugangskode wird verwendet, um
zu entdecken, welche Bluetooth-Einheiten sich in Reichweite befinden.
-
Der
Kopfteil kann vorhanden sein oder auch nicht. Wenn er vorhanden
ist, so weist er eine feste Länge
(beispielsweise 54 Bits) auf. Der Kopfteil enthält Steuerworte. Die Adresse
des aktiven Elements (AM_ADDR) ist ein Wort, das einen Slave in
einem Netz eindeutig identifiziert. Die Adresse des aktiven Elements
wird einer Slave-Einheit durch eine Master-Einheit zugewiesen, wenn
die Master-Einheit den Slave mit dem Netz verbindet. Die aus lauter
Nullen bestehende AM_ADDR ist für
Rundsendezwecke reserviert.
-
Die
Nutzlast 38 trägt
entweder Sendeempfänger-Steuerinformation
oder Sprach-/Dateninformation. Die Nutzlast weist eine variable
Länge auf und
kann fehlen. Sie mag eine maximale Größe von beispielsweise 2745
Bits nicht übersteigen.
-
Das
Abfrageverfahren ermöglicht
es einer Einheit zu entdecken, welche Einheiten innerhalb der Reichweite
liegen, und was ihre Vorrichtungsadressen (BD_ADDR) und ihre Taktwerte
sind. Die Entdeckungseinheit sendet eine Abfragenachricht (ID-Paket)
bei verschiedenen Sprungfrequenzen. Das Paket weist den Abfragezugangskode
als seinen Zugangskode auf, und die verwendeten Sprungfrequenzen
werden aus dem Abfragezugangskode bestimmt und sind für jedes
gesendete Paket verschieden.
-
Das
Zugangsverfahren ist ein Funkrufverfahren, das eine Verbindung aufbaut.
Die Einheit, die dieses Verfahren ausführt, wird der Master des Pikonetzes.
Der Master sendet wiederholt den Zugangskode der Slave-Vorrichtung
in verschiedenen Sprungkanälen.
Ein ID-Paket wird gesendet, das keinen Kopfteil und keine Nutzlast
aufweist, und das die Ziel-DAC als seinen Zugangskode aufweist.
Ein Zug identischer ID-Pakete (zwei pro Schlitz) wird jeweils bei
verschiedenen Sprungfrequenzen gesendet (siehe 10.6 & 10.7 der
Bluetooth-Basisband-Spezifikation v1.0B, 29. November 1999). Der
Master lauscht auf eine Antwort nach jedem Sendeschlitz. Die Frequenzsprungsequenz
wird aus der Bluetooth-Adresse des Slave (BD_ADDR) bestimmt. Der Master
verwendet den Wert des Takts des Slaves, der während eines Abfrageverfahrens
empfangen wird, um die korrekte Phase der Sequenz zu schätzen.
-
Im
Verbindungszustand ist die Verbindung zwischen der Master-Einheit
und der Slave-Einheit aufgebaut, und Pakete können vor und zurück gesandt
werden. Die Pakete verwenden als Zugangskode denselben Kanalzugangskode
(der von der Bluetooth-Vorrichtungsadresse BD_ADDR der Master-Einheit,
die während
des Zugangsverfahrens geliefert wird, abgeleitet wurde) und dieselbe
Frequenzsprungsequenz, die Kanalsprungsequenz (abgeleitet von der
Bluetooth-Vorrichtungsadresse
BD_ADDR der Master-Einheit, die während des Zugangsverfahrens
geliefert wird).
-
Die
Sendeempfängereinheiten
sind auf einen gemeinsamen Zeitrahmen synchronisiert, der von der
Master-Einheit 4 bestimmt wird und der in Bezug zu 2 beschrieben
wird. Der Takt der Master-Einheit und der Takt der Slave-Einheit
werden in unterbrochener Weise temporär synchronisiert. Ein Versatz
wird zum natürlichen
Takt des Slave hinzugefügt,
so dass er dem Master-Takt entspricht. Die Takte des Masters und
des Slaves driften jedoch auseinander. Die Synchronisation zwischen
den Takten des Masters und des Slaves wird beim Empfang jedes Pakets
vom Slave aufrecht gehalten. Jeder Slave hat einen gleitenden Korrelator,
der so eingestellt wird, dass er das Synchronisationswort im Kanalzugangskode
identifiziert. Wenn der Korrelator einen Schwellwert erreicht, wird
ein Auslösesignal
erzeugt, was es erlaubt, den Versatz, der vom Slave-Takt verwendet wird,
so einzustellen, dass die Synchronisation mit dem Master-Takt aufrecht
gehalten wird. Eine periodische Master-Sendung ist erforderlich,
um die Slaves in Synchronisation mit dem Master zu halten. Da die
Slaves nur den Kanalzugangskode benötigen, um sich mit ihm zu synchronisieren,
kann jedes geeignete Paket verwendet werden.
-
Die
Frequenz, mit der jedes Funkpaket gesendet wird, wird aus der Kanalsprungsequenz
unter Verwendung der Sendezeit gemäß dem Master-Takt bestimmt.
Die Sendefrequenz ändert
sich (springt) alle 625 Mikrosekunden.
-
Wenn
die Master-Einheit eine Punkt-zu-Punkt-Kommunikation ausführt (Verbindungszustand-Aktiver
Modus), ist ein gesendetes Funkpaket an einen speziellen Sendeempfänger adressiert,
der der Master-Einheit durch das Senden eines Funkpakets im nächst verfügbaren Zeitschlitz antwortet.
-
Betrachtet
man die 4, so ist eine schematische
Darstellung einer Sendeempfängereinheit gezeigt.
Es sind nur so viele funktionale Blöcke und Verbindung in diesem
Diagramm gezeigt, wie notwendig sind, um im Folgenden zu erläutern, wie
eine Sendeempfängereinheit
und das Kommunikationsnetz arbeitet. Die Sendeempfängereinheit 40 enthält eine
Anzahl funktionaler Elemente, einschließlich: eine Antenne 46,
einen Empfänger 50,
einen Synchronisierer 52, einen Kopfteildekodierer 54,
eine Steuerung 60, einen Speicher 56, der einen
Speicherteil 58 aufweist, der die BD_ADDR der Sendeempfängereinheit
speichert, einen Paketierer 42, einen Takt 68,
eine Frequenzsprungsteuerung 48 und einen Sender 44.
Obwohl diese Elemente als getrennte Elemente gezeigt sind, können sie
tatsächlich zusammen
integriert sein und in Software oder in Hardware ausgeführt werden.
-
Daten,
die in der Nutzlast eines Pakets durch die Sendeempfängereinheit 40 übertragen
werden sollen, werden als Datensignal 41 an den Paketierer 42 geliefert.
Steuerinformation, die in der Nutzlast eines Pakets übertragen
werden soll, wird in einem Nutzlaststeuersignal 89, das
von der Steuerung 60 an den Paketierer 42 geliefert
wird, geliefert. Der Paketierer 42 empfängt auch ein Zugangskodesteuersignal 69 und
ein Kopfteilsteuersignal 71 von der Steuerung 60,
die jeweils den Zugangskode 34 und den Kopfteil 36,
der an die Nutzlast angefügt
wird, um das Paket 30 zu bilden, steuern. Der Paketierer 42 platziert
die Daten oder Steuerinformation in ein Paket 30, das als
Signal 43 an den Sender 44 geliefert wird. Der
Sender 44 moduliert eine Trägerwelle in Abhängigkeit
vom Signal 43, um das gesendete Signal 45, das
an die Antenne 46 für
ein Senden geliefert wird, zu erzeugen. Die Frequenz der Trägerwelle
wird durch ein Sendefrequenzsteuersignal 47, das von der
Frequenzsprungsteuerung 48 an den Sender 44 geliefert
wird, so gesteuert, dass sie eine Frequenz aus der Sequenz der Sprungfrequenzen
ist.
-
Die
Antenne 46 empfängt
ein Funksignal 51 und liefert es an den Empfänger 50,
der das Funksignal 51 unter der Steuerung eines Empfangsfrequenzsteuersignals 49,
das von der Frequenzsprungsteuerung 48 geliefert wird,
demoduliert, um ein digitales Signal 53 zu erzeugen. Das
digitale Signal 53 wird an den Synchronisierer 52 geliefert,
der die Sendeempfängereinheit 40 auf
den Zeitrahmen des Netzes synchronisiert. Dem Synchronisierer wird ein
Zugangskodesignal 81 geliefert, das den Zugangskode des
Pakets spezifiziert, das die Sendeempfängereinheit erwartet zu empfangen.
Der Synchronisierer akzeptiert solche empfangene Funkpakete mit
Zugangskodes, die den erwarteten Zugangskodes entsprechen, und weist
solche empfangene Funkpakete mit Zugangskodes, die nicht dem erwarteten
Zugangskode entsprechen, zurück.
Eine gleitende Korrelation wird identifiziert, um das Vorhandensein
und den Start des erwarteten Zugangskode in einem Funkpaket zu identifizieren.
Wenn das Funkpaket akzeptiert wird, dann wird das Funkpaket an den
Kopfteildekodierer 54 als Signal 55 geliefert, und
ein Triggersignal 79 wird an die Steuerung 60 zurückgegeben,
das anzeigt, dass das Paket durch den Synchronisierer 52 akzeptiert
worden ist. Das Triggersignal 79 wird durch die Steuerung
in einer Slave-Einheit verwendet, um den Master-Takt zu synchronisieren. Die Steuerung
vergleich die Zeit, zu der ein Funkpaket empfangen wurde, mit der
Zeit, zu der der Empfang des Funkpakets erwartet wird, und verschiebt
ihre Zeitsteuerung, um die Differenz zu kompensieren. Eine solche
Kompensation kann durch das Variieren des Werts eines Versatzes,
der in einem Speicher 56 gespeichert ist, durch den Wert
der Differenz erzielt werden. Der Kopfteildekodierer 54 dekodiert
den Kopfteil im empfangenen Paket und liefert ihn an die Steuerung 60 als
ein Kopfteilsignal 75. Der Kopfteildekodierer 54 erzeugt,
wenn er durch ein Nutzlastakzeptanzsignal 77, das von der
Steuerung 60 geliefert wurde, aktiviert wird, ein Datenausgabesignal 57,
das den Rest des Funkpakets enthält, die
Nutzlast 38.
-
Die
Frequenzsprungsteuerung 48 läuft zyklisch durch eine Sequenz
von Frequenzen. Das Sendefrequenzsteuersignal 47 und das
Empfangsfrequenzsteuersignal 49 steuern normalerweise wechselnd
den Sender 44 und den Empfänger 50. Wenn der
Sendeempfänger 40 als
ein Master agiert, kann der Empfänger 50 normalerweise
bei Frequenzen empfangen, die durch die ungeraden Werte der Sequenz
bestimmt werden, und der Sender kann normalerweise bei Frequenzen
senden, die durch die geraden Werte der Sequenz bestimmt werden.
Wenn der Sendeempfänger
als eine Slave-Einheit agiert, ist das Umgekehrte wahr. Die Frequenzsprungsteuerung 48 empfängt das
Zugangskodesteuersignal 69 (das auch an den Paketierer 42 geliefert
wird) und ein Versatzsignal 67 von der Steuerung 60 und
ein Taktsignal 59, das die Zeit, die in der Uhr gehalten
wird, darstellt, von der Uhr 68. Das Versatzsignal 67 definiert
den Wert eines Versatzes von der Zeit, die in der Uhr 68 existiert.
Dieser Wert kann null sein. Die Frequenzsprungsteuerung kombiniert
das Taktsignal 59 und das Versatzsignal 67, um
die Zeit zu emulieren, die in einer Uhr existiert, versetzt um den
Wert des Versatzsignals 67 von der Uhr 68. Die
Sequenz von Frequenzen, durch die die Sprungsteuerung 48 zyklisch
hindurch läuft,
hängt vom
Zugangskodesteuersignal 69 ab. Die Position im Zyklus hängt von
der emulierten Zeit ab. Wenn das Zugangskodesteuersignal 69 den
Kanalzugangskode liefert, ist die Kanalsprungsequenz definiert.
Wenn das Zugangskodesteuersignal 69 den Vorrichtungszugangskode
oder den Abfragezugangskode liefert, werden andere Sprungsequenzen
definiert.
-
Der
Speicher 56 besitzt einen Teil 58, der permanent
die BD_ADDR der Sendeempfängereinheit 40 speichert.
In den verbleibenden Teil des Speichers 56 kann durch die
Steuerung 60 geschrieben werden. Wenn die Sendeempfängereinheit 40 als eine
Slave-Einheit funktioniert, wird der Speicher 56 zusätzlich die
BD_ADDR der Master-Einheit, einen Versatzwert, der die Differenz
zwischen der Uhr der Slave-Einheit und der Uhr der Master-Einheit
darstellt, und die Adresse des Slave im Netz AM_ADDR speichern.
Wenn die Sendeempfängereinheit 40 als eine
Master-Einheit funktioniert, wird der Speicher 56 zusätzlich für jede Slave-Einheit,
die am Netz teilnimmt, speichern: die BD_ADDR; einen Versatzwert, der
die Differenz zwischen der Uhr der Master-Einheit und der Uhr der
speziellen Slave-Einheit darstellt, und AM_ADDR, die eindeutig die
spezielle Slave-Einheit im Netz identifiziert.
-
Die
Bluetooth-Spezifikation Revision 1.1 gibt das Folgende über die
Bluetooth-Slave-Synchronisation an: "Die Slave-RX-Zeitsteuerung basiert auf
dem letzten erfolgreichen Auslöser,
während
eines Master-zu-Slave-Schlitzes.
[...]Der Slave sollte fähig
sein, die Pakete zu empfangen, und die RX-Zeitsteuerung einzustellen,
so lange wie die Zeitsteuerungsfehlanpassung in einem Unsicherheitsfenster
von ± 10 μs bleibt."
-
Folglich
haben die Hersteller eines Bluetooth-Moduls ihre Bluetooth-Vorrichtungen
so konstruiert, dass sie ein statisches Unsicherheitsfenster von ± 10 μs für jeden
Empfang verwenden. Das bedeutet, dass wenn ein Master mehr als 10 μs früher oder
mehr als 10 μs
später
sendet, als dies der Slave erwartet, wird der Slave nicht fähig sein,
dieses Paket zu empfangen, und wird nicht fähig sein, seine Uhr (seinen
Takt)/seine Zeitsteuerung auf das empfangene Paket einzustellen.
Da die Master- und Slave-Sendeempfänger verschiedene systemeigene Uhren
verwenden, bei denen es gestattet ist, dass sie um ungefähr ± 20 ppm
abweichen, so kann ein Bluetooth-Slave (im schlimmsten Fall) seine
Verbindung verlieren, wenn er nicht innerhalb einer Zeit t
conloss ein Paket empfangen hat, wobei diese
Zeit folgendermaßen
berechnet wird:
Während der normalen aktiven
Verbindung zwischen Master und Slave wird diese Zeit niemals erreicht,
da der Master den Slave standardmäßig innerhalb von T
Poll, das sind 25 ms, abzufragen hat. Wenn
jedoch der Master mit einem oder mehreren Slaves verbunden ist und
versucht andere Bluetooth-Vorrichtungen durch
das Ausführen
einer Abfrage oder eines Funkrufs zu entdecken/sich mit ihnen zu
verbinden, wird dieses kontinuierliche Abfragen für die Zeit,
zu der eine Abfrage oder ein Funkruf ausgeführt wird, typischerweise für 5 bis
10 s unterbrochen. Als ein Konsequenz ist es sehr wahrscheinlich,
dass alle Slaves, die mit einem Pikonetz verbunden sind, ihre Verbindung
verlieren, sobald der Master eine Abfrage oder einen Funkruf startet.
-
Eine
mögliche
Lösung,
um den Verbindungsverlust zu verhindern, besteht darin, alle aktiven
Verbindungen vor dem Funkruf oder der Abfrage in den Bluetooth-Haltemodus
zu setzen. Der Haltemodus bedeutet, dass der Master jedem Slave
mitteilt, dass er das Abfragen für
eine feste Zeit (bis zu 40 s) stoppen wird. Während dieser Zeit kann der
Master die erforderliche Abfrage oder den Funkruf ausführen. Nach
dem Ablauf der festen Zeit wird der Master das Abfragen aller Slaves
wieder starten. Im Gegensatz zum normal verbundenen Modus definiert
der Haltemodus, dass ein Slave am Ende des Haltemodus seinen Empfang
mit einem viel größeren Unsicherheitsfenster
wieder startet, das sogar mehrere Millisekunden betragen kann, wenn
das notwendig ist. So ist der Haltemodus fähig, den Verbindungsverlust
zu vermeiden.
-
Es
gibt mehrere Nachteile, wenn man den Bluetooth-Haltemodus auf der Master-Seite für das Vermeiden
des Problems des Verbindungsverlustes verwendet:
- 1)
Die Bluetooth-Spezifikation gibt nicht verbindlich den Haltemodus
an, so dass er nur ein optionales Merkmal ist. Dies bedeutet, dass
ein Verbindungsverlust nicht in jedem Fall vermieden werden kann,
da jeder Slave, der mit dem Master verbunden ist und nicht den Haltemodus
unterstützt, die
Verbindung verlieren wird.
- 2) Wenn es mehrere Slaves gibt, die mit dem Master verbunden
sind, ist das Verfahren, um alle Verbindungen zu allen Slaves in
den Haltemodus zu setzen, ziemlich kompliziert, da das Versetzen in
den Haltemodus für
jeden Slave sukzessiv zu erfolgen hat. Dies führt zu einer Verschwendung der
Funkkapazität.
- 3) Sowohl die Abfrage als auch der Funkruf sind Verfahren, die
nicht notwendigerweise in der Länge
fest sind. Die Länge
des Abfrageverfahrens weist einen feste maximalen Wert auf, aber
sie kann
- 4) abhängen
von der Anzahl der Antworten, die von den gefundenen Vorrichtungen
zurückgegeben
werden (so dass die Abfrage viel kürzer als die maximale Länge dauern
kann). Die Länge
des Funkrufverfahrens hat einen festen maximalen Wert, aber sie
hängt vom
Bluetooth-Taktwert, der zu rufenden Vorrichtung ab, und sie hängt von
der Störung
auf der Funkschnittstelle ab (je schlimmer die Störungen sind,
desto länger
kann der Funkruf dauern). Als eine Konsequenz muss die Länge des
Haltemodus so gewählt
werden, dass sie mehr als die maximale Länge der Abfrage/des Funkrufs
beträgt.
In den Fällen,
bei denen die Abfrage/der Funkruf weniger lang als diese maximale
Zeit dauert, muss der Master dennoch bis zum Ende des Haltemodus
warten, bevor er wieder startet, die verbundenen Slaves abzufragen.
Dies führt
zu einer Verschwendung der Funkkapazität.
-
Es
würde deswegen
wünschenswert
sein, das Abfrage/Funkrufverfahren einer Bluetooth-Vorrichtung zu
verbessern, durch das Verhindern, dass verbundene Slaves die Synchronisation
verlieren, ohne an den Nachteilen, die mit dem Haltemodus verbunden
sind, zu leiden.
-
Ausführungsformen
der Erfindung vermeiden die Verwendung des Haltemodus (und alle
oben beschriebenen Nachteile), indem sie weiter alle Slaves abfragen,
sogar während
sie eine Abfrage oder einen Funkruf ausführen. Man kann die Erfindung
als nachteilig ansehen, da das Abfragen während des Funkruf oder der
Abfrage die Abfrage und den Funkruf stört, und somit zu einer längeren Zeit
führt,
bis eine Vorrichtung während
der Abfrage gefunden wird/eine längere
Zeit, bis eine Vorrichtung beim Funkruf verbunden wird. Die Erfinder
haben jedoch erkannt, dass sogar wenn dieser negative Effekt in der
Theorie existiert, er keine realen Konsequenzen für die Benutzer
hat, da die Differenzen zwischen der Abfrage/dem Funkruf unter Verwendung
der Erfindung oder ohne Verwendung der Erfindung statistischer Natur
sind (ein Prozent aller Abfragen/Funkrufe dauert länger) und
für einen
Benutzer überhaupt nicht
sichtbar werden.
-
Gemäß einem
ersten Aspekt der vorliegenden Erfindung wird ein Funkfrequenz-Sendeempfänger niedriger
Leistung, wie er in Anspruch 1 beansprucht ist, geliefert.
-
Gemäß einem
zweiten Aspekt der vorliegenden Erfindung wird ein Verfahren des
Aufrechthaltens der Synchronisation in einem Netz kommunizierender
Funkfrequenz-Sendeempfänger
niedriger Leistung, wie es in Anspruch 10 beansprucht ist, geliefert.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung wird ein Speichermedium
für Daten,
wie es in Anspruch 11 beansprucht ist, geliefert. Ausführungsformen
der vorliegenden Erfindung beziehen sich auf die Anpassung der existierenden
Abfrage- und Funkrufverfahren, wie sie in der Bluetooth-Spezifikation
1.1B definiert sind und können somit
durch die Adaption der existierenden Funkfrequenz-Sendeempfänger niedriger
Leistung implementiert werden. Da die existierenden Funkfrequenz-Sendeempfänger niedriger
Leistung primär durch
Software gesteuert sind, können
sie durch das Aktualisieren der Steuersoftware unter Verwendung von
Computerkode, der auf einem Speichermedium gespeichert ist, wie
es in Anspruch 11 beansprucht ist, adaptiert werden. Das Speichermedium
könnte beispielsweise
eine Diskette, eine CD-ROM, eine DVD, ein Halbleiterspeicher oder
irgend ein Computerprogrammprodukt, das Daten permanent oder vorübergehend
speichert, sein.
-
Für ein besseres
Verständnis
der vorliegenden Erfindung, und um zu verstehen, wie dieselbe zur
Wirkung gebracht werden kann, wird nur beispielhaft auf die folgenden
Figuren Bezug genommen:
-
1 zeigt
ein Funknetz;
-
2 zeigt
die Zeitsteuerung einer Paketsendung und eines Paketempfangs im
Netz;
-
3 zeigt
ein Paket, das im Netz übertragen
wird;
-
4 zeigt
eine Sendeempfängereinheit
detaillierter;
-
5a und 5b zeigen
die Modifikation, die am Funkrufverfahren gemäß einer Ausführungsform
der vorliegenden Erfindung vorgenommen wird; und
-
6a und 6b zeigen
eine Modifikation des Abfrageverfahrens gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
Die
vorliegende Erfindung bezieht sich auf eine Verbesserung eines Bluetooth-Sendeempfängers, wenn
dieser als Master arbeitet. Der Master setzt weiter das zyklische
Abfragen aller verbundenen Slaves fort, sogar wenn er eine Abfrage
oder einen Funkruf ausführt.
-
Um
die Abfrage/den Funkruf nicht zu stark zu stören, wird ein spezieller Typ
einer zyklischen Abfrage verwendet, der
- 1)
nicht von TPoll abhängt (das zyklische Abfragen soll
so selten wie möglichen,
nur um die Slaves zu halten, ausgeführt werden)
- 2) nur kurze Einschlitzpakete verwendet
- 3) alle verbundenen Slaves mit nur einem Paket erreicht
- 4) es einem zyklisch abgefragten Slave nicht erlaubt, ein Paket
im folgenden Slave-zu-Master-Schlitz zurückzugeben.
-
Wenn
man dies tut, so verbraucht dieses spezielle zyklische Abfragen
(das als "Rettungsfunkleitstrahl
(Rescue Beacon" bezeichnet
wird) so wenig Funkkapazität
wie möglich.
-
Für den Rettungsfunkleitstrahl
wurde das folgende ausgewählt:
- 1) Die zyklische Abfrage wird alle 125 ms (nicht abhängig von
TPoll) ausgeführt
- 2) Bluetooth-NULL-Pakete werden verwendet. Sie verbrauchen nur
einen Bluetooth-Zeitschlitz (62,5 μs). Es ist auch möglich, ID-Pakete
zu verwenden (die nur einen halben Schlitz von 312,5 μs verbrauchen),
wobei jedoch manche Hersteller ihre Slaves nicht nur auf einem empfangenen Bluetooth-Zugangskode
synchronisieren, sondern auch einen gültigen Paketkopfteil fordern. Nur
wenn ein gültiger
Paketkopfteil empfangen wird, können
sie ihren Slave-Takt auf das empfangene Paket synchronisieren. So
ist ein NULL-Paket die bessere Lösung.
- 3) Zusätzlich
wird das AM_ADDR-Feld im Paketkopfteil auf binär 000 gesetzt, was bedeutet,
dass dieses Paket ein Rundsendepaket ist, das alle Slaves auf einmal
adressiert.
- 4) Die Bluetooth-Spezifikation verbietet es Slaves, auf ein
Bluetooth-Null-Paket zu antworten.
-
Ein
NULL-Paket, wie es in der Bluetooth-Spezifikation Version 1,0B definiert
ist, ist ein Paket, das keine Nutzlast aufweist und somit nur aus dem
Kanalzugangskode und dem Paketkopfteil besteht, wobei seine gesamte
(feste) Länge
126 Bits beträgt
und das NULL-Paket selbst nicht bestätigt werden muss.
-
IMPLEMENTIERUNG DES RETTUNGSFUNKLEITSTRAHLS
FÜR FUNKRUF
-
5a zeigt
den Betrieb der Bluetooth-Vorrichtung, die als Master eines Pikonetzes
arbeitet, während
sie ein Funkrufverfahren ausführt.
Der Master sendet und empfängt
in wechselnden Zeitschlitzen. Er sendet in den Schlitzen N, N+2,
N+4... und empfängt
in den Schlitzen N+1, N+3, N+5... Im Funkrufverfahren sendet der
Master zwei ID-Pakete pro Schlitz. Das ID-Paket weist seinen Zugangskode
und den Zugangskode (DAC) der gerufenen Slave-Vorrichtung auf und
besitzt keinen Kopfteil oder Nutzlast. Die Frequenzen, bei denen
ein ID-Paket gesendet wird, hängen
von der Frequenzsprungsequenz ab, die von der Bluetooth-Adresse
(BD_ADDR) des gerufenen Slaves bestimmt wird. Diese Frequenzsprungsequenz
ist f(k), f(k+1), f(k+2), f(k+3), f(k+4), f(k+5)... Im Schlitz N
wird das erste ID-Paket bei einer Frequenz f(k) gesendet, und das
zweite ID-Paket im Schlitz N wird bei einer Frequenz f(k+1) gesendet.
-
5b zeigt,
wie das Funkrufverfahren gemäß einer
Ausführungsform
der vorliegenden Erfindung angepasst wird. Der Schlitz N+2 wird
nun von einem Rettungsfunkleitstrahl belegt. Der Rettungsfunkleitstrahl
ersetzt die zwei ID-Pakete,
die im Schlitz N+2 beim Fehler der vorliegenden Erfindung gesendet
worden sein würden.
Die Funkrufsequenz wird ansonsten nicht beeinflusst. Der Rettungsfunkleitstrahl
ist ein NULL-Paket gemäß der bevorzugten Ausführungsform
der vorliegenden Erfindung (eine weniger wünschenswerte Alternative würde ein ID-Paket
sein). Die Frequenz, bei der der Rettungsfunkleitstrahl gesendet
wird, wird gemäß der Kanalsprungsequenz
bestimmt, die von der Adresse (BR_ADDR) der Bluetooth-Vorrichtung
des Master-Sendeempfängers
und der Phase in der Sequenz, die vom Master-Takt bestimmt wird,
abhängt. Die
Kanalfrequenzsprungsequenz kann definiert werden als g(i), wobei
i eine ganze Zahl ist. Im Beispiel der 5b ist
im Schlitz N+2 die Phase des Bluetooth-Taktes durch m gegeben, und
somit wird die Frequenz, bei der der Rettungsfunkleitstrahl gesendet
wird, durch g(m) dargestellt. Das NULL-Paket hat seinen Zugangskode,
den Kanalzugangskode, der von der Adresse der Bluetooth-Vorrichtung
der Master-Einheit
abgeleitet wird, und weist einen Paketkopfteil auf, der anzeigt,
dass das Paket ein Rundsendefunkleitstrahl ist (das heißt AM_ADDR
wird auf binär
000 gesetzt).
-
Im
Beispiel der 5b enthält der n+2-te Schlitz einen
Rettungsfunkleitstrahl, da 125 ms seit dem Beginn des Funkrufverfahrens
oder 125 ms seit der letzten Übertragung
eines Rettungsfunkleitstrahls vergangen sind. Es sollte somit erkannt
werden, dass im Schlitz N+X, der 125 ms nach dem Schlitz N+2 auftritt,
ein anderer Rettungsfunkleitstrahl gesendet werden wird. Dieser
Rettungsfunkleitstrahl wird ein NULL-Paket sein, das identisch zum
vorhergehenden Rettungsfunkleitstrahl ist, aber das eine andere
Sendefrequenz aufweist, die aus derselben Kanalsprungsequenz ausgewählt wurde, aber
durch die Phase des Bluetooth-Master-Taktes zur Zeit der Sendung bestimmt
wird. Abgesehen von der Punktierung des Zugs von Funkrufnachrichten durch
das Ersetzen eines Paars von ID-Paketen durch einen Rettungsfunkleitstrahl
alle 125 ms wird das Funkrufverfahren sonst nicht beeinflusst.
-
Betrachtet
man die 4, ist gemäß einer Ausführungsform
der Erfindung die Steuerung 60 ausgelegt, um den Rettungsfunkleitstrahl
(NULL-Paket mit Kanalzugangskode an der korrekten Kanalsprungfrequenz)
zur korrekten Zeit einzuschieben. Die Steuerung verwendet das Kopfteilsteuersignal 71,
um die korrekte Rundsendeadresse in den Kopfteil des NULL-Pakets
einzuschieben, und das Zugangskodesteuersignal 69 liefert
den Kanalzugangskode als den Zugangskode des NULL-Pakets. Das Zugangskodesteuersignal 69 wird
somit vom Vorrichtungszugangskode des gerufenen Slave in den Kanalzugangskode
geändert,
wenn der Zug der Funkrufnachrichten durch einen Rettungsfunkleitstrahl
zu punktieren ist. Diese Änderung
im Zugangskodesteuersignal 69 beeinflusst auch eine Änderung
in der verwendeten Sprungfrequenzsequenz. Die Frequenzsteuerung 48 wird
somit umgeschaltet, um die Kanalsprungsequenz zu verwenden. Die
Phase in der Sequenz wird durch das Taktsignal 59 von der Uhr 68 bestimmt,
ohne dass ein Versatz verwendet wird.
-
In
einer bevorzugten Ausführungsform
wird ein Rettungsfunkleitstrahl 125 ms nach dem Start des Funkrufverfahrens
gesendet, und dann danach einmal alle 125 ms während des Funkrufverfahrens.
-
Wenn
eine Bluetooth-Vorrichtung kein Master eines Netzes ist, das heißt, wenn
es nicht schon existierende Slave-Sendeempfänger gibt, wird die Vorrichtung
die vorliegende Erfindung nicht implementieren, wenn sie das Funkrufverfahren
ausführt, da
es keine verbundenen Slaves gibt.
-
IMPLEMENTIERUNG DES RETTUNGSFUNKLEITSTRAHLS
FÜR DIE
ABFRAGE
-
6a zeigt
den Betrieb eines Master-Sendeempfängers, wenn
dieser ein Abfrageverfahren ausführt.
Man wird beobachten können,
dass das Verfahren dem Funkrufverfahren sehr ähnlich ist. Eine Unterschied
besteht darin, dass die verwendeten ID-Pakete andere Zugangskodes
aufweisen, und dass die verwendete Kanalsprungsequenz sich unterscheidet,
wie das durch die Sprungsequenz f'(k), f'(k+1) dargestellt ist. Ein anderer Unterschied
besteht darin, dass die Vorrichtung erwartet, FHS-Pakete statt ID-Pakete
zu empfangen. Die folgende Beschreibung des Bluetooth-FHS-Pakets
ist genommen aus "Specification
of the Bluetooth system, Version 1.1; 22. Feb. 2001, Abschnitt 4.4.1.4." Das FHS-Paket ist
ein spezielles Steuerpaket, das unter anderen Dingen die Adresse
der Bluetooth-Vorrichtung und den Takt des Senders zeigt. Die Nutzlast enthält 144 Informationsbits
plus einen 16-Bit CRC-Kode. Die Nutzlast ist mit einer Rate 2/3
FEC kodiert, was die gesamte Nutzlastlänge auf 240 Bits bringt. Das
FHS-Paket überdeckt
einen einzelnen Zeitschlitz.
-
Das
FHS-Paket wird gewöhnlicherweise
in einer Funkruf-Master-Antwort,
einer Abfrage-Antwort und in einem Master-Slave-Umschalten (master slave switch)
verwendet. Bei der Funkruf-Master-Antwort oder dem Master-Slave-Umschalten
wird es erneut übertragen,
bis sein Empfang bestätigt
ist oder ein Zeitablauf überschritten
wurde. Bei der Abfrage-Antwort wird das FHS-Paket nicht bestätigt. Das FHS-Paket
enthält
Echtzeit-Taktinformation. Diese Taktinformation wird vor jeder erneuten Übertragung aktualisiert.
Die erneute Übertragung
der FHS-Nutzlast unterscheidet sich somit etwas von der erneuten Übertragung
normaler Datennutzlasten, wo dieselbe Nutzlast für jede erneute Übertragung
verwendet wird. Das FHS-Paket wird für eine Frequenzsprungsynchronisation
verwendet, bevor der Pikonetzkanal aufgebaut worden ist, oder wenn
sich ein existierendes Pikonetz in eine neues Pikonetz ändert. Im
ersten Fall wurde dem Empfänger
noch keine aktive Mitgliederadresse zugewiesen, wobei in diesem
Fall das Feld AM_ADDR im FHS-Paketkopfteil ganz auf null gesetzt
wird, wobei das FHS-Paket jedoch nicht als Rundsendepaket betrachtet
werden sollte. Im letzteren Fall hat der Slave schon eine AM_ADDR
im existierenden Pikonetz, die dann im FHS-Paketkopfteil verwendet
wird.
-
6b zeigt,
wie eine Ausführungsform
der vorliegenden Erfindung während
des Abfrage-Modus implementiert werden kann.
-
Der
Zug der ID-Pakete, der im Abfrage-Verfahren übertragen wird, wird in derselben
Weise wie im Funkrufverfahren punktiert, wie das in 6b dargestellt
ist. Das Verfahren für
die Punktierung ist identisch zu dem, das in Bezug auf die 5b beschrieben
wurde. Der Schlitz N+2 wird nun von einem Rettungsfunkleitstrahl
belegt. Dieser Rettungsfunkleitstrahl ersetzt die zwei ID-Pakete,
die im Schlitz N+2 beim Fehlen der vorliegenden Erfindung übertragen
worden wären.
Die Abfragesequenz ist sonst unbeeinflusst. Der Rettungsfunkleitstrahl
ist ein NULL-Paket gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung (eine weniger wünschenswerte Alternative würde ein
ID-Paket sein). Die Frequenz, mit der der Rettungsfunkleitstrahl übertragen
wird, wird gemäß der Kanalsprungsequenz
bestimmt, die von der Adresse (BD_ADDR) der Bluetooth-Vorrichtung
des Master-Sendeempfängers und
der Phase innerhalb der Sequenz, die durch den Master-Takt bestimmt
wird, abhängt.