Transmisión de RF de 1 vía con la latencia más baja posible

0

Estoy trabajando en un proyecto de telemetría inalámbrica con un pequeño giro.

Tengo un CC3220 dentro de un eje giratorio conectado a una placa AMS que recopila lecturas de tono de un imán montado en el interior.

Los datos se muestrean a 20 MHz y se almacenan localmente en la MCU. Después de 5 segundos de recopilación, los datos se transmiten de forma inalámbrica (a través de Wi-Fi) a mi computadora, donde algunos programas procesan los resultados para mostrarlos gráficamente.

Junto con las mediciones de tono que se recolectan dentro del eje, también estoy recopilando otras métricas con sensores conectados directamente a mi computadora. Me gustaría ver cómo afecta el tono a estas otras lecturas, por lo que debo unir los datos después de enviarlos a través de Wi-Fi.

El problema está en alinear los datos. Debido a que la MCU está separada del resto de los sensores, no se inicia al mismo tiempo que inicio a los otros debido al retraso inducido por el uso de Wi-Fi, por lo que no sé la hora inicial del primer lanzamiento. Leyendo para alinearme con el resto de los datos que recojo.

Comencé a buscar en otras soluciones de RF, como Bluetooth y Zigbee, pero tuve que descartarlas debido a la latencia (3 segundos y 15 milisegundos respectivamente). Esto me hizo preguntarme si existía CUALQUIER protocolo inalámbrico que tenga una latencia de menos de medio milisegundo. La transmisión solo tendría que ser unidireccional. Un pulso simple que significa "¡VAYA!" Para comenzar a muestrear; a continuación, utilizando Wi-Fi para enviar los datos de vuelta. Si no hay una solución de RF, tendré que volver a diseñar la carcasa para permitir que un diodo láser tenga línea de visión, pero esto hará que el costo de este proyecto se dispare ... ¡lo que me gustaría evitar!

¿Tienen alguna sugerencia de lectura sobre la latencia de RF? ¿Alguno de ustedes tuvo que superar un problema similar? Si necesita más información, hágamelo saber, todavía no tengo mucha experiencia, ¡es por eso que estoy tratando de aprender!

    
pregunta Keyboard Bandit

2 respuestas

1

Su problema no se soluciona con la latencia de transporte inferior . Eso simplemente no tiene relación con tu problema; su latencia de transporte puede ser arbitrariamente baja, pero con un desplazamiento aleatorio entre el controlador que inicia el muestreo y el envío de los datos, no se pueden sacar conclusiones directas sobre el inicio del muestreo.

Por el contrario, también podría tener días de latencia, si todos los datos del sensor tuvieran marcas de tiempo precisas, de modo que pueda alinear los datos en la PC.

Ahora, su sincronización de 1 ms no es realmente un gran desafío con la electrónica moderna. Su MCU no tendrá dificultades en absoluto para activar cualquier cosa con una ambigüedad de tiempo mucho más pequeña que esa.

Un enfoque habitual aquí es compartir una fuente de tiempo común: hay muchas opciones aquí; los establecidos son

  • Una señal de disparo compartida. Para sus anchos de banda, un simple pulso sobre par trenzado o coaxial a todos los sensores para que comiencen a convertir de forma síncrona. En los equipos de medición, a menudo encontrará entradas y salidas de PPS.
  • Una señal de RF de disparo compartida y dedicada. Para lograr una precisión de 1 ms, el ancho de banda de su pulso debe ser > > 2 kHz (que en realidad es casi nada). Hay un montón de módems GMSK / FSK que podrían lograrlo, como un efecto secundario de poder recibir paquetes de datos. Como señaló Jeroen3, también puedes construir un modulador de FM y un detector correspondiente (¡en electrónica discreta!).
  • Lo mismo ocurre con la comunicación óptica: transmita una secuencia pseudoaleatoria de 0s y 1s con un microcontrolador usando un LED IR fuerte, y permita que todos los nodos del sensor busquen esa secuencia en su código MCU. Utilice la correlación cruzada para encontrar el "centro" temporal de la secuencia. Sincronizar el muestreo un intervalo fijo más tarde
  • Los receptores GPS a menudo tienen una salida PPS (pulso por segundo). Eso es lo que se usa para sincronizar muchos más sistemas sensibles al tiempo (por ejemplo, estaciones base celulares, que necesitan manera mejor sincronicidad que + -1ms)
  • Abusa de alguna señal de RF que se pueda recibir fácilmente para encontrar tu temporización; por ejemplo, deja que el sensor también grabe un poco del espectro DVB-T por un corto tiempo. En su PC, grabe el espectro DVB-T continuamente. Luego, realice una correlación cruzada entre la señal de RF observada por el sensor y la PC, calcule el inicio exacto del muestreo en el sensor. Nuevamente, su ancho de banda observado limita la precisión; cuanto mayor sea el ancho de banda, menor será la ambigüedad de tiempo. Sin embargo, para su caso de 1 ms, como se mencionó, bastaría con un par de kHz, y la radio FM también lo haría (solo en este caso, todos sus dispositivos son solo receptores y no tiene que preocuparse por no meterse con FCC / BNetzA) / OFCOM regulaciones).
respondido por el Marcus Müller
0

Recomiendo usar una radio de banda ISM (900MHz o 2.4GHz) con un protocolo propietario. TI hace un montón de estos (CC1310 para 900MHz, CC26xx para 2.4GHz). De esa manera puedes hacer que vayan tan rápido como quieras. Pregunte en los foros de TI para más información; Es posible que tengan algún código de ejemplo para usted. Los datos de estos chips pueden ser muy altos y sin una pila puede tener un tiempo muy determinista.

    
respondido por el Fix It Until It's Broken

Lea otras preguntas en las etiquetas