为了实现海洋环境信息的大规模、实时地获取与控制,海洋观测系统需要对底层仪器(包括传感器或执行器)组网进行各种参数的获取。
网络化的观测方式,更注重系统性和整体性,通过性能可靠和实时连接的所有观测平台、探测设备、传感器协同观测,实现海洋环境信息共享与交互。但是目前仪器的软件协议和数据格式大多是非标准的而且并不统一,这就给系统构建、扩展、更新和维护等带来很多不便。一方面,对于海洋观测系统的组建来说,各种协议的不兼容直接导致现场布线复杂,容易导致混乱并出错,大大增加了工程任务量;另一方面,对于系统的维护来说,更换系统中的海洋仪器时,几乎都需要技术人员进行手动安装和配置,而海上工作环境比较恶劣,这就增加了人为出错的可能性。
国际上的一些研究机构在上个世纪九十年代就开始研究解决这些问题。这些机构致力于发展能够应用于海洋观测系统中的底层仪器接口和网络应用层接口的技术标准,通过实现海洋仪器的互操作性,以最小的人力和高可靠性进行系统的构建和维护。
1 IEEE 1451
美国国家标准技术研究所(NIST)和IEEE仪器与测量协会传感技术委员会联合从1997年开始推出IEEE 1451系列智能变送器接口标准(Stan dard for a Smart Transducer Interface for Sensors and Actuators),很好地解决了不同厂商之间传感器的互换性和互操作性问题,便于系统的构建与维护,因此成为当前信息化、网络化、智能化海洋观测领域研究热点之一。
制定IEEE 1451标准的目的是开发一种软硬件的连接方案,将智能变送器连接到网络或者用以支持现有的各种网络技术,包括各种现场总线及Internet/Intranet。此标准通过定义一整套通用的通信接口,使变送器在现场采用有线或无线的方式实现网络连接,大大简化由变送器构成的各种网络控制系统,解决不同网络之间的兼容性问题,做到变送器的“即插即用”,并能够最终实现各个厂家产品的互换性与互操作性。
目前国际标准组织ISO和IEC已经接受了IEEE 1451系列标准,将其纳入了ISO/IEC/IEEE 2145X标准体系。
1.1 IEEE 1451标准系统模型
IEEE 1451标准中的网络化智能接口主要分为两个功能模块,如图1所示。
一个模块是网络应用处理器(Network Capable Applicationprocessor:NCAP),它主要负责网络通信、STIM通信、数据转换等功能。NC AP是标准传感器总线与专用网络总线之间的接口,提供网络连接或者网关的功能。这一部分与微处理器集成到一起,在网络化传感器中起控制的作用;
另一个模块是智能变送器模块(Smart Transducer Interface Module;STIM or TIM),它包括传感器或执行器、信号调理器、AD或DA转换器、物理接口以及一系列变送器电子数据表格(TEDS)。该模块能够支持单个或多个通道。它既可与传感器相连也可与执行器相连接。每一个STIM最多可与255个变送器通道相连接。每一个通道实际上就是STIM上的一个变送器单元。
NCAP与网络连接有3种方式:1)IEEE 1451.0超文本传送协议(HTTP);2)IEEE 1451.1标准;3)智能变送器网络服务(STWS)。NCAP与TIM之间的接口被定义为IEEE1451.X物理接口规范,根据不同的应用需求选择不同的子标准接口规范。
1.2 IEEE 1451协议栈结构
IEEE 1451标准经过多年的制定与修改,目前形成了8个子标准,分为面向软件的接口与面向硬件的接口两大部分。
软件部分主要由IEEE 1451.0和IEEE 1451.1组成,通过面向对象模型的概念描述了网络化智能变送器的行为,定义了适应于接入不同测控网络的智能变送器软件接口规范;同时定义了一个通用的功能、通信协议和电子数据表格,可以加强IEEE 1451族系列标准之间的互操作性。
硬件部分由IEEE 1451.2~IEEE 1451.7组成,主要针对智能变送器不同的应用背景与目的,包括点对点(RS-232、UART、SPI等)、多点分布式、混合模式、无线(WiFi,Bluetooth,ZigBee等)、CANopen和RFID通信。[page]
TEDS技术是IEEE 1451最重要的技术革新之一,是使变送器能够像计算机上USB鼠标一样实现“即插即用”功能的关键所在,使传感器具有了自我识别和自我描述的能力。它能够充分描述传感器的类型、行为、性能属性和相关的参数,并将其向终端传送,使终端可了解应用的传感器或执行器的相关参数,并做出相应调整。增加或更换不同的变送器时,只要在TEDS中增加或改变相关的内容即可。不同的子标准定义的TEDS格式并不完全一致,可以根据不同的应用需求进行选择。
TEDS的实现由于受到海洋观测环境的限制以及实现成本等方面的影响,目前主要有硬件实现和软件虚拟实现两种方法。硬件实现上,TED S一般贮存在变送器内置电子存储设备中,也可以采用虚拟TEDS,TEDS相关信息以数据库形式存储在系统中。
1.4 智能变送器Web服务(STWS)
STWS由一系列用于访问IEEE 1451智能变送器的Web服务组成。STWS建立在面向服务架构(SOA)和IEEE 1451.0变送器服务的基础上,并且由Web服务定义语言(WSDL)来描述。STWS WSDL规范被分为6个主要元素:定义、类型、信息、端口类型、绑定和服务。STWS为IEEE 1451智能变送器提供了一个统一标准的Web服务。
STWS有3种存在方式,如图2所示。
1)存在于单独的计算机中,为IEEE 1451智能变送器服务;
2)存在于NCAP中,为基于IEEE 1451的传感器网络服务;
3)存在于集成的IEEE 1451智能变送器中。
通过STWS这个标准方式,我们可以实现IEEE 1451智能变送器在网络服务应用方面(传感器应用)的互操作性。
2 OGC SWE(传感器Web整合框架)
2005年,开放地理空间联盟(OGC)提出了一种革命性的开放标准架构——传感器Web整合框架(SensorWeb Enablement,SWE),目标是能够通过Web发现、访问、应用所有类型的接入Internet的传感器资源(包括硬件资源和数据资源),为构建“即插即用”的基于Web的传感器网络提供一个标准的平台。SWE是一个全新的标准框架,给海洋界提供了海洋观测系统发展的新机遇,而且还在不断地修订和完善中。
2.1 概念与功能
通常我们所说的传感网(sensor network)是一个计算机可访问的网络,它是由地理空间上分布的许多传感器组成,用以监测不同地区的环境因素,如温度、声音、震动、压力、物体的运动或者一些污染情况。而传感器Web是指通过Web可访问的传感网,使用标准协议和应用程序接口(API),我们可以通过Web访问接入网络的传感器数据。
SWE致力于实现传感器观测数据的发现、交换和处理,以及观测系统的任务分配,其想实现的功能主要包括:
1)发现满足用户及时需求的传感器系统、观测数据以及观测方法;
2)确定传感器的性能和测量质量;
3)访问传感器参数;
4)检索以标准方式描述的实时或存档的观测数据;
5)传感器采集数据的任务分配;
6)通知由基于某些标准的传感器或传感器服务发布的告警。
2.2 体系结构
SWE能够完善海洋观测系统的方法主要有两种:一是以标准形式描述传感器以及观测数据;一是定义标准的网络服务接口。
为了支持上述方法,OGC—SWE已经开发并测试了如下规范:
1)观测与测量(O&M)——标准概念模型,采用XML架构,用于描述存档的和实时的底层传感器观测数据。O&M标准可以实现海洋仪器之间的数据互操作。
2)传感器建模语言(SensorML)——标准概念模型,采用XML架构,用于描述传感器、系统和工作流程;对于传感器的发现和定位,海洋观测网络的配置,传感器观测数据的处理等提供必需的信息。
3)变送器置标语言(TML)——概念模型,采用XML架构,用于描述变送器内部以及出入海洋观测系统的实时数据流,为Web信息交互提供了统一的标准格式。
4)传感器观测服务(SOS)——标准Web服务接口,用于请求、寄存、过滤和检索观测数据以及传感器系统信息。SOS在客户端与观测数据库之间起中介作用。
5)传感器规划服务(SPS)——标准Web服务接口,用于响应用户需求,分配传感器任务。SPS在客户端和传感器收集管理环境之间起中介作用。
6)传感器告警服务(SAS)——标准Web服务接口,用于发布和订阅来自传感器的警报。
7)Web通知服务(WNS)——标准Web服务接口,用于异步传输来自SAS、SPS网络服务和其他服务的信息或警报。
上述规范是SWE的核心,能够为海洋观测系统提供大量统一的Web服务接口,为满足终端用户需求的传感器自识别、观测数据的获取、数据交互、任务分配以及告警信息发布等功能的实现提供了具体的解决方案。
2.3 传感器建模语言(SensorML)
传感器建模语言是SWE的关键组成部分,并且提供了标准传感器模型和XML代码,用以描述与传感器相关的工作过程,包括传感器系统的测量和测量后加工处理。所有的处理过程都定义了它们的输入、输出、参数、方法和相关元数据。它提供的是传感器系统的功能模型,而并不是系统硬件的详细描述。
可扩展标示语言(XML)架构可以被用于发布传感器性能、定位和接口的正式描述。Web客户端和服务器能够分析并翻译XML数据,实现传感器的自动发现,并评估这些传感器的特性。另外,如果预先对海洋观测系统不了解,这些信息也使应用软件能够定位和处理底层传感器数据。
在XML架构中,针对不同的目的,传感器控制接口与上层系统能够自动通信:确定传感器的状态和位置信息;发送命令到传感器或传感器平台;访问存档的或实时数据。通过一个专有的或自定义的接口,或者通过IEEE 1451标准接口,都能实现基于Web的应用与底层传感器系统的连接。
2.4 传感器接口描述符(SID)
传感器接口描述符(SID)由德国的52North公司开发,被看做OGC—SWE的一部分。对于侧重于Web服务的SWE来说,SID是实现观测系统底层传感器互操作性的一种可行方法。它以一种标准方式描述传感器接口以及它的命令和数据响应格式,并对这种描述进行解释。对于接口的描述,我们需要使用扩展的SensorML。对于SID来说,SID翻译器的使用是非常重要的。SID翻译器读接口描述,然后会依据相应的信息生成对于仪器的命令。原则上存在两种运行模式:
1)SID翻译器周期性地向仪器发送命令,读出测量数据并将其发送到SOS;
2)SID响应SWE客户端发送的请求,生成相应的专有仪器命令。
使用SID的一个海洋观测系统模型如图3所示:
[page]
3 PUCK协议PUCK协议全称为智能化可编程水下连接器(Programmable Underwater Connector with Knowledge),是一种简单的命令协议,由美国的MBARI(Monterey Bay Aquarium Research Institute)提出,目的是简化海洋传感器网络的集成和维修。目前大多数传感器网络需要技术人员进行手动配置以确保软件部分与仪器紧密联系在一起。这些配置步骤非常耗时并且容易出错,尤其在一些恶劣的环境下必须进行手动配置时,更是增加了出现人为出错的可能性。使用PUCK协议后,当仪器被安装时,系统会自动地识别这个仪器,我们称之为“即插即用”。目前PUCK协议已经发展得非常成熟并且被OGC组织所接受,成为了一个OGC标准。
PUCK协议的优点如下:1)简单易懂,从仪器自身检索相关的信息;2)制造商们在固件中使用PUCK协议,而不用外接电缆和连接器;3)兼容已存的仪器协议;4)不限制负载的格式和内容;5)适用于RS-232、RS-485和以太网接口的仪器。
3.1 PUCK信息载体
PUCK协议在PUCK存储器中定义了一个小型标准的“仪器数据表”,能够在每个使用PUCK协议的仪器中被检索到。这个数据表的元数据包括一个唯一的标识符(UUID),以及制造商和型号代码。这些元数据可以作为更加大量的仪器信息的指针。例如,如1451 TEDS或SensorML文档这样的仪器描述文档被存储在一个外部定义的数据库中,而UUID就是打开这个数据库的钥匙。所有使用PUCK协议的仪器必须提供数据表。
此外,PUCK协议还在PUCK存储器中定义了一个可选的“PUCK负载”,其中包括运行这个仪器所需要的额外信息,如仪器驱动代码,以及像SensorML这样的元数据。就驱动代码而言,我们需要注意的是,代码并不是由仪器来执行,恰恰相反,代码是由主机通过PUCK检索到并执行。PUCK并不限制负载内容,其由观测系统的开发人员和使用者来决定。
3.2 PUCK协议的发展
PUCK v1.4版将此协议的应用从RS-232扩展到以太网接口——“IP PUCK”协议,其中包括零配置网络(Zeroconf)的应用。这种应用使得在IP网络中安装和识别传感器变得更加简单。
4 标准协议之间的分析比较与应用实例
4.1 IEEE 1451与OGC SWE之间的对比
由上文可知,对于在海洋观测系统中的应用,IEEE 1451与OGC SWE都是综合性标准,都能够独立完成从底层传感器到顶层web服务的系统标准化设计,但是二者之间仍然存在很大的差别。IEEE 1451的侧重点是海洋观测系统中底层仪器接口的标准化,实现变送器的“即插即用”;而SWE侧重于海洋观测系统中的Web接口服务,实现数据传输和处理的实时性。
对于传感器特性的描述,IEEE 1451与OGC SWE分别提供了各自的元数据框架——TEDS与SensorML。TEDS描述了底层传感器的基本功能(硬件、校准、感测、属性),但它不能为逻辑意义上传感器提供所有的额外描述信息,它也不能描述高层的数据处理,得转换为应用层所需的数据类型;而SensorML适用于高等级应用,并且提供了一个更加综合的模型,其中包括如传感器数据采集与处理这样的复杂特性,正好可以克服TEDS这两方面的缺陷。因此,TEDS到SensorML之间的映射问题是目前的焦点问题之一,如果能够有效地结合这两种标准,建立全新有效的标准化海洋观测体系将会事半功倍。
但是,这两种标准仍然存在如下问题:1)体系庞大,内容非常复杂,人们理解起来非常费时费力;2)如今嵌入式处理器应用越来越广,低成本和低功耗的考虑越来越多,因此人们可能只能执行标准的一部分;3)使用标准时,人们不得不抛弃不能实现标准的固件,而这些固件往往代表着资金和时间的投入,造成这个问题的最主要的原因是制定标准时没有处理好与已有标准协议的关系:4)IEEE 1451与SWE仍在修订和完善,标准的修订版本必须确保能够“向后兼容”,并且仪器固件也要升级以保持和最新标准的兼容。
4.2 PUCK协议与其他标准之间的对比与存在问题
与IEEE 1451和SWE标准相比较,PUCK协议是一种标准本地仪器协议,只用于实现底层仪器的互操作性。相较前两者而言,PUCK协议非常简单易懂,最重要的是,PUCK与IEEE1451、SWE能够兼容共存并为其提供支持,如图4所示。
PUCK协议仍然存在如下问题:1)虽然相对简单易懂,但是使用PUCK的同时,人们仍然需要仪器驱动;2)PUCK协议本身并不支持仪器互操作性;3)随着上层协议的升级,执行这些协议的PUCK负载也必须随之升级。
4.3 标准的实际应用
IEEE 1451标准处理传感器原始数据,OGC—SWE将经过处理的数据传递到Web应用上。正确地结合使用SWE与IEEE 1451标准能够准确无误地将传感器信息从物理传感器传递到Web应用上。PUCK协议能够支持其他标准,并简化海洋仪器到海洋观测系统的集成。因此,如何正确合理地集成SWE、IEEE 1451和PUCK等标准协议,是目前国际上的焦点问题。
MBARI、OGC与由NIST领导的传感器标准协调工作组(SSHWG)中的一些成员共同开发了一个互操作性仪器试验台,演示了IEEE 1451、OGC SWE与PUCK协议的综合使用,实现了快速采集、融合与评估不同仪器和观测平台的数据。
5 结束语
随着海洋观测技术的发展,网络化观测模式成为当前的热点,更加注重系统性、兼容性、交互性,对探测设备和传感器要求具有“即插即用”的特点。变送器底层接口标准可减少硬件方面的复杂度,实现海洋仪器的互换性,网络应用层接口标准可实现数据的共享与交互,从而满足海洋观测系统的扩展、更新维护等保障需求。
智能海洋传感器联盟(SOSC)等国际海洋组织正在大力推广IEEE 1451、SWE、PUCK等标准协议,这些年已经取得了很大的发展。目前这些标准已经成功地应用于国际上的海洋观测系统中,而我国海洋观测领域在此方面还是空白状态。我国的海洋科研人员如果能够在海洋观测系统的构建、改进上借鉴这些国际上先进的接口标准,将会大大提高我国海洋观测系统的信息服务效率和技术支撑能力。