邓昊 彭铖 张杨 张绍阳 冯兴乐
摘 要:针对智慧航道中多设备接入、数据处理量大的实际问题,文中设计了一种数据统一的多源接入节点。该节点在多源接入方面能够满足智慧航道的传感器接入,同时设计物联网领域常见的接入信号类型,并将各类信号统一为RS 485信号输出,在边缘侧屏蔽底层数据差异,为上层提供统一格式的数据传输服务。同时节点还可对数据进行边缘管理,实现了数据滤波和数据方向控制。经实际测试,证明该节点实现了多源信号数据的统一、采集、处理、管理功能,能够应对复杂的现代物联网环境挑战。
关键词:物联网;智慧航道;数据统一;感知节点;RS 485;单片机
0 引 言
物联网是指由各种不同物理设备连接而成的网络,帮助人们实现对事物的智能化管理与控制。物联网应用场景广泛,包括智慧城市、智慧农业、智慧航道、智能家居等[1-2]。物联网技术的快速发展为世界带来了革命性的变革。但在日益复杂的物联网环境下,传统的物联网架构已出现了一些不可忽视的问题。
首先,作为物联网体系中的前端感知节点,存在多源、多类型情况,市面上的传感器类型纷繁复杂,其输出的数据格式不尽相同。随即带来感知数据异构问题,接入设备在不同的逻辑层次存在差异。多源感知节点数据如何统一是未来物联网系统面临的主要问题之一,以智慧航道背景为例,会牵扯到各式各样的设备接入,例如水情信息输入、雾情信息输入等,如何将各类传感信号统一到一个层面,实现高效管理,是本文研究的出发点之一。
其次,根据互联网数据中心IDC(Internet Data Center)的统计数据显示,到2020年全球将有超过500亿的终端和设备联网[3]。万物互联必然会产生大量数据,随着数据量剧增,出现了计算集中化带来的数据中心计算压力问题。而且在一些对系统时延有特殊要求的应用场景下,网络传输带宽增加和时延增加也会影响物联网系统的性能。若节点能在边缘侧对数据进行管理,不仅能够减轻云端压力,更能进一步提升系统的响应能力。
针对复杂物联网环境下感知数据多源多类型以及缓解中心云数据处理压力的现实需要,研究一种具有数据统一能力、数据边缘管理的感知节点尤为重要。本文以智慧航道为应用背景,重点解决复杂物联网环境下的多源设备数据统一和数据边缘管理这两大问题,改进现存的物联网系统弊端。
1 系统功能设计
1.1 多源类型信号统一
在以智慧航道为背景的环境下,本文选取模拟信号、数字信号作为接入系统的输入,模拟信号又可细分为4~20 mA电流型信号和电压型信号。选择RS 485信号作为统一后的数据格式,其具有以下优点。
(1)抗干扰能力强。RS 485信号传输时会在接收端将两根信号线上的电压差值作为判断其逻辑状态的依据。当存在外界噪声干扰时,噪声会同时叠加到两根信号线上,信号在接收端做差解调时,噪声影响会相互抵消,从而高度还原原始信号。这种特有的优点,使得RS 485信号在电磁环境复杂的应用场景下拥有极大的发挥空间[4]。
(2)RS 485能够利用Modbus协议进行简单组网,使用灵活方便。主从模式的访问机制能使主设备更好采集、管理各个子节点的数据。且该类型信号市场应用广泛,例如在智慧航道需要采集的信息中,水位信息、能见度信息、光照强度信息等均能利用RS 485信号进行输出。
在本系统中,以模拟信号、数字信号为输入,设计相应的转化电路,将这些多源多类型信号全部转化为RS 485信号进行传输,使数据在感知层面实现尽早统一。系统整体框架如图1所示。
1.1.1 模拟信号统一
自然界中最常见的信号形式为模拟信号,其特点在于具有连续变化的物理量所表达的信息,故通常又把模拟信号称为连续信号,它在一定的时间范围内可以拥有无限多个不同的取值[5]。模拟信号波形如图2所示。
在物联网领域,传感器输出的模拟信号包括电流信号与电压信号。相较于电压信号,电流信号应用更为广泛。原因在于电压信号在长距离传输时,会在传输线上产生压降,导致部分电压损耗在传输线上,且距离越远压降越大,最终影响信号的传输效果。电流信号避免了压降现象,在电流信号传输时,不论传输距离长短都可在接收端利用分压电阻解调出未大幅失真的信号。
本文在系统设计时,既考虑了适合远距离传输的4~20 mA电流型模拟信号接入,也设置了短距离电压型模拟信号接入,包括信号接入、信号调理、单片机模数转换、TTL转RS 485等。
电压电流信号接口均设计为四线制接口,分别为供电、信号+、信號-、地。模拟信号输入后会经过LM358运放芯片进行信号调理。LM358为双运算放大器,内部包括2个独立、高增益、内部频率补偿的运算放大器,信号调理电路利用其双运放特点,将一路作为电压运放,一路作为电流运放,信号接入及信号调理如图3所示。
经过信号调理后的模拟信号送至单片机内部的模/数转换模块进行数据预处理。单片机选择MSP430F149,其具有丰富的接口,且具备低功耗模式,利用C语言编程。图4所示为MSP430单片机的最小系统电路。
由单片机处理后的TTL电平信号经SP3485芯片整合为RS 485信号格式,统一进行下一步处理。图5所示为SP3485芯片引脚图,SP3485的1引脚为接收器输出,4引脚为驱动器输入。6,7引脚分别表示RS 485信号的A和B。
5,8引脚分别接地和电源。TTL电平信号由4引脚输入,若输入为逻辑0,表示A和B间的电压差较小;若TTL端输入为逻辑1,表示A和B间的电压差较大。TTL转RS 485电路如图6所示。
A,B两线间电阻的作用是提高RS 485总线的带负载能力。当RS 485总线传输距离超过一定长度时,其抗干扰能力会下降。为解决这一问题,在RS 485总线上接120 Ω的终端匹配电阻,使得电源输出电阻和外部电阻达到阻抗匹配。
D5,D6是两个钳位二极管,强制A与地、B与地之间的电压最大压降为0.7 V(根据二极管材料而定,硅二极管导通正向为电压0.7 V,锗二极管为0.3 V)。此处的钳位二极管正极接地,负极分别连接RS 485信号的A,B两线。保证A或B线上的输出电压(相对地)最低为-0.7 V,若相对地电压低于此值,二极管导通,将其电压拉回到-0.7 V,以确保A,B线上对地电压处于合理范围,保护后级电路。
1.1.2 数字信号统一
虽然模拟信号是自然界中最常见的一种信号类型,但其亦有自身缺陷,如受噪声影响大等。噪声效应会使信号产生有损,有损后的模拟信号几乎无法再次被还原。因此,在噪声作用下,虽然模拟信号理论上具有极高的分辨率,但难以确定其精确度相比数字信号更优。模拟信号数字化如图7所示。
数字信号是模拟信号经过抽样、量化、编码等一系列步骤得来。尽管数字信号处理过程相对复杂,但现有的数字信号处理器可以快速完成这一任务。另外,在计算机等系统普及的今天,数字信号的传播、处理都变得更加便捷。模拟信号转换为数字信号后,更方便计算机进行处理,或通过互联网传输[6]。RS 232转RS 485模块实物如图8所示。
本系统利用RS 232转RS 485模块将RS 232数字信号统一到RS 485信号上。
1.2 数据边缘管理
1.2.1 数据滤波
智慧航道下的物联网系统会在前端产生海量数据。经过信号调理及单片机处理后的电压电流传感器数据若直接上传,会因其数据量过于庞大而对系统后级的云端带来压力,所以本文在软件设计中再一次进行了数据滤波操作。
在本文所设计的系统中,MSP430单片机主要负责模拟信号的模数转换及数据滤波处理。由于平均滤波实现简单[7],因此选择平均滤波方法。具体做法:将单片机内部A/D模块采集到的数据每32组取平均值作为代表进行上传。该部分代码实现如下:
MSP430单片机使用C语言编程,在C语言中“>>”运算符代表右移操作。将AD_Temp的数据右移5位,即将其数据除以25等于32。节点将32次A/D转换的结果取平均后作为代表值上传,有效降低了上传的数据量级。
1.2.2 数据方向控制
统一后的RS 485信号在收发数据时对时序要求极高,一旦发送方和接收方时序基准未一一对应,将导致数据收发的不可预知性,因此需对统一后的RS 485数据进行边缘侧管理。本文利用中断标志位检测方法对RS 485信号方向转换进行自动控制,避免手动调节收发时序的复杂性和不确定性,确保节点的稳定通信。
利用单片机的I/O口输出高低电平来控制RS 485芯片转换方向,通过对单片机内部中断寄存器标志位的检测判断数据发送情况,达到RS 485半双工信号方向自动控制的要求。当RS 485总线传输数据给单片机后,将特定的I/O口置高电平,控制RS 485芯片进入发送状态,同时单片机通过访问内部中断寄存器标志位判断数据是否全部发完。当数据发送完成,单片机检测到标志位置位后将I/O口电平反转,使
RS 485总线进入接收状态。
图9所示为控制方案电路。控制策略:485Control是由单片机引出的控制信号,连接RS 485芯片的DE/RE使能端,当485Control为低电平时,RS 485总线处于接收状态;当485Control为高电平时,RS 485总线处于发送状态。485Control的高低变化由中断寄存器标志位决定,若RS 485总线数据未发送完成,该标志位不置位,软件设置485Control仍保持高电平;若RS 485总线已完成数据发送,则寄存器标志位置位,软件将485Control变为低电平,结束数据发送。
MSP430单片机为RS 485方向控制的MCU,P3.3口为控制I/O口。代码分为三部分,首先对P3.3口方向寄存器进行设置,设置其为输出;再对DE,RE使能端宏定义,方便程序直接调用;最后为SendChar函数和SendBuffer函数,SendChar函数完成以字节为单位的数据发送,其内部有判断中断寄存器标志位的步骤,SendBuffer函数完成以帧结构形式的数据发送,各部分程序如下:
IFG1是单片机内部的中断标志寄存器1,共有8位,最高位为发送中断标志位UTXIFG0。表1为该寄存器的详细信息。UTXIFG0位上电后为1,表示可以向发送寄存器TXBUF0进行写操作。第一个while语句用来排除上次可能余留在发送寄存器中的数据对本次数据发送的影响;第二个while语句用来自适应外部RS 485传感器数据情况,如果数据发送完成,立即將RS 485芯片调整为接收状态。
2 系统实际测试
设计好的节点如图10所示,它不仅能够接入多源类型的数据信号,而且能在边缘侧实现数据的统一,为上层提供统一的数据格式,在物联网架构中的最底层屏蔽差异,并且具有数据滤波和数据方向控制管理功能。
针对统一后的RS 485数据,利用示波器观察RS 485信号及485Control信号波形,并进行测试:由单片机发送数据0x01,经SP3485芯片转换为RS 485信号,观察发送数据期间485Control信号与RS 485总线上信号之间的关系,具体情况如图11所示。
图11中1号线为485Control信号,当总线上无数据发送时,该信号处于低电平状态,RE使能有效,即RS 485总线处于接收状态;当总线上有数据发送时,该信号处于高电平状态,DE使能有效,即RS 485总线处于发送状态。2号线反映RS 485总线上A-B的波形,发送0x01按照低电平起始位、数据位、高电平停止位的顺序排列,其中发送数据位时先发低位后发高位。从图中能观察到此时RS 485总线上正在发送0x01数据,且DE使能信号与数据长度保持一致,确保不会出现控制信号过长或过短造成接收数据错误的现象。当数据发送完成时,控制信号也随数据结束而转为低电平,使RS 485总线转为接收状态。
3 结 语
本文以解决传统物联网架构中多源接入问题和提供数据边缘管理为切入点,设计智慧航道感知节点。在物联网架构中的最底层实现数据统一,屏蔽数据格式、协议等差异,为上层提供一致的数据形式,方便上层管理前端各类节点,提升系统效率。同时在边缘侧实现数据管理,减轻云端压力,提升节点响应能力。
参考文献
[1]李波.温州豪格率先走进防伪标签新纪元[J].数字印刷,2017(6):41-43.
[2]任伟.基于云计算的物联网数据挖掘模型研究[J].软件,2017,38(12):229-232.
[3]郭涛.边缘计算期待“井喷”[N].中国计算机报,2016-12-26(006).
[4] LI Xiaoyan,ZHAO Xiaohui,ZHANG Peng,et al. BER performance of FSOC system with differential signaling over partially correlated atmospheric turbulence fading and partially correlated pointing errors [J]. Optics communications,2020.
[5]李寧.模拟电路[M].北京:清华大学出版社,2011.
[6]周应全,王良智.数字电路对模拟信号的转化[J].西部广播电视,2017(6):205.
[7] METIA S,HA Q P,DUC H N,et al. Urban air pollution estimation using unscented Kalman filtered inverse modeling with scaled monitoring data [J]. Sustainable cities and society,2020,54(5).
[8]任晓琨,荆立雄.基于MEMS技术的智能感知节点单元设计[J].物联网技术,2019,9(4):16-18.
[9]崔海亮.智能感知节点的设计与实现[D].上海:复旦大学,2014.
[10]赵东辉.基于物联网的智慧园区信息平台的设计与实现[D].石家庄:河北科技大学,2018.