Utiliser un module PCR pour développer rapidement des capteurs radars précis et basse consommation

Par Stephen Evanczuk

Avec la contribution de Rédacteurs nord-américains de DigiKey

La technologie de capteur 3D haute résolution est devenue une fonction essentielle dans les applications s'étendant des interfaces utilisateur gestuelles aux systèmes d'aide à la conduite (ADAS) automobiles. Parmi les alternatives aux capteurs 3D, la technologie radar offre des fonctionnalités et des performances qui ne sont pas disponibles avec les approches plus conventionnelles. Néanmoins, les développeurs ont du mal à maintenir une précision élevée et une basse consommation, et la courbe d'apprentissage pour le déploiement de systèmes de capteurs radars est longue.

L'utilisation d'une technologie avancée appelée radar cohérent pulsé (PCR) a permis à Acconeer de mettre au point un capteur radar intégré qui associe la haute précision et la basse consommation requises pour les produits intelligents et les autres applications émergentes.

Cet article décrit l'approche PCR d'Acconeer avant de présenter un module radar et la plateforme de développement associée basée sur sa technologie. Il montre ensuite comment utiliser la plateforme pour commencer à concevoir une technologie de capteur radar sophistiquée dans une large gamme de systèmes, notamment des produits intelligents alimentés par batterie.

Pourquoi le radar ?

Capable de fournir une résolution à l'échelle millimétrique à des fréquences de mise à jour élevées, la technologie de détection basée radar peut fournir les données de distance et de mouvement extrêmement précises requises par les applications pour la détection d'objet de précision, la mesure de distance, le suivi de position, etc. Cependant, en intégrant la technologie radar dans les conceptions de produits intelligents, les développeurs sont obligés de choisir entre basse consommation et haute précision. Alors que les développeurs cherchent à appliquer cette technologie dans des conceptions à budgets énergétiques limités, les exigences des applications induisent le besoin croissant de maintenir la précision, même à des niveaux de puissance réduits.

Technologie radar avancée

Une approche alternative aux conceptions de radar conventionnelles offre une solution qui combine la précision des méthodes de radar cohérent sophistiquées avec les exigences de puissance réduite des systèmes radars pulsés. Les conceptions de radar pulsé coupent l'émetteur entre les impulsions, ce qui permet de réduire la consommation énergétique, mais avec une précision moindre. En revanche, les systèmes de radar cohérent transmettent un train d'impulsions continu, en utilisant des mesures de phase précises des signaux de retour pour fournir des mesures haute précision, mais au prix d'une haute consommation énergétique.

Acconeer combine ces techniques dans la technologie PCR utilisée dans son capteur radar A111. À l'instar du radar pulsé, la technologie PCR maintient la radio éteinte entre les émissions, mais comme dans les systèmes cohérents, les transmissions sont des rafales d'impulsions, ou des balayages, avec une phase de démarrage connue (Figure 1).

Graphique du dispositif radar cohérent pulsé A111 d'Acconeer

Figure 1 : Le dispositif radar cohérent pulsé A111 d'Acconeer offre une haute précision avec une basse consommation en transmettant des ondelettes longues ou courtes avec une fréquence de répétition des impulsions (PRF), une fréquence centrale (fRF) et une durée d'impulsion (tpulse) soigneusement contrôlées. (Source de l'image : Acconeer)

En ajustant des paramètres tels que la durée d'impulsion (tpulse), les développeurs peuvent optimiser les signaux pour différentes applications. Par exemple, les développeurs peuvent réduire la durée d'impulsion tpulse pour générer les ondelettes plus courtes nécessaires à la résolution de petits mouvements de doigts individuels dans une application d'interface utilisateur à commande gestuelle. Inversement, ils peuvent augmenter la durée d'impulsion tpulse pour générer les longues ondelettes haute énergie nécessaires à la résolution des obstructions dans une application de stationnement autonome.

Malgré l'attrait des avantages techniques de l'approche PCR, peu de développeurs sans expertise significative en technologie radar pouvaient se permettre de prendre le temps nécessaire à l'implémentation de cette technologie par leurs propres moyens. Outre les défis liés à la conception d'un étage frontal efficace en ondes millimétriques (mmWave), les développeurs seraient confrontés au défi considérable consistant à convertir les données d'amplitude et de phase acquises à partir des signaux radars réfléchis en mesures utiles de la distance et du mouvement.

Conçus pour faire face à ces défis, le radar A111 basé PCR et le kit de développement logiciel associé (SDK) résument les détails de bas niveau du traitement des signaux radars, fournissant des données sous des formes plus facilement utilisables par les applications.

Le circuit d'entrée PCR intégré simplifie le développement

Pour simplifier les aspects matériels de l'implémentation de la technologie PCR, l'A111 d'Acconeer fournit un capteur radar complet qui intègre un circuit d'entrée radar mmWave avec une antenne intégrée (AIP) dans un boîtier fcCSP (flip chip chip-scale package) de 5,2 mm x 5,5 mm x 0,88 mm (Figure 2).

Schéma de l'A111 d'Acconeer intégrant une radio à ondes millimétriques (mmWave)

Figure 2 : L'A111 d'Acconeer intègre une radio à ondes millimétriques (mmWave), un sous-système numérique et des fonctions de temporisation et de gestion de l'alimentation afin de fournir une solution frontale complète pour la détection radar à l'aide de la technologie de radar cohérent pulsé. (Source de l'image : Acconeer)

Outre son sous-système radiofréquence (RF) mmWave, l'A111 comprend un sous-système numérique avec des zones de mémoire dédiées pour la programmation et les données pour la gestion du sous-système radio mmWave. Des sous-systèmes distincts fournissent des fonctionnalités de gestion de l'alimentation et de temporisation à boucle à verrouillage de phase (PLL), notamment une réinitialisation à la mise sous tension (PoR) et des régulateurs à faible chute de tension (LDO) distincts pour les multiples domaines d'alimentation du dispositif.

Avec sa résolution temporelle à l'échelle picoseconde, le dispositif permet généralement de mesurer une distance avec une précision millimétrique sur une portée jusqu'à deux mètres. En même temps, sa basse consommation permet aux développeurs de l'utiliser dans des dispositifs alimentés par batterie. En raison du niveau élevé d'intégration du capteur A111, les développeurs n'ont besoin que de quelques composants supplémentaires, en plus d'un microcontrôleur hôte, pour implémenter la détection radar dans leurs conceptions (Figure 3). Étant donné que l'A111 peut fonctionner sans ouverture pour ses signaux radars, les développeurs peuvent l'intégrer dans des produits intelligents sans compromettre les exigences de protection contre les infiltrations existantes.

Schéma du microcontrôleur A111 d'Acconeer

Figure 3 : Puisqu'il intègre tous les sous-systèmes numériques et RF requis pour un circuit d'entrée radar, l'A111 permet aux développeurs d'implémenter la détection radar avec seulement quelques composants supplémentaires au-delà du microcontrôleur hôte. (Source de l'image : Acconeer)

L'A111 fonctionne comme un dispositif d'interface périphérique série (SPI) classique avec des ports d'entrée de données série (MOSI), de sortie série (MISO), d'horloge (SPI_CLK) et de signal de sélection d'esclave (SS). La broche ENABLE de l'A111 permet aux développeurs d'utiliser le microcontrôleur pour mettre sous tension ou hors tension le dispositif, tandis que la broche INTERRUPT leur permet d'utiliser l'A111 pour informer le microcontrôleur lorsque les mesures sont prêtes.

En utilisant ENABLE pour mettre hors tension l'A111 entre les transmissions du balayage des impulsions, les développeurs peuvent réduire la consommation énergétique de l'A111 à 66 µA (valeur typique). Inversement, alors que l'A111 effectue une série de balayages et de mesures, les développeurs peuvent placer le microcontrôleur hôte dans un état de veille basse consommation à l'aide de l'instruction d'attente d'interruption (WFI) disponible dans les processeurs basés sur Arm® Cortex®-M pour réactiver le microcontrôleur lorsque l'A111 termine ses opérations et émet une interruption.

Les concepteurs peuvent ajouter leur propre source d'horloge de précision ou compter sur le circuit d'horloge interne du dispositif, qui nécessite uniquement un oscillateur à quartz externe, par exemple le TSX-3225 d'EPSON. Le dispositif fonctionne avec une seule alimentation de 1,8 V pour RF (VIO_1 et VIO_2) et numérique (VIO_3). Alternativement, les développeurs peuvent utiliser des sources d'alimentation distinctes pour des applications plus énergivores. Les broches VIO_Na et VIO_Nb illustrées à la Figure 3 sont connectées à l'intérieur du dispositif et Acconeer recommande de les connecter également à l'extérieur sur la carte à circuit imprimé.

Destiné uniquement à servir de dispositif de circuit d'entrée radar, l'A111 ne stocke aucun micrologiciel en permanence, mais le microcontrôleur hôte lui permet de télécharger tous les logiciels du capteur, et de gérer l'initiation, la configuration, l'acquisition par balayage et le traitement des signaux de capteur A111. Par conséquent, le choix du microcontrôleur associé est une décision de conception importante. Acconeer note qu'un microcontrôleur basé sur Arm Cortex-M4, tel que le STM32L476 de STMicroelectronics ou le NRF52840 de Nordic Semiconductor, est généralement suffisant pour gérer des opérations relativement statiques, comme la mesure de distance ou la détection de mouvement de base. Pour les applications plus dynamiques, comme la détection de mouvements respiratoires ou le suivi d'objets, Acconeer recommande l'utilisation d'un microcontrôleur basé sur Arm Cortex-M7, tel que l'ATSAME70 de Microchip Technology. En tant que tel, Acconeer associe le dispositif PCR A111 à un ATSAME70 dans son module radar XM112.

Le module XM112 d'Acconeer combine le capteur radar A111 à un microcontrôleur ATSAME70 de Microchip Technology pour fournir un sous-système radar complet. Les développeurs peuvent utiliser le XM112 avec la carte Breakout XB112 pour commencer immédiatement à évaluer l'A111 et à créer des applications logicielles basées PCR. Les développeurs peuvent également simplement brancher le module à 30 broches de 24 mm x 16 mm sur leurs propres cartes à circuit imprimé pour ajouter un sous-système PCR autonome à leurs conceptions personnalisées. Pour effectuer la détection radar, les développeurs peuvent contrôler le module XM112 via une connexion série avec leurs systèmes de développement ou exécuter le logiciel directement sur le microcontrôleur hôte ATSAME70 du XM112.

Interface logicielle

Quelle que soit la configuration du système matériel, les mesures radars sont contrôlées par programme à l'aide de l'interface de programmation (API) du logiciel de système radar (RSS) d'Acconeer. L'API RSS constitue l'unique interface logicielle permettant de travailler avec l'A111. Acconeer ne prend pas en charge l'accès aux registres A111 via des transactions SPI typiques en raison de la complexité des exigences en matière de conception, d'étalonnage et de traitement. Au lieu de cela, toutes les opérations fonctionnent via le logiciel RSS qui fournit la fonctionnalité de détecteur à l'A111. À leur tour, ces outils de détection s'appuient sur des services de niveau inférieur via des API pour accéder à différents types de données prétraitées à partir de l'A111. Ces services incluent notamment :

  • Service Envelope qui fournit des informations sur l'amplitude des données du capteur
  • Service Power Bin qui fournit des informations d'amplitude dans des intervalles de plage prédéfinis (bins)
  • Service IQ qui fournit des données modulées IQ, permettant d'utiliser des mesures de phase et d'amplitude pour générer des mesures plus précises qu'avec les services Envelope et Power Bin uniquement

Ces services permettent notamment aux développeurs de tirer parti de fonctionnalités spéciales pour la gestion de l'alimentation, l'amélioration de la portée et l'étalonnage automatique.

Pour la gestion de l'alimentation, les développeurs peuvent placer le dispositif dans l'un des quatre modes d'alimentation permettant de réduire la consommation énergétique en réduisant le taux de mise à jour du capteur. La fonction d'amélioration de la portée permet aux développeurs d'effectuer de longs balayages qui étendent la portée de mesure jusqu'à 7 m dans certaines conditions. Enfin, la fonctionnalité d'étalonnage automatique permet aux développeurs de réduire la consommation énergétique associée au cycle d'étalonnage qui se produit au démarrage du dispositif. Dans les conceptions alimentées par batterie pour l'IoT, par exemple, les dispositifs peuvent être systématiquement mis en mode veille ou même éteints pendant des périodes d'inactivité prolongées.

Dans de nombreux cas, effectuer un étalonnage automatique au début de chaque cycle de réactivation est inutile et gaspille simplement de l'énergie. Les développeurs peuvent plutôt stocker les valeurs d'un cycle d'étalonnage initial dans une mémoire non volatile et utiliser ces valeurs pour effectuer des mesures fiables au cours des périodes de réactivation ultérieures.

Pour le développement du code de production, les ingénieurs peuvent télécharger le pack de distribution logicielle, qui fournit un code source d'application d'exemple avec le SDK d'Acconeer. Le SDK comprend des fichiers d'en-tête ainsi que des bibliothèques RSS précompilées pour les microcontrôleurs Arm Cortex-M4 et Arm Cortex-M7 dans des distributions distinctes spécifiques au microcontrôleur.

Les exemples de code en langage C du SDK illustrent le modèle de conception de base permettant d'utiliser l'API RSS pour effectuer des mesures radars dans des applications de production. Pour tout type de mesure, ce modèle de conception commence par initialiser le système et le logiciel de système radar, en faisant appel à trois routines en séquence :

  • acc_driver_hal_init(), qui initialise la carte et les GPIO
  • acc_driver_hal_get_implementation(), qui instancie une structure C, acc_hal_t, contenant les propriétés du capteur et de la carte, ainsi que des pointeurs sur les gestionnaires d'exécution, pour l'allocation de mémoire, les sémaphores, etc.
  • acc_rss_activate_with_hal(), qui active l'utilitaire RSS (Radar System Services) lui-même

Ensuite, une mesure typique implique la création d'un objet appelé configuration contenant les paramètres associés au capteur et à la mesure particulière. Cette configuration est ensuite utilisée pour appeler une fonction API RSS afin de créer le détecteur ou le service souhaité. Le code d'exemple illustre l'application de ce modèle de conception dans un module, example_detector_distance_peak.c, pour créer et utiliser un détecteur de pics de distance. Dans ce module, la routine main() (Liste 1) effectue d'abord l'initialisation et l'activation RSS avant de créer une configuration (acc_detector_distance_peak_configuration_create()) et d'utiliser cette configuration pour créer un détecteur de pics (distance_peak_detect_with_blocking_calls()).

Copier int 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; } 

Liste 1 : Le code d'exemple inclus dans la distribution du kit de développement logiciel d'Acconeer illustre le modèle de conception de base pour l'utilisation de l'interface de programmation (API) RSS (Radar System Services) d'Acconeer afin d'effectuer des mesures avec le capteur A111 d'Acconeer. (Source du code : Acconeer)

Dans cette application d'exemple, les mesures de pics de distance réelles sont effectuées dans la routine distance_peak_detect_with_blocking_calls(). Cette routine en retour utilise la fonction API RSS acc_detector_distance_peak_get_next() pour récupérer les données de mesure réelles depuis le dispositif A111 (Liste 2). Dans cet exemple, le code place la routine de mesure acc_detector_distance_peak_get_next() dans une boucle, décrémentant un compteur, detection_runs, jusqu'à ce qu'il effectue 100 mesures.

Copier 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: Reflections: %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--; } 

Liste 2 : Lors de la réalisation de mesures avec le capteur A111 d'Acconeer, les développeurs travaillent exclusivement via l'API RSS (Radar System Services) d'Acconeer, appelant des routines RSS telles que acc_detector_distance_peak_get_next() qui gèrent les détails de bas niveau, comme indiqué dans cet extrait. (Source du code : Acconeer)

Les développeurs peuvent implémenter leurs propres détecteurs, en utilisant des appels de service dans un modèle de conception similaire pour l'initialisation, l'activation RSS, la création de configuration et l'instanciation de service. Par exemple, pour utiliser le service Envelope, les développeurs appellent acc_service_envelope_configuration_create() afin de créer la configuration nécessaire, et utilisent cette configuration en tant que paramètre dans l'appel acc_service_create() pour instancier un objet de service.

En explorant l'exemple de code en langage C, les développeurs peuvent rapidement acquérir de l'expérience en utilisant l'API RSS pour créer des applications radars spécialisées avec des détecteurs personnalisés. Pour aider les développeurs à se familiariser plus rapidement avec la détection radar en général et les services RSS en particulier, Acconeer fournit également un code d'exemple dans son référentiel logiciel de kit d'exploration Python.

Conçu pour fonctionner avec le SDK d'Acconeer et les kits d'évaluation tels que le XM112, le kit d'exploration Python aide les développeurs à tirer parti des avantages de la productivité de Python pour l'utilisation des détecteurs et des services RSS. Outre des exemples de base, le kit fournit un code d'exemple pour l'implémentation d'applications de mesure très sophistiquées, notamment la détection des profils respiratoires chez les sujets endormis, l'utilisation des informations de phase pour suivre les mouvements relatifs, la détection d'obstacles en approche, etc.

Conclusion

La technologie de détection radar peut fournir des mesures extrêmement précises pour les applications de mouvement et de distance. Cependant, la précision peut demander beaucoup d'énergie et implique généralement un processus de conception complexe. En implémentant la technologie PCR, le capteur radar intégré A111 d'Acconeer offre la combinaison entre haute précision et basse consommation requise pour les produits intelligents et d'autres applications émergentes. Le SDK complémentaire résume la complexité du traitement des signaux radars et fournit le type de données de niveau supérieur requis au niveau de l'application.

En utilisant le SDK avec une carte de développement basée sur l'A111, les ingénieurs peuvent rapidement acquérir de l'expérience avec la technologie de détection radar et implémenter des applications sophistiquées capables de discerner les objets et de suivre les mouvements avec une résolution millimétrique.

DigiKey logo

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.

À propos de l'auteur

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk affiche plus de 20 ans d'expérience dans la rédaction de contenu pour et sur l'industrie électronique, couvrant un large éventail de sujets, notamment le matériel, les logiciels, les systèmes et les applications, y compris l'IoT. Il a obtenu son doctorat (Ph.D.) en neurosciences sur les réseaux neuronaux et a travaillé dans l'industrie aérospatiale sur les systèmes sécurisés massivement distribués et les méthodes d'accélération par algorithmes. Actuellement, lorsqu'il n'écrit pas d'articles techniques, il travaille sur l'application de l'apprentissage approfondi pour les systèmes de reconnaissance et de recommandation.

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey