Lora物理层简介

LoraWAN是Semtech公司主导推进的低功耗广域网LPWAN技术。由于采用了基于CSS(ChirpSpread Spectrum)的无线调制/解调技术,接收灵敏度达到,在低于1GHz的ISM频段,其传输距离达到了十几公里,非常适合抄表等低速的无线应用。

 但LoraWAN的协议只规定了MAC层的规范。关于Lora物理层,只是简单规定了可以采用两种调制方式:FSK和Lora。为了最大限度地发挥发挥LoRaWAN的优势,需要采用Lora调制。但Lora调制技术是Semtech公司的专利技术,并没有公开。该专利技术由法国公司Cycleo开发,Cycleo公司在2012年被Semtech收购。主要相关的专利为EP2763321(欧洲、2013)US7791415(美国、2008)。本文主要介绍LoraWAN的物理层,其中也包括一些国外对LoraWAN进行逆向工程的结果。

Lora物理层概要

为了尽可能降低耗电,在终端设备侧(Class-A),通过在发送之后设置两个接受窗口的方式,避免了其他一些技术(如基于802.15.4的一些标准)定时开机执行接收动作的操作,从而达到更长的睡眠时间。其缺点是下行数据不能自由发送,必须在有上行数据时才有机会发送。

Lora利用小于1GHz的ISM频段,而这些频段,各个国家和地区往往有不同的规定,因此,在Lora协议中,专门有一个单独的文档《LoRaWANRegional Parameters》用于规定各种频段的物理层参数。

 Lora调制采用Chirp扩频技术。Chirp扩频源于雷达测距的应用,从上世纪九十年代开始探索Chirp扩频在通信中的应用。Chirp扩频通过在一个Symbol(符号)的时间周期内,让频率带宽范围内从低到高(UP)、或从高到低(DOWN)变化的方式来调制信号的方式来传输数据。Chirp扩频具有良好的抗多径、多普勒效应的优点,而得到了较多的关注。

Lora物理层帧结构

物理层帧格式如下:

物理层帧格式

前导码Preamble保护一个Syncword用于同步,其长度和SyncWord在RegionalParameter中定义。如US902-928,对LORA调制方式,syncword为0x34,Preamble长度为8个Symbol。

 Header部分可以隐含,有Implicitmode(隐含模式)和Explicitmode之分。如果SF=6,则采用Implicitmode,否则,采用Explicitmode。在Header中定义以下参数:

  • payload长度(以byte为单位)
  • FEC(Forward Error Correction)编码率(coderate)
  • 可选16bits的Payload CRC是否采用。

 但在LORA协议中,规定Preamble长为8个Symbol,在下行包中不采用payloadCRC,但在上行包中采用。

下行数据传输窗口

在Class-A设备中,接收只能在发送之后的特定时间段内进行,该时间段为接收窗口。在每一个发送包之后,跟着两个接收窗口。其参数如下所示:

第一个接收窗口的参数:

  • 打开时间:Uplink Modulation结束后RECEIVE_DELAY1秒之后
  • 最小持续时间:保证下行Preamble的有效检出。
  • 所用频率:上行频率的函数,由Regional Parameter决定
    如US902-928,则:RX1Channel Number = Transmit Channel Number Modulo 8
  • 数据速率:上行速率的函数,由Regional Parameter决定
  • 如US902-928,由下表决定:

US902-928

RX1DROffset有效取值范围为:[0,3]。

第二个接收窗口的参数:

  • 打开时间:Uplink Modulation结束后RECEIVE_DELAY2秒之后
  • 最小持续时间:保证下行Preamble的有效检出。
  • 不打开条件:如在RX1中检出有效的发给本设备的Frame,且通过MIC检查。
  • 所用频率:一个可配置的固定频率
    如US902-928中,缺省为923.3MHz
  • 数据速率:一个可配置的固定速率
    如US902-928中,缺省为DR8

Lora调制

采用Lora调制时,只需要给物理层指定简单的几个参数:

  • Data Rate:数据速率
  • TX Power:Maximum Transmit Power
  • ChMask&ChMaskCntl:定义可用的信道。
  • NBTrans:the number of transmissions of eachuplink message, applied ONLY to “UNCONFIRMED” uplink frames. 但如果在相应的RX1或RX2收到下行包,则停止重发。

由于数据速率与带宽和扩频系数存在一对一的关系,因此也相当于指定了带宽和扩频系数。下表是EU867-870频段的数据速率与带宽和扩频系数的关系。

EU867-870频段的数据速率与带宽和扩频系数的关系

在Lora调制中,使用的基本参数如下:

  • 频度宽度:BW
  • 扩频因子:SF
  • CodingRate:CR

一个扩频符号(Symbol)周期Ts为:

一个扩频符号(Symbol)周期Ts

因此符号速率为:

符号速率

一个扩频符号(Symbol)编码的bit数与扩频因子相同,因此调制的bit速率为:

调制的bit速率

通过总结各路大拿分析的LORA的信号,可以得到以下一些有用信息:

1)        Preamble的构成为:PreambleLength寄存器指定个数Symbol的up-chirp,再加上两个up-chirp的syncword编码的Symbol,外加两个symbol长的down-chirp,最后是1/4个Symbol长的up-chirp。

2)        所有的数据都以一个Symbol长的up-chirp编码,在一个Symbol中通过起始频率的偏移来编码SF bit的数据。在一个Symbol中当频率达到频带的边界时,反转到另一侧。在一个Symbol的时间范围内,整个频带都覆盖一次。4bitsyncnword的编码如下图所示:

4bitsyncnword的编码

3)        一个Symbol的时间长度为 Ts。

但是对以下两个问题,还没有明确的答案:

1)        怎样保证不同Device在任意时间点发出的数据包完整可解?

2)        多Device同时发送时,怎样保证不冲突?

文章转载自:ronhu的博客