基于SX单片机实现WebServer和网络协议栈
前 言
Internet的日益普及,信息共享程度的不断提高,给工作和生活带来了极大的方便。现在,上网浏览对于人们来说是一件很平常的事情。不仅如此,架构一个WebServer,做自己的主页也是司空见惯的。一般情况下,人们通过一台上网的电脑来建立WebServer。在这里将讨论另外一种方法:通过单片机来建立WebServer。之所以会想到用单片机来实现 WebServer,是因为随着嵌入式系统的迅猛发展和IA(信息电器)的出现,以单片机为中心的应用系统将搭上Internet的快车逐步取代传统的以 PC为中心的应用,成为未来Internet发展中的主力军。
一、 具体应用方案
1. 基于单片机的WebServer方案
基于单片机的WebServer的硬件平台如图1所示。
2. 主要芯片介绍(1) SX52BD100
SX52BD100 是UBICOM公司生产的一款RISC指令集的单片机,片上带有4K×16 位的Flash存储器和262×8位的RAM。由于采用CPU并行流水线方式及单时钟周期指令,在100MHz晶振驱动下指令执行速度可达 100MIPS。该单片机的最大特点就是虚拟外设功能,即通过软件对I/O口进行灵活的配置,CPU执行虚拟软件模块就可以驱动普通的I/O口来模拟外设的功能,比如UART、SPI、IIC和FSK等。当然,令人惊奇的是,SX52BD100可以通过虚拟外设功能来运行网络协议栈,例如TCP、IP、 HTTP以及SMTP等。
(2)RTL8019AS
RTL8019AS是RealTek公司出品的一种全双工以太网控制器。它自带16KB的SRAM,工作在Ethernet II和IEEE802.3、 10Base5、10Base2、10BaseT下,与NE2000兼容。
(3)24LC256
24LC256是Microchip公司生产的一种串行32KB的 E2PROM存储器,采用CMOS工艺,通过2根数据线和外界通信,兼容I2C总线接口,可设为硬件写保护,10万次的擦写,200年以上的数据保护。
3.工作流程和软件设计
RJ45为此系统与局域网的接口。由于大部分局域网都采用以太网,这里的RTL8019AS就是处理以太网协议(IEEE802.3)的。数据的流向为:请求信息从局域网中来,通过RJ45送到RTL8019AS,处理后的数据包送入SX52BD100协议栈,由协议栈对数据包进行解析,得到原始请求信息。请求信息再经过SX52BD100的处理,产生回复信息。回复信息到局域网的过程与上面正好相反。
整个系统的软件流程如图2所示。
图1中的E2PROM 24LC256用来存储WebServer的网页信息。它可以处理Web页面、图像文件、PDF文档记忆其它文件。当然,它不能像PC上WebServer中的硬盘那样可以存储大量的页面。它的容量决定了WebServer的资源文件的大小。
二、网络协议栈的实现
网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层协议系统,如图3所示。每一层负责不同的功能。
(1)数据链路层,有时也称为网络接口层。通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
(2)网络层,有时也称作互联网层。处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(网际协议)、ICMP 协议(Internet互联网控制报文协议)以及IGMP 协议(Internet组管理协议)。这里主要讨论IP协议。
(3)传输层主要为两台主机上的应用程序提供端到端的通信。TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。
(4)应用层负责处理特定的应用程序细节。几乎各种不同的TCP/IP实现都会提供下面这些应用:
① HTTP超文本传输控制协议;
② TELNET远程登录;
③ FTP文件传输协议;
④ SMTP简单邮件传送协议;
⑤ SNMP简单网络管理协议。
因为数据链路层主要是网络接口卡及驱动,由RTL8019AS来实现,所以下面讨论网络层、传输层和应用层协议栈的实现。
1. 网络层
(1) IP协议
IP是TCP/IP 协议族中最为核心的协议。Internet所有的数据都以IP 数据报格式传输。IP协议最大的特点是提供不可靠的和无连接的数据包传送服务。
不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地。IP仅提供最好的传输服务。若发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP(Internet控制报文协议)消息报给信源端。任何要求的可靠性必须由上层来提供(如TCP)。
无连接(connectionless
网络 协议 WebServer 实现 SX 单片机 基于 相关文章:
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)
- Linux操作系统网络驱动程序编写(04-11)
- Linux 的 常 用 网 络 命 令(04-14)
- 支持网络传感器的嵌入式操作系统设计(11-10)
- 朗谷数字音频处理技术在音频及网络通讯领域的应用(05-19)
- 基于开源软件的嵌入式网络打印服务器(11-05)