单片机嵌入式单片机嵌入式Internet技术的技术的Web应用实现应用实现
利用简化的开源TCP/IP协议栈uIP,在资源有限的单片机上实现嵌入式Internet技术。通过uIP协议的应用程序接
口实现基于HTTP协议的Web服务器应用服务。给出Web应用服务的实现流程,编写了实现Web应用服务的详细
程序代码。
摘摘 要:要: 利用简化的开源TCP/IP协议栈uIP,在资源有限的单片机上实现
关键词:关键词:
1 单片机嵌入式单片机嵌入式Web应用的硬件系统设计应用的硬件系统设计
在硬件系统的设计中,本文采用了
在电路的硬件系统组成中,注意以下几点:
(1)单片机与网卡芯片的接口电路
(2)存储器扩展电路
一般单片机片内数据存储器容量为64 KB,这样的存储空间在进行单片机Web应用系统的开发时显得过小。因此需要扩展数
据存储器,扩展容量随系统数据使用量而定。对于Web应用,需要很大的存储空间存放网页等数据,所以本系统采用静态
RAM HM62256芯片作为存储器扩展电路。
(3)RTL8019AS工作方式
RTL8019AS有3种工作方式:跳线方式、即插即用方式和RT免跳线方式[1]。在嵌入式应用场合,为了降低系统的复杂性,
单片机尽量少接不必要的芯片。所以将RTL8019AS选择工作在跳线方式。其IOCS16B引脚接下拉电阻,JP引脚端接高电平。
(4)MAX232串口电平转换电路
在现场控制端,由于单片机输出为TTL电平,现场数据采集系统(如传感器)输出为EIA电平,而MAX232芯片可以完成单片机
和现场数据采集系统间的双向电平转换[3]。
(5)网络隔离滤波接口电路
在网络接入端需要一个网络隔离滤波器HR901170A。HR901170A主要对系统电路起保护作用,减少信号共模干扰,完成信
号的传输。HR901170A的内部集成了RJ45接口,可以直接接入到Internet。
2 嵌入式嵌入式Internet的的TCP/IP协议实现协议实现
2.1 嵌入式嵌入式TCP/IP协议协议
软件编程是实现嵌入式Web系统的关键。Web通信中的数据封装、解析都是由单片机软件实现的。软件实现主要包括两部
分:一是单片机精简TCP/IP协议栈的实现,对数据的逐层打包、封帧、传送等流程[2];二是单片机Web应用服务的实现。
由单片机组成的嵌入式Web往往应用于特殊的、专用的领域,一般不需要太多的功能,这与PC机上的网络应用有很大的不
同。支持PC机进行Internet通信的TCP/IP协议是一个非常庞大的协议簇。而单片机芯片没有足够的空间资源,所以从嵌入式网
络应用和单片机空间资源两个方面考虑,都没有必要在单片机上实现完整的TCP/IP协议。目前市场上没有统一的标准的实现
嵌入式Internet的TCP/IP协议软件,需要开发人员根据具体应用的需要去开发一套适用于单片机的嵌入式TCP/IP协议,工作量
异常庞大,开发周期较长。一种比较简单和易实现的做法是使用由瑞士计算机科学院的Adam Dunkels等开发的免费公开源代
码的小型TCP/IP协议,即uIP协议栈,它专门为8位和16位单片机编写。uIP的代码大小为3 304 B,对单片机RAM的需求为
360 B,远远小于TCP/IP协议对资源的要求。有关uIP详述和应用例程可见参考文献[4]。
2.2 uIP驱动底层网络设备驱动底层网络设备RTL8019AS
uIP是一个仅包含3层网络层核心协议的协议栈,uIP自身不包含任何类型的底层网络驱动和上层应用程序,它只提供接口函
数供用户开发使用。因此为了完成与底层网络设备的交互,用户必须根据网络设备的类型,在uIP中自行实现对底层网络设备
的驱动。本文采用的网络设备是RTL8019AS网卡,因此需要在uIP中实现对RTL8019AS网卡的驱动[4]。
RTL8019AS驱动程序包括:RTL8019AS芯片初始化、芯片复位以及数据的发送和接收。RTL8019AS芯片初始化可以通过
初始化函数void init_8019(void)完成。芯片复位通过芯片上的RSTDRV引脚执行复位操作,该引脚高电平有效。
3 单片机上嵌入式单片机上嵌入式Web服务器的软件实现服务器的软件实现
3.1 Web服务器的建立服务器的建立
在进行以上的工作之后,用户就可以建立Web服务器,通过uIP协议实现不同的微控制器或工作站之间的通信。Web服务器
和客户端浏览器间的通信采用HTTP协议。嵌入式系统经常需要根据用户的指令,采集系统的当前数据信息传送给客户端浏览
器,为实现这种客户端浏览器和Web服务器的动态交互,需要在服务器端采用通用网关接口CGI(Common Gateway Interface)
技术。CGI是一个在服务器上运行的程序,它分析处理用户发送到服务器上的数据信息,完成动态文件资源的创建和处理,再
将用户信息返回给客户端。
Web服务器初始化完成后,服务器等待客户端的连接请求,客户端浏览器输入服务器的IP地址后发一个物理地址解析协议
(ARP)请求包,服务器收到后进行应答。客户端收到应答包后发送超文本传输协议(HTTP)包,服务器收到HTTP包后开始建立
与客户端的TCP连接并作出对此包的响应。客户端收到响应包后即断开连接,服务器侦测到客户端断开了连接也同时断开连