Entfernungsmessung: Out-of-Band-Spezifikation Version 3

Mit Android 16 wurde das Ranging-Modul eingeführt. Dieses Protokoll und diese Nutzlastspezifikation definieren die Nachrichtenfolge und die Nutzlast der Out-of-Band-Kommunikation (OOB), die zum Austausch von Konfigurationen für die Entfernungsmessung sowie zum Starten und Beenden der Entfernungsmessung zwischen dem Initiator- und dem Responder-Gerät verwendet wird. Mit Android 17 wird Version 3 dieser Spezifikation eingeführt.

Auf dieser Seite können Anbieter von Nicht-Android-Geräten diese Spezifikation implementieren, damit ihre Geräte mit Android-Geräten kompatibel sind.

Eine Implementierung dieser Spezifikation in der Paketbeschreibungssprache (Packet Description Language, PDL) von Google ist auf GitHub verfügbar. Aus dieser Implementierung kann der PDL-Compiler Serialisierungs- und Deserialisierungscode für die in dieser Spezifikation definierten Nachrichten generieren. Diese Spezifikation unterstützt eine Vielzahl von Zielsprachen, darunter C++, Rust und Java.

Neu in Version 3

In Version 3 der OOB-Spezifikation werden die folgenden Änderungen eingeführt:

  • Bewegungsbenachrichtigung:Eine Nachricht, mit der das Gerät des Werbetreibenden das initiierende Gerät über eine Änderung der Bewegung informiert.
  • Konfiguration für die Entfernungsmessung:Enthält das neue Feld Motion support, mit dem der Initiator den Responder über Änderungen in der Bewegung des Peripheriegeräts vom Responder benachrichtigen kann.
  • Unterstützung für die neue Wi-Fi PD-Technologie in Ranging Capability (Entfernungsmessungsfunktion) und Ranging Configuration (Entfernungsmessungskonfiguration) hinzugefügt.
  • Die Felder Supported Bandwidth und Supported number of Receive chains in Wi-Fi NAN RTT Ranging Capability werden eingestellt.

Byte-Reihenfolge

Sofern nicht anders angegeben, sind alle numerischen Mehrbytefelder in den Nachrichten in Little-Endian-Reihenfolge.

Nachrichten und Nachrichtenfolge

In diesem Abschnitt werden die Nachrichten und die Reihenfolge des Nachrichtenaustauschs beschrieben.

In der folgenden Tabelle sind alle Nachrichten aufgeführt, die im OOB-Austausch enthalten sind:

Nachricht Nachrichten-ID
Ranging Capability Request 0x0
Ranging Capability Response 0x1
Ranging Configuration 0x2
Ranging Configuration Response (optional) 0x3
Stop Ranging 0x6
Stop Ranging Response (optional) 0x7
Motion Notification 0x8

Abbildung 1 und Abbildung 2 veranschaulichen, wie der Nachrichtenaustausch für verschiedene Kommunikationskanäle ausgelöst wird.

Bei verbindungsorientierten Kommunikationskanälen wie BLE GATT beginnt der Nachrichtenaustausch damit, dass das Initiatorgerät Ranging Capability Request an das Respondergerät sendet. Das Antwortgerät antwortet mit dem Senden von Ranging Capability Response, wie in Abbildung 1 dargestellt:

Ablauf des verbindungsorientierten Kommunikationskanals

Abbildung 1. OOB-Nachrichtenaustausch über einen verbindungsbasierten Kommunikationskanal.

Bei auf Werbung basierenden Kommunikationskanälen beginnt das Antwortgerät mit der Übertragung von Ranging Capability Response. In diesem Fall sendet das initiierende Gerät Ranging Capability Request nicht. Stattdessen antwortet das initiierende Gerät (initial scanner) nach dem Erkennen der Werbung, wenn es bereit ist, mit der Werbung von Ranging Configuration als erster Nachricht, wie in Abbildung 2 dargestellt:

Ablauf des werbebasierten Kommunikationskanals

Abbildung 2: OOB-Nachrichtenaustausch über eine werbebasierte Kommunikation.

Der Rest des Nachrichtenaustauschs ist in beiden Fällen identisch. Das Antwortgerät beginnt sofort nach dem Empfang der Ranging Configuration-Nachricht mit der Entfernungsmessung. Das Responder-Gerät beendet die Entfernungsmessung, nachdem es die Stop Ranging-Nachricht empfangen oder erkannt hat.

Im verbindungsbasierten Ablauf füllt das Antwortgerät nur die Funktionen der in der Ranging Capability Request-Nachricht angeforderten Ranging-Technologien aus. Im Broadcast-Ablauf muss das Antwortgerät alle seine Funktionen auflisten, da es keine vorherige Nachricht mit einer Funktionsanfrage gibt.

Das Initiatorgerät geht davon aus, dass es nur eine Antwort auf jede von ihm gesendete Anfragenachricht erhält. Das Antwortgerät darf keine solchen Annahmen treffen, damit es auf jede Anfrage in beliebiger Reihenfolge reagieren kann. Damit wird überprüft, ob das Responder-Gerät auf mehrere aufeinanderfolgende Ranging Capability Request-Nachrichten oder andere Nachrichten in falscher Reihenfolge vom Initiator-Gerät reagieren kann.

Technologieumstellung

Mit der OOB-Version können die Geräte während einer Sitzung dynamisch zwischen verschiedenen Ranging-Technologien wechseln. Dazu kann der Initiator Folgendes tun:

  • Senden Sie mehrere Ranging Configuration-Nachrichten, um neue Technologien zu starten.
  • Senden Sie mehrere Stop Ranging-Nachrichten, um aktive Technologien zu beenden.

Die Reihenfolge dieser Nachrichten hängt vom Übergangsschema ab, das vom Responder unterstützt wird:

  • Break-before-make:Der Initiator kann nur dann zu einer neuen Technologie wechseln, wenn er die erste mit einer Stop Ranging-Nachricht beendet, bevor er die zweite mit einer Ranging Configuration-Nachricht startet.
  • Make-before-break:Der Initiator kann eine neue Technologie mit einer Ranging Configuration-Nachricht starten, bevor er vorhandene Technologien mit einer Stop Ranging-Nachricht beendet.

Der Responder muss die Unterstützung für eines dieser Übergangsschemas gemäß dem Wert des Felds supported technology transitioning in seinem Ranging Capability Response implementieren.

IDs der Ranging-Technologie

Die IDs der Ortungstechnologien sind in der folgenden Tabelle aufgeführt:

Entfernungsmessungstechnologie ID
UWB 0x0
CS 0x1
WLAN-NAN-RTT 0x2
RSSI 0x3
WLAN‑PD 0x4
Für zukünftige Verwendung reserviert 0x5 – 0xFF

Diese IDs werden in den folgenden Tabellen verwendet, in denen die ID der Ortungstechnologie erforderlich ist. Bei Feldern, die das Bitfeld für die Entfernungsmessungstechnologie enthalten, wird ein Bit, das dem Index der ID der Technologie entspricht, festgelegt, wenn diese Technologie im Bitfeld enthalten ist.

RSSI hat beispielsweise den ID-Wert 3. Wenn RSSI jedoch im Bitfeld der Ortungstechnologie enthalten ist, muss das Bit mit der Position der ID (3) aktiviert werden (das erste Bit hat die Position 0). Der resultierende Wert des Bitfelds ist dann 0x8. Wenn sowohl UWB als auch RSSI enthalten sind, ist der Wert des Bitfelds 0x0A (sowohl Bit 0 als auch Bit 3 sind aktiviert).

Nachrichtenformat

Jede Nachricht besteht aus einem Header und einer Nutzlast.

Nachrichtenformat

Abbildung 3. Nachrichtenformat

Größe:2 Byte

Beschreibung:Der Header ist der erste Teil einer Nachricht und ist für alle Nachrichten gleich. Der Header enthält eine Version und die ID des Nachrichtentyps. Das Feld „version“ gibt die Version dieser Spezifikation an, der der Inhalt der Nachricht entspricht. Weitere Informationen zur Verwendung der Versionsverwaltung zwischen Geräten mit unterschiedlichen Versionen finden Sie unter Versionsverwaltung. Der Header ist über verschiedene Versionen hinweg abwärtskompatibel. Der Anwendungsfall kann ihn also immer parsen, um die Version und die ID der Nachricht zu ermitteln.

Der Header ist in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8 Version
  • 0x1 – V1
  • 0x2 – V2
  • 0x3 – V3
1 uint8 Nachrichten-ID
  • 0x0 – Ranging Capability Request-Nachricht
  • 0x1 – Ranging Capability Response-Meldung
  • 0x2 – Ranging Configuration-Meldung
  • 0x3 – Ranging Configuration Response-Nachricht (optional)
  • 0x6 – Stop Ranging-Meldung
  • 0x7 – Stop Ranging Response-Nachricht (optional)
  • 0x8 – Motion Notification-Nachricht
  • 0x4–0x5, 0x9 – 0xFF RFU

Nutzlast

Größe:Variiert (abhängig von der Art der Nachricht)

Beschreibung:Die Nutzlast ist der letzte Teil der Nachricht nach dem Header. Die Nutzlast hängt vom Typ der Nachricht ab. Das Format für die Nutzlast der einzelnen Nachrichtentypen wird in den folgenden Abschnitten definiert.

Nutzlast der Anfrage für die Entfernungsbestimmung

Größe (Headergröße nicht enthalten): 2 Byte

Beschreibung:Wird vom Initiatorgerät gesendet, um den Nachrichtenaustausch zu starten. Diese Nachricht ist optional, wenn der Kommunikationskanal auf Werbung basiert. In diesem Fall muss das Antwortgerät im ersten Schritt eine Ranging Capability Response-Nachricht senden. Das Initiatorgerät (anfänglicher Scanner) liest die Werbung und antwortet direkt mit einer Ranging Capability Request-Nachricht, sodass diese Nachricht nicht erforderlich ist.

Die Ranging Capability Request-Nachrichtennutzlast wird in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8*2 Bitfeld der angeforderten Technologien für die Entfernungsmessung
  • 0x01 – UWB
  • 0x02 – BLE-Kanal-Sounding
  • 0x04 – WLAN-NAN-RTT
  • 0x08 – BLE RSSI
  • 0x10 – WLAN-PD
  • Für zukünftige Verwendung reserviert

Nutzlast der Antwortnachricht für die Reichweitenbestimmung

Größe (Headergröße nicht enthalten): Variiert (gemeinsamer Teil 2 Byte plus die Größe der Byte für jede enthaltene Ranging-Technologie)

Beschreibung:Wird vom Antwortenden als Antwort auf eine Ranging Capability Request-Nachricht gesendet. Diese Nachrichtennutzlast besteht aus dem gemeinsamen Teil und den technologiebezogenen Teilen (BLE CS, Wi-Fi NAN RTT, BLE RSSI), wie in den folgenden Tabellen dargestellt. Jeder technologiebezogene Teil muss nur hinzugefügt werden, wenn die entsprechende Technologie vom Responder-Gerät unterstützt wird und in der Ranging Capability Request-Nachricht angefordert wird. Bei einem Werbekommunikationskanal müssen alle unterstützten Ranging-Technologien enthalten sein.

Die allgemeine Ranging Capability Response-Nachrichtennutzlast wird in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8*2 Bitfeld der unterstützten Ranging-Technologien. Gibt die Menge der Funktionen von Ortungstechnologien an, die im Rest der Nutzlast folgen.
  • 0x01 – UWB
  • 0x02 – BLE-Kanal-Sounding
  • 0x04 – WLAN-NAN-RTT
  • 0x08 – BLE RSSI
  • 0x10 – WLAN-PD
  • Für zukünftige Verwendung reserviert
2 Byte-Array Bytes für die Technologie zur Entfernungsmessung. Wiederholte Blöcke von Strukturen, die pro Technologie definiert sind.
Variabel uint8 Gibt an, dass Technologieübergänge unterstützt werden.
  • 0x00: Break-before-Make wird unterstützt.
  • 0x01: Make-before-break wird unterstützt. Der Responder kann mit mehreren Technologien gleichzeitig Entfernungen messen.
Variabel uint16 Gibt den Typ des Antwortgeräts an.
  • 0x00 – Unbekannt
  • 0x01 – Telefon
  • 0x02 – Tablet
  • 0x03 – Tag
  • 0x04 – Wearable
  • 0x05 – Hearable
  • Für zukünftige Verwendung reserviert

Die Nutzlast der UWB-Ranging Capability Response-Nachricht wird in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8 ID der Technologie zur Entfernungsmessung 0x0 – UWB
1 uint8 Größe Größe der UWB-Funktionen in Byte (einschließlich der Felder Technology ID und Size).
2 uint8*2 UWB-Adresse 2 Byte lange UWB-Adresse des Geräts.
4 uint8*4 Bitfeld für unterstützte Kanäle Bitfeld der unterstützten Channels. Wenn das Bit auf 0 gesetzt ist, wird die Funktion nicht unterstützt. Wenn es auf 1 gesetzt ist, wird sie unterstützt. Bit 0 entspricht Kanal 0.
LSB == channel 0
MSB == channel 31
8 uint8*4 Unterstütztes Bitfeld für den Preamble-Index Bitfeld der unterstützten Präambelindexe. Wenn das Bit auf 0 gesetzt ist, wird die Funktion nicht unterstützt. Wenn es auf 1 gesetzt ist, wird sie unterstützt. Bit 0 entspricht dem Präambelindex 1.
LSB == preamble index 1
MSB == preamble index 32
12 uint8*4 Bitfeld der unterstützten Konfigurations-IDs Bitfeld der unterstützten Konfigurations-IDs für UWB. Wenn das Bit auf 0 gesetzt ist, wird die Funktion nicht unterstützt. Wenn es auf 1 gesetzt ist, wird sie unterstützt.
LSB == config Id 0
MSB == config Id 31
16 uint8*2 Unterstütztes minimales Intervall für die Entfernungsmessung Gibt das schnellste unterstützte Entfernungsintervall in Millisekunden an. Zulässige Werte (in Millisekunden):
  • 96
  • 120
  • 240
  • 600
18 uint8 Unterstützte Mindestdauer von Slots Gibt die kleinste unterstützte Slotdauer in Millisekunden an. Wenn das Gerät beispielsweise 1 ms zurückgibt, wird davon ausgegangen, dass es auch Slot-Dauern von 2 ms oder höher unterstützt. Zulässige Werte (in Millisekunden):
  • 1
  • 2
19 Unterstütztes Bitfeld für die UWB-Geräterolle Bitfeld der unterstützten UWB-Rollen. Wenn beide unterstützt werden, ist der endgültige Feldwert beispielsweise 0x3.
  • 0x1 – Initiatorrolle wird unterstützt
  • 0x2 – Responder-Rolle wird unterstützt

Die Nutzlast der BLE CS-Nachricht Ranging Capability Response ist in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8 ID der Technologie zur Entfernungsmessung 0x1 – BLE CS
1 uint8 Größe Größe der BLE CS-Funktionen in Byte (einschließlich der Felder Technology ID und Size).
2 uint8 Bitfeld für unterstützte Sicherheitstypen Bitfeld der unterstützten Sicherheitstypen für BLE CS.
  • 0x01 – CS_SECURITY_LEVEL_UNKNOWN
  • 0x02 – CS_SECURITY_LEVEL_ONE
  • 0x04: CS_SECURITY_LEVEL_TWO
  • 0x08 – CS_SECURITY_LEVEL_THREE
  • 0x10 – CS_SECURITY_LEVEL_FOUR
3 uint8*6 Geräteadresse Die Adresse des für BLE CS verwendeten Geräts in Big-Endian-Reihenfolge.

Die Nutzlast der Ranging Capability Response-Nachricht für Wi-Fi NAN RTT ist in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8 ID der Technologie zur Entfernungsmessung 0x2 – Wi-Fi NAN RTT
1 uint8 Größe Größe der BLE RSSI-Funktionsbytes (einschließlich der Felder Technology ID und Size) in Byte.
2 uint8 Bitfeld für unterstützte Funktionen Bitfeld der unterstützten Funktionen.
  • 0x01 – 11mc-fähig
  • 0x02 – 11az-fähig
3 uint8 Unterstützt regelmäßige Entfernungsbestimmung
  • 0x0 – Periodische Entfernungsmessung wird nicht unterstützt
  • 0x1 – periodische Entfernungsmessung wird unterstützt
4 uint8 Unterstützte Bandbreite VERALTET Diese Informationen helfen dabei, die erreichbare Entfernungsgenauigkeit mit Wi‑Fi NAN abzuleiten. Apps können so besser entscheiden, ob sie UWB, BLE CS, BLE RSSI oder Wi‑Fi NAN für die Entfernungsmessung verwenden sollen.
  • 0x00 – 20 MHz
  • 0x01 – 40 MHz
  • 0x02 – 80 MHz
  • 0x03 – 160 MHz
  • 0x04 – 80 + 80 MHz
  • 0x05 – 320 MHz
  • Für zukünftige Verwendung reserviert
5 uint8 Unterstützte Anzahl von Empfangsketten VERALTET Diese Informationen helfen dabei, die erreichbare Entfernungsgenauigkeit mit Wi‑Fi NAN abzuleiten. Apps können so besser entscheiden, ob sie UWB, BLE CS, BLE RSSI oder Wi‑Fi NAN für die Entfernungsmessung verwenden sollen.
  • 0x00 – Nicht definiert
  • 0x01 – 1 RX-Kette
  • 0x02 – 2 RX-Ketten
  • 0x03 – 3 RX-Ketten
  • 0x04 – 4 RX-Ketten

Die Nutzlast der BLE RSSI-Nachricht Ranging Capability Response ist in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8 ID der Technologie zur Entfernungsmessung 0x3 – BLE RSSI
1 uint8 Größe Die Größe der BLE RSSI-Funktionen in Byte (einschließlich der Felder Technology ID und Size)
2 uint8*6 Geräteadresse Die Adresse des Geräts, das für BLE RSSI verwendet wird, in Big-Endian-Reihenfolge

Die Nutzlast der Ranging Capability Response-Mitteilung für Wi-Fi PD ist in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8 ID der Technologie zur Entfernungsmessung 0x4 – WLAN-PD
1 uint8 Größe Die Größe der Wi‑Fi PD-Funktionen in Byte (einschließlich der Felder Technology ID und Size)
2 uint8 Unterstützte Funktionen Bitmap
  • b0 – 11mc-fähig
  • b1 – 11az-fähig
3 uint8 PansMode Bitmap
  • b0 – Nicht authentifizierter PASN-Modus
  • b1 – Authentifizierter PASN-Modus
4 uint8*6 Geräteadresse Die Adresse des für Wi‑Fi PD verwendeten Geräts in Big-Endian-Reihenfolge.
10 uint8*2 Minimales Intervall für die Entfernungsmessung (802.11mc) Unterstütztes Mindestintervall für die Entfernungsmessung im Big-Endian-Format für 11mc
12 uint8*2 Minimales Ranging-Intervall 802.11az Minimales Entfernungsintervall, das im Big-Endian-Format für 11az unterstützt wird
14 uint8 Maximaler Präambeltyp
  • 0 – PREAMBLE_LEGACY
  • 1 – PREAMBLE_HT
  • 2 – PREAMBLE_VHT
  • 3 – PREAMBLE_HE
  • 4 – PREAMBLE_EHT
Alle unteren Präambeln werden unterstützt.
15 uint8 Maximale Kanalbreite
  • 0 – CHANNEL_WIDTH_20MHZ
  • 1 – CHANNEL_WIDTH_40MHZ
  • 2 – CHANNEL_WIDTH_80MHZ
  • 3 – CHANNEL_WIDTH_160MHZ
  • 4 – CHANNEL_WIDTH_80MHZ_PLUS_MHZ
  • 5 – CHANNEL_WIDTH_320MHZ
Es wird davon ausgegangen, dass alle niedrigeren Channelbreiten unterstützt werden.
16 uint8*2 Unterstützte Kanalfrequenz
  • b0 – Channel 1
  • b1 – Channel 11
  • b2 – Channel 36
  • b3 – Channel 40
  • b4 – Channel 44
  • b5 – Kanal 48
  • b6 – Kanal 153
  • b7 – Kanal 157
  • b8 – Kanal 161
  • b9 – Kanal 165
  • b10–b15 – RFU

Nutzlast der Nachricht zur Konfiguration der Entfernungsmessung

Größe (Headergröße nicht enthalten): Variiert (gemeinsamer Teil 4 Byte plus die Größe der Byte für jede enthaltene Technologie zur Entfernungsmessung).

Beschreibung:Diese Nachricht wird vom Initiator gesendet und enthält die Konfigurationen, mit denen die einzelnen Ortungstechnologien die Ortung starten können. Das Antwortgerät muss versuchen, die Entfernung mit jeder angegebenen Entfernungstechnologie zu bestimmen, sobald es diese Nachricht empfängt. Die Nutzlast dieser Nachricht besteht aus dem gemeinsamen Teil und den technologiebezogenen Teilen (UWB, BLE CS, Wi-Fi NAN RTT, BLE RSSI), wie in den folgenden Tabellen dargestellt.

Die allgemeine Ranging Configuration-Nachrichtennutzlast wird in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8*2 Bitfeld für die Konfiguration von Ranging-Technologien Bitfeld der Ortungstechnologien, für die diese Nachricht Konfigurationsdaten enthält und für die Konfigurationsparameter festgelegt werden müssen.
  • 0x01 – UWB
  • 0x02 – BLE-Kanal-Sounding
  • 0x04 – WLAN-NAN-RTT
  • 0x08 – BLE RSSI
  • 0x10 – WLAN-PD
  • Für zukünftige Verwendung reserviert
2 uint8*2 Bitfeld RFU. Muss auf denselben Wert wie das Feld Ranging technologies configuration set bitfield gesetzt werden.
4 Byte-Array Konfigurationsbytes für Ranging-Technologien Wiederholte Blöcke von Strukturen, die pro Technologie definiert sind
variiert uint8 Unterstützung für Bewegungsmodus Motion Notification angefordert
  • 0x0: Das Initiatorgerät benötigt keine Bewegungsdaten.
  • 0x1: Das Initiatorgerät benötigt die Bewegungsdaten des Peer-Geräts.

Die Nutzlast der UWB-Ranging Configuration-Nachricht ist in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8 ID der Technologie zur Entfernungsmessung 0x0 – UWB
1 uint8 Größe Größe der UWB-Konfiguration (einschließlich der Felder Technology ID und Size) in Byte
2 uint8*2 UWB-Adresse 2‑Byte-UWB-Adresse des Geräts
4 uint8*4 Sitzungs-ID Generierte Sitzungs-ID. Die Sitzungs-ID ist eine eindeutige Kennung für die Entfernungsmessung zwischen dem Smartphone und dem Peripheriegerät.
8 uint8 Ausgewählte Konfigurations-ID Ausgewählte Konfigurations-ID als Ganzzahl. Die Konfigurations-ID gibt die Timing-Parameter und den Sicherheitstyp an, die für die UWB-Entfernungsmessungssitzung verwendet werden müssen.
9 uint8 Ausgewählter Kanal Ausgewählter Kanal für die UWB-Entfernungsmessung
10 uint8 Ausgewählter Präambelindex Ausgewählter Präambelindex für die UWB-Entfernungsmessungssitzung
11 uint8*2 Ausgewähltes Intervall für die Reichweite Ausgewählte Rate für die Entfernungsmessung in Millisekunden. Zulässige Werte (in Millisekunden):
  • 96
  • 120
  • 240
  • 600
13 uint8 Ausgewählte Dauer des Zeitblocks Ausgewählte Slot-Dauer in Millisekunden. Zulässige Werte (in Millisekunden):
  • 1
  • 2
14 uint8 Länge des Sitzungsschlüssels Länge des Sitzungsschlüssels in Byte
15 Byte-Array Sitzungsschlüssel Sitzungsschlüssel Wenn S-STS verwendet wird, sind die ersten beiden Byte die VENDOR ID und die folgenden sechs Byte die STATIC STS IV. Wenn P-STS verwendet wird, ist dies entweder ein 16-Byte- oder ein 32-Byte-Sitzungsschlüssel. Der verwendete Sicherheitstyp wird durch die Konfigurations-ID bestimmt.
variiert uint8*2 Ländercode Ländercode nach ISO 3166-1 Alpha-2, dargestellt durch zwei ASCII-Zeichen
variiert uint8 Ausgewählte Geräterolle
  • 0x01 – Initiator
  • 0x02 – Responder
variiert uint8 Ausgewählter Gerätemodus
  • 0x01 – Controller
  • 0x02 – Controlee

Die Nutzlast der BLE CS-Nachricht Ranging Configuration ist in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8 ID der Technologie zur Entfernungsmessung 0x1 – BLE CS
1 uint8 Größe Größe der BLE-CS-Konfiguration (einschließlich der Felder Technology ID und Size) in Byte
2 uint8 Ausgewählter Sicherheitstyp Ausgewählter Sicherheitstyp. Zulässige Werte:
  • 0x0 – CS_SECURITY_LEVEL_UNKNOWN
  • 0x1 – CS_SECURITY_LEVEL_ONE
  • 0x2 – CS_SECURITY_LEVEL_TWO
  • 0x3 – CS_SECURITY_LEVEL_THREE
  • 0x4 – CS_SECURITY_LEVEL_FOUR
3 uint8*6 Geräteadresse Die Adresse des für BLE CS verwendeten Geräts in Big-Endian-Reihenfolge

Die Nutzlast der Ranging Configuration-Nachricht für Wi-Fi NAN RTT ist in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8 ID der Technologie zur Entfernungsmessung 0x2 – Wi-Fi NAN RTT
1 uint8 Größe Größe der Wi-Fi NAN RTT-Konfiguration (einschließlich der Felder Technology ID und Size) in Byte
2 uint8 Länge des Dienstnamens Länge des Felds „Name des Dienstkontos“ in Byte. Weitere Informationen finden Sie in der Wi-Fi Aware-Spezifikation v4.0, Abschnitt 1.3.3, Tabelle 1. Definitionen.
3 Byte-Array Dienstname Dienstname. Weitere Informationen finden Sie in der Wi-Fi Aware-Spezifikation v4.0, Abschnitt 1.3.3, Tabelle 1. Definitionen.
variiert uint8 Geräterolle
  • 0x0 – Responder (NAN-Dienstanbieter)
  • 0x1 – Initiator (NAN-Dienstabonnent)
variiert uint8 Periodische Reichweitenmessung verwenden
  • 0x0 – Regelmäßige Entfernungsmessung deaktiviert
  • 0x1: Regelmäßige Entfernungsmessung aktiviert

Die Nutzlast der BLE RSSI-Nachricht Ranging Configuration ist in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8 ID der Technologie zur Entfernungsmessung 0x3 – BLE RSSI
1 uint8 Größe Größe der BLE RSSI-Konfiguration (einschließlich der Felder Technology ID und Size) in Byte
2 uint8*6 Geräteadresse Die Adresse des Geräts, das für BLE RSSI verwendet wird, in Big-Endian-Reihenfolge

Die Nutzlast der Ranging Configuration-Mitteilung für Wi-Fi PD ist in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8 ID der Technologie zur Entfernungsmessung 0x4 – Wi-Fi PD
1 uint8 Größe Größe der Wi-Fi NAN-PD-Konfiguration (einschließlich der Felder Technology ID und Size) in Byte
2 uint8 Funktion
  • 0x01 – 11mc
  • 0x02 – 11az
3 uint8*6 MAC-Adresse MAC-Adresse des Initiators
9 uint8*2 Entfernungsmessungsintervall Entfernungsmessungsintervall in ms
11 uint8 Ausgewählte Präambel
  • 0 – PREAMBLE_LEGACY
  • 1 – PREAMBLE_HT
  • 2 – PREAMBLE_VHT
  • 3 – PREAMBLE_HE
  • 4 – PREAMBLE_EHT
12 uint8 Ausgewählte Kanalbreite
  • 0 – CHANNEL_WIDTH_20MHZ
  • 1 – CHANNEL_WIDTH_40MHZ
  • 2 – CHANNEL_WIDTH_80MHZ
  • 3 – CHANNEL_WIDTH_160MHZ
  • 4 – CHANNEL_WIDTH_80MHZ_PLUS_MHZ
  • 5 – CHANNEL_WIDTH_320MHZ
13 uint8 Ausgewählter Kanal
  • 0 – Kanal 1
  • 1: Channel 11
  • 2 – Kanal 36
  • 3 – Channel 40
  • 4 – Channel 44
  • 5 – Kanal 48
  • 6 – Channel 153
  • 7 – Kanal 157
  • 8 – Kanal 161
  • 9 – Channel 165
14 uint8 Ausgewählter PASN-Modus
  • 0x01 – Nicht authentifizierter PASN-Modus
  • 0x02 – Authentifizierter PASN-Modus
Hinweis:Dieses Feld ist das Ende des Pakets für den nicht authentifizierten PASN-Modus.
15 Byte-Array Geräte-Identitätsschlüssel Festes Array mit 16 Byte
Hinweis:Dieses Feld ist nur für den authentifizierten PASN-Modus gültig und darf nicht für den nicht authentifizierten PASN-Modus festgelegt werden.
31 uint8 Passwortlänge Länge des Passworts.
Hinweis:Dieses Feld ist nur für den authentifizierten PASN-Modus gültig und darf für den nicht authentifizierten PASN-Modus nicht festgelegt werden.
variiert Byte-Array Passwort Passwort als Byte-Array.
Hinweis:Dieses Feld ist nur für den authentifizierten PASN-Modus gültig und darf für den nicht authentifizierten PASN-Modus nicht festgelegt werden.

Nutzlast der Antwortnachricht für die Bereichskonfiguration

Größe (Headergröße nicht enthalten): 2 Byte

Beschreibung:Diese Nachricht wird vom Antwortenden als Antwort auf die Nachricht Ranging Configuration gesendet. Diese Nachricht ist optional und nur erforderlich, wenn für den verwendeten Kommunikationskanal eine explizite Antwort auf jede Anfrage erforderlich ist.

Die Ranging Configuration Response-Nachrichtennutzlast wird in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8*2 Bitfeld für die Konfiguration der Reichweitentechnologien wurde festgelegt Bitfeld der erfolgreich festgelegten Ortungstechnologien. Das Bitfeld setzt das Bit für die Entfernungsmessungstechnologie auf 1, wenn die Technologie angefordert und erfolgreich festgelegt wurde, andernfalls auf 0.
  • 0x01 – UWB
  • 0x02 – BLE-Kanal-Sounding
  • 0x04 – WLAN-NAN-RTT
  • 0x08 – BLE RSSI
  • 0x10 – WLAN-PD
  • Für zukünftige Verwendung reserviert

Nutzlast der Nachricht zum Beenden der Entfernungsmessung

Größe (Headergröße nicht enthalten): 2 Byte

Beschreibung:Diese Nachricht wird vom Initiatorgerät gesendet, wenn es an der Zeit ist, die Entfernungsmessung mit der angegebenen Entfernungsmessungstechnologie zu beenden.

Die Stop Ranging-Nachrichtennutzlast wird in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8*2 Entfernungsmessungstechnologien zum Beenden des Bitfelds Bitfeld der Ortungstechnologien, die die Ortung beenden müssen. Wenn das Bit auf 1 gesetzt ist, muss die Entfernungsmessung beendet werden. Wenn es auf 0 gesetzt ist, wurde die Entfernungsmessung entweder noch nicht gestartet oder muss fortgesetzt werden, falls sie bereits läuft. Bei einigen Technologien zur Entfernungsmessung (z. B. CS) ist dies ein No-Op, da die Entfernungsmessung nur auf der Initiatorseite gestartet und beendet wird.
  • 0x01 – UWB
  • 0x02 – BLE-Kanal-Sounding
  • 0x04 – WLAN-NAN-RTT
  • 0x08 – BLE RSSI
  • 0x10 – WLAN-PD
  • Für zukünftige Verwendung reserviert

Nutzlast der Nachricht „Stop Ranging Response“

Größe (Headergröße nicht enthalten): 2 Byte

Beschreibung:Diese Nachricht wird vom Antwortenden als Antwort auf die Nachricht Stop Ranging gesendet. Diese Nachricht ist optional und nur erforderlich, wenn der verwendete Kommunikationskanal eine explizite Antwort auf jede Anfrage erfordert.

Die Stop Ranging Response-Nachrichtennutzlast wird in der folgenden Tabelle zusammengefasst:

Oktett Datentyp Beschreibung Wert
0 uint8*2 Bitfeld für erfolgreich beendete Technologien für die Entfernungsmessung Bitfeld der Ortungstechnologien, die die Ortung erfolgreich beendet haben. Das Bitfeld setzt das Bit für die Entfernungsmessungstechnologie auf 1, wenn das Beenden der Technologie angefordert wurde und sie erfolgreich beendet wurde, andernfalls auf 0.
  • 0x01 – UWB
  • 0x02 – BLE-Kanal-Sounding
  • 0x04 – WLAN-NAN-RTT
  • 0x08 – BLE RSSI
  • 0x10 – WLAN-PD
  • Für zukünftige Verwendung reserviert

Nutzlast der Benachrichtigung über Bewegungserkennung

Größe (Headergröße nicht inbegriffen): 1 Byte

Beschreibung:Das Antwortgerät sendet diese Nachricht, um das initiierende Gerät über Änderungen des Bewegungsstatus zu informieren.

Oktett Datentyp Beschreibung Wert
0 uint8 Bewegung
  • 0x0 – Nicht erkannt
  • 0x1 – Leichte Bewegung
  • 0x2 – Mittlere Bewegung
  • 0x3 – Große Bewegung
  • Für zukünftige Verwendung reserviert
Der Grenzwert für die Bewegung muss so konfiguriert sein, dass eine Änderung der Ausrichtung von ±X° entlang zweier beliebiger Achsen des Zubehörs erkannt wird.
  • Nicht erkannt: < 5°
  • Leichte Bewegung: 5° bis 7°
  • Mäßige Bewegung: 7° bis 10°
  • Große Bewegung: > 10°

Versionsverwaltung

Die Version der Spezifikation ist in der Kopfzeile jeder Nachricht enthalten. In diesem Abschnitt wird definiert, wie die Kommunikation erfolgt, wenn eines der Geräte (entweder das Initiator- oder das Antwortgerät) eine ältere Version als das andere Gerät verwendet.

Fall 1: Verbindungsbasierter Kommunikationskanal

In diesem Abschnitt werden Fälle beschrieben, in denen ein verbindungsorientierter Kommunikationskanal verwendet wird und Ranging Capability Request die erste Nachricht ist, die vom Initiatorgerät gesendet wird.

Fall 1a: Der Initiator unterstützt eine neuere Version, der Responder eine ältere Version der Spezifikation.

Das Initiatorgerät sendet die Ranging Capability Request-Nachricht mit der neueren Version. Das Responder-Gerät unterstützt nur die ältere Version. Es antwortet mit dieser und die ältere Version des Responders wird für den Rest des Nachrichtenaustauschs verwendet. Das bedeutet, dass die Ranging Capability Request-Mitteilung abwärtskompatibel sein muss.

Fall 1b: Der Initiator unterstützt eine ältere Version, der Responder eine neuere Version der Spezifikation.

Das Responder-Gerät erkennt, dass das Initiator-Gerät die neuere Version nicht verwenden kann, und sendet Nachrichten nur mit der älteren Version, die ursprünglich vom Initiator-Gerät angefordert wurde.

Fall 2: Werbebasierter Kommunikationskanal

In diesem Abschnitt werden Fälle beschrieben, in denen ein auf Werbung basierender Kommunikationskanal verwendet wird, bei dem das Antwortgerät Ranging Capability Request direkt ohne anfängliche Anfrage bewirbt.

Fall 2a: Der Initiator unterstützt eine neuere Version, der Responder eine ältere Version der Spezifikation.

Die in der Ranging Capability Response-Anzeige angegebene ältere Version wird für die weitere Kommunikation verwendet.

Fall 2b: Der Initiator unterstützt eine ältere Version, der Responder eine neuere Version der Spezifikation.

Die neuere Version der Ranging Capability Response-Ankündigung muss abwärtskompatibel sein, damit das Initiatorgerät die Nachricht lesen kann, auch wenn es eine neuere Version verwendet. Das Initiatorgerät sendet dann die Ranging Configuration-Nachricht mit der älteren Version, die es unterstützt. Diese Version wird für die weitere Kommunikation verwendet.

Damit Ranging Capability Response abwärtskompatibel ist, müssen alle neuen Felder, die der Nutzlast der Ranging Capability Response-Nachricht in der nächsten Version dieser Spezifikation hinzugefügt werden, an das Ende der Nutzlast angehängt werden. Außerdem dürfen keine der vorhandenen Felder geändert werden. Wenn beim Parsen der Konfiguration die angegebene Größe größer als erwartet ist, müssen zusätzliche Felder von allen Geräten ignoriert werden, die nur die ältere Version der Spezifikation verstehen.

Fragmentierung

Diese Spezifikation ist unabhängig vom Kommunikationskanal. Sie definiert also nicht, wie die Nachrichtennutzlast fragmentiert werden soll, wenn eine einzelne Nachricht zu groß ist, um in ein Übertragungspaket des verwendeten Kommunikationskanals zu passen. Das Ranging-Modul erwartet, dass jede Nachricht in ihrer vollständigen Form empfangen wird. Die Verantwortung für die Fragmentierung liegt beim Implementierer des OOB-Kommunikationskanals.

Spezifische Informationen zur Technologie für die Entfernungsmessung

Dieser Abschnitt enthält Details zur Ranging-Technologie.

Besonderheiten von Ultrabreitband (UWB)

In diesem Abschnitt werden spezifische Details zu Ultrabreitband beschrieben.

Konfigurations-IDs

Die für UWB ausgetauschten OOB-Konfigurationsdaten enthalten nicht alle verfügbaren konfigurierbaren Parameter, die UWB zum Starten einer UWB-Entfernungsmessungssitzung benötigt. Das liegt daran, dass einige Parameter implizit durch die ausgewählte Konfigurations-ID ausgewählt werden.

Jede Konfigurations-ID ist eine Reihe vordefinierter UWB-Konfigurationsparameter, die in UwbRangingParams dokumentiert sind. Das Antwortgerät sendet eine Liste aller Konfigurations-IDs, die es unterstützt, als Teil der unterstützten Konfigurations-IDs für supports_technology_transitioning. Dadurch kann während der Out-of-Band-Kommunikation eine kleinere Gruppe von Konfigurationsparametern ausgetauscht werden. Außerdem wird die Anzahl der möglichen Kombinationen von Parametern, die für die Entfernungsmessung mit UWB verwendet werden können, begrenzt. So können nur zulässige Kombinationen von Parametern getestet werden.

Funktionen nach jeder UWB-Sitzung anfordern

Nach dem Beenden einer bestehenden UWB-Sitzung und vor dem Starten einer neuen UWB-Sitzung muss das Initiatorgerät die Funktionen des Respondergeräts anfordern und die Konfigurationsparameter neu festlegen, da sich die UWB-Adresse ändern kann, sobald die aktuelle Ranging-Sitzung beendet wird.

Besonderheiten bei BLE-Channel-Sounding (CS)

In diesem Abschnitt werden spezifische Details zur Kanalsondierung beschrieben.

Erforderliche Verbindung zwischen Geräten

Für die Entfernungsmessung mit Channel Sounding ist eine bestehende Verbindung zwischen dem Initiator- und dem Antwortgerät erforderlich. Diese Spezifikation bietet keine Möglichkeit, eine Verbindung zwischen Geräten herzustellen. Der Nutzer der Ranging APIs muss diese Verbindung zwischen den Geräten herstellen.

Erforderliche Maßnahmen für den Kundenservice

Bei UWB müssen beide Geräte die API zum Starten und Beenden der Bereichsermittlung explizit aufrufen. Bei CS ist dagegen nur das Initiatorgerät erforderlich, um die CS-Entfernungsmessung durch Aufrufen des Bluetooth-Stacks (BT) zu starten. Die restliche Initialisierung auf der Responder-Seite erfolgt inband über Bluetooth. Das bedeutet, dass die Responder-Seite nach dem Empfang der Ranging Configuration-Nachricht oder der Stop Ranging-Nachricht für CS nichts tun muss, wenn Bluetooth aktiviert ist. Das Antwortgerät könnte diese Nachrichten als Trigger verwenden, um die Benutzeroberfläche zu aktualisieren oder beispielsweise die Geräte-LEDs blinken zu lassen.