Use un módulo de PCR para desarrollar rápidamente sensores precisos de baja potencia basados en radares
Colaboración de Editores de DigiKey de América del Norte
2019-05-14
La tecnología de sensor 3D de alta resolución surgió como una capacidad crítica en aplicaciones que van desde interfaces de usuarios basadas en gestos hasta ADAS (sistemas de asistencia a conductores automovilísticos). Entre las alternativas de sensores 3D, la tecnología de radar ofrece características y funciones de desempeño que no están disponibles con abordajes más convencionales. Sin embargo, los desarrolladores se enfrentan al desafío de mantener una alta precisión y un bajo consumo de potencia, y existe una curva de aprendizaje empinada para la implementación de sistemas de sensores de radar.
Mediante una tecnología avanzada llamada PCR (radar coherente pulsado), Acconeer desarrolló un sensor de radar integrado que combina la alta potencia y el bajo consumo de potencia requeridos para productos inteligentes y otras aplicaciones emergentes.
Este artículo describe el enfoque de PCR que adopta Acconeer antes de presentar un módulo de radar y una plataforma de desarrollo asociada basada en su tecnología. Luego demuestra cómo usar la plataforma para empezar a diseñar tecnología de sensor de radar sofisticada en un amplio rango de sistemas, como productos inteligentes alimentados por baterías.
¿Por qué un radar?
Gracias a que puede brindar una resolución de escala milimétrica en altas frecuencias de actualización, la tecnología de detección basada en radares puede proporcionar datos de movimiento y distancia de alta precisión. Al incorporar tecnología de radar en diseños de productos inteligentes, sin embargo, los desarrolladores suelen verse obligados a elegir entre baja potencia o alta precisión. Debido a que los desarrolladores buscan aplicar esta tecnología en diseños con presupuestos de potencia limitada, los requisitos de aplicación crean una necesidad creciente de mantener la precisión incluso a niveles de potencia reducida.
Tecnología avanzada de radar
Un enfoque alternativo a los diseños convencionales de radar ofrece una solución que combina la precisión de los métodos de radar coherente sofisticados con los requisitos de potencia reducida de los sistemas de radar pulsado. Los diseños de radar pulsado interrumpen el funcionamiento del transmisor entre pulsaciones y de esta manera logran una disminución en el consumo de potencia pero con una menor precisión. En contraste, los sistemas de radar coherente transmiten un tren de impulsos continuo, con mediciones de fase precisas de devolución de señales para brindar mediciones de alta precisión pero con el costo de un gran consumo de potencia.
Acconeer combina estas técnicas de la tecnología de PCR utilizada en el sensor de radar A111. Como el radar pulsado, la tecnología de PCR mantiene la radio apagada entre transmisiones, pero, como en los sistemas coherentes, las transmisiones son ráfagas de pulsos o barridos, con una fase de inicio conocida (Figura 1).

Figura 1: El dispositivo de radar coherente pulsado Acconeer A111 logra una gran precisión con baja potencia transmitiendo ondículas largas o cortas con una PRF (frecuencia de repetición de pulso) cuidadosamente controlada, frecuencia de centro (fRF) y duración de pulso (tpulse). (Fuente de la imagen: Acconeer)
Al cambiar parámetros como la duración de pulsos (tpulse), los desarrolladores pueden optimizar las señales para las diferentes aplicaciones. Por ejemplo, los desarrolladores pueden reducir tpulse para generar las ondículas más cortas que se necesitan para resolver los pequeños movimientos de dedos individuales en una aplicación de interfaz de usuario controlada por gestos. En cambio, pueden aumentar tpulse para generar las ondículas largas de alta potencia que se necesitan para resolver obstrucciones en la aplicación de estacionamiento automático de automotores.
A pesar de las ventajas técnicas del PCR, algunos desarrolladores sin una importante pericia en tecnología de radar pueden disponer del tiempo necesario para implementar esta tecnología solos. Además de los desafíos de diseñar una onda milimétrica (mmWave) eficiente de etapa Front End, los desarrolladores enfrentarían el desafío de convertir los datos adquiridos de amplitud y fase de las señales de radar reflejadas en mediciones útiles de distancia y movimiento.
Diseñado para abordar estos desafíos, el dispositivo de radar A111 basado en el PCR de Acconeer y el SDK (kit de desarrollo de software) relacionado abstraen los detalles de bajo nivel del procesamiento de señal de radar, lo que genera datos en formas que las aplicaciones pueden consumir con mayor facilidad.
El Front End integrado de PCR simplifica el desarrollo
Con una simplificación de los aspectos de hardware de la implementación de la tecnología de PCR, el Acconeer A111 brinda un sensor de radar completo que integra un Front End de radar de mmWave con una antena incluida en una AIP (antena incluida en un paquete). El paquete debe ser un fcCSP (paquete a escala de chip de micropastilla volante) de 5.2 x 5.5 x 0.88 milímetros (mm) (Figura 2).

Figura 2: El Acconteer A111 integra un radio de mmWave, un subsistema digital, temporización y la gestión de potencia para brindar una solución de Front End completa para la detección de radar mediante la tecnología de radar de pulso coherente. (Fuente de la imagen: Acconeer)
Junto con el subsistema de RF (frecuencia de radio) de mmWave, el A111 incluye un subsistema digital con áreas de memoria dedicadas a los programas y los datos para la gestión del subsistema de radio de mmWave. Los subsistemas separados brindan temporización de PLL (lazos de seguimiento de fase) y características de gestión de potencia, incluido el PoP (reinicio de encendido) y LDO (reguladores de caída baja) separados para los múltiples dominios de potencia del dispositivo.
Con la resolución de escala de tiempo en picosegundos, el dispositivo puede medir distancias con exactitud milimétrica sobre un rango de hasta dos metros. Al mismo tiempo, el bajo consumo de potencia les permite a los desarrolladores usarlo en dispositivos alimentados por batería. Gracias al alto nivel de integración del sensor del A111, los desarrolladores solo necesitan unos pocos componentes adicionales además de un microcontrolador host para implementar la detección por radar en sus diseños (Figura 3). Como el A111 puede funcionar sin una apertura para sus señales de radar, los desarrolladores pueden incorporarlo en productos inteligentes sin comprometer los requisitos de protección de ingreso existentes.

Figura 3: Gracias a que integra todas las frecuencias de radio y los subsistemas digitales requeridos para un radar Front End, el A111 le permite a los desarrolladores implementar la detección por radar con solo unos pocos componentes adicionales a parte del microcontrolador. (Fuente de la imagen: Acconeer)
Las funciones A111 como dispositivo convencional de interfaz periférica serial (SPI) con entrada de datos en serie (MOSI), salida serial (MISO), reloj (SPI_CLK) y puertos de señal secundaria seleccionada (SS). El pin ENABLE del A111 le permite a los desarrolladores usar el microcontrolador para encender o apagar el dispositivo, mientras el pin INTERRUPT le permite a los desarrolladores usar el A111 para notificar el microcontrolador cuando las mediciones están listas.
Al usar ENABLE para apagar el A111 entre transmisiones de barrido de pulso, los desarrolladores pueden reducir el consumo de potencia del A111 a 66 µA (típicamente). En cambio, mientras el A111 realiza una serie de barridos y mediciones, los desarrolladores pueden establecer el microcontrolador host en estado de suspensión de baja potencia usando la WFI (instrucción de espera de interrupción) disponible en los procesadores Arm® basados en Cortex®-M para activar microcontrolador cuando el A111 completa las operaciones y emite una interrupción.
Los diseñadores pueden agregar su propia fuente de reloj de precisión o depender del circuito de reloj interno del dispositivo que solo requiere un oscilador de cristal externo como el TSX-3225 de EPSON. El dispositivo funciona con un solo suministro de 1.8 voltios para RF (VIO_1 y VIO_2) y digital (VIO_3). De manera alternativa, los desarrolladores pueden usar fuentes de suministro separadas para aplicaciones de potencia más intensiva. Los pins VIO_Na y VIO_Nb que se muestran en la Figura 3 están conectados dentro del dispositivo y Acconeer recomienda que también se conecten de manera externa en la placa de CI.
Con la única intensión de ser un dispositivo de radar Front End, el A111 no almacena un firmware de manera permanente, en lugar de eso se basa en un microcontrolador host para cargar todo el software de detección y manejar la iniciación de sensor A111, la configuración la adquisición de barrido y el procesamiento de señal. En consecuencia, la elección de la empresa del microcontrolador es una decisión de diseño importante. Acconeer entiende que un controlador Arm basado en Cortex-M4 como el STM32L476 de STMicroelectronics o el NRF52840 de Nordic Semiconductor típicamente es suficiente para manejar operaciones relativamente estáticas como la medición de la distancia o la detección básica de movimiento. Para aplicaciones más dinámicas como la detección de movimiento de respiración o el rastreo de objetos, Acconeer recomienda un microcontrolador Arm basado en Cortex-M7 como el ATSAME70 de Microchip Technology. Como tal, Acconeer une el dispositivo PCR A111 con un ATSAME70 en su módulo de radar XM112.
El módulo Acconeer XM112 combina el sensor de radar A111 con un microcontrolador de tecnología microchip ATSAME70 para brindar un subsistema de radar completo. Los desarrolladores pueden usar el XM112 junto con el tablero inicial XB112 para comenzar inmediatamente a evaluar el A111 y a construir las aplicaciones de software basadas en PCR. De manera alternativa, los desarrolladores pueden simplemente conectar el módulo 30-pin 24 mm x 16 mm en sus propios PCB para agregar un subsistema PCR propio a sus diseños a medida. Para hacer detección por radar, los desarrolladores pueden controlar el módulo XM112 mediante una conexión serial con sus sistemas de desarrollo o ejecutar el software directamente sobre el microcontrolador host XM112 ATSAME70.
Interfaz de software
Independientemente de la configuración de los sistemas de hardware, las mediciones de radar se controlan de manera programada mediante la interfaz de programación de aplicación (API) del software de sistema de radar Acconeer (RSS). El RSS API sirve como interfaz de software único para trabajar con el A111. Acconeer no es compatible con el acceso a los registros de A111 mediante transacciones de interfaz periférica serial (SPI) típicas debido a la complejidad del diseño, calibración y requisitos de procedimiento. En lugar de eso, todas las operaciones funcionan mediante el RSS que provee una funcionalidad de detección de A111. Estos detectores, en cambio, se construyen en servicios de menor nivel mediante API para acceder a diferentes tipos de datos procesados del A111. Estos servicios incluyen:
- Servicio de envoltorio que otorga información sobre la amplitud de los datos del sensor
- Servicio Power Bin que otorga información sobre la amplitud en intervalos de rango predefinidos (bins)
- Servicio IQ que otorga datos modulados IQ, lo que permite que la fase de uso y las mediciones de amplitud generen mediciones más exactas que las posibles solamente con amplitud de los servicios de envoltorio y Power Bin
Dentro de estos servicios, los desarrolladores pueden tomar ventaja de las características especiales de la gestión de potencia, mejora de rango y autocalibración, entre otras.
Para la gestión de potencia, los desarrolladores pueden colocar el dispositivo en alguno de los cuatro modos de potencia que reducen el consumo mediante la reducción del índice de actualización del sensor. La característica de mejora de rango le permite a los desarrolladores realizar barridos largos que extienden el rango de medida hasta 7 metros (m) bajo ciertas condiciones. Finalmente, la característica de autocalibración les permite a los desarrolladores reducir el consumo de potencia asociado con el ciclo de calibración que ocurre cuando el dispositivo se enciende. En diseños alimentados por batería para el IoT, por ejemplo, los dispositivos pueden ponerse rutinariamente en el modo de suspensión o incluso apagarse durante períodos extensos de inactividad.
En muchos casos, es innecesario hacer la autocalibración al comienzo de cada ciclo de encendido y simplemente es una pérdida de potencia. En lugar de eso, los desarrolladores pueden almacenar valores de un ciclo de calibración inicial en una memoria no volátil y utilizar esos valores para hacer las mediciones de manera confiable durante períodos de funcionamiento posteriores.
Para el desarrollo del código de producción, los ingenieros pueden descargar el paquete de distribución de software completo que otorga un código de fuente de aplicación de muestra junto con el Acconeer SDK. El SDK incluye archivos de cabecera junto con bibliotecas RSS precompiladas para los microcontroladores Arm Cortex-M4 y Arm Cortex-M7 en distribuciones específicas de microcontroladores separados.
Las muestras de código en idioma C de SDK ilustran el patrón de diseño básico para usar el RSS API para realizar mediciones de radar en aplicaciones de producción. Para cualquier tipo de medición, este patrón de diseño comienza inicializando el sistema y el RSS, con tres rutinas en secuencia:
acc_driver_hal_init(), que inicializa el tablero y la entrada y salida de uso generalAcc_driver_hal_get_implementation(), que instancia a la estructura C, acc_hal_t, que posee las propiedades de sensor y de tablero así como también los indicadores de manipuladores de tiempo de ejecución para la ubicación de memoria, semáforos y otros.acc_rss_activate_with_hal(), que activa la utilidad de RSS (Servicios de sistema de radar) por sí mismo
Desde este punto de vista, una medición típica implica crear un objeto llamado configuración que contiene parámetros asociados con el sensor y la medición particular. Esa configuración luego se usa para utilizar una función RSS API para crear el detector o servicio deseado. El código de muestra ilustra la aplicación de este patrón de diseño en un módulo, example_detector_distance_peak.c, para crear y funcionar con un detector de pico de distancia. En ese módulo, la rutina main() (Listado 1) primero hace la inicialización y la activación RSS antes de crear una configuración (acc_detector_distance_peak_configuration_create()) y usa esa configuración para crear un detector de pico (distance_peak_detect_with_blocking_calls()).
Copyint main(void){ acc_detector_distance_peak_status_t detector_status; printf("Acconeer software version %s\n", ACC_VERSION); printf("Acconeer RSS version %s\n", acc_rss_version()); if (!acc_driver_hal_init()) { return EXIT_FAILURE; } acc_hal_t hal = acc_driver_hal_get_implementation(); if (!acc_rss_activate_with_hal(&hal)) { return EXIT_FAILURE; } //Create the detector configuration acc_detector_distance_peak_configuration_t distance_configuration = acc_detector_distance_peak_configuration_create(); if (distance_configuration == NULL) { fprintf(stderr, "\nacc_service_distance_configuration_create() failed"); return EXIT_FAILURE; } //Run distance peak detection in blocking mode detector_status = distance_peak_detect_with_blocking_calls(distance_configuration); if (detector_status != ACC_DETECTOR_DISTANCE_PEAK_STATUS_SUCCESS) { fprintf(stderr, "Running distance peak detector in blocking mode failed"); acc_detector_distance_peak_configuration_destroy(&distance_configuration); acc_rss_deactivate(); return EXIT_FAILURE; } detector_status = distance_peak_detect_with_blocking_calls_with_estimated_threshold(distance_configuration); if (detector_status != ACC_DETECTOR_DISTANCE_PEAK_STATUS_SUCCESS) { fprintf(stderr, "Running distance peak detector in blocking mode with estimated threshold failed"); acc_detector_distance_peak_configuration_destroy(&distance_configuration); acc_rss_deactivate(); return EXIT_FAILURE; } acc_detector_distance_peak_configuration_destroy(&distance_configuration); acc_rss_deactivate(); return EXIT_SUCCESS;}
Listado 1: El código de muestra incluido en la distribución del SDK (kit de desarrollo de software) Acconeer demuestra que el patrón de diseño básico para usar la API de los RSS para realizar mediciones con el sensor Acconeer A111. (Fuente del código: Acconeer)
En esta aplicación de muestra, las mediciones de picos de distancias reales se hacen en la rutina distance_peak_detect_with_blocking_calls(). Esta rutina, en cambio, utiliza la función RSS API acc_detector_distance_peak_get_next() para recuperar los datos de mediciones reales del dispositivo A111 (Listado 2). En este caso, el código coloca la rutina de medición acc_detector_distance_peak_get_next() en un ciclo, lo que disminuye el contador, detection_runs, hasta que realiza 100 mediciones.
Copy detector_status = acc_detector_distance_peak_activate(handle); if (detector_status == ACC_DETECTOR_DISTANCE_PEAK_STATUS_SUCCESS) { uint_fast8_t detection_runs = 100; while (detection_runs > 0) { reflection_count = 10; detector_status = acc_detector_distance_peak_get_next(handle, reflections, &reflection_count, &result_info); if (detector_status == ACC_DETECTOR_DISTANCE_PEAK_STATUS_SUCCESS) { printf("Distance detector: Reflexiones: %u. Seq. nr: %u. (%u-%u mm): %s\n", (unsigned int)reflection_count, (unsigned int)result_info.sequence_number, (unsigned int)(start_m * 1000.0f), (unsigned int)(end_m * 1000.0f), format_distances(reflection_count, reflections, metadata.free_space_absolute_offset)); } else { fprintf(stderr, "reflection data not properly retrieved\n"); } detection_runs--; }
Listado 2: Al realizar mediciones con el sensor Acconeer A111, los desarrolladores trabajan exclusivamente mediante la interfaz de programación de aplicación (API) de los RSS Acconeer como acc_detector_distance_peak_get_next() que maneja los detalles de bajo nivel como se muestra en este fragmento. (Fuente del código: Acconeer)
Los desarrolladores pueden implementar sus propios detectores, utilizando llamadas de servicio en patrones de diseño similar para la inicialización, activación RSS, creación de configuración e instalación de servicio. Por ejemplo, para usar el servicio de envoltorio, los desarrolladores pueden llamar al acc_service_envelope_configuration_create() para crear la configuración necesaria y usar esa configuración como parámetro para llamar al acc_service_create() para instanciar un objeto de servicio.
Al explorar el código de muestra de idioma C, los desarrolladores pueden tomar experiencia rápidamente usando el RSS API para construir aplicaciones de rada especializadas con detectores hechos a medida. Para ayudar a los desarrolladores a familiarizarse más rápidamente con la detección basada en radar en general y en servicios RSS en particular, Acconeer también brinda códigos de muestra en su repositorio de software del Kit de Exploración Python.
Diseñado para trabajar con el Acconeer SDK y los kits de evaluación como el XM112, el Kit de Exploración Python ayuda a los desarrolladores a aprovechar las ventajas de productividad de Python para trabajar con servicios RSS y detectores. Junto con ejemplos básicos, el kit otorga un código de muestra para implementar las aplicaciones de medición muy sofisticadas, incluyendo la detección de patrones de respiración en sujetos dormidos, utilizando información de fase para controlar movimientos relativos, detectar obstáculos que se aproximan, y más.
Conclusión
La tecnología de detección de radar puede brindar mediciones altamente precisas para aplicaciones de distancia y movimiento. Sin embargo, puede consumir mucha potencia para lograr la exactitud y típicamente implica un proceso de diseño complejo. Al implementar PCR, el sensor de radar integrado de Acconeer A111 otorga la combinación de una gran exactitud y un bajo consumo de potencia, requeridos para productos inteligentes y otras aplicaciones emergentes. El SDK de la empresa abstrae la complejidad del procesamiento de la señal de radar, lo que brinda el tipo de datos de alto nivel que se necesita al nivel de la aplicación.
Al usar el SDK con un tablero de desarrollo basado en A111, los ingenieros puede ganar experiencia rápidamente en lo que respecta a tecnología de detección de radar e implementar rápidamente aplicaciones sofisticadas que pueden diferenciar objetos y controlar movimientos con resolución milimétrica.
Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.




