OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 12268|回复: 7

stm32f4 关于lwip分包传输的问题

[复制链接]

3

主题

8

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-11-25
在线时间
6 小时
发表于 2016-1-15 10:32:32 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 yzhh007 于 2016-1-15 11:14 编辑

由于项目要求,需要传感器发送数据通往网线传给网卡,再由网卡发送数据到单片机进行处理,由于mtu1500的限制,网卡到单片机这里的传输无法一次完成,所以我现在想找一种可以将网卡数据拆分为多包然后发送给单片机处理的方法。现在有一个思路是先将传感器数据全部存到网卡里(这个应该是网卡默认就可以实现的?),然后通过dma这里的函数配置将数据包拆分成多个frame传送给单片机的buffer里,最后单片机再将这些buffer合并处理。但现在研究了一下dma的库函数,不知道怎么可以将网卡数据进行拆分发送到frame里(貌似dma_buffer_size和mtu也没有关系,而是一个单纯的数组大小参量),想请教一下大家应该怎么实现?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

75

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
401
金钱
401
注册时间
2012-12-30
在线时间
41 小时
发表于 2016-1-15 20:23:13 | 显示全部楼层
需要传感器发送数据通往网线传给网卡

你的传感器是以太网接口的么? 传输的是以太网数据包么?
网卡只能接受以太网数据包,以太网数据包不是纯粹的传感器的数值,有TCP/IP协议的封装,不是直接用DMA传输就能搞定的,你需要有基于网卡驱动的TCPIP协议栈。网卡也不是存储器,虽然有一定大小的缓冲区但可能不足以存下“传感器全部数据”。如果你只负责接收的话移植个网卡驱动和TCPIP协议栈,直接调用协议栈的接收函数循环的一点一点的接收到MCU就好了
回复

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-11-25
在线时间
6 小时
 楼主| 发表于 2016-1-26 15:26:46 | 显示全部楼层
xijiele 发表于 2016-1-15 20:23
你的传感器是以太网接口的么? 传输的是以太网数据包么?
网卡只能接受以太网数据包,以太网数据包不是纯 ...

没错,是以太网数据包,现在板子已经有现成的lwip协议和接收函数,但假如传感器并没有分包发送的功能,所以是不是只在板子这里设置循环接收是无法实现分包传输的功能?
回复

使用道具 举报

7

主题

75

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
401
金钱
401
注册时间
2012-12-30
在线时间
41 小时
发表于 2016-1-29 20:42:46 | 显示全部楼层
yzhh007 发表于 2016-1-26 15:26
没错,是以太网数据包,现在板子已经有现成的lwip协议和接收函数,但假如传感器并没有分包发送的功能,所 ...

我不明白你干嘛纠结分包的问题,分不分包是有lwip自动处理,不需要你手动处理,你需要做的就是收发传感器数据的时候区分是什么时候是一帧数据的起始,什么时候结束结束,多了解一下网络编程吧
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2020-10-24
在线时间
3 小时
发表于 2020-11-22 14:05:45 | 显示全部楼层
xijiele 发表于 2016-1-29 20:42
我不明白你干嘛纠结分包的问题,分不分包是有lwip自动处理,不需要你手动处理,你需要做的就是收发传感器 ...

貌似分包发的时候两个数据包间隔是很短的,分包之后数据接收整合应该是lwip自己搞定的,但是我收到的数据是乱的。。。。。。  从传感器过来的数据包长度有905个字,然后分成了两个数据包传输给我,然而我接收数据出来就是乱的。
回复

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2020-6-7
在线时间
13 小时
发表于 2020-11-26 19:19:51 | 显示全部楼层
我也是在使用传感器时遇到了这个问题,我是每隔2ms接收一批一千多个数据,后续数据处理就有些困惑。我qq小号是1436789500,可以一起交流吗,谢谢~
回复

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1350
金钱
1350
注册时间
2012-4-25
在线时间
195 小时
发表于 2020-12-15 08:46:18 | 显示全部楼层
OPT.h 里面有个MTU设置就是LWIP自动分包大小,
1-1
回复

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2018-10-16
在线时间
38 小时
发表于 2023-2-10 18:19:38 | 显示全部楼层
mygod 发表于 2020-12-15 08:46
OPT.h 里面有个MTU设置就是LWIP自动分包大小,

具体是哪个参数啊?能改吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 15:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表