TI中文支持网
TI专业的中文技术问题搜集分享网站

AWR1843: 如何通过LVDS发送大块数据以利于解析

Part Number:AWR1843Other Parts Discussed in Thread:DCA1000EVM,

您好,项目中打算在AWR1843中通过LVDS向DCA1000EVM每100ms发送1124KB数据,DCA1000EVM再通过以太网打包成多个UDP packet后传输到PC。由于每个UDP packet传输的数据为1466B,1466B = 4 + 6 + 1456;其中真正传输的数据大小为1456B。

在AWR1843中,每隔100ms发送的1124KB数据包括100KB自定义数据与1024KB ADC数据,其中100KB自定义数据通过多次连续的启动SW session来实现(因为启动一次SW session最多发送3*32K=96kB数据),在多次连续的启动SW session发送完256KB自定义数据后,随即通过启动HW session来发送1024KB ADC数据。通过以上过程在AWR1843中完成每次发送1280KB数据的任务。

为了传输方便,我在256KB自定义数据中定义了一个数据头。数据头是1kB大小的数据,其最前面(起始)为一串标识符,如“AAAAAAAAAAA”,其他均为自定义数据。

数据发送后,我在PC端通过wireshark来观测发送的数据是否正确。

由于在DCA1000EVM向PC发送的每个UDP packet的有效数据大小为1456B,而每次发送的1124KB数据并不是1456B的整数倍,这导致每100ms后数据头中的标识符,如“AAAAAAAAAAA”,并没有在固定的位置,比如有时在上一个100ms数据的最后出现,或下一个100ms数据的最前面出现。如果每隔100ms来实时的解析接收到的数据,为了能够每次(每100ms)能实时的解析完整的发送数据,我将1KB数据头增加一定的大小,也就是整个自定义数据会增加。增加后的自定义数据大小与1024KB ADC数据相加后其大小为1456的整数倍,大小为791(可以得知数据头增加的数据大小为:791*1456-1124*1024=720B)。更改以后,我发现还是不能每100ms内在固定的位置得到标识符,而且还出现了其他的错误,比如每100ms出现的UDP packet并不是791,有时候是314或其他数字。

那么问题是:我如何分配数据大小以每次(每100ms)得到完整的发送数据,其定义的数据头也出现在固定的位置处(如某一个UDP packet的起始处)?

谢谢!

Chris Meng:

你好,

不太理解你为什么要数据头在固定位置。你解包的时候先找标识符,然后把你的用户数据解析处理,再保存adc数据,这样可以么?

,

?? ?:

可能是因为数据不是1456的整数倍,导致数据头有时在上一个100ms数据的最后出现,或下一个100ms数据的最前面出现,这样我在处理一个100ms接收到的数据时并不是完整的,比如有可能错开到了下一个100ms,从而不能实时的解析一次完整的100ms的数据。

,

Chris Meng:

你好,

你在pc端只要有网络数据就接收,然后解析,不用非要卡100ms啊。

,

?? ?:

如果把100ms发送的数据称为一帧数据,那么我需要将一帧数据(比如:目标的位置)实时显示出来。但如果当前帧中存在上一帧或者下一帧的数据就会发生错误。我这里不是将数据全部存下来以后再处理,而是实时处理即每100ms就处理一次数据。

,

Chris Meng:

你好,

能否一直网络包数据采集,等到收到你的标识符,然后开始解析后面的数据,一帧数据量你是值得的,然后显示?

,

?? ?:

感谢您的回复,我对您的回复的二种理解是:1)采集时多采集一帧(下一个100ms的数据),拼全数据后再显示,即显示时需要放慢一帧或者说丢掉最前面一帧,后续再接着解析。2)当前帧标头一旦到达,开始采集与解析,当前100ms内没有(或者说不能)全部采集完当前一帧的数据,要等到下一个100ms才能完整的采集当前一帧的数据,也就是下一个100ms显示当前的目标数据。

但是我首先考虑的还是正常的来一帧显示一帧(如果数据排布合理,准确的说应该是来一包解析一包,一帧大概为790包)。上面也提到了一个方法,希望从调整发送的数据量为1456的整数倍来达到目的,能先帮我评估下这种方法是否可行?当前使用这种方法我已经遇到了一些问题,能帮忙想想办法吗?或者有其他新的解决方法吗(比如DCA1000EVM的供应商更改实际发送数据大小为1024、512、或2048等值)?

谢谢!

,

Chris Meng:

你好,

DCA1000EVM上FPGA的代码没有修改的计划。或者你可自己做一块类似的采集卡,这样打包的代码你可以按照你的需求来修改。

,

?? ?:

上面描述种提到的方法,即希望从调整发送的数据量为1456的整数倍来达到目的,能帮我评估下这种方法是否可行?当前使用这种方法我已经遇到了一些问题,能帮忙想想办法吗?

谢谢!

,

Chris Meng:

Chris Meng 说:能否一直网络包数据采集,等到收到你的标识符,然后开始解析后面的数据,一帧数据量你是值得的,然后显示?

我认为这样的方法更为合理。

赞(0)
未经允许不得转载:TI中文支持网 » AWR1843: 如何通过LVDS发送大块数据以利于解析
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1