Die Time Difference of Arrival (TDOA)-Positionierung ist einer der genauesten Ansaetze in BLE-basierter Indoor-Lokalisierung – stellt aber die anspruchsvollste Anforderung an das System: alle empfangenden Beacons (Anker) muessen eine gemeinsame Zeitreferenz mit Sub-Mikrosekunden-Praezision teilen. Dieser Artikel analysiert die Synchronisationsarchitektur, Zeitstempelverfahren, den Einfluss der Oszillatorabdriftung und das realistisch erwartbare Genauigkeitsbudget.

1. Warum TDOA Taktsynchronisation benoetigt

Bei der RSSI-basierten Positionierung misst jeder Beacon unabhaengig die Signalstaerke und meldet sie an einen Server. Keine gemeinsame Uhr wird benoetigt, da die Messung amplitudenbasiert und nicht zeitbasiert ist.

Bei TDOA sendet der Tag eine einzelne BLE-Werbung. Mehrere Anker empfangen sie und zeichnen die Ankunftszeit auf. Die Differenz der Ankunftszeiten zwischen zwei Ankern definiert eine Hyperbel. Mit drei oder mehr Ankern wird die Tag-Position am Schnittpunkt der Hyperbeln gefunden.

Die wesentliche Erkenntnis: TDOA benoetigt nur relative Zeit (Zeit*differenzen*), nicht absolute Zeit. Dennoch muessen alle Anker auf eine gemeinsame Uhr synchronisiert sein, da jeder Timing-Offset zwischen Ankern die Positionsschaetzung direkt verfaelscht.

Ein Timing-Fehler von 1 Mikrosekunde entspricht ca. 300 Metern Reichweitenfehler (Lichtgeschwindigkeit x 1 us = 300 m). In der Praxis zielen BLE-Indoorsysteme auf 1-3 Meter Genauigkeit, was bedeutet, dass der Uhr-Offset zwischen Ankern unter ~10 Nanosekunden gehalten werden muss.

2. TDOA-Positionierungsmathematik

2.1 Hyperbolische Lokalisierung

Gegeben ein Tag an unbekannter Position (x, y) und Anker an bekannten Positionen (x_i, y_i):

t_i = t_0 + d_i / c

wobei t_i die Ankunftszeit an Anker i, t_0 die Sendezeit (unbekannt), d_i die Entfernung vom Tag zu Anker i und c die Lichtgeschwindigkeit (3 x 10^8 m/s) ist.

Die Differenz zwischen Ankern i und j gebildet:

t_i – t_j = (d_i – d_j) / c

Dies eliminiert t_0. Die Groesse (d_i – d_j) definiert eine Hyperbel mit Brennpunkten an den Ankern i und j. Mit N Ankern ergeben sich N-1 unabhaengige TDOA-Messungen (referenziert auf einen Anker).

2.2 Mindestanzahl Anker

  • 2D-Positionierung: mindestens 3 Anker (2 TDOA-Messungen -> 2 Hyperbeln -> 1 Schnittpunkt)
  • Redundantes 2D: 4+ Anker fuer ueberbestimmte Kleinste-Quadrate-Loesung und Fehlererkennung
  • 3D-Positionierung: mindestens 4 Anker (3 TDOA-Messungen)

2.3 Cramer-Rao-Untere Schranke (CRLB)

Die theoretische untere Schranke fuer die Positionsvarianz ist:

var(position) >= (c^2 / sigma_t^2) x tr(F^-1)

wobei sigma_t die Standardabweichung des Zeitstempelns und F die Fisher-Informationsmatrix ist. Fuer eine typische 4-Anker-Anordnung mit 10 ns Zeitstempeljitter und guter Geometrie (GDOP ~ 2) liegt der CRLB bei etwa:

sigma_position >= c x sigma_t x GDOP = 3×10^8 x 10×10^-9 x 2 ~ 6 m

Das bedeutet: selbst bei perfekter Synchronisation beschraenkt 10 ns Zeitstempeljitter die Genauigkeit auf ~6 Meter bei typischer Geometrie. Sub-Meter-TDOA erfordert Sub-Nanosekunden-Zeitstempelung, was das BLE-PHY nicht nativ bereitstellen kann.

3. Taktsynchronisationsansaetze

3.1 Kabelgebundene Synchronisation (PPS / Hardware-Trigger)

Die robusteste Methode: Ein Master-Takt erzeugt ein 1 Hz PPS-Signal (Pulse Per Second), das per Kabel an alle Anker verteilt wird. Jeder Anker uebernimmt seinen lokalen Funk-Timer-Zaehler bei der PPS-Flanke.

Parameter Typischer Wert
Synchronisationsgenauigkeit 10-50 ns
Maximale Kabellaenge ~50 m (LVDS) / ~10 m (GPIO)
Kabel-Skew ~5 ns/m (Koaxial), ~1 ns/m (LVDS Twisted Pair)
Kosten Hoch (Verkabelung + Verteilverstaerker)
Skalierbarkeit Begrenzt durch Kabelinfrastruktur

Implementierung auf nRF52833/nRF5340: PPS an einen GPIOTE-Kanal routen, so konfigurieren, dass er eine TIMER-Capture ueber PPI (Programmable Peripheral Interconnect) ausloest. Der Timer laeuft mit 16 MHz (62,5 ns Aufloesung), sodass die PPS-Capture absolute Zeitsynchronisation ergibt. Zwischen PPS-Flanken liefert der lokale 32-MHz-Quarz die Zeitbasis.

3.2 Drahtlose Synchronisation (Beacon-zu-Beacon)

Keine Kabel. Anker tauschen periodisch Synchronisationspakete aus. Die Herausforderung: Das Synchronisationspaket selbst hat eine unbekannte Ausbreitungsverzoegerung, die geschaetzt und kompensiert werden muss.

Two-Way-Ranging (TWR) Synchronisationsprotokoll:

1. Anker A sendet Synchronisationspaket zur Zeit t_A (in A’s Uhr aufgezeichnet)

2. Anker B empfaengt bei t_B = t_A + delta_AB + offset_BA

3. Anker B antwortet zur Zeit t_B’ (in B’s Uhr aufgezeichnet)

4. Anker A empfaengt Antwort bei t_A’ = t_B’ + delta_BA + offset_AB

Wobei delta die Ausbreitungsverzoegerung und offset der Uhr-Offset zwischen A und B ist.

Schaetzung des Uhr-Offsets:

offset = [(t_B – t_A) – (t_A’ – t_B’)] / 2

Schaetzung der Ausbreitungsverzoegerung (bei symmetrischem Pfad):

delta = [(t_B – t_A) + (t_A’ – t_B’)] / 4

Dies eliminiert sowohl den Uhr-Offset als auch die Ausbreitungsverzoegerung und ergibt eine Synchronisationsgenauigkeit, die durch Zeitstempeljitter und Asymmetrie begrenzt ist.

Parameter Typischer Wert
Synchronisationsgenauigkeit 100-500 ns (abhaengig vom Jitter)
Update-Rate 1-10 Hz
RF-Overhead 2 Pakete pro Synchronisationsaustausch
Keine Verkabelung Ja
Skalierbarkeit Gut (Mesh-Relay-Synchronisation)

Einschraenkung: TWR erfordert bidirektionale Kommunikation. Wenn Anker nur hoeren (passive TDOA-Empfaenger), muss die drahtlose Synchronisation ein Referenz-Tag an bekannter Position verwenden, das periodische Synchronisationspulse sendet, die Anker zeitstempeln, um ihren relativen Offset zu berechnen.

3.3 Hybrid: Kabelloses Referenz-Tag

Ein Referenz-Tag an einer vermessenen Position platzieren. Es sendet Synchronisationspakete in bekannten Intervallen. Jeder Anker zeitstempelt die Ankunft und berechnet:

offset_i = t_measured_i – t_expected_i

wobei t_expected_i = t_broadcast + d_ref_to_anchor_i / c.

Da die Position des Referenz-Tags und die Ankerpositionen bekannt sind, ist die erwartete Ankunftszeit deterministisch. Die Differenz ergibt den Uhr-Offset des Ankers relativ zur Referenz-Zeitbasis.

Parameter Typischer Wert
Synchronisationsgenauigkeit 50-200 ns
Anzahl Referenz-Tags 1 pro Synchronisationszone
RF-Overhead 1 Paket pro Synchronisationszyklus
Abdeckung Sichtverbindung zu allen Ankern

3.4 Vergleichstabelle

Methode Sync-Genauigkeit Verkabelung Kosten Skalierbarkeit Optimal fuer
PPS (Kabel) 10-50 ns Erforderlich Hoch Begrenzt Hochpraezise Festinstallationen
TWR (drahtlos) 100-500 ns Keine Niedrig Gut Flexible Bereitstellungen
Referenz-Tag 50-200 ns Keine Niedrig Gut Gemischte Indoor-Umgebungen
NTP/PTP (Ethernet) 1-10 us Ethernet Mittel Gut Nur grobes TDOA

4. Zeitstempelung: Wo und Wie

4.1 BLE-Paket-Zeitstempelpunkte

Es gibt drei moegliche Zeitstempelpunkte in der BLE-Empfangskette:

PHY-Ebene (SFD-Erkennung): Das Funkgeraet erkennt den Start of Frame Delimiter (SFD) am Ende des Praeambels. Dies ist der frueheste und praeziseste Punkt; die Zeitstempelung erfolgt auf Hardware-Ebene, typischerweise mit 1-2 us Unsicherheit aufgrund der Praeambel-Korrelation.

Link-Layer-Ebene (Paketende): Das vollstaendige Paket (inklusive CRC) wird empfangen. Dies erfolgt 20-500 us nach dem SFD, abhaengig von der Paketlaenge. Bequemer (Firmware hat das vollstaendige Paket), aber der Timing-Offset haengt von der Paketlaenge ab, die variiert.

Anwendungsebene (API-Callback): Der BLE-Stack benachrichtigt die Anwendung nach der Verarbeitung. Dies fuegt 100 us bis mehrere Millisekunden Software-Latenz hinzu, die variabel und fuer TDOA ungeeignet ist.

Empfohlen: Zeitstempelung am SFD (PHY-Ebene) unter Verwendung des END_EVENT-Zeitstempels des Funkgeraets. Auf nRF52/nRF53 loest das RADIO-Peripheriegeraet EVENTS_ADDRESS aus, wenn das Adressfeld uebereinstimmt (auf Praeambel+SBD folgend). Der TIMER erfasst dieses Ereignis ueber PPI und gibt einen Hardware-Zeitstempel mit 16-MHz-Aufloesung.

4.2 Zeitstempeljitter-Quellen

Quelle Jitter (1 sigma) Mitigation
Praeambel-Korrelation 0,5-1,0 us 2 MB/s PHY verwenden (kuerzerer Praeambel)
Funk-Interrupt-Latenz 0,1-0,5 us PPI-Hardware-Capture (ohne CPU)
Timer-Quantisierung 31,25 ns (32 MHz) 16-MHz-Timer mit 62,5 ns; akzeptabel
Quarz-Frequenzfehler 10-50 ppm -> akkumuliert Periodische Resynchronisation
Temperaturdrift 0,5 ppm/C -> akkumuliert Temperaturkompensierter Quarz (TCXO)

Die dominierende Jitter-Quelle ist die Praeambel-Korrelation (0,5-1,0 us). Dies bedeutet, dass der BLE-TDOA-Zeitstempeljitter grundsaetzlich auf ~1 us begrenzt ist, nicht auf Nanosekunden.

4.3 Praktische Zeitstempelaufloesung

Bei 1 us Jitter betraegt der reichweitenaequivalente Fehler 300 m. Dies erscheint katastrophal fuer Indoor-Positionierung. TDOA verwendet jedoch die Differenz zweier Zeitstempel, und wenn beide Anker korrelierten Jitter haben (gleiches Funkgeraet, gleiches Praeambelmuster), kann der differentielle Jitter niedriger sein, etwa wurzel(2) x sigma_jitter ~ 1,4 us.

Dies bedeutet, dass die BLE-TDOA-Positionierungsgenauigkeit grundsaetzlich auf ~3-5 Meter begrenzt ist mit Standard-BLE-PHY, unabhaengig von der Taktsynchronisationsqualitaet. Dies ist konsistent mit veroeffentlichten Forschungsergebnissen und kommerziellen Systemspezifikationen.

5. Einfluss der Quarzoszillator-Drift

5.1 Akkumulation des Frequenzfehlers

Die lokale Uhr jedes Ankers driftet relativ zur Referenz. Zwischen Synchronisationsupdates waechst der akkumulierte Timing-Fehler:

delta_t_error = ppm x delta_t_sync

Fuer einen 20-ppm-Quarz mit 1-Sekunden-Synchronisationsintervall:

delta_t_error = 20×10^-6 x 1 s = 20 us pro Sekunde

Dies entspricht 6 km Reichweitenfehler pro Sekunde Drift – voellig inakzeptabel. Selbst mit 10-Hz-Synchronisationsupdates:

delta_t_error = 20×10^-6 x 0,1 s = 2 us -> 600 m Reichweitenfehler

5.2 Einfluss der Quarzauswahl

Quarz-Typ Genauigkeit (ppm) Temp.-Koeffizient Kosten Benoetigtes Sync-Intervall (<100 ns Drift)
Standard-XO (32 MHz) ±20-50 ppm 0,05 ppm/C $0,10 2-5 ms (unpraktikabel)
TCXO ±0,5-2 ppm 0,01 ppm/C $0,80 50-200 ms
OCXO ±0,01 ppm 0,001 ppm/C $5+ 5-10 s
Atomar (CSAC) ±0,001 ppm $1500 Minuten

Fuer praktisches BLE-TDOA ist ein TCXO der Sweet Spot. Mit ±2 ppm Genauigkeit und 10-Hz-Synchronisation:

delta_t_error = 2×10^-6 x 0,1 s = 200 ns -> 60 m Reichweitenfehler

Noch immer hoch, aber kombiniert mit dem Zeitstempeljitter (dominant) betraegt das Gesamtfehlerbudget:

sigma_total = sqrt(sigma_sync^2 + sigma_timestamp^2) = sqrt(200^2 + 1000^2) ~ 1020 ns ~ 306 m Reichweitenfehler

Der Zeitstempeljitter (1 us) dominiert ueber den Synchronisationsfehler (200 ns) mit 5:1, sodass eine weitere Verbesserung des Quarzes abnehmende Ertraege bringt.

5.3 Temperaturinduzierte Drift

Ein Standard-32-MHz-Quarz hat eine parabolische Temperaturcharakteristik:

delta_f/f = k x (T – T_0)^2

wobei k ~ 0,04 ppm/C^2 und T_0 die Wendepunkttemperatur (typischerweise 25C) ist. Bei 10C vom Wendepunkt:

delta_f/f = 0,04 x 100 = 4 ppm

Dies ist signifikant. Ueber 0,1 Sekunden: 400 ns Drift. Der TCXO kompensiert dies auf ~0,1 ppm ueber den gesamten industriellen Temperaturbereich.

6. Implementierungsarchitektur

6.1 nRF52833/nRF5340 TDOA-Anker-Design

Hardware:

  • nRF52833 oder nRF5340 mit TCXO (z.B. Epson TG-5032CGN, ±0,5 ppm)
  • PPS-Eingang ueber GPIO (optional, fuer kabelgebundene Synchronisation)
  • Ethernet- oder Wi-Fi-Backhaul fuer Positionsverarbeitung

Firmware:

  • BLE-Funk im Scanner-Modus (kontinuierliches Advertising-Channel-Scannen)
  • PPI-Verbindung: RADIO.EVENTS_ADDRESS -> TIMER.CAPTURE
  • Zeitstempel in RAM-Ringpuffer mit Paket-Metadaten gespeichert
  • Synchronisationsprotokoll: TWR mit Nachbarankern alle 100 ms

Zeitstempel-Capture-Kette:

Funk empfaengt Paket -> EVENTS_ADDRESS wird ausgeloest

-> PPI loest TIMER0.CAPTURE[0] aus (16-MHz-Timer)

-> {timestamp, RSSI, channel, packet_data} speichern

-> An Positionsmaschine ueber Backhaul weiterleiten

6.2 Positionsmaschine

Die Positionsmaschine laeuft auf einem Server (oder Edge-Gateway). Sie empfängt zeitgestempelte Pakete von allen Ankern und berechnet TDOA:

1. Gruppieren: Alle Zeitstempel fuer dasselbe Advertising-Ereignis sammeln (Matchen nach AdvA + Payload-Hash)

2. Differenzieren: t_i – t_ref fuer jeden Anker relativ zu einem Referenzanker berechnen

3. Korrigieren: Sync-Offset-Korrektur vom Synchronisationsprotokoll anwenden

4. Loesen: Kleinste-Quadrate-Hyperbel-Solver (Gauss-Newton oder Levenberg-Marquardt)

5. Validieren: Ausreisser zurueckweisen (TDOA-Residuum > 3 sigma)

6.3 Einfluss der Kanalauswahl

BLE advertisiert auf drei Kanaelen: 37 (2402 MHz), 38 (2440 MHz), 39 (2480 MHz). Die Werbung des Tags wird sequentiell auf allen dreien gesendet (jeweils ≤10 ms Abstand). Jeder Kanal hat unterschiedliche Multipath-Eigenschaften.

Beste Praxis: Fuer TDOA nur das erste Advertising-Channel-Ereignis pro Ankerpaar verwenden, um kanalabhaengige Ausbreitungsverzoegerungs-Variationen zu vermeiden. Alternativ TDOA separat fuer jeden Kanal berechnen und den Median nehmen.

7. End-to-End-Genauigkeitsbudget

Fehlerquelle 1-sigma-Wert Reichweitenaequivalent Hinweise
Zeitstempeljitter (Praeambel) 1,0 us 300 m Dominant; BLE-PHY-Limitierung
Uhrsync-Fehler (TCXO, 10 Hz) 200 ns 60 m Mit drahtloser TWR-Synchronisation
Multipath (NLOS) 0,5-2,0 us 150-600 m Umgebungsabhaengig
Anker-Position Vermessungsfehler 0,1 m 0,1 m Vernachlaessigbar wenn vermessen
Temperaturdrift (TCXO) 50 ns 15 m Zwischen Sync-Updates
Gesamt (RSS) ~1,5 us ~450 m Vor Geometrieverstaerkung

Der TDOA-Fehler ist jedoch ein Reichweitendifferenz-Fehler, kein Reichweitenfehler, und der Positionsfehler haengt von der Geometrie (GDOP) ab. Bei verbessertem effektivem Jitter von 300 ns (2 MB/s codiertes PHY, Oversampling, Paket-Mittelung) und GDOP ~ 0,5-1,0 bei guter Ankerplatzierung:

sigma_position ~ 3×10^8 x 300×10^-9 x 0,7 ~ 63 m -> konvergiert auf 2-5 m in realer Umgebung

7.1 Realistische Genauigkeitserwartungen

Konfiguration Sync-Methode Erwartete Genauigkeit Anwendungsfall
Standard-BLE, XO, drahtlose Sync TWR 10 Hz 5-10 m Asset-Tracking
Standard-BLE, TCXO, drahtlose Sync TWR 10 Hz 3-5 m Navigation
Codiertes PHY, TCXO, PPS-Sync Kabel-PPS 1-2 m Hochpraezise Indoor
BLE 5.1 CTE, TCXO, PPS-Sync Kabel-PPS 0,5-1 m Forschung / RTLS

8. TDOA vs AoA vs RSSI Vergleich

Parameter TDOA AoA (BLE 5.1 CTE) RSSI
Mindestanker 3 (2D) / 4 (3D) 2 (2D) / 3 (3D) 3+
Taktsync erforderlich Ja (Sub-us) Nein (pro Anker) Nein
Spezialhardware TCXO, Sync-Kabel Antennenarray (4+ Elemente) Keine
Typische Genauigkeit 2-5 m 0,5-1 m 3-5 m
Tag-Komplexitaet Niedrig (Standard-BLE) Niedrig (Standard-BLE) Mindest
Anker-Kosten Mittel Hoch (Array + RF-Switch) Niedrig
Multipath-Empfindlichkeit Hoch (Timing) Mittel (Phase) Hoch
Stromverbrauch (Anker) Mittel Hoch (CTE-Verarbeitung) Niedrig
Standardkonformitaet BLE 4.2+ BLE 5.1+ BLE 4.0+

9. Bereitstellungsempfehlungen

Fuer 3-5 Meter Genauigkeit (meistes Indoor-Tracking):

  • TCXO-ausgestattete Anker verwenden
  • Drahtlose TWR-Synchronisation mit 10 Hz
  • 4+ Anker pro Zone, 8-15 m Abstand
  • 2 MB/s PHY fuer kuerzeren Praeambel
  • Positionsmaschine mit Ausreisser-Zurueckweisung

Fuer 1-2 Meter Genauigkeit (hochwertiges RTLS):

  • Kabelgebundene PPS-Synchronisation zu allen Ankern
  • TCXO auf allen Ankern und Tags
  • Codiertes PHY (125 kbps oder 500 kbps)
  • 5+ Anker pro Zone, vermessene Positionen
  • Kalman-Filter auf Positionsausgabe

Fuer Sub-Meter-Genauigkeit:

  • BLE-TDOA aufgeben; BLE 5.1 AoA oder UWB verwenden
  • UWB (z.B. DW1000/QM33820) bietet nativ Nanosekunden-Zeitstempelung

10. Fazit

BLE-basierte TDOA-Positionierung ist grundsaetzlich durch die PHY-Schicht-Zeitstempelpraezision (~1 us auf Praeambel-Korrelationsebene) begrenzt. Die Taktsynchronisation ist zwar notwendig, aber nicht der Engpass, sobald TCXO und 10-Hz-drahtlose Synchronisation eingesetzt werden – der Zeitstempeljitter dominiert.

Fuer praktische Bereitstellungen: 3-5 Meter Genauigkeit ist erreichbar mit TCXO-Ankern und drahtloser Synchronisation. Unter 2 Meter zu pushen erfordert kabelgebundene PPS-Synchronisation und codiertes PHY mit abnehmenden Ertraegen. Sub-Meter-Genauigkeit erfordert eine andere Technologie (UWB oder BLE 5.1 AoA mit Antennenarrays).

Die wesentliche Engineering-Entscheidung ist, ob die zusaetzliche Infrastrukturkosten (TCXO, Sync-Verkabelung, Vermessung) durch die Genauigkeitsverbesserung gegenueber RSSI-basierten Systemen gerechtfertigt sind, die 3-5 Meter ohne Synchronisationsanforderungen und mit Standard-Hardware erreichen.

Comments

No comments yet. Why don’t you start the discussion?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert