6769|2

74

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【TI毫米波雷达测评】XWR14XX 数据路径 [复制链接]

  本帖最后由 a736015 于 2019-12-9 10:35 编辑

IWR1443BOOST开箱测试:https://bbs.eeworld.com.cn/thread-1101610-1-1.html

SDK及例程下载:https://bbs.eeworld.com.cn/thread-1102315-1-1.html

 

一、总体

            顶层数据路径处理链

 

                                            顶层数据路径时序

 

如上图所示,数据路径处理包括:

  • 如时序图中所示,在线性调频期间进行处理:
    • 这包括一维(范围)FFT处理,该处理针对每个线性调频(对应于发射天线的线性调频模式)从ADC缓冲区的多个接收天线接收输入,并对其执行FFT,并将转置后的输出生成到L3 RAM中。这是使用HWA和EDMA完成的。
  • 在线性调频结束到下一个线性调频周期开始之间的时间中的处理,在时序图中显示为“帧间周期”。该处理包括:
    • 2D(速度)FFT处理,该处理从L3 RAM中的1D输出获取输入并执行FFT,以在L3 RAM中给出(范围,速度)矩阵。这是使用HWA和EDMA完成的。
    • 使用HWA进行CFAR检测。
    • 使用R4F进行后期处理。
    • 到达估算方向(方位、仰角)。

二、天线配置

下图显示了从EVM xWR14xx板的正面与x,y,z坐标约定一起看到的天线布局。

                                xWR14xx天线布局

 

毫米波演示支持两种天线配置:

  • 两个发射天线和四个接收天线。发射天线Tx1和Tx3在d = 2 Lambda处水平间隔,其发射交错在一个帧中。该配置允许方位角估计。
  • 三个发射和四个接收天线。第三个Tx天线Tx2位于其他两个Tx天线之间,高度为半λ。该配置允许方位角和仰角估计。

三、一维FFT处理

                                                                        数据路径1D

                                                                数据路径1D时序图

上面的图片说明了一种情况,即每帧3 * 16 = 48个片,每个线性调频脉冲每个接收天线有225个采样,如天线配置中提到的那样,在帧内以重复模式(Tx1,Tx3,Tx2)线性调频。这就是3D轮廓(速度和x,y,z)情况。有4个rx天线,其样本被颜色编码并标记为1,2,3,4,每个each具有独特的颜色,以乒乓方式处理以并行化加速器和EDMA处理,并从ADC采集样本。硬件加速器的参数RAM设置为执行256点FFT,该FFT在输入ADC ping和pong缓冲区上运行,以在HWA的M2和M3存储器中产生输出。最初,软件触发(MmwDemo_dataPathTrigger1D)通过激活HWA的伪参数PARAM_0(ping)和PARAM_2(pong)进行处理,而伪参数PARAM_0(ping)和PARAM_3(pong)又激​​活等待ADC满信号的处理PARAM_1(ping)和PARAM_3(pong)。当ADC有采样要在ADC缓冲区Ping或Pong存储器中处理时,相应的处理PARAM将触发FFT计算并将FFT输出传输到M2或M3存储器中。在将ADC样本发送到FFT引擎之前,在HWA中将Blackman窗口应用于它们。FFT的完成还会触发EDMA,该EDMA已设置为执行从M2 / M3存储器到L3 RAM的转置复制(Radar Cube Matrix,MmwDemo_DataPathObj :: radarCube),如图所示。进行此HWA-EDMA乒乓处理48/2(ping / pong)= 24次,以便处理帧的所有chi。设置EDMA,以便在处理每个线性调频脉冲后,从EDMA A和EDMA C通道链接的EDMA B或EDMA D将触发HWA的虚拟PARAM。图片中的EDMA C被设置为在最后一次调频后发出完成中断,该中断通知软件1D处理已完成,并且当该时间到来时,软件可以在下一个调频周期再次触发1D处理。EDMA的影子(链接)PaRAM用于重新加载PaRAM,因此避免了重新编程。EDMA块之间的蓝色箭头表示链接,红色箭头表示链接。

在上面的图片中:

  • A是MMW_EDMA_1D_PING_CH_ID
  • B是MMW_EDMA_1D_PING_CHAIN_CH_ID
  • A_shadow是MMW_EDMA_1D_PING_SHADOW_LINK_CH_ID
  • B_shadow是MMW_EDMA_1D_PING_ONE_HOT_SHADOW_LINK_CH_ID
  • C是MMW_EDMA_1D_PONG_CH_ID,
  • D是MMW_EDMA_1D_PONG_CHAIN_CH_ID
  • C_shadow是MMW_EDMA_1D_PONG_SHADOW_LINK_CH_ID
  • D_shadow是MMW_EDMA_1D_PONG_ONE_HOT_SHADOW_LINK_CH_ID

四、较低精度的二维处理

                                                            数据路径2D FFT高级图

 

                                                                                数据路径2D FFT时序图

 

如上面的高级图中所示,2D处理对来自1D输出的范围数据执行二维(Doppler)FFT,该处理以乒乓方式进行。它包括以下步骤:

  1. 如果启用,则可以消除静态杂波。对于每个测距箱,每个天线,计算样本平均值并从样本中减去。该操作由R4F直接对L3中的数据执行。
  2. 来自L3 RAM(MmwDemo_DataPathObj :: radarCube)的数据通过EDMA传输到HWA的M0(偶数对或ping)和M1(奇数对或pong)存储器中,然后执行2D-FFT并在M2中产生输出和M3记忆。在进行FFT操作之前,将输入样本乘以窗口函数。
  3. HWA从上述步骤对M2和M3存储器执行对数幅度运算,并在M0和M1中产生结果。对数幅度输出为Q11格式。
  4. HWA对上述步骤中的M0和M1存储器执行求和运算,并在步骤2的结果之后的M2和M3存储器中生成结果。该和是使用HWA中的FFT完成的,其和是在DC(0th)中获得的斌 该FFT编程的srcScale为2,这意味着将2个冗余位(符号扩展,在这种情况下为无符号)添加到MSB中,并用0填充6个LSB,因此在计算前输入为Q17格式。dstScale设置为8,因此求和输出将被丢弃8位,从而得出Q [17-8] = Q9格式的结果。FFT大小是虚拟天线数量2的下一个幂,并且FFT被编程为启用所有蝶形缩放级,因此FFT输出将为1 / N'* sum(。),其中N'= 2 ^ ceil( log2(numVirtualAntennas))真实平均值为1 / numVirtualAntennas * sum(。)。因此,当设置CFAR阈值时,
  5. EDMA将步骤1的结果复制到MmwDemo_DataPathObj :: radarCube的L3 RAM中(与步骤1中的输入相同),然后EDMA将先前步骤的结果复制到MmwDemo_DataPathObj :: rangeDopplerLogMagMatrix的L3 RAM中。

数据以MMW_NUM_RANGE_BINS_PER_TRANSFER行的大块形式传输和处理上面的时序图中显示了乒乓并行的时序。有关数据流的更多详细信息,例如级之间的存储器中的数据格式,EDMA和HWA资源等,请参阅下面的详细图表。

                                                                                            数据路径2D FFT详细图

在详细图中:

  • A是MMW_EDMA_2D_PING_CHAIN_CH_ID2,
  • B是MMW_EDMA_2D_PING_CHAIN_CH_ID3
  • A_shadow是MMW_EDMA_2D_PING_SHADOW_LINK_CH_ID3
  • B_shadow是MMW_EDMA_2D_PING_SHADOW_LINK_CH_ID4
  • C是MMW_EDMA_2D_PONG_CHAIN_CH_ID2,
  • D是MMW_EDMA_2D_PONG_CHAIN_CH_ID3
  • C_shadow是MMW_EDMA_2D_PONG_SHADOW_LINK_CH_ID3
  • D_shadow是MMW_EDMA_2D_PONG_SHADOW_LINK_CH_ID4
  • E是MMW_EDMA_2D_PING_CH_ID,
  • F是MMW_EDMA_2D_PING_CHAIN_CH_ID1(链接到A)
  • E_shadow是MMW_EDMA_2D_PING_SHADOW_LINK_CH_ID1
  • F_shadow是MMW_EDMA_2D_PING_SHADOW_LINK_CH_ID2
  • G是MMW_EDMA_2D_PONG_CH_ID,
  • H是MMW_EDMA_2D_PONG_CHAIN_CH_ID1(链接到C)
  • G_shadow是MMW_EDMA_2D_PONG_SHADOW_LINK_CH_ID1
  • H_shadow是MMW_EDMA_2D_PONG_SHADOW_LINK_CH_ID2

通过启动EDMA A和EDMA C(MmwDemo_dataPathTrigger2D),由软件触发2D处理

五、高精度的二维处理

在上述数据路径处理中(较低精度的二维处理),FFT输出具有24位精度,但转换为16位以存储在雷达多维数据集中,并且该16位还用于log2处理。该方案的原因是雷达立方体中的存储空间有限。然而,这种精度的损失导致尖峰的噪声分布,这增加了CFAR中的错误检测。解决此问题的一种方法是在log2操作之前将FFT的输出存储为32位而不是16位在M存储器中。但是,这需要存储(以字节为单位)= 3(数量为tx的天线)* 4(数量为rx的天线)* 8(复杂的32位)*多普勒FFT大小。这必须适合四个M存储器中每个存储器的16 KB大小,这将多普勒FFT大小限制为512,但我们最多支持1024。因此,我们必须选择HWA中的选项以直接链接FFT和对数幅度而无需转到M存储器,这保留了24位精度。但是,这是以在DOA计算期间重新计算2D FFT为代价的。因此,这是精度和MIPS之间的权衡。默认情况下,已选择此较高精度方案,但用户可以通过更改以下代码行来更改为较低精度方案main.c将左侧变量设置为DATA_PATH_CHAIN_SEPARATE_LOGMAG。

    gMmwMCB.dataPathObj.datapathChainSel = DATA_PATH_CHAIN_COMBINED_LOGMAG;

下图显示了修改后的数据路径2D FFT。由于2D FFT输出未存储在Radar Cube中,因此Radar Cube仍包含1D FFT数据。

                                    数据路径2D FFT详细图-结合了2D FFT和对数幅度

在详细图中:

  • A是MMW_EDMA_2D_PING_CHAIN_CH_ID2,
  • B是MMW_EDMA_2D_PING_CHAIN_CH_ID3
  • A_shadow是MMW_EDMA_2D_PING_SHADOW_LINK_CH_ID3
  • B_shadow是MMW_EDMA_2D_PING_SHADOW_LINK_CH_ID4
  • C是MMW_EDMA_2D_PONG_CHAIN_CH_ID2,
  • D是MMW_EDMA_2D_PONG_CHAIN_CH_ID3
  • C_shadow是MMW_EDMA_2D_PONG_SHADOW_LINK_CH_ID3
  • D_shadow是MMW_EDMA_2D_PONG_SHADOW_LINK_CH_ID4
  • E是MMW_EDMA_2D_PING_CH_ID(链接到A),
  • E_shadow是MMW_EDMA_2D_PING_SHADOW_LINK_CH_ID1
  • G是MMW_EDMA_2D_PONG_CH_ID(链接到C),
  • G_shadow是MMW_EDMA_2D_PONG_SHADOW_LINK_CH_ID1

通过启动EDMA A和EDMA C(MmwDemo_dataPathTrigger2D),由软件触发2D处理

 

六、CFAR检测

                                                                    数据路径CFAR检测图

如上图所示,CFAR处理包括:

  1. 该软件触发(MmwDemo_dataPathTriggerCFAR)EDMA,该EDMA将范围多普勒对数幅度矩阵从L3 RAM MmwDemo_DataPathObj :: rangeDopplerLogMagMatrix(二维处理的输出)传输到M0存储器。
  2. HWA在M0中执行CFAR计算,并在M2存储器中产生输出,并且将来自HWA的CFAR完成中断生成到R4F CPU。

在上图中:

  • 一个是MMW_EDMA_CFAR_INP_CH_ID
  • B是MMW_EDMA_CFAR_INP_CHAIN_CH_ID
  • A_Shadow是MMW_EDMA_CFAR_INP_SHADOW_LINK_CH_ID1
  • B_Shadow是MMW_EDMA_CFAR_INP_SHADOW_LINK_CH_ID2

以下是默认的CFAR配置参数:

  • MMW_HWA_NOISE_AVG_MODE
  • MMW_HWA_CFAR_THRESHOLD_SCALE
  • MMW_HWA_CFAR_WINDOW_LEN
  • MMW_HWA_CFAR_GUARD_LEN
  • MMW_HWA_CFAR_NOISE_DIVISION_RIGHT_SHIFT
  • MMW_HWA_CFAR_PEAK_GROUPING

可以使用cli配置命令cfarCfg更改这些参数。带有参数的命令如下所述:

cfarCfg <averageMode> <winLen> <guardLen> <noiseDiv> <cyclicMode> <peakGrouping> <thresholdScale>

 

  • <averageMode>-0-CFAR_CA,1-CFAR_CAGO,2-CFAR_CASO
  • <winLen>-CFAR噪声平均窗口长度
  • <guardLen>-CFAR保护长度
  • <noiseDiv>-CFAR噪声平均除数(右移值)
  • <cyclicMode>-禁用0循环模式,启用1循环模式
  • <peakGrouping>-禁用0峰值分组,启用1峰值分组
  • <thresholdScale>-检测比例因子

注意:如“ 较低精度的二维处理”一节所述(这也适用于“ 较高精度的二维处理”中的较高精度的处理链),输入到CFAR的总和为Q9格式,因此上面的CFAR thresholdScale也需要采用Q9格式。另外,如果CFAR阈值最初打算以dB表示(例如,为了用户友好),那么我们需要在馈送给HWA CFAR之前进行一些转换。这可以如下得出:
令N为虚拟天线的数量,并且N'= 2 ^ ceil(log2(N)),以dB为单位的用户友好CFAR阈值为TdB(= 20 * log10(|。|))。CFAR通常需要做的事情:
CUT = 1 / N * sum(log10(|。|))> TdB / 20 +噪声项的平均值[类似于LHS上的CUT] 
给定log10(|。|)= log2(|。|)/ log2(10 ),然后进一步调整各项以进行类似的计算,以匹配低精度第维处理中描述的总和输出
2 ^ 9 * 1 / N'* sum(log2(|。|))> TdB / 20 * log2(10)* 2 ^ 9 +噪声项的平均值[类似于LHS上的CUT] 
因此,要提供给HWA(来自CLI)的
值为Tcli = 512 * TdB / 6 * N / N'

七、后处理

后处理包括峰分组和多普勒相移补偿。

峰值分组功能(MmwDemo_peakGrouping)由CFAR处理后的R4F CPU完成。它的输入是:

  • 从M2中的2D输出通过CFAR检测检测到的对象列表。如cfarDetOutput_t所示,每个检测到的对象都由三个参数来描述:范围索引,多普勒索引和CFAR单元中的噪声能量。
  • 雷达立方矩阵,位于L3内存中(MmwDemo_DataPathObj :: radarCube)。
  • 在L3内存中记录幅度范围多普勒矩阵(MmwDemo_DataPathObj :: rangeDopplerLogMagMatrix)。

该函数执行以下操作:

  1. 丢弃范围索引超出peakGrouping CLI命令指定的范围的检测到的对象。
  2. 丢弃检测到的对象,这些对象的FFT峰在距离多普勒矩阵(MmwDemo_DataPathObj :: rangeDopplerLogMagMatrix)中小于其邻居。
  3. 对于每个选定对象,将位于MmwDemo_DataPathObj :: radarCube中的已接收虚拟天线的2维FFT复数值复制到M0(方位角天线)和M1(仰角天线),以进一步进行方位角和仰角FFT计算。
  4. 对于每个选定对象,将其(范围,多普勒)索引复制到R4F CPU的本地内存MmwDemo_DataPathObj :: objOut,将在完成方位角和x,y,z计算后最终将其发出

多普勒补偿功能(MmwDemo_dopplerCompensation)由CFAR和峰值分组处理之后的R4F CPU完成。

它的输入是单独的方位角和海拔符号阵列。

它在与虚拟Rx天线相对应的符号上对多普勒相移进行补偿。在2Tx MIMO方案的情况下,第二组Rx符号被旋转对应于相同Tx天线的后续线性调频脉冲之间的估计多普勒相移的一半。在3Tx MIMO高程方案的情况下,第二组Rx符号旋转了估计的多普勒相移的三分之一,而与第三Tx天线相对应的第三组Rx符号旋转了估计的多普勒相移的2/3 。请参考下面的图片。

                                                                多普勒补偿

最后,该函数返回所选对象的数量。

八、与较低精度的2D处理相对应的FFT计算到达方向

如果后处理阶段之后检测到的峰值数大于零,则由软件(MmwDemo_dataPathTriggerAngleEstimation)触发方位角/高程FFT计算对于M0(方位角天线)和M1(仰角天线)中的每个检测到的物体,它执行以下步骤:

  1. 从M1到M3的仰角天线阵列的复数FFT。
  2. 从M0到M2的方位角天线阵列的复数FFT。
  3. 从M0到M1的阵列方位角天线的对数FFT(覆盖步骤1的输入)。执行此步骤是为了找到峰值。峰的位置用于查找以上两个步骤中的计算输出,以获得方位角和仰角峰点,分别在“ 到达估计的方向(x,y,z)”中分别称为P1和P2

当前,FFT的大小由MMW_NUM_ANGLE_BINS进行硬编码和定义。如果Tx高程天线的数量等于零(无高程),则仅执行上面的步骤2。

九、高精度2D处理对应的到达FFT计算方向

要进行更高精度的2D处理,请记住在2D FFT阶段, 

  • HWA无需输出格式化为16位数据即可计算对数幅度和2D FFT,以保留CFAR检测的分辨率。
  • 它仅保存rangeDoppler矩阵,而雷达立方体却被一维FFT数据填充。

在CFAR和峰分组阶段之后, 

  • 将针对检测到的对象重新计算2D FFT。
  • 其余角度估计和高程估计与对应于低精度2D处理的到达FFT计算的数据路径方向相同。

在图中:

  • A是MMW_EDMA_2DFFT_SINGLERBIN_CH_ID,
  • B是MMW_EDMA_2DFFT_SINGLERBIN_CHAIN_CH_ID
  • A_shadow是MMW_EDMA_2DFFT_SINGLERBIN_SHADOW_LINK_CH_ID
  • B_shadow是MMW_EDMA_2DFFT_SINGLERBIN_SHADOW_LINK_CH_ID2

十、到达估算方向(x,y,z)

                                        图A:坐标几何

                                    图wz

                                                图wx

几何图显示x,y,z轴相对于传感器/天线位置的方向。目的是估计每个检测到的对象的(x,y,z)坐标。wx是2D FFT的连续接收方位角天线wz之间的相位差是方位角和该方位角天线上方相应仰角天线之间的相位差。每个天线的相位在多普勒图中显示。图_wz显示,距离AB代表相交连续高程天线的波阵面之间的相对距离

因此

因此

注意,与上天线相比,下天线的相位提前了,这就是图片X在上天线中显示-Wz项的原因。图_wx显示其表示波阵面相交的连续方位天线之间的相对距离的距离CD

因此 因此 对于单个障碍物,在8个方位角天线处的信号将为(A1并且ψ是在第一个天线处的任意起始振幅/相位):

上述信号的FFT将产生的峰P1在wx与该峰是的相位ψ

如果 是表示为范围签署指数数幅度FFT峰的指数 ,然后wx

4个仰角天线处的信号将为:

上述信号的FFT将产生的峰

与该峰存在的相

从上面,

因此,

计算范围(以米为单位)为:

其中,c是光速(m / sec),

是范围索引, 是采样频率(Hz),S是线性调频斜率(Hz / sec), 是1D FFT大小。基于对上述计算R, 并且 将(x,y,z)可作为看到计算出的物体的位置几何图, (x,y,z)每个对象的计算出的峰峰值和方位角分别填充在MmwDemo_DataPathObj :: objOut中的相应位置,然后将其运送到UART端口(MmwDemo_transmitProcessedOutput)上。为了能够检测到具有相同距离多普勒指数但角度不同的两个对象,请在方位角FFT中搜索第二个峰,并将其高度与第一个峰高进行比较,如果检测到,则在列表中创建新的对象相同的范围/多普勒指数,并重复上述步骤以计算(x,y,z)坐标。要启用/禁用两个峰值检测或更改检测阈值,请参考MMWDEMO_AZIMUTH_TWO_PEAK_DETECTION_ENABLEMMWDEMO_AZIMUTH_TWO_PEAK_THRESHOLD_SCALE

 

 

image.png (14.86 KB, 下载次数: 1)

image.png

image.png (485 Bytes, 下载次数: 0)

image.png

image.png (485 Bytes, 下载次数: 0)

image.png

image-20191209101907-3.png (1.82 KB, 下载次数: 0)

image-20191209101907-3.png

image-20191209102004-4.png (1.45 KB, 下载次数: 0)

image-20191209102004-4.png

最新回复

  详情 回复 发表于 2020-12-3 12:14
点赞 关注
 

回复
举报

447

帖子

3

TA的资源

管理员

沙发
 

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表