我做的AT91中的TCP/IP功能
用了近一个月在AT917s64中嵌入了TCP/IP协议,包括1。ARP:有5个ARP缓存
2。UDP:
DNS功能:可实现远程的UDP打洞,主要实现SNMP的访问
TFTP功能:用以太网升级程序中的网页
NETBios功能:实现网上邻居
SNMP功能:网管
3。TCP:
Telnet远程登陆:只做了ARP查询,DNS查询,TCP的Soket查询
HTTP的web server,有2个网页
见下图:
http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_260502.jpg
TFTP (原文件名:tftp.jpg)
http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_260503.jpg
Netbois (原文件名:netbois.jpg)
http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_260504.jpg
Telnet (原文件名:telnet.jpg)
http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_260505.jpg
Http1 (原文件名:http1.jpg)
http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_260506.jpg
Http2 (原文件名:http2.jpg) 强!学习中,期待放送点资料! 好想法 是自己写的TCP吗? 牛人 整个协议是参考了uip写的,但DNS,SNMP,TFTP,HTTP,TELNET是自己写的,目前用的是7S64,TCP的socket可以到10个以上
,在AVR的M64只能做到5个。但我的感觉是速度差不多.
Ping时:M64回应时间为1ms,7S64为300us
一个SNMP回应包:M64回应为16ms, 7s64为16ms
TCP二者也基本一样
程序升级时7s64比M64要麻烦
M64内有EPROM,这点比7S64要外挂个24C16要方便些,但M64内的EP会出问题,要加校验程序来保护 别在这儿秀好么?QQ,电话留下来丢人. 楼上的说话我有点不明白,怎么丢人了?> 如果是这论坛刚成立的时候,这样的东西大概在国内能算一流的
但现在的话……
不得不说,无论思路还是结果,开源的、商业化的,可用的选择太多了……楼主的方案实在没有任何出彩的地方…… 楼上说的没错,这东西早在2005年我就说是落后的技术了。才接触AT91的芯片,做了这个东西测试一下速度而已.
在尝试把这个做到到机顶盒上的一个模板,正在往HR2016上移,我想在机顶合上做上它可能不是落后的吧
可以把EOC的功能利用起来也不错的 新的测试:
我用SNMP对以下的芯片做了测试
运行环境为都嵌入TCP-UDP-SNMP,OID结点为71个,分别用3个软件做了GET的测试
芯片-------GETNET 71个OID用时---软件方式
78E58B 1230ms KEIL
M64 416ms GCC
AT917s64 80ms KEIL
LPC2148 32ms KEIL
我对做TCP协议的建议如下:
1。网卡驱动是最浪费时间的,一定要优化驱动程序,可大大的缩短时间
2。不要认为RAM区越大越好,其实256个字节也能跑的(不用OS的时候),内存可以分片用,也可以把RAM做成环首尾相接用
3。不论做哪种协议,按协议格式是很占用CODE的,所以要想出固定最短格式的协议包
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_263514.jpg
(原文件名:snmp_1.jpg)
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_263515.jpg
(原文件名:snmp_4.jpg) 以太网控制芯片是什么? 不错啊我也想做!!就是没搞出来!! 以前也玩过协议栈,个人觉得LWIP不错,但估计协议栈的BUg会较多,要自己排查。
貌似ECOS可以,带两个协议栈,可以选。
Linux类的,资源要求较高,这种内嵌Flash的MCU跑不起来,或者索性将Linux中TCP部分移植,然后搞个实时的OS,TCP部分跑在这个OS上,协议栈部分需要优化和调试的时间就少了。不知是否可行,以前看到有论文在VxWorks上移植Linux的协议栈的。 对菜鸟来说很好的功能 哈
LZ,能贡献点UDP方面的资料吗,我刚学习,最好是IAR环境下的
谢谢先了 谢谢。 vilan
还秀个球,这话说的,有能耐你也做点东西出来,别只会让别人放代码,然后自己什么都不管就是一个下载照抄。 改进后的程序:
1.基于B/S构架的WEB,界面要观,用JS重新做了一遍
2.改进了C/S构架中的SNMP中的报警和TRAP
3.添加了更多的TELNET命令
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_419022.jpg
经用JS过后的WEB页面 (原文件名:1_1.jpg)
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_419023.jpg
经用JS过后的WEB页面 (原文件名:1_2.jpg)
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_419024.jpg
经用JS过后的WEB页面 (原文件名:1_3.jpg)
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_419025.jpg
SNMP网管 (原文件名:2_1.jpg)
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_419026.jpg
Telnet应用 (原文件名:2_2.jpg)
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_419027.jpg
程序snmp协议 (原文件名:s1.jpg)
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_419028.jpg
程序http协议 (原文件名:s2.jpg)
最后我觉得做的东西一定要贴近用户,不是自已的喜好.而是要根据客户来做产品 mark TO:watercat
你的发言有点极端。用AT917s64解决终端设备上网,挺好的啊。 LZ的SNMP网管功能有没有支持实时时钟? “DNS功能:可实现远程的UDP打洞,主要实现SNMP的访问”
这个说法似乎不妥?
是不是可以理解为这个设备可以跨网关? 支持这么多协议,LZ从哪儿搞的协议栈? zhanggx
我现在在M64上整的UIP1.0的,基本已经整好了,但是SNMP还没有加上去者能够有词打算,我也是用IAR做的,希望能和你交流下,少走点弯路,谢谢 厉害。不知道是否共享代码? 代码现在恐怕还不行吧,我也希望把代码共享给大家,但很多很拿了以后并不会自己动手去做,而是等着别人给他,有余这个原因所以没有共享,请原谅,我打算明年吧他整好共享给大家,系王大家踊跃的贡献这样才能把它完善 LZ的SNMP网管功能有没有支持实时时钟? NB 楼主能否提供点源码给菜鸟们研究研究啊 我也觉得用AT917s64解决终端设备上网,挺好的啊,就是功耗有点大哇
页:
[1]