0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

lorawan协议之层数据链路与层数据概念分享

GLeX_murata_eet 来源:互联网 作者:佚名 2017-11-07 11:28 次阅读
名词解析

上行:终端的数据发送经过一个或多个网关中转到达网络服务器。

下行:由网络服务器发送给终端设备,每条消息对应的终端设备是唯一确定的,而且只通过一个网关中转。

LoRaWAN Classes

LoRaWAN Classes 一共分为3类:Class A,Class B,Class C

Class A:终端先发送,在发送后开启一段时间的接收窗口,终端只有在发送后才可以接收。也就是说上行没有限制,下行的数据只有在上行包发送上来的时候终端才可以接收到。(功耗最低)

Class B:终端和服务器协商好接收的窗口开启的时间以及何时开启,然后再约定的时间进行接收,可以一次接收多个包。(功耗次低)

Class C:终端在发送以外的其他时间都开启接收窗口。更耗能,但通讯延时最低。(功耗最高)

PHY/MAC 层数据链路

总的数据包结构:

注意preamble、PHDR、PHDR_CRC、CRC都是硬件生成,无需软件参与,需要软件参与的就是PHYPayload部分

PHY层数据

上行链路消息:

下行链路消息:

其中上行最后还有CRC校验,而下行没有CRC校验。其中PHDR PHDR_CRC CRC都是射频芯片用于校准数据的完整新和一致性用的,并非用户生成的数据。

MAC 层数据

由上图可以看到,MAC数据是是作为PHYPayload存在的其中MAC 层的包有三个部分组成:

  • MHDR(MAC层帧头)

  • MACPayload(MAC层负载)

  • MIC(4字节的校验)

而MACPayload又由三个部分组成:

  • FHDR (MAC层负载头)

  • FPORT(MAC 层数据的通道号)

  • FRMPayload(MAC层负载,加密)

而FHDR又由由四个部分组成:

  • DevAddr(终端的ID 4字节)

  • FCtrl(帧的控制字 1个字节)

  • FCnt (帧的序号 2个字节)

  • FOpts(帧配置,字节数不定,大部分情况0个字节)

所以,由协议可知,一个上行包或者下行包中的数据内容有哪些,抛开控制命令不说,主要有终端的ID、包的序号、用户的加密负载。

例如我抓到的一个数据包:

\x40 \x7f \xf8 \x8a \x29 \x80 \x2a \x00 \x02 \x07 \x42 \x87 \x3f \xc7 \xb4 \x22 \x04 \x00 \x84 \x8d \x1b \x06 \x2f \x5b \xbc \x57 \xdb \xf2 \x31 \xde \x49 \x61 \x00 \x86 \x99 \xec \x08 \x61 \xf0 \xb7 \xda \x54 \x0a \xfa \xd1 \x31 \xac \xd0 \x44 \x1b \x4d \xfa \x48 \x77 \x19 \xee \x61 \x14 \xbf \x23 \x52 \xd1 \xe9 \x93 \x79 \x6e \x16 \xd7 \x13 \x2e \x58 \x06 \x54 \xc3 \xd2 \x04 \xba \x52 \xa7 \xc8 \x7a \x0b \x8e

这是一个MAC 层的帧,即完整的PHYPayload部分,注意,默认LoRaWAN都是按小端方式传输的。

其中

  • MHDR:\x40

  • MACPayload-FHDR-DevAddr:\x7f \xf8 \x8a \x29

  • MACPayload-FHDR-FCtrl:\x80

  • MACPayload-FHDR-FCnt:\x2a \x00

  • MACPayload-FPORT:\x02

  • MACPayload-FRMPayload(加密):\x07 \x42 \x87 \x3f \xc7 \xb4 \x22 \x04 \x00 \x84 \x8d \x1b \x06 \x2f \x5b \xbc \x57 \xdb \xf2 \x31 \xde \x49 \x61 \x00 \x86 \x99 \xec \x08 \x61 \xf0 \xb7 \xda \x54 \x0a \xfa \xd1 \x31 \xac \xd0 \x44 \x1b \x4d \xfa \x48 \x77 \x19 \xee \x61 \x14 \xbf \x23 \x52 \xd1 \xe9 \x93 \x79 \x6e \x16 \xd7 \x13 \x2e \x58 \x06 \x54 \xc3 \xd2 \x04 \xba \x52 \xa7

  • MIC:\xc8 \x7a \x0b \x8e

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • LoRaWAN协议
    +关注

    关注

    3

    文章

    15

    浏览量

    12122

原文标题:LoRaWAN协议(二)--LoRaWAN MAC数据包格式

文章出处:【微信号:murata-eetrend,微信公众号:murata-eetrend】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Matlab仿真1090ES数据链

    本帖最后由 sy9576 于 2013-4-16 22:00 编辑 如题如题,求助各位大侠,如何在Matlab编程下仿真出1090ES数据链波形?{:16:}
    发表于 04-16 21:57

    ppp协议

    PPP 协议,其全称为 Point-To-Point Protocol(点到点协议)。它作为一种提供在点到点路上传输、封装多种不同类型的网络层数据包的
    发表于 07-30 14:50

    如何在Vxworks操作系统下实现mac层数据通信

    0800和0806类型的数据包。看了一下网上的资料说是可以使用mux数据接口完成数据链里层到驱动层的数据传输,请问基本的实现方法是什么呢?大概给我指定一个方向吧,跪求大神
    发表于 02-09 16:48

    武器数据链测试系统是什么组成的?

    传统的武器数据链测试方法多以传输系统的静态性能参数检测为主,难以对数据链出现的瞬态异常情况做出正确地判定,更不可能对正常使用情况进行动态仿真测试,最终也就不能有效地保证数据链无故障可靠应用。武器
    发表于 08-23 07:00

    基于isoSPI数据链的高可靠性车载电池系统设计

    isoSPI 数据链助力实现高可靠性车载电池系统
    发表于 09-02 14:23

    高级数据链控制的操作方式是什么?

      高级数据链控制涉及三种类型的站,即主站、从站和复合站。  主站的主要功能是发送命令(包括数据信息)帧、接收响应帧,并负责对整个的控
    发表于 11-01 09:10

    TLP的数据链路层组成与操作

    :    数据链路层的状态  数据链路层通过物理层监控当前PCIe链路层的状态,数据链路层会处于以下3种状态:  (1)、DL Interactive:物理层通知数据链路层当前PCIe
    发表于 01-08 17:25

    数据链路层的作用

    数据链路层的作用:通过一些数据链路层协议和链路控制规程,在不太可靠的物理路上实现可靠的数据传输。 “
    发表于 07-22 16:04 7060次阅读

    数据链协议,数据链协议是什么意思

    数据链协议,数据链协议是什么意思 数据链
    发表于 03-18 15:07 689次阅读

    高级数据链控制(HDLC)是什么意思

    高级数据链控制(HDLC)是什么意思 高级数据链控制(HDLC)协议是基于的一种数据链路层
    发表于 03-18 15:30 1449次阅读

    数据链交换,什么是数据链交换

    数据链交换,什么是数据链交换 DLSw是在IP(网际协议)网络中封装IBM SNA(系统网络体系结构)和NetBIOS通信量以及对它们
    发表于 04-06 17:27 1054次阅读

    数据链路层常用成纸法有哪些_数据链路层的作用

    本文开始阐述了数据链路层的概念数据链路层数据链路层的功能或作用,其次阐述了数据链路层的主要协议,最后分析了
    发表于 03-14 14:44 2176次阅读
    <b class='flag-5'>数据链</b>路层常用成纸法有哪些_<b class='flag-5'>数据链</b>路层的作用

    无人系统和地面控制站的加密数据链的演示

    此加密数据链演示代表无人系统和地面控制站之间的数据链。我们将演示从无人平台到地面控制站的加密视频
    的头像 发表于 06-27 06:11 1690次阅读

    层数据库是什么

    层数据库系统原理
    发表于 01-11 14:25 0次下载

    Redis底层数据类型

    1. 前言 Redis的键值对中的常见数据类型有String (字符串)、List(列表)、Hash(哈希)、Set(集合)、Zset(有序集合)。那么其对应的底层数据结构有SDS(simple
    的头像 发表于 10-09 14:05 384次阅读
    Redis底<b class='flag-5'>层数据</b>类型