您的位置 首页 FPGA

根据HTTP协议的数据交互功用完成构建数据收集计划

基于HTTP协议的数据交互功能实现构建数据采集方案-该方案灵活方便,实现简单;采用分布式结构,采集效率高,可适用于大量数据的采集,而且可以方便扩展为基于Internet的远程数据采集。

本文提出了一种在单片机体系中施行依据HTTP协议的数据收集的计划,运用嵌入式网络模块完结串口到以太网数据的转化,运用收集板将数据封装成HTTP包。

该计划灵敏便利,完结简略;选用分布式结构,收集功率高,可适用于许多数据的收集,并且能够便利扩展为依据Internet的长途数据收集。

1、前语

跟着工业以太网的开展,因为传输速度、传输牢靠性及可扩展性等归纳功用方面的优越性,越来越多的数据收集体系都是依据以太网接口,并且越来越多的仪器外表设备也供给了以太网接口。可是许多企业都有前期投入的设备外表,一般运用串口进行数据通讯,因而需求一种简略、高效、易于扩大的集成计划,完结对原有设备外表的数据收集,并且能够便利的集成到现有的以太网工业控制体系中。本文提出一种数据收集计划,除了满意前面要求外,因为其选用HTTP协议,能够便利扩展为依据Internet的长途数据收集.HTTP协议能够运用嵌入式体系(WinCE、Linux等)依据其自带的TCP/IP协议栈完结或许直接运用嵌入式Web服务器,在计算机体系中也能够运用高档言语直接运用Web客户端运用HTTP协议或许运用Winsock网络编程,完结依据HTTP的数据交互,但都会添加体系的开发本钱,本文提出一种依据嵌入式网络模块在单片机体系中完结简略HTTP协议的办法,并依据此办法构建数据收集计划。

2、体系结构

HTTP协议是一种依据TCP完结的应用层协议,它是因特网牢靠的交流数据的重要根底。假如要完结HTTP协议,有必要以TCP/IP协议栈为根底,运用嵌入式网络模块即可便利的完结TCP/IP协议栈的功用。图1为一个运用嵌入式网络模块完结的依据HTTP协议的数据收集计划。

依据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协议包格局。

GET /com2http/test.aspx HTTP/1.1CRLF

Host: 127.0.0.1CRLF

Content-Length: 86CRLF

Connection: Keep-AliveCRLF

CRLF

000000C8420000C8420000C8420000C8420000C8420000C8420000C842000

0C8420000C8420000C84251AD

经过东西截获的数据以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 0D 0A 43 6F 6E 74 65 6E 74 2D 4C 65 6E 67 74 1..Content-Lengt

00000040:68 3A 20 38 36 0D 0A 43 6F 6E 6E 65 63 74 69 6F h: 86..ConnecTIo

00000050:6E 3A 20 4B 65 65 70 2D 41 6C 69 76 65 0D 0A 0D n: Keep-Alive.。。

00000060:0A 30 30 30 30 30 30 43 38 34 32 30 30 30 30 43 .000000C8420000C

00000070:38 34 32 30 30 30 30 43 38 34 32 30 30 30 30 43 8420000C8420000C

00000080:38 34 32 30 30 30 30 43 38 34 32 30 30 30 30 43 8420000C8420000C

00000090:38 34 32 30 30 30 30 43 38 34 32 30 30 30 30 43 8420000C8420000C

000000A0:38 34 32 30 30 30 30 43 38 34 32 30 30 30 30 438420000C8420000C

000000B0:38 34 32 35 31 41 44 84251AD

上面显现的便是一个合法的HTTP协议的数据包实例,从0x61开端为真实的有用数据信息,数据包含一个字节的收集站地址,本例中为“00”,10个契合IEEE-754规范的单精度四字节浮点数,本例中为10个100.0(16进制表明为0000C842),和2个字节的CRC16的循环查验码,本例中为“51AD”.HTTP协议传送的数据一般都是文本格局,所以一共43字节二进制数据经过转化成为86字节的16进制字符串数据。在HTTP包的封装中,除了数据域以外,0x4开端的“/com2http/test.aspx”和0x43开端86会依据实际需求在下位机中由程序主动设置,别离表明处理该数据的处理页面和提交的有用数据字节数。由此能够看出,只需在有用数据的前面加上HTTP恳求头,就能够完结简略的HTTP1.1协议,在单片机体系中完结这种功用和写一般的串口发送程序相同简略。

3.2 网络模块

该模块在该体系中起着承上启下的效果,完结了TCP/IP协议栈,完结把485线上串行传送的HTTP包数据转化为在交流式以太网中的以太网帧,真实向Web服务器宣布HTTP恳求。

3.3 Web Server And Real Database

网络模块转化后的HTTP恳求终究抵达Web服务器,可用任何服务器端动态网页技能完结数据的处理和保存,试验计划选用微软最新的动态网页技能ASP.Net.经过编写程序获取有用数据,转化为原始二进制数据方式,验证校验码,假如无误依据数据的对应写入实时数据库,假如实时性要求不高以及数据存储量不大,能够运用ACCESS数据库,否则能够运用专用的数据库服务器,如Oracle和SQL Server.

4、长处

本文中数据收集计划有以下长处:

(1)能够很便利的集成现有设备和外表的数据收集。只需知道外表设备的通讯协议,在下位机完结数据通讯,把收集到的数据封装为HTTP协议包经过串口宣布即可。

(2)选用工业交流以太网,依据HTTP协议,一起满意局域和长途收集的需求。能够把该体系连至Internet,Web Server And Real Database和收集体系不在同一地理方位,并且服务器能够一起处理多个不同地理方位的数据,便利完结数据会集,能更好的办理和运用数据。

(3)便利保护和晋级,便利添加采样点。能够依据需求随意添加下位机,做到需求几个模块调试添加几个模块。

(4)不同于传统的专用收集服务器收集数据形式,上位机服务器的功用由Web服务供给,不需求编写专门的数据接纳程序和收集程序,只需编写完结数据的处理和保存的代码。真实同外表的通讯由下位机完结,构成分布式数据收集,Web服务是多线程体系结构,可并发处理多个下位机模块发送的数据,使得整个体系支撑更多的数据点收集,进步整个体系的收集功率。

5、试验

(1)下位机完结:同一般的下位机体系规划和完结,只是在数据发送时需求加上HTTP协议包的包头,可参阅3.1.

(2)网络模块:试验选用了广州周建功单片机开展有限公司开发的一款嵌入式网络模块-ZNE-100T,它内部集成了TCP/IP 协议栈,运用它能够轻松完结嵌入式设备的网络功用,别的为了测验便利直接运用了ZNE-100T的评价板。经过周建功公司供给的装备软件能够轻松设置网络模块的参数,需求设置的参数包含IP地址、子网掩码、网关、串口的波特率设置、端口作业形式、方针IP 地址和方针端口等,特别阐明的是端口作业形式,因为HTTP协议是依据TCP的,所以该计划中形式设为TCP Client形式,方针端口一般默认设置为80.

(3)Web服务器运用联想万全520服务器,Windows Server2003操作体系,IIS6.0,数据库选用SQL Server 2005,运用ASP.Net技能编程完结数据处理和保存。 下面给出用C#完结的数据处理中心代码实例:

byte []a;

a=this.Request.BinaryRead ( this.Request.ContentLength) ;//获取提交的数据

System.Text.ASCIIEncoding ascii=new System.Text.ASCIIEncoding ();

string c=ascii.GetString (a);

if (!CheckValidChr (c))//查看是否有不合法字符

return ;

byte []b=new byte [a.Length /2];

for (int i=0;i

b[i/2]=Convert.ToByte (c.Substring (i,2) ,16);

if (!CheckCRC(b))//验证CRC

return ;

for (int i=5;i

if ( (i-1) % 4 ==0 )

float t=BitConverter.ToSingle (b,i-4);//把字节数据转化为浮点数

SaveData(b[0],(i-1)/4,t);//依据下位机站地址以及数据方位保存数据

6、结束语

经过试验证明,依据本文计划能够快速有用的布置一个数据收集体系,比传统的串口数据收集办法有许多优越性,扩展保护便利,因为上位机依据动态网页技能,只需编写数据处理和保存程序,使得体系的开发作业首要放在下位机和外表的通讯上。需求阐明的是,该计划中运用ZNE-100T评价板和下位机经过485串行总线相连,下位机向网络模块发送的有用数据需求参加CRC校验,避免在485总线上数据呈现过错引起Web服务器收集到过错数据。别的一个解决计划是把ZNE-100T模块集成在下位机,这样能够撤销校验。不过前者有个长处便是假如下位机间隔交流机很远,能够近间隔用网线把交流机和网络模块衔接,用485线把网络模块和下位机衔接,完结了长间隔数据传输。由此可出看出,运用嵌入式网络模块完结依据HTTP协议的数据收集体系确是一个十分灵敏的计划。

责任编辑:gt

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/87024.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部