《Lora物联网通信技术》

《LoRa物联网通信技术》读书笔记

核心知识框架

LoRa技术体系

基础理论篇

硬件芯片篇

网络协议篇

工程应用篇

数字调制基础
ASK/FSK/PSK

扩频通信理论
香农定理/处理增益

Chirp调制技术
LoRa核心物理层

终端芯片
SX126X/SX127X

网关芯片
SX130X/SX125X

2.4GHz芯片
SX128X/测距引擎

私有网络
点对点/星状/Mesh

LoRaWAN标准
Class A/B/C/ADR

协议扩展
Relay/D2D/YoLink

核心计算
灵敏度/链路预算/容量

工程案例
抄表/停车/定位/养殖

规范认证
中国470-510MHz/1s限制


第1章 LoRa背景及概述——物联网的DNA

1.1 LoRa背景介绍

1.1.1 LoRa技术与现状

核心概念:

  • LoRa名称来源:Long Range(远距离)的首字母组合
  • 技术起源:法国Cycleo公司开发的线性调频扩频(CSS)技术,2012年被Semtech收购
  • LoRa联盟:2015年由Semtech联合Actility、Cisco、IBM等成立,推动LoRaWAN标准

LoRa基本技术指标:

指标参数
传输距离城镇5km,郊区15km
工作频率433/470/868/915MHz等ISM频段
调制方式CSS扩频技术(Semtech专利)
通信速率18b/s ~ 62.5kb/s
网络容量单网关可连接成千上万节点
电池寿命长达10年
安全加密AES128

中国市场现状(截至2019):

  • 产业链企业超1500家,年增速50%
  • 2019年国内LoRa芯片出货超3000万片
  • 应用场景超300个成熟垂直行业
  • 阿里、腾讯、中国联通、中国铁塔等巨头入局
1.1.2 Semtech公司介绍

四大产品线:

  1. 信号完整性产品:光通信、广播视频、背板数据时钟恢复
  2. 安全保护类产品:TVS瞬间电压抑制产品
  3. 无线和传感类产品:LoRa芯片、触摸控制器
  4. 电源管理和高可靠性产品:充电芯片、LED驱动器、电力线载波

LoRa成功关键:不仅是技术优势,更是生态化运营策略——通过LoRa联盟推广开放标准LoRaWAN,同时保持私有技术的商业利益。

1.2 物联网技术

1.2.1 物联网的定义与发展

物联网三要素:

  • 无线通信技术:RFID、LoRa、Wi-Fi、BLE、NFC、ZigBee、NB-IoT、UWB、Sigfox
  • 传感器技术:温度、湿度、压强、压力、空气质量、化学成分
  • 嵌入式系统技术:计算机软硬件、传感器技术、集成电路技术的综合
1.2.2 无线物联网通信技术分类
分类技术特点
短距离LANWi-Fi/BLE/ZigBee/NFC/UWB家庭、个人场景
远距离LPWANLoRa/NB-IoT/eMTC/Sigfox智慧城市、表计

短距离技术对比:

技术频段工作范围最高速率成本主要应用
蓝牙5.02.4GHz300m2Mb/s低可穿戴、音频
Wi-Fi 62.4/5GHz100m10Gb/s中高速上网
NFC13.56MHz20cm424kb/s低支付、门禁
ZigBee2.4GHz/868/915MHz10-75m250kb/s低智能家居
UWB3.1-10.6GHz10mGb/s级高室内定位
1.2.3 NB-IoT技术详解

发展历程:
NB-M2M → NB-OFDM → NB-CIoT → NB-LTE → NB-IoT(3GPP R13冻结于2016年)

三种部署方式:

  1. 独立部署(Stand alone):利用新频带或GSM重耕
  2. 保护带部署(Guard band):利用LTE边缘保护频段
  3. 带内部署(In band):利用LTE载波中间频段

覆盖增强:

  • 重传增益 = 10lg(重传次数)
  • NB-IoT最大下行2048次重传 → 30dB处理增益
  • 上行128次重传 → 21dB处理增益
  • 最大耦合损耗(MCL):164dB(极限灵敏度-141dBm + 23dBm发射)

低功耗模式:

  • PSM(省电模式):TAU周期最长310h,空闲态最长3.1h,超99%时间休眠
  • eDRX(扩展不连续接收):eDRX周期20.48s2.91h,PTW窗口2.56s40.96s
1.2.4 eMTC技术

演进:Cat.1 → Cat.0 → Cat.M1(eMTC)

eMTC五优势:

  1. 速率高:上下行最大1Mb/s
  2. 支持移动性:连接态切换
  3. 可定位:基站侧PRS测量
  4. 支持语音:VoLTE
  5. LTE网络复用:共站址共天线
1.2.5 Sigfox技术

技术特点:

  • UNB超窄带:100Hz带宽,100b/s或600b/s速率
  • 随机接入:时间和频率分散,消息发3个副本
  • 协作接收:终端不绑定特定基站,多个基站接收
  • 短消息:上行最多12B,下行固定8B

1.3 LoRa特点及应用

1.3.1 LoRa技术七大优势
  1. 远距离

    • 最高灵敏度-149.1dBm(SF=12/BW=7.81kHz)
    • 卫星应用:600-1600km近地轨道通信
    • 实测:美国硅谷湾区单网关覆盖50km
  2. 抗干扰能力强

    • 低于噪声20dB仍可正常解调
    • 突发干扰占空比<50%时,灵敏度恶化<3dB
    • 原理:Chirp相干解调将信号聚集,噪声仍为噪声
  3. 低功耗

    • 静态电流<1μA
    • 接收电流<5mA(SX126X)
    • 17dBm发射时电流仅45mA
    • CAD功能:2个码元时间检测信道,省电3-4倍
  4. 大容量

    • ADR(自适应速率)动态调整SF和功率
    • 8种正交扩频因子(SF5-SF12)共存
    • 单网关可支持数万节点
  5. 按需部署、独立组网

    • "长Wi-Fi"特性:即插即用
    • 适合蜂窝信号盲区(井盖、地下室、偏远地区)
  6. 轻量级、低成本

    • 模块无需TCXO、SAW滤波器
    • 无专利和入网许可费用
    • LoRaWAN模块量产价约3美元
  7. 抗频偏(抗多径/多普勒/定位)

    • 抗多径:扩频技术对抗多径衰落
    • 抗多普勒:允许频率偏移24.5kHz(490MHz),支持高铁、卫星
    • 定位测距:基于TOF的测距功能
1.3.2 LoRa vs 其他技术

vs NB-IoT:

对比项LoRaWANNB-IoT
终端成本约80% of NB-IoT较高
基站成本¥0.2-0.5万¥15-30万
网关成本比130-50
抗多普勒支持超高速(>16.7km/s)R14支持80km/h
适用场景私有网/企业网/深度覆盖公网/广域移动

vs ZigBee:

  • 工作频率:Sub-1GHz衰减小,绕射强
  • 频段干扰:2.4GHz干扰严重,LoRa干扰小
  • 灵敏度:LoRa高20dB
  • 覆盖范围:同区域LoRa网关数量是ZigBee的1/10
  • 网络稳定性:LoRa单跳,无需Mesh
1.3.3 LoRa应用市场

三大类场景:

  1. 蜂窝信号弱场景:农业、采矿、森林防火、环境监测、智慧楼宇
  2. 功耗/距离严格场景:水气表(8-10年寿命)、停车传感器、资产追踪
  3. 私有/企业网络:工业控制、园区物业

八大应用分类:

  • 智慧表计 | 智慧物流 | 智慧医疗 | 智慧农业
  • 智慧工业 | 智慧建筑/家庭 | 智慧社区/城市 | 智慧环境

市场规模(2020.1):

  • 1.3亿个LoRa终端
  • 50万+ LoRaWAN网关
  • 覆盖140+国家和地区

第2章 LoRa技术核心——Chirp调制解调技术

2.1 常用数字通信调制技术

2.1.1 数字调制概念

为什么要调制:天线尺寸 ≈ λ/4,5kHz基带信号需15km天线,调制到470MHz仅需16cm

2.1.2 三种二进制调制
调制方式原理表达式
2ASK幅度变化s(t) = A·cos(ωct) 或 0
2FSK频率变化s(t) = cos(ω1t) 或 cos(ω2t)
2PSK相位变化s(t) = cos(ωct) 或 cos(ωct+π)
2DPSK相对相位前后码元相差表示0/1
2.1.3 抗噪声性能

误码率公式汇总(大信噪比下):

调制方式相干解调非相干解调
2ASKPe = (1/2)erfc(√(r/4))Pe = (1/2)e^(-r/4)
2FSKPe = (1/2)erfc(√(r/2))Pe = (1/2)e^(-r/2)
2PSKPe = (1/2)erfc(√r)-
2DPSKPe = erfc(√r)Pe = (1/2)e^(-r)

r为信噪比

保证误码率<0.1%所需信噪比:

  • 2PSK相干:>6.8dB
  • 2DPSK相干:>7.3dB
  • 2FSK相干:>9.8dB
  • 2ASK相干:>12.8dB
2.1.4 性能比较
  • 抗噪性能:2PSK > 2FSK > 2ASK
  • 频带利用率:2ASK/2PSK优于2FSK
  • 设备复杂度:非相干 < 相干,2DPSK最复杂
  • 抗多径:2FSK最优

2.2 扩频技术

2.2.1 扩频历史
  • 1941年:Hedy Lamarr申请跳频专利
  • 1949年:第一个直接序列扩频系统(FTL)
  • 1976年:第一本扩频专著(R.C.Dixon)
2.2.2 扩频技术详解

基本原理:

  • 发射:信息 × 扩频序列 → 宽带信号
  • 接收:宽带信号 × 相同扩频序列 → 恢复窄带信息

六大优势:

  1. 抗干扰:宽带干扰变平坦,窄带干扰扩散
  2. 隐蔽性强:信号低于噪声基底,LPI特性
  3. 抗多径衰落:利用自相关特性分离多径
  4. 扩频多址:不同扩频码可区分用户
  5. 频谱利用率高:不同扩频因子正交共存
  6. 精确定位测距:UWB、LoRa测距

扩频分类:

扩频系统

直接序列扩频 DSSS

跳频扩频 FHSS

跳时扩频 THSS

线性调频扩频 CSS

混合扩频

关键参数:

  1. 频谱效率 = 码率(b/s) / 带宽(Hz)

    • LoRa SF=5时:0.156 b/s/Hz
    • LoRa SF=12时:0.0029 b/s/Hz
  2. 处理增益 Gp = B / ΔF

    • LoRa SF=7/BW=125kHz:Gp=13.7dB
    • NB-IoT上行128次重传:Gp=21dB
    • NB-IoT下行2048次重传:Gp=30dB
    • LoRa最大Gp=26.3dB(SF=12/BW=125kHz)
  3. 干扰容限 Mj = Gp - [Ls + (S/N)out]

2.2.3 香农定理

公式:C = B·log₂(1 + S/N)

物理意义:频带F、时间T、信噪比γ三者可互换

四种互换关系:

  1. 频带换信噪比(扩频):F↑ → γ↓

    • LoRa、ZigBee使用此原理
  2. 信噪比换频带(高阶调制):γ↑ → F↓

    • Wi-Fi的QAM调制(16QAM/64QAM/1024QAM)
  3. 时间换信噪比(重传):T↑ → γ↑

    • NB-IoT重传机制
  4. 时间换频带/频带换时间:F·T = 常数

2.3 Chirp调制

2.3.1 线性调频信号

时域表达式:s(t) = cos(2πf₀t + πμt²),-T/2 ≤ t ≤ T/2

处理增益:Gp = F·T(时间带宽积)

2.3.2 Chirp信号调制

二元正交键控(BOK):

  • 正斜率Chirp → 代表"1"
  • 负斜率Chirp → 代表"0"

产生方法:

  1. 直接频率调制(VCO)——LoRa采用
  2. CDDS数字合成
  3. 正交调制(I/Q)
  4. SAW声表面波器件
2.3.3 LoRa调制

核心思想:用频率变化速率(“Chirpness”)调制信号

扩频因子(SF):

  • 每个码元由2^SF个码片组成
  • SF越大,传输距离越远,速率越低
  • SF=7:128种码片,承载7bit
  • SF=12:4096种码片,承载12bit

LoRa信号特征:

  • 一个码元周期内频率扫过整个带宽
  • 从起始频率线性上升,到最高后回落到最低继续
  • 初始频率位置决定该码元的数据

第3章 LoRa扩频技术

3.1 LoRa调制解调原理

3.1.1 LoRa调制理论

调制链路组成:

  1. 纠错编码机
  2. 交织器
  3. 扩频序列产生器
  4. 笛卡儿极坐标转换器
  5. Delta-sigma调制器

解调链路组成:

  1. 数字抽取滤波器
  2. 中频混频器
  3. 信道滤波器
  4. 软解映射器
  5. 解交织器
  6. 纠错解码器
  7. 扩频序列产生器

关键参数:

  • SF:扩频因子(5~12)
  • CR:编码速率 4/(4+CR)
  • BW:调制带宽(7.8~500kHz)
  • NF:噪声系数

码元时长:T_symbol = 2^SF / BW

数据速率:R_b = SF × [BW/2^SF] × CR

信噪比需求(1%误包率,32B):

SFSNR需求
7-7.5 dB
8-10 dB
9-12.5 dB
10-15 dB
11-17.5 dB
12-20 dB

每增加1个SF,SNR需求仅提高2.5dB(非3dB)

灵敏度公式:
sensi = -174 + NF + 10lg(BW) + SNR

示例:网关NF=2dB,BW=125kHz,SF=12(SNR=-20dB)
sensi = -174 + 2 + 51 - 20 = -141dBm(实际-142.5dBm)

与FSK对比:
同速率下,LoRa比FSK灵敏度好8.4dB

与NB-IoT对比:

  • LoRa SF=12时 Eb/N0 ≈ 3.8dB
  • NB-IoT Eb/N0 ≈ 9.3dB
  • LoRa好5.5dB → 同等距离需功率仅为1/3.5
3.1.2 调制解调器详解

四个可调参数:

  1. SF(扩频因子):SF5-12,正交
  2. BW(带宽):7.8/10.4/15.6/20.8/31.25/41.67/62.5/125/250/500kHz
  3. CR(编码率):4/5, 4/6, 4/7, 4/8
  4. LDRO(低速率优化):T_symbol ≥ 16.38ms时开启

帧结构:

[前导码 Preamble] [包头 Header] [有效载荷 Payload] [CRC]
  • 前导码长度:N + 4.25个码元(N≥6)
  • 显性包头:含长度、编码率、CRC信息
  • 隐性包头:固定参数,删除包头

空中时间计算:
T_symbol = 2^SF / BW

n_payload = 8 + max(ceil[(8×PL - 4×SF + 28 + 16×CRC - 20×IH) / (4×(SF - 2×DE))] × (CR + 4), 0)

IH:隐式包头(0显性/1隐性)
DE:低速率优化(0关/1开)
CRC:16位CRC(0无/1有)

3.2 LoRa计算器工具

参数分组:

  1. LoRa调制参数:SF、BW、CR、LDRO
  2. 数据包配置:前导长度、载荷长度、包头模式、CRC
  3. 射频设置:发射功率

输出参数:

  • 时间性能:总码元数、码元时长、空中时间
  • 射频性能:接收灵敏度、链路预算、最大频率误差

示例计算:
SF=7, BW=125kHz, CR=4/5, 关闭包头/CRC, 前导12码元, 载荷2B
T_symbol = 2^7/125000 = 1.024ms
n_symbol = 8 + (8×2 - 4×7 + 28)/4 × 5 = 24.25
ToA = 1.024 × 24.25 = 24.832ms

3.3 空口实际案例分析

"LoRa"数据发送过程:

  1. ASCII转二进制:

    • L(4C) → 01001100
    • o(6F) → 01101111
    • R(52) → 01010010
    • a(61) → 01100001
      → 32bit: 01001100011011110101001001100001
  2. 前向纠错编码(CR=4/5):
    每4bit加1bit校验 → 40bit: 0100111000011001111001010001010110000011

  3. 交织器(SF=8 → 8行5列):
    40bit数据映射到5个码元

  4. 封装:前导 + 载荷码元 + CRC

  5. CSS调制:最终输出频率随时间变化的Chirp信号


第4章 LoRa核心芯片

4.1 芯片分类

类别型号用途
终端芯片SX126X/SX127X节点/单信道网关
网关芯片SX130X+SX125XLoRaWAN多信道网关
2.4GHz芯片SX128X测距/高速/全球频段

终端芯片代际:

  • 第一代:SX1272/6/8(寄存器控制)
  • 第二代:SX1261/2/8(命令控制,90nm工艺)

网关芯片代际:

  • 第一代:SX1301/SX1308 + SX1255/7/8
  • 第二代:SX1302 + SX1250

4.2 Sub-1GHz收发芯片(SX126X)

4.2.1 芯片架构

四大模块:

  1. 模拟前端
  2. 数字调制解调(LoRa + (G)FSK)
  3. 数字接口和控制(SPI)
  4. 电源(DC-DC/LDO)
4.2.2 规格参数

功耗对比(SX126X vs SX127X):

参数SX126XSX127X
休眠电流1.2μA0.4μA
接收电流4.6mA10mA
发射电流(17dBm)45mA87mA
最大输出功率+22dBm+20dBm
链路预算+22-(-149)=171dB+20-(-149)=169dB
扩频因子SF5-12SF6-12
封装4×4mm6×6mm
接口命令控制寄存器控制
4.2.3 关键电路

功率放大器特性:

  • SX1261:DC-DC供电,输出功率恒定(1.8-3.7V)
  • SX1262:PA需高电压,20dBm输出需供电≥2.7V

发热与频偏:

  • 大功率发射时晶振温升导致频率偏移
  • 解决方案:TCXO或PCB挖空散热
  • 未优化时1.5s偏移超163Hz,通信中断

4.3 网关芯片

4.3.1 SX1301

规格:

  • 49路LoRa解调器 + 1路FSK解调器
  • 10条可编程并行解调通道
  • 最高灵敏度-142dBm(搭配SX1255/7)
  • 支持ADR

架构:

  • 8路DDR解调器(SF7-12/125kHz)
  • 1路专用解调器(125/250/500kHz)
  • 外部需MCU + 射频前端(SX125X)+ GPS(可选)

SX1301 vs SX1308:

参数SX1301SX1308
温度范围-40~85℃0~70℃
功耗略低略高
适用场景工业/室外室内

全双工实现:

  • 硬件方案:增加SX126X作为专用下行通道
  • 需双天线或双工器(隔离40-60dB)
  • 注意发射噪声降低接收灵敏度
4.3.2 SX1302(第二代)

改进点:

  1. 支持SF5-12全系列
  2. 每通道2个解调器同时工作 → 容量翻倍
  3. 单32MHz晶振(原需2个)
  4. 功耗降至SX1301的10%
  5. 缓存4KB(原1KB)
  6. 支持全双工
  7. 支持LBT(Listen Before Talk)
  8. SPI桥接功能,MCU可直接控制射频前端

封装:QFN64 7×7mm(原9×9mm)

4.3.3 射频前端芯片

SX1255/7 vs SX1250:

参数SX1255/7SX1250
频率范围100MHz分段150-960MHz全频
输出功率5dBm(需外PA)22dBm(内置PA)
噪声系数2.5dB8dB
接收电流较高很低
封装5×5mm4×4mm
双工支持全双工仅半双工
设计理念高性能简单/低成本

三种网关方案:

  • 微型:SX1302 + SX1250(低成本)
  • 小型:SX1302 + SX1255/7(高性能)
  • 大型:多组SX1302 + 多射频前端(大容量)

4.4 2.4GHz芯片(SX128X)

4.4.1 SX1280介绍

五种调制引擎:

  1. LoRa 2.4GHz:SF5-12,带宽200/400/800/1600kHz
  2. FLRC:Fast LoRa,260kb/s-1.3Mb/s
  3. GFSK:兼容传统2.4GHz应用
  4. BLE物理层:可通过软件实现蓝牙
  5. 测距引擎:TOF测距

主要指标:

  • 最高灵敏度:-132dBm
  • 输出功率:+12.5dBm
  • 链路预算:144.5dB
  • 接收电流:<5.5mA
  • 发射电流:24mA(+12.5dBm)
  • 休眠电流:215nA
4.4.2 工作距离

测试结果(12.5dBm):

  • FLRC(260kb/s):2.3km
  • LoRa 2.4GHz(476b/s):3.6km
  • LoRa 868MHz(292b/s):5.8km

原因:频率越低,波长越长,传播衰减越小

4.4.3 测距引擎

原理:

  • 主机发送测距信号,记录发送时间T1
  • 从机收到后立即回复
  • 主机收到回复记录时间T2
  • 距离 = (T2 - T1 - T_delay) × c / 2

精度:

  • 80次测距后可达1m精度
  • 300次测距后接近0.5m
  • 实际环境误差5-20m(多径影响)

4.5 芯片Roadmap

未来方向:

  1. 特殊应用芯片:
    • LLCC68(室内应用)
    • LR1110(集成GNSS+Wi-Fi探针)
  2. 新网关芯片:SX1303(TDOA优化)
  3. 2.4GHz网关芯片(待发布)
  4. 更高性能收发芯片:先进工艺可提升2-4dB灵敏度

第5章 LoRa的网络系统

5.1 常用LoRa网络结构

5.1.1 点对点网络
  • 最简单拓扑,主机-从机模式
  • 应用:对讲机、测距
  • 优势:架构简单,适合学习
5.1.2 星状拓扑网络

“长Wi-Fi”:网关为中心,节点直连

六种实现模式:

  1. 普通模式:

    • 网关一直接收,节点随机上报
    • 问题:单信道易干扰,容量小,下行实时性差
  2. 定时问询模式:

    • 网关按时间表轮询节点
    • 需时钟校准(晶振误差20ppm → 1小时误差72ms)
    • 优点:信道利用率高(可达80%)
  3. 信道升级模式:

    • 网关多模块多信道
    • 节点随机选择信道发送
    • 容量×N,抗干扰增强
  4. 同步下行主动模式:

    • 节点同步唤醒(如每秒唤醒2ms)
    • 需GPS或定期校准
    • 优点:低功耗+实时下行
  5. 异步下行主动模式:

    • 长前导唤醒(前导长度>唤醒周期)
    • 无需时钟同步
    • 缺点:唤醒所有节点,功耗高
  6. 私有网络问题:

    • 链路预算固定(远近节点矛盾)
    • 多网关干扰
    • 多网关同步困难
5.1.3 Mesh拓扑

应用场景:

  • 野外数据采集(多跳中继)
  • 电表(高速率+远距离)

优势:

  • LoRa Mesh可实现电池供电中继(异步唤醒省电)
  • 相比ZigBee Mesh,LoRa单跳距离远10倍

5.2 LoRaWAN网络结构

5.2.1 蜂窝移动通信系统(类比基础)

基本组成:

  • 移动台(MS)→ 对应LoRa终端
  • 基站子系统(BSS)→ 对应LoRa网关
  • 移动交换中心(MSC)→ 对应网络服务器
  • 公众通信网(PSTN)→ 对应网关与NS的连接

频率复用:

  • 七小区频率复用解决同频干扰
  • 小区分裂扩容(半径减半,小区数×4)

信道切换:

  • 解决移动用户跨小区通信
  • 问题:高速移动易丢包,小区拖尾
5.2.2 LoRaWAN网络

四层架构:

终端节点 ↔ 网关 ↔ 网络服务器 ↔ 应用服务器

三大创新:

  1. 自适应数据速率(ADR):

    • 网关测量SNR/RSSI,估算链路余量
    • 命令节点调整SF和发射功率
    • 近节点用SF7/低功率,远节点用SF12/高功率
    • 效果:容量↑,功耗↓,干扰↓
  2. 同频多网关协作:

    • 终端数据可被多个网关接收
    • NS选择最佳网关下行
    • 无同频干扰问题(对比蜂窝网需7频复用)
    • 扩容只需增加网关,无需频率规划
  3. GPS同步:

    • 室外网关GPS授时(纳秒级)
    • 支持Class B同步下行
    • 支持TDOA定位

与蜂窝网对比优势:

  • 高速移动不丢包(无需切换)
  • 抗多普勒(允许24.5kHz频偏)
  • 站点选择灵活
  • 网优几乎不存在
  • 扩容简单(加网关即可)
  • 建网成本低
  • 支持TDOA定位

缺点:

  • 速率低(最高5.5kb/s)
  • 实时性差(Class A需1s后下行)
5.2.3 LoRaWAN Server

五部分:

  1. 认证服务器:设备注册表、访问控制
  2. 网关服务器:保持网关连接,数据转发
  3. 网络服务器:MAC命令、ADR、下行调度、上行处理
  4. 应用服务器:数据解密/加密、MQTT/HTTP接口
  5. 接入服务器:连接流验证、会话密钥生成

第6章 LoRa的标准及规范

6.1 LoRaWAN网络协议

6.1.1 三类终端
类型特点功耗下行实时性应用
Class A每次上行后开RX1/RX2最低差水表/气表/烟感
Class B定期开ping slot中中门锁/水闸
Class C持续接收高最好电表/路灯

记忆:A=All(必须支持),B=Beacon,C=Continuous

6.1.2 帧结构
PHY Payload = MHDR(1B) + MACPayload + MIC(4B)

MACPayload = FHDR + FPort(可选) + FRMPayload(可选)

FHDR = DevAddr(4B) + FCtrl(1B) + FCnt(2B) + FOpts(0-15B)
6.1.3 Class A详解
  • RX1:上行结束后1s±20μs开启,频率/速率与上行相关
  • RX2:上行结束后2s±20μs开启,固定可配置频率/速率
  • 接收窗口长度≥前导码时长
  • 若RX1收到有效帧,则关闭RX2
6.1.4 终端激活

OTAA(空中激活):

  • 需DevEUI、AppEUI、AppKey
  • Join Request → Join Accept
  • 生成NwkSKey和AppSKey

ABP(独立激活):

  • DevAddr、NwkSKey、AppSKey预存
  • 绕过入网流程,直接通信
6.1.5 Class B
  • 网关周期发送Beacon(同步)
  • 终端在指定时间开ping slot
  • 时钟漂移补偿:10ppm晶振,128s周期漂移±1.3ms
  • 支持单播/多播
6.1.6 Class C
  • RX2持续打开(除发射时)
  • 发射结束后立即开RX2,然后RX1,再RX2
  • 几乎实时接收

6.2 LoRaWAN协议扩展

6.2.1 Relay中继协议

需求:

  • 电池供电中继器(2Ah电池,工作5年)
  • 最多支持10个终端
  • 兼容LoRaWAN 1.0.X/1.1.X

唤醒机制:

  • 专用唤醒信道(SF7/125kHz或SF8/500kHz)
  • 中继每秒监听2ms(CAD模式)
  • 异步唤醒:长前导(≥1s)
  • 同步唤醒:短前导(200ms),需时钟校准

通信流程:

终端 → (唤醒) → 中继 → (LoRaWAN) → 网关 → NS → AS
终端 ← (下行) ← 中继 ← (下行) ← 网关
6.2.2 阿里巴巴D2D协议

场景:设备间直接通信,亚秒级响应

机制:

  • 空中唤醒(长前导)
  • 兼容LoRaWAN,网关无需修改
  • 节点SDK升级即可

特点:

  • 本地互控,不上云
  • 功耗介于Class B和Class C之间
  • 唤醒频率可设(0.5s/1s)

问题:唤醒所有D2D设备,功耗损失

6.2.3 YoLink智能家居协议

三类设备:

  • A类:电池供电(同Class A)
  • C类:常开(同Class C)
  • D类:电池供电+无线唤醒(类似D2D)

特点:

  • 固定链路速率(单信道网关)
  • 设备间互控(断网可用)
  • 三信道分离:上行Freq1/下行Freq2/唤醒Freq3
  • 网关共享:邻居网关可接力上报(如火灾报警)

6.3 LoRa规范及认证

6.3.1 全球区域规范

欧洲(EU863-870):

信道频率(MHz)用途
0868.1入网/通信
1868.3入网/通信
2868.5入网/通信
  • 占空比:<1%
  • 最大输出功率:EIRP 16dBm
  • DR0-5:125kHz LoRa,DR6:250kHz LoRa,DR7:FSK

美国(US902-928):

  • 上行:64×125kHz + 8×500kHz
  • 下行:8×500kHz(923.3-927.5MHz)
  • 最大输出功率:EIRP 30dBm

中国(470-510MHz):

20MHz天线方案:

  • A类:上行32ch(470.3-476.5),下行32ch(483.9-490.1)
  • B类:上下行同频(476.9-483.1/496.9-503.1)

26MHz天线方案:

  • A类:上行48ch(470.3-479.7),下行24ch(490.1-494.7)
  • B类:上行48ch(480.3-489.7),下行24ch(500.1-504.7)

中国规范限制:

  • 输出功率:E.R.P ≤ 50mW(≈EIRP 19.15dBm)
  • 单次发射时长:≤1s
  • 占用带宽:≤500kHz
  • 频率容限:100×10⁻⁶
  • 需LBT干扰规避
6.3.2 LoRaWAN认证

认证项目:

  • EU863-870
  • US902-928
  • AS923
  • KR920-923
  • IN865-867

流程:

  1. 联系授权测试实验室(ATH)
  2. 完成认证调查问卷
  3. 准备样品(需OTAA或ABP就绪)
  4. ATH执行测试
  5. 提交结果至LoRa联盟
  6. 审核通过,颁发证书

常见问题:

  • 必须LoRa联盟会员
  • 目前仅A类设备认证
  • 可选射频性能测试
  • 与CE/FCC法规认证无关
6.3.3 中国无线电规范(工信部2019)

核心条款:

  • 使用频率:470-510MHz
  • 发射功率:50mW(E.R.P)
  • 功率谱密度:≤200kHz时50mW/200kHz;200-500kHz时10mW/100kHz
  • 单次发射:≤1s
  • 占用带宽:≤500kHz
  • 频率容限:100×10⁻⁶
  • 需LBT干扰规避

对LoRaWAN的影响:

SF原最大载荷新规范最大载荷(≤1s)
1259B15B
1159B46B
1059B59B(无影响)

实际应用中优先遵循法规,再遵从行业标准


第7章:LoRa行业及生态

7.1 LoRa联盟

  • 成立:2015年由Semtech联合Actility、Cisco、IBM等发起,推动LoRaWAN成为全球标准。
  • 成员:超过500家,包括电信运营商(KPN、Bouygues、Swisscom)、系统方案商(Actility、KERLINK)、软件商(IBM)、硬件厂商(思科、Adeunis)等。
  • 生态构成:芯片、模组、传感器、网关、网络服务器、应用服务器,形成完整产业链。

7.2 中国LoRa产业链分析

  • 产业链规模:截至2020年,国内LoRa企业近1500家,年增速超40%。
  • 产业链特点:
    • 多元化:互联网巨头(阿里、腾讯)、运营商(联通、铁塔)、解决方案商共同参与。
    • 应用多样化:从表计扩展到智慧城市、农业、安防、家居等。
    • 开放化:芯片IP授权(ST、ASR)、平台开放接入。
  • 产业链结构:
    • 上游:芯片(Semtech独家授权,ST、ASR获IP授权,SIP厂商如群登)。
    • 中游:模组(竞争激烈,纯数据模组为主)、网关(8通道LoRaWAN网关居多)、平台(阿里LinkWAN、腾讯云IoT)。
    • 下游:终端厂商、集成商、最终用户(企业级为主,消费级起步)。
  • 市场数据:
    • 2019年国内终端节点约5000万个,网关约16万个。
    • 表计应用占70%,其他如智慧楼宇、园区、消防等逐步增长。
  • 发展趋势:
    • 标准化:LoRaWAN协议普及。
    • 产业链整合:模组厂商向终端和方案延伸。
    • 聚焦细分领域:企业回归理性,做深行业。
    • 消费级市场:室内应用成为新增长点。

7.3 国内生态链企业分析

7.3.1 核心硬件厂商
  • 芯片厂商:
    • SoC芯片:ST(STM32WL系列,集成Cortex-M4,支持LoRa/FSK/MSK/BPSK,256KB Flash),ASR(翱捷科技,ASR650x系列,SIP封装,集成MCU+SX1262)。
    • SIP芯片:群登(S76系列,集成MCU、晶振、射频开关,甚至GNSS)。
  • 模组厂商:利尔达(全系列模组,覆盖多种应用)、华普微(出口为主)、唯传(项目带动模组)。
  • 终端/网关厂商:Seeed(开发者套件)、RAK、杭州罗万(电力领域)、博大光通(上百种终端)。
7.3.2 平台与应用方案商
  • 大型平台:
    • 腾讯云:在深圳南山、龙岗部署城域LoRaWAN网络(近千网关),提供IoT接入平台,支持亿级节点。
    • 阿里云:获得Semtech IP授权,联合ASR开发芯片;推出LinkWAN平台,支持D2D协议、OTA;认证合作伙伴产品。
  • 应用解决方案公司:慧联无限、唯传、中兴克拉等,提供从模组、网关到NS、AS的整套方案,深入行业解决具体问题。
7.3.3 外围伙伴
  • 电池及电容:锂亚电池+超级电容组合(如AVX SCCR12B105PRB),满足LoRa间歇发射需求。
  • 天线公司:提供弹簧天线、胶棒天线、玻璃钢天线,需根据外壳优化匹配。
  • 测试设备:固纬电子(集成式LoRa测试仪)、是德科技(通用仪表),简化研发与量产测试。

第8章:LoRa应用核心技术分析计算

8.1 传输距离问题

8.1.1 无线电波传播途径
  • 频段选择:UHF(300MHz~3GHz)兼顾覆盖与容量,LoRa常用470MHz(中国)、868/915MHz。
  • 传播方式:直射、反射、绕射、散射、穿透。城市环境中绕射占主导。
  • 地球曲率影响:视距极限距离 ( d = \sqrt{2R_e}(\sqrt{h_t}+\sqrt{h_r}) ),标准大气折射下 ( R_e = 8500\text{km} ),( d \approx 4.12(\sqrt{h_t}+\sqrt{h_r}) ) km(h单位m)。
8.1.2 弗里斯传输公式与链路预算
  • 自由空间损耗:( L_0 = 32.4 + 20\lg f + 20\lg d )(f:MHz,d:km)。
  • 链路预算:( \text{Link Budget} = P_t + G_t + G_r - P_{r,\min} )。
  • 接收信号强度:( P_r = P_t + G_t + G_r - L )。
  • 例8-2:SX1262最大输出22dBm,灵敏度-149.1dBm,链路预算171.1dB,理论地月通信距离。
  • 例8-4:中国规范下NB-IoT(900MHz,MCL=164dB)与LoRa(490MHz,MCL=161dB)极限距离比 ( r_{\text{NB}} / r_{\text{LoRa}} \approx 0.77 )。
8.1.3 绕射问题——菲涅耳区
  • 第一菲涅耳区半径:( r_1 = \sqrt{\frac{\lambda d_1 d_2}{d}} )。
  • 绕射损耗:当余隙 ( x < 0.5r_1 ) 时产生绕射损耗,( x=0 )(擦过)时损耗6dB。
  • 严重遮挡:使用菲涅耳-基尔霍夫绕射系数 ( \nu = h\sqrt{\frac{2(d_1+d_2)}{\lambda d_1 d_2}} ),查表或公式求绕射增益。
8.1.4 工程覆盖估算
  • 慢衰落:服从对数正态分布,标准差城市810dB,郊区68dB。路径损耗指数 ( n ):自由空间2,市区3~5。
  • OKUMURA-HATA模型(适用于1501500MHz,距离135km):
    [
    L_{b,\text{城}} = 69.55 + 26.16\lg f - 13.82\lg h_b - a(h_m) + (44.9 - 6.55\lg h_b)\lg d
    ]
    其中 ( a(h_m) ) 为终端天线高度修正因子。
  • 室内覆盖:浅层覆盖(穿透16dB),深度覆盖(25dB)。室外网关难以覆盖深度室内,需补盲(Relay或室内网关)。

8.2 信道容量问题

8.2.1 多址协议
  • 固定多址:FDMA、TDMA、CDMA。LoRa不同SF正交,可实现码分多址。
  • 随机多址:
    • 纯ALOHA:最大吞吐量 ( S_{\max} = 1/(2e) \approx 0.184 )。
    • 时隙ALOHA:( S_{\max} = 1/e \approx 0.368 )。
    • CSMA:非坚持型、1-坚持型、p-坚持型,吞吐量更高。
  • LoRa特点:
    • CAD(信道活动检测):低功耗监听,实现CSMA。
    • SF正交CDMA:同频带内不同SF信号可共存。
    • 冲突解调:同频同SF信号若强度差>6dB,可解调强信号。
8.2.2 信道容量计算
  • 私有协议网络:
    • 主动问询:信道利用率高,容量由问询周期和丢包率决定。
    • TDMA:需预留保护时隙(晶振偏移)和重传时隙,吞吐量可达70%~80%。
    • CSMA:智能家居场景,吞吐量约25%。
  • LoRaWAN网络:
    • 8信道网关,单信道按非坚持CSMA估算,取 ( S=0.36 )。
    • 容量 ( N = \frac{8}{f_{\text{avg}} \times t_{\text{avg}}} \times 0.36 )。
    • 智慧社区:( t_{\text{avg}}=250\text{ms}, f_{\text{avg}}=3\times10^{-4} ),( N \approx 3.84 )万。
    • 智慧表计:( t_{\text{avg}}=400\text{ms}, f_{\text{avg}}=2.7\times10^{-5} ),( N \approx 26.7 )万。
  • 程序示例:信道容量估算(Python)
    def lorawan_capacity(channels=8, t_avg_ms=250, f_avg=3e-4, S=0.36):
        t_avg = t_avg_ms / 1000.0
        N_per_channel = 1 / (f_avg * t_avg) * S
        return channels * N_per_channel
    print(lorawan_capacity())  # 智慧社区约38400
    
8.2.3 信道优化策略
  • 长包分包:将长数据分包发送,减少单次飞行时间,提高可靠性。
  • 组播与TDD应答:用于批量控制低功耗设备(如群组阀门),组播指令后各设备按编号分时上行确认。
  • 高并发防冲突:将随机多址转为固定多址,设备入网分配时隙,提升容量2~3倍。

8.3 定位技术

8.3.1 基站定位
  • 单基站区域定位:根据最强信号网关粗略定位(蜂窝小区)。
  • 多基站定位:
    • TDOA:测量信号到达多个网关的时间差,转换为距离差,需网关高精度时间戳(GPS授时,误差≤1μs对应300m误差)。
    • RSSI:根据信号强度反算距离比例,精度受环境衰减影响大。
  • 实测数据(深圳南山):TDOA误差100500m,RSSI误差1501000m;空旷地区TDOA可至30~100m。
8.3.2 测距定位
  • SX1280 TOF测距:主从模式,测量信号往返时间,精度1m(多次平均),距离20~2000m。
  • 缺点:需与多个网关逐次通信,功耗高、信道容量小,适用于园区/室内。
8.3.3 配合其他技术
  • GNSS+LoRa:终端采集GPS位置后通过LoRa上报,适用于资产追踪。
  • Wi-Fi/蓝牙探针+LoRa:扫描周围Wi-Fi/蓝牙信标ID,通过LoRa上传,云端匹配位置。
  • LR1110芯片:集成GNSS和Wi-Fi扫描,超低功耗定位。

8.4 功耗问题

  • 功耗计算:统计各状态电流和时间,平均电流 = (I_tx×t_tx + I_rx×t_rx + I_sleep×t_sleep) / 周期。
  • 例8-15:SX1268+STM32L151,每秒CAD监听2个码元(SF9,BW125kHz,码元4.1ms),每小时发送一次(30.25符号),22dBm发射。计算得平均电流0.058mA,1000mAh电池寿命约716天(理论值)。
  • 程序示例:电池寿命估算表(Excel可计算)

8.5 多普勒频率偏移

  • 多普勒频移:( f_d = \frac{v}{\lambda} \cos\alpha )。
  • LoRa容忍度:带宽的25%,例如125kHz带宽可容忍±31.25kHz,对应490MHz下极限速度约 ( v = f_d \lambda = 31.25\text{kHz} \times 0.61\text{m} \approx 19\text{km/s} ),远超地球表面运动。
  • 频率偏移(包内漂移):由加速度或温漂引起,低速率优化(LDRO)可将容忍度提升16倍。

第9章:LoRa应用案例详解

9.1 智慧表计

  • 市场背景:LoRa契合抄表需求(低功耗、远距离、易部署),表计产品一致性强,市场巨大。
  • 方案对比:
    • 自组网抄表:私有协议,需自行安装网关,实时性好,但施工复杂。
    • LoRaWAN抄表:统一标准,主动上报,容量大,下行控制延迟(Class B或异步唤醒)。
  • 三表对比:水表环境最恶劣、功耗要求最高;气表次之;电表供电充足。
  • 无线抄表技术对比(每天一抄):
    • LoRaWAN(无实时下行):功耗极低,延迟数小时。
    • NB-IoT(PSM):功耗低,需月租费,依赖运营商覆盖。
    • LoRa自组网:功耗中等,实时性较好,无月租。
  • 扩展应用:水务管理(水源、管网、水质)、电网故障监测。

9.2 智慧城市、社区、楼宇

9.2.1 智慧城市
  • 智慧路灯:单灯控制器(Class C),远程开关/调光/能耗监控,抗干扰强。
  • 智慧社区:多传感器(消防、安防、环境、生活),采用LoRaWAN,复用城域网(如腾讯南山网络)。
  • 智慧停车:路内停车地磁传感器,低功耗(电池寿命>2年),LoRa替代FSK,覆盖范围提升。
9.2.2 智慧消防
  • 需求:“九小”场所消防管理,无线烟感、灭火器压力监测等。
  • LoRa优势:穿透力强,低功耗(烟感电池寿命3年),易部署。
  • 案例:工业园区消防升级,部署LoRaWAN网关,无线压力/液位变送器,对接原有平台。
9.2.3 智慧建筑
  • 价值:精准计量、智能温控、预测性维护、安全保密。
  • 案例:凯捷智能办公室,使用LoRa传感器监测会议室占用、办公桌使用、环境舒适度,一个网关覆盖1万m²,提升利用率至75%。

9.3 智慧农业

9.3.1 背景
  • 农业物联网需求:土壤湿度、牲畜健康、环境监测。LoRa远距离、低功耗、无蜂窝覆盖地区可用。
9.3.2 应用
  • 智慧养殖:牛耳标监测体温、活动量,异常报警;体内传感器监测排卵。
  • 智慧种植:WaterBit灌溉传感器,监测土壤水分/盐分,远程控制阀门,提高产量20%~30%。
  • LoRa优势:私有网络、覆盖广、支持定位(无需GPS),农村地区效果显著。

9.4 智慧工业、物流

9.4.1 卫星物联网
  • LoRa卫星通信:近地卫星(~700km)可接收LoRa信号,实现无网络区域数据回传(如集装箱、野生动物追踪)。
  • 优点:终端硬件无需改造,抗多普勒,成本低。
9.4.2 园区定位
  • 痛点:化工园区人员/资产定位,室内外连续。
  • 方案:员工工牌内置LoRa+GNSS+蓝牙,室外GPS定位,室内蓝牙信标定位,数据通过LoRa上传。LoRa网关覆盖范围远,减少网关数量。
9.4.3 智能传感监控
  • 园区监控:多表集抄、电气火灾监测、灯控系统,一个LoRaWAN网关全厂覆盖。
  • 海运传感:Wilhelmsen采用2.4GHz LoRa,避免各国Sub-1GHz频段差异,监测船舶机械、燃油效率。

9.5 消费类应用

9.5.1 智能家居
  • LoRa优势:Sub-1GHz频段绕射强、灵敏度高(比2.4GHz技术高20dB)。
  • 产品:LLCC68芯片专为智能家居优化;阿里云“守护精灵”安防套装(网关+门磁+红外+紧急按钮);亚马逊Sidewalk协议(基于LoRa),集成于Echo音箱,覆盖社区。
  • Sidewalk构想:家庭网关组网成城域覆盖,实现宠物追踪、室外设备控制。
9.5.2 遥控、对讲、音视频
  • 遥控:SX1281 FLRC模式,高灵敏度、低延迟(3ms),用于高端模型遥控器。
  • 对讲机:LoRa替代FSK,相同速率下灵敏度高8~12dB,功耗低,支持CDMA多信道。
  • 音视频:20km图传、无线音箱,LoRa灵敏度优势实现远距离传输。
9.5.3 手机、穿戴
  • 手机集成:增加对讲、卫星求救功能,面向户外群体。
  • 定位防丢:
    • 亚马逊Fetch宠物标签,利用Sidewalk网关网络,城市级定位。
    • KEYCO LoRa寻找器:卡片网关+手机App,共享网络激励模式。

10. 程序示例

10.1. LoRa参数计算程序框架

# LoRa空中时间计算器
def calculate_toa(sf, bw, pl, cr=1, ih=0, de=0, crc=1):
    """
    sf: 扩频因子 7-12
    bw: 带宽 Hz
    pl: 载荷长度 bytes
    cr: 编码率 1-4 (对应4/5-4/8)
    ih: 隐式包头 0/1
    de: 低速率优化 0/1
    crc: CRC使能 0/1
    """
    tsym = 2**sf / bw * 1000  # ms
    
    # 计算载荷码元数
    numerator = 8*pl - 4*sf + 28 + 16*crc - 20*ih
    denominator = 4*(sf - 2*de)
    n_payload = 8 + max(0, (numerator + denominator - 1) // denominator) * (cr + 4)
    
    # 总码元数(前导8 + 载荷)
    n_symbol = 8 + n_payload + 4.25
    
    toa = n_symbol * tsym  # ms
    return toa

10.2. 灵敏度计算

def calculate_sensitivity(nf, bw, snr):
    """
    nf: 噪声系数 dB
    bw: 带宽 Hz
    snr: 所需信噪比 dB
    """
    kT = -174  # dBm/Hz
    return kT + nf + 10*math.log10(bw) + snr

# SF7所需SNR = -7.5dB
sensi_sf7 = calculate_sensitivity(7, 125000, -7.5)  # ≈ -123.5dBm

10.3. ADR算法简化版

def adr_algorithm(rssi, snr, current_sf, current_power):
    """
    根据接收信号质量调整SF和功率
    """
    # 估算链路余量
    margin = rssi - (-174 + 7 + 10*math.log10(125000) + snr_table[current_sf])
    
    if margin > 10:  # 链路余量大
        # 尝试提高速率(减小SF)
        new_sf = max(7, current_sf - 1)
        # 降低功率
        new_power = max(2, current_power - 2)
    elif margin < 0:  # 链路余量不足
        # 降低速率(增大SF)
        new_sf = min(12, current_sf + 1)
        # 提高功率
        new_power = min(17, current_power + 2)
    else:
        new_sf = current_sf
        new_power = current_power
    
    return new_sf, new_power

10.4. Class B时间同步

// 晶振误差补偿
#define CRYSTAL_PPM 20  // 20ppm晶振
#define BEACON_PERIOD 128000  // 128秒

// 计算漂移
int32_t drift = (int32_t)BEACON_PERIOD * CRYSTAL_PPM / 1000000;  // ±2.56ms

// 接收窗口宽度需大于漂移
#define RX_WINDOW (drift * 2 + 2)  // 加2ms余量

10.5. 测距算法

// 主机端测距
uint64_t t1 = get_timer();  // 发送时刻
send_ranging_packet();

// 等待从机回复
if (receive_response(&rx_time)) {
    uint64_t t2 = rx_time;  // 接收时刻
    uint64_t tof = t2 - t1 - TURNAROUND_TIME;  // 飞行时间
    float distance = tof * SPEED_OF_LIGHT / 2.0 / 1e9;  // 单位m
}

// 多次测量取中值滤波
#define MEASURE_COUNT 100
float distances[MEASURE_COUNT];
// 排序后取中位数

10.6. 空中时间计算(Python)

def calc_air_time(sf, bw_hz, cr, pl, preamble=8, header=1, crc=1, ldro=0):
    """
    sf: 5-12
    bw_hz: 带宽 (Hz)
    cr: 1-4 对应 4/5~4/8
    pl: 载荷字节
    """
    bw = bw_hz / 1000.0
    tsym = (2**sf) / bw  # ms
    h = 20 if header else 0
    crc_bits = 16 if crc else 0
    cr_val = cr
    payload_sym_nb = max(0, (8*pl - 4*sf + 28 + crc_bits - h) / (4*(sf - 2*ldro)))
    payload_sym_nb = int((payload_sym_nb + cr_val + 4) / (cr_val + 4)) * (cr_val + 4)
    n_symbol = preamble + 4.25 + payload_sym_nb
    return n_symbol * tsym

10.7. 链路预算与传输距离(Python)

import math
def free_space_loss(f_mhz, d_km):
    return 32.4 + 20*math.log10(f_mhz) + 20*math.log10(d_km)

def max_distance(pt_dbm, pr_min_dbm, gt_dbi, gr_dbi, f_mhz):
    lb = pt_dbm - pr_min_dbm + gt_dbi + gr_dbi
    # lb = 32.4 + 20lgf + 20lgd
    d_km = 10**((lb - 32.4 - 20*math.log10(f_mhz)) / 20)
    return d_km

10.8. 电池寿命估算(Excel风格公式)

  • 平均电流 (mA) = (I_tx * t_tx + I_rx * t_rx + I_sleep * t_sleep) / T_period
  • 寿命 (小时) = 电池容量 (mAh) / 平均电流 (mA)

10.9. 信道容量估算(LoRaWAN)

def lorawan_capacity(channels, t_avg_ms, f_avg, S=0.36):
    t_avg = t_avg_ms / 1000.0
    return channels / (f_avg * t_avg) * S

10.10 SX126x初始化配置(伪代码)

// 初始化SPI接口
Spi_Init();

// 复位芯片
Reset_LoRa();

// 设置工作模式为睡眠,以便后续配置
Set_OpMode(MODE_SLEEP);

// 配置RF频率
Set_RfFrequency(470000000); // 470MHz

// 配置调制参数:SF=7, BW=125kHz, CR=4/5, LDRO=0
Set_ModulationParams(MODEM_LORA, SF_7, BW_125, CR_4_5, 0);

// 配置包参数:显性包头,前导长度12,载荷长度可变,CRC开启
Set_PacketParams(MODEM_LORA, 12, HEADER_EXPLICIT, 20, CRC_ON, IQ_NORMAL);

// 配置发射功率:17dBm
Set_TxPower(17, PA_BOOST);

// 进入待机模式
Set_OpMode(MODE_STDBY_RC);

// 发送数据函数示例
void Send_LoRaData(uint8_t *data, uint8_t len) {
    Write_Buffer(0x00, data, len); // 写入FIFO
    Set_OpMode(MODE_TX); // 启动发送
    while( !Is_TxDone() ); // 等待发送完成
    Clear_Irq(IRQ_TX_DONE);
    Set_OpMode(MODE_STDBY_RC);
}

10.11 空中时间计算函数(Python示例)

def calc_air_time(sf, bw_hz, cr, pl, preamble=8, header=1, crc=1, ldro=0):
    """
    计算LoRa空中时间 (ms)
    sf: 扩频因子 5-12
    bw_hz: 带宽 (Hz)
    cr: 编码率 1-4 对应 4/5~4/8
    pl: 载荷字节数
    preamble: 前导符号数
    header: 1-显性包头, 0-隐性包头
    crc: 1-启用CRC, 0-不启用
    ldro: 1-低速率优化, 0-不启用
    """
    bw = bw_hz / 1000.0
    tsym = (2**sf) / bw  # ms
    h = 20 if header else 0
    crc_bits = 16 if crc else 0
    cr_val = cr
    # 计算载荷符号数
    payload_sym_nb = max(0, (8*pl - 4*sf + 28 + crc_bits - h) / (4*(sf - 2*ldro)) )
    payload_sym_nb = int((payload_sym_nb + cr_val + 4) / (cr_val + 4)) * (cr_val + 4)
    n_symbol = preamble + 4.25 + payload_sym_nb
    return n_symbol * tsym

# 示例
print(calc_air_time(7, 125000, 1, 2, preamble=12, header=0, crc=0))  # 约24.832ms

10.12 电池寿命估算(Excel/公式)

假设:
- 电池容量 C = 2000 mAh
- 每日发送次数 N = 10
- 每次发射时间 T_tx = 0.1 s,发射电流 I_tx = 45 mA
- 每次接收时间 T_rx = 0.2 s(含RX1+RX2),接收电流 I_rx = 5 mA
- 休眠电流 I_sleep = 0.002 mA
- 每日时间 = 86400 s

每日耗电量:
E_tx = N * T_tx * I_tx = 10 * 0.1 * 45 = 45 mAs
E_rx = N * T_rx * I_rx = 10 * 0.2 * 5 = 10 mAs
E_sleep = (86400 - N*(T_tx+T_rx)) * I_sleep ≈ 86400 * 0.002 = 172.8 mAs
总每日耗电 = 45+10+172.8 = 227.8 mAs = 0.0633 mAh

电池寿命 = 2000 / 0.0633 ≈ 31600 天 ≈ 86.5 年(实际考虑自放电和电池容量衰减,可能10年以上)

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐