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.

DCA1000EVM: SW session的配置与UDP packet

Part Number: DCA1000EVM
Other Parts Discussed in Thread: AWR1843

您好,相关问题如下:

1、我在AWR1843中编写代码按一定的顺序来发送自定义的数据,比如首先发送CFAR后的目标点信息(object信息),然后发送信号处理检测后的目标信息(target信息),最后发送track后的目标信息。所有数据通过LVDS发送到DCA1000EVM再打包成多个UDP packet通过以太网发送到PC。如果成功,则可以通过wireshark抓取到多个UDP packet,假设其中有10个UDP packet为object信息,20个UDP packet为target信息,30个track后的目标信息,那么我想知道这些UDP packet中的数据的存储顺序是否与我在AWR1843中发送这些数据的顺序是一样的?即:在UDP packet中每种目标信息内部,以及不同类型的目标信息之间的存储顺序都与下位机中的存储顺序是一致的?

2、SW session的配置

一个典型的SW session配置形式如下:

sessionCfg.u.swCfg.userBufferInfo[0].size = 128U;
sessionCfg.u.swCfg.userBufferInfo[0].address = (uint32_t)&object;
sessionCfg.u.swCfg.userBufferInfo[1].size = 256U;
sessionCfg.u.swCfg.userBufferInfo[1].address = (uint32_t)⌖
sessionCfg.u.swCfg.userBufferInfo[2].size = 512U;
sessionCfg.u.swCfg.userBufferInfo[2].address = (uint32_t)&track

1)sessionCfg.u.swCfg.userBufferInfo[0].size 的配置值是否需要满足一定的条件(如:考虑对齐)?比如需要是4的倍数?8的倍数?32的倍数?还是任意一个整数都可以。如果是任意一个整数,当数据存放到UDP packet中时会有何影响(考虑对齐是否会补零等)?

2)SW session连续配置三次

第一次配置:

sessionCfg.u.swCfg.userBufferInfo[0].size = 128U;
sessionCfg.u.swCfg.userBufferInfo[0].address = (uint32_t)&object;
sessionCfg.u.swCfg.userBufferInfo[1].size = 0;
sessionCfg.u.swCfg.userBufferInfo[1].address = 0;
sessionCfg.u.swCfg.userBufferInfo[2].size = 0;
sessionCfg.u.swCfg.userBufferInfo[2].address = 0;

接着启动发送数据

第二次配置:

sessionCfg.u.swCfg.userBufferInfo[0].size = 256U;
sessionCfg.u.swCfg.userBufferInfo[0].address = (uint32_t)⌖
sessionCfg.u.swCfg.userBufferInfo[1].size = 0;
sessionCfg.u.swCfg.userBufferInfo[1].address = 0;
sessionCfg.u.swCfg.userBufferInfo[2].size = 0;
sessionCfg.u.swCfg.userBufferInfo[2].address = 0;

接着启动发送数据

第三次配置

sessionCfg.u.swCfg.userBufferInfo[0].size = 0;
sessionCfg.u.swCfg.userBufferInfo[0].address = 0;
sessionCfg.u.swCfg.userBufferInfo[1].size = 0;
sessionCfg.u.swCfg.userBufferInfo[1].address = 0;
sessionCfg.u.swCfg.userBufferInfo[2].size = 512U;
sessionCfg.u.swCfg.userBufferInfo[2].address = (uint32_t)&track;

接着启动发送数据

以上过程是连续执行的,其数据的发送也是连续的,那数据发送后的效果与上面给出的典型配置发送一次的效果(如总的发送数据的大小,存储顺序等)是一样的吗?

谢谢!

  • 您好我们已收到您的问题并升级到英文论坛寻求帮助,如有答复将尽快回复您。谢谢!

  • 好的,期待您的回复!

  • 请问,有任何消息吗?

  • 您好,工程师正在查看中,如果在下周一前还没有给到答复,我们这边来催促一下哈。

  • 您好,

    1)如果您仔细查看有关 DCA1000的指南,数据以何种方式提供给 DCA1000EVM、接收的结构与以太网数据包相同,对于post processing来说,我们需要相同的结构。 因此,如您所说,您正使用自定义数据,那么以特定格式给出的结构是否也是以 AWR1843端定义的相同格式进行post processing? 

    2)请问您是怎么配置它3次的? 每次都要停用每个session吗?在第二种配置中,您的意思应该是[1],而不是[0]吧?

    sessionCfg.u.swCfg.userBufferInfo[0].size = 128U;

    我们通常只配置一次session。 我们想确认下您是否配置了此项,因为您需要指定一个需要指定的特定字节大小,而您将其余字节填充为0,以便保持post processing的完整性吗?我们不太懂您为什么这样配置,还需要您告知下。

  • 您好,感谢您的回复。

    1)根据您的说明,我的理解是UDP packet中的数据的存储顺序与我在AWR1843中发送这些数据的顺序是一样的。

    2)比如配置软件session 3次是需要在回调函数与处理函数之间循环3次后跳出,再去处理HW session。第二种配置是[1]是[0]没有关系,这个问题的缘由是因为我用其拼凑数据(比如1466字节大小的整数倍)时遇到了一种情况,当3个buffer中有一个配置为0时,比如sessionCfg.u.swCfg.userBufferInfo[0].size = 0; sessionCfg.u.swCfg.userBufferInfo[0].address = 0,传输的数据会出现问题(与我发的不一致),但放到全部配置的最后好像没有问题。

    我本意是想发送的数据(数据量很大,需要多个udp包传输)为1466Byte的整数倍(实际一般是128、256、1024的倍数),以满足DCA1000EVM中一个UDP包传输1466(或者说1456)个字节的有效数据的规定,那么在这种情况下,发送数据时需要注意什么?具体在配置每一个sessionCfg.u.swCfg.userBufferInfo[i].size与sessionCfg.u.swCfg.userBufferInfo[i].address时有什么规则需要遵守?

    谢谢!

  • 好的,我们反馈给工程师来看下哈。

  • 您好,

    唯一的要求是传输出的总数据应该是256B 的倍数。 其余由 DCA 本身处理。在此基础上,用户必须决定 sessionCfg.u.swCfg.userBufferInfo[i].size 和 sessionCfg.u.swCfg.userBufferInfo[i].address,同时考虑应用和要求。

  • 传输出的总数据是指?

  • 具体在配置每一个sessionCfg.u.swCfg.userBufferInfo[i].size与sessionCfg.u.swCfg.userBufferInfo[i].address时没有要求吗?

  • 我们向工程师确认下哈,应该会在下周的工作日给到您答复。

  • 传输出的总数据是指?

    传输出的总数据是指从设备流出的数据。 需要是256字节的倍数,这是基于 DCA1000中形成的 UDP 数据包。 

    具体在配置每一个sessionCfg.u.swCfg.userBufferInfo[i].size与sessionCfg.u.swCfg.userBufferInfo[i].address时没有要求吗?

    具体要求就是应遵循相同的256字节,并且基于您希望如何设计数据包,还需要能够配置会话。 它应该只满足256字节对齐要求。