基于嵌入式网络模块的HTTP数据采集方案
发布时间:2008/9/2 0:00:00 访问次数:528
本文提出了一种在单片机系统中实施基于http协议的数据采集的方案,利用嵌入式网络模块实现串口到以太网数据的转换,使用采集板将数据封装成http包.
该方案灵活方便,实现简单;采用分布式结构,采集效率高,可适用于大量数据的采集,而且可以方便扩展为基于internet的远程数据采集.
1 前言
随着工业以太网的发展,由于传输速度、传输可靠性及可扩展性等综合性能方面的优越性,越来越多的数据采集系统都是基于以太网接口,并且越来越多的仪器仪表设备也提供了以太网接口.但是很多企业都有早期投入的设备仪表,一般使用串口进行数据通信,因此需要一种简单、高效、易于扩充的集成方案,实现对原有设备仪表的数据采集,并且可以方便的集成到现有的以太网工业控制系统中.本文提出一种数据采集方案,除了满足前面要求外,由于其采用http协议,可以方便扩展为基于internet的远程数据采集.http协议可以利用嵌入式系统(wince、linux等)基于其自带的tcp/ip协议栈实现或者直接使用嵌入式web服务器[1~4],在计算机系统中也可以利用高级语言直接使用web客户端使用http协议或者利用winsock网络编程,实现基于http的数据交互,但都会增加系统的开发成本,本文提出一种基于嵌入式网络模块在单片机系统中实现简单http协议的方法,并基于此方法构建数据采集方案.
2 系统结构
http协议是一种基于tcp实现的应用层协议,它是因特网可靠的交换数据的重要基础.如果要实现http协议 ,必须以tcp/ip协议栈为基础,利用嵌入式网络模块即可方便的实现tcp/ip协议栈的功能.图1为一个利用嵌入式网络模块实现的基于http协议的数据采集方案.
图1 系统结构
图1中,最关键部分是采集板和网络模块.当今仪器仪表最常用的通讯接口是485串行接口,采集板和仪表设备一般通过485总线连接,采集板利用单片机开发,实现下位机和设备仪表的通信,采用主从方式采集所需要的数据,再通过485总线发送给网络模块,网络模块收到采集板数据发出的串行数据,利用内嵌的tcp/ip协议栈实现串行数据到以太网数据的转换,网络模块通过网线、交换机和采集服务器连接.采集板是实现http应用层协议的地方,只要采集板发出的数据符合http协议,经由网络模块转化后成为合法的http请求,则web服务器可使用任何的服务器端动态网页技术(cgi、asp、jsp、php、asp.net等)实现数据的处理和保存.
3 系统实现
3.1 采集板
采集板和仪表进行主从通讯采集数据以外,最主要的任务就是把采集的数据封装为http协议的数据包,也就是要在单片机中实现简化的http协议,能够完成基本的数据交互功能即可.在国际标准中,有两个http协议的标准文档:rfc1945和rfc2616[5].这两个文档分别描述了http/1.0和http/1.1的实现标准.这两个版本的http协议最大区别在于前者不支持保持连接,规定每次的http请求和响应后都要关闭tcp连接,而后者支持持久连接,这意味着可以打开一次tcp连接进行多次请求/响应,大大提高了性能.为了提高性能,本文中将实现基本的http1.1协议.经过分析研究,找出了一种比较简单且有效的实现.下面通过 一个具体例子说明实现的http协议包格式.
get /com2http/test.aspx http/1.1crlf
host: 127.0.0.1crlf
content-length: 86crlf
connection: keep-alivecrlf
crlf
000000c8420000c8420000c8420000c8420000c8420000c8420000c8420000c8420000c8420000c84251ad
通过工具截获的数据以16进制显示如下:
00000000:47 45 54 20 2f 63 6f 6d 32 68 74 74 70 2f 74 65 get /com2http/te
00000010:73 74 2e 61 73 70 78 20 48 54 54 50 2f 31 2e 31 st.aspx http/1.1
00000020:0d 0a 48 6f 73 74 3a 20 31 32 37 2e 30 2e 30 2e ..host: 127.0.0.
00000030:31 0
本文提出了一种在单片机系统中实施基于http协议的数据采集的方案,利用嵌入式网络模块实现串口到以太网数据的转换,使用采集板将数据封装成http包.
该方案灵活方便,实现简单;采用分布式结构,采集效率高,可适用于大量数据的采集,而且可以方便扩展为基于internet的远程数据采集.
1 前言
随着工业以太网的发展,由于传输速度、传输可靠性及可扩展性等综合性能方面的优越性,越来越多的数据采集系统都是基于以太网接口,并且越来越多的仪器仪表设备也提供了以太网接口.但是很多企业都有早期投入的设备仪表,一般使用串口进行数据通信,因此需要一种简单、高效、易于扩充的集成方案,实现对原有设备仪表的数据采集,并且可以方便的集成到现有的以太网工业控制系统中.本文提出一种数据采集方案,除了满足前面要求外,由于其采用http协议,可以方便扩展为基于internet的远程数据采集.http协议可以利用嵌入式系统(wince、linux等)基于其自带的tcp/ip协议栈实现或者直接使用嵌入式web服务器[1~4],在计算机系统中也可以利用高级语言直接使用web客户端使用http协议或者利用winsock网络编程,实现基于http的数据交互,但都会增加系统的开发成本,本文提出一种基于嵌入式网络模块在单片机系统中实现简单http协议的方法,并基于此方法构建数据采集方案.
2 系统结构
http协议是一种基于tcp实现的应用层协议,它是因特网可靠的交换数据的重要基础.如果要实现http协议 ,必须以tcp/ip协议栈为基础,利用嵌入式网络模块即可方便的实现tcp/ip协议栈的功能.图1为一个利用嵌入式网络模块实现的基于http协议的数据采集方案.
图1 系统结构
图1中,最关键部分是采集板和网络模块.当今仪器仪表最常用的通讯接口是485串行接口,采集板和仪表设备一般通过485总线连接,采集板利用单片机开发,实现下位机和设备仪表的通信,采用主从方式采集所需要的数据,再通过485总线发送给网络模块,网络模块收到采集板数据发出的串行数据,利用内嵌的tcp/ip协议栈实现串行数据到以太网数据的转换,网络模块通过网线、交换机和采集服务器连接.采集板是实现http应用层协议的地方,只要采集板发出的数据符合http协议,经由网络模块转化后成为合法的http请求,则web服务器可使用任何的服务器端动态网页技术(cgi、asp、jsp、php、asp.net等)实现数据的处理和保存.
3 系统实现
3.1 采集板
采集板和仪表进行主从通讯采集数据以外,最主要的任务就是把采集的数据封装为http协议的数据包,也就是要在单片机中实现简化的http协议,能够完成基本的数据交互功能即可.在国际标准中,有两个http协议的标准文档:rfc1945和rfc2616[5].这两个文档分别描述了http/1.0和http/1.1的实现标准.这两个版本的http协议最大区别在于前者不支持保持连接,规定每次的http请求和响应后都要关闭tcp连接,而后者支持持久连接,这意味着可以打开一次tcp连接进行多次请求/响应,大大提高了性能.为了提高性能,本文中将实现基本的http1.1协议.经过分析研究,找出了一种比较简单且有效的实现.下面通过 一个具体例子说明实现的http协议包格式.
get /com2http/test.aspx http/1.1crlf
host: 127.0.0.1crlf
content-length: 86crlf
connection: keep-alivecrlf
crlf
000000c8420000c8420000c8420000c8420000c8420000c8420000c8420000c8420000c8420000c84251ad
通过工具截获的数据以16进制显示如下:
00000000:47 45 54 20 2f 63 6f 6d 32 68 74 74 70 2f 74 65 get /com2http/te
00000010:73 74 2e 61 73 70 78 20 48 54 54 50 2f 31 2e 31 st.aspx http/1.1
00000020:0d 0a 48 6f 73 74 3a 20 31 32 37 2e 30 2e 30 2e ..host: 127.0.0.
00000030:31 0
上一篇:ARM开发的调试方法概述
上一篇:嵌入式操作系统中的关键技术