美文网首页
loraWan 通信数据帧

loraWan 通信数据帧

作者: lissettecarlr | 来源:发表于2018-12-11 16:25 被阅读0次

1 Radio PHY layer

前导码 物理头 头校验 物理层负载 CRC
Preamble PHDR PHDR_CRC PHYPayload CRC

该层除了负载部分,其余均是硬件生成,注意的是最后的CRC只有在上行链路的时候才存在,下行是没有的

总的数据结构:


F.png

2 MAC层

2.1 帧格式

MAC层帧头 MAC层负载 4字节校验
MHDR MACPayload MIC

2.2 MAC层帧头(MHDR)

MHDR只有一个字节大小

MHDR MType RFU Major
Bit位 7~5 4~2 1~0

2.2.1 MType

表示消息类型,入网、入网应答、无需应答的数据上行、无需应答的数据下行、需要应答的数据上行、需要应答的数据下行

MType 描述
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 私有

2.2.2 Major

数据消息的版本

Major 描述
00 LoraWan R1
其他 RFU

2.3 MAC层负载

帧格式:

负载头 端口 帧负载
FHDR FPort FRMPayload

2.3.1 FHDR

MAC负载帧头组成由终端短地址(DevAddr)、帧控制字节FCtrl、帧计数器(FCnt)、MAC命令配置字段(FOpts),其中FOpts最多15个字节

FHDR: DevAddr FCtrl FCnt FOpts
byte字节 4 1 2 0~15
2.3.1.1 帧控制字节FCtrl

下行时:

FCtrl ADR RFU ACK FPending FOptsLen
Bit位 7 6 5 4 3~0

上行时:

FCtrl ADR ADRACKReq ACK RFU FOptsLen
Bit位 7 6 5 4 3~0
  • 速率自适应控制(ADR, ADRACKReq)
    具体单独开文说明
  • 消息确认位(ACK)
    当收到confirmed类型的消息时,进行应答
  • 帧挂起位(FPending)
    只在下行交互中使用,表示网关还有数据挂起等待下发。此时要求终端尽快发送上行消息来再打开接收窗口。
  • 帧配置长度
    帧配置长度(FOptsLen)字段位于帧的 FCtrl 部分,表示FOpts的实际长度
2.3.1.2 计数器 (FCnt)

上行链路计数器(FCntUp),由终端产生并维护,记录发往服务器的帧数量;下行链路计数器(FCntDown),由服务器产生并维护,记录服务器发往终端的帧数量。

2.3.1.3 MAC命令配置(FOpts)

一帧数据中可以包含任何MAC命令,MAC命令既可以放在FOpts中,也可以放在FRMPayload中,但不能同时在两个字段携带MAC命令。MAC命令放在FRMPayload时,FPort = 0。
放在FOpts的命令不加密(原因:加密Payload,对整个数据签名),也不能超过15个字节(2^4 - 1)。
放在FRMPayload的MAC命令长度不能超过FRMPayload的最大值。
不想被别人截获的命令要放到FRMPayload,并单独发送该数据帧
一条mac命令由一个命令ID(CID,一个字节),和特定的命令序列组成,命令序列可以是空。

命令ID 命令 终端发送 网关发送 简介
0x02 LinkCheckReq x 用于终端验证网络连接
0x02 LinkCheckAns x 回应验证请求, 同时包含终端接收质量相关的估算的信号功率
0x03 LinkADRReq x 请求终端改变数据率、传输功率、接收率或者信道
0x03 LinkADRAns x LinkRateReq的应答
0x04 DutyCycleReq x 设置设备的最大总发射占空比
0x04 DutyCycleAns x DutyCycleReq的应答
0x05 RXParamSetupReq x 设置接收时隙相关参数
0x05 RXParamSetupAns x RXSetupReq的应答
0x06 DevStatusReq x 请求终端状态
0x06 DevStatusAns x 返回终端装填,即电量和解调情况
0x07 NewChannelReq x 创建或修改无线电信道
0x07 NewChannelAns x NewChannelReq的应答
0x08 RXTimingSetupReq x 设置接收时隙的时间
0x08 RXTimingSetupAns x RXTimingSetupReq的应答
0x80~0xff Proprietary x x 保留命令

详细MAC命令单独开文说明。

2.3.2 端口FPort

帧负载数据(FRMPayload)不为空的时候端口号也不能是空。此时FPort=0表示FRMPayload中只有MAC命令

2.3.3 帧负载FRMPayload

如果帧数据中包含payload,要先对FRMPayload进行加密,再计算消息的一致性校验码(MIC)。

加密方案使用基于IEEE 802.15.4/2006 Annex B [IEEE802154] 的AES加密,秘钥长度128位。

使用哪种加密秘钥K取决于消息的FPort:

FPort K 备注
0 NwkSKey 网络密匙
1~255 AppSkey 应用密匙

2.4 消息一致性脚环MIC

对整个消息的所有字段进行计算(AES签名算法CMAC)得到消息一致性校验码(MIC)。

相关文章

  • loraWan 通信数据帧

    1 Radio PHY layer 该层除了负载部分,其余均是硬件生成,注意的是最后的CRC只有在上行链路的时候才...

  • 命题_第十四章

    1.什么是串行异步通信?有哪些作用? 答:在异步串行通信中,数据是一帧一帧传送的,通信采用帧格式,无需同步字符,存...

  • 802.11帧类型

    802.11协议有规定三种类型的帧,分别时管理帧,控制帧和数据帧。 1.管理帧 有线通信和无线通信的最大区别是什么...

  • LoRaWAN设备数据解析及开源MQTT SDK设备端模拟

    概述 LoRaWAN设备与物联网平台的通信数据格式为透传/自定义,因此需要使用数据解析脚本,解析上下行数据。本文主...

  • 可靠串口通信协议

    本文描述了基于串口进行数据帧通信的协议设计和实现方法。 数据帧格式 | 前导码 | 头部 | 数据 | 校验 | ...

  • HDLC帧格式

    DLMS通信链路帧基本采用HDLC帧格式,HDLC除几个特殊域,其他域均为16进制数据,这章我主要分享什么是HDL...

  • LoraWAN和IOTA:在Tangle中实时存储数据的概念证明

    我对2019年的愿望是用IOTA为LoraWAN创造一个概念验证。显而易见的事情是将LoraWAN设备发送的数据直...

  • 命题_第十四章_填空题

    PC机的串行通信接口(COM1、COM2)采用异步通信。异步通信的一帧信息包括起始位、数据位、奇偶校验位和 ﹎﹍。...

  • LoRaWAN应用——水电气能源管理

    一、什么是LoRaWAN 按照LoRa联盟官方白皮书《what is LoRaWAN》的介绍,LoRaWAN是为L...

  • CAN通信中的数据转换

    CAN通信的时候,每一帧的大小是有固定限制的,所以为了将尽可能多的数据通过一帧frame传输出去,都会将数据尽量压...

网友评论

      本文标题:loraWan 通信数据帧

      本文链接:https://www.haomeiwen.com/subject/sntehqtx.html