ZLIP 一个公开源码的为51单片机设计的TCP/IP协议栈

 

 


点击这里访问ZLIP 新网站

ZLIP首页
新闻
链接
文档
下载
ZLIP开发板
常见问题

ZLIP首页

1. ZLIP的应用背景

在2002年的时候,实验室接了一个需要用以太网控制一个终端的项目,该终端需要用51单片机实现。于是产生了为51单片机编写一个TCP/IP协议栈的想法。接着完成了ZLIP的0.1版,并在该项目中稳定运行。

在2003年的时候,经过对0.1版的改进和完善推出了0.2版本。并且在周立功网站以公开源码的方式发布,公开源码方式受到了广大网友的支持,随后被老古开发网、21IC、汇杰开发网等网站转载。

2. ZLIP的特点

ZLIP一开始就是针对51单片机设计的,所以非常适合于在51单片机上实现,并且它具有应用简单,兼容socket接口等特点。

ZLIP针对KeilC51编译器进行了优化设计。

2.2 ZLIP设计的目标

  1. 精简TCP/IP协议栈,以减小代码量。ZLIP目前没有支持UDP协议,ICMP协议也只 支持其中的echo协议(响应ping数据包)。lwIP是一个功能全面的TCP/IP协议栈,但是相对51来说代码量较大。
  2. 应用层接口简单,以兼容通用的socket接口。uIP有很小的代码量和减小代码量(选择AVR为目标器件时,代码为5K左右)和RAM使用量(100字节左右)。uIP采用了不保存需要应答的数据包的RAM使用方案,没有和BSD的套接字接口兼容,应用层接口较复杂。
  3. 针对KeilC51编译器设计。所有的外部变量都使用了xdata类型,全部指针都为明确存储类型的指针,需要重入的函数已经声明为reentant,使用KeilC的小模式下编译。

2.3 技术参数

使用12M晶振、KeilC编译器、89C55单片下测试的技术参数如下:

代码量(字节) 外部RAM使用量(字节) 发送速度(字节/秒)
14841 11068 5.892K

2.3 ZLIP的特点

  1. 有适中代码量和RAM使用量。
  2. 使用类似MFC的CScoket的套接字接口,使用方便。
  3. 支持多TCP连接、多网络设备。能方便地移植到多任务操作系统和其它CPU下。能方便地替换网络接口协议和网卡驱动设备。
  4. 支持ping命令的响应。
  5. 为单片机设计:所有的外部变量都使用了xdata类型,全部指针都为明确存储类型的指针,需要重入的函数已经声明为reentant,使用KeilC的小模式编译。