LE Devices finden andere LE Devices durch das Senden und Empfangen von Advertiser Events auf drei Advertiser-Kanälen. Diese Events werden von Devices in der Broadcaster- oder Peripheral-Rolle gesendet. Devices, die in der Observer- oder Central-Rolle sind, empfangen diese Events durch das Absuchen der Advertiser-Kanäle. Hierbei gibt es verschiedene Advertising und Scanning PDUs (Physical Data Units). Einige dieser PDUs (ADV_IND, ADV_NONCONN_IND, ADV_SCAN_IND und SCAN_RSP) können bis zu 31 Bytes Anwendungsdaten senden. Die ADV_NONCONN_IND PDU wird nur für Broadcast verwendet - dabei wird keine Verbindung aufgebaut.
Das Timing dieser States und Rollen wird vom Host gesetzt und ist im Generic Access Profile (GAP) definiert. Ein Advertiser sendet periodisch (Intervall liegt zwischen 20 ms und 10,24 s) auf den Advertising-Kanälen (Frequenzen) sogenannte Advertiser Events. Das Timing für den Scanner (Empfänger von Advertiser Events) ist abhängig von den Einstellungen des Connectable Mode. Ein typischer Wert liegt für die Wiederholung alle 1,28 s für 11,25 ms Dauer. Längere Intervalle und Scanning-Perioden sind - innerhalb gewisser Grenzen - möglich. Es ist wichtig zu berücksichtigen, dass diese Einstellungen einen direkten Einfluss auf den Stromverbrauch und die Zeit für den Verbindungsaufbau haben.
Devices verwenden eine 48-bit-Adresse, welche Public (inklusive Vendor ID) oder Random ist. Eine Random-Adresse ist entweder statisch oder privat. Erstgenannte ist konstant für einen Power-Zyklus, d.h. nach einem Power OFF/ON-Zyklus hat sich diese Adresse geändert. Eine private Random-Adresse ist typischerweise eine auflösbare (resolvable) Adresse, die periodisch geändert werden kann. Damit kann die Sicherheit im System erhöht werden.
Bluetooth LE unterstützt auch eine „White List”. Diese Liste wird vom Controller (Basisband) verwaltet und enthält Adressen (je nach Controller bis zu acht) von den Geräten, von denen Daten angenommen werden können. Verbindungsanforderungen von allen anderen Geräten werden abgelehnt. Da das direkt im Link Layer passiert, wird die Host CPU nicht durch ungewünschte Verbindungsanforderungen aktiviert. Damit kann der Stromverbrauch reduziert werden. Bluetooth Dual-Mode Devices verwenden übrigens für Bluetooth Classic und LE eine Adresse (BD_ADDR).
Datenübertragung in Bluetooth LE
Aktuell unterstützen die meisten Bluetooth-LE-Anwendungen sogenannte Point-to-Point-Verbindungen. Mehrere gleichzeitige Verbindungen von einem Controller sind heute mit den meisten aktuellen Controllern nicht möglich. Dual-Mode-Controller z.B. in Mobiltelefonen, Tablets und PCs können in der Regel mehrere Verbindungen gleichzeitig halten. Das wird aber von den Entwicklungsplattformen nicht unterstützt, so dass die meisten Anwendungen nur auf der Übertragung der Daten eines Sensors basieren und nur Point-to-Point-Verbindungen unterstützen.
Die Lieferung der mittels Broadcaster übertragenen Daten ist nicht garantiert, d.h. unzuverlässig, denn es gibt dabei kein Acknowledgement von dem Device, welches die Daten empfängt.
Die Datenübertragung über aufgebaute Verbindungen (zwischen Peripheral und Central) verwendet Acknowledgement auf dem Link Layer (Funkschnittstelle) und Sequenznummern. Mit dieser Methode ist die Erkennung von Paketverlusten möglich.
Bluetooth LE unterstützt keine hohen Datenraten. Die maximale Nutzlast in einem Paket beträgt 27 Bytes. Theoretisch ist eine Datenrate von ~300 kbit/s möglich. Aktuelle Datenraten liegen bei 40 bis 100 kbit/s.
Es gibt eine Reihe von Verbindungsparametern, die das Verhalten eine Bluetooth LE Device bei der Verbindung bestimmen: Das Connection Interval definiert eine Periode von 7,5 ms bis zu 4 s in 1,25-ms-Schritten. In diesem Intervall werden Daten zwischen Peripheral und Central Devices übertragen.
Die Slave Latency definiert die Zeit bzw. die Anzahl der Connection Events, die ein Slave Device auslassen kann. Das ist hilfreich, wenn ein Peripheral Device keine Daten zu senden hat. Es können bis zu 499 Connection Events (entspricht maximal 32 s) ausgelassen werden. Wenn nicht in jedem Connection Interval Daten gesendet werden, führt das zu einem reduzierten Stromverbrauch.
Das Supervision Timeout definiert den Ablauf der Zeit (bzw. Anzahl der Connection Events), nach der ein Verbindungsabbruch erkannt wird.
Mit diesen Werten ist es möglich, das maximale Connection Interval zu definieren. Dieses basiert auf dem Connection Interval und der Slave Latency. Ein Beispiel: Wenn das Connection Interval 200 ms und die Slave Latency 3 Slots sind, so beträgt das maximale Connection Interval 200 × (1+3) und damit 800 ms.
In vielen Anwendungen lässt der Slave einige Connection Events aus. Es ist wichtig, dieses Verhalten und die Auswirkungen auf das Gesamtsystem hinsichtlich des Zeitverhaltens zu kennen. Ein verlängertes Connection Interval bedeutet einen reduzierten Datendurchsatz, eine größere Verzögerung beim Senden und einen reduzierten Stromverbrauch. Der Master hat die Möglichkeit, den Start der Datenübertragung mit dem Parameter transmitWindowSize (1,25 ms bis zu 10 ms) zu steuern. Das erlaubt dem Master die Steuerung der Datenübertragung in Abhängigkeit von anderen Aktivitäten.
Die meisten Bluetooth LE Devices haben eine Standard-Sendeleistung von 0 dBm (1 mW). Damit kann man eine Entfernung von ca. 10 m bei Sichtverbindung überbrücken. Bluetooth LE unterstützt im Gegensatz zu Bluetooth Classic übrigens keine automatische Anpassung der Sendeleistung. Bei praktisch allen Controllern kann man aber die Sendeleistung als Teil der Chip-Initialisierung anpassen.