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

2020-01-13 18:37发布

本帖最后由 1208877122 于 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均可,多种角 {MOD}共存同时工作,可DHCP自动获取IP或者固定IP

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

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


360截图20170108110020932.jpg (34.7 KB, 下载次数: 0) 下载附件 2017-1-8 10:46 上传
FuIP3.0定型版.zip (325.29 KB, 下载次数: 267) 2017-1-8 10:45 上传 点击文件名下载附件

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[n].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。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
42条回答
yaoyyie2003
1楼-- · 2020-01-13 22:41
恭喜楼主,贺喜楼主,膜拜。
NM2012
2楼-- · 2020-01-14 03:17
看来的买个小板回来玩玩
ppdd
3楼-- · 2020-01-14 03:28
谢谢!!!~~~
Excellence
4楼-- · 2020-01-14 06:44
恭喜!有stm32f407的移植例程没?
mofire
5楼-- · 2020-01-14 09:27
 精彩回答 2  元偷偷看……
1208877122
6楼-- · 2020-01-14 14:13
Excellence 发表于 2017-1-8 11:54
恭喜!有stm32f407的移植例程没?

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

一周热门 更多>