1. LoRaWAN概述:从物理层到网络层的全景解读

各位同学好,我是你们这门课的主讲工程师。今天咱们来聊聊LoRaWAN的底层逻辑。说实话,我最早接触LoRa的时候,也被它那套「远距离、低功耗、低速率」的组合拳给震住了。后来做了几个项目,踩了不少坑,才慢慢摸透了它的脾气。

这一章,我会从技术原理讲到协议栈,再到实际部署中的频段选择。嗯,内容有点多,但都是干货。你想想看,如果连LoRa和LoRaWAN的区别都搞不清楚,后面做一致性测试肯定会一头雾水。

1.1 LoRa技术原理:为什么它能传那么远?

LoRa这个名字,其实是「Long Range」的缩写。说白了,它就是Semtech公司搞出来的一种物理层调制技术。我当年第一次看它的数据手册时,最让我惊讶的是——它居然能在-148dBm的噪声底下解调出信号。这是什么概念?相当于你在北京天安门广场,听到上海外滩有人用蚊子般的声音说话。

LoRa的核心技术是扩频调制。它用了一个叫「Chirp Spread Spectrum(CSS)」的东西。简单说,就是把一个窄带信号,扩展到很宽的频带上去发送。这样做的好处是:抗干扰能力强,接收灵敏度高。

关键参数:

  • 扩频因子(SF):从SF7到SF12。SF越大,传输距离越远,但速率越慢。我个人习惯在城区用SF9,郊区用SF12。
  • 带宽(BW):常见125kHz、250kHz、500kHz。带宽越宽,速率越快,但灵敏度会下降。
  • 编码率(CR):4/5到4/8。用于前向纠错,CR越低,冗余越多,抗干扰越强。

我在项目中遇到过一件事:有个客户非要用SF7在郊区做覆盖,结果终端离网关才2公里就掉线了。我建议他换成SF12,覆盖距离直接拉到8公里。所以啊,SF的选择不是越高越好,而是要根据实际场景来权衡

1.2 LoRaWAN协议栈架构:分层看更清楚

LoRaWAN是MAC层协议,它跑在LoRa物理层上面。很多人容易把这两个概念搞混。我打个比方:LoRa是公路,LoRaWAN是交通规则。公路再好,没有规则也会堵车。

协议栈分三层:

  • 物理层(LoRa):负责无线信号的收发。这部分由Semtech的SX127x/SX126x芯片搞定。
  • MAC层(LoRaWAN):负责信道接入、数据确认、加密等。这是咱们做一致性测试的重点。
  • 应用层:用户自定义的数据格式。比如传感器上报的温度、湿度。

这里有个容易踩的坑:LoRaWAN的MAC层是半双工的。也就是说,终端要么在发,要么在收,不能同时进行。我曾经有个同事,在终端里同时开了两个收发任务,结果数据全乱了。嗯,这个教训挺深刻的。

避坑指南:我曾经在调试时发现终端上报的数据总是丢包。查了半天,原来是MAC层重传机制没开。LoRaWAN默认有确认帧(ACK)机制,但需要你在应用层主动请求。否则,网关收到数据也不会回复确认。

1.3 LoRaWAN网络拓扑:Star-of-Stars

LoRaWAN用的是星型拓扑,但它是「星中星」——终端到网关是星型,网关到网络服务器也是星型。为什么不用Mesh?我刚开始也有这个疑问。后来想明白了:Mesh虽然覆盖广,但功耗高、延迟大。LoRaWAN的目标是低功耗,终端能直接连网关,绝不绕路。

网络里有三个角色:

  1. 终端节点(End Device):传感器、执行器。分Class A/B/C三类。Class A最省电,Class C延迟最低。
  2. 网关(Gateway):负责转发数据。它不解析数据,只做桥接。我见过最夸张的项目,一个网关接了2000多个终端。
  3. 网络服务器(Network Server):核心大脑。负责去重、解密、速率自适应(ADR)等。

你想想看,如果网关坏了,整个区域就瘫痪了。所以网关的可靠性很重要。我在部署时,一般会留一个备用网关,或者用双网关做冗余。

1.4 LoRaWAN频段与区域参数

LoRaWAN用的是ISM频段,不需要授权。但每个国家/地区的频段划分不一样。我整理了一张表,方便你对照:

区域 频段范围 信道数 最大发射功率 占空比限制
RU864 864-870 MHz 8 +14 dBm 1%
CN470 470-510 MHz 96 +19 dBm 1%
EU868 863-870 MHz 8 +14 dBm 1%
US915 902-928 MHz 64+8 +20 dBm 无(但需跳频)

这里有个细节:CN470的信道数最多,有96个。但它的占空比限制很严格,只有1%。也就是说,一个信道在1小时内,最多只能发36秒。我有个项目是做智能水表,每天上报一次数据,完全够用。但如果你要做实时监控,就得考虑多信道跳频了。

重要提醒:我曾经在EU868频段上吃过亏。当时没注意占空比限制,终端连续发送数据,结果被监管机构警告了。后来我加了个定时器,每次发送前检查信道占用时间。嗯,合规性测试是认证的第一步,千万别马虎。

US915比较特殊,它分上行和下行子频段。上行用902-928 MHz,下行用923-928 MHz。而且它没有占空比限制,但要求跳频。说白了,就是不能一直占着一个信道发,得来回跳。这个在一致性测试里是个重点,后面我会详细讲。

1.5 小结:从原理到实战的桥梁

这一章我们讲了LoRa的物理层原理、LoRaWAN的协议栈架构、网络拓扑,以及不同区域的频段参数。你可能会觉得内容有点散,但这些都是后面做一致性测试的基础。比如,你如果不知道CN470有96个信道,那测试时信道列表配置就会出错。

我个人建议,学完这一章后,你可以做两件事:

  • 打开Semtech的SX126x数据手册,看看LoRa调制器的寄存器配置。
  • 用LoRaWAN模拟器(比如ChirpStack)跑一遍入网流程,感受一下Class A/B/C的区别。

下一章,我们会深入LoRaWAN的入网流程和MAC命令。到时候,我会拿一个真实的抓包数据来拆解。嗯,敬请期待。