文档

深入了解LoRaWAN®MAC命令

摘要进入深度对MAC命令用于LoRaWAN®网络管理。它是针对终端设备软件开发人员和管理人员的团队建设设备与罗拉®实现LoRaWAN v1.0.4链路层规范。这篇文章可以帮助你理解不同类型的MAC命令,每个命令用于什么,如何解释的命令。

已经在使用的软件等LoRaMAC-Node™处理MAC命令吗?这篇文章给你的背景你需要了解软件是如何工作的,检查代码,获得信心,你的后端设备标准和最佳实践LoRaWAN链路层中定义的规范。

发送和接收MAC命令

MAC命令从网络服务器发送到终端设备在下行,或从设备到网络服务器连接。

有两个方法可用于发送MAC命令:内部帧选项(录像)领域的同时,其他数据发送帧内有效负载(FRMPayload),或作为一个单独的包使用整个框架的有效载荷。

当MAC命令发送与其他包(也称为中的数据肩扛)、帧选项的长度(FOptsLenMAC的有效载荷)字段设置为大于0的值(0),MAC中发送命令本身录像帧头。的命令录像场不加密LoRaWAN 1.0.x。

图说明MAC与常规数据下行发送的命令

MAC与常规数据下行发送的命令

MAC命令在一个单独的发送数据包时,框架端口(FPortMAC载荷)字段设置为0。的FRMPayload在MAC载荷包含MAC命令。的录像在帧头都不见了。的FOptsLen领域框架控制也设置为0,和FRMPayload字段必须加密4.3.3节中描述的MAC帧载荷加密(FRMPayload)1.0.4 LoRaWAN链路层规范

图说明MAC命令在一个单独的数据帧发送

在一个单独的数据帧发送MAC命令

MAC命令可以发送单独或一组并发MAC命令。所有MAC命令开始一个八位字节包含一个命令标识符(CID)。这CID表明MAC命令类型遵循在随后的八位字节。随后的八位字节的长度取决于MAC命令的类型,确定在前面的CID。

下图显示了三种不同的结构MAC命令请求,并说明每个命令可以有不同的长度。如前所述,所有MAC命令从一个CID八隅体开始。的LinkCheckReqMAC命令只包含CID八隅体并没有有效载荷。DutyCycleReq包含两个八位字节,CID八隅体紧随其后的是一个八位字节包含相关数据请求。LinkADRReq共有五个八位字节,CID八隅体后面跟着四个八位字节包含数据。

图显示的结构“LinkCheckReq ' ', ' ' DutyCycleReq ' ',和' ' LinkADRReq“MAC命令

的结构LinkCheckReq,DutyCycleReq,LinkADRReqMAC的命令

的接收机请求MAC命令可能需要回应发送相应的回报(MAC命令回答)。这些答案遵循相同的格式要求,用一个八位字节包含CID紧随其后的是尽可能多的随后的八位位组中定义的LoRaWAN v1.0.4链路层规范相关的MAC命令的答案。

上面的示例请求每一个人都有一个匹配的答案。下图显示了结构的三个回答这些请求。LinkCheckAns包含CID八隅体之后,两个八位字节包含所请求的数据。DutyCycleAns只包含CID八隅体和没有有效载荷。LinkADRAns所遵循的CID八隅体包含一个八位字节表示状态。

图显示的结构“LinkCheckAns ' ', ' ' DutyCycleAns ' ',和' ' LinkADRAns“MAC命令

的结构LinkCheckAns,DutyCycleAns,LinkADRAnsMAC的命令

MAC的结构为每个命令的部分可以找到LoRaWAN v1.0.4链路层规范下面列出的。

概述的MAC命令

有13个类型的命令,每个有一个请求命令指挥和答案。

以下MAC命令类型与所有的操作模式(A类、B类和C类):

MAC命令组所使用的所有操作模式

命令类型

命令对

CID

链接检查命令

LinkCheckReq,LinkCheckAns

0 x02

终端设备时间命令

DeviceTimeReq,DeviceTimeAns

0 x0d

终端设备状态

DevStatusReq,DevStatusAns

0 x06

链路自适应数据率(ADR)命令

LinkADRReq,LinkADRAns

0 x03

终端设备发送工作周期

DutyCycleReq,DutyCycleAns

0 x04

创建/修改一个通道

NewChannelReq,NewChannelAns

0 x07

修改下行信道频率

DlChannelReq,DlChannelAns

0 x0a

接收窗口时间

RXTimingSetupReq,RXTimingSetupAns

(

接收窗口参数

RXParamSetupReq,RXParamSetupAns

0 x05

终端设备传输参数

TXParamSetupReq,TXParamSetupAns

0 x09

以下MAC命令类型是“B类”命令,只能实现如果终端设备在B类运营模式。

MAC命令组B类使用的操作模式

命令类型

命令对

CID

类B -平位置信息

PingSlotInfoReq,PingSlotInfoAns

0 x10

类B - Ping槽通道配置

PingSlotChannelReq,PingSlotChannelAns

0 x11

B类——灯塔频率配置

BeaconFreqReq,BeaconFreqAns

0 * 13

MAC命令由终端设备

下面列出的三种MAC命令,请求是由终端设备。答案是发回从网络服务器端设备。终端设备应该意识到这些请求并开始他们的能力。这些请求应该得到一个答案在第一和第二接收窗口(RX1和RX2)后立即请求。如果答案是没有收到,终端设备应采用重复原始请求重试机制。

链接检查命令(LinkCheckReq , LinkCheckAns)

用来检查网络连接。网络服务器响应请求的估计接收信号强度(RSSI)请求和网关接受请求的数量。

学习更多的部分5.1链接检查命令LoRaWAN v1.0.4链路层规范

终端设备时间命令(DeviceTimeReq , DeviceTimeAns)

从网络用于请求当前网络时间服务器。网络服务器响应的秒和随后的分数秒已经过去全球定位系统(GPS)时代(1980年1月6日,就是UTC)。与网络时间同步设备时间可以用来加速信标发现当启用B类模式。

学习更多的部分5.9终端设备时间命令8.1:介绍类B,同步原理Network-initiated乙级下行LoRaWAN v1.0.4链路层规范

B类平位置信息(PingSlotInfoReq , PingSlotInfoAns)

用于B类操作允许终端设备向网络服务器的意图改变周期性的插槽。网络服务器响应与空载荷。

学习更多的部分12.1 PingSlotInfoReq8.1:介绍类B,同步原理Network-initiated乙级下行LoRaWAN v1.0.4链路层规范

MAC命令发起的网络服务器

剩下的十MAC命令类型、网络服务器发起的请求。答案是发回从终端设备到网络服务器。这些命令可以进一步分组如下:

  • 命令,修改终端设备下行参数。这些命令也修改设备配置为所有操作模式。

  • 命令修改另一端设备配置为所有操作模式。

  • 命令修改另一端设备配置为B类操作模式。

  • 终端设备状态命令。这个命令是用来请求信息终端设备。

以下部分列出每组中的命令。一些命令需要设置你所在地区的知识。找到你所在地区的设置、下载最新的LoRaWAN区域参数文档的LoRaWAN为开发人员页面上罗拉联盟®的网站。一些命令在某些地区仅支持。

命令修改另一端设备配置为所有操作模式

链路自适应数据速率(ADR)命令(LinkADRReq , LinkADRAns)

网络调整终端设备的数据速率,传输输出功率,用于上行通道访问和传输的数量每上行帧使用LinkADRReq命令。设备验证请求中的设置。如果有效,终端设备应用设置。然后最后装置发送LinkADRAns命令(包含细节的设置可以接受)的网络服务器。

了解更多关于自适应数据速率(ADR)在我们的实现自适应数据速率纸,在部分5.1链接ADR命令,4.3.1.1自适应数据速率控制在帧头LoRaWAN v1.0.4链路层规范

终端设备传输工作周期(DutyCycleReq , DutyCycleAns)

网络服务器使用DutyCycleReq命令来设置一个最大聚合传输终端设备的工作周期低于区域限制。终端设备改变其设置的两个值越低,区域限制或限制在请求。然后最后装置发送DutyCycleAns命令一个空负载确认收到该请求。

学习更多的节5.3终端设备发送工作周期LoRaWAN v1.0.4链路层规范

请注意

找到你所在地区的占空比限制在最新的LoRaWAN区域参数文档,部分YOUR_REGION带通道的频率,在那里YOUR_REGION代表该地区你的设备运行。

例如,如果你的设备是注定eu863 - 870地区,RP002-1.0.3引用文档,你将一节咨询eu863 - 870带通道的频率,25页。

创建/修改通道(NewChannelReq , NewChannelAns)

不支持此命令对所有地区。

网络服务器创建或修改的广播频道使用的定义NewChannelReq命令。网络服务器也使用命令禁用一个广播频道。请求包含信道来创建或修改的索引,频道的频率和上行数据率允许的范围通道。如果命令不支持在该地区,终端设备不发送答案。如果命令支持,终端设备验证通道是否允许该地区创建或修改。如果允许,终端设备的变更请求和响应NewChannelAns指示请求。如果不允许,终端设备的响应NewChannelAns指示请求不能采取行动的原因。

学习更多的节5.6创建/修改的一个通道LoRaWAN v1.0.4链路层规范

请注意

这个命令只接受与动态通道区域计划。检查通道计划类型地区最新LoRaWAN区域参数文件,在部分区域参数汇总表

如果请求中的频道索引匹配一个默认通道区域的终端设备,终端设备不得修改通道。找到你所在地区的默认频道的最新LoRaWAN区域参数文档部分YOUR_REGION带通道的频率

命令修改另一端设备配置为B类操作模式

以下MAC命令只需要由终端设备实现支持B类的操作模式。

类B - Ping槽通道配置(PingSlotChannelReq , PingSlotChannelAns)

使用PingSlotChannelReq命令,网络服务器修改的数据速率和频率的渠道终端设备期望获得乙级下行ping。终端设备确定数据速率和信道频率是否与无线电兼容。如果两个检查通过,终端设备应用新的设置。在这两种情况下,终端设备响应的网络服务器PingSlotChannelAns命令指示是否能够应用设置。这个答案应与每一个上行发送到一个类从服务器收到下行。

学习更多的部分12.3 PingSlotChannelReq,8.1同步原则Network-initiated乙级下行,14 B类单播和多播下行信道频率LoRaWAN v1.0.4链路层规范

B类——灯塔频率配置(BeaconFreqReq , BeaconFreqAns)

网络服务器修改的频率输出设备期望获得的B类使用灯塔BeaconFreqReq命令。终端设备检查通道的频率是可以使用。如果可以使用信道频率,终端设备修改设置。在这两种情况下,终端设备的响应BeaconFreqAns命令指示是否能够应用设置。

学习更多的部分12.3 BeaconFreqReq,13.2信标帧格式LoRaWAN v1.0.4链路层规范

终端设备状态的命令

以下是唯一MAC这组命令不修改设备配置。这个命令请求信息从设备。

终端设备状态(DevStatusReq , DevStatusAns)

网络服务器使用DevStatusReq命令请求电池电量和无线终端设备的状态。然后终端设备发送一个DevStatusAns命令通知网络服务器的状态。响应包含去年收到的信噪比(信噪比)DevStatusReq。响应还包含电池状态数据显示终端设备连接到一个外部电源,电池当前的电池水平,或者水平不能检索。

学习更多的节5.5终端设备状态LoRaWAN v1.0.4链路层规范

结论

在本文中,我们已经介绍了如何发送和接收MAC命令。你现在应该理解不同类型的MAC可以使用的命令。您还了解到一些MAC命令需要从一个终端设备发送请求信息,和其他需要处理的终端设备更新的配置设备或网络服务器返回信息。你知道命令的特定区域,以及如何找到有针对性的命令是否支持您的终端设备所处地区。另外,你现在应该熟悉一些最佳实践对如何处理命令修改下行参数。无论你是使用一个开源LoRaWAN软件包或你自己的软件来处理罗拉®MAC层,您可以验证您的软件是正确处理MAC命令和发送适当的答案对你的地区。

读了1.0.4 LoRaWAN链路层规范和下载和阅读LoRaWAN区域参数的文档罗拉联盟LoRaWAN供开发人员使用页面来了解其他方面的罗拉MAC层和视图的源材料。

查看MAC命令是如何实现的一个例子在罗拉MAC层实现LoRaWAN链路层规范1.0.4在C语言中,下载LoRaMac-Node终端设备堆栈的实现。

Baidu
map