基于LORA的低功耗物联网方案

2022-09-12

Lora拥有传输距离长、信号穿透能力强、功耗低的优势, 在工厂、医院、楼宇、农场等环境复杂的场合, 能够满足现代物联网的要求。并且Lora不需要依赖于运营商, 工作在免申请频段, 有很大的自由度。STM32L芯片是ST公司专为低功耗设计而研发的产品, STM32L系列产品基于超低功耗的ARM Cortex-M4处理器内核, 采用意法半导体独有的两大节能技术:130nm专用低泄漏电流制造工艺和优化的节能架构, 提供业界领先的节能性能。本文的设计是以STM32L作为MCU来控制Lora模块进行通信, 并在空闲状态下保持整体电路的低功耗状态。

一、系统整体架构

传感器节点采集到的环境数据经过处理后, 通过Lora发送给网关, 网关收到节点传感器的数据, 通过GPRS发送给服务器, 服务器处理收到的网关数据后, 传输给PC端和移动端的用户。

二、节点传感器设计

电路的总体设计框架主要由4部分组成:主控芯片STM32L、传感器、Lora模块以及电源模块。

(1) 电源。作为低功耗产品, 电源使用3000m Ah、7.4V的锂电池进行供电, 由于Lora、STM32、传感器均为3.3V供电, 所以在这里再通过降压芯片将电压降至3.3V。而降压芯片的选择也有讲究, 在这里不可选用开关稳压芯片, 原因是芯片自身的功耗过高, 达到了m A级, 这与低功耗产品平均的u A级别电流相差甚远。所以在电源芯片的选择上, 尽可能的选择静态电流低的线性稳压芯片, 可最大程度的降低整体功耗, 在这里, 选择TI的低功耗线性稳压电源, 静态电流只有1u A, 非常符合设计要求。电源方案的总体思路是:7.4V的电池电压降压到5V, 再由5V降压到两路3.3V分别供STM32和Lora。其中STM32在进入休眠模式后控制Lora电源关闭, 可减少不必要的功耗。

(2) 传感器。在农业应用中, 我们通常会采集田地里的空气温度、湿度、光照度、土壤温度、湿度、PH值、盐分等参数, 来对作物的生长进行预测和调整。在这里介绍几款在农业上常见的低功耗传感器:空气温湿度传感器SHT3x、大气压力传感器BMP280、光照度传感器MAX44009。

以上3款传感器有一个共同点:功耗极低。在进入休眠模式后休眠电流都小于1u A, 在切换至工作模式后又能快速而准确地获取环境数据, 非常切合低功耗设备使用。

(3) Lora。通信模块是整个系统中最耗费电流的部分, 达到了总体电流消耗的90%。所以如何能尽可能的减少通信模块产生的功耗, 就能较大程度上降低整体功耗。

开启Lora的接收数据功能, Lora将产生高达10m A以上的接收电流, 显然将Lora一直开启在接收数据的状态下不符合低功耗的要求, 我们要做的就是将Lora设置在间歇接收数据或在某个时间点才开启接收数据的功能, 其他时间都让Lora模块断电, 降低电路的整体功耗。在这里, 参考NB-Io T的设计方案中的PSM (Power Saving Mode) , 即省电模式。一些物联网终端本来就很懒, 长期睡觉, 而在PSM模式下, 相当于关机状态, 所以更加省电。其原理是, 当终端进入空闲状态, 释放RRC连接后, 开始启动定时器T3324, 当T3324终止后, 进入PSM模式, 并启动T3412 (周期性TAU更新) 。在此期间, 终端停止检测寻呼和执行任何小区/PLMN选择或MM流程。

此时, 网络无法发送数据给终端或寻呼终端, 网络与终端几乎失联 (终端仍注册在网络中) 。只有当周期性TAU更新定时器超时后, 才退出PSM模式。在这里, 借鉴NB-Io T的PSM, 让STM32控制Lora的电源, 使得Lora进入定期唤醒模式, 不工作时则切断电源, 用网关来维持节点设备的在线情况。

如图。

Lora模块主要有三种状态:

发射状态:将采集好的传感器数据打包, 通过某种协议发射给特定的网关。接收状态:发射数据包完毕后转为接收状态, 在一段时间内 (大约300ms) 接收网关的应答包或服务器下行数据 (也可将下行接口关闭) , 若超时未接收到应答包, 则再发送一次。休眠状态:若成功接收到网关的应答包, 则立即转为休眠状态, 若第二次发送数据包后等待应答包接收依然超时, 也转为休眠状态, 休眠时间可自行定义 (如15分钟) , 休眠时间越长, 也就是上报数据间隔越长, 设备会越省电。

(4) STM32。STM32L是ST公司发明的专用于低功耗系统中的芯片, 在芯片开启RTC进入STOP模式, 其休眠电流仅为1.45u A, 内部高速低功耗晶振高达4.2MHz, 而从停止模式中的唤醒时间低至8us, 非常适合本次设计。

STM32L是将各个模块联通在一起的桥梁, 管理了系统的电源、时钟、采集、数据传输等重要信息。

STM32L芯片是整个系统的核心处理器件, 主要工作有:

切换传感器的工作模式, 采集传感器数据

切换Lora的工作模式, 传输传感器数据给Lora进行发送

监测电池电压, 控制Lora的电源

时钟控制, 定时进行唤醒, 复位看门狗, 管理系统时间

输出调试信息, 显示异常状态

LED显示运行状态

低功耗模式的进入与退出

三、网关设计

网关由电源模块、Lora通信部分、GPRS通信部分、STM32控制电路组成。网关的电路设计与节点的电路设计相类似, 不同之处在于电路中少了传感器采集部分, 取而代之的是GPRS模块 (可依据实际情况使用有线或无线) , GPRS模块的功能则是将网关采集到的节点数据上传给云端服务器。与节点需要强调的低功耗不同, 网关需要的是和服务器保持实时连接, 收到节点数据后及时上报, 保证在移动端或PC端能观察到节点数据的更新。网关更重要的一项功能是管理各个节点的信息:统计Lora网络中存在的节点传感器数量;将节点传感器数据通过GPRS转发到服务器;给节点传感器接收应答, 发送服务器时间以同步节点时间信息;若存在服务器下行数据, 在发送应答的同时转发下行数据;向服务器发送心跳包保证节点在线;接收节点数据超时后, 将对应节点从连接链表中剔除。

四、低功耗设计

本系统实现低功耗的关键在于节点在采集发送完传感器数据后就进入休眠状态, 在下一个唤醒时间点到来之前不接收任何来自网关的数据。工作流程为:数据采集——数据传输——等待接收应答——休眠。

其中数据采集、数据发送、接收应答都在一个很短的时间内便可完成, 99%的时间内节点设备都处于休眠状态。

Lora发送的空中速率在保证准确率的前提下尽可能的提高, 由于在整个模块工程中, Lora处于发射模式下产生的电流是最大的 (约110m A) , 减少数据的发送时间能够减少非常可观的功耗。同时发送的数据包增加一位校验和或CRC16等校验方式, 保证数据的正确率。

三种传感器 (空气温度湿度SHT3x、大气压力BMP280、光照度MAX44009) 的采集时间基本都在ms级内的时间便可完成, 所以, 选择能够从唤醒模式切换至工作模式后便可迅速采集到准确数据的传感器有利于降低整个系统的功耗。

接收数据的等待时间主要是等待数据在空中的传输时间和网关处理数据的时间, 超过一定的等待时间会触发节点的重发机制, 若再次重发失败则认为网关掉线, 等待下一上报数据时间点的到来再进行发送, 而不是一直重发数据。

从以下时序图可以看到上报数据时间点来临时STM32的处理过程:

其中等待传感器数据和Lora切换至工作模式可以同时进行, 这个过程大概耗费100ms, 而从发送数据到网关收到数据包, 这个过程耗费100ms, 网关处理完数据给节点回复应打包直到节点接收到应答包, 这个过程耗费100ms, 收到应答包后, 节点休眠。整个节点上报数据的过程大致耗费300ms, 为节约系统功耗节约了大量时间, 而数据包上传至服务器和发送心跳包则交由网关来做, 节点传感器不需要等待服务器回应的这个过程, 节点只需要保证成功将传感器数据传输到网关, 这便是降低功耗的关键点。进入休眠前, STM32需要关闭所有不需要的电源, 如休眠期间不需要使用Lora接收, 则直接关闭Lora供电, 这比让Lora模块进入休眠更省电。STM32芯片I/O口的配置:所有没有使用到的I/O口配置为下拉输入模式, 与上拉电阻相连的端口 (如传感器的IIC接口) 配置为上拉输入, 在休眠期间需要保持高电平的端口可视情况配置为上拉输入或上拉开漏输出。保持STM32的I/O口与外围电路没有形成大的电压差, 便可最大程度减少总电流。STM32外设配置:STM32进入停止模式后, 除了I/O口状态和RTC时钟, 大部分外设会停止运行, 需要将其配置为缺省值, 如串口、定时器、模数转换器等。唤醒后则需将对应的外设再配置成原来的参数。传感器配置:空气温湿度传感器SHT3x、大气压力传感器BMP280、光照度传感器MAX44009均可通过IIC接口将其配置为连续采集模式或休眠模式。当上报数据的时间点到来时, 通过IIC接口将传感器配置为连续采集模式, 从而读取到传感器的数据, 数据读取完毕后, 再配置为休眠模式, 节省功耗。三个传感器在休眠模式下即使一直供电, 所产生的电流也不高, 不超过1u A。

Lora配置:网关发送的应答消息接收成功后, 断掉Lora的供电芯片 (失能供电芯片管脚) , Lora与STM32之间连接的管脚配置为下拉输入, 节约功耗。

五、功耗计算

以15分钟节点传感器上报一次数据的状态来计算整体功耗, 电池使用2600m Ah的锂电池。

休眠模式电流:7.5u A (传感器待机电流、STM32停止模式电流、外围元器件损耗)

Lora发射电流:110m A发射时间:30ms间隔:15min

Lora接收电流:19m A接收等待时长:300ms间隔:15min

(以上电流包括了STM32处于运行模式, 传感器处于工作状态的电流)

STM32定时唤醒电流:1.4m A唤醒时长10ms唤醒间隔:24s

算得平均电流为:18.08u A

这是一个非常低的电流, 若以锂电池的80%容量来估算运行时间, 可算得理想状态下的运行时间为13.13年!

六、结论

本文利用Lora抗干扰能力强、覆盖范围广、功耗低等特点, 提出了一套在物联网中实现低功耗通信的方案。主要研究了如何尽可能的降低节点功耗, 简化通信流程, 缩减节点传感器的工作量, 将更多的任务交由网关去处理, 从而实现节点设备低功耗的目的。这样的通信方案更适用于一些不需要服务器下行数据的场合或设备偏远不宜经常维护的场合, 如居民的智能抄表、工业制造监控、物流追踪、农业数据采集、环境监控等。在实际应用上, 用户可以根据自身需求建立不同的Lora网络, 这既是Lora的优点也是它的缺点。优点在于自组网使得建网不需要依赖于运营商, 应用的灵活性大大增强, 而缺点也是在同一个环境中至少需要一个网关去管理这片区域的Lora节点。物联网将是下一个推动世界高速发展的“重要生产力”, 是继通信网之后的另一个万亿级市场, 而物联网产品未来的需求一定是越来越低的成本和越来越低的功耗, 所以, 研发出更低功耗的物联网产品对推进物联网的普及和发展有着深远的意义。

摘要:学着科学技术的发展, 物联网技术已经在各种不同领域中有着非常广泛的应用, 如居民的水表电表数据监测, 路灯的开关控制, 环境的气象数据监测等, 本文主要介绍的案例为:采集田地里的温度、湿度、光照度等信息, 通过网络传输至服务器, 根据数据进行科学的预测, 提高农作物的生产效率。Lora作为低功耗广域物联网技术, 具有低功耗、远距离覆盖、抗干扰性强、低成本的特点, 更适用于节点传感器比较集中的场景, 如居民抄表、农业传感采集等场景。本文介绍了STM32芯片、Lora模块、传感器组成的低功耗采集系统, 给出一种低功耗的设计, 提出一套基于Lora通信的物联网采集方案。

关键词:Lora,物联网,低功耗,数据采集

参考文献

[1] 龚天平.LORA技术实现远距离、低功耗无线数据传输[J].电子世界, 2016 (10) :115-116

[2] 刘琛, 邵震, 夏莹莹.低功耗广域Lo Ra技术分析与应用建议[J].电信技术, 2016, 50 (5) :43-46.

[3] 郑华开.Lo Ra技术给未来物联网产品带来新的起点[J].电子世界, 2016 (15) :146.

上一篇:经济新常态下企业金融风险的控制与防范下一篇:3D打印在艺术设计教学中的应用研究