当前位置:首页 > 嵌入式 > 嵌入式硬件

摘要:本文提出了一种在单片机系统中实施基于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.aspxHTTP/1.1CRLF

  Host:127.0.0.1CRLF

  Content-Length:86CRLF

  Connection:Keep-AliveCRLF

  CRLF

  000000C8420000C8420000C8420000C8420000C8420000C8420000C8420000C8420000C8420000C84251AD

  通过工具截获的数据以16进制显示如下:

  00000000:474554202F636F6D32687474702F7465GET/com2http/te

  00000010:73742E6173707820485454502F312E31st.aspxHTTP/1.1

  00000020:0D0A486F73743A203132372E302E302E..Host:127.0.0.

  00000030:310D0A436F6E74656E742D4C656E67741..Content-Lengt

  00000040:683A2038360D0A436F6E6E656374696Fh:86..Connectio

  00000050:6E3A204B6565702D416C6976650D0A0Dn:Keep-Alive...

  00000060:0A303030303030433834323030303043.000000C8420000C

  00000070:383432303030304338343230303030438420000C8420000C

  00000080:383432303030304338343230303030438420000C8420000C

  00000090:383432303030304338343230303030438420000C8420000C

  000000A0:383432303030304338343230303030438420000C8420000C

  000000B0:3834323531414484251AD

  上面显示的便是一个合法的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.3WebServerAndRealDatabase

  网络模块转化后的HTTP请求最终到达Web服务器,可用任何服务器端动态网页技术实现数据的处理和保存,实验方案采用微软最新的动态网页技术ASP.Net.通过编写程序获取有效数据,转化为原始二进制数据形式,验证校验码,如果无误根据数据的对应写入实时数据库,如果实时性要求不高以及数据存储量不大,可以使用ACCESS数据库,不然可以使用专用的数据库服务器,如Oracle和SQLServer.

4优点

  本文中数据采集方案有以下优点:

  (1)可以很方便的集成现有设备和仪表的数据采集.只要知道仪表设备的通讯协议,在下位机实现数据通讯,把采集到的数据封装为HTTP协议包通过串口发出即可.

  (2)采用工业交换以太网,基于HTTP协议,同时满足局域和远程采集的需要.可以把该系统连至Internet,WebServerAndRealDatabase和采集系统不在同一地理位置,而且服务器可以同时处理多个不同地理位置的数据,方便实现数据集中,能更好的管理和使用数据.

  (3)方便维护和升级,方便增加采样点.可以根据需要随意增加下位机,做到需要几个模块调试增加几个模块.

  (4)不同于传统的专用采集服务器采集数据模式,上位机服务器的功能由Web服务提供,不需要编写专门的数据接收程序和采集程序,只要编写完成数据的处理和保存的代码.真正同仪表的通讯由下位机完成,形成分布式数据采集,Web服务是多线程体系结构,可并发处理多个下位机模块发送的数据,使得整个系统支持更多的数据点采集,提高整个系统的采集效率.

5实验

  (1)下位机实现:同普通的下位机系统设计和实现,只是在数据发送时需要加上HTTP协议包的包头,可参考3.1.

  (2)网络模块:实验选用了广州周立功单片机发展有限公司开发的一款嵌入式网络模块-ZNE-100T,它内部集成了TCP/IP协议栈,利用它可以轻松完成嵌入式设备的网络功能,另外为了测试方便直接使用了ZNE-100T的评估板.通过周立功公司提供的配置软件可以轻松设置网络模块的参数,需要设置的参数包括IP地址、子网掩码、网关、串口的波特率设置、端口工作模式、目标IP地址和目标端口等,特别说明的是端口工作模式,由于HTTP协议是基于TCP的,所以该方案中模式设为TCPClient模式,目标端口一般默认设置为80.

  (3)Web服务器使用联想万全520服务器,WindowsServer2003操作系统,IIS6.0,数据库采用SQLServer2005,使用ASP.Net技术编程实现数据处理和保存.下面给出用C#实现的数据处理核心代码实例:

  byte[]a;

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

  System.Text.ASCIIEncodingascii=newSystem.Text.ASCIIEncoding();

  stringc=ascii.GetString(a);

  if(!CheckValidChr(c))//检查是否有非法字符

  return;

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

  for(inti=0;i

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

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

  return;

  for(inti=5;i

  {

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

  {

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

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

  }

  }

6结束语

  经过实验证明,基于本文方案可以快速有效的部署一个数据采集系统,比传统的串口数据采集方法有很多优越性,扩展维护方便,由于上位机基于动态网页技术,只需编写数据处理和保存程序,使得系统的开发工作主要放在下位机和仪表的通信上.需要说明的是,该方案中使用ZNE-100T评估板和下位机通过485串行总线相连,下位机向网络模块发送的有效数据需要加入CRC校验,防止在485总线上数据出现错误引起Web服务器采集到错误数据.另外一个解决方案是把ZNE-100T模块集成在下位机,这样可以取消校验.不过前者有个优点就是如果下位机距离交换机很远,可以近距离用网线把交换机和网络模块连接,用485线把网络模块和下位机连接,实现了长距离数据传输.由此可出看出,利用嵌入式网络模块实现基于HTTP协议的数据采集系统确是一个非常灵活的方案.

参考文献

  [1]杨健.基于嵌入式系统的数据采集系统网络接入的设计与实现[J].仪器仪表学报,26(8)增刊:290-292.

  [2]刘凯.基于嵌入式Linux系统的远程数据采集[J].计算机应用,26(B06):264-265.

  [3]游雪峰.以太网分布式数据采集同步和实时传输研究[J].仪器仪表学报,27(4):384-387.

  [4]张曦煌.基于嵌入式Web的远程仪表接口[J].微计算机信息,2006(01S):147-149.

  [5]InternetRFC/STD/FYI/BCPArchives.RFC2616-HypertextTransferProtocol——HTTP/1.1[EB/OL].http://www.faqs.org/rfcs/rfc2616.html.

  [6]HarvyM.Deitel.C#大学教程[M].电子工业出版社,2004.1.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭