基于LoRa技术的大体积混凝土测温节点设计
2017-09-09程廷果许维东
程廷果+许维东
摘 要:受施工现场条件限制,常规的无线网络节点多存在功耗高、传输距离短、信号穿透性差、数据稳定性不足等问题。设计并实现了一种基于LoRa(long range)技术的节点,給出了节点的软硬件系统设计方案。硬件包括SX1278、ds18b20单总线接口、msp430f149、w25q32和ds1302。软件包括底层驱动、系统框架和任务处理程序。将节点搭建为星型网进行测试,结果证明该节点工作稳定可靠,功耗较低,能满足大体积混凝土的测温要求。
关键词:LoRa技术;msp430f149;星型网;大体积混凝土测温
DOIDOI:10.11907/rjdk.171290
中图分类号:TP319
文献标识码:A 文章编号文章编号:1672-7800(2017)008-0111-03
0 引言
随着建筑行业的飞速发展,大体积混凝土越来越普遍,由此带来的温度引发裂缝问题受到工程界广泛关注[1-2]。为此,国家标准GB50496-2009规定大体积混凝土要进行现场检测和试验[3]。
目前,在我国建筑施工行业中,采用无线传感器网络(WSN)进行结构物和施工环境的安全监测已成为常态[4]。工程中常见的大体积混凝土温度监控周期一般为数月,监控测点相距往往数百米,网络节点之间经常存在临时障碍物等,导致包括ZigBee、433MHz在内的无线网络技术无法得到有效应用。
2013年8月,美国加利福利亚州的Semtech公司推出了一系列基于扩频调制技术的LoRa(long range)芯片[5],该芯片在FSK调制方式下保持低功耗性能的同时,明显增加了通信距离,具有极强的抗干扰能力。LoRa作为一种调制技术,是线性调制扩频(CSS)的一个变种,与同类技术相比,可提供更长的通信距离,并具有前向纠错(FEC)功能; LoRa在接收灵敏度方面明显优于传统调制技术,其接收灵敏度高达-148dBm。因此,本文将LoRa技术引入大体积混凝土测温领域。
1 节点系统设计
为了获取大体积混凝土内的温度数据并通过无线射频发送到网关,设计了如图1所示的以MCU为中心的采集节点。MCU采用msp430f149,外围芯片采用SX1278、w25q32、ds1302,分别实现射频、存储和实时时钟功能,Px(1,2,3,4)用于连接ds18b20总线。
使用IAR集成开发环境和C语言开发MCU软件系统。软件结构分为元件驱动程序、数据帧封装器、任务管理器和任务处理程序,如图2所示。
1.1 硬件系统
传感器:为了稳定可靠,采用工程现场常用的ds18b20传感器。该传感器可多个搭接在单总线上,非常适合多点测温[6],元件参数见表1。
微控制器:msp430f149是业界标杆TI公司的一款低电压低功耗芯片,带有12位ADC,是带硬件乘法器的16bitMCU,在standby和off模式下电流低至1.6μA和0.1μA[7],元件参数见表2。
无线射频芯片:SX1278是市面上最常用的Lora芯片,其无线电频段属于ISM开放频段,无需授权许可。考虑到射频PCB的设计,最后选用以SX1278为核心的Lora模块。
SX1278具有极高的接收灵敏度和抗干扰能力,127dBm的动态RSSI,最大20dBm发送功率,多种调制方式可选以及载波监听等功能,使用非常方便,安全性好[8]。元件参数见表3。
1.2 软件系统
1.2.1 元件驱动程序
元件驱动程序是对应元件的功能函数集合,由于函数较多,这里只介绍主要函数。
(1)ds18b20:
STATUS SearchROM(char(*ROM)[8],
uchar ROMsize,char*numsofsensor)
SearchROM函数用于搜集各个端口单总线上所有传感器的ID并返回各个端口传感器数量和函数执行状态。
SearchROM函数主要用到搜索二叉树算法[9]。
STATUS GetRegister(char*rambuf,
char*singleROM)
GetRegister函数用于将单个传感器寄存器中的数据复制到ram,以便计算温度和CRC校验[10]。
(2)ds1302:
STATUS GetTime(char*time,
uchar timesize)
STATUS ModifyTime(char *time,
uchar timesiz)
GetTime、Modifyime分别用于读取和修改实时时钟。
(3)w25q32:
STATUS WriteData(char*address,
char*ram,uchar size)
STATUS ReadData(char*address,
char*ram,uchar size)
WriteData、ReadData分别用于向flash芯片中写和读指定地址和大小的数据。
(4)Lora:
void LoraSendBytes(char *rfsendbuf,
uchar size);
LoraSendBytes用于Lora发送多个字节,Lora接收函数在interrupt实现。
1.2.2 数据帧封装器
为了使多个节点能够共同协调工作,将多个节点的拓扑网络设计为星型结构,见图3。为使节点具有自己的地址,在链路上互不干扰,需要设计一个简单的链路协议,所有采集节点将各自的数据打包成数据帧发送到指定地址的网关节点,数据帧封装器用于实现这一功能。endprint
数据帧有以下几种:
(1)上/下行数据帧。用于节点上传收集的数据或网关控制节点工作模式,见表4。
(2)上/下行确认帧。用于网关和节点互相确认对方是否成功收到数据,见表5。
(3)上行心跳帧。心跳帧有两个作用,用于网关判断节点是否连接网络与上传节点电压,见表6。
1.2.3 任务管理器与任务程序
任务程序是节点软件系统的中心部件,负责处理所有事件,包括采集上传任务、设置参数任务、上传错误任务、上传心跳任务等。任务管理器则负责检查事件表,根据事件将指令码插入指令队列尾并根据队列调用相应的处理程序,任务管理器事件轮询功能见图4。
事件表采用RAM中的数组实现,事件表中的位置代表了事件的优先级。为了保持处理事件的顺序,指令码采用队列存储,队列使用循环数组实现,由于运行过程中需要收集发生的错误用于分析原因,而对错误没有顺序要求,所以错误码采用栈存储,栈采用数组栈实现[11],如图5所示。
1.2.4 其它
(1)limit。该文件内全部是宏定义,用于限制传感器数量、队列、栈、数据存储区等在内存中的大小,以合理使用内存。
(2)globlevariable:全局变量。该文件包含系统所有全局变量,用以确定静态内存区大小。
(3)clock:全局时钟区。所有需要用到时间的服务都由该文件中的函数提供。
(4)System:系统初始化。包括CPU时钟频率、定时器频率以及和系统有关的设置等。
(5)Interrupt:中断函数文件。该文件主要包含LoRa发送和接收中断、时钟中断。因为Lora模块休眠后不能接收信号,所以需要设置接收时隙以及无应答重发机制。
2 系统测试
将3个节点分开放于3个实验室模拟测试,每个节点接10个传感器,分别相距网关约1km、500m、800m,将各节点分别设置为间隔10分钟采集一次数据并上传至网关。
将网关接收数据处理后通过串口上传至PC,可在PC端看到各节点发来的数据,见图6。
3 结语
节点模拟工作一段时间后,经过对温度数据的分析发现很少丢失数据。经过对电压数据的整理发现功耗较低。在传输距离方面,LoRa优于同功耗下的2.4GHz与433MHz传统调制技术,完全满足大体积混凝土的测温要求。
LoRaWAN网络已经在世界多地进行试点部署,包括中国、美国、法国、新西兰 、印度、澳大利亚、韩国、西班牙[12-15] 等国。
搭建中国的物联网平台,将大体积混凝土测温节点加入loRaWAN网络,是行业发展方向,会极大促进安全监测领域发展,给建造事业提供便利,更好地保护人民的生命财产安全。
参考文献:
[1] 解荣. 大体积混凝土温度监控的研究[D].西安: 长安大学, 2011.
[2] 方仙梅. 大体积混凝土裂缝的分析及防治[J]. 中国西部科技, 2011, 10(10):20-21.
[3] 中国冶金建设协会. 大体积混凝土施工规范[M]. 北京:中国计划出版社, 2009.
[4] 史学涛. 结构健康监测系统的研究[D]. 上海:同济大学, 2006.
[5] 龚天平.LoRa技术实现远距离、低功耗无线数据传输[J].技术交流,2016(10):117-119.
[6] 李会聪. DS18B20多点测温方法探讨[J]. 微计算机信息, 2010, 26(26):166-167.
[7] 李彬, 王朝陽, 卜涛,等. 基于MSP430F149的最小系统设计[J]. 国外电子测量技术, 2009, 28(12):74-76.
[8] 王瑞, 李跃忠. 基于SX1278的水表端无线抄表控制器[J]. 电子质量, 2015(12):67-68.
[9] 刘建华. 二叉树算法在单总线技术中的应用[J]. 自动化仪表, 2006, 27(3):63-64.
[10] 蔡淼. Modbus RTU协议中字节型CRC-16算法分析与实现[J]. 物联网技术, 2015(3):35-36.
[11] KENNETH A, REEK. C和指针 [M].第2版.北京: 人民邮电出版社, 2008.
[12] 佚名. 法国运营商Orange启动物联网计划[J]. 今日电子, 2016(1):40-41.
[13] 佚名. 三星联手SK电信部署全国性LoRaWAN[J]. 互联网天地, 2016(7):40-41.
[14] NAMELESS. New smart parking by libelium includes double radio with LoRaWAN and Sigfox[EB/OL]. http://www.businesswire.com/news/home/20160405005177/en/Smart-Parking-Libelium-Includes-Double-Radio-LoRaWAN.
[15] 张冬杨. 物联网领域最具发展前景的通信技术[J]. 物联网技术, 2016, 6(10):7-8.endprint