RangeProcHWA(使用HWA进行Range测量)

Top Level Design

Range FFT处理由HWA硬件完成。rangeProcHWA根据射频参数配置硬件加速器FFT引擎。它还配置数据输入和输出EDMA通道,以将数据引入和超出范围处理内存
HWA FFT处理由基于硬件的触发器"chirp data available"触发,该触发器在硬件内部连接到HWA。
FFT处理完成后,HWA对rangeProcHWA DPU产生中断,同时触发EDMA数据输出通道将FFT结果以配置的格式复制到radarcube。EDMA中断完成中断在幅值完成后由EDMA硬件触发
直流天线信号校准和消除内置于rangeProcHWA模块中。如果启用该功能,则在完成所有线性调频脉冲(帧内)FFT处理后完成
下图显示了rangeProcHWA的顶层设计:
在这里插入图片描述
下图显示了一个3tx天线MIMO情况的一般时序图,但是可以想象对于1个或2个tx情况也是如此。后面章节中描述的所有用例都有这个通用的时序流程。
在这里插入图片描述

Data Interface Parameter Range

下面是支持ADCBuff和radarCube接口配置:

ADCBuf Data Interface

在这里插入图片描述

Radar Cube Data Interface

在这里插入图片描述
注意:

  • 对于具有1TX,4RX天线和DPIF_RADARCUBE_FORMAT_1格式的1024range bins,由于EDMA地址跳转的限制(跳转<32768),目前不支持此功能。
  • 对于具有3TX,4RX天线和DPIF_RADARCUBE_FORMAT_1格式的1024range bins,由于EDMA地址跳转的限制(跳转<32768),目前不支持此功能。
  • 由于rangeProcHWA DPU实现的Ping/Pong方案,numChirpPerFrame/numTxAntennas应该是一个偶数

Data Input

有两种HWA输入模式被支持(DPU_RangeProcHWA_InputMode_e)

  • DPU_RangeProcHWA_InputMode_ISOLATED:ADCBuf缓冲区和HWA内存在屋里内存上分配是孤立的。数据输入的EMDA通道配置为以乒乓交替的顺序将数据从ADCBuf传输到HWA M0/M1存储器
  • DPU_RangeProcHWA_InputMode_MAPPED:ADCBuf缓冲和HWA内存是被映射的。HWA能直接读ADC数据。不需要副本。

根据射频的配置,在ADCBuf中的数据可以是交织模式也可以是非交织模式

Data Output

RangeProcHWA配置数据输出的EDMA通道将HWA M2/M3的FFT结果传输到雷达存储器
rangeProcHWA支持以下两种radarCube格式:

  • DPIF_RADARCUBE_FORMAT_1
  • DPIF_RADARCUBE_FORMAT_2

下列表格描述了支持的数据输入和输出的组合:
在这里插入图片描述

Data Processing

Range FFT处理由HWA硬件完成。如下所示,当DPU_RangeProcHWA_config完成之后,在每一帧中,rangeProcHWA通过DPU_RangeProcHWA_control被触发使用命令DPU_RangeProcHWA_Cmd_triggerProc.如果硬件资源与其他模块重叠,则可以在下一帧开始之前调用DPU_RangeProcHWA_config。在下一帧开始之前,可以在帧间时间更新DC信号移除配置。
在这里插入图片描述

Antenna coupling signature removal

此功能通过配置DPU_RangeProc_CalibDcRangeSigCfg_t来控制。该配置可以通过API DPU_RangeProcHWA_config发送到rangeProcHWA DPU
该配置也可以在运行时通过控制命令DPU_RangeProcHWA_Cmd_dcRangeCfg进行更新。

直流信号的校准和补偿由中央处理器直接在雷达上进行
在这里插入图片描述

Use Cases and Implementation

本节描述了一些使用输入/输出配置组合的用例的内部实现

HWA param set Implementation

从paramSetStartIdx开始,RangeProcHWA始终使用4个连续的HWA param集合(DPU_RangeProcHWA_NUM_HWA_param_sets),从现在开始,这些参数将标记为PARAM_0,PARAM_1,PARAM_2,PARAM_3,以便于解释和图片表示。参数集以PING/PONG交替的方式在两个并行处理链中使用。PARAM_0和PARAM_1用于PING,PARAM_2和PARAM_3用于PONG
参数0和参数2需要由触发器激活,以保护内部数据内存的完整性。当开始第一次线性调频脉冲时,软件会首先被触发。因此,它们是由数据输出热签名通道触发的。参数1和参数3分别是Range FFT参数集分别对应于PING和PONG。在直接映射输入模式下,当chirp数据可用时,它们由前端硬件触发。在独立输入模式下,它们由热签名中的数据触发。在HWA中完成range FFT处理之后,HWA参数设置自动触发EDMA通道中的数据,以所需的radar cube格式将数据复制到radar cube中。

EDMA Data In Implementation

启用时,使用两个EDMA通道构建数据输入EDMA。第一个EDMA通道将数据从ADCBuf缓冲区复制到HWA存储器中。第二个EDMA通道被链接到第一个通道。它复制热签名来触发range FFT参数集。
总之,EDMA中数据需要以下资源:

  • 1 EDMA channel with 1 shadow channel
  • 1 hot Signature channel with 1 shadow channel

EDMA Data Out Implementation

数据输出EDMA负责将数据从HWA存储器复制到radar Cube存储器中。他有两种格式(DPU_RangeProcHWA_EDMAOutputConfig_t)
DPU_RangeProcHWA_EDMAOutputConfigFmt2仅适用于以下的配置:
在这里插入图片描述
全部其他的配置应该使用DPU_RangeProcHWA_EDMAOutputConfigFmt1_t
对于EDMA dataOut Fmt1,它需要三个EDMA通道,如下:

  • Ping:1 EDMA channel with 1 shadow channel
  • Pong:1 EDMA channel with 1 shadow channel
  • Signature channel:1 HWA hot signature channel with 1 shadow channel

PING和PONG EDMA通道由参数1和参数3FFT自动触发。两个PING/PONG EDMA通道都链接到data out Hot Signature channel,当EDMA channel copy完成后,会触发HWA PARAM_0和PARAM_2
对于EDMA dataOut Fmt2,它需要以下资源:

  • Ping:
    • 1 dummy EDMA channel with 3 shadow channels
    • 3 dataOut channel,each has a shadow channel
  • Pong:
    • 1 dummy EDMA channel with 3 shadow channels
    • 2 dataOut channel,each has a shadow channel
  • Signature channel:
    • 1 HWA hot signature channel with 1 shadow channel

在完成FFT运算后,由HWA PARAM_1(触发器数据输出PingEDMA通道)和PARAM_3(触发器数据输出pongEDMA通道)触发虚拟EDMA通道。虚拟通道连接到3个shadow通道。shadow通道按循环顺序加载到虚拟通道。每个虚拟通道链接到具有不同源地址和目标地址的3个dataOut通道中的一个。具体情况如下:
在这里插入图片描述

Interleaved RX channel data ->DPIF_RADARCUBE_FORMAT_2

这个案例用于配置具有交错ADC数据的直接映射输入缓冲区。经过Range FFT后,数据保存在雷达立方体格式中:DPIF_RADARCUBE_FORMAT_2。
DataIn EDMA不是必需的,DataOut EDMA应该配置为DPU_RangeProcHWA_EDMAOutputConfigFmt2的格式
在这里插入图片描述
在这里插入图片描述
上面的图说明了三个发射天线的情况,在帧内以重复模式(Tx1、Tx3、Tx2)的线性调频脉冲,这是3D配置(velocity和x,y,z)的案例。共有4个接收天线,它们的样本被彩色编码,并标记为1、2、3、4,每一个chirp都以pingpong方式处理,以并行化加速器和EDMA处理,同时从ADC获取样本。硬件加速器的参数RAMs被设置成为FFT,FFT操作于输入ADC的ping和pong缓冲器,在HWA的M2和M3存储器中产生输出。每一帧都需要进行一次处理,这是由range DPU用户通过发出IOCTL命令代码DPU_RangeProcHWA_Cmd_triggerProc(这调用rangeProcHWA_TriggerHWA),改代码激活HWA的虚拟参数PARAM_0(ping)和PARAM_2(pong),后者发过来激活处理参数PARAM_1(ping)和PARAM_3(pong),这些都需要等待ADC满信号。当ADC在ADC缓冲区Ping或Pong存储器中有要处理的样本时,相应的处理参数将触发FFT计算并将FFT输出传输的MW或M3存储器中。在ADC样本被发送到FFT引擎之前,配置好的FFT窗口被应用到HWA中。FFT的完成触发了数据输出PING/PONG EDMAs,该EDMAs被设置为执行从M2/M3存储器到L3 RAM(Radar Cube)如图片中所示。这个HWA-EMDA的ping-pong处理被做DPU_RangeProcHWA_StaticConfig_t::numChirpsPerFrame/2(ping/pong)次,以便于处理处理帧的所有线性调频脉冲。EDMA的设置使得数据输出EDMA都链接到数据输出Signature EDMA。因此,当M2/M3存储器中的FFT结果被传输到雷达立方体时,就会触发数据输出Signature EDMA。这个signature EDMA被设置为触发伪参数。甚至signature是一个EDMA通道,它也被设置为在两个伪参数之间交替,因此当ping数据输出传输完成时,ping伪参数(PARAM_0)将被激活,当pong完成时,pong伪参数(PARAM_2)将被激活。signatureEDMA被设置为在最后一次线性调频脉冲结束时发出一个中断,该中断通知软件range DPU处理完成,用户可以在时间到来时再次触发下一个chirp周期的处理。EDMA的shadow(link)参数用于重新加载这些参数,从而避免了重新编程。EDMA块之间的蓝色箭头代表linking,红色箭头代表chaining。

在进一步的用例中,我们不会如此详细地描述图,但是总体流程是相似的。在HWA的编程、EDMA资源的数量以及它们处理所需输入和输出格式的编程方面,细节差别很大。

Non-Interleaved RX channel data->DPIF_RADARCUBE_FORMAT_2

此用例用于配置具有非交错ADC数据的直接映射输入缓冲区。经过距离FFT之后,数据保存在雷达立方体中的格式为:DPIG_RADARCUBE_FROMAT_2。
由PARAM_1和PARAM_3将数据从非交织格式转换为交织格式。
DataIn EDMA不是必需的,DataOut EDMA应配置为DPU_RangeProcHWA_EDMAOutputConfigFmt2格式。
在这里插入图片描述
在这里插入图片描述

Non-Interleaved RX channel data(1 or 2 TX Antenna) -> DPIF_RADARCUBE_FORMAT_1

这个用例用于配置具有非交错ADC数据的直接映射输入缓冲区。经过RangeFFT后,数据以格式DPIF_RADARCUBE_FORMAT_1被保存到radar cube中。
DataIn EDMA不是必需的,DataOut EDMA应该配置为DPU_RangeProcHWA_EDMAOutputConfigFmt2格式。
图中显示了2TX天线格式的雷达天线。Ping的输出将保存在雷达立方体的TX1部分,Pong的输出将保存在雷达立方体的TX2部分。对于一个TX天线的情况,ping和pong的数据将按交替顺序保存在TX1雷达立方体中。
在这里插入图片描述
在这里插入图片描述

Isolated Non-Interleaved RX channel data(1 or 2 TX Antenna) -> DPIF_RADARCUBE_FORMAT_1

本用例用于配置具有非交错ADC数据的隔离输入缓冲器。经过RangeFFT后,数据用格式DPIF_RADARCUBE_FORMAT_1保存到radar cube中。
DataIn EDMA是需要的,DataOut EDMA应该被配置为DPU_RangeProcHWA_EDMAOutputConfigFmt2格式。
图中显示了2Tx天线格式的radarCube。Ping的输出将保存在radar cube的TX1部分,Pong的输出将保存在radar cube的TX2部分。对于一个TX天线的案例,ping和pong的数据将按交替的顺序保存在TX1 radar cube中。
在这里插入图片描述
在这里插入图片描述

Isolated Non-Interleaved RX channel data(3 TX Antenna) -> DPIF_RADARCUBE_FORMAT_1

这个案例用于配置具有非交错ADC数据的独立输入缓冲器。经过RangeFFT后,数据以格式DPIF_RADARCUBE_FORMAT_1保存到radar cube中
DataIn EDMA是必须的,DataOut EDMA应该配置为DPU_RangeProcHWA_EDMAOutputConfigFmt1格式
Ping/Pong的FFT结果将被保存到radar cube中,如下图所示:Ping1(第一个数据输出EDMA通道)数据将在TX1中转到奇数个多普勒线性调频脉冲,如深灰色箭头所示)Ping2(第二个数据输出EDMA通道)数据将在TX3中得到奇数个多普勒线性调频脉冲,如浅蓝色箭头所示)Ping3(第三个数据输出EDMA通道)数据将转到TX2中的偶数个多普勒线性调频脉冲,如粉红色箭头所示)

Pong1(第一个数据输出EDMA通道)数据将在TX2中转到奇数个多普勒线性调频脉冲,如深绿色箭头所示)Pong2(第二个数据输出EDMA通道)数据将在TX1中得到偶数个多普勒线性调频脉冲,如浅绿色箭头所示)Pong3(第三个数据输出EDMA通道)数据将转到TX3中的偶数个多普勒线性调频脉冲,如蓝色箭头所示)
在这里插入图片描述
在这里插入图片描述

参考文献:

  1. mmWave SDK Module Documentation
  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XXXXiaojie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值