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.
工具/软件: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 的最后一个参数似乎是要发送的数据的大小、从第二个参数指定的指针位置开始。 我的方法只是将数据发送一半、但结果没有工作、我得到了奇怪的热图、如最后一条消息中所示。 您能否提供一些有关可能导致问题的原因的见解?
最棒的
齐亨