一种面向环境监测的多传感器协议转换方法

2017-09-14 06:58夏辉钱博
科学中国人 2017年24期
关键词:误码率通信协议传输速率

夏辉,钱博

沈阳理工大学信息科学与工程学院

一种面向环境监测的多传感器协议转换方法

夏辉,钱博

沈阳理工大学信息科学与工程学院

在使用多种不同协议的传感器对被监测环境进行全面监测评估时,不同协议无法得到有效统一。本文提出了一种面向环境监测的多传感器协议转换方法。对总体框架结构、协议栈的逻辑结构和数据包结构进行了设计。采用多线程任务实现了被检测环境的数据采集和传输,使多种通信协议得到转换与融合,并对系统传输误码率进行了分析,验证了系统的性能。

协议转换;协议栈;数据包结构;STM32

1.引言

近年来,随着通信网络技术和智能技术的不断发展,越来越多的智能设备出现在了日常的生活和工作当中,为物联网、智能家居[1]等发展建立了前提和基础。采用计算机技术、网络通信技术及自动化技术相结合的具有自动检测、调节与控制、自动监测环境及通信功能的智能设备,已经逐渐被应用到了工作与生活中。

文献[2]在Visual Studio下,用C#实现了RS232协议与TCP/IP协议的转换。文献[3]提出一种基于ARM9平台的嵌入式系统来实现接口转换。在μCLinux下进行开发,通信遵守modbus协议,实现了在硬件UC-7101与上位机网络数据的SD卡检索和正确及时传输。虽然这些设计都很好的实现了设计的要求和功能,但是都只采用了单一协议转换方法,无法适用存在多种传感器协议的应用环境,在一定程度上造成了成本资源的浪费和通信效率的低下。研究支持多通信接口、通用性好和实时性高的多协议转换[4]系统,不仅可以同时进行多种协议的转换,提高通信的效率,还大大降低了人力、物力。

综上,为解决在不同环境中使用多种具有不同协议的传感器与以太网互联的问题,本文提出了一种嵌入式多传感器协议转换方法,用于家庭和工厂仓库的环境监测。

2.多协议转换系统架构

2.1 总体设计

总体模型如图1:模块一和模块二分别模拟两个不同场景——家庭环境和工厂仓库环境,主要对家庭和仓库的安全环境进行监测,如温湿度、光照、有害气体等。每个场景中有以STM32[5]为中心处理器的多协议转换系统,采用RS232、RS485、IIC等通信协议的传感器设备连接到STM32处理器上,转换系统对RS232、RS485、IIC等通信协议进行转换、封装、融合通过以太网连接到上位机。

系统对多种不同协议类型的数据进行处理,接收来自接口设备的数据流,并对其进行格式转换、封装、融合,使之成为可以在以太网中传播的数据帧;对来自以太网的数据帧进行解析,并转换成与各接口协议相匹配的数据帧送达响应设备。

2.2 传感器数据位及协议分析

针对工厂仓库和家庭环境的安全防护的应用,本系统涉及的传感器有温湿度传感器、一氧化碳传感器、光照传感器、二氧化碳传感器和声音传感器等,数据信息如表1:

表1 传感器数据信息

温湿度传感器采集的数据中温度、湿度数值各占8bit。一氧化碳传感器的采集数据中一氧化碳浓度值占16bit。光传感器的光照强度占24bit。声音传感器的分贝值占8bit。二氧化碳传感器的二氧化碳浓度值占16bit。

系统涉及应用场景中的传感器采用的通信协议主要有RS232、RS485和IIC协议,所以本文中的协议转换主要针对RS232、RS485和IIC协议与TCP/IP协议之间的转换。

3.多协议转换的实现

3.1 协议栈设计

本文对嵌入式协议栈进行了设计,协议栈采用了分层结构,并对传统的协议栈进行了简化。协议栈的结构如图2。

图1 总体设计模型

图2 协议栈逻辑结构

IIC、RS232、RS485接收驱动负责对节点设备的数据进行接收,IIC、RS232、RS485协议处理负责对数据帧进行处理,提取出有效数据。以太网接收驱动将提取出的有效数据进行封装处理并发送出去,保证数据链路层的有效传输。IP处理、TCP处理分别对数据段添加IP首部、TCP首部并将数据帧通过网络层发送出去。IP发送负责将IP数据报发送给下一层,同时会受ICMP、TCP、SOCK⁃ET API的调用。

3.2 数据包结构设计

发往以太网模块之前需将各传感器数据进行打包封装,统一转换成串行协议。数据包格式如图3,由包头、ID、数据长度、数据段、校验码和包尾等字段组成。将传感器数据按图3的格式进行封装,然后再发送到以太网模块按以太网标准帧格式进行封装。传感器中提取的有效数据由Id、标识符和采集数据组成,Id表示传感器节点地址,标识符用于对传感器数据进行标识,数据部分为传感器采集的数据。

本系统中的传感器最大有效数据位占31bit,如光照传感器,其中光照强度占24bit,标识符占4bit、Id占3bit。所以在数据包结构中的数据段设为0到4个字节。对于一个字节中没有被有效数据占用的位用0填充,用作预留位。根据被检测环境的需求可以添加一定数量的传感器节点,各字段的容量也可以进行适当的扩充。

图3 数据包格式

(1)包头:表示一个数据包的开始,本协议中包头占一个字节,用0x0A表示。

(2)ID:表示整个ARM监控节点的地址,占一个字节,即本系统最大可以容纳256个监控节点。

(3)数据长度:用于表示数据段的大小,占用一个节点。

(4)数据段:它包含了传感器器节点的Id、数据标识符和传感器采集的数据。

(5)校验位:用于对整个数据包中的数据进行校验,占一个字节。

(6)包尾:表示数据包的结束,占一个字节,用0x0F表示。

3.3 测试结果与分析

利用网口调试助手调试接口参数,并接收传感器数据,向监测节点发送请求数据。图4为经过协议转换后上位机接收到的数据,数据采用16进制格式,0x0A和0x0F分别是数据包的包头和包尾,01是监测节点的ID,04为数据长度,表明数据占4个字节,11 1B 02 25为传感器的有效数据,53为校验和。

图4 上位机接收的数据

对系统的准确性进行了测试。图5为传输的误码率,由于TCP/IP在传输速率上远高于RS232、RS485和IIC,所以本文主要对RS232/485、IIC的传输速率进行设置,通过降低传输速率来测试接口的极限情况。

图5 传输误码率

每隔100ms发送一条数据帧,每10000条数据统计一次,分别测试不同传输速率下的误码率。从误码率上看,当低速接口的传输速率降低到4800bps的时候,TCP/IP接口与RS232、RS485接口之间的误码率为0.33%和0.31%,TCP/IP接口与IIC接口之间的误码率为0.28%。主要原因是,两端接口的传输速率相差过大时,会引起缓存区溢出,导致数据传输错误。这里可以通过加大缓存区存储空间和降低数据包的生存时间来调整。

4.总结

本文提出的面向环境监测的多传感器协议转换方法为多传感器协议转换、封装、融合提供了平台,具有很好的实际意义。大大节约了设备成本,为物联网技术的更好发展提供了技术支持。

[1]孙晓晔,成彬.串口转以太网模块配置软件设计及实现[J].微型机与应用,2015,34(22):73-75.

[2]胡杰,张飞,叶良朋.基于STM32的煤矿监控分站的设计与实现[J].煤矿机械,2016,37(07),174-176.

辽宁省教育厅科学研究资助项目(No.L2015462)。

猜你喜欢
误码率通信协议传输速率
面向通信系统的误码率计算方法
三星利用5G毫米波 实现创纪录传输速率
夏季滨海湿地互花米草植物甲烷传输研究
失效网络中节点可通信性能评估方法研究
D—BLAST基带系统的FPGA实现研究
线性调频扩频技术的研究与分析
数据传输速率
奖状训练器飞行管理系统研究
基于R8C的汽车OBD通用故障诊断仪设计
SIP协议系统模型的形式化研究