深入了解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命令在一个单独的发送数据包时,框架端口(FPortMAC载荷)字段设置为0。的FRMPayload在MAC载荷包含MAC命令。的录像在帧头都不见了。的FOptsLen领域框架控制也设置为0,和FRMPayload字段必须加密4.3.3节中描述的MAC帧载荷加密(FRMPayload)1.0.4 LoRaWAN链路层规范。
MAC命令可以发送单独或一组并发MAC命令。所有MAC命令开始一个八位字节包含一个命令标识符(CID)。这CID表明MAC命令类型遵循在随后的八位字节。随后的八位字节的长度取决于MAC命令的类型,确定在前面的CID。
下图显示了三种不同的结构MAC命令请求,并说明每个命令可以有不同的长度。如前所述,所有MAC命令从一个CID八隅体开始。的LinkCheckReq
MAC命令只包含CID八隅体并没有有效载荷。DutyCycleReq
包含两个八位字节,CID八隅体紧随其后的是一个八位字节包含相关数据请求。LinkADRReq
共有五个八位字节,CID八隅体后面跟着四个八位字节包含数据。
的接收机请求MAC命令可能需要回应发送相应的回报(MAC命令回答)。这些答案遵循相同的格式要求,用一个八位字节包含CID紧随其后的是尽可能多的随后的八位位组中定义的LoRaWAN v1.0.4链路层规范相关的MAC命令的答案。
上面的示例请求每一个人都有一个匹配的答案。下图显示了结构的三个回答这些请求。LinkCheckAns
包含CID八隅体之后,两个八位字节包含所请求的数据。DutyCycleAns
只包含CID八隅体和没有有效载荷。LinkADRAns
所遵循的CID八隅体包含一个八位字节表示状态。
MAC的结构为每个命令的部分可以找到LoRaWAN v1.0.4链路层规范下面列出的。
概述的MAC命令¶
有13个类型的命令,每个有一个请求命令指挥和答案。
以下MAC命令类型与所有的操作模式(A类、B类和C类):
命令类型 |
命令对 |
CID |
---|---|---|
链接检查命令 |
|
|
终端设备时间命令 |
|
|
终端设备状态 |
|
|
链路自适应数据率(ADR)命令 |
|
|
终端设备发送工作周期 |
|
|
创建/修改一个通道 |
|
|
修改下行信道频率 |
|
|
接收窗口时间 |
|
|
接收窗口参数 |
|
|
终端设备传输参数 |
|
|
以下MAC命令类型是“B类”命令,只能实现如果终端设备在B类运营模式。
命令类型 |
命令对 |
CID |
---|---|---|
类B -平位置信息 |
|
|
类B - Ping槽通道配置 |
|
|
B类——灯塔频率配置 |
|
|
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 PingSlotInfoReq和8.1:介绍类B,同步原理Network-initiated乙级下行的LoRaWAN v1.0.4链路层规范。
MAC命令发起的网络服务器¶
剩下的十MAC命令类型、网络服务器发起的请求。答案是发回从终端设备到网络服务器。这些命令可以进一步分组如下:
命令,修改终端设备下行参数。这些命令也修改设备配置为所有操作模式。
命令修改另一端设备配置为所有操作模式。
命令修改另一端设备配置为B类操作模式。
终端设备状态命令。这个命令是用来请求信息终端设备。
以下部分列出每组中的命令。一些命令需要设置你所在地区的知识。找到你所在地区的设置、下载最新的LoRaWAN区域参数文档的LoRaWAN为开发人员页面上罗拉联盟®的网站。一些命令在某些地区仅支持。
命令,修改终端设备配置(下行参数)¶
这些命令修改下行参数。还有其他规则,以避免丢失连接在处理这些命令:
网络服务器必须意识到这些命令是否被接受的设备尽快结束。连接将会影响网络服务器是否知道这些设置在终端设备的状态。下面列出的命令,修改下行参数,最终设备必须与每一个上行发送答案,直到一个类收到下行的网络服务器。
除了列出的命令在本节中,B类萍槽通道配置
PingSlotChannelAns
还应与每一个上行直到一个类一个下行发送接收从网络服务器。对于其他MAC命令,终端设备必须发回一个回答上行。
当设备使用激活的个性化(ABP)重置,这个动作不能重置这些命令的配置修改下行参数。
-
接收窗口参数(
RXParamSetupReq
,RXParamSetupAns
) -
之间的网络服务器调整数据率抵消上行和第一接收窗口(RX1)使用
RXParamSetupReq
命令。网络服务器也调整频率和数据率第二接收窗口后上行(RX2)使用相同的命令。终端设备验证的有效性设置。如果设置是有效的,终端设备应用新的设置。在这两种情况下,网络的服务器响应RXParamSetupAns
命令,通知网络服务器是否能够应用设置。学习更多的节5.4接收窗口参数的LoRaWAN v1.0.4链路层规范。
-
接收窗口时间(
RXTimingSetupReq
,RXTimingSetupAns
) -
网络使用
RXTimingSetupReq
命令来配置之间的延迟上行传输和开幕式结束的第一个接收窗口。请求包含所需的延迟的长度,1 - 15秒。终端设备改变其设置新的延迟。然后最后装置发送RXTimingSetupAns
命令一个空负载确认收到该请求。学习更多的节5.7设置之间的延迟TX和RX的LoRaWAN v1.0.4链路层规范。
-
修改下行信道频率(
DlChannelReq
,DlChannelAns
) -
不支持此命令对所有地区。
网络服务器修改频率用于发送下行在第一个接收槽(RX1)使用
DlChannelReq
命令。请求包含的索引通道修改的新频率通道将使用下行。如果命令不支持在该地区的终端设备操作,终端设备不发送答案。终端设备然后修改频道如果是能力,和响应DlChannelAns
命令指示通道是否修改。学习更多的节5.6创建/修改的一个通道的LoRaWAN v1.0.4链路层规范。
请注意
这个命令只接受终端设备操作与动态通道区域计划。检查通道计划类型地区最新LoRaWAN区域参数文件,在部分区域参数汇总表。
-
终端设备传输参数(
TXParamSetupReq
,TXParamSetupAns
) -
不支持此命令对所有地区。
网络服务器修改数据包的最大持续时间在空气(停留时间)设置低于区域限制使用
TXParamSetupReq
命令。最大允许有效各向同性辐射功率(附近)修改设置低于区域限制使用相同的命令。如果TXParamSetupReq
命令不支持在该地区的终端设备,终端设备不发送答案。如果命令是支持,终端设备改变其设置请求的设置是否低于区域限制。终端设备上然后用一个响应TXParamSetupAns
命令一个空负载确认收到该请求。学习更多的节5.8终端设备传输参数的LoRaWAN v1.0.4链路层规范。
请注意
看看你的地区支持这个命令,你所在地区的最大停顿时间,最大附近地区最新的LoRaWAN区域参数文档,部分YOUR_REGION数据速率和输出设备输出功率编码。
命令修改另一端设备配置为所有操作模式¶
-
链路自适应数据速率(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终端设备堆栈的实现。