原英文文档地址:Distance estimation using XENSIV™ KIT CSK BGT60TR13C
本篇文章仅供学习交流。如有侵权,请联系删除。
文章目录
使用XENSIV™ KIT CSK BGT60TR13C估计距离
基于 PSoC™ 6 和 XENSIV™ 60 GHz 雷达传感器
关于本文档
范围和目的
本应用笔记演示了如何使用英飞凌 XENSIV™ 60 GHz BGT60TR13C 雷达系统以及基于 PSoC™ 6 微控制器的快速物联网连接开发套件,通过存在感应算法设置距离估计。
目标受众
本文档的目标受众是使用 CYSBSYSKIT-DEV-01 结合 XENSIV™ BGT60TR13C 雷达传感器来估计距离的电子系统的设计工程师、技术人员和开发人员。
1 引言
1.1 FMCW雷达系统
RADAR(雷达)是Radio Detection and Ranging(无线电探测和测距)的缩写,是一种利用电磁波获取目标距离、角度或速度的设备。雷达系统有多种应用。其中包括卫星跟踪、生命体征监测、存在检测、手势识别等。
Modulated Radar(调制雷达)也称为Frequency modulated continous wave(调频连续波 (FMCW)) 雷达,是一种可以使用调频技术测量目标范围的雷达。在调频中,电磁波的频率随时间线性增加。这种频率随时间线性增加的信号称为chirp(线性调频脉冲)。 FMCW 系统测量发射信号频率和反射信号频率 δ f \delta f δf之间的瞬时差,该差值与反射线性调频脉冲的时间差 δ t \delta t δt成正比。时间差可以用来计算目标的范围。
![image-20231218191753226](https://i-blog.csdnimg.cn/blog_migrate/594ba1289544461c7205da472c32ecd7.png)
1.2 FMCW雷达系统中做距离估计
单个线性调频脉冲由具有一定带宽和一定线性调频时间的频率斜坡组成。如果静态单个目标反射回雷达信号,则接收到的信号将类似于发射的信号,但会较弱且有时间延迟。
- 如果接收到的信号与本地振荡器信号(Tx 信号)混合,则混频器输出包含两个输入的sum frequency和拍频(beat frequency)。通常会对sum frequency进行滤波只处理中频信号,并且在模数转换器 (ADC) 中对中频信号(intermediate frequency)进行数字化之前,使用中频 (IF) 滤波器对中频进行进一步处理。
- 由于雷达波以光速 c 传播到 R 范围内的目标(以及返回)而导致的传播延迟为: t d e l a y = 2 R c t_{delay}=\frac {2R}{c} tdelay=c2R
- 与线性调频脉冲 d f d t = B W t c h i r p \frac {df}{dt}=\frac {BW}{t_{chirp}} dtdf=tchirpBW 一起 [原文为 B W t c h i r p BW\ t_{chirp} BW tchirp,这里译者认为原文档少了除号,两者乘积应该是 f f f直线的斜率slope] ,可以使用公式 $f_{beat}=t_{delay}(\frac {df}{dt})=\frac {2R(BW)}{c\cdot t_{chirp}} $计算拍频
- 取决于拍频的目标范围为 R = ( c ⋅ t c h i r p 2 B W ) f b e a t R=(\frac {c\cdot t_{chirp}}{2BW})f_{beat} R=(2BWc⋅tchirp)fbeat。从一般的傅立叶变换(FT)可知,能够检测到的最低拍频是测量时间的1倍。对于短时间延迟,可检测的最低拍频可以简化为 1 t c h i r p \frac {1}{t_{chirp}} tchirp1
- 因此,FT 的单个范围 bin 为 c 2 B W [ B W 为频率带宽 ] \frac {c}{2BW}[BW为频率带宽] 2BWc[BW为频率带宽],它的物理意义是对应于距离分辨率。
2 硬件与软件需求
2.1 硬件需求
本应用笔记是在下面提到的板上实现和测试的。但是,可以迁移代码以使用其他组合。
- Rapid IoT Connect Developer (CYSBSYSKIT-DEV-01) V3.0
- XENSIV™ BGT60TR13C Wing (EVAL_BGT60TR13C_Wing) V1.0
2.1.1 Rapid IoT Connect Developer Kit
快速物联网开发套件Rapid IoT Connect Developer Kit (CYSBSYSKIT-DEV-01)允许在标准Feather外形上评估快速物联网连接模块Rapid IoT Connect module (CYSBSYS-RP01)。CYSBSYS-RP01 快速物联网连接模块是一款钥匙大小的模块,可实现安全、可扩展且可靠的计算和连接。
快速物联网连接开发套件Rapid IoT Connect Developer Kit 带有 CYSBSYS-RP01 快速物联网连接system-on-module (SoM)模块系统。快速物联网连接模块系统包括 PSoC™ 6 MCU 器件、CYW43012 单芯片无线电、板载晶体、振荡器、芯片天线和无源组件。
关键特性:
- CYSBSYS-RP01 module
- 支持高达 2 MB 闪存和 1 MB SRAM
- 512 Mbit 外部 Quad SPI NOR 闪存,为数据和代码提供快速、可扩展的存储器
- KitProg3 板载 SWD 编程器/调试器、USB-UART 和 USB-I2C 桥接功能
- 电池连接器、充电IC、充电指示灯LED
- 1 个 KitProg3 模式按钮、1 个 KitProg3 状态 LED 和 1 个 KitProg3 电源 LED
- 16 KB 仿真 EEPROM
- Feather外形兼容排针
- 提供双核,其中 150 MHz Arm® Cortex®-M4 作为主应用处理器,100 MHz Arm® Cortex®-M0+ 作为低功耗操作的辅助处理器。
- 支持全速 USB、Quad-SPI 接口、13 个串行通信模块、7 个可编程模拟模块和 56 个可编程数字模块。
2.1.2 XENSIV™ BGT60TR13C Wing
XENSIV™ BGT60TR13C MMIC 是一款带有集成天线的 60 GHz 雷达传感器,配有一根发射天线和三根接收天线。 BGT60TR13C MMIC 可实现超宽带 FMCW 操作。它配备了集成的有限状态机 (FSM)。借助 FSM,BGT60TR13C 可以自主执行 FMCW 频率扫描(所谓的线性调频脉冲)、数据采集以及将样本存储到内部 FIFO 存储器中。
软件需求
- ModusToolbox™
- Board support package
- C language
- Serial Terminal (Tera Term, ModusToolbox™ Terminal etc.)
3 快速开始
本部分提供了使用 ModusToolbox™ 的 Eclipse IDE 创建存在检测应用程序并选择 BSP 的演练。它还介绍了如何使用 IDE 进行构建和编程以及如何在串行终端中查看输出。
3.1 创建距离检测应用
启动Eclipse IDE:
- 在 Windows 上,从“开始”菜单中选择 Eclipse IDE for ModusToolbox™ 项。
- 对于其他操作系统,运行“modustoolbox”可执行文件。
注意:启动 Eclipse IDE 时,它提供了一个选项来选择计算机上的工作区位置。 IDE 使用此位置来创建和存储文件,作为特定平台的应用程序创建的一部分。
默认工作区位置是主目录中名为“mtw”的文件夹。您可以在“mtw”文件夹下添加其他文件夹,或为每个工作区选择任何其他位置。
单击 Eclipse IDE 快速面板中的 New Application 链接,如下图所示。
这将启动 Project Creator 工具来选择板支持包 (BSP) 以及可用于特定板的多个应用程序。
从 PSoC™ 6 BSP 下拉列表中选择 CYSBSYSKIT-DEV-01 BSP,如图 8 所示,然后单击下一步。
现在,从“传感”下拉列表中选择“人体存在检测”应用程序,如图 9 所示,然后单击“创建”。
3.1.1 Build application 编译
加载应用程序后,构建它以生成必要的文件。选择一个项目。然后,在“快速面板”中,单击“构建应用程序”链接,如图 10 所示。
控制台中显示消息,指示构建是否成功。
3.1.2 Program application 烧写
在项目资源管理器中,选择所需的项目。然后,在“快速面板”中,单击“程序”(KitProg3_MiniProg4) 链接,如图 11 所示。
从工具栏(Ctrl + Alt + Shift + T)打开 ModuxToolbox™ 终端,然后选择连接板的 COM 端口(不是 MiniProg4 端口)。设置串口参数为数据位:8 校验位:None 停止位:1、115200波特率。烧写后,应用程序自动启动。确认 UART 终端上显示“使用 XENSIV 60-GHz 雷达进行存在检测”。
![image-20231218221659053](https://i-blog.csdnimg.cn/blog_migrate/5904cd77adfd8a11436ac30157233110.png)
![image-20231218221735533](https://i-blog.csdnimg.cn/blog_migrate/058025446f7e77e36affa2eb2dc66c31.png)
4 参数设置
用户可以使用终端上提供的选项配置应用程序参数,如下所示:
- 按“输入”键从工作模式切换到设置模式。
- 键入 help 并按“enter”键可查看可配置参数的列表,如图 14 所示。
用户可以配置以下参数:
- 仅Macro
- 仅Micro
- Macro 和 Micro
- 可以配置最小和最大范围检测。
- 可以通过更改阈值级别来调整每种模式的灵敏度级别。
- 启用/禁用bandpass filter and decimation filter(带通滤波器和抽取滤波器)
注意:时间戳是相对于启动时间而言的。这意味着当应用程序首次启动时,时间从 0 毫秒开始计数。
注意:可以调整宏观和微观阈值参数以实现不同级别的灵敏度。下表总结了三个不同的级别(例如,高意味着解决方案对静止的人群更敏感)。
5 操作
5.1 应用架构
该应用程序使用模块化方法来构建结合雷达驱动程序和存在算法库的存在应用程序。该应用中使用的组件如图 15 所示。
存在检测库使用雷达传感器获取的数据检测可配置范围内的宏观和微观运动。它使用 Sensor-DSP 库,提供支持存在检测算法实施所需的信号处理功能。
传感器 DSP 库提供支持实施不同传感器应用所需的信号处理功能,例如雷达手势识别、生命传感和存在检测。 SensorDSP 库构建在标准 ARM CMSIS 库之上。它支持距离和多普勒FFT、FFT windowing相关功能、检测相关功能、角度估计相关功能。
5.2 应用执行
- 应用程序从 BSP 初始化开始,创建 FreeRTOS™ 主任务,初始化重定向 IO 库以使用调试 UART 端口,并启动 FreeRTOS™ 调度程序。
- 主要任务 创建一个定时器来切换用户 LED,创建处理 RTOS 任务,初始化传感器和 LED 的硬件接口,初始化雷达设备,等待雷达设备指示数据可用性的中断,读取数据,将其转换为浮点并通知处理任务。
- 数据处理任务初始化存在感测库并注册事件回调。
- 它创建一个控制台任务来处理库的参数配置,接收来自主任务的通知并执行存在算法,并在终端和 LED 上提供结果
- 对于 CYSBSYSKIT-DEV-01,如果雷达翼板未连接到Feather套件,雷达任务将暂停。传感器初始化过程通过闪烁红色 LED (CYBSP_USER_LED) 来指示。当系统运行(就绪状态)时,CYSBSYSKIT-DEV-01 上的红色 LED (CYBSP_USER_LED) 持续闪烁。
6 重要术语和概念
- Chirp:线性调频脉冲是一种频率随时间以恒定速率 d f d t \frac {df}{dt} dtdf 变化(即增加或减少)的信号。在线性调频脉冲的传输过程中,接收天线信号被 ADC(模数转换器)主动采样为数字波形,以供进一步处理。
- Number of samples per chirp:Nsamples 表示帧的每个线性调频期间采集的样本数。 Nsamples 是根据最大范围和范围分辨率获得的,但也取决于脉冲重复时间以及因此的最大速度。
- Maximum range (in meters):范围变换的 bin 表示 0 到该值之间的范围。
- Range resolution (in meters):区分两个速度相同的目标所需的最小距离间隔。
- Total bandwidth:chirp 或 df 的总带宽是从距离分辨率获得的。如果ΔR是所需的距离分辨率,c是光速,则: d f = c 2 Δ R df=\frac {c}{2ΔR} df=2ΔRc,其中c=299792458m/s表示光速。
- Start frequency Hz:代表线性调频脉冲的起始频率
- End frequency Hz:代表线性调频脉冲的结束频率
- sample rate Hz:ADC 采样率定义了采集样本的速度
- Chirp repetition time (in seconds):PRT 或线性调频重复时间是两个连续线性调频之间的时间间隔
- Number chirps per frame or Nc:连续数量的线性调频脉冲与帧结束延迟一起组成测量帧。
- Frame repetition time (in seconds):该周期也称为帧时间,是两个连续帧开始之间的时间间隔。
- Micro-motions:在典型的智能家居环境中(例如在使用笔记本电脑/键盘时)检测手势或头部的微小运动。微运动还包括检测坐姿或站立姿势(视线内)的静止人体(正常呼吸和眨眼)。
- Macro-motions:检测进入或穿过视野的主要运动(运动检测)。
7 存在检测应用中的距离估计
默认情况下,应用程序只会打印表:终端输出描述中规定的参数,但用户可以按照以下步骤输出目标存在的估计距离:
-
在 main.c 文件中存在的 Presence_Detection_cb () 函数中声明 float 类型的范围变量(例如 float R)。
-
float R(以米为单位)= ((xensiv_radar_presence_get_bin_length(handle)) *(event->range_bin));
-
上述API可用于打印人体存在检测应用中的范围。
-
理论上,xensiv_radar_presence_get_bin_length () 函数获取距离分辨率,即 © / (2 * width_hz * fft_size /num_samples_per_chirp),大约等于值 0.325,range_bin 是目标是否存在的值。
请注意:
- 光速(米每秒)C:299792458
- bandwidth_hz:460000000
- fft_size (人体存在检测应用): 128
- num_samples_per_chirp: 128
例子:
距离范围的值为 2,表示雷达在该特定距离范围内内检测到目标,则距离 = 0.325*2= 0.66 m。目标距离 0.66 m。
编辑后按照3.1.1节所述编译代码。按照 3.1.2 节中提到的步骤烧写到目标板上并在终端上查看结果。
注意:终端输出将采用以下格式:<存在状态、Range-Bin、范围、时间戳>。目标缺席时<缺席,时间戳>
参考文献
[1] Infineon Technologies AG. XENSIV™ KIT_CSK_BGT60TR13C board
[2] Infineon Technologies AG. XENSIV™ KIT_CSK_BGT60TR13C user guide