LoRaWAN 规范1.0 (1.0.1)(章节7)

LoRaWAN 规范1.0 (1.0.1)(第七章部分)

最近在做LoRa, LoRaWAN协议略微复杂,边读边翻译,现在把部分关键的翻译分享给各位做物联网的同行。
当然里面掺杂了一些我的个人笔记,希望对大家有所帮助。
如果哪里有问题,欢迎应各位留言或者邮件指正。

翻译很辛苦,转载请注明出处和源链接

7. 物理层(Physical Layer)

7.1 欧洲ISM频段 863-870MHz

  • 7.1.1 欧洲 863-870 前导码

    同步字见下表:

    调制方式 同步字 前导码长度
    LoRa 0x34 8 symbols
    GFSK 0xC194C1 5 bytes

    symbols参考资料: 比特速率、码片速率和符号速率等区分

    感谢群友 @周先生背后有只鬼 提供的资料
    大家谁知道 8 symbols 怎么理解?symbols 这个专业术语始终不知道该理解成什么,在这里向大家求教一下。

  • 7.1.2 欧洲863-870 ISM频段信道频率

    欧洲的无线电频谱的ISM频段由ETSI[EN300.220]分配。

    网络运营商可以自己定义网络通道,但任何 EU868MHz 终端设备都必须实现下面三个默认信道。这些信道是所有网络网关都必须一直终监听的最小集合。

    调制方式 带宽[kHz] 信道频率[MHz] FSK 比特率 或 LoRa 数据率或比特率 Nb 信道 占空比
    LoRa 125 868.10 868.30 868.50 DR0 至 DR5 / 0.3-5kbps 3 <1%

    为了访问物理层,ETSI强制规定了一些限制,发射机可以在线的最大时间或者发射机每小时内可以发送的最大时间。ETSI允许使用占空比限制或者使用所谓的Listen Before Talk Adaptive Frequency Agility (LBT AFA) 传输管理。为了遵守ETSI规定,现在的LoRaWAN规范仅使用占空比对传输做限制。

    LoRaWAN强制规定每个子带的占空比限制。给定子带上每一帧数据的发射时间和空中传输时间都会被记录下来。子带在接下来 Toff 秒之内不能再次使用,其中:

    Toff_subband=TimeOnAirDutyCycle_subbandTimeOnAir

    在指定子带不可用期间,设备可以通过其它子带发送数据,如果所有的子带都不可用,设备就只能等待下一次传输。设备根据可用子带调整其信道调频顺序。

    例如:A设备在默认信道上只传输帧数据消耗了0.5s,该信道子带的占空比 1%,那么A在接下来 49.5s 内不能再次使用整个子带(868-868.6)。

    49.5=0.51%0.5=0.5×1000.5

    EU868MHz ISM 频段的终端设备的默认参数如下:

    -默认无线传输的发送功率:14 dBm

    EU868Mhz 频段的终端设备应能够在 863~870 MHz 频段范围内运行,并且应有至少能存储16个信道参数的信道数据的结构体。一个信道数据结构对应一个频率以及一组改频率下可用的数据速率。

    前三个信道是 868.1,868.3 和 868.5MHz/ DR0 至 DR5,这些参数必须在所有(EU868MHz下使用的)终端设备实现。这些默认信道不能通过 NewChannelReq 命令进行修改,以保证终端设备和网关之间存在最小的信道集合。

    下表给出了终端设备用来发送入网激活请求的频率列表,入网请求传输占空比绝对不能超过 0.1%

    表13:EU863-870 JoinReq Channel list

    解调模式 带宽[kHz] 信道频率[MHz] FSK比特率或\n\rLoRa数据速率/比特率 Nb信道 占空比
    LoRa 125 864.10,864.30,864.50,868.10,868.30,868.50 DR0-DR5/0.3-5kbps 6 <0.1%
  • 7.1.3 EU863-870 数据速率以及 节点输出功率的编码

    下表是数据速率(DR)和 节点输出功率(TXPower)在 EU863-870上的编码:

    表14: 数据速率和TX功率

    数据速率 配置 对应物理比特速率[bit/s]
    0 LoRa: SF12 / 125 kHz 250
    1 LoRa: SF11 / 125 kHz 440
    2 LoRa: SF10 / 125 kHz 980
    3 LoRa: SF9 / 125 kHz 1760
    4 LoRa: SF8 / 125 kHz 3125
    5 LoRa: SF7 / 125 kHz 5470
    6 LoRa: SF7 / 250 kHz 11000
    7 FSK: 50 kbps 50000
    8..15 RFU

    TXPower 配置
    0 20 dBm (if supported)
    1 14 dBm
    2 11 dBm
    3 8 dBm
    4 5 dBm
    5 2 dBm
    6..15 RFU
  • 7.1.4 EU863-870 JoinAccept CFList

    欧洲 863-870 ISM频段的LoRaWAN在JoinAccept消息中实现了一个16字节的可选信道配置列表(CFlist)。

    CFList由第4至第8这5个信道组成,每个信道都是3字节的无符号整型数字,不使用的信道填充0。所有列表里面的信道都可以使用LoRa模式的 DR0~DR5。列表最后有一个填充字节用来凑足16字节,该字节暂时无意义(保留字节)。

    字节 3 3 3 3 3 1
    CFList Freq Ch4 Freq Ch5 Freq Ch6 Freq CN7 Freq Ch8 RFU

    列表中道值的单位是 100Hz,其中100Mhz以下的频率暂时保留(待未来使用)。这就可以以100Hz为步长,在100MHz~1.67GHz之间设置任意频率的信道。CFList是可选配置,可以通过检查JoinAccpet消息长度来检测它。一旦CFList出现,就会用它里面的信道替换节点上除了3个默认信道(第6章有说明)以外的信道,新的信道立刻可用并被终端用来通信。

  • 7.1.5 EU863-870的LinkAdrReq命令

    EU863-870的LoRaWAN支持最多16个信道,此时 ChMaskCntl 字段值是0,ChMask字段挨个 打开/关闭 这16个信道。

    表15:ChMaskCntl 值列表

    ChMaskCntl ChMask 控制的信道
    0 信道 1 ~ 16
    1 RFU
    RFU
    4 RFU
    5 RFU
    6 开启所有信道。设备打开所有已经定义的独立于ChMask字段的信道
    7 RFU
  • 7.1.6 EU863-870 payload最大字节数

    MACPayload最大长度(单位:字节)见下表。该长度受PHY层限制,考虑到可能会有中继封装层 PHY层依赖于有效调制速率。下表同样给出了在没有FOpt的情况下,应用负载最大长度的参考值(翻译调整,感谢朋友:四渡赤水在缺少FOpt的情况下,应用负载的最大长度(N)仅给出了供参考的信息 (不参考前面章节根本不知道什么断句,这语法也是醉了)。如果FOpt字段费空,N的值可能会更小:

    表 16: EU863-870 payload最大长度

    DataRate M(MACPayload长度) N(FRMPayload长度)
    0 59 51
    1 59 51
    2 59 51
    3 123 115
    4 230 222
    5 230 222
    6 230 222
    7 230 222
    8:15 未定义 未定义
  • 7.1.7 EU863-870 接收窗口

    第一个接收窗口RX1使用和上行(使RX1开启的上行消息)相同的信道,数据速率是上行数据速率的一个函数,RX1DROffset 见下表。RX1DROffset的范围是[0:5],[6:7]是保留值。

    RX1DROffset上传数据速率(列) \ 下发数据速率RX1 slot (行) 0 1 2 3 4 5
    DR0 DR0 DR0 DR0 DR0 DR0 DR0
    DR1 DR1 DR0 DR0 DR0 DR0 DR0
    DR2 DR2 DR1 DR0 DR0 DR0 DR0
    DR3 DR3 DR2 DR1 DR0 DR0 DR0
    DR4 DR4 DR3 DR2 DR1 DR0 DR0
    DR5 DR5 DR4 DR3 DR2 DR1 DR0
    DR6 DR6 DR5 DR4 DR3 DR2 DR1
    DR7 DR7 DR6 DR5 DR4 DR3 DR2

    接收窗口 RX2 使用修改后的频率和数据速率。默认参数是 869.525 MHz/DR0(SF12,125 kHz)

  • 7.1.8 EU863-870 默认设置

    下面是 EU863-870Mhz 频段相应参数的推荐值

    参数 推荐值
    RECEIVE_DELAY1 1 s
    RECEIVE_DELAY2 2 s (必须是 RECEIVE_DELAY1 + 1s)
    JOIN_ACCEPT_DELAY1 5 s
    JOIN_ACCEPT_DELAY2 6 s
    MAX_FCNT_GAP 16384
    ADR_ACK_LIMIT 64
    ADR_ACK_DELAY 32
    ACK_TIMEOUT 2 +/- 1 s (1 ~ 3 的随机值)

    如果终端中实现的实际值和这些默认值不一样(比如,RECEIVE_DELAY1和RECEIVE_DELAY2延迟时间更长),这些参数的值一定要通过外带信道(out-of-band channel)通知给网络服务器。网络服务器可能会不接受与默认值不一致的参数。

7.2 美国 902-928MHz ISM 频段

章节7.2、7.3、7.4结构一样,只是带入不同的参数,由于时间关系目前就不做重复劳动了,以后时间充裕再补充上。

(略)

7.3 中国 779-787MHz ISM 频段

(略)

7.4 欧洲 902-928MHz ISM 频段

(略)

无题

目前的LoRaWAN协议(也就是lorawan 1.0.x)可以分成两部分。

  • 章节1~7、17~.

    这是LoRaWAN协议的基础,讲A类和C类。
    关于第17章C类,由于相对简单也就不特意放到前面翻译。

  • 章节8~13

    主要讲B类。A类和B类在协议格式上区别不大,这两个除了协议包,其它变动都很大,想要在同一个逻辑里面实现比较困难。

不少朋友留言需要源代码,这里建议大家尽量先自己想办法找,理由就是对你自己有好处。

如果实在找不到,节点、网关和服务器(都是demo)的开源代码我也同步了一份到开源中国

另外,建了一个群,有兴趣的朋友可以加入进来一起讨论问题:428109903

PS

看到有些伙伴提问问题,由于本人的CSDN一般不在线。

为了方便交流,附个邮箱,有问题或者想法的朋友可以 给我写信


知识共享许可协议 本文由 qingchuwudi 译制,除非另有声明,在不与原著版权冲突的前提下,本作品采用知识共享署名 3.0 中国大陆许可协议进行许可。

posted @ 2019-12-21 18:01  qingchuwudi  阅读(696)  评论(0编辑  收藏  举报