PCR 모듈을 사용하여 정확한 저전력 레이더 기반 센서를 빠르게 개발
DigiKey 북미 편집자 제공
2019-05-14
고분해능 3D 센서 기술이 제스처 기반 사용자 인터페이스, 자동차 운전자 지원 시스템(ADAS) 등 다양한 응용 분야에서 중요한 기능으로 부상했습니다. 3D 센서 대안 중에서 레이더 기술은 기존 접근 방식에서는 제공할 수 없는 기능 및 성능 특성을 제공합니다. 그런데도 개발자는 높은 정확도와 낮은 전력 소비를 유지하는 데 어려움을 느끼고 있으며 레이더 센서 시스템을 배포하려면 어느 정도의 교육이 필요합니다.
펄스형 가간섭성 레이더(PCR)라는 고급 기술을 사용하여 Acconeer는 스마트 제품과 디른 새롭게 등장하는 응용 분야에 필요한 높은 정확도와 저전력 소비를 모두 제공하는 통합 레이더 센서를 개발했습니다.
이 기사에서는 PCR 기술을 기반으로 하는 레이더 모듈 및 관련 개발 플랫폼을 소개하기 전에 Acconeer의 PCR 접근 방식을 설명합니다. 그런 다음 플랫폼을 사용하여 배터리 구동 스마트 제품을 비롯한 광범위한 시스템에서 정교한 레이더 센서 기술을 설계하는 방법을 보여줍니다.
레이더를 선택해야 하는 이유?
높은 업데이트 빈도로 밀리미터급 분해능을 제공할 수 있는 레이더 기반 감지 기술을 사용하여 정밀 물체 감지, 범위 측정, 위치 추적 등과 같은 응용 분야에 필요한 매우 정확한 거리 및 동작 데이터를 제공할 수 있습니다. 하지만 레이더 기술을 스마트 제품 설계에 통합함으로써 개발자는 일반적으로 낮은 전력과 높은 정확도 중에서 선택해야 합니다. 개발자가 제한된 전력 예산으로 설계에 이 기술을 적용하려고 모색함에 따라 응용 분야에서 낮은 전력 수준에서도 정확도를 유지해야 할 필요성이 증가하고 있습니다.
고급 레이더 기술
기존 레이더 설계에 대한 대체 방식에서는 정교한 가간섭성 레이더 모듈의 정확도를 펄스형 레이더 시스템의 축소된 전력 요구 사항과 결합하는 솔루션을 제공합니다. 펄스형 레이더 설계에서는 펄스 사이의 송신기를 차단하여 낮은 전력 소비를 실현하지만 정확도가 더 낮아집니다. 반면에 가간섭성 레이더 시스템은 지속적인 펄스 트레인을 전송하여 반송파 신호의 정밀한 위상 측정을 통해 높은 정확도의 측정치를 제공하지만 전력 소비 비용이 높습니다.
Acconeer는 A111 레이더 센서에서 사용되는 PCR 기술에서 이 두 기술을 결합했습니다. 펄스형 레이더와 마찬가지로 PCR 기술에서는 전송 중에 무선 통신이 꺼지지만 가간섭성 시스템과 마찬가지로 알려진 시작 위상을 통해 전송 중에 펄스 버스트 또는 스윕이 생성됩니다(그림 1).

그림 1: Acconeer의 A111 펄스형 가간섭성 레이더 장치는 주의해서 제어되는 펄스 반복 빈도(PRF), 중심 주파수(fRF) 및 펄스 기간(tpulse)으로 긴 파장 또는 짧은 파장을 전송하여 낮은 전력에서 높은 정확도를 실현합니다. (이미지 출처: Acconeer)
펄스 기간(tpulse)과 같은 파라미터를 조정하여 개발자는 응용 분야별로 신호를 최적화할 수 있습니다. 예를 들어, 개발자는 tpulse를 줄여서 제스처 제어 사용자 인터페이스 응용 제품에서 개별 손가락의 작은 움직임을 확인하는 데 필요한 짧은 파장을 생성할 수 있습니다. 반대로 tpulse를 높여서 자동차 셀프 주차 응용 분야에서 장애물을 확인하는 데 필요한 고에너지, 긴 파형 요소를 생성할 수 있습니다.
PCR 매력적인 기술적 이점에도 불구하고 레이더 기술에 대한 전문 지식이 부족한 개발자는 이 기술을 직접 구현하는 것이 시간적으로 도움이 되지 않을 수 있습니다. 효과적인 밀리미터파(mmWave) 프런트 엔드 스테이지 설계 문제 외에도 개발자는 반사된 레이더 신호에서 획득된 진폭 및 위상 데이터를 유용한 거리 및 동작 측정치로 변환하는 데 많은 어려움에 직면할 수 있습니다.
이러한 문제를 해결하기 위해 설계된 Acconeer PCR 기반 A111 레이더 장치 및 관련 소프트웨어 개발 키트(SDK)는 저수준 상세 레이더 신호 처리 정보를 추출하여 응용 제품에서 쉽게 사용할 수 있는 형태로 데이터를 제공합니다.
개발을 간소화하는 통합 PCR 프런트 엔드
PCR 기술 구현의 하드웨어 측면을 간소화한 Acconeer A111은 5.2mm x 5.5mm x 0.88mm fcCSP(플립칩 칩스케일 패키지)에서 mmWave 레이더 프런트 엔드를 AIP(안테나 인 패키지)와 결합하는 완벽한 레이더 센서를 제공합니다(그림 2).

그림 2: Acconeer A111은 밀리미터파(mmWave) 무선 통신, 디지털 서브 시스템 및 전력 관리를 통합하여 펄스 가간섭성 레이더 기술로 레이더를 감지하는 완벽한 프런트 엔드 솔루션을 제공합니다. (이미지 출처: Acconeer)
mmWave 무선 주파수(RF) 서브 시스템과 함께 A111은 mmWave 무선 서브 시스템 관리를 위한 데이터 및 프로그램 전용 메모리 영역이 있는 디지털 서브 시스템을 포함합니다. 별도 서브 시스템은 파워온 리셋(PoR), 장치의 여러 전력 도메인을 위한 낮은 개별 드롭아웃(LDO) 조정기를 비롯한 위상 고정 루프(PLL) 타이밍 및 전력 관리 기능을 제공합니다.
피코초급 시간 분해능을 사용하여 이 장치는 일반적으로 최대 2m 범위에서 밀리미터급 정확도로 거리를 측정할 수 있습니다. 또한 낮은 전력 소비로 개발자가 배터리 구성 장치에서도 사용할 수 있습니다. A111 센서의 높은 집적 수준으로 인해 개발자는 설계에서 레이더 감지를 구현하기 위해 호스트 마이크로 컨트롤러 외에 몇 개의 추가 부품만 있으면 됩니다(그림 3). A111은 레이더 신호 애퍼처 없이 작동할 수 있으므로 개발자는 기존 침투 보호 요구 사항을 훼손하지 않으면서 스마트 제품에 A111을 통합할 수 있습니다.

그림 3: A111은 레이더 프런트 엔드에 필요한 모든 무선 주파수와 디지털 서브 시스템을 통합하므로 개발자가 호스트 마이크로 컨트롤러 이외에 단 몇 개의 추가 부품으로 레이더 감지를 구현할 수 있습니다. (이미지 출처: Acconeer)
A111은 직렬 데이터 입력(MOSI), 직렬 출력(MISO), 클록(SPI_CLK) 및 슬레이브 선택 신호(SS) 포트를 통해 기존 직렬 주변 장치 인터페이스(SPI) 장치 역할을 합니다. A111의 활성화 핀은 개발자가 마이크로 컨트롤러를 사용하여 장치를 켜고 끌 수 있도록 해주며, INTERRUPT 핀은 A111을 사용하여 측정 준비가 되면 마이크로 컨트롤러에 알릴 수 있도록 해줍니다.
개발자는 활성화 핀을 통해 펄스 스윕 전송 사이에 A111의 전원을 차단하여 A111 전력 소비를 66µA(통상)로 줄일 수 있습니다. 반면에 A111이 일련의 스윕 및 측정을 수행하는 동안 개발자는 Arm® Cortex®-M 기반 프로세서에서 제공되는 인터럽트 대기(WFI) 명령을 사용하여 호스트 마이크로 컨트롤러를 저전력 절전 상태로 전환하고 A111이 작업을 완료하고 인터럽트를 실행하면 마이크로 컨트롤러를 깨울 수 있습니다.
설계자는 정밀한 클록 소스를 직접 추가하거나 EPSON의 TSX-3225 같은 외부 수정 발진기만 필요한 장치의 내장 클록 회로를 사용할 수 있습니다. 이 장치는 RF(VIO_1 및 VIO_2) 및 디지털(VIO_3)을 위한 단일 1.8V 공급 장치로만 작동합니다. 또는 개발자가 보다 전력 집약적인 응용 분야를 위해 별도의 공급 소스를 사용할 수 있습니다. 그림 3에 표시된 VIO_Na 및 VIO_Nb 핀은 장치 내에 연결되며 PC 기판에도 외부적으로 연결하는 것이 좋습니다.
원래 레이더 프런트 엔드 장치로 고안된 A111은 자체적으로 펌웨어를 영구히 저장하지 않고 호스트 마이크로 컨트롤러를 사용하여 모든 센서 소프트웨어를 업로드하고 A111 센서 시작, 구성, 스윕 취득 및 신호 처리를 실시합니다. 따라서 설계 시 컴패니언 마이크로 컨트롤러를 선택하는 것이 중요합니다. Arm Cortex-M4 기반 마이크로 컨트롤러(예: STMicroelectronics의 STM32L476 또는 Nordic Semiconductor의 NRF52840)는 일반적으로 거리 측정, 기본 동작 감지 등과 같은 상대적으로 정적인 작업을 처리하는 데 충분합니다. 호흡 동작 감지, 물체 추적 등과 같은 보다 동적인 응용 분야의 경우 Arm Cortex-M7 기반 마이크로 컨트롤러(예: Microchip Technology의 ATSAME70)를 사용하는 것이 좋습니다. 따라서 Acconeer는 XM112 레이더 모듈에서 A111 PCR 장치를 ATSAME70과 쌍으로 연결했습니다.
Acconeer XM112 모듈은 A111 레이더 센서를 Microchip Technology ATSAME70 마이크로 컨트롤러와 결합하여 완벽한 레이더 서브 시스템을 제공합니다. 개발자는 XB112 브레이크아웃 기판에서 XM112를 함께 사용하여 A111 평가를 즉시 시작하고 PCR 기반 소프트웨어 응용 제품을 빌드할 수 있습니다. 또한 개발자는 30핀 24mm x 16mm 모듈을 자체 PCB에 간단히 연결하여 독립형 PCR 서브 시스템을 맞춤형 설계에 추가할 수 있습니다. 레이더 감지를 수행하기 위해 개발자는 개발 시스템과의 직렬 연결을 통해 XM112 모듈을 제어하거나 XM112 호스트 ATSAME70 마이크로 컨트롤러에서 소프트웨어를 직접 실행할 수 있습니다.
소프트웨어 인터페이스
하드웨어 시스템의 구성에 상관없이 레이더 측정은 Acconeer 레이더 시스템 소프트웨어(RSS) 응용 프로그래밍 인터페이스(API)를 사용하여 프로그래밍 방식으로 제어됩니다. RSS API는 A111 작업을 위한 단독 소프트웨어 인터페이스 역할을 합니다. Acconeer는 복잡한 설계, 보정 및 처리 요구 사항으로 인해 일반 SPI 트랜잭션을 통한 A111 레지스터 액세스를 지원하지 않습니다. 대신 A111 감지기 기능을 제공하는 RSS를 통해 모든 작업을 수행합니다. 이러한 감지기는 A111에서 다양한 유형의 사전 처리된 데이터에 액세스하는 API를 통해 낮은 수준의 서비스를 기반으로 구축됩니다. 이러한 서비스는 다음과 같습니다.
- 센서 데이터의 진폭에 대한 정보를 제공하는 엔벨로프 서비스
- 사전 정의된 범위 간격(bin)으로 진폭 정보를 제공하는 Power Bin 서비스
- IQ 변조 데이터를 제공하는 IQ 서비스(위상 및 진폭 측정을 사용하여 엔벨로프 서비스와 Power Bin 서비스만 사용할 때보다 더 정확한 측정치 생성 가능)
이러한 서비스 내에서 개발자는 전력 관리, 범위 향상, 자가 보정 등을 위한 특수 기능을 활용할 수 있습니다.
전력 관리의 경우 개발자는 센서 업데이트 속도를 줄여서 전력 소비를 줄이는 네 전력 모드 중 하나로 장치를 전환할 수 있습니다. 범위 향상 기능을 사용하면 개발자가 일부 조건에서 측정 범위를 7m까지 연장하는 긴 스윕을 수행할 수 있습니다. 마지막으로 자가 보정 기능을 사용하면 개발자가 장치를 시작할 때마다 발생하는 보정 주기와 관련한 전력 소비를 줄일 수 있습니다. 예를 들어, IoT를 위한 배터리 구동 설계에서 장치를 오랫동안 사용하지 않을 경우 절전 모드로 전환하거나 장치 전원을 끌 수 있습니다.
대부분의 경우 절전 해제 주기를 시작할 때마다 자가 보정을 수행하는 것은 불필요하고 전력만 낭비됩니다. 대신 개발자는 초기 보정 조기의 값을 비휘발성 메모리에 저장하였다가 해당 값을 사용하여 다음 절전 해제 기간 동안 안정적으로 조치할 수 있습니다.
프로덕션 코드 개발을 위해 엔지니어는 Acconeer SDK와 함께 샘플 애플리케이션 소스 코드를 제공하는 전체 소프트웨어 배포 패키지를 다운로드할 수 있습니다. SDK에는 별도 마이크로 컨트롤러 관련 배포에 Arm Cortex-M4 및 Arm Cortex-M7 마이크로 컨트롤러를 위해 사전 컴파일된 RSS 라이브러리와 함께 헤더 파일이 포함되어 있습니다.
SDK의 C 언어 코드 샘플은 프로덕션 응용 분야에서 RSS API를 사용하여 레이더 측정을 수행하는 기본 설계 패턴을 보여줍니다. 모든 유형의 측정에서 이 설계 패턴은 시스템 및 RSS를 초기화하고 세 루틴을 순서대로 호출하여 시작됩니다.
acc_driver_hal_init()- 기판 및 GPIO를 초기화합니다.acc_driver_hal_get_implementation()- 메모리 할당, 스마트폰 등을 위한 런타임 핸들러에 대한 포인터와 센서 및 기판 속성을 보관하는 C 구조 acc_hal_t를 초기화합니다.acc_rss_activate_with_hal()- 레이더 시스템 서비스(RSS) 유틸리티를 활성화합니다.
여기서 일반 측정에서는 센서 및 특정 측정과 연관된 파라미터를 포함하는 구성이라고 하는 개체를 생성합니다. 그런 다음 이 구성을 사용하여 RSS API 함수를 호출하여 원하는 감지기 또는 서비스를 생성합니다. 샘플 코드는 거리 피크 감지기로 생성 및 작업하기 위한 example_detector_distance_peak.c 모듈에서 응용된 이 설계 패턴을 보여줍니다. 이 모듈에서 main() 루틴(목록 1)은 먼저 초기화 및 RSS 활성화를 수행한 후 구성(acc_detector_distance_peak_configuration_create())을 생성하고 해당 구성을 사용하여 피크 감지기(distance_peak_detect_with_blocking_calls())를 생성합니다.
복사 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; }
목록 1: Acconeer 소프트웨어 개발 키트 배포에 포함된 샘플 코드는 Acconeer 레이더 시스템 서비스(RSS) 응용 프로그래밍 인터페이스(API)를 사용하여 Acconeer A111 센서로 측정을 수행하기 위한 기본 설계 패턴을 보여줍니다. (코드 출처: Acconeer)
이 샘플 응용 프로그램에서 실제 거리 피크 측정은 distance_peak_detect_with_blocking_calls() 루틴에서 수행됩니다. 이 루틴에서는 RSS API 함수 acc_detector_distance_peak_get_next()를 사용하여 A111 장치에서 실제 측정 데이터를 검색합니다(목록 2). 이 경우 코드는 acc_detector_distance_peak_get_next() 측정 루틴을 루프에 배치하고 측정을 100회 수행할 때까지 detection_runs 카운터를 하나씩 줄입니다.
복사 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--;
}
목록 2: Acconeer A111 센서로 측정을 수행할 때 개발자는 이 코드 조각에 표시된 대로 저수준 상세 정보를 처리하는 acc_detector_distance_peak_get_next()와 같은 RSS 루틴을 호출하여 Acconeer 레이더 시스템 서비스(RSS) 응용 프로그래밍 인터페이스(API)를 통해 독점적으로 작업합니다. (코드 출처: Acconeer)
개발자는 초기화, RSS 활성화, 구성 생성, 서비스 인스턴스화 등에서 비슷한 설계 패턴의 서비스 호출을 사용하여 자체 감지기를 구현할 수 있습니다. 예를 들어, 엔벨로프 서비스를 사용하기 위해 개발자는 acc_service_envelope_configuration_create()를 호출하여 필요한 구성을 생성하고 acc_service_create()를 호출할 때 해당 구성을 파라미터로 사용하여 서비스 개체를 인스턴스화합니다.
C 언어 샘플 코드를 탐색하여 개발자는 RSS API를 사용하여 맞춤형 감지기로 특수 레이더 응용 제품을 빌드하는 방법을 빠르게 체험해 볼 수 있습니다. 또한 개발자가 일반 레이더 기반 감지와 RSS 서비스를 빠르게 익힐 수 있도록 돕기 위해 Acconeer는 Python 탐색 키트 소프트웨어 저장소에 샘플 코드를 제공합니다.
Acconeer SDK 및 평가 키트(예: XM112)와 함께 작동하도록 설계된 Python 탐색 키트는 개발자가 RSS 서비스 및 감지기 작업에서 Python의 생산성 이점을 활용할 수 있도록 도와줍니다. 이 키트는 기본 예제와 함께 절전 중인 주체의 호흡 패턴 감지, 위상 정보를 사용한 상대적 움직임 추적, 접근하는 장애물 감지를 비롯한 매우 정교한 측정 응용 제품을 구현하는 샘플 코드를 제공합니다.
결론
레이더 감지 기술은 거리 및 동작 응용 분야에서 매우 정확한 측정치를 제공할 수 있습니다. 하지만 정확성을 실현하기 위해 많은 전력을 소비하고 일반적으로 복잡한 설계 과정을 포함합니다. PCR을 구현하여 Acconeer A111 통합 레이더 센서는 스마트 제품과 새롭게 등장하는 다른 응용 분야에 필요한 높은 정확도와 저전력 소비를 모두 제공합니다. 컴패니언 소프트웨어 개발 키트(SDK)는 응용 제품 레벨에 필요한 높은 수준의 데이터를 제공하여 레이더 신호 처리의 복잡도를 줄여줍니다.
A111 기반 개발 기판에서 SDK를 사용하여 엔지니어는 레이더 감지 기술을 빠르게 경험하고, 물체를 감지하고 밀리미터 분해능으로 움직임을 추적할 수 있는 정교한 응용 제품을 빠르게 구현할 수 있습니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.


