单片机系统中Web Service的调用方法研究

发布者:捡漏来了最新更新时间:2011-12-22 关键字:单片机系统  WebService 手机看文章 扫描二维码
随时随地手机看文章

1 前言

Web Service作为一种有着强大功能的可互操作性和扩展性的新技术,被越来越多用于异构数据的集成,自然想到将其应用于工业数据采集系统的异构数据的集成.本文介绍了一种在单片机系统中调用Web Service实现主动提交数据的方法,方便了数据采集系统的集成.在传统的数据采集系统中,可以利用单片机系统用串口方式采集仪表数据,通过串行总线将数据提交给上位计算机,通过预先设计的通信协议与上位采集服务器通信,集成采集的数据.当需要增加下位机采集模块时需要扩展对应的上位机采集口,采集系统的升级和维护都非常麻烦.在单片机系统中通过调用采集服务器端的Web Service和上位机交互数据,可以简化下位机和上位机的通信,把主要工作放在下位单片机系统如何和仪表通信采集数据上, 基于该方法可以方便的构建基于工业以太网的分布式数据采集方案.该方案还可以方便的集成已经存在的数据采集系统,方便单片机系统的升级,比如可以把利用单片机实现的采集系统很容易的改为PLC采集系统或直接PC采集数据模式,而只需升级后的系统调用同样的Web Service交互数据即可.由于Web Service调用使用HTTP协议交互数据,该方案还可以方便的扩展为支持Internet的远程数据采集.

2 单片机系统中调用Web Service的实现

2.1 Web Service技术[7,9,10]

Web Service是能够通过Web协议来访问的可编程应用程序组件, 使原来孤立的站点之间的信息能够相互通信、共享.Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP、WSDL、UDDI等,所以Web Service可以在任何支持这些标准的环境(Windows、Linux等)中使用.Web Service本质其实不是一种新技术,前面提到其使用了Internet标准,这些标准便是Web Service的核心技术.

(1)    HTTP是一种基于TCP实现的应用层协议,它是因特网可靠的交换数据的重要基础.HTTP为Web Service请求与响应提供了传输层,HTTP使得任何设备和平台都可以访问Web Service.

(2)    XML(Extensible Markup Language,可扩展标记语言),是一套规范,允许编程人员自行定义如HTML般的标注,以方便数据存取和处理、交换、转换等,主要特点是使用有意义的标记,这个特性使计算机可以理解数据含义.XML可以在任何系统、应用程序、任何平台上运行,数据传输以Internet为基础,传输费用便宜.

(3)    SOAP协议(Simple Object Access Protocol,简单对象访问协议),是一个用于分散和分布式环境下网络信息交换的基于XML的通信协议.它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问.由于数据采用文本格式,调试方便,容易穿越防火墙.

(4)    WSDL(Web服务描述语言),是基于XML的用来描述Web服务功能的一种语法.

(5)    UDDI(Universal Description, Discovery, and Integration, 统一描述、发现和集成),基于XML创建的一个平台独立, 开放的框架,通过Internet来描述服务,发现服务,并且整合服务.

2.2 Web Service 调用本质

现在很多语言工具都支持Web服务开发,如VS.Net、J2EE、JBuilder等,而且很多语言工具是跨平台(Windows、Linux等)的.这些开发工具都有专门的开发包或者类库,可以方便的实现Web Service的定义和调用,本文主要研究单片机系统中实现Web Service的调用方法.

调用Web Service本质上就是程序客户端和Web Service服务器端的信息交互,且有专门的信息格式.在ASP.net中提供了三种交互端口(协议):SOAP、HTTP-GET和HTTP-POST[7].在这三种协议中,SOAP是XML Web Service最常用到的.与HTTP相比,SOAP显的更为复杂,但却拥有更强的接受能力.SOAP是一种以XML为基础的协议,它提供一种将数据打包和编码的方法,以用于网络的数据传输.任意一个用户都可以使用SOAP协议与任何一个Web Service进行通信,甚至于说这个XML Web Service不是建立在ASP.NET 平台上的,比如说Java的,都可以利用SOAP来进行数据传输.因此SOAP是语言独立的. HTTP将SOAP 消息封装,然后以它的形式进行网络传输. HTTP-GET和HTTP-POST这两种方法传送参数和数据的能力比较简单,非常适合不能使用SOAP的客户来调用Web Service的情况. HTTP-GET和HTTP-POST方式与SOAP相比有如下特性:

优点:(1)HTTP方式不需要复杂的XML消息处理,适合不支持XML的平台使用;(2)HTTP方式在交互时候不需要添加额外的标签,减少了交互的数据量和开销,有利于提高整体性能.

缺点:(1)不能调用具有复杂数据类型参数的Web Service;(2)如果调用返回复杂数据类型时处理不方便;(3)不能把类和结构序列化为XML消息;(4)不能使用引用方式传递参数.

结合单片机系统调用Web Service的实际需要以及考虑到单片机的处理能力低,不支持XML,不适合复杂的数据处理,开发效率低等问题,认为使用HTTP方式比较合适,本文中将以HTTP-POST为例介绍其调用Web Service的实现方法.

2.3 实现单片机系统中调用Web Service的核心技术

(1)基于嵌入式网络模块实现HTTP

在嵌入式系统(WinCE、Linux等)中,可以基于其自带的TCP/IP协议栈实现HTTP或者直接使用嵌入式Web服务器[1~5]来使用HTTP协议,在计算机系统中则可以在高级语言中直接调用Web客户端使用HTTP协议或者利用SOCKET网络编程实现基于HTTP的数据交互,实现都比较简单,但在单片机系统中,其自身并没有TCP/IP协议栈,因此基于嵌入式网络模块在单片机系统中实现HTTP.

要实现HTTP协议 ,必须以TCP/IP协议栈为基础,利用嵌入式网络模块即可方便的实现TCP/IP协议栈的功能.如图1所示,下位机和仪表设备通过485总线连接,下位机利用单片机开发,采用主从方式和设备仪表通信采集数据.采集到的数据再通过总线发送给嵌入式网络模块,模块收到串行数据,利用内嵌的TCP/IP协议栈实现串行数据到以太网数据的转换,嵌入式网络模块通过网线连接至工业以太网.该方法中,下位机是实现HTTP应用层协议的关键,只要下位机发出的数据包符合HTTP协议,经嵌入式网络模块转化,变成可由Web服务器处理的合法HTTP-POST请求包,则可利用Web Service实现数据的处理和保存,也就实现了单片机系统调用Web Service.[page]

图1 单片机系统结构

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

(2)HTTP-POST消息格式

Internet标准定义了两个HTTP协议的标准文档:RFC1945和RFC2616[6].这两个文档分别描述了HTTP/1.0和HTTP/1.1的实现标准.这两个版本的HTTP协议最大区别在于前者不支持保持连接,规定每次的HTTP请求和响应后都要关闭TCP连接,而后者支持持久连接,这意味着可以打开一次TCP连接进行多次请求/响应,大大提高了性能. 由于单片机系统的处理效率低、资源有限等原因,在其上实现完整HTTP协议很不现实,实际上为了实现Web Service调用也没有必要全部实现,只需实现基本的HTTP1.1协议完成单片机系统和Web服务器的数据通信即可. 经过分析研究,找出了一种比较简单有效的HTTP-POST格式.下面通过一个具体例子说明实现的方法.

用C#实现Web服务WebService1,定义一个处理模拟量数据的方法:

[WebMethod]

public string SimulateData(byte s,float[] a)

{

    …

    return "OK";

}

SimulateData方法的参数中,s为下位机站地址,可以用来区分哪个下位机发来的数据,数组a为下位机提交的模拟量数据,数据个数根据实际传递的数据来定.

下面是HTTP-POST请求包数据:

POST /WebService1/service1.asmx/SimulateData HTTP/1.1

Host: 127.0.0.1

Content-Type: application/x-www-form-urlencoded

Content-Length: 43

 

s=1&a=100.0&a=100.0&a=100.0&a=100.0&a=100.0

上面为一个合法的HTTP-POST协议的包实例, “/WebService1/service1.asmx/SimulateData”为要调用的Web Service的方法名及其服务地址,最后一行为真正的有效数据信息,数据包括采集站地址,本例中为1,以及5个模拟量数据,本例中为5个100.0.在HTTP-POST包中除了数据域以外,“Content-Length: 43”中的43会根据数据域实际字节个数在下位机中由程序设置,表示提交的有效数据字节数.由此可以看出,只要加上正确的HTTP请求头、相应的Web Service地址,并且按照HTTP1.1 POST规范设置数据域数据就可以实现简单的HTTP-POST协议,在单片机系统中只需把这些数据通过串口发出,剩下的工作由嵌入式网络模块实现,和编写普通的串口发送程序一样简单.经络模块转化后的HTTP-POST请求最终到达Web服务器,根据数据的对应写入实时数据库,如果实时性要求不高且数据存储量不大,可以使用ACCESS数据库,不然可以使用专用的数据库服务器,如Oracle和SQL Server.

调用Web Service后也会返回给下位机数据以表示执行结果,如果下位机不关心执行结果可以忽略返回的数据,否则可以根据需要进行相应的处理,下面给出作者实验时的返回数据:

HTTP/1.1 200 OK

Date: Thu, 08 Feb 2007 07:45:51 GMT

Server: Microsoft-IIS/6.0

MicrosoftOfficeWebServer: 5.0_Pub

X-Powered-By: ASP.NET

X-AspNet-Version: 1.1.4322

Cache-Control: private, max-age=0

Content-Type: text/xml; charset=utf-8

Content-Length: 101

 

okhttp://219.231.160.11/webservice1">ok>

上面的“ok”为方法SimulateData执行正确后返回的数据.

3 优点   

基于本文提出的方法可以方便的利用单片机构建基于工业以太网的数据采集系统,有以下优点:

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

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

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

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

4 结束语

实验证明,基于本文方法可以快速有效的部署数据采集系统,比传统的串口服务器采集数据的方法有很多优越性.上位机和下位机通信基于Web Service技术,使得系统的开发工作主要放在下位机和仪表的通信上,提高了系统开发效率,由于Web Service的跨平台和语言无关性,使得可以方便的维护和修改系统方案,大大减少开发成本.

 

 

关键字:单片机系统  WebService 引用地址:单片机系统中Web Service的调用方法研究

上一篇:基于MC9S08QG8单片机的EEPROM虚拟技术
下一篇:基于单片机实现嵌入式因特网终端的设计

推荐阅读最新更新时间:2024-03-16 12:49

一种基于单片机系统的DMA控制电路的模块化设计方案
    摘要: 介绍一种基于单片机系统的采用“RAN出让”方式实现的DMA控制电路。模块化设计,便于用可编逻辑门阵列或集成电路芯片实现。给出其软件接口子程序设计方案。     关键词: 单片机敏系统 直接存储器存取(DMA)方式 数据传输 采用中断查询方式时,单片机系统无法实现小于其指令周期的高速数据传输及数据采集。虽然近些年单片机速度不断提高,但指令周斯一般还在微秒量级,这就限制了单片机在高速数据传输领域内的应用,如网络通讯、高速数据采集等。DMA(即外设与内储存器之间数据直接传输)控制电路经其高效 、高速、CPU资源占用少等特点已在PC机成熟应用。在PG机中,它是通过安装在主板上的专用DMA控制
[应用]
V2XE型地磁传感器在单片机系统中的应用
   1 引言   V2XE是一种以集成微处理器作为控制和接口的新型2轴罗盘和大地磁场传感器。V2XE使用新型系统常用的3V工作电源,具有功耗低、尺寸小、在各种条件下的抗噪声能力强、较大的测量灵敏感应区等优点。V2XE结合了PNI公司专利的磁场感应传感器和测量电路技术,不受补偿漂移的影响,在不同温度下的测量结果很稳定。V2XE通过简单易行的标准SPI接口输入,输出数据。   2 性能特点   V2XE的典型特性如下:   功率低(3V DC,2mA输出);   封装尺寸小(25.4mm×5.4mm×11.5mm);   高地磁感应(0.01 °);   高地磁精度(2.0°);   数字接口输出(3V标准SPI接口);   
[应用]
单片机系统的动态加密技术
摘要:单片机系统产品的加密和解密技术永远是一个矛盾的统一体。然而,为了更好的保护好自己的单片机技术成果和知识产权,加大解密成本,研究新型加密技术仍是保护成果的主要手段之一。文中在讨论了传统的单处系统加密和解密技术的基础上,提出了一种实用而有效的动态加密技术的实现方案。 关键词:单片机系统 动态加密技术 FPGA 1 概述 随着单片机技术的发展和广泛应用,许多使用单片机的高新技术产品诸如智能化仪器、仪表、小型工业控制系统等都面临着一个令人头痛的问题,那就是新产品刚一推出就被仿制和剽窃。这种现象会使产品开发商蒙受很大损失,同时也极大地挫伤了开发商的积极性。创新开发是一个公司竞争力的关键,如何保护好自己的劳动成果,除用法律手段外,
[应用]
多CPU单片机系统设计在社区安防系统中的应用
摘要:本文较为详细地介绍基于多CPU的单片机系统设计思想,并给出它在社区安全防范系统中的应用。 关键词:多CPU 安全防范 系统设计 概述 随着人们生活水平的提高和科学技术的发展,安全防范的问题引起了越来越多的关注。人们在承受现代文明所带来的高效率、快节奏压力的同时,都希望能拥有一个安全、舒适的家庭环境。因此,越来越多的安防产品应运而生,尤其是蓬勃发展的现代化社区物业管理,通过监控网络把家庭和社区值班室紧密地联系起来,给人们的生活带来了极大的方便。但是,有些社区监控网络并不能完全履行其职责,存在一定的安全隐患。主要原因是目前大多数的监控节点都是采用1个CPU完成所有的功能,包括扫描各传输器模块状态、信息处理、数据显示、报警、
[应用]
(四)单片机系统动态内存分配,任务调度思想
一、内存分配: 1.1 申请一块内存大小定义: #define MEM_0_SIZE (8) //8字节 #define MEM_1_SIZE (16) //16字节 #define MEM_2_SIZE (32) #define MEM_3_SIZE (64) #define MEM_4_SIZE (128) #define MEM_5_SIZE (256) 1.2 设定SIZE大小内存可申请到的内存块最大个数定义: #define MEM_0_COUNT (16) //最大16个内存块 #define MEM_1_COUNT (16) #define MEM_2_COUNT (32) #define MEM_3_
[单片机]
为什么要对单片机系统进行扩展?
单片机应用系统开发时,首先遇到的问题就是存储器的扩展。因为单片机内部的存储器容量一般都比较小,因此,从单片机外部配置外部存储器,包括程序存储器和数据存储器,就成了应用系统的重要工作之一。 此外,单片机内部虽然配置了若干并行I/O接口。但是,当外部设备较多时,原有的几个内部I/O接口就不够使用。所以,在大多数单片机应用系统中都需要扩展输入输出接口芯片,以满足输入输出的需要。
[单片机]
基于AT89C51的单线双机通信协议
  一、绪言   因工作需要,设计一单线双向双机通讯协议。要求主机通过其所带的键盘能控制主机和从机的显示,从机也能通过所带的键盘控制主机和从机的显示,主机和从机键盘所起的控制作用完全一致,显示也完全一致。   另外,从机可以随时脱离主机。当从机从脱机状态连上主机时,要求从机能立即显示主机的键盘信息,即双机显示一致。   二、设计概况   1.整体时序:   2.主机接收数据从机发送数据的时序:   3.主机发送数据从机接收数据的时序:   4.符号说明:   S :开始位   A :响应位   E :结束位   R :读端口   W :写端口   Dx:数据   5.主从机同步原理:   
[安防电子]
多CPU单片机系统设计在社区安防系统中的应用
摘要:本文较为详细地介绍基于多CPU的单片机系统设计思想,并给出它在社区安全防范系统中的应用。 关键词:多CPU 安全防范 系统设计 概述 随着人们生活水平的提高和科学技术的发展,安全防范的问题引起了越来越多的关注。人们在承受现代文明所带来的高效率、快节奏压力的同时,都希望能拥有一个安全、舒适的家庭环境。因此,越来越多的安防产品应运而生,尤其是蓬勃发展的现代化社区物业管理,通过监控网络把家庭和社区值班室紧密地联系起来,给人们的生活带来了极大的方便。但是,有些社区监控网络并不能完全履行其职责,存在一定的安全隐患。主要原因是目前大多数的监控节点都是采用1个CPU完成所有的功能,包括扫描各传输器模块状态、信息处理、数据显示、报警、
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved