Lorawan协议详情说明书.docx

上传人:b****4 文档编号:2967999 上传时间:2022-11-16 格式:DOCX 页数:53 大小:434.75KB
下载 相关 举报
Lorawan协议详情说明书.docx_第1页
第1页 / 共53页
Lorawan协议详情说明书.docx_第2页
第2页 / 共53页
Lorawan协议详情说明书.docx_第3页
第3页 / 共53页
Lorawan协议详情说明书.docx_第4页
第4页 / 共53页
Lorawan协议详情说明书.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

Lorawan协议详情说明书.docx

《Lorawan协议详情说明书.docx》由会员分享,可在线阅读,更多相关《Lorawan协议详情说明书.docx(53页珍藏版)》请在冰豆网上搜索。

Lorawan协议详情说明书.docx

Lorawan协议详情说明书

第1章介绍

本文档描述了LoRaWAN网络协议,是针对电池供电的终端设备(不管移动还是固定位置)进行优化的一套网络协议。

LoRaWAN网络通常采用星型拓扑结构,由拓扑中的网关来转发终端与后台网络服务器间的消息。

网关通过标准IP连接来接入网络服务器,而终端则通过单跳的LoRa或者FSK来和一个或多个网关通讯。

虽然主要传输方式是终端上行传输给网络服务器,但所有的传输通常都是双向的。

终端和网关间的通讯被分散到不同的信道频点和数据速率上。

数据速率的选择需要权衡距离和消息时长两个因素,使用不同数据速率的设备互不影响。

LoRa的数据速率范围可以从0.3kbps到50kbps。

为了最大程度地延长终端的电池寿命和扩大网络容量,LoRa网络使用速率自适应(ADR)机制来独立管理每个终端的速率和RF输出。

虽然每个设备可以在任意信道,任意时间,发送任意数据,但需要注意遵守如下规定:

∙终端的每次传输都使用伪随机方式来改变信道。

频率的多变使得系统具有更强的抗干扰能力。

∙终端要遵守相应频段和本地区的无线电规定中的发射占空比要求。

∙终端要遵守相应频段和本地区的无线电规定中的发射时长要求。

twowinter注:

发射占空比,意思是发射时长占总时长的比例。

按照无线电规定,每个设备不能疯狂发射霸占信道,总得给别人一点机会。

这份文档主要讲述协议细节,一些基于各地区规定的操作参数,例如发射占空比和发射时长等,在另一份文档[LoRaWAN地区参数]中做具体描述。

将这份文档分开,是为了加入新地区参数时不影响基础的协议规范。

1.1LoRaWANClasses

所有的LoRaWAN设备都必须至少实现本文档描述的ClassA功能。

另外也可以实现本文档中描述的ClassB和ClassC及后续将定义的可选功能。

不管怎么样,设备都必须兼容ClassA。

1.2文档约定

MAC命令的格式写作 LinkCheckReq (粗斜体),位和位域的格式写作 FRMPayload (粗体),常量的格式写作RECEIVE_DELAY1,变量的格式写作N。

在本文档中,

∙所有多字节字段的字节序均采用小端模式

∙EUI是8字节字段,采用小端模式传输

∙默认所有RFU保留位都设为0

第2章LoRaWANClasses类型介绍

LoRa是由Semtech面向长距离、低功耗、低速率应用而开发的无线调制技术。

本文档中,将ClassA基础上实现了更多功能的设备称为“更高class终端”。

2.1LoRaWANClasses

LoRa网络包含基础LoRaWAN(称之为ClassA)和可选功能(ClassB,ClassC):

 

图1.LoRaWANClasses

∙双向传输终端(ClassA):

 ClassA的终端在每次上行后都会紧跟两个短暂的下行接收窗口,以此实现双向传输。

传输时隙是由终端在有传输需要时安排,附加一定的随机延时(即ALOHA协议)。

这种ClassA操作是最省电的,要求应用在终端上行传输后的很短时间内进行服务器的下行传输。

服务器在其他任何时间进行的下行传输都得等终端的下一次上行。

∙划定接收时隙的双向传输终端(ClassB):

 ClassB的终端会有更多的接收时隙。

除了ClassA的随机接收窗口,ClassB设备还会在指定时间打开别的接收窗口。

为了让终端可以在指定时间打开接收窗口,终端需要从网关接收时间同步的信标Beacon。

这使得服务器可以知道终端正在监听。

∙最大化接收时隙的双向传输终端(ClassC):

 ClassC的终端基本是一直打开着接收窗口,只在发送时短暂关闭。

ClassC的终端会比ClassA和ClassB 

更加耗电,但同时从服务器下发给终端的时延也是最短的。

2.2文档范围

这份LoRaWAN协议还描述了与ClassA不同的其他Class的额外功能。

更高Class的终端必须满足ClassA定义的所有功能。

注意:

物理层帧格式,MAC帧格式,以及协议中更高class和ClassA相同的内容都写在了ClassA部分,避免内容重复。

第3章PHY帧格式

LoRa有上行消息和下行消息。

3.1上行消息

上行消息是由终端发出,经过一个或多个网关转发给网络服务器。

上行消息使用LoRa射频帧的严格模式,消息中含有PHDR和PHDR_CRC。

载荷有CRC校验来保证完整性。

PHDR,PHDR_CRC及载荷CRC域都通过射频收发器加入。

上行PHY:

Preamble

PHDR

PHDR_CRC

PHYPayload

CRC

图2.上行PHY帧格式

3.2下行消息

下行消息是由网络服务器发出,经过单个网关转发给单个终端。

下行消息使用射频帧的严格模式,消息中包含PHDR和PHDR_CRC。

下行PHY:

Preamble

PHDR

PHDR_CRC

PHYPayload

图3.下行PHY帧格式

3.3接收窗口

每个上行传输后终端都要开两个短的接收窗口。

接收窗口开始时间的规定,是以传输结束时间为参考。

 

图4.终端接收时隙的时序图

3.3.1第一接收窗口的信道,数据速率和启动。

第一接收窗口RX1使用的频率和上行频率有关,使用的速率和上行速率有关。

RX1是在上行调制结束后的RECEIVE_DELAY1秒打开。

上行和RX1时隙下行速率的关系是按区域规定,详细描述在[LoRaWAN地区参数]文件中。

默认第一窗口的速率是和最后一次上行的速率相同。

3.3.2第二接收窗口的信道,数据速率和启动。

第二接收窗口RX2使用一个固定可配置的频率和数据速率,在上行调制结束后的RECEIVE_DELAY2秒打开。

频率和数据速率可以通过MAC命令(见第5章)。

默认的频率和速率是按区域规定,详细描述在[LoRaWAN地区参数]文件中。

3.3.3接收窗口的持续时间

接收窗口的长度至少要让终端射频收发器有足够的时间来检测到下行的前导码。

3.3.4接收方在接收窗口期间的处理

如果在任何一个接收窗口中检测到前导码,射频收发器需要继续激活,直到整个下行帧都解调完毕。

如果在第一接收窗口检测到数据帧,且这个数据帧的地址和MIC校验通过确认是给这个终端,那终端就不必开启第二个接收窗口。

3.3.5网络发送消息给终端

如果网络想要发一个下行消息给终端,它会精确地在两个接收窗口的起始点发起传输。

3.3.6接收窗口的重要事项

终端在第一或第二接收窗口收到下行消息后,或者在第二接收窗口阶段,不能再发起另一个上行消息。

3.3.7其他协议的收发处理

节点在LoRaWAN收发窗口阶段可以收发其他协议,只要终端能满足当地要求以及兼容LoRaWAN协议。

2梳理解析

LoRaWAN第3章,主要是讲了接收窗口这回事,只要记住张图就行。

目前RX1一般是在上行后1秒开始,RX2是在上行后2秒开始。

3源码分析

3.1源码流程

在梳理这章节的对应代码时,自己手动做了张思维导图。

有时是这样,代码再有层次感,也不及一个图。

好,请收下。

3.2发送完成就开始RX1和RX2延时

staticvoidOnRadioTxDone(void)

{

...

//Setuptimers

if(IsRxWindowsEnabled==true)

{

TimerSetValue(&RxWindowTimer1,RxWindow1Delay);

TimerStart(&RxWindowTimer1);

if(LoRaMacDeviceClass!

=CLASS_C)

{

TimerSetValue(&RxWindowTimer2,RxWindow2Delay);

TimerStart(&RxWindowTimer2);

}

if((LoRaMacDeviceClass==CLASS_C)||(NodeAckRequested==true))

{

TimerSetValue(&AckTimeoutTimer,RxWindow2Delay+ACK_TIMEOUT+

randr(-ACK_TIMEOUT_RND,ACK_TIMEOUT_RND));

TimerStart(&AckTimeoutTimer);

}

}

...

}

3.3接收窗口的射频处理

从上面一步,我们已经清晰的知道,对应的处理肯定是在OnRxWindow1TimerEvent和OnRxWindow2TimerEvent中。

 

这两个接收窗口的处理,会对速率和信道进行设置,按照LoRaWAN协议中文版_配套文件地区参数(物理层) 中对各地区的要求分别进行处理。

比如这个470的处理,对上行信道对48取余得到下行信道。

RxWindowSetup(LORAMAC_FIRST_RX1_CHANNEL+(Channel%48)*LORAMAC_STEPWIDTH_

第4章MAC帧格式

LoRa所有上下行链路消息都会携带PHY载荷,PHY载荷以1字节MAC头(MHDR)开始,紧接着MAC载荷(MACPayload),最后是4字节的MAC校验码(MIC)。

射频PHY层:

Preamble

PHDR

PHDR_CRC

PHYPayload

CRC

图5.射频PHY结构(注意CRC只有上行链路消息中存在)

PHY载荷:

MHDR

MACPayload

MIC

或者

MHDR

Join-Request

MIC

或者

MHDR

Join-Response

MIC

图6.PHY载荷结构

MAC载荷:

FHDR

FPort

FRMPayload

图7.MAC载荷结构

FHDR:

DevAddr

FCtrl

FCnt

FOpts

图8.帧头结构

图9.LoRa帧格式元素(即图5~8)

4.1MAC层(PHYPayload)

Size(bytes)

1

1..M

4

PHYPayload

MHDR

MACPayload

MIC

MACPayload字段的最大长度M,在第6章有详细说明。

4.2MAC头(MHDR字段)

Bit#

7..5

4..2

1..0

MHDRbits

MType

RFU

Major

MAC头中指定了消息类型(MType)和帧编码所遵循的LoRaWAN规范的主版本号(Major)。

4.2.1消息类型(MType位字段)

LoRaWAN定义了六个不同的MAC消息类型:

joinrequest,joinaccept,unconfirmeddataup/down,以及confirmeddataup/down。

MType

描述

000

JoinRequest

001

JoinAccept

010

UnconfirmedDataUp

011

UnconfirmedDataDown

100

ConfirmedDataUp

101

ConfirmedDataDown

110

RFU

111

Proprietary

表1.MAC消息类型

∙4.2.1.1Jo

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1