lovewind 发表于 2017-1-8 10:46:56

开源,FuIP3.0单片机专用联网协议栈 51+ENC28J60,其他MCU自己移植

本帖最后由 lovewind 于 2017-1-8 11:09 编辑

作者写的:
FuIP协议栈,专为单片机联网而写的,不管你是什么单片机,想联网都容易,FuIP的出现主要是因为当你我没搞懂uIP,实在是糊里糊涂,不知道从何下嘴,不对,下手哈哈。主要还是外国人写的,注释也看的费劲。

从2014到经过几个版本的迭代之后,由于主要去做app和微信及服务器开发了,在网友乘简的努力下,推出了具备产品化基础的FuIP3.0版本。

为了让搞单片机的都看得懂,所以用51作为例子

Fuhome.net未来之家实验室推出,FuIP3.0协议栈单片机专用联网开源程序MCU+ENC28J60,
51,STM32,AVR均可简单一直使用。不限连接数(每个连接仅占用16字节RAM),TCP服务端TCP客户端,UDP均可,多种角色共存同时工作,可DHCP自动获取IP或者固定IP

样例采用STC12单片机,ping,乘简已经30天24小时测试,应用在其产品上。

3.0版本应用很简单明了,看说明即会。如果还有什么要了解,可以看我的啰嗦视频,这样更直观操作。





FuIP3.0协议栈单片机专用联网开源程序应用教程MCU+ENC28J60
讲解视频地址:http://v.youku.com/v_show/id_XMTkzMzIxODU3Mg==.html

v3.0 更新日志
1、整合2.2与2.3,用参数来设置是固定IP还是动态获取IP
2、修改一个BUG,当UDP包大于FU_LEN时,截断为多个UDP包处理数据
3、重建工程,不用手工添加STC数据库也可以进行编译
4、修改两个enc28j60模块互相通讯时,arp不成功的一个BUG
5、修改子网掩码算法,在ARP时不会出错
6、增加多路通讯,多个TCP(服务端,客户端),多个UDP(服务端,客户端)同时通信,之前是只支持1路通讯



使用方法(发送接收数据指有效数据,不包括各种协议头部):
1、if(ReHost.Stat==CONNECTED)//这一个用来判断当前连接与否,TCP服务和客户端均可,UDP没有连接一说,所以只能判断首次被连接否。

2、断开连接:CloseTCP(n);//主动断开TCP连接,用于对方没有正常断开就断电,掉线的情况,自己可以根据情况断开连接。
                        每次连接断开超时3s断开完全。取决于不同软件完善应答与否。
3、发送数据: Send_Data(n,len);//n连接的标号1-5,len有效数据长度

4、接收数据:接收TCP,UDP函数在fu_receive.c,分别为UDP TCP

5、处理数据:fu_app.c文件内 App_Bag(U8 p[],U16 len),p[]是缓存区指针,len长度

6、PS.连接数FU_CONN,数据缓冲FU_LEN,根据RAM大小自定义,一个连接占用16字节
单次发送长度不超过:TCP=1500-20-20=1460 UDP=1500-20-8=1472(实际使用暂未添加分包)
接收长度不受此限制,会自动组包从ENC28J60分步读完,案例是串口发出


Ethernet的最高MTU值则是1500,
而在Internet上,默认的MTU大小是576字节
实际UDP的包长度不要超过MTU值,一般不建议超过1K。

yaoyyie2003 发表于 2017-1-8 10:48:56

恭喜楼主,贺喜楼主,膜拜。

NM2012 发表于 2017-1-8 11:34:32

看来的买个小板回来玩玩

ppdd 发表于 2017-1-8 11:43:30

谢谢!!!~~~

Excellence 发表于 2017-1-8 11:54:54

恭喜!有stm32f407的移植例程没?

mofire 发表于 2017-1-8 12:30:46

先收藏,搭个个电路玩一下

lovewind 发表于 2017-1-8 13:54:11

Excellence 发表于 2017-1-8 11:54
恭喜!有stm32f407的移植例程没?

我不相信你不会移植哈哈,那个社区有老版本的移植stm32的帖子,其实都差不多的,定时器 IO 改一下就行了,当然stm32可以硬件spi

569350810 发表于 2017-1-8 14:53:11

标记,谢谢楼主分享~!

aohu_2012 发表于 2017-1-8 15:30:01

强烈支持{:smile:}

centos 发表于 2017-1-8 18:29:37

谢谢楼主分享!!!!

armku 发表于 2017-1-8 18:45:45

恭喜。联网是趋势,不可抵挡。

fghfguytu 发表于 2017-1-8 20:54:52

不错呀,都出3.0版了

Excellence 发表于 2017-1-8 21:00:39

lovewind 发表于 2017-1-8 13:54
我不相信你不会移植哈哈,那个社区有老版本的移植stm32的帖子,其实都差不多的,定时器 IO 改一下就行了 ...

呵呵!。。。。。。。

kation122 发表于 2017-1-8 21:07:35

不错,感谢分享,请教些问题,
1、FuIP3.0 联网是很方便了,但是这个服务器怎么解决呢,如果是真正做产品的话,服务器在别人手上,总感觉不大靠谱。
2、服务器能不能自己可以架设的,然后你们的服务器软件是可以按设备数量收费、或者是按时间来收费.... 等等,如此之类的。

zxq6 发表于 2017-1-8 21:33:19

stm32f107+外部phy能不能用?

ghostxdy 发表于 2017-1-8 23:24:53

公众号看到这文章,成功的令我买了一个小板{:lol:}

boyubeiyu 发表于 2017-1-8 23:27:57

非常感谢LZ无私奉献,膜拜一下

一飞 发表于 2017-1-8 23:43:46

支持了,楼主辛苦

lovewind 发表于 2017-1-9 00:11:21

cocalli 发表于 2017-1-8 21:20
这个是作何不做区别,不会搞搞就差不多了。

哈哈,说的有道理是

lovewind 发表于 2017-1-9 00:11:59

zxq6 发表于 2017-1-8 21:33
stm32f107+外部phy能不能用?

自己参考,应该是可以的,非自带协议栈的都可以自己移植

snow1107 发表于 2017-1-9 05:21:05

厉害,先参考参考。以后说不定可以用到

lovewind 发表于 2017-1-9 09:35:34

kation122 发表于 2017-1-8 21:07
不错,感谢分享,请教些问题,
1、FuIP3.0 联网是很方便了,但是这个服务器怎么解决呢,如果是真正做产品的 ...

你搞混了,FUIP仅仅是一个联网协议栈,是单独的作品,你说的是fuhome物联服务,两者没有什么关系,当然你可以利用fuip开发设备接入服务器,你所看到的fuhome那是面向个人的免费服务,企业用户你要私下跟人家谈,这年头不都是为了经济效益嘛

wkman 发表于 2017-1-9 11:37:50

   奇怪了,解压出错。。。winrar重新安装和crack了,也不行?{:sweat:}

lovewind 发表于 2017-1-9 15:18:53

wkman 发表于 2017-1-9 11:37
奇怪了,解压出错。。。winrar重新安装和crack了,也不行?

你的工具太落后了?我用的好压,其他也有人遇到过,用好压就解决了

wkman 发表于 2017-1-9 15:56:22

lovewind 发表于 2017-1-9 15:18
你的工具太落后了?我用的好压,其他也有人遇到过,用好压就解决了

多谢{:handshake:} 。用7zip,可以解压,删除乱码部分后。编译正常 {:victory:} 。。。{:lol:} 偶用winrar一直没有更新过快10年了吧{:titter:}

闲鱼翻身 发表于 2017-1-9 16:04:17

感谢分享,膜拜下大神

NM2012 发表于 2017-1-10 11:51:17

今天模块应该收到了,晚上回去试试

bondxie3 发表于 2017-1-10 22:15:09

膜拜大神!学习中!

dgtg 发表于 2017-1-15 09:52:23

膜拜!!很早就知道有FUIP了,只是一直没尝试,惭愧!

pzt 发表于 2017-1-16 17:11:55

这个不错;还未用过;学习了

dianzidianzi 发表于 2017-1-18 12:03:44

再学习中,感谢楼主分享

linquan315 发表于 2017-1-19 23:18:22

不错,了解一下,现在在用LWIP,耗费好多资源

32MCU 发表于 2017-1-20 22:11:42

标记.感谢分享!

leicai05 发表于 2017-1-22 00:35:11

nice.试试看

我是一个大白菜 发表于 2017-1-22 18:49:41

谢谢楼主无私分享

sidu320 发表于 2017-1-22 21:12:47

51小车然后连上网,6的飞起。

dianzidianzi 发表于 2017-2-10 11:29:03

楼主,IP首部标识偏移 分片的两个字节怎么是0呢,没发现在赋值0后还在哪里重新处理这两个字节的数据         IP_Head=0;IP_Head=0;

lovewind 发表于 2017-2-10 11:43:24

dianzidianzi 发表于 2017-2-10 11:29
楼主,IP首部标识偏移 分片的两个字节怎么是0呢,没发现在赋值0后还在哪里重新处理这两个字节的数据         IP_ ...

有可能不支持分片?这部分是别人做的,你需要问本人

binbinDIY 发表于 2017-3-25 15:45:44

好东西,谢谢楼主!

wind2100 发表于 2017-3-25 21:54:10

有点发热,后面 就没有考虑使用. 程序不稳定 也最最头疼的.

hyper320 发表于 2018-8-29 13:40:23

感谢分享!
页: [1]
查看完整版本: 开源,FuIP3.0单片机专用联网协议栈 51+ENC28J60,其他MCU自己移植