如何通过lorawan联盟认证测试2

本节专门讲解LinkADRRep指令
我们先讲解一下MAC指令是如何携带的
首先是上行PYH
有 Preamble PHDR PHDR_CRC PHYPayload CRC
PHRD和PHDR_CRC及CRC都由芯片硬件添加
PHYPayload 又分三种入网请求,入网接收,数据。(MACPayload)(MIC是一个4字节的校验值)
在PHYPayload中,数据MAC载荷又化分为,FHDR FPort FRMPlayload
其中最重要的为FHDR
FHDR中又分为
DevAddr FCtrl Fcnt FOpts
MHDR在PHYPayload之下,MAC头的意思
MHDR是在MAC载荷之前
MHDR 1个字节
MType(7-5bit)
000 Join Request
001 Join Accept
010 Unconfirmed Data Up
011 Unconfirmed Data Down
100 Confirmed Data Up
101 Confirmed Data Down
110 RFU
111 Proprietary
(1-0bit)
Major位字段
00 LoRaWAN R1
01…11 RFU
MAC载荷(MACPayload)
MAC载荷,也就是所谓的“数据帧”,包含:帧头(FHDR)、端口(FPort)以及帧载荷 (FRMPayload),其中端口和帧载荷是可选的。
FHDR是由终端短地址(DevAddr)、1字节帧控制字节(FCtrl)、2字节帧计数器(FCnt)和用来传 输MAC命令的帧选项(FOpts,最多15个字节)组成。
FCtrl在上下行消息中有所不同,下行消息如下:
Bit# 7 6 5 4 [3…0]
FCtrl bits ADR ADRACKReq ACK FPending FOptsLen
FCtrl bits ADR ADRACKReq ACK RFU FOptsLen
FCnt用来计数不多介绍

如果FOptsLen为0,则FOpts为空。在FOptsLen非0时,则反之。如果MAC命令在FOpts字段 中体现,port0不能用(FPort要么不体现,要么非0)。

**总结 FHDR中的FCtrl会协议MAC的长度,FHDR中的FOpts会携带MAC命令

我们回到MAC载荷在前调一点,如果若FPort= 0,FRMPayload只包含的MAC命令。

将这些主要是为了过认证MAC命令,ADR的测试项有两项,便于理解

言归正传我们来分析下 Link ADR
LinkADRReq占4个字节,
第一个字节包换了DR,发射功率,
第二字节是信道掩码,1代表可以进行上行传输的信道。
终端使用 LinkADRAns 命令来应答 LinkADRReq 命令,一个字节,其中占用3个bit1,1代表响应成功。

RXParamSetupReq MAC command这是一项单独的测试项
RXParamSetupReq命令可以对每个上行消息之后的第二接收窗口(RX2)的频率以及数据速率 进行改变。该命令还可以对上行数据速率和RX1下行数据速率的偏移量进行改变。
此MAC负载总共4个字节,DLsetting占一个字节,频率占3个字节
RX1DRoffset 0的话代表上行和下行频率一样。

RXParamSetupAns负载是1个字节

后面还有什么MAC就不详细介绍了,分析原理类似

你可能感兴趣的:(如何通过lorawan联盟认证测试2)