- 论坛徽章:
- 0
|
uIP是专为8位和16位的嵌入式微控制器设计的微型TCP/IP协议栈, 它采用BSD授权(这里可以获得完整的BSD许可证), 具有良好的互操作性, 并遵循RFC标准.
uIP提供了网络通信所必须的协议, 本身代码和占用的内存数都非常少 - uIP的源代码只有几KB, RAM占用仅几百字节.
uIP是一个完全由C语言编写的开源软件, 它的文档和源代码可用于商业和非商业用途, 它已经移植到了大部分的8位微控制器, 而且已在很多的嵌入式产品和项目中使用. (比如卫星, Cisco路由器. 查阅Links页面的几个例子)
uIP具有如下功能:
.良好的文档和源代码注释 - 几乎每一行代码都有注释.
.代码非常少.
.占用非常少的内存, 在编译时候可以设置.
.支持ARP, SLIP, IP, UDP, ICMP(ping)和TCP协议.
.提供一套实例程序: web服务器, web客户端, 电子邮件发送程序(SMTP客户端), Telnet服务器, DNS主机名解析程序.
.同时活动的TCP链接数没有限制, 在编译时候可以设置.
.可免费用于商业和非商业用途.
.TCP和IP协议遵循RFC标准, 包括流控制, 片断分割和重传超时估算.
uIP由瑞典计算机科学学院(网络嵌入式系统小组)的Adam Dunkels开发.
uIP文档
uIP文档1.0提供两种格式下载: HTML和PDF(uip-1.0-refman.pdf, 1.4MB, 261页)
发表论文:
1. Adam Dunkels, “Full TCP/IP for 8-Bit Architectures“. In Proceedings of the first international conference on mobile applications, systems and services (MOBISYS 2003), San Francisco, May 2003.
描述了uIP和IwIP相关的TCP/IP标准和其它TCP/IP实现.
2. Adam Dunkels, Oliver Schmidt, Thiemo Voigt, and Muneeb Ali. Protothreads: Simplifying Event-Driven Programming of Memory-Constrained Embedded Systems. In Proceedings of the Fourth ACM Conference on Embedded Networked Sensor Systems (SenSys 2006), Boulder, Colorado, USA, November 2006.
描述和评测了支持uIP protosocket库的超轻量级protothreads.
3. Adam Dunkels, Juan Alonso, and Thiemo Voigt, “Making TCP/IP Viable for Wireless Sensor Networks“, the First European Workshop on Wireless Sensor Networks (EWSN 2004), work-in-progress session.
正在撰写的论文: 讨论在无线传感器网络中使用TCP/IP和uIP.
平台移植:
快速向导: 移植uIP到其它的平台
实际的TCP/IP代码无需任何修改, 但是目标网络设备的驱动程序(以太网控制器/串口/其它)和实际的系统集成部分(比如, 主控制循环, 当数据到达或定期时钟超时需调用uIP函数)需要重写.
移植步骤:
1. 阅读上面提供的文档.
2. 在uip-1.0/目录下为你的端口创建新的目录(选择一个简短的CPU架构名称, 比如i386, 用于C编译器).
3. 从unix/子目录拷贝uip_arch.c文件到新创建的目录. ls包含了一个普通的C校验算法实现, 是一个32位的函数).
4. 从unix/子目录拷贝uipopt.h文件.
5. 根据你的项目编辑uipopt.h文件(文件是自描述型的).
6. 为你的硬件写设备驱动.(这大概是最难的部分.) 查阅unix/tapdev.c和uip/slipdev.c实例了解设备驱动如何实现.
7. 写好主控制循环, 然后调用uIP函数. 查阅unix/main.c实例了解主控制循环如何实现. 通过unix/main.c主循环实例了解如何使用ARP协议.
8. 写makefile文件, 然后编译代码. 确认你的项目(在你子目录中的.c文件)包含了../uip/uip.c文件. 如果你正使用web服务器程序, 请记住包含文件../apps/httpd/httpd.c ../apps/httpd/cgi.c ../apps/httpd/fs.c. 如果需支持ARP, 请包含文件 ../uip/uip_arp.c.
9. 发现和纠正所有的程序错误. (这是平台移植中最需技巧的部分:)
[uIP 文档下载]http://blogimg.chinaunix.net/blog/upfile/070927113217.pdf
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/49017/showart_391017.html |
|