2006 Microchip Technology Inc. DS00833B_CN 第1 页
AN833
简介
在 Microchip 单片机上实现 TCP/IP(传输控制协议 / 网
际协议)不需要任何创新之举。感兴趣的开发人员可以
很容易找到许多 Microchip 产品的商业和非商业的
TCP/IP 实现方案。本应用笔记详细说明了 Microchip 公
司自己免费提供的 TCP/IP 协议栈。
Microchip TCP/IP 协议栈是一套程序,它服务于标准
的、基于 TCP/IP 的应用程序 (HTTP 服务器或邮件客
户机等),或者使用在定制的、基于 TCP/IP 的应用程序
中。为了更好地说明这一点,在本文档的末尾描述了一
个完整的 HTTP 服务器应用程序,同时给出了协议栈的
源代码。
Microchip TCP/IP 协议栈是按照模块化方式实现的,它
所有的服务创建了高度抽象的协议层。潜在用户使用时
不需要知道 TCP/IP 规范的所有复杂细节。实际上,只
对实现 HTTP 服务器应用程序感兴趣的用户并不需要知
晓任何有关 TCP/IP 的具体知识。(关于 HTTP 服务器
的具体信息请参见从第 77 页开始的部分。)
本应用笔记并没有深入讨论 TCP/IP 协议。建议对该协
议细节感兴趣的用户阅读 RFC (Request For
Comment)文档。在本文档的末尾可以找到一部分主要
RFC 编号列表。
协议栈架构
许多 TCP/IP 的实现方案都遵循了称为“TCP/IP 参考模
型”的软件架构。基于此模型的软件被分成多层,一层
一层地堆叠(故称为“TCP/IP 协议栈”),并且每层接
受来自该层下面的一层或多层的服务。图 1 中显示了
TCP/IP 协议栈模型的一个简化版本。
根据规范,许多 TCP/IP 层都是 “活动的”,这意味着
不仅在被请求服务时,而且在像超时或新包到达这样的
事件发生时,它们都会作出反应。带有大量数据存储器
和程序存储器的系统可以十分容易地满足这些要求。多
任务操作系统可以提供额外工具,帮助程序实现模块
化。但是当系统只使用 8 位单片机以及几百字节的 RAM
和有限的程序存储器时,该任务变得十分困难。此外,
如果不能访问一个多任务操作系统,用户必须特别注意
要保证协议栈独立于主应用程序。集成在主应用程序中
的 TCP/IP 协议栈实现起来相对容易些,并且节省存储
空间。但是当集成越来越多的新应用程序时,此专用协
议栈可能会产生特殊问题。
此协议栈用 C 语言编写,可使用 Microchip C18 和
Hi-Tech PICC 18 编译器。根据所使用的编译器,源文
件会自动进行必要的更改。Microchip TCP/IP 协议栈被
设计为只在 Microchip 的 PIC18 系列单片机上运行。此
外,目前该协议栈专用于在 Microchip 的 PICDEM.net
TM
因特网 / 以太网演示板上运行。但是,可以十分容易地
修改使之运行在装有 PIC18 单片机的任何硬件上。
图 1: TCP/IP 参考模型
作者:
Nilesh Rajbharti
Microchip Technology Inc.
应用层
传输层
网络互连层
主机到网络层
Microchip TCP/IP 协议栈
- 1
- 2
- 3
- 4
- 5
前往页