用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

CAN总线的嵌入式Web服务器设计

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:35:26
2.3 嵌入式Web服务器应用程序的实现

工业现场数据经嵌入式Web服务器上传到以太网才能被用户利用,因此网络用户和Web服务器之间通信程序的开发也是本课题中很重要的一部分。课题中嵌入式Web服务器实现的功能主要是现场实时数据发布功能。实时数据包括温度、设备运行状态信息、通信状态信息、时钟信息等。嵌入式Web服务器将实时数据以网页形式发布到Internet上,远方客户通过接入Internet浏览该服务器发布的工业现场实时信息。本设计采用Brower/Server(简称B/S)开发模式。用这种方式开发嵌入式Web服务器应用程序具有很多优点。比如降低客户端的要求,方便客户端的分布使用,客户端的开发和维护费用降低等。但是因为SX单片机的资源有限,在用单片机搭建的服务器上编程实现实时动态数据的浏览任务较重。在服务器端运行程序,速度也受到限制,加上网页界面或程序结构的单方面调整都将导致整个系统全盘修改,系统的灵活性与可扩展性差。在设计中,如果仅仅采用B/S访问方式,其功能是难以完全完成的。针对应用传统B/S模式开发Web服务器应用软件的弊端,提出了改进方案。

为克服传B/S访问模式的弊端,做了以下两点改进。

①采用套接字编程,实现部分服务器程序在客户端运行,在客户端浏览器实现动态网页显示实时数据。在改进方案中,实现动态数据的实时浏览采用了Java applet技术。

②不再将HTML语言写入汇编程序,在浏览器端解板成网页,而是利用嵌入式Web服务器扩展的EEPROM24C256与SX52相连,用来存储要浏览的Web文件。当浏览器与Web服务器交互时,利用HTTP协议通过统一资源定位器URL来确定Web服务器应该为浏览器提供哪些资源。

这种改进方案在访问模式上还是通过浏览器访问嵌入式Web服务器,在通信模式上却利用了C/S(Client/Server)模式,其于套接字来编程,即所谓的B/S和C/S相结合模式。图5为B/S和C/S结合模式的原理。

通过B/S方式访问Web服务器上的静态网页,在个网页中嵌有Java applet文件。客户端的IE浏览器浏览这个网页时,会把网页中标识的Java applet源程序下载到客户端执行。在Java applet源程序中,创建了一个套接字来完成与服务器的通信(前提是在Web服务器上同时运行一个相应的服务器监听程序),主要是获取实时数据,用于在浏览器中显示。事实上,Java applet中的Socket通信是一个典型的C/S访问方式。

通过这种B/S和C/S相结合的访问方式,能够很好的实现实时数据的动态浏览。特别是这种实现方式秉承了B/S和C/S两者的优点,具有很大的灵活性。

以下是服务器与客户端applet通信具体实现过程。

①创建Socket。用tcbLocalPortMSB和tcbLocalPortLSB设置服务器监听端口号,具体设为8080;用myIP3~0设置服务器IP址,具体设为192.168.1.111。

②将服务器设为Listen监听状态,等待接收客户端连接。用TCP API函数建立被动连接代码如下:

TCPAppInit

Bank TCB_BANK

Mov tcbLocalPortLSB,#APPLET_PORT_LSB;设置TCP服务端口

Mov tcbLocalPortMSB,#APPLET_PORT_MSB

Jmp @TCPAppPassiveOpen;跳转到TCP被动连接程序,进行端口侦听

_TCPAppPassiveOpenjavascript:window.open(this.src);" style="cursor:pointer;"/>

_bank TCP_BANK

mov tcpState,#TCP_ST_LISTEN

clr tcpUnAckMSB

clr tcpUnAckLSB

retp

③当TCP的状态为established时,双方连接建立,可以开始传输数据。此时产生新的套接字,用来管理远端客户机服务,原来的端口继续用来监听。

④数据传输包括数据接收和数据发送的两问好。接收数据时,用TCPAppRxBytes()函数获得接收到的数据字节数,根据得到的字节数多次调用TCPAppRxData()函数接收数据,在全部数据接收完毕后可以在TCPAppRxDone()函数中做相应的处理。发送数据时,首先调用函数TCPAppTxBHytes()设置要发送数据的字节数,根据此字节数调用TCPAppTxData()函数发送数据,全部数据发送完毕后调用TCPAppTxDone()函数确认。其中采集的动态数据保存在变量globTemp3中。

⑤当TCP状态为closed时,服务器关闭连接,不再发送和接收数据。程序具体实现时,设定客户端和服务器端连接建立后,服务器端即向客户端发送数据。

3 结论

本文所设计的嵌入式Web服务器,采用改进的Web应用程序开发模式,用Java applet实现客户端程序,不用在客户端应用程序,方便用户使用;能取代传统的工控机和接口卡,实现现场设备数据直接上网,小巧轻便,成本低。

该Web服务器不仅可以广泛应用于工业控制领域,实现小型工业监测系统网络化,还可以实现智能仪器、智能园区、环境工程、植物工厂、工业制冷等方面的应用。



上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:9,015.62500 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号