基于uIP与AJAX的动态Web服务器设计
摘要:针对远程信息监测系统中数据的实时采集更新问题,将AJAX和CGI应用到嵌入式Web服务器的设计中,实现了服务器与浏览器之间的动态信息交互。本文首先分析了uIP协议栈,并在协议栈之上设计了Web服务器,然后利用CGI服务程序处理来自客户端的XMLHttpRequest对象请求,实现动态Web功能。现场实验结果表明,嵌入式Web服务器降低了服务器端的资源开销,提高了响应速度。
关键词:uIP协议栈;AJAX技术;嵌入式Web服务器;通用网关接口
引言
远程信息监测系统是通过网络远程收集目标信息并监控目标对象运行状态的嵌入式系统。远程信息监测系统中嵌入式Web服务器的使用,可以使用户通过浏览器访问远端的嵌入式设备,这样能够大大提高系统的易用性和可维护性。目前,在远程监测系统中普遍采用的实时数据采集方法是在网页上嵌入Applet或ActiveX控件,但是这种方法不仅会威胁到客户端的安全,还增加了服务器的负担,从而限制了Web服务器的实现和应用。为了满足资源有限的嵌入式系统的需要,本文采用微型TCP/IP协议栈uIP,在协议栈之上设计实现了基于CGI的动态Web服务器,并将AJAX技术应用到客户端与服务器的实时数据交互中。AJAX技术的实现是将JavaScript程序内嵌在网页中,不需要在浏览器上另外安装插件,降低了系统成本和Web服务器实现的难度。
1 uIP协议栈分析
uIP是专为8/16位嵌入式微处理器设计的轻量级TCP/IP协议栈。uIP本身的源代码和占用的内存资源都非常少,其源代码只有几KB,RAM仅占几百字节。uIP采用BSD授权,遵循RFC标准,完全由C语言编写,具有良好的可移植性,可免费用于非商业和商业用途。uIP协议栈有多个版本,本设计采用的是uIP 1.0。
为了减少对系统资源的要求,uIP的内部实现主要采用以下设计措施:
①不支持动态内存分配机制,使用单一的全局缓冲区uip_buf收发网络数据;
②着重实现了与完整TCP/IP通信所必需的ARP(地址解析协议)、IP(网际互联协议)、TCP(传输控制协议),而UDP(用户数据包协议)、ICM P(网络控制报文协议)只作为可选模块;
③各层协议紧密耦合,应用协议也参与了部分协议栈功能的实现。
uIP的体系结构如图1所示。由图1可以看出,uIP协议栈处于网络通信的中间层,用户需要为uIP提供底层网卡驱动程序和定时器驱动程序。
c语言相关文章:c语言教程
评论