-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung betrifft Kommunikationsnetzwerke und insbesondere
ein Verfahren zur Verbindung von zwei oder mehr Einheiten über ein
Ad-hoc-Funkkommunikationsnetzwerk.
-
Hintergrund
der Erfindung
-
Bluetooth
ist eine neue Technologie, die für die
drahtlose Verbindung von tragbaren Produkten der Verbraucherelektronik,
z. B. Mobiltelefone, Headsets, PDAs und Laptops über kurze Distanzen (ca. 10 Meter)
entwickelt wurde, die aber auch für Faxgeräte, Drucker, Spielzeug, Digitalkameras,
Haushaltsgeräte und
praktisch jedes andere digitale Verbraucherprodukt oder jede andere
digitale Anwendung verwendet werden kann. Diese Technologie ermöglicht ein
Verfahren zum Aufbau von kleinen drahtlosen Netzwerken zwischen
Bluetooth-fähigen
Einheiten auf Ad-hoc-Basis. Ebenso kann sie als drahtlose Kommunikationsbrücke zu vorhandenen
Datennetzwerken dienen. Derzeitige Bemühungen für den Einsatz von Bluetooth
konzentrieren sich auf Punkt-zu-Punkt-Client/Server-Anwendungen, wie beispielsweise
das Profil für
DFÜ-Verbindungen, das Headset-Profil
oder das Profil für
LAN Access Point (Bluetooth Spezifikation 1.0). Bei diesen herkömmlichen
Anwendungen entdecken sich Bluetooth-fähige Einheiten automatisch
und konfigurieren sich selbst in Netzwerke, die in den meisten Fällen lediglich
aus zwei Knoten bestehen.
-
Die
Bluetooth Spezifikation „Baseband
Specification",
Version 1.0 B, Core, 1. Dezember 1999, Seite 33 bis 190, XP002214950,
nennt ein Anfrageverfahren (inquiry procedure), das in Anwendungen verwendet
wird, in denen der Quelle die Geräteadresse der zu suchenden
Einheit nicht bekannt ist. In diesem Zusammenhang sind öffentliche
Geräte
wie Drucker oder Faxgeräte
oder Zugangspunkte zu einem LAN-Netzwerk zu nennen. Alternativ kann
das Anfrageverfahren verwendet werden, um herauszufinden, welche
weiteren Bluetooth-Einheiten sich in Reichweite befinden. Während eines
Subzustands der Anfragen sammelt die entdeckende Einheit die Adressen
der Bluetooth-Einheiten
und registriert alle Einheiten, die auf die Anfragenachricht reagieren.
Mit Hilfe des bereits früher
beschriebenen Funkruf-Verfahrens kann die Einheit dann, sofern gewünscht, eine
Verbindung mit jeder dieser Einheiten aufbauen. Die von der Quelle
gesendete Anfragenachricht enthält
keinerlei Angaben über
die Quelle. Sie kann allerdings die Informationen darüber enthalten,
welche Geräteklassen
antworten sollen. Es gibt einen allgemeinen Anfragezugangscode (General
Inquiry Access Code, GIAC), um nach allen Bluetooth-Einheiten zu suchen,
und verschiedene spezielle Anfragezugangscodes (Dedicated Inquiry
Access Codes, DIAC), mit denen nur nach bestimmten Einheiten gesucht
wird. Die Anfragezugangscodes sind von belegten Bluetooth-Geräteadressen
abgeleitet. Eine Einheit, die andere Bluetooth-Einheiten entdecken will,
tritt in einen Subzustand der Anfrage ein. In diesem Subzustand übermittelt
sie auf verschiedenen Sprungfrequenzen fortlaufend die Anfragenachricht (die
ein ID-Paket ist).
Die Anfragesprungsequenz wird immer vom LAP des GIAC abgeleitet.
Auch bei der Verwendung von DIACs wird die angewendete Sprungsequenz
somit aus dem LAP des GIAC erzeugt. Eine Einheit, die sich zur Entdeckung
bereitstellt, geht in regelmäßigen Abständen in
den Subzustand Anfragesuchlauf über,
um auf Anfragenachrichten zu reagieren.
-
Gemäß einer
aktuellen Spezifikation (z. B. IEEE 802.15 Personal Area Network
(PAN), entwickelt von der PAN Arbeitsgruppe) können sich bis zu acht Bluetooth-fähige Einheiten
automatisch in ein „Pikonetz" konfigurieren. Jedes
Pikonetz hat einen festgelegten Master, der den restlichen Knoten
oder den als Slave fungierenden Einheiten das Muster der Sprungfrequenz
vorgibt. Ein Pikonetz unterscheidet sich von anderen ähnlichen
Netzwerken in der unmittelbaren Umgebung durch seine einzigartige
Frequenzsprungsequenz. Da jedes Pikonetz eine andere Frequenzsprungsequenz
verwendet, können
in der gleichen Umgebung mehrere Pikonetze nebeneinander vorhanden
sein.
-
Pikonetze
können
außerdem über Brückenknoten
miteinander verknüpft
werden, um ein größeres Ad-hoc-Netzwerk
zu bilden, das Scatternet genannt wird (mehrere voneinander unabhängige und nichtsynchronisierte
Pikonetze). Brückenknoten
können
im Allgemeinen zeitweise an verschiedenen Pikonetzen teilnehmen,
wobei sie Daten von einem Pikonetz empfangen und sie an ein anderes
weitergeben. Es gibt praktisch keine Einschränkung bezüglich der Rolle, die ein Brückenknoten
in einem Pikonetz, an dem er teilnimmt, spielen kann. So kann eine
Brücke
beispielsweise in einem Pikonetz als Master und in einem anderen
als Slave fungieren oder auch in allen teilnehmenden Pikonetzen
Slave sein. Auf diese Weise können
mehrere Pikonetze aufgebaut und zu Ad-hoc-Scatternets verbunden werden,
um zwischen sich ständig ändernden
Konfigurationen eine flexible Kommunikation zu ermöglichen.
-
Die
Spezifikation zum Bluetooth Basisband, wie sie in J. Haartsen, „Bluetooth
Baseband Specification",
Version 1.0, dargelegt wird, die hier als Referenz angefügt wird,
definiert den Punkt-zu-Punkt-Verbindungsaufbau mit Bluetooth als
ein zweistufiges Verfahren. Haben Bluetooth-Einheiten keine Kenntnisse über die
Einheiten in ihrer Umgebung, müssen sie
erst ein Anfrageverfahren (inquiry procedure) durchführen, um
Informationen über
die Umgebung zu bekommen (z. B. Knotenidentitäten und Synchronisierungsdaten).
Liegen die Daten über
die Umgebung vor, wird ein Funkrufverfahren (paging procedure) angewendet,
um die Verbindung zwischen den Einheiten tatsächlich aufzubauen.
-
Die
Verfahren Anfrage und Funkruf umfassen ein asymmetrisches Verbindungsaufbauprotokoll,
das im Wesentlichen zwei Typen von Einheiten beinhaltet:
- – suchende
Anfrage-Einheiten (inquiry units), die versuchen, Einheiten in der
Umgebung zu entdecken und eine Verbindung mit ihnen aufzubauen; und
- – zu
entdeckende Anfrage-Einheiten, die sich selbst zur Entdeckung und
Verbindung mit Anfrage-Einheiten als verfügbar darstellen.
-
Die
Bluetooth Basisbandschicht unterstützt im Wesentlichen die folgenden
Zustände
für die
Erforschung der Umgebung und den Verbindungsaufbau:
-
Anfrage
(Inquiry): Der Zustand Anfrage wird verwendet, um die Identität von Bluetooth-Einheiten in
einer bestimmten Betriebsumgebung festzustellen. Die suchende Einheit
oder das suchende Gerät
sammelt Bluetooth-Geräteadressen
und registriert alle Einheiten, die auf die Anfragenachricht antworten.
-
Anfrage-Suchlauf
(Inquiry Scan): In diesem Zustand suchen die Bluetooth-Einheiten
nach Anfragen (Inquiries) von anderen Einheiten. Die suchende Einheit
ist in der Lage, sowohl nach einem allgemeinen Anfragezugangscode
(general inquiry access Code, GIAC) als auch nach einem speziellen
Anfragezugangscode (dedicated inquiry access code, DIAC) zu suchen.
-
Funkruf
(Page): Dieser Zustand wird von einem suchenden Gerät oder einer
suchenden Einheit verwendet, die durch Anfrageverfahren andere Einheiten
entdeckt hat. Die suchende Einheit sendet Funkrufnachrichten, wobei
der Gerätezugangscode (device
access code, DAC) der gefundenen Einheit auf unterschiedlichen Sprungkanälen übertragen wird.
-
Funkruf-Suchlauf
(Page Scan): In diesem Zustand sucht eine Einheit während eines
bestimmten Zeitraums nach ihrem eigenen Gerätezugangscode (DAC). Während dieses
Zeitraums sucht die Einheit auf einer einzigen Sprungfrequenz (abgeleitet von
seiner Funkruf-Sprungsequenz).
-
Verbindung
(Connection): Mit Erreichen dieses Zustands ist eine Einheit der
Master und die andere der Slave. In diesem Zustand können die
Einheiten unter Verwendung der Kanal-Sprungsequenz, die vom Kanalzugangscode
(channel access code) und der Bluetooth-Takt des Masters bestimmt
wurde, Pakete austauschen.
-
Bereitschaft
(Standby): Bereitschaft ist ein in der Bluetooth-Einheit voreingestellter
Zustand mit geringer Stromaufnahme. Nur der eingebaute Taktgeber
ist in Betrieb, und es findet keine Interaktion mit anderen Einheiten
statt. Außerdem
gibt es noch mehrere Zwischenzustände, nämlich (Anfrage-Antwort (Inquiry
Response), Slave-Antwort (Slave Response) und Master-Antwort (Master
Response). Diese Zustände
werden im Folgenden im Zusammenhang mit einer Beschreibung des Verbindungsaufbauprotokolls
mit Bluetooth genauer beschrieben.
-
1 zeigt
ein logisches Flussdiagramm (100) und stellt ein herkömmliches
Verfahren zum Aufbau einer Punkt-zu-Punkt-Verbindung zwischen Bluetooth-fähigen Einheiten,
nämlich
eine anfragende Einheit (inquiring unit) (101) und eine
angefragte Einheit (inquired unit) (102), dar. Beide Einheiten
verwenden ein universelles Frequenzsprungverfahren, das Anfragesprungsequenz
(Inquiry-Hopping-Sequence) genannt wird. Folgende Schritte werden
in einem gewöhnlichen
Verfahren zum Verbindungsaufbau verfolgt:
- 1.
Als Erstes geht die anfragende Einheit (101) in den Zustand
ANFRAGE (INQUIRY) (120) über und versucht zu entdecken,
welche Geräte
sich in Reichweite befinden, wobei gemäß der universellen Anfragesprungsequenz
mit hoher Geschwindigkeit ein Paket mit dem Anfragezugangscode (inquiry
access code, IAC) (111) mit einer Rate von 3200 Sprüngen/Sekunde übertragen
wird, und sucht zwischen den Übertragungen
nach Antworten.
- 2. Die angefragte Einheit (102) geht in den Zustand
ANFRAGESUCHLAUF (INQUIRY SCAN) (130) über und stellt sich somit zur
Entdeckung durch in Reichweite befindliche anfragende Einheiten
als verfügbar
dar. Die angefragte Einheit (102) beginnt auf einem Frequenzträger mit
der Suche nach einer potenziellen anfragenden Einheit (101)
und überträgt auf dieser
speziellen Frequenz eine Anfragenachricht. Alle 1,28 Sekunden bewegt
die Einheit gemäß der universellen Anfragesprungsequenz
ihren horchenden Träger
einen Sprung vorwärts
(im Frequenzkanal). Es wird deutlich, dass auf diese Weise eine
Verzögerung bei
der Synchronisierung der Frequenzen auftritt, bis die anfragende
Einheit (101) und die angefragte Einheit (102)
auf dem gleichen Kanal synchronisiert sind.
- 3. Sobald die anfragende Einheit (101) und die angefragte
Einheit (102) auf der gleichen Frequenz kommunizieren,
empfängt
die angefragte Einheit (102) von der anfragenden Einheit
(101) ein IAC-Paket (111). Nach Empfang der Anfragenachricht
geht die angefragte Einheit (102) in den Zustand BEREITSCHAFT
(STANDBY) (140) über und „schläft" während einer
festgelegten Zeit R, die einheitlich zwischen 0 und 639 Millisekunden festgelegt
wurde.
- 4. Die angefragte Einheit (102) „wacht" anschließend wieder auf und nimmt erneut
die Suche im Zustand ANFRAGE-ANTWORT (INQUIRY RESPONSE) (150)
auf, wobei sie das Frequenzspringen bei dem Sprung wieder aufnimmt,
mit dem sie vor ihrem Übergang
in den Zustand BEREITSCHAFT gesucht hat.
- 5. Ein zweites IAC-Paket (112) wird empfangen, und
die angefragte Einheit sendet ein Paket mit der Frequenzsprungsequenz
(FHS) (113) an die anfragende Einheit (101) zurück. Das
FHS-Paket (113) enthält
die Bluetooth-Adresse und den Taktwert der angefragten Einheit,
wobei dies für
die anfragende Einheit (101) eine wertvolle Information
für die
Synchronisierung darstellt, die das sich anschließende Funkrufverfahren
(Paging) beschleunigt. Direkt nach der Antwort durch ein FHS-Paket
(113) geht die angefragte Einheit (102) in den
Zustand FUNKRUF-SUCHLAUF (PAGE SCAN) (160) über und
sucht nach ihrem eigenen Gerätezugangscode
(device access code, DAC), wobei sie gemäß ihrer eigenen Funkrufsprungsequenz
(Page-Hopping-Sequenz) springt.
- 6. Die anfragende Einheit (101) hingegen empfängt von
der angefragten Einheit (102) ein FHS-Paket (113)
sowie Daten, die verwendet werden, um den DAC und die Funkrufsprungsequenz der
angefragten Einheit (102) zu ermitteln. An diesem Punkt
beginnt das Funkrufverfahren. Die anfragende Einheit (101)
geht in den Zustand FUNKRUF (PAGE) (170) über und
beginnt den Funkruf, wobei das DAC-Paket (114) gemäß der Funkrufsprungsequenz
der angefragten Einheit (102) gesendet wird.
- 7. Die angefragte Einheit (102) empfängt das DAC-Paket
(114) und geht in den Subzustand SLAVE-ANWORT (SLAVE RESPONSE)
(180) über.
- 8. Die anfragende Einheit (101) empfängt das
von der angefragten Einheit gesendete DAC-Paket (115),
geht in den Subzustand MASTER-ANTWORT (MASTER RESPONSE) (190) über und sendet
anschließend
ein FHS-Paket (116) mit ihrer Adresse und den Takt-Daten
an die angefragte Einheit (102).
- 9. Die angefragte Einheit (102) empfängt das FHS-Paket
(116), das von der anfragenden Einheit (101) gesendet
wurde und wechselt, wie im FHS-Paket (116) empfangen, auf
den Kanalzugangscode (channel access code) und den Takt der anfragenden
Einheit (101). Die angefragte Einheit (102) sendet
dann zur Bestätigung
des Empfangs des FHS-Pakets (116) ein DAC-Paket (117)
und geht anschließend
in den Zustand VERBINDUNG (CONNECTION) (198) über, wobei
sie in dieser Punkt-zu-Punkt-Verbindung die Rolle des Slave einnimmt.
- 10. Die anfragende Einheit (101) geht beim Empfang
des DAC-Pakets (117)
von der angefragten Einheit (102) in den Zustand VERBINDUNG (CONNECTION)
(199) über
und wird Master dieser Punkt-zu-Punkt-Verbindung.
-
Gemäß dem oben
beschriebenen herkömmlichen
Protokoll von Bluetooth kann zwischen zwei Bluetooth-fähigen Einheiten
eine Verbindung aufgebaut werden, und die Einheiten können nacheinander
jede gewünschte
Menge an Daten austauschen.
-
Obwohl
Bluetooth eine viel versprechende neue Technologie ist, hat das
herkömmliche
Verfahren bzw. das Protokoll zum Verbindungsaufbau mehrere Nachteile.
Wie oben beschrieben, unterstützt Bluetooth
einen drahtlosen Ad-hoc-Verbindungsaufbau
zwischen Einheiten in Reichweite. Das bedeutet, dass sich zwei in
der Nähe
befindliche Einheiten gegenseitig entdecken und zwischen sich eine
Kommunikationsverbindung aufbauen können. Da Bluetooth eine Streuspektrum-Frequenzsprungtechnologie nutzt,
um Punkt-zu-Punkt-
und Punkt-zu-Multipunkt-Verbindungen zu unterstützen, müssen die Einheiten ihre Frequenzsprungmuster
synchronisieren, bevor sie miteinander kommunizieren können. Das
bedeutet, dass Gäste
nicht in der Lage sind, an der Kommunikation teilzunehmen, es sei
denn, sie haben sich zuvor gegenseitig „entdeckt" und ihre Frequenzsprungmuster synchronisiert.
Auch wenn sich alle Knoten im direkten Kommunikationsbereich befinden,
treten während
des Aufbaus der einzelnen Verbindungen im Netzwerk zufällige Verzögerungen in
der Synchronisation auf. Das Verfahren der Synchronisation (oder
Inquiry in der Terminologie von Bluetooth) ist ein zeitaufwendiges
und asymmetrisches Verfahren (d. h., dass sich zwei Knoten in unterschiedlichen
Anfangszuständen
befinden müssen).
-
Demzufolge
kann es bei zwei eingeschalteten Bluetooth-Einheiten einige Sekunden dauern, bis eine
Verbindung zwischen den Einheiten aufgebaut ist.
-
Zusammenfassung
der Erfindung
-
Das
Verfahren und die Vorrichtung der vorliegenden Erfindung, wie im
unabhängigen
Anspruch 1 und im Anspruch der Vorrichtung 7 definiert, stellen ein
Protokoll für
die Entdeckung und den Verbindungsaufbau zwischen zwei oder mehreren
Einheiten, vorzugsweise Bluetooth-Einheiten bereit, das im Vergleich
zum herkömmlichen
Verfahren zum Verbindungsaufbau bedeutend verbessert wurde. Mit
der vorliegenden Erfindung können
sich viele Bluetooth-fähige
Einheiten entdecken und sich automatisch in komplexere Netzwerkstrukturen
konfigurieren als jene, die vom herkömmlichen Verfahren unterstützt werden
können.
Das asynchron verteilte Protokoll der vorliegenden Erfindung beginnt
mit Knoten, denen ihre Umgebung unbekannt ist, und endet mit dem
Aufbau eines Netzwerks, das den strukturellen Einschränkungen
gerecht wird, die beim Aufbau der Verbindung durch die Technologie
Bluetooth oder ähnliche
technische Besonderheiten der Einheiten vorgegeben sind.
-
Gemäß einer
zweiten Ausführung
der vorliegenden Erfindung wird die neue Technologie der wechselnden
Zustände
verwendet, um zwischen mehreren Einheiten oder Knoten in einem Ad-hoc-Funkkommunikationsnetzwerk
ein Scatternet aufzubauen. Während
einer ersten Phase wird ein Koordinatorknoten gewählt, wobei
eine Punkt-zu-Punkt-Verbindung zwischen zwei Knoten aufgebaut und
ein obsiegender Knoten bestimmt wird. Es werden so lange sukzessive „Eins-gegen-eins-Kämpfe" durchgeführt, bis
ein einziger obsiegender Koordinatorknoten verbleibt. Der Koordinatorknoten
ermittelt und speichert die Daten jeder am Netzwerk teilnehmenden
Einheit bzw. jedes Knotens. Während
einer zweiten Phase weist der Koordinatorknoten jeder Einheit im
Netzwerk eine Rolle zu, wobei bestimmt wird, welcher Knoten Master,
Slave oder Brücke
sein soll. Während
einer dritten Phase wird das drahtlose Netzwerk gemäß den vom
Koordinator zugewiesenen Rollen aufgebaut.
-
Diese
und weitere Aufgaben, Eigenschaften und Vorteile der vorliegenden
Erfindung werden in der folgenden detaillierten Beschreibung der
anschaulichen Erläuterungen
herausgestellt, die zusammen mit den beiliegenden Zeichnungen zu
lesen ist, wobei ähnliche
Elemente in verschiedenen Ansichten mit identischen Referenznummern
bezeichnet werden.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein logisches Flussdiagramm, das ein herkömmliches Protokoll für einen
asymmetrischen Verbindungsaufbau zwischen zwei Bluetooth-fähigen Einheiten
darstellt.
-
2 ist
ein logisches Flussdiagramm, das einen vollständigen Zustand WECHSEL darstellt,
mit dem gemäß einer
Ausführungsform
der vorliegenden Erfindung ein Protokoll für einen symmetrischen Punkt-zu-Punkt-Verbindungsaufbau
ohne vorangegangenes Zuordnen von Rollen zur Verfügung gestellt
wird.
-
3 ist
ein logisches Zeitdiagramm, welches das Protokoll für einen
symmetrischen Punkt-zu-Punkt-Verbindungsaufbau gemäß 2 zeigt.
-
4 ist
ein logisches Flussdiagramm, das gemäß einer Ausführungsform
der vorliegenden Erfindung Operationen und Zustandstransaktionen
eines jeden Knotens während
eines Wahlprozesses (Phase I) des Protokolls für den Netzwerkaufbau zeigt.
-
5 ist
ein logisches Flussdiagramm, das gemäß einer Ausführungsform
der vorliegenden Erfindung die Operationen des Koordinatorknotens während der
Phase der Rollenzuordnung (Phase II) des Protokolls für den Netzwerkaufbau
zeigt.
-
6 ist
ein logisches Flussdiagramm, das gemäß einer Ausführungsform
der vorliegenden Erfindung die Operationen eines Slave-Knotens während der
Phase der Rollenzuordnung (Phase II) und der Phase des Verbindungsaufbaus
(Phase III) des Protokolls für
den Netzwerkaufbau zeigt.
-
7 ist
ein logisches Flussdiagramm, das gemäß einer Ausführungsform
der vorliegenden Erfindung die Operationen eines ausgewählten Master-Knotens
während
der Phase des Verbindungsaufbaus (Phase III) des Protokolls für den Netzwerkaufbau
zeigt.
-
8 ist
ein Blockschaltbild, das eine typische Bluetooth-fähige
Einheit mitsamt einer Ausführungseinheit
und der damit verbundenen Komponenten zeigt.
-
Detaillierte
Beschreibung von bevorzugten Ausführungsformen
-
Die
vorliegende Erfindung wird im Folgenden im Zusammenhang mit einer
praktischen Anwendung beschrieben, in der zwei Bluetooth-fähige Einheiten
oder Knoten versuchen, automatisch eine Punkt-zu-Punkt-Kommunikationsverbindung
zwischen sich aufzubauen.
-
Es
gilt jedoch zu beachten, dass die vorliegende Erfindung nicht auf
diese oder eine andere spezielle Anwendung der Kommunikationsverbindung
beschränkt
ist. Im Gegenteil, die Verfahren und Vorrichtungen der vorliegenden
Erfindung bieten vielfältige
Anwendungsmöglichkeiten,
um gemäß den hier
dargelegten Grundgedanken eine praktisch unbegrenzte Anzahl von
Einheiten und/oder Knoten in einem Ad-hoc-Funknetzwerk zu verbinden.
-
Gemäß einem
Aspekt der vorliegenden Erfindung zeigt 2 einen
vollständigen
Zustand WECHSELN (ALTERNATE) (200), der für ein Protokoll
zum symmetrischen Verbindungsaufbau bevorzugt verwendet wird, ohne
wie bisher zuerst eine Rollenverteilung vorzunehmen. Der Zustand
WECHSELN (ALTERNATE) (200) kann von einem Fachmann durchgeführt werden,
der beispielsweise Programmierungsbefehle und/oder Routinen verwendet, wie
sie in der hier als Referenz beigefügten Spezifikation von K. Fleming „Bluetooth
Host Controller Interface [HCI]",
Version 1.0, definiert werden. Das Protokoll der vorliegenden Erfindung
kann auch in Hardware ausgeführt
werden.
-
Beim
Start, der zum Beispiel durch Betätigen des „Start"-Knopfes
durch einen Endbenutzer und Warten auf einen automatischen Verbindungsaufbau ausgelöst wird,
startet jede Bluetooth-Einheit vorzugsweise einen Zeitgeber für das Zeitlimit
(start timeout timer) (203) und geht dann in einen ersten Zustand
(201) über.
Der Zeitgeber für
das Zeitlimit (203) registriert vorzugsweise die abgelaufene
Zeit und kann zum Beispiel, wie unter Fachleuten bekannt, als gewöhnlicher
Zähler
ausgeführt
werden. Hierbei gilt es zu beachten, dass der Zustand (201) willkürlich als
Zustand ANFRAGE (INQUIRY) oder als Zustand ANFRAGE-SUCHLAUF (INQUIRY SCAN)
ausgewählt
werden kann. Des weiteren gilt es zu beachten, dass die Zustände ANFRAGE
und ANFRAGE-SUCHLAUF dem Endbenutzer möglichst bekannt sind und nicht
wie beim herkömmlichen
Verfahren zum Verbindungsaufbau vorher festgelegt wurden. Im Beispiel
in 2 wird der Zustand (201) als Zustand
ANFRAGE gewählt.
-
Die
Bluetooth-Einheit verbleibt während
eines Zeitraums R1 möglichst
im Zustand ANFRAGE (201) und operiert im Wesentlichen in
einem „Schlaf"- oder Bereitschafts-Modus
(211), wobei keine wesentliche Interaktion zwischen den
Einheiten stattfindet. Vorzugsweise wird eine vom Benutzer gewählte vordefinierte
Wahrscheinlichkeitsverteilung angewendet, um den Zeitraum, während dessen
eine Einheit entweder im Zustand ANFRAGE oder ANFRAGE-SUCHLAUF verbleibt,
zu steuern. Diese Verteilung kann zum Beispiel als Zufallsverteilung
gewählt werden.
Durch Ändern
eines oder mehrerer Parameter bei der Verteilung hat der Benutzer
Einfluss auf die Sequenz der wechselnden Zustände, wodurch die Zeit des Verbindungsaufbaus
zwischen Einheiten optimiert werden kann.
-
Nachdem
die Einheit während
des Zeitraums R1 in ihrem Zustand (201) verblieben ist,
wird die abgelaufene Zeit (213) vorzugsweise gemessen,
um zu ermitteln, ob ein vorher festgelegtes Zeitlimit ALT_TIMEOUT
(220) überschritten
worden ist. Wurde das Zeitlimit ALT_TIMEOUT überschritten, verlässt die
Bluetooth-Einheit vorzugsweise (217) den Zustand WECHSELN (200).
Nach dem Verlassen (217) des Zustands WECHSELN (200)
kann die Einheit eine Nachricht zum Ablauf des Zeitlimits ausgeben,
beispielsweise durch Setzen eines Merkers oder einer ähnlichen
Anzeige, wobei vorzugsweise signalisiert wird, dass während des
vorher festgelegten Zeitraums keine Verbindung aufgebaut wurde. Wurde
das Zeitlimit ALT_TIMEOUT (220) nicht überschritten, geht die Einheit
in den zweiten Zustand (202) über, der vorzugsweise der jeweils
andere der beiden Anfangszustände
(ANFRAGE oder ANFRAGE-SUCHLAUF) ist, welcher zuvor willkürlich als
erster Zustand (201) gewählt wurde. Im Beispiel von 2 ist
der zweite Zustand (202) der Zustand ANFRGAE-SUCHLAUF,
da der erste Zustand (201) willkürlich als Zustand ANFRAGE gewählt wurde.
Anschließend
verbleibt die Einheit während
eines zweiten Zeitraums R2 im Zustand (202), im Wesentlichen im „Schlaf"-Modus (212).
Wie für
den ersten Zeitraum R1 wird vorzugsweise eine vordefinierte Wahrscheinlichkeitsverteilung
gewählt,
um den Zeitraum R2, während
dessen die Einheit in ihrem aktuellen Zustand (202) verbleibt,
zu steuern. Es ist darauf hinzuweisen, dass die Verteilung zur Bestimmung
des Zeitraums R2 anders sein kann als die Verteilung für den Zeitraum
R1. Auch hier wird gemäß der vorliegenden
Erfindung anschließend
wie zuvor beschrieben vorzugsweise ein Prüfen des Ablaufens des Zeitlimits
(Timeout expiration check) (213) durchgeführt.
-
Unter
der Annahme, dass sich in der Betriebsumgebung keine weitere Bluetooth-Einheit
für einen
Verbindungsaufbau befindet, wird das Verfahren der Zustandswechsel
(200) (d. h. abwechselndes Umschalten zwischen den Zuständen ANFRAGE und
ANFRAGE-SUCHLAUF) möglichst
gestoppt, wenn das vorher festgelegte Zeitlimit ALT_TIMEOUT (220) überschritten
wurde. Befindet sich in Betriebsnähe eine weitere Bluetooth-fähige Einheit,
beginnen die beiden Einheiten vorzugsweise mit der Verwendung des
Protokolls des Zustands WECHSELN (200), und je nachdem,
ob sich die jeweilige Einheit im Zustand ANFRAGE (201)
oder im Zustand ANFRAGE-SUCHLAUF (202) befindet, geht jede Einheit
abwechselnd in den Zustand VERBINDUNG (205) über und
fungiert jeweils als Master- oder als Slave-Einheit. Es ist darauf
hinzuweisen, dass sich die Einheiten für einen gültigen Verbindungsaufbau zwischen
zwei Bluetooth-Einheiten in zueinander komplementären Zuständen befinden
müssen
(z. B. ANFRAGE/ANFRAGE-SUCHLAUF). Nach Übergang in den Zustand VERBINDUNG
(205) wird der Zustand WECHSELN vorzugsweise verlassen
(216).
-
Als
Beispiel kann ein Szenario dienen, an dem zwei Bluetooth-fähige Einheiten beteiligt sind, nämlich „Einheit
A" (360)
und „Einheit
B" (370)
(vgl. 3), wobei jede Einheit beim Versuch, eine Verbindung
zwischen sich aufzubauen, die Prozedur des Zustands WECHSELN (200)
(vgl. 2) der vorliegenden Erfindung verwendet. 3 zeigt
ein logisches Zeitdiagramm (300), das eine anschauliche Sequenz
der Zustandswechsel zeigt, die von jeder Einheit (360 und 370)
während
der Ausführung
der Prozedur des Zustands WECHSEL der vorliegenden Erfindung durchgeführt wird.
In 3 wird die Aktivität der Zustandswechsel für die beiden
Bluetooth-Einheiten
(360 und 370) zusammen mit einem gemeinsamen Zeitplan
(330) dargestellt, der zum Zweck einer einfachen Erläuterung
auf einer gewöhnlichen
Zeitachse abgebildet wurde. Die mit „I" gekennzeichneten Intervalle (301)
gehören
zu einer Einheit im Zustand ANFRAGE und die mit „S" gekennzeichneten Intervalle zu einer
Einheit im Zustand ANFRAGE-SUCHLAUF. Die Zustände ANFRAGE und ANFRAGE-SUCHLAUF
wurden bereits im Zusammenhang mit der Prozedur des Zustands WECHSEL
in 2 beschrieben.
-
Das
Beispiel in 3 setzt voraus, dass die Einheit
A (360) bereits das Protokoll des Zustands WECHSEL gestartet
hat und versucht, während
eines unbestimmten Zeitraums vor einem willkürlich gewählten Anfangszeitpunkt t0 (320)
eine Kommunikationsverbindung mit einer anderen Bluetooth-Einheit
aufzubauen und demzufolge zwischen den beiden Zuständen ANFRAGE
und ANFRAGE-SUCHLAUF wechselt. Der Zeitpunkt t0 (320) wird
vorzugsweise willkürlich
als Startpunkt für
Einheit B (370) gewählt,
wobei Einheit B ebenso beginnt, gemäß der durch die vorliegende
Erfindung definierten Prozedur des Zustands WECHSEL zwischen den
Zuständen ANFRAGE
und ANFRAGE-SUCHLAUF zu wechseln.
-
Der
gemeinsame Zeitplan (330) zeigt vorzugsweise eine kombinierte
Sequenz der Zustandswechsel für
die beiden Einheiten (360 und 370), die durch
mehrere „EIN/AUS"-Intervalle Xi gekennzeichnet ist. Vorzugsweise
wird ein Intervall Xi als ein Zeitraum zwischen Zustandswechseln
einer oder beider Bluetooth-Einheiten (360 und 370)
definiert. Die zeitliche Länge
eines Intervalls Xi wird zufällig
sein, da der Zeitraum, während
dessen eine Einheit in einem bestimmten Zustand verbleibt (d. h.
ANFRAGE oder ANFRAGE-SUCHLAUF), wie zuvor beschrieben zufällig ist.
Folglich werden die Intervalle Xi im Allgemeinen aufeinander bezogen
nicht gleichmäßig lang sein,
obwohl es die statistische Möglichkeit
gibt, dass die Intervalle Xi gleichmäßig lang sind.
-
Gemäß einer
bevorzugten Ausführungsform der
vorliegenden Erfindung haben die beiden Einheiten (360 und 370)
die Möglichkeit,
sich nur während jener
Zeitintervalle gegenseitig zu lokalisieren oder zu „entdecken", in denen sie sich
in komplementären Zuständen befinden
(d. h., Einheit 360 befindet sich in Zustand 301,
während
sich Einheit 370 in Zustand 302 befindet). Im
Wesentlichen handelt es sich um eine Exklusiv-ODER-Funktion, wobei der gemeinsame
Zeitplan (330) eine logische 1 („EIN") anzeigt, wenn die beiden Einheiten
(360 und 370) sich nicht im gleichen Zustand befinden.
Diese „EIN"-Intervalle sind mit 311, 312, 313, 314, 315 und 316 gekennzeichnet,
dazu gehören
jeweils die Intervalle X1, X3, X5, X7, X9 und X11.
-
Weiterhin
mit Bezug auf 3 initiieren die Einheiten (360 und 370)
zu Beginn eines ersten „EIN"-Intervalls X1 (311)
ein Verfahren zum Verbindungsaufbau auf herkömmliche Weise, zum Beispiel unter
Verwendung der zuvor im Zusammenhang mit 1 beschriebenen
Schritte. Das Verfahren zum Verbindungsaufbau benötigt im
Allgemeinen eine endliche Zeitdauer der zufälligen Länge T (340), die Verzögerungen
bei der Synchronisierung der Frequenzen und die Verzögerung der
angefragten Einheit im Zustand Bereitschaft oder Rückkopplung (140)
(vgl. 1). Ist der Zeitraum T (340) für den Ablauf
des Verfahrens zum Verbindungsaufbau kürzer als die Dauer des „EIN"-Intervalls (d. h. 316),
gehen die beiden Einheiten (360 und 370) nach
Ausführung
des Verfahrens zum Verbindungsaufbau in 1 vorzugsweise
in den Zustand VERBINDUNG (205) in 2 über. Nach Übergang
in den Zustand VERBINDUNG (205) verlassen beide Einheiten
vorzugsweise (216) die Prozedur des Zustands WECHSEL (200)
mit einer Ausgabenachricht oder einem entsprechenden Äquivalent,
um zu signalisieren, dass eine gültige
Verbindung aufgebaut worden ist (vgl. 2). Verändert jedoch
eine der Einheiten ihren Zustand (d. h. ANFRAGE 301 zu
ANFRAGE-SUCHLAUF 302) bevor das in 1. dargestellte
Verfahren zum Verbindungsaufbau abgeschlossen wurde (d. h., die
Dauer des Zeitraums T (340) ist länger als das entsprechende „EIN"-Intervall), wurde keine gültige Verbindung
aufgebaut, und die Einheiten (360 und 370) müssen bis
zum nächsten „EIN"-Intervall (z. B. Intervall X3 312)
warten, bis ein erneuter Verbindungsaufbau versucht werden kann. Kann
auch beim nächsten
gültigen
Zeitintervall (313) keine Verbindung aufgebaut werden,
wird der Verbindungsaufbau sukzessive während der nächsten „EIN"-Intervalle (313, 314 usw.)
versucht, bis schließlich
eine Verbindung aufgebaut wurde oder bis ein vorher festgelegtes
Zeitlimit für
den Verbindungsaufbau (Connection timeout period) abgelaufen ist.
Vorzugsweise wird ein Zeitraum für
den Verbindungsaufbau Tc (321)
bestimmt, und zwar als Länge
des Zeitraums, der mit der Startzeit t0 (320)
beginnt und mit einem Zeitpunkt tn (322)
endet und während
dessen sich die beiden Bluetooth-Einheiten (360 und 370)
in komplementären
Zuständen
befinden, die für
einen Verbindungsaufbau notwendig sind, während die Prozedur des Zustands
WECHSEL der vorliegenden Erfindung verwendet wird.
-
Die
neue Technologie der „wechselnden
Zustände" der in 2 und 3 beschriebenen
vorliegenden Erfindung ist ein Mechanismus, mit dem eine Ad-hoc-Punkt-zu-Punkt-Verbindung
zwischen zwei Bluetooth-Einheiten garantiert ist. Für mehr als
zwei Einheiten, zwischen denen „fliegend" ein Scatternet aufgebaut werden soll,
bietet die vorliegende Erfindung gemäß einer zweiten Ausführungsform
ein einzigartiges Protokoll, das den hier beschriebenen Mechanismus
der „wechselnden
Zustände" einschließt, um sicherzustellen,
dass das am Ende aufgebaute Netzwerk den Anforderungen und der Architektur
eines Bluetooth-Scatternet gerecht wird.
-
In
einer beispielhaften Anwendung befinden sich in einem Raum mehrere
Benutzer, die mit ihren Bluetooth-fähigen Einheiten ein Ad-hoc-Netzwerk aufbauen
möchten
(oder, als Alternative, ein einzelner Benutzer mit verschiedenen
Bluetooth-fähigen Einheiten).
Jeder Benutzer initiiert vorzugsweise eine Prozedur zum Verbindungsaufbau,
indem er den „Start"-Knopf betätigt oder
eine vergleichbare Prozedur einleitet, und wartet anschließend darauf,
dass die Einheit signalisiert, dass eine Verbindung aufgebaut worden
ist, zum Beispiel, indem nach kurzer Zeit eine Anzeige „Netzwerkverbindung
hergestellt" erscheint.
Nach einer solchen Bestätigung
ist der Benutzer in der Lage, mit einem anderen Benutzer oder einer
anderen Einheit Daten im Raum auszutauschen. Es wird für dieses
Beispiel angenommen, dass sich alle teilnehmenden Einheiten jeweils
in Betriebsumgebung befinden, was eine logische Annahme für den Aufbau
eines Netzwerks zwischen vielen drahtlosen Geräten in einem einzigen Raum
ist.
-
Im
oben beschriebenen Szenario sind die Elemente eines erfolgreichen
Verbindungsaufbauprotokolls enthalten, nämlich:
- – Der Aufbau
einer Netzwerkverbindung muss in einer im Wesentlichen verteilten
Art und Weise geschehen. Das bedeutet, dass jede Einheit vorzugsweise
asynchron in Betrieb geht und zu Beginn keine Kenntnisse über die
Identitäten
oder die Anzahl der Knoten im Raum hat.
- – Nach
einem erfolgreichen Verbindungsaufbau muss das Protokoll ein verbundenes
Scatternet garantieren. Es muss mindestens ein Pfad zwischen zwei
beliebigen Knoten im Netzwerk bestehen (Korrektheit).
- – Das
Netzwerk muss sich in einem angemessenen Zeitraum aufbauen, der
vom Endbenutzer toleriert werden kann (Leistungsfähigkeit).
-
Gemäß einer
bevorzugten Ausführungsform der
vorliegenden Erfindung gibt es im Wesentlichen keine Einschränkungen
hinsichtlich der endgültigen Form
des Bluetooth-Scatternet. Die einzigen Anforderungen bzw. Richtlinien
sind:
- 1. Es müssen Pikonetze sein, die aus
einem Master und weniger als sieben Slaves bestehen (von denen einige
Brücken
sein können).
- 2. Pikonetze müssen
durch Brückenknoten
untereinander verknüpft
sein.
- 3. Jeder Knoten muss im endgültigen
Netzwerk jeden anderen Knoten erreichen können (d. h., dass das Netzwerk
vollständig
verbunden sein muss).
-
Im
Hinblick auf die oben genannten Freiheiten und für den Entwurf eines schnelleren
Protokolls weist die vorliegende Erfindung in einer bevorzugten Ausführungsform
folgende strukturelle Einschränkungen
auf:
- – Ein
Brückenknoten
verbindet gegebenenfalls nur zwei Pikonetze (Einschränkung des
Brückengrades).
Eine Brücke
muss ihre Tätigkeit
zeitlich in viele Teile zerlegen. In Anbetracht der Tatsache, dass
jede tragbare Einheit begrenzte Verarbeitungskapazitäten hat,
was einen maximalen Brückengrad
von zwei (2) vorgibt, kann ein Knoten keine Kreuzung für mehrere
entstandene Datentransfers sein.
- – Zwei
Pikonetze haben nur eine gemeinsame Brücke (Piconet Overlap Constraint).
Diese Bedingung wird vorzugsweise angewendet, um eine Möglichkeit
zu schaffen, das Verbindungsaufbauprotokoll schneller zu beenden.
Möchten
später zwei
Master über
eine weitere gemeinsame Brücke
verfügen,
ist dies beispielsweise durch ein herkömmliches Protokoll zur Verhandlung über Brücken möglich.
-
Gemäß einer
bevorzugten Ausführungsform der
vorliegenden Erfindung wird ein Protokoll oder ein Mechanismus für die Verbindung
von Bluetooth-Einheiten zu einem Scatternet bereitgestellt. Das
Protokoll ist vorzugsweise wenigstens zu einem Teil auf einem Algorithmus
oder einer Prozedur zur Wahl eines Anführers (leader) begründet. Wie
unter Fachleuten bekannt, wird mit der Wahl eines Anführers das
Problem angegangen, einen einzigen Anführerknoten so zu wählen, dass
der gewählte
Anführer
weiß,
dass er gewählt
wurde und die anderen Knoten wissen, dass sie nicht gewählt wurden.
Das Konzept der Wahl eines Anführers
ist ein wichtiges Mittel, das verwendet werden kann, um die Symmetrie
in einem verteilten System aufzulösen. Da die Knoten asynchron
und ohne Kenntnis der Gesamtanzahl der teilnehmenden Knoten beginnen,
kann ein Anführer
den Netzwerkaufbau steuern.
-
Das
Verfahren zum Netzwerkaufbau der vorliegenden Erfindung umfasst
vorzugsweise drei verschiedene Phasen, nämlich die Phase der Koordinatorwahl
(Phase I), eine Phase der Rollenzuordnung (Phase II) und eine Phase
des Verbindungsaufbaus (Phase III). Jede dieser Phase wird im Folgenden
detailliert beschrieben.
-
Phase I: Koordinatorwahl
-
Während der
Phase der Koordinatorwahl findet vorzugsweise eine asynchrone, verteilte
Wahl eines Koordinatorknotens statt, der zum Schluss die Nummer,
Adresse und Taktdaten jedes teilnehmenden Knotens in der Netzwerkkonstruktion
ermittelt und speichert. Der Koordinatorknoten ist verantwortlich
für die
Festlegung, welche teilnehmenden Knoten Master, Slaves und Brücken (die
vorzugsweise Slaves für
einen oder mehrere Master sind) des Netzwerks sind.
-
Für die Anwendung
der vorliegenden Erfindung sind vorzugsweise mehrere Variablen und
damit verbundene Funktionen definiert. Während Phase I verfügt jede
Einheit oder jeder Knoten x vorzugsweise über die folgenden Variablen:
-
MY_VOTES:
Diese Variable wird verwendet, um die Anzahl der Stimmen (VOTES),
die ein bestimmter Knoten bis zu diesem Zeitpunkt empfangen hat,
zu bestimmen.
-
OTHER_VOTES:
Bei einer Punkt-zu-Punkt-Verbindung ist diese Variable als der MY_VOTES-Wert
des anderen Knotens definiert.
-
MY_ID:
Diese Variable enthält
die Bluetooth-Adresse der Einheit x.
-
OTHER_ID:
Bei einer Punkt-zu-Punkt-Verbindung ist diese Variable als die MY_ID-variable
des anderen Knotens definiert.
-
MY_FHS_LIST:
Diese Variable, die als Matrix ausgeführt werden kann, enthält die aktuelle
Liste der Dateihierarchiesystem-Pakete
(File Hierarchy System (FHS)-Pakete) des oder der Knoten, welche die
Einheit x bis zu diesem Zeitpunkt zur Kenntnis genommen hat, einschließlich des
eigenen Pakets. Diese Liste kann zum Beispiel Einträge der folgenden
Art enthalten:
-
-
OTHER_FHS_LIST:
Bei einer Punkt-zu-Punkt-Verbindung ist diese Variable, die als Matrix
ausgeführt
werden kann, als die MY_FHS_LIST des anderen Knotens definiert.
Diese Liste enthält
wie zuvor definiert Elemente des Typs FHSInfo.
-
4 ist
ein logisches Flussdiagramm (400), das gemäß der vorliegenden
Erfindung die Operationen und Zustandsübergänge jedes Knotens in einem anschaulichen
Beispiel der Phase I zeigt. In 4 beginnt
jeder Knoten vorzugsweise in einem Zustand INITIALISIEREN (INITIALIZE)
(410), wobei eine Variable MY_VOTES = 1 (411)
gesetzt wird. Im Zustand INITIALISIEREN (410) wird bevorzugt
ein FHSInfo-Eintrag zu einer Matrix MY_FHS_LIST (412) hinzugefügt, die
eine Bluetooth-Adresse und Taktdaten eines bestimmten Knotens enthält. Der
Listen-Eintrag MY_FHS_LIST[0] enthält vorzugsweise die Bluetooth-Adresse
und Taktdaten des Knotens x. Außerdem
setzt der Knoten x vorzugsweise die lokale Variable MY_ID der MY_FHS_LIST[0].adress
(413) gleich. Vor Verlassen des Zustands INITIALISIEREN (410)
wird vorzugsweise der Zeitgeber für das Zeitlimit (203 in 2),
der im Verfahren WECHSEL verwendet wurde, gestartet, und die Einheit
geht wie zuvor im Zusammenhang mit 2 beschrieben
anschließend
in den vollständigen
Zustand WECHSEL (200) über.
-
Weiterhin
mit Bezug auf 4 bauen zwei beliebige sich
entdeckende Knoten x und y vorzugsweise eine Punkt-zu-Punkt-Verbindung auf und
verlassen beide den Zustand WECHSEL (200) durch den Ausgangspunkt
(output oder exit point) (216). Beim Aufbau der Verbindung
treten die beiden Knoten x und y vorzugsweise in einen „Eins-gegen-Eins-Kampf", um zu ermitteln,
welcher der beiden Knoten der „Obsiegende" ist. So umfasst
der Kampf zwischen den Knoten x und y (422 und 423) zum
Beispiel einen Datenaustausch (420) bezüglich der Variablen MY_VOTES
und MY_ID. Jede Einheit vergleicht (430) nacheinander ihre
Variable MY_VOTES mit ihrer Variable MY_ID (die wiederum der Variable
MY_VOTES der anderen Einheit gleich gesetzt ist). Sind die zwei
Variablen gleich (431), dann wird vorzugsweise hinsichtlich
der Variablen MY_ID der beiden Knoten ein weiterer Vergleich (440)
durchgeführt,
und der Knoten mit der größeren ID
obsiegt in diesem Kampf. Sind jedoch die beiden Variablen MY_VOTES
und OTHER_VOTES nicht gleich (432), wird vorzugsweise ein
weiterer Vergleich (450) durchgeführt, und die Einheit mit einer größeren Anzahl
an Stimmen (451) obsiegt in dem Kampf.
-
Es
wird angenommen, dass Einheit x im Beispiel von 4 als
die obsiegende Einheit ermittelt wurde. Die unterlegene Einheit
y (442 oder 452) führt vorzugsweise bestimmte
Zwischenaufgaben (460) durch, bevor sie in einen Zustand
FUNKRUF-SUCHLAUF (PAGE SCAN) (480) übergeht. Die Zwischenaufgaben
(460) umfassen das Senden (461) ihrer MY_FHS_LIST
an die obsiegende Einheit x, das Setzen einer Variable MASTERS_COUNT
auf Null (462) und das Trennen der Verbindung mit Einheit
x (463). Nach Übergang
in den Zustand FUNKRUF-SUCHLAUF (480) ist die unterlegene
Einheit y nicht mehr in der Lage, auf ANFRAGE-Nachrichten zu reagieren, sondern
antwortet nur auf Funkruf-Nachrichten von Knoten, die von ihr Kenntnis
haben und in Zukunft nach ihr suchen werden. Dies führt im Wesentlichen dazu,
dass dieser Knoten von dem Wettkampf der Prozedur der Koordinatorwahl
ausgeschlossen ist und auf Phase II des neuen Bluetooth-Netzwerkaufbauprotokolls
der vorliegenden Erfindung vorbereitet wird.
-
Die
obsiegende Einheit x (441 oder 451) führt vorzugsweise
bestimmte Aufgaben (470) durch, zu denen der Empfang der
MY_FHS_LIST der unterlegenen Einheit in der lokalen Variablen OTHER_FHS_LIST
(471) und anschließendes
Anhängen
dieser Liste an ihre aktuelle MY_FHS_LIST (472) gehören können. Die
obsiegende Einheit x erhöht
ebenfalls vorzugsweise ihren aktuellen Wert MY_VOTES um einen Wert,
der gleich dem Wert OTHER_VOTES ist, bevor die Verbindung mit der unterlegenen
Einheit y endgültig
getrennt (473) und der Zeitgeber für das Zeitlimit erneut gestartet
wird (474). Die obsiegende Einheit x geht dann vorzugsweise
in den Zustand WECHSEL (200) über, um das Verfahren (400)
zu wiederholen, bis schließlich
alle teilnehmenden Knoten im Netzwerk bekannt sind. Deshalb befindet
sich bei Abschluss der Phase I nur eine Einheit im Zustand WECHSEL
(200) und verlässt
diesen Zustand durch den Ausgangspunkt (output point) (217),
wenn das Zeitlimit ALT_TIMEOUT überschritten
wurde (und angezeigt wird, dass keine weiteren zu entdeckenden Knoten
vorhanden sind). Zu diesem Zeitpunkt nimmt die verbleibende Einheit an,
dass sie der gewählte
Koordinator ist und startet anschließend Phase II, indem sie in
den Zustand FÜHRER
(LEADER) (490) übergeht.
Es ist zu beachten, dass das Zeitlimit ALT_TIMEOUT (220 in 2) so
gewählt
werden sollte, dass garantiert ist, dass bei Abschluss nur ein Knoten
zum Koordinator gewählt wurde.
-
Phase II: Rollenermittlung
-
Bei
Abschluss der Phase I ist der Obsiegende des gesamten Wettkampfes
der Koordinator, und die übrigen
Knoten verbleiben vorzugsweise in einem Zustand FUNKRUF-SUCHLAUF
(480) und warten, dass nach ihnen gesucht wird. Der Koordinatorknoten
und die Knoten im Zustand FUNKRUF-SUCHLAUF (480) führen im
Allgemeinen verschiedene Operationen durch.
-
Mehrere
Variablen und damit verbundene Funktionen sind für die Anwendung der vorliegenden Erfindung
vorzugsweise definiert. Die in Phase II vom Koordinatorknoten verwendeten
Variablen umfassen vorzugsweise:
-
N:
Diese Variable steht für
die Anzahl der in Phase I entdeckten Knoten.
-
P:
Diese Variable steht für
die Anzahl der Master, die das aufgebaute Scatternet umfassen wird.
-
BRIDGELIST(i)
und SLAVELIST(i): Für
jeden Master i des aufgebauten Pikonetzes speichern die Listenpaare
BRIDGELIST(i) und SLAVELIST(i), die als Tiefenmatrix i ausgeführt werden
können,
vorzugsweise die Identitäten
der jeweiligen Brückenknoten
und die der Slaveknoten, die dem Masterknoten i zugeordnet wurden.
-
MASTERS:
Diese Variable ist eine Liste der Größe P, die vorzugsweise Einträge des Typs
FHSInfo speichert und vom Koordinator zugewiesene Master beinhaltet.
-
HeadPacket:
Dies ist ein Datenpaket, das zu Beginn eines jeden Verfahrens zum
Verbindungsaufbau vorzugsweise von einem Masterknoten an einen Slaveknoten
gesendet wird. In der bevorzugten Ausführungsform weist dieses Paket
den Slaveknoten an, sich nach den Vorgaben zweier Bits zu verhalten, nämlich:
HeadPacket.Mbit – Ist dieses
Bit gleich „1", zeigt dies, dass
der Knoten, der das HeadPacket empfängt, im aufgebauten Scatternet
ein vom Koordinator zugewiesener Masterknoten ist; und
HeadPacket.Bbit – Ist dieses
Bit gleich „1", zeigt dies, dass
der Knoten, der das HeadPacket empfängt, im aufgebauten Scatternet
ein vom Koordinator zugewiesener Brückenknoten ist.
-
5 ist
ein logisches Flussdiagramm (500), das die Operationen
eines Koordinatorknotens während
Phase II des Bluetooth-Netzwerkaufbauprotokolls der vorliegenden
Erfindung zeigt.
-
Außerdem ist 6 ein
logisches Flussdiagramm (600), das die Operationen eines
Knotens zeigt, der bei Abschluss der Phase I in den Zustand FUNKRUF-SUCHLAUF übergegangen
ist. 6 dient als Referenz, wenn im Folgenden Phase
II und Phase III beschrieben werden.
-
In 5 ordnet
der Master oder Anführer
zu Beginn die Anzahl der Knoten N so zu, dass sie der Variablen
MY_VOTES entsprechen (490). Dann ermittelt der Koordinator,
ob der Wert von N geringer als acht (8) ist (520). Ist
dies der Fall (521), ist nur ein einzelnes Pikonetz mit
einem als Master fungierenden Koordinator erforderlich, womit die
Notwendigkeit für
Brückenknoten
zu anderen Pikonetzen entfällt.
-
Im
Fall eines einzigen Pikonetzes (d. h., wenn N geringer oder gleich
acht ist), sucht und verbindet der Koordinator vorzugsweise alle
N Knoten (530), die sich im Zustand FUNKRUF-SUCHLAUF befinden,
bevor das Verfahren der Phase II endgültig beendet wird (550).
Während
eines Wiederholungsintervalls j, das vorzugsweise gleich eins (1)
gesetzt wird (525), sucht und verbindet der Koordinator
vorzugsweise eine Slave-Einheit, die der Adresse MY_FHS_LIST(j)
entspricht (525), setzt die Mbit und Bbit Bits des Datenpakets
HeadPacket jeweils gleich null (0), (541 und 542),
und sendet dieses Paket als erstes Datenpaket an den Slave (543).
Ein Wiederholungszeiger wird dann um eins erhöht (544) und anschließend gemessen,
um zu ermitteln, ob das nächste
Wiederholungsintervall j geringer ist als die Anzahl der Knoten
N (510). Die Schritte für
Suchen/Verbinden und Paketinitialisierung (530, 540) werden
vorzugsweise so lange wiederholt wie das Wiederholungsintervall
j geringer als N bleibt (511). Sobald das Wiederholungsintervall
j gleich der Anzahl der Knoten N ist oder diese überschreitet (512) (d.
h., auf alle Einheiten in der Liste MY_FHS_LIST wurde vom Koordinator
zugegriffen), geht der Koordinator in den Zustand MASTER-ENDE (550) über und beendet
damit die Phase II des Verbindungsaufbauprotokolls (550).
Der Koordinator arbeitet danach als Master im Zustand VERBINDUNG.
Daraus folgt, dass gemäß dem oben
beschriebenen Verfahren der vorliegenden Erfindung ein Pikonetz
mit einem Koordinator, der als Master fungiert, aufgebaut werden kann,
in dem alle anderen Knoten als Slaves fungieren.
-
Ist
in 5 die Anzahl der Knoten N größer als acht (522),
kann der Koordinator mit seinem umfassenden Blick auf das Netzwerk
entscheiden, welcher Knoten im aufgebauten Scatternet welche Rolle einnehmen
soll. Die Entscheidung bezüglich
der Rolle steht in engem Zusammenhang mit den Kriterien für den Aufbau
eines Bluetooth-Scatternet. So können
beispielsweise verschiedene Anwendungen ermöglichen, dass der gleiche Knoten
als Master oder als Slave fungiert. Ein Knoten kann außerdem aufgrund
seiner eigenen Beschaffenheit restriktivere Gradeinschränkungen
aufweisen. So ist es sehr wahrscheinlich, dass ein Palm Pilot nicht
die erforderliche Verarbeitungskapazität hat, um Master eines Pikonetzes
mit sieben Slaves zu sein, es sei denn, die anderen Knoten im Pikonetz
verfügen über eine
geringere Verarbeitungskapazität
als der Palm Pilot. Diese Einschränkungen können dem Anführer oder Koordinator
während
des Wahlvorgangs mitgeteilt werden, und sie können dem Koordinator helfen,
die Rollen der im aufgebauten Scatternet teilnehmenden Knoten zuzuordnen.
Sind keine weiteren (oder überhaupt
keine) Einschränkungen
vorhanden, kann eine Standardtechnik zur Rollenermittlung angewendet werden:
- – Bei
einer Anzahl von teilnehmenden Knoten N muss das aufgebaute Scatternet
sofern möglich die
Mindestanzahl der Pikonetze (und damit die der Master) umfassen.
- – Das
aufgebaute Scatternet muss vollständig verbunden sein. Das bedeutet,
dass jeder Master mit allen anderen Mastern vorzugsweise über Brückenknoten
verbunden sein muss.
-
Es
gilt zu beachten, dass die oben beschriebenen Standardkriterien
für die
Rollenzuordnung rein illustrativ sind und gemäß der vorliegenden Erfindung leicht
geändert
werden können.
-
Eine
Mindestanzahl von Masterknoten oder Pikonetzen P für ein vollständig verbundenes
Bluetooth-Scatternet kann mit der folgenden Gleichung berechnet
werden (561):
-
-
Wie
aus der oben genannten Gleichung ersichtlich, funktioniert die Standardtechnik
aufgrund der vollständigen
Verbundenheit und der Notwendigkeit einer Mindestanzahl von Pikonetzen
für eine
Anzahl von Knoten N, die größer oder
gleich null ist und geringer oder gleich 36. Eine größere Anzahl
von Knoten kann zu einer standardmäßigen Herangehensweise führen, die
nicht zu einer vollständigen Verbundenheit
des Scatternet führt.
-
In 5 bestimmt
das Protokoll der Phase II der vorliegenden Erfindung vorzugsweise,
welche Knoten Master-, Brücken-
oder Slave-Knoten sein müssen
(560). Nach Berechnung von P (561) wählt der
Koordinator P – 1
Knoten (sich selbst nicht inbegriffen) als Masterknoten (562)
(die vorzugsweise in der Variable MASTERS gespeichert werden) und
P(P – 1)/2
andere Knoten als Brückenkoten
des Netzwerks. Vorzugsweise ordnet der Koordinator den Mastern gleichmäßig die
verbleibenden Knoten als ihre „reinen" Slaves im Block
zu (580). Nach der Zuordnung von Masters, Slaves und Brücken berechnet der
Koordinator vorzugsweise eine BRIDGE_LIST(0) und eine SLAVES_LIST(0)
und ordnet diese sich selbst zu (563), da er in Phase III
des vorliegenden Protokolls als Master arbeiten wird. Dann wird
vorzugsweise ein Zeiger für
das Wiederholungsintervall oder ein Zähler j gestartet, wobei j gleich
eins (1) ist (564).
-
Während jeder
Wiederholung j sucht und verbindet der Koordinator nacheinander
eine Einheit, die durch eine Adresse MASTERS(j).address repräsentiert
wird (570). Es ist zu beachten, dass sich bei Abschluss
der Phase I alle verbleibenden Knoten im Zustand FUNKRUF-SUCHLAUF
(480) befanden (vgl. 4). Während der
Wiederholung j berechnet der Koordinator vorzugsweise eine weitere BRIDGE_LIST(j)
und SLAVES_LIST(j) (581) und setzt die Mbit und Bbit Bits
des Datenpakets HeadPacket jeweils auf 1 und 0 (582 und 583).
Dieses Paket wird dann als erstes Datenpaket an die Einheit MASTERS(j).address
gesendet (584). Die Listen BRIDGE_LIST(j) und SLAVES_LIST(j)
werden ebenfalls vorzugsweise an die Einheit MASTERS(j).address
gesendet, bevor der Koordinator sich selbst von der Einheit trennt
(586).
-
Nachdem
der Koordinator sich von der Einheit MASTERS(j).address getrennt
hat, erhöht
er vorzugsweise den Wiederholungszeiger j um eins (587) und
nimmt dann eine Überprüfung vor
(590), um zu ermitteln, ob die Zahl der Wiederholungen überschritten
wurde (z. B. wenn j größer oder
gleich P – 1
ist). Wurde die Zahl überschritten
(591) und zeigt er an, dass auf alle Einheiten in der Liste
MASTERS zugegriffen wurde, geht der Koordinator vorzugsweise in einem
Zustand START MASTER (599) in Phase III über. Wurde
die Zahl der Wiederholungen j nicht überschritten (592),
wird die Prozedur des Suchens und Verbindens (570) und
die entsprechende Paket- und Listenübertragung (580) für das nächste Wiederholungsintervall
durchgeführt
(d. h. j + 1), bis eine solche Bedingung (j < P – 1) nicht länger zutrifft.
-
In 6 wird
nun während
der Wiederholung j die Einheit x, die der Adresse MY_FHS_LIST(j).address
entspricht, vorzugsweise gesucht (480) und als ein Slave
mit dem Koordinator verbunden (601). Nach Aufbau der Verbindung
empfängt
der Koordinator von der Einheit x vorzugsweise das HeadPacket (605),
das aus der Übertragung
des Koordinators (543) stammt (vgl. 5). Das
Paket HeadPacket von der Einheit MY_FHS_LIST(j).address wird dann überprüft, um den
Wert des Mbit Bit zu ermitteln (610). Da dieses Bit im
Initialisierungsschritt gleich null (0) gesetzt wurde (541)
(vgl. 5), veranlasst der Kontrollpfad (612)
den Koordinator dann vorzugsweise dazu, den Wert des Bbit Bit zu überprüfen (620).
Da auch hier das Bbit im Initialisierungsschritt gleich null (0)
gesetzt wurde (542) (vgl. 5), veranlasst
der Kontrollpfad (621) die Einheit x vorzugsweise dazu,
in den Zustand SLAVE-ENDE (630) überzugehen, wobei die Einheit
die Ausführung
des Verbindungsaufbauprotokolls beendet hat und aktuell als Slave
im Zustand VERBINDUNG operiert.
-
Auf
der Seite der Master-Einheit wird während der Wiederholung j die
Einheit x, die der Adresse MASTERS(j).address entspricht, vorzugsweise gesucht
(480) und als ein Slave mit dem Koordinator verbunden (601).
Nach Aufbau der Verbindung empfängt
der Koordinator von der Einheit x vorzugsweise das HeadPacket (605),
das aus der Übertragung
des Koordinators stammt (584) (vgl. 5). Das
Paket HeadPacket von der Einheit x (d. h. MASTERS(j).address) wird
dann geprüft,
um den Wert des Mbit Bit zu ermitteln (610). Da dieses
Bit im Initialisierungsschritt (vgl. 5) auf eins
(1) gesetzt wurde (582), veranlasst der Kontrollpfad (611)
dann den Koordinator vorzugsweise dazu, die lokalen Listenvariablen
MY_BRIDGE_LIST und MY_SLAVES_LIST von der Einheit x zu empfangen (681),
die vom Koordinator während
Schritt 584 (vgl. 5) übertragen
wurden. Bei der durch den Koordinator ausgelösten Verbindungsbeendigung
(682) geht Einheit x vorzugsweise in einen Zustand START MASTER
(690) in Phase III über.
-
Phase III: Tatsächlicher
Verbindungsaufbau
-
In
Phase III beginnen die P Masterknoten vorzugsweise mit der Suche
und dem Verbinden mit den Slave- und Brückenknoten, die ihnen vom Koordinatorknoten
während
der Phase der Rollenzuordnung (Phase II) zugeordnet wurden. Wie
im Beispiel des logischen Flussdiagramms (700) in 7 gezeigt,
beginnt die Tätigkeit
des Masterknotens im Zustand START MASTER (702), welcher
der gleiche ist wie 599 oder 690 (vgl. 5 und 6).
Gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung verbindet sich die Mastereinheit vorzugsweise
zunächst
mit seinen reinen Slave-Einheiten, anschließend verbindet sich der Masterknoten
vorzugsweise mit seinen Brücken-Einheiten.
Im Folgenden wird ein beispielhaftes Verbindungsprotokoll genauer beschrieben.
-
In 7 sucht
und verbindet sich die Mastereinheit während einer Wiederholung j,
die zu Beginn gleich eins (1) gesetzt wird (710), vorzugsweise
mit einer Einheit, die durch die Adresse MY_SLAVES_LIST(j).address
repräsentiert
wird (720). Nach Aufbau der Verbindung setzt der Master vorzugsweise
sowohl das Mbit Bit des Datenpakets HeadPacket (731) als
auch das Bbit Bit des Datenpakets HeadPacket gleich null (732)
und sendet dieses Paket als erstes Datenpaket an die Einheit MY_SLAVES_LIST(j).address
(733). Nach Übertragung
des Datenpakets wird der Wiederholungszeiger j vorzugsweise um eins
(1) erhöht
(734) und geprüft (740),
um zu ermitteln, ob sein Wert geringer ist als die Länge der
Liste MY_SLAVES_LIST. Solange die Zahl der Wiederholungen geringer
ist als die Länge der
Liste MY_SLAVES_LIST, wird das Suchen/Verbinden (720) und
die Paketinitialisierung/Übertragung
(730) vorzugsweise für
die nächste
Wiederholung erneut durchgeführt
(742).
-
Während jeder
Wiederholung j wird die Einheit MY_SLAVES_LIST(j).address gesucht
(480) und mit dem Koordinator verbunden (601)
und empfängt das
HeadPacket (605) aus der Übertragung (733) des
Koordinators, wie oben bereits in ähnlicher Form in Zusammenhang
mit 6 beschrieben. Die Einheit MY_SLAVES_LIST(j).address
folgt dann dem Kontrollpfad (610, 620, 621)
(da sowohl das Mbit und Bbit zuvor gleich null gesetzt wurden) und
geht in den Zustand SLAVE-ENDE (630) über, wobei angezeigt wird,
dass die Einheit die Ausführung
des Verbindungsaufbauprotokolls beendet hat und aktuell als Slave
im Zustand VERBINDUNG operiert.
-
Sobald
die Zahl der Wiederholungen j gleich der Länge der Liste MY_SLAVES_LIST
ist oder diese überschreitet
(741), wobei dies bedeutet, dass der Master alle teilnehmenden
Slave-Knoten verbunden hat, beginnt der Master vorzugsweise, seine
Brückenknoten
in ähnlicher
Weise zu verbinden. Insbesondere während der Wiederholung j, die
zu Beginn erneut auf eins (1) gesetzt wird (745), sucht
und verbindet sich der Master vorzugsweise mit der Einheit, die
der Adresse MY_BRIDGES_LIST(j).address entspricht (750),
setzt die Mbit und Bbit Bits des Datenpakets HeadPacket auf 0 und
1, (jeweils 761, 762) und sendet dieses Paket
als erstes Datenpaket an die Einheit MY_BRIDGES_LIST(j).address
(763). Der Wiederholungszähler j wird dann vorzugsweise um
eins (1) erhöht
(764) und überprüft (770),
um zu ermitteln, ob die Zahl der Wiederholungen die Länge der
Liste MY_BRIDGES_LIST(j).address überschritten hat. Die Verfahren
Suchen/Verbinden (750) und Dateninitialisierung/Übertragung
(760) werden vorzugsweise wiederholt (772), bis
die Zahl der Wiederholungen j gleich der Länge der Liste MY_BRIDGES_LIST
ist (771) oder diese überschritten
hat und angezeigt wird, dass der Master sich mit allen teilnehmenden
Brückenknoten
verbunden hat.
-
Wenn
sich die Mastereinheit mit allen Einheiten in seiner MY_BRIDGES_LIST
verbunden hat (771), wartet der Master vorzugsweise, bis
alle Einheiten in der Liste einen Wert MASTER_COUNT gleich zwei
(2) gesendet haben (780). Sobald diese Bedingung eintritt,
geht der Koordinator vorzugsweise in einen Zustand MASTER-ENDE über (790),
wobei die Einheit die Ausführung
des Verbindungsaufbauprotokolls beendet hat und aktuell als Master
im Zustand VERBINDUNG operiert.
-
In 6 wird
erneut während
jeder Wiederholung j die Einheit MY_BRIDGES_LIST(j).address gesucht
(480) und verbunden (601) und empfängt das
HeadPacket von der Übertragung
(763) des Koordinators (605) in 7.
Die Einheit MY_BRIDGES_LIST(j).address folgt vorzugsweise dem Kontrollpfad 610, 612, 620, 622,
da im Paket HeadPacket das Mbit Bit gleich null (0) gesetzt ist (761)
und das Bbit Bit gleich eins (1) gesetzt ist (762) (vgl. 7).
Der Wert der Variable MASTERS_COUNT, der zu Beginn gleich null gesetzt
wurde (462 in 4), wird vorzugsweise um eins
(1) erhöht
(641), und die Mastereinheit wird zu der MY_MASTERS_LIST
des Koordinators hinzugefügt
(640). Wenn bei der Überprüfung der
Variable MASTER_COUNT (650) die Einheit als erster Master ermittelt
wird, der sich mit der Slave-Einheit verbindet (652), wird
erneut in den Zustand FUNKRUF-SUCHLAUF (480) übergegangen,
um mit einem zweiten Master verbunden zu werden. Ist hingegen die
Einheit der zweite Master (z. B. MASTER_COUNT = 2), mit dem die
Slave-Einheit verbunden wurde, sendet die Einheit MY_BRIDGES_LIST(j).address
vorzugsweise die Variable MASTERS_COUNT, die aktuell gleich zwei
(2) sein sollte, an beide Master, die sich in ihrer Liste MY_MASTERS
befinden (660). Dies kann erfolgen, indem zuerst die Variable MASTERS_COUNT
an die Einheit x gesendet wird (661), dann das Pikonetz
gewechselt wird (662) und anschließend die Variable MASTERS_COUNT
an die Einheit MY_MASTERS(0) gesendet wird (663). Schließlich geht
die Einheit MY_BRIDGES_LIST(j).address in einen Zustand BRÜCKE-ENDE
(670) über,
wobei die Einheit die Ausführung
des Verbindungsaufbauprotokolls beendet hat und aktuell als Brückenknoten
im Zustand VERBINDUNG operiert.
-
Protokollbeendigung:
Wenn alle Master eine Nachricht MASTER_COUNT = 2 von all ihren zugeordneten
Brücken
empfangen haben, ist garantiert, dass im Wesentlichen ein vollständig verbundenes Scatternet
mit P Pikonetzen aufgebaut worden ist, und das Protokoll der vorliegenden
Erfindung, wie hier beschrieben, kann somit enden. Zu diesem Zeitpunkt
arbeitet bevorzugt jeder Knoten entweder als Master, Slave oder
Brücke
im Zustand VERBINDUNG.
-
In 8 wird
nun ein Blockschaltbild gezeigt, das eine allgemeine Hardwarearchitektur
einer typischen Bluetooth fähigen
Einheit (800) für
eine Realisierung der verschiedenen funktionalen Komponenten/Module
des drahtlosen Protokolls zur Verbindung von Einheiten, das in den
Figuren dargestellt ist und hier beschrieben wird, darstellt. Wie
gezeigt worden ist, kann die Einheit (800) mit einer Ausführungseinheit
oder einem Prozessor (802), einem Speicher (804)
und Eingabe/Ausgabeeinheiten (806) realisiert werden. Es
gilt zu beachten, dass der Begriff „Prozessor", wie er hier verwendet wird, so zu
verstehen ist, dass er irgendeine Ausführungseinheit einschließt (d. h.
digitaler Signalprozessor, Microcontroller, usw.), z. B. eine, die
eine Zentraleinheit (central processing unit, CPU) und/oder Verarbeitungsschaltkreise
umfasst. Der Begriff „Speicher", wie er hier verwendet
wird, ist so zu verstehen, dass er einen Speicher im Zusammenhang
mit einem Ausführungseinheit
oder einer CPU umfasst, wie beispielsweise ein Direktzugriffspeicher
(RAM), Festwertspeicher (ROM), ein fest installiertes Speichergerät (z. B. Festplatte),
ein Wechselspeicher (z. B. eine Diskette), Flash-Speicher, usw.
Außerdem
ist der Begriff „Eingabe-/Ausgabe-Einheiten", wie er hier verwendet wird,
so zu verstehen, dass er beispielsweise ein oder mehrere Eingabegeräte (z. B.
Maus, Tastatur, usw.) umfasst, um Daten in die Ausführungseinheit einzugeben,
und/oder ein oder mehrere Ausgabegeräte (z. B. Bildschirmanzeige,
Drucker, usw.), um Ergebnisse im Zusammenhang mit der Ausführungseinheit
präsentieren
zu können.
Es gilt auch zu beachten, dass sich der Begriff „Prozessor" auf mehr als eine Einheit beziehen
kann und dass verschiedene Elemente im Zusammenhang mit der Ausführungseinheit
von anderen Einheiten mitgenutzt werden können.
-
Demzufolge
können
Software-Komponenten einschließlich
Anweisungen oder Codes für
die Durchführung
der Verfahrensweisen der Erfindung wie hier beschrieben in einem
oder mehreren der damit zusammenhängenden Speichergeräten gespeichert
werden (z. B. ROM, fest installierter oder Wechselspeicher) und
können,
wenn sie zur Nutzung bereit sind, vollständig oder teilweise geladen
(z. B. in RAM) und durch die CPU ausgeführt werden.