1、LoRa技术基础:LoRa是什么?LoRa的物理层原理、扩频因子与带宽的关系
大家好,我是你们的讲师。今天咱们正式开讲LoRa低功耗策略的第一章。
说实话,我最早接触LoRa是在一个智慧农业的项目里。客户要求把传感器丢到田里,电池撑三年。当时我第一反应是——这不可能吧?后来深入研究LoRa,才发现它确实有两把刷子。
好,咱们先搞清楚最基础的问题:LoRa到底是什么?
1.1 LoRa是什么?
LoRa,全称是Long Range,长距离无线通信技术。它由法国公司Cycleo开发,后来被Semtech收购。嗯,现在市面上绝大多数LoRa芯片都是Semtech家的。
你可能会问:它和Wi-Fi、蓝牙有什么区别?
说白了,LoRa就是为远距离、低功耗、低速率场景设计的。它不追求传得快,追求传得远、省电。我做过一个测试,在开阔环境下,LoRa能传5-10公里。Wi-Fi呢?几十米就歇菜了。
LoRa工作在免授权频段,比如中国的470-510MHz,欧洲的868MHz,美国的915MHz。这意味着你不用申请频谱牌照,直接就能用。
核心特点总结:
- 传输距离:城市1-3公里,郊区5-10公里,开阔地15公里以上
- 功耗:接收电流约10mA,休眠电流低至2μA
- 速率:0.3kbps - 50kbps,看扩频因子和带宽配置
- 频段:Sub-1GHz免授权频段
1.2 LoRa的物理层原理
LoRa的物理层用的是扩频技术,具体来说是CSS(Chirp Spread Spectrum,啁啾扩频)。
什么是啁啾?我打个比方。你听过鸟叫吧?鸟叫声的频率是变化的,从低到高或者从高到低。LoRa的信号就是这种频率连续变化的波形,叫chirp信号。
为什么用这种技术?
原因很简单:抗干扰能力强。传统的FSK(频移键控)信号,遇到同频干扰就完蛋。但LoRa的chirp信号,因为频率一直在变,干扰信号很难把它完全压住。我在一个工厂项目里测试过,旁边有大功率电机在转,FSK通信直接断连,LoRa还能稳定收发数据。
LoRa的物理层帧结构是这样的:
| 前导码 | 同步字 | 物理层头部 | 净荷 | CRC |
- 前导码:接收机用来检测信号、同步时钟的。长度可配置,默认12个符号。
- 同步字:区分不同网络的标识。比如公共网络用0x34,私有网络可以自定义。
- 物理层头部:包含净荷长度、编码率等信息。
- 净荷:你要传的数据。
- CRC:循环冗余校验,检测数据有没有传错。
个人经验:前导码长度不是越长越好。我见过有人把前导码设成20个符号,结果接收机每次唤醒都要花很长时间去检测,功耗反而上去了。一般场景12个符号就够用。
1.3 扩频因子与带宽的关系
好,这部分是重点。扩频因子(SF,Spreading Factor)和带宽(BW,Bandwidth),是LoRa最核心的两个参数。
扩频因子(SF):
扩频因子表示每个数据位用多少个chirp符号来编码。SF的取值范围是7到12。
- SF7:每个bit用2^7=128个符号编码
- SF12:每个bit用2^12=4096个符号编码
你想想看,SF越大,每个bit用的符号越多,信号就越容易被接收机从噪声里捞出来。所以SF越大,灵敏度越高,传得越远。
但代价是什么?速率变慢。因为传一个bit需要更多时间。
带宽(BW):
带宽就是chirp信号扫过的频率范围。常见的有125kHz、250kHz、500kHz。
- 带宽越大,chirp信号变化越快,速率越高
- 带宽越大,噪声也越多,灵敏度会下降
它们的关系:
数据速率(DR)的计算公式:
DR = SF * (BW / 2^SF) * (4/4+CR)
其中CR是编码率,通常取1(即4/5)。
我直接给你一个速查表:
| 扩频因子 | 带宽(kHz) | 数据速率(bps) | 灵敏度(dBm) | 典型距离 |
|---|---|---|---|---|
| SF7 | 125 | 5468 | -123 | 近 |
| SF9 | 125 | 976 | -131 | 中 |
| SF12 | 125 | 293 | -137 | 远 |
| SF7 | 500 | 21875 | -117 | 近 |
| SF12 | 500 | 1172 | -131 | 中 |
注意:我曾经在一个项目中,为了追求最远距离,把SF设成12,带宽设成125kHz。结果数据速率只有293bps,传一个100字节的包要将近3秒。节点功耗反而上去了,因为发射时间太长。所以不是SF越大越好,要权衡。
实际选型建议:
- 近距离(几百米内):用SF7,带宽250kHz或500kHz,速率高,省电
- 中距离(1-3公里):用SF9,带宽125kHz,平衡速率和距离
- 远距离(5公里以上):用SF12,带宽125kHz,但要做好功耗预算
嗯,这里要注意一点。LoRa有个特性叫正交性。不同SF的信号之间是近似正交的,也就是说SF7的信号不会干扰SF12的信号。这在组网时很有用,可以同时接收不同SF的数据。
我个人习惯,在设计节点时,先把SF和BW的配置做成可调的。这样在现场测试时,可以根据实际环境灵活调整。我遇到过好几次,理论计算觉得SF9就够了,结果现场有遮挡,不得不改成SF11。
好,第一章的内容就到这里。LoRa的基础原理搞清楚了,下一章咱们聊聊LoRaWAN协议栈,看看数据是怎么从节点传到服务器的。