传感器智能化及电子数据表格更新方式的研究

2014-01-05 05:52朱晓博马尚昌张素娟杨笔锋
成都信息工程大学学报 2014年1期
关键词:串口程序传感器

朱晓博, 马尚昌,2, 张素娟,2, 杨笔锋

(1.成都信息工程学院电子工程学院,四川成都610225;2.中国气象局大气探测重点开放实验室,四川成都610225)

0 引言

随着传感器技术的发展,传感器网络化与智能化成为智能传感器发展的一种趋势,但由于不同厂商生产传感器的网络接口协议不同使各类传感器没有统一的标准,增加了用户使用和维护的成本。因此,为了方便传感器联网,需要一种通用的传感器网络接口标准,使不同厂家生产的传感器可以实现较好的通用性,这也是智能化传感器发展的关键。IEEE 1451系列标准为传感器的网络化和智能化提供了一种具体通用的框架,能够使不同厂家生产的传感器之间具有即插即用以及立即联网的功能。

1 IEEE 1451标准简介

IEEE 1451是一个智能传感器接口的标准族,定义了一系列为使智能传感器连接到MCU、仪表系统以及现场控制网络的开放、通用并独立于网络的标准,提供了一系列基于监测和控制应用的有线或者无线的协议[1]。标准将智能传感器分成两个模块,即智能变送器模块(STIM)以及网络适配器模块(NCAP)[2]。STIM由传感器和微处理器结合而成。充分利用了MCU的运算和存储能力,可对传感器的数据进行处理,包括对测量信号的调理、自校正以及自补偿等,MCU是智能变送器的核心。NCAP是将设备连接到网络上的通信接口装置,NCAP用于实现对STIM 的控制,使其具有连网的功能,并实现数据存储、处理、以及TEDS中规定的校准引擎等功能。在IEEE 1451标准族中,IEEE 1451.2标准规定了一个10线的TII接口,用于STIM与NCAP之间的互连,对电子数据表格(TEDS)进行了定义,并给出详细的数据格式,为传感器方便的应用到多种网络提供了方便,使传感器能够具有“即插即用”兼容性[7]。文中参照的标准主要为IEEE 1451.2标准。

TEDS的设计是整个IEEE 1451协议族重要的创新以及精华所在,能够使传感器同时具有即插即用的兼容性。NCAP通过与STIM之间的数据交互获取TEDS的内容,并通过协议规范实现智能传感器的自动识别,同时实现对STIM的配置以及传感器的即插即用。在IEEE1451.2标准中,TEDS可分为8个可寻址的单元部分,其中前两个TEDS即Meta-TEDS和Channel TEDS是必选且为只读,其他是可选的[1]。TEDS的具体定义如表1所示。

数据校准是传感器数据采集的重要一环,能够较好地提高传感器测量数据的精度。IEEE 1451.2标准为传感器数据的校准提供了一种方式,即在TEDS中存储校正系数,使用校准软件结合校正TEDS中的校准参数即可对传感器数据进行校准。Calibration TEDS中定义的校正引擎就是用特定的数学函数将传感器的数据(可以是来自一个或多个STIM或者来自其他途径)融合在一起,获取多项式系数,并通过相应的数学公式计算出比较精确可信的传感器数据。校正引擎既可以在NCAP中实现,也可在STIM中实现。校正引擎一般采用多项式作为校准函数,若校准函数多项式次数较高,则不利于实现,因此校正引擎使用分段多项式函数。

表1 IEEE 1451.2中对 TEDS的定义及其内容

2 智能传感器系统结构与实现

2.1 系统总体结构

系统采用的结构模型是基于IEEE 1451.2的智能传感器模型[3]。整个系统包括NCAP模块、数据接口、以及由各种传感器和相应的STIM模块。网络模块NCAP通过TII接口与STIM模块连接,STIM负责前端传感器、ADC和信号调理模块的控制和管理,完成数据采集、预处理、特征抽取等功能。每个STIM根据不同需要可以挂接一种或多种传感器,配合TEDS来实现模块的即插即用。NCAP通过TII接口实现对STIM的管理与控制,同时实现网络通信、数据处理、数据校正以及存储等功能[5]。TII模块是基于IEEE 1451.2标准的变送器独立接口,该模块是实现ST IM与NCAP之间通信与即插即用的关键。系统结构如图1所示。

图1 系统结构模型

2.2 STIM结构与实现

与传统的STIM模块比较,系统中的STIM模块能够独立作为一个智能设备工作。在不需要联网和做大数据量存储时,STIM模块独立使用,此时校准引擎在STIM模块实现,并且STIM可以挂接各种通信模块实现与终端的通信;在连接NCAP后,STIM将校准引擎以及与终端通信的工作交给NCAP实现。

系统中STIM模块使用的 MCU为STM32。STM32是意法半导体基于ARM CortexTM-M3的32位嵌入式处理器,主频可达72MHz、90DMips。具有丰富的片内资源以及强大的处理性能,且价格仅与8位单片机相当,性价比极高。其内部的Flash以及丰富的外设为实现ST IM的基本功能及扩展功能提供了丰富资源。系统选用的STM32F103RBT6具有128K的片内FLASH,20K的SRAM,2个SPI,3个串口,2个12位ADC以及其余丰富的片内外设,其中片内FLASH既能存储较大体积的程序,又能作为存放 TEDS和通信协议栈的空间,SPI可用来实现TII功能,3个串口使STIM在实现支持多种传感器信号输入的同时具备挂接各种通信模块的能力。STIM模块的结构如图2所示。

图2 STIM模块结构图

传感器输出信号的差别较大,比如信号种类,信号幅度、噪声源等各不相同,因此不同的传感器的接口电路需要进行不同的前端调理。首先确定传感器的信号类型、信号范围、测量精度等参数,确定传感器接口标准。在设计实现上,通过硬件电路设计预留各种类型传感器信号的输入接口和6路拨码输入用于选择传感器;然后通过程控开关将不同种类的信号送入不同的内部通道;利用软件判别和程控增益放大器将不同幅值的信号放大至合适的范围;通过程序实现对各种传感器数据的高精度采集,完成各种传感器接口信号调理电路的重构。

2.3 NCAP结构与实现

系统中NCAP采用STM32+μ CosII+LwIP的方式实现。其中主控芯片选用STM32互联型的STM32F107VCT6,STM32F107具有 CAN2.0B以及USB OTG等接口,并增加以太网10/100 MAC模块,支持MII和RMII,因此,只需一个外部PHY芯片即可实现一个完整的以太网收发器。LwIP是瑞典计算机科学院的一个开源的轻量级TCP/IP协议栈。具有内存使用少和代码体积小等优点,非常适合用在小型嵌入式系统中。NCAP模块的结构如图3所示。

在NCAP中需要实现一个TCP并发网络服务器[13],用于远程PC终端访问,计算机可通过向NCAP发送控制指令来控制NCAP执行相应的功能,如读取某传感器数据,历史数据下载,更新TEDS等操作。另外,NCAP还嵌入了一个Http Web Server,远端PC可通过网页访问NCAP并发送指令。

图3 NCAP模块结构图

2.4 TII接口实现

网络智能化传感器的STIM模块和NCAP模块之间是相互独立的,需要一个桥梁连接。IEEE 1451.2定义了一个10线制的物理接口TII用于STIM与NCAP之间的连接和通信,用于实现二者之间的数据交互、控制信息和状态信息的传递以及时钟同步,NCAP还通过TII给STIM模块的接口提供了一个电源[4]。表2为TII接口的物理线路。

表2 TII接口物理线路

TII接口以标准SPI串行通信方式为基础,所以具体实现的时候用STM32的SPI接口配合IO口和外部中断来实现。NCAP通过TII给ST IM提供电源以及一个通用的地线。STIM具有独立的电源模块,但是TII接口的电源只能由NCAP提供,也就是说STIM独立使用时TII接口不起作用。STIM模块TII接口程序流程如图4所示。

NSDET用来检测STIM是否连接到NCAP或从NCAP移除。在STIM上NSDET与地线即COMMON脚连接到一起。在NCAP上NSDET与POWER脚接在一起,NCAP可以读取NSDET的状态。在STIM刚与NCAP的连接时,NSDET上的信号可能会出现抖动,需要一些时间稳定。STIM上电初始化需要一小段时间。当NSDET稳定在低电平状态而NACK引脚准备好的时候,NCAP可以通过NIOE脚向STIM传送数据的信号。当数据传送完成时,NCAP将NIOE拉高,而STIM通过拉高NACK回应NCAP。

2.5 TEDS内容

系统选用TEDS中的Meta-TEDS、Channel TEDS、Calibration TEDS以及 Industry Extension TEDS部分,其中前2个TEDS每个传感器都必须具备,Meta-TEDS用于描述STIM的参数和全部通道的共同信息,如数据结构、通道数等信息;Channel-TEDS用于规定每个通道的参数,如单位、量程、校准模型(如果相应通道存在校准TEDS)等信息;Calibration-TEDS是否需要视传感器而定,用来存放校准参数等信息,如分段数、分段边界、多项式系数等信息,并可随时供传感器对各个通道的原始数据进行校正运算,比如温湿度传感器输出信号受环境影响较大,需要对采集数据进行校准,则相应通道存在Calibration-TEDS;Industry Extension TEDS中存放用户以及设备维护人员需要的一些扩展信息,如最后维护人员姓名、联系方式、最后维护日期等参数。TEDS存储在STM32片内Flash的最后2K字节的区域。

3 系统在线升级方式实现

3.1 STM32的IAP简介

IAP是一种在程序中编程的机制,可以通过串口、CAN总线、以太网、Zigbee等有线或无线的接口对MCU内部的程序进行动态更新,与比较常用的ICP与ISP技术有很大区别。ICP在单片机编程中较为常用,需要机械式地连接下在线,通过仿真器烧写程序;而ISP技术则是在单片机中内置了一个bootloader程序,开机会先进入bootloader,通过程序的引导对单片机进行烧写。ICP和ISP都需要连接下载线等机械式操作,若产品的外壳没有预留相应接口或安装在狭窄空间,更新则无法进行。但若引进IAP技术,则完全可以解决上述问题,还可以实现远程编程和无线编程。STM32微控制器具有大容量的片内可编程Flash,同时具有丰富的外设通信接口,因此可以方便地实现IAP技术。

图4 STIM模块T II接口程序流程图

图5 STM32内部Flash空间规划

图6 IAP程序流程图

3.2 IAP方式实现TEDS以及程序的在线更新与升级

既然IAP方式可以把程序写到某个地址然后再跳转到该地址执行程序,那么只要存储空间足够大,在一片微控制器上可以实现存储多个程序文件并动态在各个程序文件之间跳转,可以在Flash空间内专门预留一片地址作为存储TEDS的空间,其余空间作为程序与数据存储地址。STM32F103RBT6具有128K字节的Flash,空间规划如图5所示。

IAP程序是整个系统的引导程序,系统开机首先运行的是IAP程序,此时若无操作,则8秒后系统自动跳转到系统主程序的起始地址运行主程序,可以通过输入选项选择需要执行的功能。下载用的程序文件需要“.bin”格式。程序流程图如图6所示。

首先系统初始化时钟、终端、USART以及定时器等外设,然后开启定时器2和定时器3,其中定时器2主要用于给写Flash定时,定时器3用来给自动运行剩余时间计时。功能选择有3种类型:更新程序、运行程序和擦除Flash。用串口助手测试程序的界面如图7所示。

4 系统实验结果

分别采用温度、湿度、风速、风向、气压、雨量传感器接入ST IM模块测试系统,其中温度湿度采用一体式温湿度传感器HMP45D,风速风向传感器采用模拟传感器信号(风速用频率信号,风向用0~2.5V电压信号),气压传感器使用PTB220,雨量传感器采用模拟传感器信号(外部中断计数)。经系统实测,STIM与NCAP模块能够实现正常的数据交互与指令收发,NCAP端接收到的数据中经校准后的传感器测量值与计算值相差达到标准要求,即温度误差≤0.2℃,湿度误差≤3%(相对湿度在80%以下),湿度误差≤5%(相对湿度在80%以上),风速误差≤0.5m/s,风向误差≤5°,气压误差≤0.3hPa,雨量误差≤0.4mm。系统目前使用的传感器自识别的方式为拨码盘切换,需要人手动操作,今后系统需在这个方向有所改进,提高系统的自适应与自识别能力。

5 结束语

智能化传感器是传感器发展的重要方向,对标准化的智能传感器的研究具有很强的现实意义,而IEEE 1451标准对智能化传感器的设计提供了一个通用的实现方式。根据传感器应用的现状、特点及发展趋势,设计一种符合IEEE1451标准的智能传感器。该系统集数据采集、数据处理、数据传输、在线更新与自维护功能于一体,并且能够实现系统的远程升级与管理,实现传统传感器的网络化、智能化,具有很强的应用前景。

[1] 李威,李治,张颖,等.IEEE1451协议中电子数据表格(TEDS)的研究[J].人工智能及识别技术,2008,(5):334-336.

[2] 罗双胜,吴仲城,申飞.基于IEEE1451.2的机器人传感器接口STIM的设计[J].自动化与仪表,2008,(3):37-40.

[3] 李文,叶湘滨,杨雪.IEEE1451.2的智能变送器模块设计[J].单片机与嵌入式系统应用,2009,(2):64-67.

[4] 崔书平,杨志家,吕岩,等.传感器接口标准中NACK响应协议研究[J].微计算机信息,2008,24(1):126-127,133.

[5] 吴中杰,林君,李治,等.IEEE1451标准智能传感器中网络应用处理器的实现[J].传感器与微系统,2006,25(6):85-88.

[6] 叶晓慧,张森,吴媛媛.基于 IEEE1451接口的智能网络传感器设计[J].电子器件,2007,30(5):1870-1873.

[7] ISBN 1-55937-963-4,IEEE Standard for a Smart Transducer Interface for Sensors and Actuators-Transducer to Microprocessor Communication Protocols and Transducer Electronic Data Sheet(TEDS)Formats[S].

[8] Wilfried Elmenreich,Stefan Pitzek.Smart Transducers-Principles,Communications,and Configuration[J].Proceedings of the 7th IEEE International Conference on Intelligent Engineering Systems,2003,(3):510-515.

[9] 陈峰,孙同景,时延妮.基于IEEE 1451和TCP/IP协议智能传感器的研制[J].工业控制计算机,2006,19(5):39-40.

[10] 朱小刚,范顺治.基于IEEE 1451.2网络化智能传感器的应用研究[J].现代电子技术,2007,22:20-22.

[11] 来庆宇,巢明,唐祯安.基于IEEE 1451标准的智能变送器接口电路[J].信息与控制,2006,35(2):270-274.

[12] W.Richard Stevens.TCP/IP详解——卷2:实现[M].北京:机械工业出版社,2004.

[13] 毛期俭,丁杰,余琦.基于TCP/IP的串口数据流传输的实现[J].中国数据通信,2003,(11):47-53.

[14] 殷伦,王英民.串口联网技术在远程设备控制中的应用[J].电声技术,2007,31(12):34-37.

[15] 周鹏,黄灿,江楠.串口与网络结合的通信方案的研究[J].计算机与网络,2011,(15):68-70.

猜你喜欢
串口程序传感器
康奈尔大学制造出可拉伸传感器
浅谈AB PLC串口跟RFID传感器的通讯应用
简述传感器在物联网中的应用
“传感器新闻”会带来什么
试论我国未决羁押程序的立法完善
跟踪导练(三)2
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索