51 单片机TCP_IP 协议栈ZLIP源码.zip
时间:10-17 13:45
查看:2019次
下载:162次
简介:
单片机上网技术,是当前的一个热门技术。单片机上网技术中的一个重要部分是在单片上实现 TCP/IP 协议栈。现在可获得的 TCP/IP 源代码一般并不为 51 单片机设计,而 51 单片机和 KeilC51 编译器有其自身的特点:存储类型、函数指针、重入函数等,ZLIP 就是针对
这些特点设计的 TCP/IP 协议栈。
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 的小模式下编译。
使用 12M 晶振、KeilC 编译器、89C52 单片下测试的技术参数如下:
代码量(字节) 外部 RAM 使用量(字节) 发送速度(字节/秒)
14841 11068 5.892K
ZLIP 的特点如下:
1)有适中代码量和 RAM 使用量。
2)使用类似 MFC 的 CScoket 的套接字接口,使用方便。
3)支持多 TCP 连接、多网络设备。能方便地移植到多任务操作系统和其它 CPU 下。能方便地替换网络接口协议和网卡驱动设备。
4)支持 ping 命令的响应。
5)为单片机设计:所有的外部变量都使用了 xdata 类型,全部指针都为明确存储类型的指针,需要重入的函数已经声明为 reentant,使用 KeilC 的小模式编译。