El posicionamiento por Time Difference of Arrival (TDOA) es uno de los enfoques mas precisos en localizacion indoor basada en BLE, pero impone el requisito mas exigente al sistema: todos los beacons receptores (anclas) deben compartir una referencia de tiempo comun con precision sub-microsegundo. Este articulo desglosa la arquitectura de sincronizacion, los metodos de timestamping, el impacto de la deriva del oscilador de cristal y el presupuesto de precision de extremo a extremo que se puede esperar realistamente.

1. Por que TDOA necesita sincronizacion de reloj

En el posicionamiento basado en RSSI, cada beacon mide independientemente la potencia de la senal y la reporta a un servidor. No se necesita un reloj comun porque la medicion se basa en amplitud, no en tiempo.

En TDOA, el tag emite un unico advertising BLE. Multiples anclas lo reciben y registran el tiempo de llegada. La diferencia en tiempos de llegada entre dos anclas define una hiperbola. Con tres o mas anclas, la posicion del tag se encuentra en la interseccion de las hiperbolas.

La idea clave: TDOA solo necesita tiempo relativo (la *diferencia* de tiempos), no tiempo absoluto. Sin embargo, todas las anclas deben estar sincronizadas a un reloj comun, porque cualquier offset de tiempo entre anclas contamina directamente la estimacion de posicion.

Un error de tiempo de 1 microsegundo se traduce en aproximadamente 300 metros de error de rango (velocidad de la luz x 1 us = 300 m). En la practica, los sistemas BLE indoor tienen como objetivo una precision de 1-3 metros, lo que significa que el offset de reloj entre anclas debe mantenerse por debajo de ~10 nanosegundos.

2. Matematicas del posicionamiento TDOA

2.1 Localizacion hiperbolica

Dado un tag en posicion desconocida (x, y) y anclas en posiciones conocidas (x_i, y_i):

t_i = t_0 + d_i / c

donde t_i es el tiempo de llegada en la ancla i, t_0 es el tiempo de emision (desconocido), d_i es la distancia del tag a la ancla i, y c es la velocidad de la luz (3 x 10^8 m/s).

Tomando la diferencia entre las anclas i y j:

t_i – t_j = (d_i – d_j) / c

Esto elimina t_0. La cantidad (d_i – d_j) define una hiperbola con focos en las anclas i y j. Con N anclas, se obtienen N-1 mediciones TDOA independientes (referenciadas a una ancla).

2.2 Anclas minimas

  • Posicionamiento 2D: minimo 3 anclas (2 mediciones TDOA -> 2 hiperbolas -> 1 punto de interseccion)
  • 2D redundante: 4+ anclas para solucion sobre-determinada por minimos cuadrados y deteccion de errores
  • Posicionamiento 3D: minimo 4 anclas (3 mediciones TDOA)

2.3 Cota inferior de Cramer-Rao (CRLB)

La cota teorica inferior para la varianza de posicionamiento es:

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

donde sigma_t es la desviacion estandar del timestamping y F es la matriz de informacion de Fisher. Para un despliegue tipico de 4 anclas con 10 ns de jitter de timestamping y buena geometria (GDOP ~ 2), el CRLB es aproximadamente:

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

Esto nos dice: incluso con sincronizacion perfecta, 10 ns de jitter de timestamping limita la precision a ~6 metros en una geometria tipica. TDOA sub-metrico requiere timestamping sub-nanosegundo, lo cual el PHY BLE no puede proporcionar nativamente.

3. Enfoques de sincronizacion de reloj

3.1 Sincronizacion por cable (PPS / disparo por hardware)

El metodo mas robusto: un reloj maestro genera una senal PPS (Pulse Per Second) de 1 Hz distribuida por cable a todas las anclas. Cada ancla captura su contador de timer de radio local en el flanco del PPS.

Parametro Valor tipico
Precision de sincronizacion 10-50 ns
Longitud maxima de cable ~50 m (LVDS) / ~10 m (GPIO)
Skew de cable ~5 ns/m (coaxial), ~1 ns/m (LVDS par trenzado)
Coste Alto (cableado + amplificador de distribucion)
Escalabilidad Limitada por infraestructura de cable

Implementacion en nRF52833/nRF5340: Enrutar PPS a un canal GPIOTE, configurarlo para disparar una captura de TIMER via PPI (Programmable Peripheral Interconnect). El timer funciona a 16 MHz (resolucion 62.5 ns), por lo que la captura PPS da alineacion temporal absoluta. Entre flancos PPS, el cristal local de 32 MHz proporciona la base de tiempo.

3.2 Sincronizacion inalambrica (Beacon a Beacon)

Sin cables. Las anclas intercambian periodicamente paquetes de sincronizacion. El desafio: el paquete de sincronizacion en si mismo tiene un retardo de propagacion desconocido que debe estimarse y compensarse.

Protocolo de sincronizacion Two-Way Ranging (TWR):

1. Ancla A envia paquete de sincronizacion en el tiempo t_A (registrado en el reloj de A)

2. Ancla B recibe en t_B = t_A + delta_AB + offset_BA

3. Ancla B responde en t_B’ (registrado en el reloj de B)

4. Ancla A recibe la respuesta en t_A’ = t_B’ + delta_BA + offset_AB

Donde delta es el retardo de propagacion y offset es el offset de reloj entre A y B.

Estimacion del offset de reloj:

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

Estimacion del retardo de propagacion (asumiendo camino simetrico):

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

Esto elimina tanto el offset de reloj como el retardo de propagacion, obteniendo una precision de sincronizacion limitada por el jitter de timestamping y la asimetria.

Parametro Valor tipico
Precision de sincronizacion 100-500 ns (depende del jitter)
Tasa de actualizacion 1-10 Hz
Overhead de RF 2 paquetes por intercambio de sincronizacion
Sin cableado Si
Escalabilidad Buena (sincronizacion por relay mesh)

Limitacion: TWR requiere comunicacion bidireccional. Si las anclas solo escuchan (receptores TDOA pasivos), la sincronizacion inalambrica debe usar un tag de referencia en posicion conocida que transmita pulsos de sincronizacion periodicos, que las anclas timestamping para calcular su offset relativo.

3.3 Hibrido: Tag de referencia sin cable

Colocar un tag de referencia en una posicion topografiada. Emite paquetes de sincronizacion a intervalos conocidos. Cada ancla timestamping la llegada y calcula:

offset_i = t_measured_i – t_expected_i

donde t_expected_i = t_broadcast + d_ref_to_anchor_i / c.

Como la posicion del tag de referencia y las posiciones de las anclas son conocidas, el tiempo de llegada esperado es determinista. La diferencia da el offset de reloj de la ancla relativo a la base de tiempo de referencia.

Parametro Valor tipico
Precision de sincronizacion 50-200 ns
Numero de tags de referencia 1 por zona de sincronizacion
Overhead de RF 1 paquete por ciclo de sincronizacion
Cobertura Linea de vista a todas las anclas

3.4 Tabla comparativa

Metodo Precision sync Cableado Coste Escalabilidad Mejor para
PPS (cable) 10-50 ns Requerido Alto Limitada Instalaciones fijas de alta precision
TWR (inalambrico) 100-500 ns Ninguno Bajo Buena Despliegues flexibles
Tag de referencia 50-200 ns Ninguno Bajo Buena Entornos indoor mixtos
NTP/PTP (Ethernet) 1-10 us Ethernet Medio Buena Solo TDOA grueso

4. Timestamping: Donde y Como

4.1 Puntos de timestamping de paquetes BLE

Hay tres posibles puntos de timestamping en la cadena de recepcion BLE:

Nivel PHY (deteccion SFD): La radio detecta el Start of Frame Delimiter (SFD) al final del preambulo. Este es el punto mas temprano y preciso; el timestamping ocurre a nivel de hardware, tipicamente con 1-2 us de incertidumbre debido a la correlacion del preambulo.

Nivel link layer (fin de paquete): Se recibe el paquete completo (incluyendo CRC). Esto ocurre 20-500 us despues del SFD, dependiendo de la longitud del paquete. Mas conveniente (el firmware tiene el paquete completo) pero el offset temporal depende de la longitud del paquete, que varia.

Nivel aplicacion (callback API): La pila BLE notifica a la aplicacion despues del procesamiento. Esto anade 100 us a varios milisegundos de latencia de software, que es variable y no apto para TDOA.

Recomendado: Timestamping en SFD (nivel PHY) usando el timestamp del END_EVENT del radio. En nRF52/nRF53, el periferico RADIO dispara EVENTS_ADDRESS cuando el campo de direccion coincide (que sigue al preambulo+SFD). El TIMER captura este evento via PPI, dando un timestamp de hardware con resolucion de 16 MHz.

4.2 Fuentes de jitter de timestamping

Fuente Jitter (1 sigma) Mitigacion
Correlacion de preambulo 0.5-1.0 us Usar PHY 2 MB/s (preambulo mas corto)
Latencia de interrupcion de radio 0.1-0.5 us Captura hardware PPI (sin CPU)
Cuantizacion del timer 31.25 ns (32 MHz) Timer 16 MHz con 62.5 ns; aceptable
Error de frecuencia de cristal 10-50 ppm -> acumula Resincronizacion periodica
Deriva termica 0.5 ppm/C -> acumula Cristal compensado en temperatura (TCXO)

La fuente dominante de jitter es la correlacion del preambulo (0.5-1.0 us). Esto significa que el jitter de timestamping TDOA BLE esta fundamentalmente limitado a ~1 us, no a nanosegundos.

4.3 Resolucion practica de timestamping

Con 1 us de jitter, el error equivalente de rango es 300 m. Esto parece catastrofico para posicionamiento indoor. Sin embargo, TDOA usa la diferencia de dos timestamps, y si ambas anclas tienen jitter correlacionado (mismo radio, mismo patron de preambulo), el jitter diferencial puede ser menor, aproximadamente raiz(2) x sigma_jitter ~ 1.4 us.

Esto significa que la precision del posicionamiento TDOA BLE esta fundamentalmente limitada a ~3-5 metros con PHY BLE estandar, independientemente de la calidad de sincronizacion de reloj. Esto es consistente con resultados de investigacion publicados y especificaciones de sistemas comerciales.

5. Impacto de la deriva del oscilador de cristal

5.1 Acumulacion del error de frecuencia

El reloj local de cada ancla deriva respecto a la referencia. Entre actualizaciones de sincronizacion, el error temporal acumulado crece:

delta_t_error = ppm x delta_t_sync

Para un cristal de 20 ppm con intervalo de sincronizacion de 1 segundo:

delta_t_error = 20×10^-6 x 1 s = 20 us por segundo

Esto corresponde a 6 km de error de rango por segundo de deriva, completamente inaceptable. Incluso con actualizaciones de sincronizacion a 10 Hz:

delta_t_error = 20×10^-6 x 0.1 s = 2 us -> 600 m de error de rango

5.2 Impacto de la seleccion de cristal

Tipo de cristal Precision (ppm) Coef. de temperatura Coste Intervalo sync necesario (<100 ns deriva)
XO estandar (32 MHz) ±20-50 ppm 0.05 ppm/C $0.10 2-5 ms (impracticable)
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
Atomico (CSAC) ±0.001 ppm $1500 Minutos

Para TDOA BLE practico, un TCXO es el punto optimo. Con precision ±2 ppm y sincronizacion a 10 Hz:

delta_t_error = 2×10^-6 x 0.1 s = 200 ns -> 60 m de error de rango

Sigue siendo alto, pero combinado con el jitter de timestamping (dominante), el presupuesto de error total es:

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

El jitter de timestamping (1 us) domina sobre el error de sincronizacion (200 ns) por 5:1, por lo que mejorar el cristal mas alla tiene rendimientos decrecientes.

5.3 Deriva inducida por temperatura

Un cristal de 32 MHz estandar tiene una caracteristica de temperatura parabolica:

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

donde k ~ 0.04 ppm/C^2 y T_0 es la temperatura de inflexion (tipicamente 25C). A 10C de la inflexion:

delta_f/f = 0.04 x 100 = 4 ppm

Esto es significativo. En 0.1 segundos: 400 ns de deriva. El TCXO compensa esto a ~0.1 ppm en todo el rango de temperatura industrial.

6. Arquitectura de implementacion

6.1 Diseno de ancla TDOA nRF52833/nRF5340

Hardware:

  • nRF52833 o nRF5340 con TCXO (p.ej., Epson TG-5032CGN, ±0.5 ppm)
  • Entrada PPS via GPIO (opcional, para sincronizacion por cable)
  • Backhaul Ethernet o Wi-Fi para computacion de posicion

Firmware:

  • Radio BLE en modo scanner (escaneo continuo de canal de advertising)
  • Conexion PPI: RADIO.EVENTS_ADDRESS -> TIMER.CAPTURE
  • Timestamp almacenado en buffer circular RAM con metadatos del paquete
  • Protocolo de sincronizacion: TWR con anclas vecinas cada 100 ms

Cadena de captura de timestamp:

Radio recibe paquete -> EVENTS_ADDRESS se dispara

-> PPI dispara TIMER0.CAPTURE[0] (timer 16 MHz)

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

-> Reenviar al motor de posicion via backhaul

6.2 Motor de posicion

El motor de posicion se ejecuta en un servidor (o gateway edge). Recibe paquetes con timestamp de todas las anclas y computa TDOA:

1. Agrupar: Recopilar todos los timestamps del mismo evento de advertising (coincidir por AdvA + hash de payload)

2. Diferencial: Calcular t_i – t_ref para cada ancla respecto a una ancla de referencia

3. Corregir: Aplicar correccion de offset de sincronizacion del protocolo de sync

4. Resolver: Solver hiperbolico de minimos cuadrados (Gauss-Newton o Levenberg-Marquardt)

5. Validar: Rechazar outliers (residual TDOA > 3 sigma)

6.3 Impacto de la seleccion de canal

BLE hace advertising en tres canales: 37 (2402 MHz), 38 (2440 MHz), 39 (2480 MHz). El advertising del tag se envia en los tres secuencialmente (separados por ≤10 ms). Cada canal tiene diferentes caracteristicas de multipath.

Mejor practica: Usar solo el primer evento de canal de advertising por par de anclas para TDOA, para evitar variaciones de retardo de propagacion dependientes del canal. Alternativamente, computar TDOA separadamente para cada canal y tomar la mediana.

7. Presupuesto de precision de extremo a extremo

Fuente de error Valor 1 sigma Equivalente de rango Notas
Jitter timestamping (preambulo) 1.0 us 300 m Dominante; limitacion PHY BLE
Error sync reloj (TCXO, 10 Hz) 200 ns 60 m Con sync inalambrica TWR
Multipath (NLOS) 0.5-2.0 us 150-600 m Dependiente del entorno
Error topografia anclas 0.1 m 0.1 m Despreciable si topografiado
Deriva termica (TCXO) 50 ns 15 m Entre actualizaciones sync
Total (RSS) ~1.5 us ~450 m Antes de ganancia geometrica

Sin embargo, el error TDOA es un error de diferencia de rango, no de rango, y el error de posicion depende de la geometria (GDOP). Con jitter efectivo mejorado a 300 ns (PHY codificado 2 MB/s, oversampling, promedio de paquetes) y GDOP ~ 0.5-1.0 con buena colocacion de anclas:

sigma_position ~ 3×10^8 x 300×10^-9 x 0.7 ~ 63 m -> converge a 2-5 m en entorno real

7.1 Expectativas realistas de precision

Configuracion Metodo sync Precision esperada Caso de uso
BLE estandar, XO, sync inalambrico TWR 10 Hz 5-10 m Tracking de activos
BLE estandar, TCXO, sync inalambrico TWR 10 Hz 3-5 m Navegacion
PHY codificado, TCXO, sync PPS PPS cable 1-2 m Indoor alta precision
BLE 5.1 CTE, TCXO, sync PPS PPS cable 0.5-1 m Investigacion / RTLS

8. Comparacion TDOA vs AoA vs RSSI

Parametro TDOA AoA (BLE 5.1 CTE) RSSI
Anclas minimas 3 (2D) / 4 (3D) 2 (2D) / 3 (3D) 3+
Sync reloj requerido Si (sub-us) No (por ancla) No
Hardware especial TCXO, cable sync Array de antenas (4+ elementos) Ninguno
Precision tipica 2-5 m 0.5-1 m 3-5 m
Complejidad del tag Baja (BLE estandar) Baja (BLE estandar) Minima
Coste del ancla Medio Alto (array + switch RF) Bajo
Sensibilidad a multipath Alta (timing) Media (fase) Alta
Consumo (ancla) Medio Alto (procesamiento CTE) Bajo
Cumplimiento de estandar BLE 4.2+ BLE 5.1+ BLE 4.0+

9. Recomendaciones de despliegue

Para precision de 3-5 metros (mayoria de tracking indoor):

  • Usar anclas con TCXO
  • Sincronizacion inalambrica TWR a 10 Hz
  • 4+ anclas por zona, espaciadas 8-15 m
  • PHY 2 MB/s para preambulo mas corto
  • Motor de posicion con rechazo de outliers

Para precision de 1-2 metros (RTLS de alto valor):

  • Sincronizacion PPS por cable a todas las anclas
  • TCXO en todas las anclas y tag
  • PHY codificado (125 kbps o 500 kbps)
  • 5+ anclas por zona, posiciones topografiadas
  • Filtro de Kalman en salida de posicion

Para precision sub-metrica:

  • Abandonar TDOA BLE; usar BLE 5.1 AoA o UWB
  • UWB (p.ej., DW1000/QM33820) proporciona timestamping de nanosegundos nativamente

10. Conclusion

El posicionamiento TDOA basado en BLE esta fundamentalmente limitado por la precision de timestamping de la capa PHY (~1 us a nivel de correlacion de preambulo). La sincronizacion de reloj, aunque necesaria, no es el cuello de botella una vez que se emplean TCXO y sincronizacion inalambrica a 10 Hz: el jitter de timestamping domina.

Para despliegues practicos: precision de 3-5 metros es alcanzable con anclas TCXO y sincronizacion inalambrica. Empujar por debajo de 2 metros requiere sincronizacion PPS por cable y PHY codificado, con rendimientos decrecientes. La precision sub-metrica requiere una tecnologia diferente (UWB o BLE 5.1 AoA con arrays de antenas).

La decision de ingenieria clave es si el coste adicional de infraestructura (TCXO, cableado de sincronizacion, topografia) se justifica por la mejora de precision sobre sistemas basados en RSSI, que alcanzan 3-5 metros sin requisitos de sincronizacion y con hardware estandar.

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *