高分辨率 3D 傳感器技術(shù)已經(jīng)成為各種應(yīng)用的一大關(guān)鍵功能,從基于手勢的用戶界面到汽車駕駛員輔助系統(tǒng) (ADAS) 等。在各種 3D 傳感器技術(shù)中,雷達技術(shù)具有大多數(shù)傳統(tǒng)方法所不具備的功能和性能特點。然而,開發(fā)人員發(fā)現(xiàn)保持高精度和低功耗具富挑戰(zhàn)性,部署雷達傳感器系統(tǒng)也具有陡峭的學(xué)習(xí)曲線。
Acconeer 使用被稱作相干脈沖雷達 (PCR) 的先進技術(shù)開發(fā)集成式雷達傳感器,為智能產(chǎn)品和其他新興應(yīng)用同時提供了所需的高精度和低功耗。
本文首先介紹 Acconeer 的 PCR 方法,然后介紹一款雷達模塊以及基于該技術(shù)的相關(guān)開發(fā)平臺。此外,本文還將演示如何使用該平臺將復(fù)雜的雷達傳感器技術(shù)應(yīng)用到各種系統(tǒng)設(shè)計中,包括電池供電的智能產(chǎn)品。
為什么要使用雷達?
在更新頻率較快的情況下,基于雷達的感應(yīng)技術(shù)仍能夠提供毫米級分辨率,并為精確物體檢測、距離測量、定位跟蹤等各種應(yīng)用提供所需的高精度距離和運動數(shù)據(jù)。但是,要在智能產(chǎn)品設(shè)計中采用雷達技術(shù),開發(fā)人員通常必須在低功耗或高精度這兩者之間進行取舍。隨著開發(fā)人員將這項技術(shù)應(yīng)用于功率預(yù)算有限的設(shè)計,越來越多的應(yīng)用要求保持高精度,即使代價是降低功率水平。
先進的雷達技術(shù)
有別于傳統(tǒng)雷達設(shè)計的另一種方法提供了相應(yīng)的解決方案,可將復(fù)雜相干雷達方法的高精度與脈沖雷達系統(tǒng)的低功耗要求結(jié)合在一起。脈沖雷達系統(tǒng)會在脈沖之間關(guān)閉發(fā)射器,從而實現(xiàn)低功耗,但精度也比較低。相反,相干雷達系統(tǒng)則可發(fā)射連續(xù)脈沖,使用對返回信號的精確相位測量來提供高精度測量,代價則是功耗較高。
Acconeer 的 A111 雷達傳感器中使用的 PCR 技術(shù)結(jié)合了這兩種技術(shù)。與脈沖雷達一樣,PCR 在脈沖發(fā)射之間也會關(guān)閉無線電,但與相干雷達系統(tǒng)一樣,發(fā)射的是脈沖串,即掃描,具有已知的起始相位(圖 1)。
圖 1:Acconeer 的 A111 相干脈沖雷達器件通過發(fā)射長短不同的小波,對脈沖重復(fù)頻率 (PRF)、中心頻率 (fRF)、脈沖持續(xù)時間 (tpulse) 進行精準(zhǔn)控制,以低功耗實現(xiàn)高精度。(圖片來源:Acconeer)
通過調(diào)節(jié)脈沖持續(xù)時間 (tpulse) 等參數(shù),開發(fā)人員能夠針對不同應(yīng)用來優(yōu)化信號。例如,在手勢控制的用戶界面應(yīng)用中,開發(fā)人員可以縮短 tpulse 以生成時間較短的小波,來解析各手指的小幅運動。相反,在汽車自動停車應(yīng)用中,他們可以延長 tpulse 以生成時間較長的高能量小波,來解析障礙物。
雖然 PCR 的技術(shù)優(yōu)勢頗具吸引力,但若沒有雷達技術(shù)領(lǐng)域的豐富經(jīng)驗,開發(fā)人員很少有時間能自行實現(xiàn)這項技術(shù)。除了在高效毫米波 (mmWave) 前端設(shè)計階段所面臨的挑戰(zhàn)外,開發(fā)人員還面臨著另一項嚴峻挑戰(zhàn),即將所采集的反射雷達信號的幅值和相位數(shù)據(jù)轉(zhuǎn)換為實用的距離和運動測量數(shù)據(jù)。
Acconeer 基于 PCR 的 A111 雷達器件和相關(guān)軟件開發(fā)套件 (SDK) 專為應(yīng)對這些挑戰(zhàn)而設(shè)計,可提取雷達信號處理的低級細節(jié),并以應(yīng)用易于處理的方式來提供數(shù)據(jù)。
集成式 PCR 前端簡化開發(fā)
Acconeer 的 A111 在硬件方面簡化了 PCR 技術(shù)實施,提供完整的雷達傳感器,將毫米波雷達前端與封裝天線 (AIP) 集成,采用 5.2 x 5.5 x 0.88 mm 的倒裝片芯片級封裝 (fcCSP)(圖 2)。
圖 2:Acconeer 的 A111 集成毫米波無線電、數(shù)字子系統(tǒng)、定時和電源管理模塊,為使用相干脈沖雷達技術(shù)的雷達檢測提供完整的前端解決方案。(圖片來源:Acconeer)
除了毫米波射頻 (RF) 子系統(tǒng)之外,A111 還包括數(shù)字子系統(tǒng),為程序和數(shù)據(jù)提供專用存儲區(qū)域,用于管理毫米波無線電子系統(tǒng)。獨立子系統(tǒng)提供鎖相環(huán) (PLL) 定時和電源管理功能,包括上電復(fù)位 (PoR) 和獨立低壓差 (LDO) 穩(wěn)壓器,適用于器件的多個功率域。
憑借皮秒級的時間分辨率,在長達兩米的測量范圍內(nèi),該器件的測距精度通常能夠達到毫米級。同時,低功耗特性讓開發(fā)人員能夠?qū)⑵溆糜陔姵毓╇姷脑O(shè)備。由于 A111 傳感器高度集成,開發(fā)人員在主機微控制器之外只需其他少量元器件,即可在設(shè)計中實現(xiàn)雷達檢測(圖 3)。由于 A111 能夠在未合成孔徑雷達信號的情況下工作,因而開發(fā)人員能夠?qū)⑵鋺?yīng)用在智能產(chǎn)品中,而不影響現(xiàn)有的侵入防護要求。
圖 3:由于 A111 集成了雷達前端所需的全部射頻和數(shù)字子系統(tǒng),因而開發(fā)人員在主機微控制器之外只需其他少量元器件,即可實現(xiàn)雷達檢測。(圖片來源:Acconeer)
A111 充當(dāng)傳統(tǒng)的串行外設(shè)接口 (SPI) 器件,具有串行數(shù)據(jù)輸入 (MOSI)、串行輸出 (MISO)、時鐘 (SPI_CLK) 和從設(shè)備選擇信號 (SS) 端口。A111 的使能引腳 (ENABLE) 讓開發(fā)人員能夠使用微控制器為器件上電和斷電,而中斷引腳 (INTERRUPT) 讓開發(fā)人員能夠在測量就緒時使用 A111 通知微控制器。
通過在脈沖掃描發(fā)射之間利用使能引腳關(guān)閉 A111,開發(fā)人員能夠?qū)?A111 功耗降低至 66 μA(典型值)。相反,在 A111 執(zhí)行一系列掃描和測量時,開發(fā)人員可使用基于 Arm? Cortex?-M 的處理器所提供的等待中斷 (WFI) 指令,將主機微控制器置于低功耗休眠狀態(tài),并在 A111 完成操作后發(fā)出中斷來喚醒微控制器。
設(shè)計人員可以自行添加高精度時鐘源,也可以依賴器件的內(nèi)部時鐘電路,后者只需接入 EPSON 的 TSX-3225 等外部晶體振蕩器即可工作。該器件使用 1.8 V 單電源為射頻(VIO_1 和 VIO_2)和數(shù)字 (VIO_3) 端供電?;蛘?,對于高能耗應(yīng)用,開發(fā)人員可以使用獨立電源。圖 3 所示的 VIO_Na 和 VIO_Nb 引腳已在器件內(nèi)部連接,Acconeer 建議在印刷電路板上對其進行外部連接。
A111 專門作為雷達前端器件而設(shè)計,因此本身并不具備任何永久性存儲的固件,而是依賴于主機微控制器來上傳所有傳感器軟件,處理 A111 傳感器啟動、配置、掃描采集和信號處理。因此,輔助微控制器的選擇是一項重要的設(shè)計決策。Acconeer 指出,STMicroelectronics 的 STM32L476 或 Nordic Semiconductor 的 NRF52840 等基于 Arm Cortex-M4 的微控制器,通常足以處理測距或基本運動檢測等相對靜態(tài)的操作。而對于呼吸運動檢測或?qū)ο蟾櫟雀鼊討B(tài)的應(yīng)用,Acconeer 則推薦使用基于 Arm Cortex-M7 的微控制器,例如 Microchip Technology 的 ATSAME70。因此,Acconeer 在 XM112 雷達模塊中,將 A111 PCR 器件與 ATSAME70 配對使用。
Acconeer 的 XM112 模塊結(jié)合了 A111 雷達傳感器與 Microchip Technology 的 ATSAME70 微控制器,可提供完整的雷達子系統(tǒng)。開發(fā)人員可將 XM112 與 XB112 分線板結(jié)合使用,即可開始評估 A111,并構(gòu)建基于 PCR 的軟件應(yīng)用程序?;蛘?,開發(fā)人員只需將這款 30 引腳 24 mm x 16 mm 模塊插入自己的 PCB,即可為定制設(shè)計添加自足式 PCR 子系統(tǒng)。為了執(zhí)行雷達檢測,開發(fā)人員可以通過與開發(fā)系統(tǒng)串行連接來控制 XM112 模塊,或者直接在 XM112 主機 ATSAME70 微控制器上執(zhí)行軟件。
軟件接口
無論硬件系統(tǒng)如何配置,開發(fā)人員都要使用 Acconeer 雷達系統(tǒng)軟件 (RSS) 應(yīng)用編程接口 (API),以編程方式控制雷達測量。RSS API 是使用 A111 的唯一軟件接口。由于設(shè)計、校準(zhǔn)和處理要求的復(fù)雜性,Acconeer 不支持通過典型 SPI 事務(wù)對 A111 寄存器進行訪問。相反,所有操作都通過 RSS 進行,以此提供 A111 檢測器功能。這些檢測器轉(zhuǎn)而通過 API 構(gòu)建低級服務(wù),以便訪問來自 A111 的不同類型預(yù)處理數(shù)據(jù)。這些服務(wù)包括:
Envelope 服務(wù),提供有關(guān)傳感器數(shù)據(jù)的幅值信息
Power Bin 服務(wù),提供預(yù)定義范圍間隔 (bin) 內(nèi)的幅值信息
IQ 服務(wù),提供 IQ 調(diào)制數(shù)據(jù),可使用相位和幅值測量,生成的測量結(jié)果比使用僅幅值 Envelope 和 Power Bin 服務(wù)時更精確
在這些服務(wù)中,開發(fā)人員能夠充分利用電源管理、范圍增強、自校準(zhǔn)等特殊功能。
在電源管理方面,開發(fā)人員能夠?qū)⑵骷O(shè)置于四種功率模式中的一種模式,通過降低傳感器更新速率來減少功耗。開發(fā)人員可借助范圍增強功能來執(zhí)行長掃描,在某些條件下測量范圍可擴展至 7 米。最后,通過自校準(zhǔn)功能,開發(fā)人員能夠降低每次器件啟動時因校準(zhǔn)周期而產(chǎn)生的功耗。例如,在適用于物聯(lián)網(wǎng)的電池供電設(shè)計中,器件可能經(jīng)常處于休眠模式,甚至因長期保持非活動狀態(tài)而關(guān)閉。
很多情況下,每個喚醒周期開始時都執(zhí)行自校準(zhǔn)實無必要,純粹只是增加功耗而已。相反,開發(fā)人員可將初始校準(zhǔn)周期的數(shù)值存儲在非易失性存儲器中,并在后續(xù)的喚醒周期中使用這些值就能可靠地執(zhí)行測量。
對于生產(chǎn)代碼開發(fā),工程師可以下載完整的軟件分發(fā)包,該軟件包提供了樣例應(yīng)用程序源代碼以及 Acconeer SDK。SDK 提供了頭文件,并在針對特定微控制器的分發(fā)軟件中,分別提供了適用于 Arm Cortex-M4 和 Arm Cortex-M7 微控制器的預(yù)編譯 RSS 庫。
SDK 的 C 語言代碼樣例闡示了在生產(chǎn)應(yīng)用中使用 RSS API 執(zhí)行雷達測量的基本設(shè)計模式。對于任何類型的測量,這種設(shè)計模式首先都要初始化系統(tǒng)和 RSS,按順序調(diào)用三個例程:
acc_driver_hal_init(),用于初始化電路板和 GPIO
acc_driver_hal_get_implementation(),用于實例化 C 結(jié)構(gòu) acc_hal_t,C 結(jié)構(gòu)用于存儲傳感器和電路板屬性,以及存儲器分配和信號量等運行時間處理程序的指針。
acc_rss_activate_with_hal(),用于激活雷達系統(tǒng)服務(wù) (RSS) 實用程序本身
此時,典型測量需要創(chuàng)建名為配置的對象,其中包含傳感器和特定測量的相關(guān)參數(shù)。然后使用該配置來調(diào)用 RSS API 函數(shù),以構(gòu)建所需的檢測器或服務(wù)。樣例代碼闡示了這種設(shè)計模式在 example_detector_distance_peak.c 模塊中的應(yīng)用,以構(gòu)建和使用距離峰值檢測器。在該模塊中,main() 例程(清單 1)首先執(zhí)行初始化和 RSS 激活,然后創(chuàng)建配置 (acc_detector_distance_peak_configuration_create()),并使用該配置來構(gòu)建峰值檢測器 (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 軟件開發(fā)套件分發(fā)中包括的樣例代碼演示了使用 Acconeer 雷達系統(tǒng)服務(wù) (RSS) 應(yīng)用編程接口 (API),通過 Acconeer 的 A111 傳感器來執(zhí)行測量的基本設(shè)計模式。(代碼來源:Acconeer)
在這個樣例應(yīng)用程序中,實際的距離峰值測量在例程 distance_peak_detect_with_blocking_calls() 中執(zhí)行。該例程轉(zhuǎn)而使用 RSS API 函數(shù) acc_detector_distance_peak_get_next(),來檢索 A111 器件的實際測量數(shù)據(jù)(清單 2)。在本例中,代碼將 acc_detector_distance_peak_get_next() 測量例程置于循環(huán)中,遞減計數(shù)器 detection_runs,直至執(zhí)行 100 次測量。
復(fù)制 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 傳感器執(zhí)行測量的過程中,開發(fā)人員僅能使用 Acconeer 雷達系統(tǒng)服務(wù) (RSS) 應(yīng)用編程接口 (API),以調(diào)用 acc_detector_distance_peak_get_next() 等例程,用于處理低級細節(jié),如本代碼片段所示。(代碼來源:Acconeer)
開發(fā)人員能夠在類似的設(shè)計模式中使用服務(wù)調(diào)用來進行初始化、RSS 激活、配置創(chuàng)建、服務(wù)實例化,從而實現(xiàn)自己的檢測器。例如,要使用 Envelope 服務(wù),開發(fā)人員可以調(diào)用 acc_service_envelope_configuration_create() 來創(chuàng)建必需的配置,并在調(diào)用 acc_service_create() 時將該配置作為參數(shù)使用,以便實例化服務(wù)對象。
通過研究 C 語言樣例代碼,開發(fā)人員能夠使用 RSS API 來構(gòu)建帶定制檢測器的專用雷達應(yīng)用,從而快速獲取經(jīng)驗。為了幫助開發(fā)人員更快熟悉基于雷達的感應(yīng),特別是 RSS 服務(wù),Acconeer 還在 Python 探索套件軟件庫中提供了樣例代碼。
Python 探索套件旨在與 Acconeer SDK 和 XM112 等評估套件配合使用,幫助開發(fā)人員充分利用 Python 的工作效率優(yōu)勢來構(gòu)建 RSS 服務(wù)和檢測器。除了基本樣例之外,該套件還提供能實現(xiàn)復(fù)雜測量應(yīng)用的樣例代碼,包括檢測睡眠對象的呼吸模式、使用相位信息來跟蹤相對運動、檢測正在接近的障礙物等。
總結(jié)
雷達檢測技術(shù)能夠為距離和運動測量應(yīng)用提供高精度測量。但是,可能需要消耗大量功率才能實現(xiàn)高精度,設(shè)計過程通常也比較復(fù)雜。通過實現(xiàn) PCR 技術(shù),Acconeer 的 A111 集成式雷達傳感器為智能產(chǎn)品和其他新興應(yīng)用同時提供了所需的高精度和低功耗。輔助軟件開發(fā)套件 (SDK) 可以對雷達信號處理的復(fù)雜度進行抽象化,提供應(yīng)用級所需的更高級數(shù)據(jù)。
通過將 SDK 與基于 A111 的開發(fā)板配合使用,工程師能夠快速獲取雷達檢測技術(shù)方面的經(jīng)驗,快速實現(xiàn)可識別對象和跟蹤運動的復(fù)雜應(yīng)用,并達到毫米級分辨率。
評論
查看更多