ImageVerifierCode 换一换
格式:DOCX , 页数:60 ,大小:480.39KB ,
资源ID:10536811      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10536811.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(LORAWAN中文.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

LORAWAN中文.docx

1、LORAWAN中文LoRaWAN 规范 1.0 (28章)2 Introduction on LoRaWAN options2.1 LoRaWAN Classes终端双向通讯(A类)低功耗,先发送后接收,发送和接收交替进行。终端只有再发送数据后才能接收处理服务器发送来的数据,发送数据不受接收数据的限制。收发比=1:1具有接收时隙的终端双向通讯(B类)同样是先发送后接收,不同的是每次发送后按照一定时间间隔启动接收窗口,接收多条数据。时间间隔从网关获取,以便服务器知晓终端接收消息的时刻。收发比=1:N最大接收时隙的终端双向通讯(C类)打开接收窗口的时间间隔很小,几乎不间断的接收消息。比A和B更耗能

2、,但和服务器交互的延迟低。2.2 规范高级类的附加功能向下兼容低级类。所有LoRaWAN终端必须实现A类的功能。注意:本规范手册中:物理消息格式、MAC消息格式以及A类和其它高级类都具备的东西,只在本手册的A类部分介绍。3 Physical Message FormatsLoRa中区分上行和下行的术语。3.1 上行链路消息上行链路消息由终端发送经过一个或多个网关中转到达网络服务器。它使用的LoRa无线分组显性模式由物理头(PHDR)和它的CRC(PHDR_CRC)校验组成。负载的一致性(发送和接收的数据完全一致,不仅仅是完整)由CRC保证。Uplink PHY:3.2 下行链路消息下行链路消息

3、由网络服务器发送给终端设备,每条消息对应的终端设备是唯一确定的,而且只通过一个网关中转。下行链路消息由物理头(PHDR)和这个头的CRC(PHDR_CRC)组成。下行链路消息:3.3 接收窗口设备终端每次发送数据(上行传输)后打开两个短接收窗口(short receive windows)。接收窗口的启动时间是配置好的时间周期,该时间在最近一条上行传输比特数据的结尾。4 MAC Message FormatsLoRa所有的上下行链路消息都会包含PHY负载,该负载以单字节MAC头为开始,MAC头后面是MAC负载,结尾是4字节的消息一致码(MIC)。4.1 MAC Layer (PHYPayloa

4、d)MACPayload字段长度M的最大值见第六章。4.2 MAC Header (MHDR field)MAC 头中包含消息类型(MType)和帧编码所遵循的LoRaWAN规范的主版本号(Major)。RFU是保留位。4.2.1 Message type (MType bit field)LoRaWAN自定义了六个独特的MAC消息类型:join request, join accept, unconfirmed data up/down, 以及 confirmed data up/downMTypeDescription备注000Join Request无线激活过程使用,具体见章节6.200

5、1Join Accept无线激活过程使用,具体见章节6.2010Unconfirmed Data Up接受者不必回应011Unconfirmed Data Down接受者不必回应100Confirmed Data Up接受者必须回应101Confirmed Data Down接受者必须回应110RFU保留111Proprietary用来实现自定义格式的消息,交互的设备之间必须有相同的处理逻辑,不能和标准消息互通4.2.1.1 Join-request and join-accept messages已经添加上表的到备注4.2.1.2 Data messages消息数据既能传输MAC命令又能传输

6、应用数据,甚至可以一起发送。不同消息类型用不同的方法保证一致性,下面会介绍这一点。4.2.2 Major version of data message (Major bit field)Major bitsDescription00LoRaWAN R101.11RFU(保留)注意:主版本号指明激活过程中(in the join procedure)使用的消息格式(章节6.2)和MAC Payload前4字节(第4章)。终端要为每个不同的主版本号实现不同子版本的消息格式。终端使用的主版本号应当提前发送给网络服务器,可以作为其它消息的一部分捎带发送,如,设备个性化信息。4.3 MAC Paylo

7、ad of Data Messages (MACPayload)MAC 荷载,也就是所谓的“数据帧”,包含:帧头(FHDR)、可配置的端口字段(FPort)以及可配置的帧负载字段(FRMPayload)4.3.1 Frame header (FHDR)FHDR由:终端短址(DevAddr)、一个帧控制字节(FCtrl)、2字节的帧计数器(即帧大小,FCnt) 和 最多15个字节的配置(FOpts,用来传输MAC命令)组成。4.3.1.1 帧头中的自适应数据速率控制 (ADR, ADRACKReq in FCtrl)LoRa网络对终端的数据速率没有任何限制。LoRaWAN协议通过该特性调整优化静

8、态终端(相对移动终端来讲)的数据速率,即自适应数据速率(Adaptive Data Rate (ADR))。ADR可用时,网络会为其优化来使用尽可能快的数据速率。移动终端在移动过程中会快速切换无线广播环境,该过程中进行数据速率管理没什么实际意义,此时移动终端应使用已经修正过的默认数据速率。设置ADR之后,网络通过MAC命令控制终端的数据速率。如果没有设置ADR,网络会无视收到的信号的质量,不对终端的数据速率做任何调整。终端或网络用不用ADR要根据需求决定。不过,只要条件允许就应该开启ADR,这样可以延长终端的电池寿命并充分利用网络带宽。注意:哪怕移动终端在大多数时间下都是不移动的。因此终端可以

9、根据它自己移动状态请求网络通过ADR进行数据速率优化。如果终端的数据速率经过服务器优化比默认值大,那节点就要定期检查保证服务器能够收到上传的数据。终端上行的帧号每增加一次(重复发送不增加帧号)的同时,ADR_ACK_CNT + 1。ADR_ACK_DELAY (这么长)时间之内收到下行消息:ADR_ACK_CNT=0(重置)。否则ADR_ACK_CNT 继续根据前面规则处理 。ADR_ACK_CNT=ADR_ACK_LIMIT(一共用时:ADR_ACK_LIMIT + ADR_ACK_DELAY)就切换到更低的数据速率上(无线广播范围的距离更长)重复上述过程,每次终端设备达到 ADR_ACK_

10、LIMIT 就会再次降低自己的数据速率。如果设备使用默认的数据速率就不需要设置 ADRACKReq ,这种情况下任何操作都不会改善连接范围(增加连接距离)。在此期间的下行数据不需设置ACK位,因为终端在等待接收期间收到任何应答都表示网关还能接收来自该设备的上行数据。注意:为了让网络对下行链路给出最佳的调度方案,不要要求对 ADR 请求立刻做出应答,要给网络留足时间。注意:上行传输时,如果 ADR_ACK_CNT = ADR_ACK_LIMIT 并且当前数据速率比设备的最小数据速率高,就要设置 ADRACKReq,其它情况下不需要。4.3.1.2 消息确认位和确认流程(ACK in FCtrl)

11、收到confirmed类型的消息时,接收者要回复一条确认消息(ACK,通过设置确认位实现)。如果发送者是终端,网络就把消息发送到该终端打开的接收窗口。如果发送者是网关,终端就自行决定发送确认消息的传输方式。确认消息只会在收到消息以后作为响应发送,并且不重发。注意:为了尽量简化终端处理、减少状态,一旦收到需要确认的消息要立刻发送确认消息,确认消息要简单直接(最好发空消息)。4.3.1.3 重传机制(Retransmission procedure)如果终端设备发送一条需要确认的消息后没有收到响应,终端就会重新发送这条消息。不同设备间的消息重传的次数和每次的时间可能不同,当然这些也可以通过网络服务

12、器调节。注意:18章给出了一些确认机制的时间注意:如果设备重传次数到限制后还没收到确认消息,就会降低自身的数据传输速率来增加连接距离再次尝试连接。这种条消息的重传或者放弃是由终端决定的。注意:如果网络服务器重传次数达到限制后还没有收到确消息,在没有收到设备的消息之前会认为无法与终端建立连接(终端不可达)。这种消息的重传或者放弃是由服务器决定的。注意:上面提到的重传期间的数据速率回归机制在18.4有详细介绍4.3.1.4 帧挂起位 (FPending in FCtrl, downlink only)帧挂起位(FPending)只在下行交互中使用,表示网关还有数据挂起等待发送。此时需要终端尽快发送

13、上行消息来再打开一个接收窗口。FPending的详细用法在 18.3。4.3.1.5 计数器 (FCnt)每个终端有两个计数器:上行链路计数器(FCntUp),由终端产生并维护,记录发往服务器的帧数量;下行链路计数器(FCntDown),由服务器产生并维护,记录服务器发往终端的帧数量(此处与我们当前的设备服务器与设备的交互中的message id作用相同,都是为了保证消息收发一致)。终端加入服务器成功以后,终端和服务端的帧号同时置0。之后每次其中一方发送消息后,与之对应的 FCntUp 或 FCntDown 就会加1。接收方会同步保存接收数据的的帧号,对比收到的增加过的值和当前保存的值,如果两

14、者之差小于 MAX_FCNT_GAP (要考虑号码归零,即号码达到最大值后重新从0开始),接收方就与收到的数据保持同步(更新成收到的值)。如果两者之差大于 MAX_FCNY_GAP 就说明中间丢失了很多数据然后就会丢掉这条数据。PS4翻译更正如下:LoRaWAN的帧计数器有16位和32位两种长度,两者有所不同:16bits时,其值可以直接作为FCnt使用(反之亦然),此时有需要的话通过在前面填充0(值为0)字节(来补足);32bits时,FCnt对应计数器的16个最低有效位(2个低字节)。上行数据使用上行FCnt,下行数据使用下行FCnt。一个节点在上行FCnt的一次循环内,如果不是消息重传,

15、上行传输数据使用的FCnt不能重复。PS:注释掉原文的直译,原文说法有问题。FCnt的一次循环指的是:从1到达最大值,0x1 0xFFFF(因为LoRaWAN中的FCnt字段是2个字节)。原文档中所谓的“相同的的应用会话密钥和网络会话密钥”就是没有重新入网,重新入网FCnt重新计算,是FCnt循环计数的一种特殊情况。当计数器使用32位时,FCnt字段只发送32bits中的16个最低有效位。此时服务器需要通过观察传输的数据来自己维护16个最高有效位。4.3.1.6 帧配置 (FOptsLen in FCtrl, FOpts)帧配置长度(FOptsLen)位于帧的 FCtrl 部分,表示FOpts

16、的总长度。FOpts搭载到数据帧中发送的MAC命令最长15字节,详细的MAC命令见4.4。如果帧配置长度 FOptsLen=0,FOpts为空;如果FOpts不为空(里面是MACommand),端口号要么省略,要么是一个非零值(具体看下面)。MAC命令不能同时出现在payload(负载)和帧配置项中。4.3.2 端口字段 Port field(FPort)负载(payload)不为空的时候端口号(port)也不能是空。此时port=0表示FRMPayload中只有MAC命令(详情见章节4.4)。FPort值的可用范围是:1223(0x010xDF),224255 (0xE00xFF)为保留值,

17、方便以后扩展。N是应用负载的字节数,N的取值范围见第7节N M - 1 - (FHDR的字节长度)其中M是MAC的最大有效荷载长度。4.3.3 MAC 帧负载据加密(FRMPayload)如果帧数据中包含payload,要先对FRMPayload进行加密,再计算消息的一致码(MIC)。加密方案使用基于IEEE 802.15.4/2006 Annex B IEEE802154 的AES加密,秘钥长度128位。默认情况下,所有FPort 的加/解密都在LoRaWAN层完成;如果FPorts不为0,加/解密可以在LoRaWAN层之上完成。4.3.3.1 LoRaWAN 加密加密秘钥K取决于消息的FP

18、ort:FPortK备注0NwkSKey网络密钥1.255AppSKey应用密钥表3,FPort列表加密字段: pld = FRMPayload采用分组加密,算法位每条消息数据定义一个块的序列,序列分为 k 块,k=ceil(len(pld)/16)(向上取整),每组用Ai表示,i=1k,每块结构如下:字节数1414411Ai0x014 0x00DirDevAddrFCntUp或FCntDown0x00iDir字段:上行帧为0,下行帧为1。对Ai加密,得到Si:通过分割对payload进行加解密:4.3.3.2 Encryption above the LoRaWAN layer对于选定的端口

19、(FPort不能是0,因为0表示MAC 命令),如果LoRaWAN前面的一些层给LoRaWAN的FRMPayload是加密过的,LoRaWAN就把FRMPayload从MACPayload转发给应用,并且转发过程中不做任何改动。4.4 Message Integrity Code (MIC)对整个消息进行MIC计算(AES签名算法CMAC),需要加密的消息包括以下字段:msg = MHDR | FHDR | FPort | FRMPayloadlen(msg) 表示消息的字节长度。MIC算法参考RFC4493:B0 定义如下:字节数1414411B00x494 0x00DirDevAddrFC

20、ntUp 或 FCntDown0x00len(mgs)Dir字段:上行帧为0,下行帧为15 MAC Commands网络管理时会在网络服务器和终端MAC层之间传输一系列MAC命令。一帧数据中可以包含任何MAC命令,MAC命令既可以放在FOpts中,也可以放在FRMPayload中,但不能同时在两个字段携带MAC命令。MAC命令放在FRMPayload时,FPort = 0。放在FOpts的命令不加密(原因:加密Payload,对整个数据签名),也不能超过15个字节(24 - 1)。放在FRMPayload的MAC命令长度不能超过FRMPayload的最大值。注意:不想被别人截获的命令要放到FR

21、MPayload,并单独发送该数据帧一条mac命令由一个命令ID(CID,一个字节),和特定的命令序列组成,命令序列可以是空。命令ID命令终端发送网关发送简介 0x02LinkCheckReq用于终端验证网络连接0x02LinkCheckAns回应验证请求, 同时包含终端接收质量相关的估算的信号功率0x03LinkADRReq请求终端改变数据率、传输功率、接收率或者信道0x03LinkADRAnsLinkRateReq的应答0x04DutyCycleReq设置设备的最大总发射占空比0x04DutyCycleAnsDutyCycleReq的应答0x05RXParamSetupReq设置接收时隙相

22、关参数0x05RXParamSetupAnsRXSetupReq的应答0x06DevStatusReq请求终端状态0x06DevStatusAns返回终端装填,即电量和解调情况0x07NewChannelReq创建或修改无线电信道0x07NewChannelAnsNewChannelReq的应答0x08RXTimingSetupReq设置接收时隙的时间0x08RXTimingSetupAnsRXTimingSetupReq的应答0x80 0xFFProprietary保留命令注:MAC 命令长度没有明确给出来,这就需要MAC执行端通过某种方式隐性 获得。因为无法忽略不明的MAC命令,而且一旦遇

23、到不明的MAC命令,就会导致处理MAC命令队列的进程终止。因此,建议参考使用LoRaWAN规范中的MAC命令。这样的话,所有当前版本LoRaWAN规范中实现的MAC命令都可以被更高版本的规范兼容处理。5.1 链路检查LinkCheckReq和LinkCheckAns终端使用LinkCheckReq命令对链路进行有效性检查,该命令不含payload。网络服务器收到网关(一个或多个)转发过来的LinkCheckReq数据后回复一条LinkCheckAns命令。大小(字节)11LinkCheckAns PayloadMarginGwCntMargin(解调幅度)是最近一条被成功收到的LinkChec

24、kReq命令的链路预算(单位dB),是一个8位(bits)无符号整型,范围 0,254。值为0表示在解调(信号强度)的下限上收到了数据,值20表示网关在比解调下限高出20 dB的信号强度上收到了数据。255是保留值。GwCnt是最近一次成功收到LinkCheckReq的网关的数量。link margin参考:Link margin5.2 速率自适应LinkADRReq和LinkADRAns服务器通过发送LinkADRReq命令让终端设备进行速率自适应。大小(字节)121LinkADRReq PayloadDataRate_TXPowerChMaskRedundancy大小(位 bits)7:4

25、3:0DataRate_TXPowerDataRateTXPower数据速率(DataRate)和 TX输出功率(TXPower),两者和地理区域相关,编码参考第7章。信道掩码(ChMask)通过对相应的最低有效位填0来对上行信道进行编码,信道列表如下:表5:信道状态表第几位可用信道0Channel 11Channel 2.15Channel 16ChMask中某位是1,表示该位对应的上行信道可用;如果是0,则表示对应的上行信道不可用。终端设备当前使用的信道要设为1(不知道是我不会断句,还是官方文档这里说的不明白)。第几位76:43:0Redundancy bits保留ChMaskCntlNb

26、Rep冗余(Redundancy)位中,NbRep表示每条上行消息被重复收到的次数,仅用于unconfirmed类型的上行消息。默认值为1,有效范围 1:15。如果终端设备收到NbRep = 0,则使用默认值。服务器使用该字段控制节点上行数据冗余,以得到给定的服务质量。终端在重传时的调频照常执行,每次重发以后等待接收数据,直到接收窗口过期。信道掩码控制(ChMaskCntl)字段控制上面ChMask的位掩码的解释。当网络上信道的实现超过16个,该字段必须是一个非0值。用它来控制ChMask使用哪16个信道,还可以用它来全局性的打开或关闭所欲使用指定调制方式的信道。该字段的具体使用和地域相关,具

27、体见第7章。信道频率也和地域有关,具体定义见第6章。终端收到LinkADRReq后回复LinkADRAns命令。大小(字节)1LinkADRAns PayloadStatus大小(位)7:3210Status bitsRFUPower ACKData rate ACKChannel mask ACKLinkADRAns Status释义如下:表6:LinkADRAns状态位定义字段(字段值=)0(字段值=)1* Channel mask ACK *要使用的信道未定义。忽略该命令,终端状态不改变设置成功* Data rate ACK *终端未定义或者不支持该速率(可用信道不支持该速率)。命令被忽

28、略,终端状态不改变设置成功* Power ACK *终端未定义该功率等级。命令被忽略,终端状态不改变设置成功以上三个字段任意一个是0,命令就会执行失败,而节点也保持之前的状态不变。5.3 终端的发射占空比(DutyCycleReq和DutyCycleAns)DutyCycleReq,网络协调员使用该命令来限制终端设备的总发射占空比的最大值。总发射占空比指所有子频带的发射占空比。大小(字节)1DutyCycleReq PayloadMaxDCycle终端允许的发射占空比的最大值:总发射占空比=12MaxDCycleMaxDutyCycle有效范围0:15。在没有区域调节设置占空比限制的情况下,使

29、用0表示“占空比没有限制”。值为255时要求终端设备立刻转为静默状态,等价于远程关闭终端。终端收到DutyCycleReq后回复DutyCycleAns,DutyCycleAns不包含任何payload。5.4 接收窗口相关参数 (RXParamSetupReq,RXParamSetupAns)对于每一次的上发,通过下发RXParamSetupReq命令,可以修改第二个接收窗口(RX2)使用的频率和数据率。还可以使下行RX1数据率相对上行数据率偏移。大小(字节)13RX2SetupReq PayloadDLsettingsFrequency第几位76:43:0DLsettingsRFURX1DRoffsetRX2DataRateRX1DRoffset用来设置终端设备上行和下行第一个接收窗口(RX1)数据速率之间的偏移,默认值是0。设置偏移是因为基站所在区域的功率密度可能会有上限,还可以用来平衡上行和下行的无线链路预算。RX2DataRate定义第二个接收窗口使用的数据速率,用法和LinkADRReq一样(例如,0表示DR0/125kHz)。Frequency是第二个接收窗口使用的信道频率,其频率编码规则的定义见NewChannelReq命令。终端设备回复RXParamSetupAns,其pay

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

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