LoRa
LoRa 是广泛使用的 LPWAN 技术之一,属于物理层调制技术,用于创建远距离通信链路。传统无线通信系统,物理层大多采用频移键控(Frequency-shift Keying,FSK)调制来获得低功耗。LoRa 技术之所以可以进行超远距离的无线通信,主要依赖于其物理层 PHY 的实现。LoRa 物理层采用了线性调频扩频调制技术 CSS(Chirp Spread Spectrum)进行可靠的低功耗无线通信。 LoRa 中的数据信息携带在不同的 chirp(线性调频)信号中, chirp 信号为频率线性增加或降低的无线信号,并使用不同的扩频因子 SF表示每一个 chirp 中所包含的比特量。
下图中所示的 6 个 chirp 信号的频率(纵坐标)随时间(横坐标)的变化线性增长,其分别对应不同的扩频因子,即每个chirp 信号所表示的信息量会有差别,因此不同扩频因子对应的信号传输时间也有所不同。更大的扩频因子会导致传输相同数据量的信号持续时间更长,因此有更低的数据传输率。同时, LoRa 网络中更大的扩频因子意味着更高的数据传输可靠性, LoRa 信号会有更长的传输距离。例如,为了传输 100 字节的数据包,使用最高的数据率和最低的数据率分别需要耗费 146 毫秒和 3200 毫秒的时间,存在 22倍的差距。
LoRa 调制方式
LoRa 采用了啁啾扩频技术来调制信号。chirp 是指频率随时间改变的信号。在 LoRa 调制方式中,一个 chirp 是一个频率随时间线性变化的信号。如果频率随时间线性增加,则称该信号为 upchirp,如果频率随时间线性减小,则称该信号为 downchirp。最上面的图展示了一个 LoRa 数据包中的不同 chirp。最左边的一部分 chirp 称为前导码(preamble)。它由多个标准的 upchirp 组成,即 chirp 的频率随时问线性增加,且在带宽范围内,从最低的频率增加至最高的频率。前导码之后是开始帧定界符(Start Frame Delimiter, SFD)。它由 2.25 个标准 downchirp 组成,即 chirp的频率随时问线性滅小,且在带宽范围内,从最高频率减小至最低频率。开始帧定界符之后的 chirp 包含了真正的数据。LoRa 将数据调制到 chirp 的起始频率上,不同的起始频率代表不同的数据。
如果一个chirp 的频率在增大的过程中超过了带宽限制的最大频率,则会重新从最小频率开始上升,然后增加到起始频率。LoRa 中 chirp 的起始频率决定了它携带的数据比特,因此解调 LoRa 信号的核心就是确定 chirp 的起始频率。解调过程首先将 LoRa 信号与一个标准的 downchip 相乘,将其能量集中到某一个频率上。然后进行快速傅里叶变换(Fast Fourier Transform, FFT ),得到的结果会在频域上产生一个峰值,其对应的频率即为初始频率。最后通过不同的初始频率即可得到不同的数据比特。理论上,LoRa 的数据率最高可达 27kbit/s。虽然数据率有限,但是足够应用在低功耗广域网中。
物理层参数
LoRa 采用了基于啁啾扩频的调制方式,物理层包含了一些可调节的参数:扩频因子、带宽、频率、发射功率和编码率。这些参数的不同组合可以实现不同的通信距离、数据率和能耗。LoRa 数据包中的信号由 upchirp 和 downchirp 组成,而 chirp 的倾斜的角度