为了给传感器配备一个通用的软硬件接口,使其方便地接入各种现场总线以及Internet和Intranet,从1993年开始,美国国家标准技术研究所和IEEE仪器与测量协会的传感技术委员会联合制定了智能传感器通用通信接口标准,即IEEE1451的智能变送器标准接口。针对变送器工业各个领域的要求,多个工作组先后建立并开发了接口标准的不同部分。
1 IEEE1451标准族介绍
IEEE1451是一个智能传感器接口的标准族,它定义了一系列为使智能传感器连接到微处理器、仪表系统和现场控制网络的开放、通用、独立于网络的标准[1],提供了一系列基于监测和控制应用的有线或无线的协议。IEEE1451接口标准结构如图1所示[2]。
在IEEE1451标准族中,IEEE1451.0标准定义了传感器和执行器多种通用配置命令集,如点对点、分布多点和无线的配置,以适应各种应用的需要。而且还规定了通用变送器电子表(TEDS)的格式,目的在于提高IEEE1451系列标准之间的互操作性,简化针对网络适配器(NCAP)和智能变送器接口模块(STIM)使用不同物理层传输介质连接相关标准制定的工作难度和工作量。
IEEE1451.1:主要定义了NCAP的信息模型,这一标准为NCAP规定了一个公共的上层对象模型,网络结构和变送器模块类型不同,其对象模型就有不同的版本。一个简单的编程模型封装了传感器硬件实现的细节,规定了不同NCAP与STIM物理层版本在具体实现时的软件接口规范。
IEEE1451.4:主要针对于传感器和变送器的混合模式通信协议及传感器电子数据表格式。混合模式接口的智能型传感器定义了一种为传统模拟模式的传感器和变送器增加自我识别技术的机制。
IEEE1451.5:定义了无线传感器通信以及TEDS格式,定义了无线变送器模块WTIM(Wireless Transducer Interface Module)与NCAP之间通过无线方法建立连接的有关事项。
2 系统概述
本系统的设计背景为远程环境检测。考虑到设备主要应用在野外,地形比较复杂, IEEE1451.2-4标准都是基于有线连接的,连线困难。而IEEE1451.5标准是基于无线传输技术的,也就是NCAP和WTIM之间的通信是基于无线传输技术,可以节省成本,而且还方便今后对系统的升级改造。但本系统的TIM部分和WTIM部分采用的是IEEE1451.4标准的MMI接口。因为MMI允许TEDS的数字信号和传感器的模拟信号隔离传输,可以很方便地将传统传感器改造为符合标准的智能传感器。系统框图如图2所示。
本系统包括三个部分:(1)变送器接口模块(TIM)。该部分的主要功能是采集传感器的模拟信号,并与TEDS的数字信号通过IEEE1451.4的标准MMI接口传送到控制器;(2)无线变送器接口模块(WTIM)。该部分包含一个控制器、一个无线收发器和MMI(Mixed-Mode Interface)接口。MMI接口接收TIM传来的信息并对其进行处理,将处理完的信息传给无线发送设备,由后者发送出去;(3)网络适配器NCAP。该部分主要由无线收发设备、控制器和DTU设备组成。无线收发设备收到WTIM发送的信息后传送给处理器,处理器做相应处理后通过相应的网络协议将数据发送到远程终端。
2.1 硬件设计
本设计选用STM32系列单片机作为各部分的主控制器。STM32 是意法半导体基于ARM CortexTM-M3 的32 bit嵌入式处理器,具有运算速度快、外设资源丰富等特点,而且其价格仅与8 bit单片机相当,性价比极高。因此本设计选用该芯片。
IEEE1451.5标准的目标是为使用不同通信技术的无线传感器提供一个统一的接口,采用已经成熟的无线通信技术作为接口标准,并不是开发一种新的无线通信技术,而是基于该标准的无线传感网络接口在WTIM和 NCAP之间定义了多种无线通信方式。目前,其主要的通信协议有三种:IEEE 802.11协议、Bluetooth协议和ZigBee协议。从三者的开发成本、传输距离、速度等各个方面比较,本系统选用了由ZigBee技术来构建无线传感器网络[3-4]。
本设计选用TI公司生产的符合ZigBee技术的CC2530射频模块。该芯片是一款真正的系统芯片(SoC)CMOS 解决方案,这种解决方案能够提高性能并满足以ZigBee为基础的2.4 GHz IAM波段应用对低成本、低功耗的要求。
2.2 操作系统
由于本系统的各部分任务比较多,所以软件需要使用嵌入式操作系统。应用比较广泛的有以VxWorks、?滋C/OS等为代表的国外开发的操作系统,也有以RT-Thread为代表的国内开发的操作系统。国外的操作系统虽然应用比较广泛,但费用也比较高,使成本加大。
而国内开发的RT-Thread是一个开放源代码的实时操作系统,并且商业许可证是非常宽松的实时操作系统。采用面向对象风格的设计是RT-Thread一个很大的特点,但它又不像eCOS操作系统那样纯粹使用C++来实现,而是采用了一种C编码的面向对象编程。面向对象设计更适合于人类思考问题的特点(例如继承),可以让具备相同父类的子类共享使用父类的方法,这样可以很方便地创造更多的函数。对象的好处在于封装,因为当一个对象封装好了并测试完成后,基本上就代表这个类是健全的,从这个类派生的子类不需要过多考虑父类的不稳定性[5]。