您的位置:首页 > 理论基础 > 计算机网络

嵌入式 TCP IP 资料汇总

2013-02-04 14:08 232 查看

1.前言

最近看了不少嵌入式以太网方面的资料,这里嵌入式指的是***R或者STM32之类的可以在无操作系统下运行的案例,并不是linux级别的嵌入式以太网协议栈。感觉上嵌入式以太网的资料非常多,但是也显得非常杂乱。我简单的整理一些图书和技术资料,供自己和大家参考一下吧!

2.图书资料

我个人比较喜欢看书,不太喜欢通过网络乱找资料。以太网(嵌入式web)较为复杂涉及的知识点也比较多,没有书或者不看书是万万不可的。毕竟图书资料通过一定的凝练,体系也比较完整。

《嵌入式Internet TCP IP 基础 实现及应用》

这本书正如同书名一样分为三个部分,基础部分讲解的是各种TCP协议栈的基本内容,实现部分讲解如何通过LPC实现以太网的各种协议,例如ARP TCP和UDP。作者有一套自己的编写的协议栈,底层使用CS8900A,采用IAR编译环境,代码实现部分有完整的解释,可以帮助读者了解协议栈如何实现。虽然自己没有动手修改一下,但是还是收获不少。非常值得一读。



3.国外开源项目

国外开源项目有很多,总体来说国外的开源项目喜欢使用***R单片机,这也是我始终不愿放弃该芯片的原因。国外的资料比较多,创意也比较有趣,让人学的很是开心。国外关于嵌入式以太网的项目有两类,一类是嵌入式通用的以太网协议栈,例如uIP和LwIP,还有一种侧重于Web服务器的实现,例如***RNET和***R WebServer。

3.1 ***RNET

该项目于2007年左右完成,现在已经不更新了。采用的芯片为ATmega32,网站中有完整的电路图,可以通过该电路图使用proteus和winpcap在计算机中仿真运行,这样实践起来并不需要通过真实的开发板。学习嵌入式以太网相关内容,感觉和硬件已经没有太大的联系了,但是需要弄清的是ENC28J60的工作原理,这也是***RNET项目的使用的以太网驱动芯片。***RNET项目侧重于web方式实现设备控制和状态查询。为了实现web功能,需要学习HTML相关技术,例如表单,输入框,按钮和提交按钮等,必须理解GET方法和POST方法,必须理解HTTP请求和响应格式。当学习完那么多的基础知识之后,其实实现web控制也就是编写HTML文本,然后通过TCP发送HTML文本。

***RNET项目



国内的许多淘宝店家甩卖的ENC28J60代码可能都出自该项目。硬件电路设计和软件部分设计都是很好的参考资料。

3.2 ***R WebServer

从时间和项目维护的角度来说,***RNET项目应该也参考了***R WebServer项目。***R WebServer文档做的更好,实现的功能也可能更多一点。这个项目还没有认真研究,国内著名的开发板野火开发板就参考了这个项目实现了WEB功能。和***RNET项目相似,该项目也使用ENC28J60作为以太网驱动。

【2013年10月回顾:Arduino项目关于ENC28J60实现以太网的代码也是参考该项目,不妨一试】

***R WebServer项目

3.3 uIP和LwIP

uIP和LwIP同出于一人之手,此人是嵌入式以太网中的泰斗。LwIP尚未开始研究,但是uIP却研究了有很长一段时间。uIP实现一个TCP通信算比较方便的,但是由于uIP是一个精简协议栈也使用uIP时存在多种限制。移植这些协议栈需要把握一点,哪些需要修改,而哪些不需要修改。接下来的几篇博文将会谈谈uIP的移植和使用,我想移植说的少一点,应用说的多一点。

【2013年10月回顾:uIP和LwIP均认真移植测试,应该总结一下和大家分享了】

uIP学习笔记】【ENC28J60学习笔记
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: