人品大爆发! 终于调通ENC28J60以太网模块
很早就把ENC28J60模网络模块的硬件给弄完了,但是还没用软件调试过。放假之前把这个模块驱动的重任交给了标叔,但可能是各种原因阴差阳错,尚未驱动好。直到过年,未果。。。
TMD,这心头大石也太BT了,回到学校后决定把它干掉。
于是今天又在实验室折腾了一天,重新看了一下datasheet,跟以前一样,看了之后暂时也没太大作用。又到网上找资料,看程序。帮助不大。在不确定硬件是好是坏的情况下,冒死拼一拼,直接移植程序算了。碰碰运气吧!
网上驱动的版本甚多,由于51的配置较简单,所以就挑了个51程序移植。直到晚上,把程序的管脚配置换了,再修改一下串口函数,接着下载程序。开发板上电后,在电脑命令窗一 ping,居然通了。。。
兴奋。。。
虽然程序还没怎么认真看过,具体的实现过程也不甚了解,特别是那个UIP协议栈更是没学过。但是能够调通,也是很开心的了。证明硬件是没问题的!!也算是成功移植TCP/IP了,!具体的内容日后再看。
兴奋的 Ping 通了
经典的UIP服务器测试
硬件连接(帆哥的相机就这水平!)
模块硬件图
侧面
顺便Google一下:
UIP的官方网址:http://www.sics.se/~adam/uip/
.uIP是一个超轻量的TCP/IP协议栈,可以用于8位处理器和无操作系统环境。仅需很少的ROM和几百B的RAM,很适合嵌入式系统应用。
.uIP是瑞典大虾Adam Dunkels的作品。lwip也是这位大虾开发的,但是现在由另一个团队在维护。
.支持ARP, SLIP, IP, UDP, ICMP(ping)和TCP协议。
.良好的文档和源代码注释 - 几乎每一行代码都有注释。
.占用非常少的内存, 在编译时候可以设置。
.提供一套实例程序: web服务器, web客户端, 电子邮件发送程序(SMTP客户端), Telnet服务器, DNS主机名解析程序。
.同时活动的TCP链接数没有限制, 在编译时候可以设置。
.可免费用于商业和非商业用途。
.TCP和IP协议遵循RFC标准, 包括流控制, 片断分割和重传超时估算。
E文:
uIP has the following features:
- Well documented and well commented source code - nearly every other code line is a comment.
- Very small code size.
- Very low RAM usage, configurable at compile time.
- ARP, SLIP, IP, UDP, ICMP (ping) and TCP protocols.
- Includes a set of example applications: web server, web client, e-mail sender (SMTP client), Telnet server, DNS hostname resolver.
- Any number of concurrently active TCP connections, maxium amount configurable at compile time.
- Any number of passively listening (server) TCP connections, maximum amount configurable at compile time.
- Free for both commercial and non-commercial use.
- RFC compliant TCP and IP protocol implementations, including flow control, fragment reassembly and retransmission time-out estimation.
今晚到此为止,关于ENC28J60搭建嵌入式网络服器的规范文档有待整理。
附上源码和PCB原理图
|