级联AWR2243使用记录
1. 前言
老师安排学习FMCW(调平连续波雷达),希望能与ISAC有所结合。大致想法是希望通过chirp信号实现对物体的距离、速度、角度等实现测量。为此,实验室购入TI的MMWCAS-DSP-EVM 和MMWCAS-RF-EVM 两块板子,本文档主要针对学习过程中遇到的一些问题以及涉及的相关知识进行自己个人的总结。
本文主要是TI的MMWCAS-DSP-EVM 和MMWCAS-RF-EVM 两块评估板的一些使用心得和毫米波雷达的学习总结。
2. 相关原理
毫米波(mmWave)是一类使用短波长电磁波的特殊雷达技术。通过捕捉反射的信号,雷达系统可以确定物体的距离、速度和角度。毫米波雷达可发射波长为毫米量级的信号,短波长让所需的系统组件(如天线)的尺寸很小,同时也可以提高精度,工作频率为76-81GHz(对应波长约为4mm)的毫米波的微小移动分辨率大概为零点几毫米。完整的毫米波雷达系统包括发送和接收射频组件,以及时钟等模拟器件,还有模数转换器(ADC)、微控制器(MCU)和数字信号处理器(DSP)等数字组件。而TI的器件则是一种发射调频连续波(FMCW)的器件。
主要可以实现距离、速度、角度的测量。下面介绍一些相关的原理,距离、角度、分辨率、最远距离。chirp信号,FMCW
很多资料均参考TI中文官方网站。下面的相关原理主要参考了TI的FMCW相关培训视频和PPT,讲解的还是不错的视频。同时在遇到问题可以在TI的官方论坛E2E上找到相关帖子和寻求官方人员的帮助。以及TI Resource Explorer。
2.1 范围估计 rang estimation
涉及用雷达进行多目标的距离估计、分辨率等相关的推导
一般情况下,采用的是线性调频信号——chirp信号,其频率随时间线性变化。其表达式
$$
S_t(t)=Acos{2 \pi(f_0t+\frac{St^2}{2})+\varphi_0}\qquad t\in[0,T] \tag{2.1}
$$
$A$表示其幅度,$S$表示调频斜率$B/T$,chirp信号的扫频带宽为$B$,时间周期(时间窗口window)为$T$。
下图则是其频率变化,$f_c$为起始频率(下同)77GHz,持续时间,带宽$B$,线性调频脉冲的斜率$S$。$T_c$
FMCW的雷达框图如下:
注:混频器得到的信号频率为输入信号的瞬时频率之差,相位为两个输入信号的相位之差。
得到的信号:
由上图中频(IF)信号频率为$S\tau$,而所测物体的距离d又和时间$\tau$ 有关系。这样通过推导我们可以知道
$$
f_{IF}=S\tau=S\frac{2d}{c} \tag{2.2}
$$
故而我们可以将物体的距离信息转化为中频信号的频率信息,对其进行FFT可得到相应的频谱,一个物体则会产生一个单峰:
由上面可以看出,对于时间窗口越长的,所能分辨的频率差越小,即距离分辨率越高。
由于在时间窗口上,两个信号相差至少要有一个周期,才能分辨出为两个频率,即识别为两个峰,两个目标。而时间窗口最大为信号持续时间$T_c$ ,则两个不同目标对应的中频信号的频率差 应满足。
$$
\Delta f>\frac{1}{T_c} \tag{2.3}
$$
结合公式(2.2)可得其分辨率应满足
$$
\Delta d=\frac{c\Delta f_{IF}}{2S}>\frac{c}{2ST_c}=\frac{c}{2B} \tag{2.4}
$$
即最大距离分辨率为
$$
d_{res}=\frac{c}{2B} \tag{2.5}
$$
故而4GHz的带宽对应的距离分辨率大约为3.75cm,但开篇所说的几毫米的精度则是通过下一节关于中频信号的相位我们可以了解到具体原理。
而由采样定理的限制,所能测量的中频信号的频率应小于采样频率$F_s$的一半,即最大测量的距离限制在
$$
d=\frac{cf_{IF}}{2S}<\frac{cF_s}{4S}
$$
而对于下面这两种信号:
其各自有不同的优势,由于带宽相同,故而分辨率相同。但由于调频效率不同,对于采样频率一样的,左边的最远测量距离要大一些,但是对于相同距离分辨率,右边信号所需的持续时间更短。总体的图:
2.2 速度估计
此前我们通过中频信号的频率实现了对于物体的范围估计,但我们如果希望FMCW雷达具备响应物体极小位移的能力(或者说速度),我们就需要对中频信号的相位进行研究。
$$
\Delta \phi=\frac{4\pi \Delta d}{\lambda}
$$
若用$\Delta\tau$ 表示物体微小运动的时间,由于角度等于角速度乘以时间即$2\pi f_ct$,则其相位变化$\Delta\phi$ 与其微小移动$\Delta d$ 的关系为
$$
\Delta\phi=2\pi f_c\Delta\tau=2\pi\frac{c}{\lambda}\Delta\tau=\frac{4\pi\Delta d}{\lambda} \tag{2.6}
$$
这样中频信号的频率与相位均有相关意义(这个式子很重要,最好记忆一下):
由于波长较短,故而可以看出相位对于微小运动比较敏感。这也就对应了开篇提到的毫米波雷达对于物体移动的分辨率可以到几毫米。 而这将可用于速度估计。用 $T_c$表示持续时间, $\omega$表示相位差$\Delta\phi$ 根据式子(2.6)可得到:
$$
v=\frac{\lambda\omega}{4\pi T_c} \tag{2.7}
$$
但是需要注意,这样测量时对于测量的最大速度是存在限制的,由于依赖于相位差进行测量,只有当相位差的差值介于正负$\pi$ 弧度之间时才可以,不然无法区分具体相位差,不知道是向哪边转了。如下图:
故而由式(2.7)知,最大速度为:
$$
v_{max}=\frac{\lambda}{4T_c} \tag{2.8}
$$
对于速度分辨率与距离分辨率类似,大致思想也是一个时间窗口内,至少相差一个周期。只不过此时对应的时间窗口时总的帧时间(一帧代表此前一次$T_c$),用N代表总帧时间间隔内的脉冲数,则
$$
\Delta \omega>\frac{2\pi}{N} \tag{2.9}
$$
又由式(2.7)得($T_f$ 表示总帧时间,即测速度的时间):
$$
\Delta v=\frac{\lambda \Delta\omega}{4\pi T_c}>\frac{\lambda}{2NT_c}=\frac{\lambda}{2T_f} \tag{2.10}
$$
同样对于速度测量,也有相应信号的讨论:
上图两种信号对于最大速度和速度分辨率的表现:
当然在实际的实现中,速度的估计需要在原来距离估计的基础上,对其接受信号做FFT后,再对其进行Dlopper FFT,总的过程称为2D-FFT。
通过上述对于距离分辨率、最大速度、速度分辨率等的计算,我们可以反过来通过相应需求涉及相应的调频连续波的一些参数
最后一个公式,在由于ADC采样频率对最大中频信号频率的限制,需要对调频斜率和最大测量距离之间进行一个取舍。当然雷达测量距离也和发射功率等相关
上面公式可进行简单的推导:
用$S_{min}$表示最小可检测信号的功率,用$A_e$表示接收天线的有效面积,$R_{max}$表示雷达最大探测距离,$P_t$表示发射天线的功率,发射天线的增益为$G_t$,目标的雷达反射截面积$RCS$为$\sigma$,则
$$
S_{min}=\frac{P_tG_t\sigma A_e}{(4\pi)2R_{max}4}\tag{2.11}
$$
而接收天线的增益$G_r$与接收天线的有效面积$A_e$之间存在联系:
$$
A_e=\frac{\lambda^2G_r}{4\pi}\tag{2.12}
$$
故而得到:
$$
S_{min}=\frac{P_tG_t\lambda2G_r\sigma}{(4\pi)3R_{max}^4}\tag{2.13}
$$
进一步可推导出最大检测距离$R_{max}$为:
$$
R_{max}=\sqrt[4]{\frac{P_tG_t\lambda2G_r\sigma}{(4\pi)3S_{min}}}\tag{2.14}
$$
一般都用上面的式子进行计算,但有时对于最小可检测功率会进一步写为$S_{min}=KT_0BF_n(\frac{S}{N})1$,$K$表示玻尔兹曼常数$1.38\times 10{-23}$,$T_0$为温度系数$290K$,$B$为接收机带宽,$KT_0$为$4\times10W/Hz$,$F_n$为接收机噪声系数,$(\frac{S}{N})$表示一个脉冲时要求的信噪比。故而$R_{max}$为:
$$
R_{max}=\sqrt[4]{\frac{P_tG_t\lambda2G_r\sigma}{(4\pi)3KT_0BF_n(\frac{S}{N})_1}}\tag{2.15}
$$
2.3 角度估计
对于角度的估计,参考了之前对于速度的估计方法,如下图所示
故而由此前的公式(2.6)知,其接受天线的两个信号相位差为(没有来回故而是4不是2):
$$
\omega=\frac{2\pi\Delta d}{\lambda} \tag{2.16}
$$
上式中$\Delta d$ 表示两个接受天线收到的信号所传输的距离差,其与两个接受天线的距离$l$ 的关系为:
则结合公式(2.11)可以得到:
$$
\omega=\frac{2\pi L*sin\theta}{\lambda} \tag{2.17}
$$
和在速度估计时的原理相同,相位差也需要在$\pm\pi$ 内,故而同样可以得到测量角度满足为:
$$
\theta<\sin^{-1} (\frac{\lambda}{2L}) \tag{2.18}
$$
同样其角度分辨率可以得到:
$$
\Delta \omega=\frac{2\pi l}{\lambda}(sin(\theta +\Delta\theta)-sin(\theta))\approx\frac{2\pi l}{\lambda}cos(\theta)\Delta\theta \tag{2.19}
$$
而相位差满足:
$$
\Delta\omega>\frac{2\pi}{N}\tag{2.20}
$$
由(2.14)和(2.15)得到角度分辨率(右边推导: $\theta$ 很小,且天线间距一般取为波长的一半),单位为弧度:
$$
\theta_{res}=\frac{\lambda}{Nlcos(\theta)}\Longrightarrow\theta_{res}=\frac{2}{N}\tag{2.21}
$$
在实际实现中采用的是和速度估计中类似的方法,称为Angle-FFT。下图是二者对比,由于TI采取符号不一致的原因,其$d$ 代表天线距离。
3. 雷达板卡简介
在TI官网上所查到的信息是MMWCAS-RF-EVM是由毫米波雷达AWR1243或者AWR2243四器件级联阵列的感应解决方案,单个主器件在所有四个器件之间分配20GHz的本机振荡器(LO)信号(用以产生线性调频波),使得这四个器件作为单个射频收发器运行,可支持最多12发TX和16收RX天线元件。关键词:成像雷达、长距离TX波束形成和波束控制、提高角分辨率的MIMO。
TI的毫米波雷达器件是基于互补金属氧化物半导体 (CMOS) 的毫米波雷达器件,该器件集成了时钟等 TX-RF 和 RX-RF 组件,以及 ADC、MCU 和硬件加速器等数字组件。此外,本课题采用的TI毫米波传感器组合还集成了 DSP,用于提供额外的信号处理功能。
3.1 RF-EVM
其与DSP板配合使用,DSP板为RF板通过Host Board Connector J4 J6对其提供5V电压,板子本身以1V电压供应RF1和RF2,12Tx&16Rx,12发16收。
板子正反面接口图如下
Front View Callouts:
- AWRx #1 “Master” (U1_1) 该处为 master device
- AWRx #2 “Slave 1” (U1_2)
- AWRx #4 “Slave 3” (U1_4)
- AWRx #3 “Slave 2” (U1_3)
- 20 GHz LO Wilkinson Power Divider #1 (FMCW_CLKOUT) AWR #1 and AWR #2
- 20 GHz LO Wilkinson Power Divider #2 (FMCW_SYNCOUT) AWR #3 and AWR #4
- LMK00804B (U4) AWRx 40 MHz clock distribution buffer
- Receive antenna array
- Transmit antenna array
- AWRx reset LED indicators (DS4、5、6、7对应AWRx#1、2、3、4) NRESET值 :表示PMIC#1、#2输出正常,以及主板NRESET信号
- System 5.0 V and 3.3 V power status indicators 电源正常显示灯5V和3.3V
Back View Callouts:
- Host Board Connector #1 (J4) 5.0 V power, interfaces for AWRx #1, AWRx #2
- Host Board Connector #2 (J5) 5.0 V power, interfacesAWRx #3, AWRx #4
- TPS73733 5.0V to 3.3 V LDO (U5) provides system 3.3 V power
- LP87524P PMIC #2 (U4) powersAWRx #2 and AWRx #3 PMIC#2
- LP87524P PMIC #1 (U3) powersAWRx #1 and AWRx #4
- Bench 5.0 V power connector (J6) 辅助电源,在DSP供电情况下不需要
- LMK00804B (U8) AWRx digital synchronization distribution buffer
X、Y、Z轴
注:此上面的图存在问题,后续发现实际代码用的是下图的定义坐标,即y轴代表雷达与目标的正视距离轴。
实际仰角采用$\theta$的余角,方位角采用的是$\phi$的余角。
下表是该板子的一些参数,下图显示的天线测量范围方位角(azimuth)是$\pm60o$,仰角(elevation)是$\pm30o$。
不过自带的matlab代码demo中显示的是方位角(azimuth)是$\pm80o$,仰角(elevation)是$\pm20o$。
下图是雷达天线的一些距离
发射天线的
3.2 DSP-EVM
DSP板子上有射频板用来接受雷达数据信号,其给射频板供电5V。DSP主要用于信号处理,为FMCW信号提供一些程序,比如一些FFT程序、基本检测算法CFER-CA等,
下面是板子正反的接口图
支持PCIe 2.0(通过 m.2 连接器),SSD diver通过连接器提供3.3V的供电电压。
与RF板连接图
DSP板供电12V,电流不小于3A。典型电源:12V,5A,Advantech Power supply P/N: 96PSA-A60W12V1-1
电源接好,板子四周的LED灯会亮
下面为其功能原理框图:
3.3 AWRxx区分
TI的AWRxx表示的是汽车毫米波雷达,而IWRxx表示的是工业毫米波雷达。而汽车毫米波雷达也正是本文研究的主要重点。单芯片雷达AWRxx主要有三款,AWRx2xx、AWRx4xx、AWRx6xx。
AWRx2xx、AWRx4xx、AWRx6xx从左到右逐渐趋于复杂,在相应的使用中也是不一样的,AWRx6xx自带DSP。在mmWaveStudio的使用中,AWRx2xx只需要选择BSS(Radar Subsystem),AWRx4xx就还需要MSS(Master Subsystem),而AWRx6xx还有DSS(DSP Subsystem)
至于AWRx2xx、AWRx4xx、AWRx6xx的第一个x代表发射信号频率,60GHz是6,1表示77GHz平台,第二三个x代表收发。如本文主要用的是AWR2243四级联芯片,它便是四收三发单芯片雷达,由于没有DSP相关模块,故而RF评估板还需要配合DSP评估板进行使用。
3.4 mmWave SDK简介
SDK(software development kits),通过简单介绍,了解TI相关SDK组件的一些使用方法,方便学习。
主要面向TI单芯片毫米波雷达器件的软件系统和测试。主要涉及AWR1443、AWR1642、IWR1443和IWR1642等毫米波传感器产品。第一个平台是xWR14xx,括AWR1443、IWR1443,4收3发, 有微控制器和硬件加速器,用于信号处理;第二个平台是AWR1642、IWR1642,4收2发。两个平台均需要外部串行闪存,存储应用代码。
安装好SDK后,其文件一般包含packages、docs、firmware和tools四个部分,packages包含构建毫米波SDK的脚本文件,ti文件包含所有源文件,divers包含驱动程序的源文件,
mmWaveLib在DSP子系统上运行,
处理流程
4. 相关软件介绍
以mmWave Studio为例,主要介绍其用于级联板子的一些需要注意的事项。MMWCAS-RF 评估模块 (EVM) 是 TI 提供的一款采用 AWR1243 或 AWR2243 四器件级联阵列的感应解决方案。在这一级联雷达配置中,单个主器件在所有四个器件之间分配 20GHz 的本机振荡器 (LO) 信号,使这四个器件作为单个射频收发器运行。因此,可支持多个 12 个发射 (TX) 和 16 个接收 (RX) 天线元件。在 TX 波束形成、波束控制和多输入多输出/单输入多输出 (MIMO/SIMO) 等用例中,与单器件系统相比,大量天线元件均可实现较高的信噪比 (SNR) 和出色的角分辨率。MMWCAS-RF-EVM 必须与毫米波级联成像雷达 DSP 评估模块 (MMWCAS-DSP-EVM)(单独出售)配合使用。MMWCAS-DSP-EVM 提供雷达数据捕获和存储功能。
4.1 mmWave Studio简介
由于我们用的是级联的板子,所以此处主要写的也是mmWave Studio对于级联的板子的相关用法。单芯片的ADC数据采集主要是DCA100 EVM和TSW1400 EVM,级联系统则是TDA2XX。mmWaveStudio通过SPI(Serial Peripheral Interface,串行外设接口)向设备发送命令。数据处理在matlab中,结果展示在GUI中。
主要需要参考mmwave_studio_cascade_user_guide.pdf,但一些和单芯片片雷达共性的地方也需要参考mmwave_studio_user_guide.pdf。这两个文件均可在安装文件路径“ C:\ti\mmwave_studio_03_00_00_14\docs”中找到,TI官网也有。
4.1.1 硬件准备
简单来说就一个电源适配器,外加可能需要的以太网转接口
- 级联的RF板子 RF Cascade EVM。 对应于上面的MMWCAS-RF-EVM
- 数据处理的TDA2 级联雷达主板 TDA2 Cascade Radar Host Board。 对应于上面的MMWCAS-DSP-EVM
- SSD。 原板子已安装好,512G大小
- 闪存卡 大于2GB。 Micro-SD card
- 读卡器 。用以安装SD 卡,已装好
- 电源供应 12V 5A。 可以用个适配器解决,user_guide推荐的是 P/N: 96PSA-A60W12V1-1
- 以太网线
- mini-USB线 连接PC和TDA主板,已提供
- win7 or win10系统
4.1.2 软件准备
- 安装mmWave Studio 3.0.0.14,参考 mmWave_studio_user_guide.pdf 官网有安装包 。需要注意的一点就是安装的路径不能有中文,一般默认C盘。
- 一般在安装mmWave studio时会自动安装好 FTDI Divers(FTDI USB Diver),但若安装失败需要自己安装
- TDA2XX Firmware 路径(后面会用到):mmWaveStudio\PlatformBinaries\TDA2Firmware
- Meta image(multicore image) from DFP mmwave_dfp_02_02_03_01_win32.exe 多核图像,DFP是设备固件包,包括二进制文件和一些驱动文件。Multicore image to be downloaded over SFLASH/SPI 下载到SFLASH/SPI 相应路径
- 串口配置工具 (如Tera Term, Putty 等)Tera Term-4.106.exe
- WinSCP(可选) mmWaveStudio中内嵌了,就是用来导出需要的数据文件的。下载了可以用来删除SSD中不需要的数据。
- Balena etcher (for flashing the TDA firmware) balenaEtcher-Portable-1.5.39-x64.exe
- 安装好32位的Matlab主要嵌入进行采集的数据处理。
- 若使用win10系统还需安装 Visual C++2013。
4.2 安装TDA 数据捕获卡
4.2.1 简单的一些安装设置
- RF EVM和TDAXX主板连接好
- 连好PC与TDAXX主板的以太网线、mini-USB线。mini-USB线接好可以看到其UART terminal
- 设置好相关IP地址,确保主板和PC在一个网络里面, 主板默认静态IP是 192.168.33.180 ,故而可以设置PC是 IP:192.168.33.30 ,子网掩码:255.255.255.0。具体配置方式:[设置静态IP](#static IP)
- 上电
4.2.2 TDA固件的刷入
Flashing the TDA Firmware 不一定需要,原厂可能已经设置好了,我的板子就是这样,所以我没有做这一步。
- 确保SD闪卡插入读卡器,并已与PC连接好
- 运行此前安装的Balena etcher
- 选择TDA 硬件 image(TDA Firmware image)
- 选择SD卡对应的驱动器,之后刷新。等候即可
4.3 启动 EVM板子
-
确保闪卡插入后,供应12V电压
-
通过mini-USB线将板子与PC相连接,然后运行串口配置工具Tera Term,确保两个series ports 能检测到。若没有,安装最新的FTDI驱动器,并重新连接。
-
用串口设置工具打开设备管理器显示的第一个串口(一般是倒数第二个),Setup->Serial Port设置参数(工具使用的是Tera Term的话,是这样操作的)
- 看TeraTerm中运行日志确保可见,若不可见,按一下DSP板子上的S2开关进行重启。
- 提示后,输入 ‘root’作为用户名。
- 通过”ifconfig“命令获取IP 地址,默认地址是:192.168.33.180
4.4 格式化SSD
安装SSD的第一次启动需要格式化SSD,后面可以跳过此步,不需要再进行格式化。
- 用”Is /dev/nvme*“命令list所有的devices。保证名为”nvme0n1“的设备在,这表示SSD已展示且被主板检测到,没有就需要重新安装固定SSD并重启TDA2主板
- 用”fdisk /dev/nvme0n1“命令开始格式化程序。输入m for help。在依次输入n、p、1、p、w。
- 通过命令”umount /dev/nvme0n1p1“来安全卸载已挂载的文件系统。
- 通过命令”mkfs.ext4 /dev/nvme0n1p1“来创建文件系统,输入”y“
- 通过S1开关重启主板
- 在控制台出现时,重新以”root“身份登陆
- 输入命令”Is /dev/nvme*“确认是否格式化成功,成功会显示”/dev/nvme0n1p1“
4.5 参数配置(mmWaveStduio)
-
启动mmWaveStudio之后,选择级联”Cascade“。下图未正常启动截图,若未正常启动RadarAPI界面,检查一下C盘用户下的目录名称是否为英文。
-
在点击SetUp TDA ,在输入此前的IP地址,使得板子和PC在一个局域网内。若Disconnect出现一排蓝字则说明连接成功
-
之后的参数设置和捕获数据等可以通过[LUA脚本](#4.5.1 运行LUA Script)或者GUI进行设置。
4.5.1 运行LUA Script
在mmWaveStudio的安装目录下‘mmWaveStudio\Scripts\Cascade’ 有一些关于级联的简单LUA脚本,主要是为了方便使用,之前只能使用GUI界面进行参数选择配置时,特别麻烦,后来官方对比较经典的几个场景(MIMO和Beamforming)用LUA脚本进行程序化,可以直接运行脚本完成相关设置。这种方式是简化了下面的GUI界面的设置,让实际使用和参数设置变得更加方便了,推荐使用这种方式进行设置,要修改一些参数也可以在lua文件中进行修改。
运行前更新Meta image path 和TDA2XX的主机地址,确保正常,一般是没问题的。
在其user_guide列出了几种使用LUA脚本的情况,
- case1:Test Source
依次Browse下列脚本
LUA脚本: Cascade_Configuration_TestSource.lua for configuration of devices,Cascade_Capture.lua for capturing data
test类似于仿真。可以改LUA脚本的参数来修改物理的位置和速度,各个参数的信息可再Lua Shell中通过“help ar1.SetTestSource_mult” 命令查询
此后再通过SensorConfig中的“ Transfer Files ”来导出相关数据。基本的数据处理可以通过“Post Proc” 。具体过程参见4.7
- case2: MIMO 设置
Cascade_Configuration_MIMO.lua ;Cascade_Capture.lua
- case3 :TX Beam Forming Configuration
Cacade_Configuration_Basic.lua ;Cascade_Configuration_TXBF_simple.lua ;Cascade_Capture.lua
- case4:Monitoring and Calibration
Cascade_Configuration_MIMO.lua ;Cascade_Monitoring_Example.lua
LUA脚本设置比较简单,但是我们也可以看一下它是如何设置的,可以按需要在LUA脚本设置结束后在GUI界面按需要修改一些参数。Cascade_Capture.lua 都是相同的都是进行数据采集,也就是开始发射雷达,Cascade_Capture.lua 运行之前都是没有进行chirp帧的发送的,这点需要注意一下。
4.5.2 使用GUI界面
另一种方式就是使用GUI界面了,对其进行运行。其实LUA脚本就是对GUI界面设置进行了程序化,方便日常使用。注意查看Output的日志输出文件。主芯片提供参考时钟设置。
- connection “Mode 4 (Functional-SPI)” TDA2XX-AWRx243 Cascade
- 点击SPI Connect
- BSS FW 处选择Meta Image,并Load
- 点击RF Power-Up
- Static configuration 选择Master并点击设置按钮
- 对其余几个从属设备分别进行SOP模式设置、SPI连接、RF Power。就显得很麻烦
设置结束之后就是数据采集,就是下面红框中的顺序进行,具体可以参考安装路径文件“C:\ti\mmwave_studio_03_00_00_14\docs\mmwave_studio_cascade_user_guide.pdf”
note:mmWave Studio的安装路径中有很多有用的一些文件,可以自己多探索,加深理解使用
4.6 文件传输和后期数据处理
4.6.1 传输数据
如果使用前面的LUA文件,会自动进行数据传输,在postproc文件中找相关命名文件就行了,不需要进行下面操作。但如果是使用GUI界面设置可以利用winSCP将采集的数据文件传送至PC,则需要点击下面的Transfer Files。
note:需要注意设置路径,防止找不到。
使用LUA脚本就不太一样。因为运行Cascade_Capture.lua 脚本的话,会直接将采集的数据文件输出至LUA脚本里面所写的SSD默认文件,并由于mmWave Studio内置有winSCP所以同时时会直接将SSD中生成的数据采集文件导出至PostProc文件中的文件夹,所以在运行Cascade_Capture.lua程序进行数据采集之前,可以先更改Cascade_Capture.lua中的相关路径来将数据存储至不同的地方。
Browse导入LUA脚本,选择右边的Edit in Debugger
修改存储目录,其默认设置是Cascade_Capture_22xx,我修改成了“test”,可以按需要修改,采集得到的数据均在PostProc文件夹下面。
数据采集完毕LUA脚本中的设置会自动将文件传送至PC,这也是为什么user_guide会写winSCP是optional的,但是为了防止SSD被装满,我们也需要安装winSCP来删除已经传送好的数据。
而对于采集到的数据raw data一般会有几种文件:
- Directory_name.mmwave.json: 包含毫米波的一些设置,如各个历史部分(DFP、SDK、Link)各版本号、系统设置(载频范围、带宽、发射功率、温度、距离、距离速度分辨率等)、每个chirp变化的参数等等。
- Directory_name.setup.json: 用于数据采集的一些多核图像和文件路径等
- Directory_name_LogFile.txt: 用于内置的Matlab用于后期的处理
- 下面的data则是不同device的,主从设备
4.6.2 使用WinSCP
如果数据通过GUI界面导出,此步就不需要了;不过为了防止数据太多填满SSD,可以通过WinSCP来清空删除采集的数据文件。
安装好后打开
在登陆前点击高级选项,并取消下图中所示勾选的项目
选择路径“/< root >” 文件夹
“/mnt/ssd”文件夹 ,选择需要的数据文件传到左边PC机的合适路径
删除数据:
- “/< root>” “/opt/vision_sdk” 删除Trace_TDA_[< Date>_< time>].txt 相关文件
- “/< root>” /mnt/ssd 里面数据不要的可以全删除
note:记得及时删除已经导出的文件,不然如果后续进行试验的时候如果文件命名重复,会导致导出数据存在问题,如会显示多帧,这是由于此前的数据由于同名也导出。最好的一个办法就是保证不重名。
4.6.3 ADC数据的后期处理
系统默认内置的处理:
点SensorConfig中的“Post Proc” 可以看到获得的采集数据,可以分别选择不同device的data,不过它假定所有device的设置是相同的。
这是case1 的test的运行结果
下面这是MIMO的运行结果,我在实际使用中在评估板上方放了个在晃动的角反:
独立的数据处理:
针对采集的数据文件已经有了,只需要处理进行可视化。打开mmWaveStudio,进入Sensor config 里面,路径为空,直接点数据处理“PostProc”,就进入了一个空的处理窗口。
点击其上方的 “Load .log” ,选择相应的capture_Logfile.txt文件就行,然后再点击“Load .bin” ,选择相应的bin文件(图像文件)
matlab进行后期数据处理:
前面是安装的SDK嵌入matlab后进行的简单数据处理,如果需要自行设置,可能就需要自己写一些数据处理源码了,这里官方提供了部分example,在安装路径“ C:\ti\mmwave_studio_03_00_00_14\mmWaveStudio\MatlabExamples”,下面介绍利用官方的源码在matlab进行数据处理(以MIMO为例)。
通过LUA脚本得到采集数据后,记录下采集的数据的目录
将“C:\ti\mmwave_studio_03_00_00_14\mmWaveStudio\MatlabExamples\4chip_cascade_MIMO_example\main\cascade\input\testList.txt”中显示的第一行路径替换为所采集到的数据路径,如“C:\ti\mmwave_studio_03_00_00_14\mmWaveStudio\PostProc\Cascade_Capture_22xx\”。下图为其默认的路径显示:
第二行表示校准得到的校准向量的路径,也要加上安装文件的前置的文件目录,否则将不能运行程序,如
“C:\ti\mmwave_studio_03_00_00_14\mmWaveStudio\MatlabExamples\4chip_cascade_MIMO_example\main\cascade\input\calibrateResults_dummy.mat”。
第三行是测试的参数计算的模块,是用来生成试验参数的,结果在不修改testID的情况下保存在test1_param.m,第三行参数默认的应是:
“C:\ti\mmwave_studio_03_00_00_14\mmWaveStudio\MatlabExamples\4chip_cascade_MIMO_example\main\cascade\paramGen\module_param.m”
设置好上述设置,再安装好环境变量,之后运行“C:\ti\mmwave_studio_03_00_00_14\mmWaveStudio\MatlabExamples\4chip_cascade_MIMO_example\main\cascade\cascade_MIMO_signalProcessing.m” 即可得到图片。
此处运行程序得到的过程中parameter_file_gen_Jason.m程序会将Directory_name.mmwave.json中的参数导出到input文件中的test1_param.m中进行查看,这都发生在信号处理前。
note:关于每次测试的chirp信号参数以及信号处理模型参数,可以在input文件的test1_param.m中查看,其序号1可以在cascade_MIMO_signalProcessing.m的testID这一参数进行修改,从而区分。
4.7 级联板的一些用例设置和后期处理相关
cascade Radar 可以在TX beamforming产生$20Log10(N_{TX})$ SNR增益,角度分辨率可达1.4度,最远探测距离约为350m。
该四芯片级联板卡也可采用双芯片级联的形式,即左半边的master加上slave 4,
4.7.1 校准
TI的工具包提供的是一次校准,主要针对MIMO和Tx Beamforming,可以参考tiduen5a.pdf 。
4.7.1.1 天线校准 Inter-channel mismatch calibration
这个是针对RF评估板进行的校准。天线校准校准包括频率,相位和幅度三个方面的校准,这个每个RF板子都是需要校准的,每个Casade RF-EVM评估板校准一次就行,校准之后只要是用该板子采集数据就不需要,通过校准可以提高角度测量的精度表现。具体原理可以参考”signal_processing_4chip_cascade.pdf” 中的“Antenna Calibration” 一节。
实验设备放置:角反(RCS 1~2平方米)放置于空旷环境中(确保附件无强反射物),距离评估板5m左右(可以在代码中更改),角反需要和评估板阵列的方位角和仰角保持在同一直线上(这一点可以用带激光头的水平传感器来实现)。
基本原理就是从192个虚拟通道(12发16收)中分离数据,对每个信道进行FFT,角反对应的峰值识别为[D-1,D+1]m内的局部最大值(D为用户提供的近似目标距离),主要对相位和幅度进行校准。
校准:参数设置和数据采集用MIMO用例下的脚本。更新“cascade_MIMO_antennaCalib.m” 中“dataFolder_calib_data” 的文件,之后运行“cascade_MIMO_antennaCalib.m” 文件,通过程序更新calibrateResults_high.mat矩阵文件。
-
运行Cascade_Configuration_MIMO.lua
-
运行Cascade_Capture.lua
-
更新“cascade_MIMO_antennaCalib.m” 中“dataFolder_calib_data” ,可直接在Cascade_Capture.lua 中修改生成文件名为'MIMO_Calibration_Capture'
-
运行cascade_MIMO_antennaCalib.m
-
生成得到矩阵文件calibrateResults_high.mat,校准后在testList.txt文档中修改校准的矩阵。此前用的都是假的校准矩阵calibrateResults_dummy.mat,要替换成calibrateResults_high.mat,而原本存在的calibrateResults_high.mat是TI校准的一个板子的数据(仅供参考,实际是不能用的),自己的板子需要额外校准。
**note: ** 可以看出上面的校准的结果是针对于mismatch calibration的,生成calibrateResults_high.mat矩阵文件。对于Phase Shifter Calibration则应生成phaseMismatchCalibration.mat文件。
4.7.1.2 相位偏移校准 Phase Shifter Calibration
主要是针对于接收天线Rx,用于Beamforming下生成phaseShifterCalibration.mat文件。此处参考AWRx_TX_Channel_Calibration_Script_User_Guide.pdf 进行校准。
实验装置放置:在空旷处,距离评估板至少5m处放置角反。
校准:
有三种方式,第一种是为了生成phaseShifterCalibration.mat 文件,后面两种均是为了得到校准和不校准的图片差异,第二种是简化版本:
-
Cascade_Phase_Shifter_Calibration_AWRx.lua
这种方式是基于TDMA-MIMO帧结构进行校准,这个脚本程序四个主从芯片均会用到,通过0到63设置6位phase-shifter offset。可修改脚本中对应的一些chirp信号的相关参数。由于以太网传输的限制,可能需要30min来传输数据。默认存储在/mmWaveStudio/Postproc/floder(自己可以命名)/TX_PS_CAL_phaseShiftValueX
- 运行Cascade_Phase_Shifter_Calibration_AWRx.lua,用于RF板卡的设置和采集板的数据采集。
- 运行cascade_TX_Phase_Calibration.m 生成calibrateTXPhaseResults.mat文件,运行前更新dataFolder_calib_data_path的值。该程序调用cascade_Read_TX_Cal_Data.m 读取相关数据。
- 运行TXBF_PS_LUT_Generate.m读取 calibrateTXPhaseResults.mat文件,生成查找表LUT。记得更新phaseShiftCalFile 的路径值。该程序调用TXBF_Calc_Phase_Settings.m。得到csv文件的矩阵信息可以在下面两个例子Cascade_Configuration_TXBF_Simple.lua 和Cascade_Configuration_TXBF_AngleSweep.lua 中使用
- 运行TXBF_Create_PSCal_Advanced_Frame_Config.m,利用calibrateTXPhaseResults.mat文件生成得到phaseShifterCalibration.mat 用于TXBF 例子。
-
Cascade_Configuration_TXBF_Simple.lua
这个是简单验证做校准和不做校准的效果差异图对比,说明校准的必要性。
变量psCalLUT 是[9 Tx]x[Number of Angles]的矩阵,这个只用到了测水平角的三个从属devices,测仰角的master没有用,所以是9 Tx。
-
Cascade_Configuration_TXBF_AngleSweep.lua
与Cascade_Configuration_TXBF_Simple.lua 基本相同
-
运行Cascade_Configuration_TXBF_AngleSweep.lua
-
cascade_TXBF_Verification.m 用于找到peak magnitude 峰值和beam-steering angle
-
TXBF_Create_PSCal_Advanced_Frame_Config.m 用于更新phaseShifterCalibration.mat 校准矩阵,如下图所示的phaseShifterCalibration.mat,而phaseMismatchCalibration.mat与上面的mismatch calibration得到的校准矩阵是一样的。
-
4.7.2 TDM MIMO
时分复用,Master芯片测俯仰角,slave测水平方位角,在垂直方向上的分辨率比较低,官方给的俯仰角分辨率是$18^o$。
- 环境安装 电脑里面 “CASCADE_SIGNAL_PROCESSING_CHAIN_MIMO” “<Installation_path>\mmWaveStudio\MatlabExamples\4chip_cascade_MIMO_example” ,安装好之后重启matlab;打开matlab并设置当前路径为“<Installation_path>\mmWaveStudio\MatlabExamples\4chip_cascade_MIMO_example” 。运行“add_paths.m” 来加入当前路径(当然熟悉matlab的话直接添加到当前路径就行)。
- 校准。对RF评估板进行一次即可。通过LUA脚本进行数据采集,角反放置大约5m范围。进入matlab里面的 \main\cascade 文件夹,更新“cascade_MIMO_antennaCalib.m” 中的“dataFolder_calib_data” 。运行“cascade_MIMO_antennaCalib.m”
- Post-procrssing 通过LUA脚本得到采集的数据,更新第一行数据采集的路径,更新第二行校准得到的校准向量的路径,更新第三行的算法参数,运行“cascade_MIMO_signalProcessing.m”
4.7.3 TX Beamforming
默认的TXBF只考虑9根天线,master芯片3个通道不发射。ADC start time决定初始部分数据质量(主要是影响实际带宽)。
先得到各个校准的矩阵并进行更新
- Inter-channel Mismatch Calibration matrix 这个在MIMO中已经得到,更新一下就行。
- Tx phase shifter calibration matrix
采集数据并进行信号处理:
- 运行Cacade_Configuration_Basic.lua
- 一种方式是运行Cascade_Configuration_TXBF.lua 设置Profiles, Chirps, Frames, or Phase shifters。但似乎这里面的参数不能修改数据。
- 由于有人提到这个lua无法修改数据,所以还有一种方式,即先在chirpProfile_TxBF_USRR.m中修改波形参数。发射指定方位。再更新“cascade_TxBF_dataCapture.m” 中的phaseShiftCalibfile 、phaseMismatchCalibfile (和MIMO中相同)、RSTD_DLL_Path 、paramFile 。运行 cascade_TxBF_dataCapture.m ,这主要进行profile、chirp信号设置以及Phase Shifter设置,其余的设置均通过lua进行设置。
- 运行Cascade_Capture.lua,运行前记得更改“capture_directory”的名字,以便将不同的数据存于不同的文件夹。
- 运行cascade_TxBF_signalProcessing.m 进行简单的数据信号处理。注意更新相关参数值