打印
[STM32H7]

关于ADC采集LWIP UDP发送数据处理问题

[复制链接]
1366|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
怪诞新|  楼主 | 2024-6-14 09:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ip, dc, ADC, AD, udp
做ADC数据采集,1秒钟采集到的数据有至少3MB的数据量,用LWIP的UDP发送,实时传输,但是UDP超过1472字节后,发送不了,上位机不显示,所以我的想法是在大数据量的情况下:
1:采集到的数据存在内部sram中,开辟一个500KB的缓冲区,边采集边把数据存到缓冲区,边做数据分割成1472字节的小数据块,分块好后UDP直接发送出去,整个过程就是一个动态循环的过程。比如:采集到的数据存进缓冲区,缓冲区检测到存到1472个数据后,把这1472个数据组成一个新的数组块,然后UDP拿走发送到上位机,在处理1-1472这第一个数据块的时候,同时后面的采集数据依然在实时进行,当第2个1472数据块检测存满后也打包成新的数组给UDP发送,一直存到500k后又重头开始循环缓冲1s内还没缓冲完的数据。原理就是用一个小的缓冲区来循环缓冲大数据量的数据,给出多余的时间来做数据分块给UDP传输,当然缓冲区不能太小,不然还没发走就被覆盖了。不知道这样的思路可否行
2.采集到的数据放在外部SDRAM中,在H7系列外挂SDRAM,直接一片就32MB的存储空间,一次性采集完1s的数据全部存到SDRAM中,采集完了在慢慢把数据分快处理给UDP发送。
3:当然这种情况在1和2的基础中,采集到的数据存到外部SDRAM,存储空间足够大,但是我也是边存边做数据分快处理,也不用担心被覆盖,因为空间足够大,一次性可以存够,只是存储和分块处理,发送同时进行。

以上就是我想出来的3种思路,不知道有没有大神看看如何,因为UDP发送数据上位机接收不到,超过1472字节的数据包,边采集边分块的话时间来不及处理,实时性就降低了

使用特权

评论回复
沙发
SophiaOP| | 2024-6-17 14:34 | 只看该作者
一直是这么大数据量吗?

使用特权

评论回复
板凳
cr315| | 2024-6-17 16:59 | 只看该作者
解决问题的思路还是非常清晰

使用特权

评论回复
地板
jcky001| | 2024-6-17 17:46 | 只看该作者
建议使用内部SRAM进行动态循环缓冲,使用外部SDRAM进行存储

使用特权

评论回复
5
怪诞新|  楼主 | 2024-6-19 10:44 | 只看该作者
SophiaOP 发表于 2024-6-17 14:34
一直是这么大数据量吗?

对。一直都是

使用特权

评论回复
6
怪诞新|  楼主 | 2024-6-19 10:47 | 只看该作者
jcky001 发表于 2024-6-17 17:46
建议使用内部SRAM进行动态循环缓冲,使用外部SDRAM进行存储
...

要求实时性,用一个就好,没必要先内部在外部,浪费资源把哈哈哈哈

使用特权

评论回复
7
小小蚂蚁举千斤| | 2024-6-23 17:37 | 只看该作者
要求实时性建议通信方式选择Ethercat

使用特权

评论回复
8
AdaMaYun| | 2024-6-24 22:57 | 只看该作者
空间足够大,一次性可以存够,只是存储和分块处理,发送同时进行

使用特权

评论回复
9
怪诞新|  楼主 | 2024-6-25 08:22 | 只看该作者
AdaMaYun 发表于 2024-6-24 22:57
空间足够大,一次性可以存够,只是存储和分块处理,发送同时进行

外挂的SDRAM,足够是大空间,一次性是能够存够,怎么个同时进行呢,佬,教教

使用特权

评论回复
10
LOVEEVER| | 2024-6-25 19:19 | 只看该作者
做ADC数据采集,1秒钟采集到的数据有至少3MB的数据量,用LWIP的UDP发送,实时传输

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

25

帖子

0

粉丝