This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/IWR6843ISK:在打开距离多普勒的情况下尝试增大 fps

Guru**** 2008950 points
Other Parts Discussed in Thread: IWR6843ISK
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/883500/ccs-iwr6843isk-attempt-to-increase-fps-with-range-doppler-turned-on

器件型号:IWR6843ISK

工具/软件:Code Composer Studio

大家好、TI 社区、

我正在尝试使用 GUI 选项获得更高的帧速率-启用距离-多普勒。 在我要构建的应用中、我只对非常靠近雷达的物体感兴趣。 因此、我想让传感器仅发送距离-多普勒剖面的前几个数字。

我设法让它在30 FPS 下工作(有一些问题)、我所做的就是:

只有两个地方发生了变化。 在 MSS_main.c 中、

MmwDemo_transmitProcessedOutput (...) {

(笑声)
IF (pGuiMonSel->rangeDopplerHeatMap)
{
tl[tlvIdx].type = MMWDEMO_OUTPUT MSG_RANGE_PLOPLE_HEAT_MAP;
//将 tlv 长度除以 rd_denom (第一位已更改)
tl[tlvIdx].length =(subFrameCfg->numRangeBins * subFrameCfg->numDopplerBins * sizeof (uint16_t)))/ 2;//将 rd profile length 设置为给定长度的一半(第一位已更改)
packetLen += sizeof (MmwDemo_output_message_tl)+ tl[tlvIdx].length;
tlvIdx++;
}
(笑声)

if (pGuiMonSel->rangeDopplerHeatMap = 1)
{
//仅发送一半消息
UART_writePolling (uartHandle、
(uint8_t*)&tl[tlvIdx]、//我们已更改了上面的 tlv 长度
sizeof (MmwDemo_output_message_tl));

UART_writePolling (uartHandle、
(uint8_t*) detMatrix、
tl[tlvIdx].length /2);//仅发送一半数据(第二位已更改)
tlvIdx++;
}
} 

我更改的行具有显示更改功能的注释。 在上述代码中、它仅发送 detobj 缓冲区中的一半、因此我们将长度除以2。  

通过将分母增加到16、它可以在 fps =下工作  30。

但是、我通过这种方法得到的距离剖面似乎被这种方法破坏了。

该图是我在不更改传感器代码的情况下获得的距离-多普勒热图、我仅裁剪了顶部部分、即捕获更接近雷达的物体的部分。

上图是所需的输出。 现在、通过上述更改、我得到的结果如下:

这显然是不正确的。

很明显、我对信息进行分块的方式并不正确

UART_writePolling (uartHandle、
(uint8_t*) detMatrix、
tl[tlvIdx].length /2); 

我怀疑这可能是由于发出字节的顺序所致。 也许数据在存储器中采用不同的字节序、而是通过 UART 传输。 只需占用前半个块的存储器就有助于减少数据传输时间。 但是它发送的数据不正确...

有人能帮我解决这个问题吗?

提前非常感谢!

此致、

齐亨

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ziheng、

    您的线性调频脉冲的最大距离是多少? 如果使用短距离线性调频脉冲、则可能不需要修改演示并丢弃不必要的距离单元。

    Amanda

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Amanda、

    感谢您的回复、很抱歉耽误您的回复。

    实际上、我的团队使用 ISK、ODS 和 AOP、 我们发现每个演示代码都是不同的。

    我原始消息中的代码来自工业工具箱版本4.2.0中 IWR6843ISK 的 DSP 版本。

    如前所述、目标是以接近30 FPS 的速度获得距离多普勒热图。 这不能通过 ODS 或 AOP 等短程雷达来实现。 此外、可视化工具中的实时调优可以设置最大范围、但它仅影响检测点 TLV、热图仍会产生覆盖整个范围的结果。

    因此、我认为问题仍然存在:在通过 UART 发送时、对距离多普勒数据进行切片的正确方法是什么。

    UART_writePolling (uartHandle、
    (uint8_t*) detMatrix、
    tl[tlvIdx].length /2); 

    在这里、UART_writePolling 的最后一个参数似乎是要发送的数据的大小、从第二个参数指定的指针位置开始。 我的方法只是将数据发送一半、但结果没有工作、我得到了奇怪的热图、如最后一条消息中所示。 您能否提供一些有关可能导致问题的原因的见解?

    最棒的

    齐亨