
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.
