Gebruik een PCR-module om snel nauwkeurige op radar gebaseerde sensors met laag vermogen te ontwikkelen

Door Stephen Evanczuk

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

3D-sensortechnologie met hoge resolutie is van fundamenteel belang gebleken in allerlei toepassingen, van gebruikersinterfaces op basis van gebaren tot rijhulpsystemen (ADAS, automotive driver assistance systems). Als één van de alternatieven voor 3D-sensors biedt radartechnologie functies en prestaties die je niet kunt krijgen met een meer conventionele benadering. Toch vinden ontwikkelaars het moeilijk om een hoge nauwkeurigheid en een laag energieverbruik te houden; bovendien moet er een steile leercurve worden overwonnen om radarsensorsystemen te kunnen gebruiken.

Acconeer heeft met gebruik van een geavanceerde technologie, die pulsed coherent radar (PCR) heet, een geïntegreerde radarsensor ontwikkeld die de combinatie van hoge nauwkeurigheid en laag energieverbruik levert die nodig is voor slimme producten en andere opkomende toepassingen.

In dit artikel wordt de PCR-benadering van Acconeer besproken voordat er een radarmodule met bijbehorend ontwikkelingsplatform op basis van de technologie wordt voorgesteld. Dan laat het zien hoe het platform moet worden gebruikt om te beginnen met het ontwerpen van geraffineerde radarsensortechnologie in veel verschillende systemen, waaronder slimme producten op batterijen.

Waarom radar?

Detectietechnologie op basis van radar kan millimeter-schaalresolutie bieden met hoge update-frequenties, waardoor het de zeer nauwkeurige afstands- en bewegingsgegevens kan leveren die toepassingen nodig hebben voor een precieze objectdetectie, afstandsmeting, positietracering, enz. Door radartechnologie in slimme-productontwerpen te bouwen, worden ontwikkelaars gewoonlijk echter gedwongen om te kiezen tussen een laag verbruik en een hoge nauwkeurigheid. Terwijl ontwikkelaars deze technologie willen gebruiken in ontwerpen met beperkte energiebudgetten, zorgen de eisen van de toepassingen voor een stijgende behoefte aan het behouden van de nauwkeurigheid, zelfs bij lagere vermogensniveaus.

Geavanceerde radartechnologie

Een alternatieve benadering van conventionele radarontwerpen biedt een oplossing die de nauwkeurigheid van geraffineerde coherente radarmethoden combineert met de lagere vermogenseisen van gepulseerde radarsystemen. Gepulseerde-radarontwerpen sluiten de zender tussen de pulsen in af, waardoor je een lager energieverbruik krijgt, maar ook een lagere nauwkeurigheid. Coherente radarsystemen zenden daarentegen een doorlopende reeks pulsen uit, met precieze fasemetingen van retoursignalen om zeer nauwkeurige metingen te leveren, maar met de prijs van een hoog energieverbruik.

Acconeer combineert deze technieken in de PCR-technologie die wordt gebruikt in de A111-radarsensor. Net als gepulseerde radar houdt PCR-technologie de radio uitgeschakeld tussen de zendingen in, maar net als in coherente systemen zijn de zendingen salvo's van pulsen, ofwel sweeps, met een bekende startfase (Afbeelding 1).

Afbeelding van gepulseerd coherent radarapparaat Acconeer A111

Afbeelding 1: het gepulseerde coherente radarapparaat Acconeer A111 bereikt een hoge nauwkeurigheid met een laag energieverbruik door lange of korte golven met zorgvuldig gecontroleerde pulsrepetitiefrequentie (PRF), middenfrequentie (fRF) en pulsduur (tpulse) te verzenden. (Bron afbeelding: Acconeer)

Door parameters als pulsduur (tpulse) af te stemmen, kunnen ontwikkelaars signalen optimaliseren voor verschillende toepassingen. Ze kunnen tpulse bijvoorbeeld verkorten om de kortere golfjes te genereren die nodig zijn om kleine bewegingen van afzonderlijke vingers te detecteren in een gebruikersinterfacetoepassing op basis van gebaren. Andersom kunnen ze tpulse ook verlengen om de lange golfjes met hoge energie te genereren die nodig zijn om obstakels in een zelfparkeertoepassing voor auto's te detecteren.

Ondanks de aantrekkelijkheid van de technische voordelen van PCR, kunnen maar weinig ontwikkelaars zonder aanzienlijke ervaring met radartechnologie zich de tijd veroorloven die nodig is om deze technologie zelf te implementeren. Naast de uitdagingen van het ontwerpen van een efficiënte millimetergolf (mmWave) front-end fase, zouden de ontwikkelaars te maken krijgen met de enorme uitdaging van het converteren van de verworven amplitude- en fasegegevens van gereflecteerde radarsignalen in bruikbare metingen van afstand en beweging.

Het A111 radarapparaat op PCR-basis van Acconeer en bijbehorende softwareontwikkelingskit (SDK) abstraheren de details op laag niveau van radarsignaalverwerking, zodat ze gegevens leveren in vormen di eenvoudiger kunnen worden gebruikt door toepassingen.

Geïntegreerd PCR front-end vereenvoudigt de ontwikkeling

Door de hardware-aspecten van het gebruik van PCR-technologie te vereenvoudigen, biedt de Acconeer A111 een complete radarsensor die een mmWave-radar front-end heeft met een ingebouwde antenne (AIP) in een flip chip chip-scale package (fcCSP) van 5,2 x 5,5 x 0,88 millimeter (mm) (Afbeelding 2).

Afbeelding van de Acconeer A111 met millimetergolfradio (mmWave)

Afbeelding 2: de Acconeer A111 heeft een millimetergolfradio (mmWave), digitaal subsysteem, timing- en voedingsbeheer om een complete front-endoplossing te bieden voor radardetectie met gepulseerde coherente radartechnologie. (Bron afbeelding: Acconeer)

Samen met zijn mmWave-radiofrequentie (RF) subsysteem bevat de A111 een digitaal subsysteem met speciale geheugenzones voor programma's en gegevens voor het beheer van het mmWave-radiosubsysteem. Aparte subsystemen bieden phase-locked loop (PLL)-timing en voedingsbeheersfuncties zoals power-on reset (PoR) en aparte low dropout (LDO)-regelaars voor de diverse voedingsdomeinen van het apparaat.

Met zijn tijdresolutie op de picosecondenschaal kan het apparaat afstand meten tot op de millimeter nauwkeurig over een bereik van tot twee meter. Tegelijkertijd zorgt zijn lage energieverbruik ervoor dat ontwikkelaars hem kunnen gebruiken in apparaten die op batterijen werken. Vanwege het hoge niveau van integratie van de A111-sensor, hebben ontwikkelaars maar een paar extra componenten nodig, naast een host-microcontroller, om radardetectie op te nemen in hun ontwerpen (Afbeelding 3). Omdat de A111 kan werken zonder opening voor de radarsignalen, kunnen ontwikkelaars hem gebruiken in slimme producten, zonder bestaande eisen aan de beveiliging van de ingangen in gevaar te brengen.

Afbeelding van de Acconeer A111 microcontroller

Afbeelding 3: Omdat de A111 alle radiofrequentie- en digitale subsystemen bevat die nodig zijn voor een radar front-end, kunnen ontwikkelaars deze gebruiken om radardetectie te implementeren met slechts een paar extra componenten naast de host-microcontroller. (Bron afbeelding: Acconeer)

De A111 werkt als een apparaat met conventionele seriële perifere interface (SPI) met seriële gegevensingang (MOSI), seriële uitgang (MISO), klok (SPI_CLK) en slave select signaal (SS) poorten. Met de ENABLE-pin kunnen ontwikkelaars de microcontroller gebruiken om het apparaat op te starten of uit te schakelen, terwijl ze dankzij de INTERRUPT-pin de A111 kunnen gebruiken om de microcontroller te melden wanneer er metingen klaar zijn.

Door ENABLE te gebruiken om de A111 uit te schakelen tussen pulse-sweep-zendingen, kunnen ontwikkelaars het energieverbruik van de A111 beperken tot 66µA (typisch). Andersom kunnen ontwikkelaars terwijl de A111 een reeks sweeps en metingen uitvoert de host-microcontroller in een sluimerstaat met laag verbruik brengen met de wait-for-interrupt (WFI) instructie die beschikbaar is in processors op basis van Arm® Cortex®-M om de microcontroller te wekken wanneer de A111 zijn werk heeft voltooid en een interrupt afgeeft.

Ontwerpers kunnen hun eigen precisie-klokbron toevoegen of op het interne klokcircuit van het apparaat vertrouwen, waar alleen een externe kristaloscillator voor nodig is, zoals de TSX-3225 van EPSON. Het apparaat werkt met een enkele voeding van 1,8 volt voor RF (VIO_1 en VIO_2) en digitaal (VIO_3). Ontwikkelaars kunnen ook aparte voedingsbronnen gebruiken voor toepassingen die meer energie nodig hebben. De VIO_Na- en VIO_Nb-pinnen die te zien zijn in Afbeelding 3 worden verbonden binnen het apparaat en Acconeer raadt aan om ze ook extern te verbinden op de printplaat.

Omdat de A111 puur is bedoeld als radar front-end-apparaat, slaat hij zelf geen permanente firmware op en vertrouwt in plaats daarvan op de host-microcontroller om alle sensorsoftware te laden en te zorgen voor de sensorinitiatie, configuratie, sweep-verwerving en signaalverwerking van de A111. Daarom is de keuze van de begeleidende microcontroller een belangrijke ontwerpbeslissing. Acconeer merkt op dat een microcontroller op basis van Arm Cortex-M4 zoals de STM32L476 van STMicroelectronics of de NRF52840 van Nordic Semiconductor gewoonlijk voldoende is voor het verwerken van relatief statische handelingen zoals het meten van afstanden of basis-bewegingsdetectie. Voor meer dynamische toepassingen, zoals ademhalingbewegingsdetectie of object tracking, beveelt Acconeer een op Arm Cortex-M7 gebaseerde microcontroller aan, zoals de ATSAME70 van Microchip Technology. Als zodanig combineert Acconeer het A111 PRC-apparaat met een ATSAME70 in zijn XM112-radarmodule.

De Acconeer XM112-module combineert de A111-radarsensor met een ATSAME70-microcontroller van Microchip Technology om een completer radarsubsysteem te bieden. Ontwikkelaars kunnen de XM112 samen met het XB112 breakout-board gebruiken om de A111 onmiddellijk te kunnen evalueren en te beginnen met het bouwen van sofwaretoepassingen op PCR-basis. Ze kunnen ook gewoon de 30-pins module van 24 mm x 16 mm in hun eigen PCB's pluggen om een autonoom PCR-subsysteem aan hun eigen ontwerpen toe te voegen. Voor het uitvoeren van radardetectie kunnen ontwikkelaars de XM112-module besturen via een seriële verbinding met hun ontwikkelingssystemen of software direct uitvoeren op de ATSAME70 host microcontroller van de XM112.

Software-interface

Los van de configuratie van hardwaresystemen, worden radarmetingen programmatisch bestuurd met de application programming interface (API) voor de Acconeer radar system software (RSS). De RSS API fungeert als enige software-interface voor het werken met de A111. Acconeer ondersteunt geen toegang tot de registers van de A111 via typische SPI-transacties vanwege de complexiteit van het ontwerp, kalibratie en verwerkingseisen. In plaats daarvan werken alle bewerkingen via de RSS, die A111-detectorfunctionaliteit levert. Die detectors bouwen op hun beurt voort op services van een lager niveau via API's om toegang te krijgen tot verschillende soorten voorverwerkte gegevens van de A111. Die services zijn:

  • Envelope-service, die informatie geeft over de amplitude van sensorgegevens
  • Power Bin-service, die amplitude-informatie geeft in voorgedefinieerde intervallen (bins)
  • IQ-service, die IQ-gemoduleerde gegevens biedt, waardoor fase- en amplitudemetingen kunnen worden gebruikt om meer nauwkeurige metingen te genereren dan mogelijk is met de Envelope- en Power Bin-service, die alleen amplitude gebruiken.

Binnen deze services kunnen ontwikkelaars speciale functies gebruiken voor voedingsbeheer, bereikverbetering en zelfkalibratie, onder andere.

Voor voedingsbeheer kunnen ze het apparaat in één van de vier voedingsmodi zetten die het energieverbruik verminderen door de sensorupdatesnelheid te verlagen. Met de bereikverbeteringsfunctie kunnen ontwikkelaars lange sweeps uitvoeren die het meetbereik verlengen tot 7 meter (m) in sommige omstandigheden. Ten slotte kunnen ontwikkelaars met de zelfkalibratiefunctie het energieverbruik dat samenhangt met de kalibratiecyclus verminderen, die altijd wordt uitgevoerd wanneer het apparaat wordt opgestart. In ontwerpen voor het IoT die op batterijen werken bijvoorbeeld, kunnen apparaten routinematig in de slaapstand worden gezet of zelfs worden uitgeschakeld tijdens lange perioden van inactiviteit.

In veel gevallen is zelfkalibratie aan het begin van iedere waakcyclus niet nodig en is het alleen energieverspilling. Ontwikkelaars kunnen in plaats daarvan de waarden van een initiële kalibratiecyclus opslaan in niet-vluchtig geheugen en die waarden gebruiken om metingen betrouwbaar uit te voeren tijdens latere waakperiodes.

Voor productiecodeontwikkeling kunnen ingenieurs het volledige softwaredistributiepakket downloaden, dat voorbeeld-toepassingsbroncode bevat, samen met de Acconeer SDK. De SDK bevat headerbestanden en voorgecompileerde RSS-bibliotheken voor Arm Cortex-M4- en Arm Cortex-M7-microcontrollers in aparte microcontroller-specifieke distributies.

De C-taalcodevoorbeelden van de SDK laten het basisontwerppatroon zien voor het gebruik van de RSS API om radarmetingen uit te voeren in productietoepassingen. Voor alle soorten metingen begint dit ontwerppatroon met het initialiseren van het systeem en de RSS, waarbij in sequentie drie routines worden opgeroepen:

  • acc_driver_hal_init(), wat de kaart en de GPIO's initialiseert
  • acc_driver_hal_get_implementation(), wat een C structuur, acc_hal_t, instantieert, die sensor- en boardeigenschappen bevat, naast pointers naar runtime-handlers voor het toewijzen van geheugen, semaphores enz.
  • acc_rss_activate_with_hal(), wat het Radar System Services (RSS)-hulpprogramma zelf inschakelt

Vanaf hier wordt er bij een typische meting een object gecreëerd dat een configuratie wordt genoemd en dat parameters bevat die betrekking hebben op de sensor en de betreffende meting. Die configuratie wordt vervolgens gebruikt om een RSS API-functie op te roepen om de gewenste detector of service te creëren. De voorbeeldcode licht de toepassing van dit ontwerppatroon toe in een module, example_detector_distance_peak.c, voor het creëren van en werken met een afstand-piekdetector. In die module voert de main() routine (Lijst 1) eerst initialisatie en RSS-activering uit voordat er een configuratie wordt gecreëerd (acc_detector_distance_peak_configuration_create()) en die configuratie wordt gebruikt om een piekdetector te creëren (distance_peak_detect_with_blocking_calls()).

Copy 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; } 

Lijst 1: Voorbeeldcode in de Acconeer softwareontwikkelingskit-distributie laat het basis-ontwerppatroon zien voor het gebruik van de application programming interface (API) van de Acconeer Radar System Services (RSS) om metingen uit te voeren met de Acconeer A111-sensor. (Bron code: Acconeer)

In deze voorbeeldtoepassing worden de werkelijke afstand-piekmetingen uitgevoerd in de routine distance_peak_detect_with_blocking_calls(). Deze routine gebruikt op zijn beurt weer de RSS API-functie acc_detector_distance_peak_get_next() om de werkelijke meetgegevens op te halen van het A111-apparaat (Lijst 2). In dit geval plaatst de code de acc_detector_distance_peak_get_next() meetroutine in een loop, door een teller te laten verminderen, detection_runs, totdat er 100 metingen zijn uitgevoerd.

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: 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--; } 

Lijst 2: Bij het uitvoeren van metingen met de Acconeer A111-sensor, werken ontwikkelaars uitsluitend via de application programming interface (API) van de Acconeer Radar System Services (RSS), om RSS-routines op te roepen zoals acc_detector_distance_peak_get_next() die de low-level details verwerken zoals te zien is in dit fragment. (Bron code: Acconeer)

Ontwikkelaars kunnen hun eigen detectors implementeren, met serviceoproepen in een dergelijk ontwerppatroon voor initialisatie, RSS-activering, creatie van een configuratie en service-instantiatie. Om bijvoorbeeld de Envelope Service te gebruiken, roepen ontwikkelaars acc_service_envelope_configuration_create() op om de benodigde configuratie te creëren en gebruiken ze die configuratie als parameter bij het oproepen van acc_service_create() om een service-object te instantiëren.

Door de C-taal voorbeeldcode te verkennen kunnen ontwikkelaars snel ervaring opdoen met het gebruik van de RSS API om gespecialiseerde radartoepassingen te bouwen met aangepaste detectors. Om ontwikkelaars te helpen om sneller vertrouwd te raken met detectie op radarbasis in het algemeen en RSS-services in het bijzonder, biedt Acconeer ook voorbeeldcode in zijn Python Exploration Kit software repository.

De Python Exploration Kit is ontworpen om met de Acconeer SDK en evaluatiekits als de XM112 te werken en helpt ontwikkelaars gebruik te maken van de productiviteitsvoordelen van Python bij het werken met RSS-services en detectors. Naast basisvoorbeelden bevat de kit voorbeeldcode voor het implementeren van zeer geraffineerde meettoepassingen, zoals het detecteren van ademhalingspatronen bij slapende personen, het gebruik van fase-informatie voor het traceren van relatieve bewegingen, het detecteren van naderende obstakels en meer.

Conclusie

Radardetectietechnologie kan zeer nauwkeurige metingen leveren voor afstands- en bewegingstoepassingen. Het kan echter veel energie kosten om die nauwkeurigheid te bereiken en er is gewoonlijk een ingewikkeld ontwerpproces voor nodig. Door gebruik te maken van PCR levert de geïntegreerde radarsensor Acconeer A111 de combinatie van hoge nauwkeurigheid en laag energieverbruik die nodig is voor slimme producten en andere opkomende toepassingen. De begeleidende software-ontwikkelingskit (SDL) vereenvoudigt de verwerking van radarsignalen door het soort gegevens van hoger niveau te leveren dat nodig is op toepassingsniveau.

Door de SDK te gebruiken met een ontwikkelingsbord op A111-basis kunnen ingenieurs snel ervaring opdoen met radardetectietechnologie en in korte tijd geraffineerde toepassingen implementeren die objecten kunnen onderscheiden en bewegingen kunnen traceren met millimeterresolutie.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Achtergrondinformatie over deze auteur

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk heeft meer dan 20 jaar ervaring in het schrijven voor en over de elektronicasector met betrekking tot heel wat onderwerpen, waaronder hardware, software, systemen en toepassingen zoals het IoT. Hij behaalde zijn filosofiediplomain neurowetenschappen over neuronale netwerken en werkte in de ruimtevaartsector op massaal verspreide veilige systemen en algoritmeversnellingsmethoden. Wanneer hij geen artikels over technologie en techniek schrijft, werkt hij aan toepassingen voor “deep learning” voor herkennings- en aanbevelingssystemen.

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey