2、系统结构
HTTP协议是一种基于TCP实现的应用层协议,它是因特网可靠的交换数据的重要基础。如果要实现HTTP协议,必须以TCP/IP协议栈为基础,利用嵌入式网络模块即可方便的实现TCP/IP协议栈的功能。图1为一个利用嵌入式网络模块实现的基于HTTP协议的数据采集方案。
图1中,最关键部分是采集板和网络模块。当今仪器仪表最常用的通讯接口是485串行接口,采集板和仪表设备一般通过485总线连接,采集板利用单片机开发,实现下位机和设备仪表的通信,采用主从方式采集所需要的数据,再通过485总线发送给网络模块,网络模块收到采集板数据发出的串行数据,利用内嵌的TCP/IP协议栈实现串行数据到以太网数据的转换,网络模块通过网线、交换机和采集服务器连接。采集板是实现HTTP应用层协议的地方,只要采集板发出的数据符合HTTP协议,经由网络模块转化后成为合法的HTTP请求,则Web服务器可使用任何的服务器端动态网页技术(CGI、ASP、JSP、PHP、ASP.Net等)实现数据的处理和保存。
3.1 采集板
采集板和仪表进行主从通讯采集数据以外,最主要的任务就是把采集的数据封装为HTTP协议的数据包,也就是要在单片机中实现简化的HTTP协议,能够完成基本的数据交互功能即可。在国际标准中,有两个HTTP协议的标准文档:RFC1945和RFC2616。这两个文档分别描述了HTTP/1.0和HTTP/1.1的实现标准。这两个版本的HTTP协议最大区别在于前者不支持保持连接,规定每次的HTTP请求和响应后都要关闭TCP连接,而后者支持持久连接,这意味着可以打开一次TCP连接进行多次请求/响应,大大提高了性能。为了提高性能,本文中将实现基本的HTTP1.1协议。经过分析研究,找出了一种比较简单且有效的实现。下面通过一个具体例子说明实现的HTTP协议包格式。