毫米波(mmw)AWR294X Demo

介绍

毫米波演示展示了使用毫米波 SDK(软件开发工具包)中的驱动程序的 AWR294X SOC 的一些功能。它允许用户指定啁啾配置文件,并实时显示检测到的物体和其他信息。

以下是此演示功能的高级说明:

  • 能够通过 UART 端口上的命令行界面 (CLI) 或通过 TI Gallery 应用(毫米波演示可视化工具)指定所需的线性调频配置文件,该应用允许用户通过 UART 输入端口提供各种配置文件配置,并实时显示来自另一个 UART 端口的流式检测输出,如上图所示。
  • 演示目录中提供了一些示例配置文件配置,可以直接与 CLI 一起使用,也可以通过以下目录下的毫米波演示可视化工具使用:
  • mmw/profiles
  • 进行 1D、2D、CFAR、方位角和仰角处理,并实时输出检测到物体的速度和三个空间坐标 (x、y、z)。该演示还可以配置为仅进行 2D 检测(速度和 x,y 坐标)。
  • 除物体检测外,还有各种显示选项,如多普勒距离热图。

加工链

AWR294X演示提供了两条处理链。检查

   ti/datapath/dpc/objectdetection/objdethwa/docs/doxygen/html/index.html

   ti/datapath/dpc/objectdetection/objdethwaDDMA/docs/doxygen/html/index.html

有关处理链的详细信息。用户指南中提供了每个链的 CLI 参数。

  • TDM(时分复用):在这里,没有两个发射器同时处于活动状态。在接收天线上,接收到的啁啾没有歧义,每个接收到的啁啾都可以直接映射到相应的Tx天线,而无需单独消除歧义。该链的天线支持为 (AzimTx, ElevTx, Rx) = (2,1,4), (2,1,4), (2,0,4), (1,0,1), (1,0,2), (1,0,4) 对于 AWR294X,另外 (3,1,4) 和 (3,0,4) 用于 AWR2944。
  • DDM(多普勒分频复用):在这里,所有发射机同时处于活动状态。在接收天线上,需要对接收到的啁啾进行消歧(解调),以获得与每个Tx天线相对应的样本。该链的天线支持为 (AzimTx, ElevTx, Rx) = (2,1,4) 用于 AWR2943 和 (3,1,4) 用于 AWR2944。

点击图片可查看完整电子表格

局限性

  • 由于 UART 速度限制 (< 1 Mbps),帧时间受到更多限制。例如,对于 256 FFT 范围和 16 点 FFT 多普勒的方位角和多普勒热图,传输大约需要 200 毫秒。

系统执行流程

毫米波演示在 R4F (MSS) 和 DSP(DSS) 上运行。下图显示了系统执行流程

系统执行流程

软件任务

该演示由以下 (FreeRTOS) 任务组成:

MSS系列

  • MmwDemo_initTask。该任务由 main 创建/启动,是一次性活动任务,其主要功能是初始化驱动程序(<driver>_init)、MMWave 模块(MMWave_init)、DPM 模块(DPM_init)、开放 UART 和其他驱动程序(SPI),并创建/启动以下任务(CLI_task通过调用 CLI_open 间接启动)。
  • CLI_task。该命令行界面任务提供了一个简化的“shell”接口,允许通过毫米波接口(MMWave_config)配置BSS。它解析输入 CLI 配置命令,如 chirp 配置文件和 GUI 配置。解析传感器启动CLI命令时,将执行与启动传感器和开始处理数据路径相关的所有操作。解析传感器停止CLI命令时,将执行与停止传感器和停止数据路径处理相关的所有操作
  • MmwDemo_mmWaveCtrlTask。此任务用于为毫米波控制提供执行上下文,它以无限循环方式调用 MMWave_execute API。
  • mmwDemo_mssDPMTask。此任务用于为 DPM(数据路径管理器)执行提供执行上下文,它在无限循环中调用。没有向 DPM 注册的 DPC。
  • mmwDemo_mssUartDataExportTask。此任务用于导出 UART 上的数据。此任务在无限循环中挂起 UartExportSemHandle,该循环在当前帧处理和前一帧的 uart 传输完成时发布。

ES2 (英语)

  • MmwDemo_initTask。此任务由 main 创建/启动,是一次性活动任务,其主要功能是初始化驱动程序 (<driver>_init)、DPM 模块 (DPM_init)、数据路径相关驱动程序 (EDMA、HWA) 以及创建/启动以下任务。
  • MmwDemo_DPC_ObjectDetection_dpmTask。此任务用于为 DPM(数据路径管理器)执行提供执行上下文,它以无限循环方式调用 DPM_execute API。在此上下文中,将执行所有已注册的对象检测 DPC(数据路径链)API,例如配置、控制和执行。在此任务中。当 DPC 的执行 API 生成检测到的对象和其他结果时,它们会被报告给 MSS,在那里它们被传输到 UART 端口,以便使用可视化工具进行显示。

数据路径

顶级数据路径处理链

顶级数据通路时序 - TDM

顶级数据路径时序 - DDM

数据路径处理包括将ADC样本作为输入,并生成检测到的对象(点云和其他信息),从UART端口传输到PC。算法处理是使用 DPM 注册的对象检测 DPC 实现的。DPC 中处理的详细信息可以从以下基于要使用的处理链的 doxygen 文档中看到:

   ti/datapath/dpc/objectdetection/objdethwa/docs/doxygen/html/index.html

   ti/datapath/dpc/objectdetection/objdethwaDDMA/docs/doxygen/html/index.html

移相器 DDM

可以检查 ti/datapath/dpc/objectdetection/objdethwaDDMA/docs/doxygen/html/index.html,了解为什么在DDMA处理链中需要相移以及它们的值是什么。demo/utils/rf_parserDDMA.c 中的MmwDemo_RFParserPhaseShiftOrder 如果所有天线都已启用,则按相移值的递增顺序排列天线 例如,值 {0,3,1,2} 表示特定线性调频的相移处于以下数量级 - tx0ChirpPhase > tx3ChirpPhase > tx1ChirpPhase > tx2ChirpPhase 即使用户不打算使用所有 tx 天线, 假设所有 Tx 都已启用,则应对订单进行编程。未启用的相移值将由代码配置为 0。
请注意,在DDMA情况下,仰角天线应始终位于此阵列的末尾。基本上,必须确保相移(方位角)<相移(仰角)。因此,{0, 2, 3, 1} 配置为 MmwDemo_RFParserPhaseShiftOrder (AWR2944),因为 Tx0、Tx2、Tx3 是方位角天线,Tx1 是仰角天线。要了解AWR294X的天线配置,请参阅 SDK 中的 ti/board 文件夹。对于 AWR2943,{0, 2, 1} 的配置类似。

DDMA 优化

为了减少DDMA链的处理时间,主要进行了以下优化:

  • HWA/DMA/DSP并行化。
  • EDMA 轮询而不是中断。
  • 在 EDMA 中使用线性传输而不是转置传输。
  • 将 AoA 处理与下一帧并行化。
  • 并行化 UART 数据,发送下一帧。
  • 方位角箱的数量从 48 个减少到 32 个。
  • 禁用范围 CFAR / Sum TX。
  • 在 DSP 中使用 IDMA 进行传输。
  • 优化AoA处理的DSP代码。
  • DDMA解调DSP码优化

  • AoA 处理和 UART 数据传输与下一帧并行化
  • 如图所示,AoA 使用 DSP,1D 处理完全在 HWA 上完成,因此两者都可以并行化。同样,UART TX 完全在 R5F 上运行,因此它可以与 HWA 和 DSP 上的进程并行化。因此,在并行处理优化之后,当前帧的 AoA 处理和 UART 传输可以与下一帧的 1D 和 2D 处理并行运行。请注意,上图中显示的 timining 数字适用于AWR2944高范围配置文件 (profile_3d_3Azim_1ElevTx_DDMA_awr2944_highRange.cfg)。另请注意,AoA 计时取决于检测到的对象的数量。对 100 个检测到的物体进行 AoA 处理大约需要 250 微秒。

发送到主机的输出信息

输出数据包

带有检测信息的输出数据包通过UART每帧发送出去。每个数据包由标头MmwDemo_output_message_header_t和包含各种数据信息的 TLV 项数组成,这些数据信息的类型以MmwDemo_output_message_type_e为单位枚举。这些类型的数值可以在 mmw_output.h 中找到。每个 TLV 项目都包含类型、长度 (MmwDemo_output_message_tl_t) 和有效载荷信息。输出数据包的结构如下图所示。由于数据包的长度取决于检测到的对象的数量,因此它可能因帧而异。数据包的末尾是填充的,因此数据包的总长度始终是 32 字节的倍数。

发送到UART的输出数据包结构

以下各小节描述了每个TLV的结构。

检测到的对象列表

类型: (MMWDEMO_OUTPUT_MSG_DETECTED_POINTS)

长度:(检测到的物体数量)x(DPIF_PointCloudCartesian_t的大小)

值:检测到的对象的数组。每个检测到的物体的信息都与结构DPIF_PointCloudCartesian_t一致。当检测到的对象数为零时,不会发送此 TLV 项。子帧/帧中可以检测到的最大对象数为 DPC_OBJDET_MAX_NUM_OBJECTS。

x、y 和 z 轴相对于传感器的方向如下图所示。

坐标几何

整个检测物体的TLV结构如下图所示。

检测到的对象 TLV

范围剖面

类型: (MMWDEMO_OUTPUT_MSG_RANGE_PROFILE)

长度:(范围FFT大小)x(uint16_t大小)

值:第 0 个多普勒(静止物体)处的轮廓点数组。这些点表示以 Q9 格式表示的接收天线的 log2 幅度之和。

本底噪声曲线(仅在 TDM 演示中发送)

类型: (MMWDEMO_OUTPUT_MSG_NOISE_PROFILE)

长度:(范围FFT大小)x(uint16_t大小)

值:这与距离配置文件的格式相同,但配置文件处于最大多普勒条柱(最大速度对象)处。一般来说,对于静止场景,在最大速度下不会有物体或杂波,因此这种速度下的范围分布代表了接收机的本底噪声。

方位角静态热图(仅在 TDM 演示中发送)

类型: (MMWDEMO_OUTPUT_MSG_AZIMUT_STATIC_HEAT_MAP)

长度:(范围 FFT 大小)x (虚拟天线数量)(cmplx16ImRe_t_ 大小)

值:数组 DPU_AoAProcHWA_HW_Resources::azimuthStaticHeatMap。天线数据是复杂的符号,虚数在前,实数在后,顺序如下:

          Imag(ant 0, range 0), Real(ant 0, range 0),...,Imag(ant N-1, range 0),Real(ant N-1, range 0)

          ...

          Imag(ant 0, range R-1), Real(ant 0, range R-1),...,Imag(ant N-1, range R-1),Real(ant N-1, range R-1)

基于此数据,静态方位角热图由主机上运行的 GUI 构建。

距离/多普勒热图

类型: (MMWDEMO_OUTPUT_MSG_RANGE_DOPPLER_HEAT_MAP)

长度:(范围FFT大小)x(多普勒FFT大小)(uint16_t大小)

值:检测矩阵 DPIF_DetMatrix::d ata。顺序是:

         X(range bin 0, Doppler bin 0),...,X(range bin 0, Doppler bin D-1),

         ...

         X(range bin R-1, Doppler bin 0),...,X(range bin R-1, Doppler bin D-1)

统计数据信息

类型: (MMWDEMO_OUTPUT_MSG_STATS )

长度:(MmwDemo_output_message_stats_t的大小)

值:根据MmwDemo_output_message_stats_t的计时信息。请参阅下面与统计数据相关的时序图。

处理时序

注意:

  1. 不计算 MmwDemo_output_message_stats_t::interChirpProcessingMargin(它始终设置为 0)。这是因为 1D 处理中没有 CPU 参与(仅涉及 HWA 和 EDMA),并且在处理开始(啁啾事件)和 HWA-EDMA 计算结束时,如果没有在每次啁啾时通知 CPU,就不可能知道啁啾处理中有多少余量。在 1D 处理期间,CPU 是有意保持空闲状态的,因为实际应用程序可能会利用这段时间执行一些后处理算法。
  1. 虽然报告的 MmwDemo_output_message_stats_t::interFrameProcessingTime 将属于当前子帧/帧,但 MmwDemo_output_message_stats_t::interFrameProcessingMargin 和 MmwDemo_output_message_stats_t::transmitOutputTime 将属于前一个子帧(与当前子帧的 MmwDemo_output_message_header_t::subFrameNumber 相同)或前一帧。
  1. MmwDemo_output_message_stats_t::interFrameProcessingMargin 不包括 UART 传输时间(以 MmwDemo_output_message_stats_t::transmitOutputTime 的形式提供)。这样做是为了通知用户真正的帧间处理余量,而不受 UART 等慢速传输的影响,此传输时间可能会明显更长,例如在流出热图等调试信息时。此外,在实际产品部署中,可能会使用更高速的接口(例如LVDS)而不是UART。用户可以使用统计数据计算包含传输开销的余量(例如,确定特定演示配置允许的最大帧速率),因为它们还包含 UART 传输时间。

CLI 命令“guMonitor”指定将在输出数据包中发送哪个 TLV 元素。CLI 命令的参数存储在结构MmwDemo_GuiMonSel_t中。

检测到的物体的侧面信息(仅在 TDM 演示中发送)

类型: (MMWDEMO_OUTPUT_MSG_DETECTED_POINTS_SIDE_INFO)

长度:(检测到的物体数量)x(DPIF_PointCloudSideInfo_t的大小)

值:检测到的对象端信息的数组。每个检测到的物体的侧面信息与结构DPIF_PointCloudSideInfo_t)一致。当检测到的对象数为零时,不会发送此 TLV 项。

温度统计

类型: (MMWDEMO_OUTPUT_MSG_TEMPERATURE_STATS)

长度:(MmwDemo_temperatureStats_t的大小)

值:从雷达前端获取的详细温度报告的结构。MmwDemo_temperatureStats_t::tempReportValid 设置为返回 rlRfGetTemperatureReport 的值。如果 MmwDemo_temperatureStats_t::tempReportValid 为 0,则 MmwDemo_temperatureStats_t::temperatureReport 中的值有效,否则应忽略它们。此 TLV 与统计信息中描述的统计信息 TLV 一起发送

范围偏置(仅在 TDM 中支持)和 Rx 通道增益/相位测量和补偿

Because of imperfections in antenna layouts on the board, RF delays in SOC, etc,

there is need to calibrate the sensor to compensate for bias in the range estimation and

receive channel gain and phase imperfections. The following figure illustrates

the calibration procedure.

校准程序梯形图

校准程序包括以下步骤:

  1. 在视线处设置一个强烈的目标,如角反射器,距离 X 米(X 不建议小于 50 厘米)。
  1. 在 .../profiles/profile_calibration.cfg 的配置文件中设置以下命令,以反映位置 X,如下所示:其中 D(以米为单位)是窗口围绕 X 的距离,将在其中搜索峰值。搜索窗口的目的是让测试环境不会受到过度约束,例如,因为可能无法清除所有可能比用于校准的反射器更强的反射器。建议窗口大小至少相当于几个范围条柱的距离。校准配置文件 (profile_calibration.cfg) 的一个范围箱约为 5 厘米。第一个参数“1”是启用测量。必须使用规定的配置文件 (.cfg),否则校准可能无法按预期工作(此配置文件可确保所有发射和接收天线都已接合,以及校准所需的其他内容)。
  1.     measureRangeBiasAndRxChanPhase 1 X D
  1. 使用配置文件启动传感器。
  1. 在配置文件中,启用了测量,因此 DPC 将被配置为执行测量并在其结果结构 (DPC_ObjectDetection_ExecuteResult_t::compRxChanBiasMeasurement 中生成测量结果(在 TDM 中为 DPU_AoAProc_compRxChannelBiasCfg_t,在 DDM 中为 Measure_compRxChannelBiasCfg_t),测量结果以以下格式写在 CLI 端口 (MmwDemo_measurementResultOutput) 上:
  1.     TDM: compRangeBiasAndRxChanPhase <rangeBias> <Re(0,0)> <Im(0,0)> <Re(0,1)> <Im(0,1)> ... <Re(0,R-1)> <Im(0,R-1)> <Re(1,0)> <Im(1,0)> ... <Re(T-1,R-1)> <Im(T-1,R-1)>

  1.     DDM: compRxChanPhase <Im(0,0)> <Re0,0)> <Im(0,1)> <Re(0,1)> ... <Im(0,R-1)> <Re(0,R-1)> <Im(1,0)> <Re(1,0)> ... <Im(T-1,R-1)> <Re(T-1,R-1)>
        where TX antenna order is such that azimuth Tx antennas are followed by the elevation TX antennas.

有关 DPC 如何执行测量的详细信息,请参阅 DPC 文档。

  1. 现在可以将 CLI 上打印出的命令复制并粘贴到任何配置文件中,以便进行更正。此配置将传递给 DPC,以便在角度计算期间应用补偿,详细信息可在 DPC 文档中看到。如果不需要补偿,则应给出
    以下命令: 上图将范围偏置设置为0,将相位系数设置为单位,以便没有校正。请注意,这两个命令必须始终在任何配置文件中给出,通常,当更正命令是所需的命令时,度量命令将被禁用。建议仅在基于帧的啁啾 (dfeDataOutput=1) 模式下使用 measureRangeBiasAndRxChanPhase 命令。
  1.     TDM: compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
  1.     DDM: antennaCalibParams 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

通过LVDS传输数据

LVDS流功能支持通过LVDS接口流传输硬件数据(ADC数据)和/或用户特定的软件数据。流主要由 CBUFF 和 EDMA 外围设备完成,CPU 干预最少。流通过 MmwDemo_LvdsStreamCfg_t CLI 命令进行配置,该命令允许控制 HSI 标头、启用/禁用硬件和软件数据以及硬件数据的数据格式选择。请注意,目前仅支持没有 HSI 标头的硬件数据。硬件数据的数据格式选项包括:

当硬件数据LVDS流使能时,ADC数据在每个线性调频事件上按线性调频进行流式传输。

  1. 对于硬件数据,线性调频间隔持续时间应足以流出所需的数据量。例如,如果硬件数据格式为 ADC 并启用了 HSI 报头(注意:本演示中未启用 HSI 报头发送),则每次线性调频生成的数据总量为:
    (numAdcSamples * numRxChannels * 4 (复杂样本的大小) + 52 [sizeof(HSIDataCardHeader_t) + sizeof(HSISDKHeader_t)] ) 四舍五入为 256 [=sizeof(HSIHeader_t)] 字节的倍数。
    us 中的线性调频时间 Tc = 配置文件配置中的空闲时间 + 斜坡结束时间。对于每个通道最大为 B Mbps 的 n 通道 LVDS,每个线性调频可以发送的最大字节数 = Tc * n * B / 8,该字节数应大于每个线性调频生成的数据总量,即
    Tc * n * B / 8 >= round-up(numAdcSamples * numRxChannels * 4 + 52,
    256)。
    例如,如果 n = 2,B = 600 Mbps,空闲时间 = 7 us,斜坡结束时间 = 44 us,numAdcSamples = 512,numRxChannels = 4,则违反 7650 >= 8448,因此此配置将不起作用。如果在上面的示例中空闲时间加倍,那么我们有 8700 > 8448,因此此配置将起作用。
  1. 硬件或软件数据包中要传输的数据总量必须大于 CBUFF 要求的最小值,即 64 字节或 32 个 CBUFF 单元(这是 CBUFF 驱动程序实现中的定义CBUFF_MIN_TRANSFER_SIZE_CBUFF_UNITS)。如果违反此阈值条件,CBUFF 驱动程序将在配置过程中返回错误,导致 demo 生成致命异常。启用 HSI 标头时,确保总传输大小至少为 256 字节,这满足最小值。如果禁用了 HSI 标头,则对于硬件会话,这意味着 numAdcSamples * numRxChannels * 4 >= 64。尽管毫米波链路允许的最小ADC样本数为2,但该演示支持numAdcSamples > = 64。因此,仅硬件情况下不需要启用 HSI 标头。

实施说明

  1. LVDS 实现主要存在于 mmw_lvds_stream.h 和 mmw_lvds_stream.c 中,调用存在于 mss_main.c 中。此外,HSI 时钟初始化是在传感器首次使用 MmwDemo_mssSetHsiClk 启动时完成的。另请参阅 @ MmwDemo_BoardInit 函数,了解与 HSI 时钟相关的寄存器配置。
  1. CBUFF/LVDS 的 EDMA 通道资源与其他 EDMA 资源分配一起位于全局资源文件 (mmw_res.h,请参阅硬件资源分配) 中。用户数据标头和两个用户有效负载在 CBUFF 驱动程序中配置为三个用户缓冲区。因此,EDMA 的 SW 分配提供了三组 EDMA 资源,如MmwDemo_LVDSStream_EDMAInit的 SW 部分 (swSessionEDMAChannelTable[.]) 所示。
  1. 尽管 CBUFF 驱动程序配置为两个会话(hw 和 sw),但任何时候都只能有一个会话处于活动状态。因此,根据 LVDS CLI 配置以及是否高级帧,有根据需要激活/停用硬件和软件会话的逻辑。
  1. CBUFF 会话 (HW/SW) 配置-创建和删除取决于首次配置后是否需要重新配置。
  1. 对于硬件会话,在子帧切换期间完成重新配置,以便为下一个子帧重新配置,但是当没有高级帧(子帧数 = 1)时,不需要更改硬件配置,因此不需要重新创建硬件会话。
  1. 当前版本不支持基于软件触发器的流式处理。

下图显示了LVDS流的时序图(该图不按比例缩放,因为实际持续时间会因配置而异)。注意:当前版本的演示不支持软件流。

LVDS时序图

通过以太网传输数据

此演示支持使用 TCP 协议和 LwIP 堆栈通过以太网传输检测到的对象数据的简单用例。数据传输使用基于客户端-服务器的架构完成,EVM 充当客户端,PC 充当服务器。此实用程序是 TCPECHO 应用程序的修改示例,该应用程序作为 PDK 中 LwIP 的一部分提供包。连接和使用详情请参考 MMWAVE SDK 用户指南。

实施说明

  1. enet 流式处理实用程序是 filesenet_cpswconfighandler.c、enet_stream.c enet_tcpclient.c 和 tcpserver.py 文件的一部分。
  1. enet_stream.c 中的 enetTask 是初始化所有组件和任务的主要任务,并通过 DHCP 为设备分配 IP 地址。
  1. 将 IP 分配给设备后,用户可以 tcpserver.py 运行服务器应用程序并等待连接建立。
  1. 可以通过 CLI 使用命令 queryLocalIp 返回本地 IP(EVM 获取的 IP 地址)。有关详细信息,请参阅用户指南。
  1. 用户将使用 CLI 通过 enetStreamCfg 命令发送本地 IP。有关详细信息,请参阅用户指南。完成此配置后,将发布信号量 EnetCfgDoneSemHandle,并建立连接(请参阅 tcpclient.c)。
  1. 用户将能够看到在 tcpserver.py 控制台上打印的对象数据。
  1. 请注意,通信端口预配置为“7”。
  1. 必须注意的是,LwIP 堆栈需要 650 kB 的额外内存 (L3 RAM),并且必须注意确保演示 L3 要求不会导致 L3 内存使用率高于可用内存使用率。

如何绕过 CLI

重新实现文件 mmw_cli.c,如下所示:

  1. MmwDemo_CLIInit应该只使用输入 taskPriority 创建一个任务。假设该任务称为“MmwDemo_sensorConfig_task”。
  1. 不需要所有其他功能
  1. 按如下方式实现MmwDemo_sensorConfig_task:
  • 填写 gMmwMssMCB.cfg.cfg
  • 填写 gMmwMssMCB.cfg.cfg
  • 使用 MMWave_addProfile 和 MMWave_addChirp 函数添加配置文件和啁啾
  • 填写 gMmwMssMCB.objDetCommonCfg.preStartCommonCfg
  1. 用户还可以使用 CLI 库中的 CLI_BYPASS API 直接绕过 CLI 命令 send over UART。

硬件资源分配

对象检测 DPC 需要配置 DPU 的硬件资源(HWA、EDMA)。尽管目前只需要为系统中的这一个且唯一的 DPC 分配硬件资源,但资源分区仍显示为演示的所有权。这是为了说明跨多个 DPC 和/或演示自己的处理(即 DPC 后处理)进行资源分配的一般情况。此分区可以在 mmw_res.h 文件中看到。此文件作为编译器命令行定义传递

"--define=APP_RESOURCE_FILE="<ti/demo/awr294x/mmw/mmw_resDDM.h>"

"--define=APP_RESOURCE_FILE="<ti/demo/awr294x/mmw/mmw_resTDM.h>"

在 mmw_mss.mak 和 mmw_dss.mak 中构建 DPC 源时,作为构建演示应用程序的一部分,并在需要时在对象检测 DPC 源中称为

#include APP_RESOURCE_FILE

设计说明

由于 DPM 本地队列大小的限制,对于某些 DPM 函数(如 DPM_start、DPM_stop 和某些通过 DPM_ioctl 的 DPC 控件,信号量用于在调用任务和函数MmwDemo_DPC_ObjectDetection_reportFxn之间同步。这样就不会因为 DPM 本地队列用完而导致 DPM 崩溃。下图演示了阻止 DPM_ioctl() 函数调用的示例调用流。还显示了非阻塞DPM_ioctl以进行比较。

DPM_ioctl呼叫流

对于同一DPM_Report,MSS 和 DSS 上都有 DPM 报告功能。但是,不能保证两个内核之间的顺序。

内存使用情况

内存使用情况摘要

有关内存使用情况的详细信息,请参阅 demo 文件夹中相应的 .map 文件。

关于错误代码的说明

当演示遇到错误情况时,将生成错误代码并打印出来。错误代码定义为负中间。它来自以下类别:

  • 司机
  • 控制模块
  • 数据处理链
  • 数据处理单元
  • 演示

错误代码定义为(模块错误代码库 - 模块特定错误代码)。
上述模块的基本错误代码可以在 mmwave_error.h 中找到 DPC 和 DPU 的基本错误代码可以在 dp_error.h
中找到

特定于模块的错误代码在模块的头文件中指定。例子:

  • UART 驱动程序错误代码在 uart.h 中定义
  • DPC 错误代码在演示中使用的 dpc 中定义

毫米波模块错误代码

毫米波模块的错误代码按以下方式编码:

点击图片可查看完整电子表格

  • 毫米波误差在 mmwave.h 中定义
  • 子系统错误是从子系统(如毫米波链路和邮箱驱动程序)返回的。
  • 错误级别称为 WARNING leve 和 ERROR 级别。
  • 毫米波公开了一个 API - MMWave_decodeError(),可以在演示中用于解码错误代码

  • 以下是如何解析错误代码的示例 - “-40111”
  1. 错误代码来自错误库为“-40000”的模块,表示是 DPC 错误。
  1. 通过引用 dp_error.h,基础“-40100”来自基于 HWA 的对象检测 DPC。
  1. 然后在 objectdetection.h 中找到 error(-11) 的错误代码,如下所示DPC_OBJECTDETECTION_ENOMEM__L3_RAM_RADAR_CUBE
  • 另一个例子是毫米波控制模块: - “毫米波配置失败 [错误代码:-3109 子系统:71]”
  1. 上面的消息表明错误来自模块(-3100 ->mmwave),错误为-9(MMWAVE_ECHIRPCFG)
  1. 子系统(mmwavelink)错误为71(RL_RET_CODE_CHIRP_TX_ENA_1INVAL_IN),可在mmwavelink.h中找到
  • 15
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MMW Demo算法是一种先进的信号处理算法,用于测量和估计物体的位置、速度和方向。它是毫米波雷达技术的重要应用之一。 该算法基于毫米波雷达的工作原理,通过发送并接收毫米波信号与目标物体相互作用后的回波信号,来获取目标物体的位置信息。它利用高频波段(毫米波)的特点,具有较高的分辨率和精确度。 MMW Demo算法主要包括三个步骤:预处理、特征提取和定位估计。首先,预处理阶段对回波信号进行滤波和去噪处理,以消除干扰和提高信噪比。然后,在特征提取阶段,算法会提取回波信号中的特征信息,如幅度、相位、波形等,用于后续的定位估计。最后,在定位估计阶段,算法会根据特征信息,通过数学模型和计算方法,计算出目标物体的位置、速度和方向。 MMW Demo算法具有高精度和实时性的特点,适用于不同场景和环境。它在自动驾驶、智能交通、工业自动化等领域有广泛的应用。通过对目标物体进行准确的测量和估计,可以提高系统的安全性和性能。 总之,MMW Demo算法是一种重要的信号处理算法,通过毫米波雷达技术实现对目标物体的准确测量和估计。它在许多领域都有广泛的应用前景,并对提高系统的性能和可靠性起到积极的作用。 ### 回答2: MMW(Market Model Wall)是一种基于市场模型的墙体分析算法,被广泛应用于金融领域的交易策略和风险管理中。而TI(Technical Indicator)是一种基于历史价格和指标计算的技术指标。 MMW Demo算法TI,意味着在MMW Demo算法中使用了技术指标。通常情况下,技术指标被用来分析市场走势,提供买卖信号或者反映市场趋势和价格波动性。 使用技术指标可以帮助交易员识别市场趋势、发现价格形态和波动性。其中一些常见的技术指标包括移动平均线、相对强弱指数(RSI)、布林带等等。 在MMW Demo算法中,使用技术指标有助于识别市场的买卖信号和趋势。通过对技术指标的计算和分析,可以得到不同的交易信号,从而根据市场状况制定相应的交易策略。 总的来说,MMW Demo算法结合了市场模型和技术指标,旨在通过对市场走势的分析和技术指标的运用,提供更准确的交易信号和更有效的交易决策,从而优化交易策略和风险控制。这对金融机构和交易员来说,具有重要的意义和价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值