LoRa物联网中文学习资料汇总

LoRaWAN协议中文版 第3章 PHY帧格式

前言这是《LoRaWAN102》的译文,即LoRaWAN协议规范 V1.0.2 版本( 2016 年 7 月定稿)。我正在陆续对协议的各个章节进行翻译,具体其他章节的译文,以及译文之外的代码解析,可点此查看帖子LoRa学习笔记_汇总。本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/翻译开始第3章 PHY 帧格式LoRa 有上行消息和下行消息。3.1 上行消息上行消息是由终端发出,经过一个或多个网关转发给网络服务器。上行消息使用 LoRa 射频帧的严格模式,消息中含有 PHDR 和 PHDR_CRC 。载荷有CRC校验来保证完整性。PHDR,PHDR_CRC 及载荷 CRC 域都通过射频收发器加入。上行 PHY:
PreamblPHDPHDR_CRPHYPayloaCR
图2.上行PHY帧格式3.2 下行消息下行消息是由网络服务器发出,经过单个网关转发给单个终端。下行消息使用射频帧的严格模式,消息中包含 PHDR 和 PHDR_CRC。下行 PHY:
PreamblPHDPHDR_CRPHYPayloa
图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协议。翻译完了解详情

LoRaWAN协议V1.0.2中文版_配套文件 地区参数(物理层)

前言这是《LoRaWAN102》的配套文档《LoRaWAN_Regional_Parameters_v1_0》(2016年7月定稿)的中文译文,在早期的LoRaWAN协议中它是以第7章 物理层的形式存在,由于LoRaWAN逐步应用过程中肯定会有很多新区域加进来,为了不影响旧有协议文档主体,所以从V1.0.2版本开始,联盟把这块内容单独出来。该LoRaWAN官方源文件可点此下载。我正在陆续对协议的各个章节进行翻译,具体其他章节的译文,以及译文之外的代码解析,可点此查看帖子LoRa学习笔记_汇总。本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/翻译开始LoRaWAN地区参数1 介绍这份文档描述了全球不同地区的LoRaWAN具体参数。这份文档是对LoRaWAN协议文档(从版本V1.0.2开始)的配套补充文档。为了避免新区域的加入而导致文档的变动,因此将地区参数章节从协议规范中剥离出来。2 LoRaWAN地区参数2.1 欧洲 863-870MHz 免授权频段待补充,计划3月份补足。2.2 美国 902-928MHz 免授权频段待补充,计划3月份补足。2.3 中国 779-787MHz 免授权频段待补充,计划3月份补足。2.4 欧洲 433MHz 免授权频段待补充2.5 澳洲 915-928MHz 免授权频段待补充2.6 中国 470-510MHz 频段2.6.1 中国 470-510MHz 前导码格式要用如下的同步字:
调制方式同步字前导码长度
LoR...
了解详情

LoRaWAN协议解析 第6章 终端激活

1 前言我正在陆续对《LoRaWAN102》即LoRaWAN协议规范 V1.0.2 版本(2016年7月定稿)协议的各个章节进行翻译。译文之外还对LoRaWAN协议和源码进行了解析,可点此查看帖子LoRa学习笔记_汇总。欢迎同行朋友们留言交流。本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/2 梳理解析LoRaWAN第6章,主要对节点加网做了描述,它有两种方式。如果要用一句话来总结的话,那就是这一句了,请看:如果是空中激活,则需要准备 DevEUI,AppEUI,AppKey 这三个参数,即设备自身MAC地址和要使用的应用(应用ID和密钥)。如果是ABP激活,则直接配置 DevAddr,NwkSKey,AppSKey 这三个LoRaWAN最终通讯的参数,不再需要join流程。在这种情况下,这个设备是可以直接发应用数据的。这里插个题外话,商用的LoRaWAN网络一般都是走OTAA流程,这样安全性才得以保证。(twowinter,你数数,这是一句话?)(如果是空中激活,则需要准备 DevEUI,AppEUI,AppKey来join。如果是ABP激活,则直接配置 DevAddr,NwkSKey,AppSKey。)3 代码位置3.1 激活处理协议的第6章,相关的核心代码是这么几行,位于 \src\mac\main.c。整个代码结构非常清晰,用一个宏(OVER_THE_AIR_ACTIVATION)分开两段,分别对应两种激活方式。3.2 参数配置关于参数部分,相关的默认值全部位于\src\apps\LoRaMac\classA\硬件平台\Comissioning.h本尊有机会接触了几个LoRaWAN基站厂家,发现大家为了调试方便,一般也会支持这些默认值。End了解详情

LoRaWAN协议解析 第5章 MAC命令

1 前言我正在陆续对《LoRaWAN102》即LoRaWAN协议规范 V1.0.2 版本(2016年7月定稿)协议的各个章节进行翻译。译文之外还对LoRaWAN协议和源码进行了解析,可点此查看帖子LoRa学习笔记_汇总。欢迎同行朋友们留言交流。本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/2 梳理解析从LoRaWAN第4章的帧格式可以得到如下信息:MAC命令,要么使用FPort0来单独传输,要么使用非零的FPort来和数据一起传输。LoRaWAN第5章,LoRaWAN出于网络管理需要,提出了9条MAC命令,这个章节是对9条命令进行具体的描述。说个题外话,CLAA(中国LoRa应用联盟)在9条命令以外还扩充了一些MAC命令。现阶段协议还不能公开,所以我就不多说了。中兴目前作为LoRa联盟董事会成员,也许以后会把这些拓展MAC命令引入到LoRaWAN协议也说不准,大家暂且当个课外知识了解下就好。3 代码位置MAC命令枚举MAC命令的接收处理OnRadioRxDone()携带着MAC帧进来,经过层层筛选,最终到达ProcessMacCommands()来处理MAC命令。这里代码中涉及的两种处理方式,可以跟协议对应起来:port = 0时,MAC命令放在FRMPayload中,需要先解密再处理;port非零时,MAC命令放在fopts中。MAC命令的发送及回复MAC命令的发送及回复处理都在这个函数中,AddMacCommand()。协议栈对MAC命令发送的处理还是比较简单的,都是放在Fopts中来传输,都在这个15字节的MacCommandsBuffer中。了解详情

LoRaWAN协议解析 第4章 MAC帧格式

1 前言我正在陆续对《LoRaWAN102》即LoRaWAN协议规范 V1.0.2 版本(2016年7月定稿)协议的各个章节进行翻译。译文之外还对LoRaWAN协议和源码进行了解析,可点此查看帖子LoRa学习笔记_汇总。欢迎同行朋友们留言交流。本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/2 梳理解析LoRaWAN第4章,主要讲述了MAC帧格式,对所有涉及的字段都做了解释。千言万语汇成一句话,哦不,汇成一个表。
数据帧头DevAddFCtrFCnFOpt
数据帧PreamblPHDPHDR_CRMHDFHDFPorFRMPayloaMICR
MAC层PreamblPHDPHDR_CRMHD...
了解详情

LoRa天线电路设计四大要点

随着LoRa技术在业内的持续发热,加上其独特优越的传输性能,运用LoRa技术的群体正在爆发式的增长,由于很大部分群体对LoRa等射频技术均是初次接触,在做产品的过程中,通常会遇到棘手的射频电路设计问题,其实只要掌握几大要点,就基本可以发挥LoRa的最佳性能。要点一、匹配电路设计在原理图设计时,需要在天线接头与模块的天线引脚之间预留一个π型匹配电路。天线的阻抗是受到电路板的铺地、外壳和安装角度等因素...了解详情

LoRaWAN实战 LinkADR命令的源码分析

前言LinkADR是LoRaWAN网络管理中相当重要的一个MAC命令,其解析占用了183行。索性专门写篇源码解析,记录下。阅读此文前,最好再把第五章的这个命令好好翻一翻,代码和协议才能对应上。我正在陆续对协议的各个章节进行翻译,具体其他章节的译文,以及译文之外的代码解析,可点此查看帖子LoRa学习笔记_汇总。本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/LinkADRReq 的源码解析按照代码思路走一遍。1.解析 DataRate_TXPower 字段datarate = payload[macIndex++];txPower = datarate & 0x0F;datarate = ( datarate >> 4 ) & 0x0F;if( ( AdrCtrlOn == false ) &&( ( LoRaMacParams.ChannelsDatarate != datarate ) || ( LoRaMacParams.ChannelsTxPower != txPower ) ) ){ // ADR disabled don't handle ADR requests if server tries to change datarate or txpower// Answer the server with fail status// Power ACK = 0// Data rate ACK = 0// Channel mask = 0AddMacCommand( MOTE_MAC_LINK_ADR_ANS, 0, 0 );macIndex += 3; // Skip over the remaining bytes of the requestbreak;}如果终端ADR没开,那么就立即丢弃本命令处理。这里的macIndex += 3是对应LinkADRReq的剩余命令长度3而言的。2.解析 ChMask 字段chMask = ( uint16_t )payload[macIndex++];chMask |= ( uint16_t )payload[macIndex++] << 8;3.解析 Redundancy 字段nbRep = payload[macIndex++];chMaskCntl = ( nbRep >> 4 ) & 0x07;nbRep &= 0x0F;if( nbRep == 0 ){nbRep = 1;}把字段中的 chMaskCntl 和 nbRep 都给解析了出来。4.按地区规定处理 chMaskCntl ,及判断 ChMask 有效性#elif defined( USE_BAND_470 )if( chMaskCntl == 6 ){// Enable all 125 kHz channelsfor( uint8_t i = 0, k = 0; i < LORA_MAX_NB_CHANNELS; i += 16, k++ ){for( uint8_t j = 0; j < 16; j++ ){if( Channels[i + j].Frequency != 0 ){channelsMask[k] |= 1 << j;}}}}else if( chMaskCntl == 7 ){status &= 0xFE; // Channel mask KO}else{for( uint8_t i = 0; i < 16; i++ ){if( ( ( chMask & ( 1 << i ) ) != 0 ) &&( Channels[chMaskCntl * 16 + i].Frequency == 0 ) ){// Trying to enable an undefined channelstatus &= 0xFE; // Channel mask KO}}channelsMask[chMaskCntl] = chMask;}如果 chMaskCntl 为6,则所有信道都使能。如果 chMaskCntl 为7,则由于未定义返回失败。其他有效 chMaskCntl 情况下,先检查是否有未定义的频点,如果没问题则更新对应的channelsMask。5.判断速率有效性if( ValidateDatarate( datarate, channelsMask ) == false ){status &= 0xFD; // Datarate KO}6.判断发射功率有效性if( ValueInRange( txPower, LORAMAC_MAX_TX_POWER, LORAMAC_MIN_TX_POWER ) == false ){status &= 0xFB; // TxPower KO}7.全部判断通过后更新参数if( ( status & 0x07 ) == 0x07 ){LoRaMacParams.ChannelsDatarate = datarate;LoRaMacParams.ChannelsTxPower = txPower;memcpy1( ( uint8_t* )LoRaMacParams.ChannelsMask, ( uint8_t* )channelsMask, sizeof( LoRaMacParams.ChannelsMask ) );LoRaMacParams.ChannelsNbRep = nbRep;}8.回复MAC命令 LinkADRAnsAddMacCommand( MOTE_MAC_LINK_ADR_ANS, status, 0 );突然发现 AddMacCommand 的形参只有CID加2字节的回复,我是太无聊,把终端所有MAC命令都翻了一遍,确认所有payload确实是小于2字节。再次赞扬LoRaWAN协议的精简作风。End了解详情

LoRaWAN实战 中国470频段的代码实现

前言在LoRaWAN协议中文版_配套文件 地区参数(物理层)中已经为中国规划了470频段,因此国内开发者对此需求很强烈。在最新(2017-02-27)的V4.3.1版本协议栈上已经新增了中国470频段。这篇文章从源码角度解析下其实现方式。目前国内的LoRaWAN基站产品都和标准有一些不同,比如CLAA等,所以搞清楚整个代码实现还是很有必要的。只要熟悉了整个流程,对接任何一个基站都不是难事。我正在陆续对协议的各个章节进行翻译,具体其他章节的译文,以及译文之外的代码解析,可点此查看帖子LoRa学习笔记_汇总。本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/源码解析1.前导码格式的源码实现同步字的处理在SX1276的驱动中:而前导码长度则是在每次SetTxConfig和SetRxConfig时配置进去。2.信道频率的源码实现先说上行信道的处理。第一步,初始化时把所有信道6*16=96个上行信道都使能了。第二步,紧接着把96个信道的频点赋值一遍。第三步,发送时在SetNextChannel中选择合适的频点,默认是96个信道中随机选择。这上面是上行信道处理三部曲,下行信道处理则轻松多了。主要是配合接收窗口处理,由这个宏定义了下行的起始频点。具体可以看下面第7点。3.数据速率和节点发射功率编码速率编码如下:发射功率编码如下:速率范围如下:发射功率范围如下:4.CFList中国没有。具体见OnRadioRxDone中的FRAME_TYPE_JOIN_ACCEPT分支。5.LinkAdrReq命令对于 ChMaskCntl 的处理都在 ProcessMacCommands() 的 SRV_MAC_LINK_ADR_REQ 分支中。小彩蛋一个:你发现没,注释里写着Channel mask KO。不知是djaeckle (loramac-node的作者之一)调皮,还是语言习惯如此。6.最大载荷长度这在RxWindowSetup()进行处理,调用了最终的驱动函数。7.接收窗口处理。RX1的处理在OnRxWindow1TimerEvent()中,满足协议要求。RX2的默认参数见如下宏:RX2的处理在OnRxWindow2TimerEvent()中:速率偏移处理如下:8.默认设置目前基本各地区的参数都一样,因此协议栈也是直接共用如下参数:End了解详情

物联网技术业务思考和展望

卢斌 中国电信股份有限公司广东研究院摘要为了分析物联网技术业务并展望其未来的发展,从对物联网业务的预测出发,归纳分析物联网可能的业务场景,分析各种场景对应的无线接入技术的优缺点,最后对物联网的发展和商业模式进行展望。一、引言经过20多年的高速发展,移动通信成为当今经济发展的推动力,在以人为中心的手机通信市场,人口普及率达到90%甚至超过100%。为了寻找新的增长点,物联网业务逐步进入无线通信产业...了解详情

LoRa学习笔记_汇总

LoRa在今年(2016年)应该是最火的物联网技术,Semtech不停攻城略地,七大洲,哦,除了南极洲,所有地区都宣布要建立国家级的LoRa网络。虽然,我大中国的运营商要做NB-IoT,但是不乏中兴、富士康、鹏博士等企业野心勃勃,要在NB-IoT正式商用之前就部署出一个类运营商的LoRa网络。在市场为低功耗广域网开始造势时,我们技术人员就要开始跟上了。IoT小能手在ZigBee、蓝牙、WiFi之后...了解详情

几种LoRa应用协议的定义以及应用方向

Lora几种应用协议分别是Lora协议、LoraWAN协议、CLAA协议、Lora私有协议等。下面就简单介绍一下这几种协议的应用,供大家参考LoRa协议LoRa™(Long Range,远距离)是一种调制技术,与同类技术相比,提供更远的通信距离。由于LoRa调制是物理层(PHY),因此也可将其用于不同的协议和不同网络架构(如Mesh、Star、点对点)等等。可以将LoRa概括为以下几种协议LoRaWAN协议...了解详情

物联网低功耗广域网络有哪些?

随着各类厂商不断发力低功耗广域网络(LPWA),物联网专用网络的话题在此引起业内的热议。物联网智库曾持续关注并推出多篇LPWA的文章,向业内介绍SigFox、LoRa、LTE-M等市场上已开始商业化的LPWA协议。作为一个新兴的、刚起步的技术和市场,LPWA网络协议应该是呈现多家争鸣的状态,那么,这一领域还有哪些技术,它们之间在多个指标上各有哪些特点?物联网智库本周为大家编译推出一篇LPWA协议的...了解详情

LoRa网关、节点性能常用数据整理和统计

本文包含一些用到的一些LoRa网关、节点相关的参数,供方案设计人员参考。LoRa网关处理能力1个1301芯片,8个上行通道,24小时可以接收约150万个数据包。每个设备每小时上报一次,可以处理约62500个设备。下面见官方资料What is the capacity of LoRa gateway? How many nodes can be connected to a single gate...了解详情

LPWA,物联网产业发展的新机遇

2015 IMT~2020(5G)峰会发布了《5G无线技术架构白皮书》和《5G的网络技术架构白皮书》,提出了2020年之后移动通信技术和产业将迈入第5代通信,使经济生活从移动互联网扩展到物联网领域,实现“万物互联”,并明确以连续广域覆盖、热点高容量、低时延、低功耗等为主要技术场景,满足2020年及未来的移动互联网和物联网发展需要。物联网产业发展催生无线接入新技术的兴起物联网时代将有数百亿物体接入网...了解详情

NB-IoT和LoRa使用频谱比较

概述在中国,在低功耗广域网领域,NB-IoT和LoRa无疑是最为热门的两种低功耗广域网(LPWAN)技术。两者形成了两大技术阵营,一方是以华为为代表的NB-IoT,另一方是以中兴为代表的LoRa。国内两大电信服务商,引领了两种技术的发展,可谓是中国低功耗广域网(LPWAN)技术领域里的盛事。而低功耗广域网由于其低功耗广域覆盖的特点,正在推动物联网新一波发展的行情。毫无疑问,无线电频谱是一种国家资源...了解详情

低功耗广域网(LPWAN)中的LoRa连接

在中国低功耗广域网(LPWAN)市场中,LoRa和NB-IoT无疑是最热门的LPWAN无线技术。LoRa工作在免授权的Sub-Ghz频段上,受益于其免费的频谱资源,企业都可以参与到LoRa的产品应用和网络的建设。Wi-Fi、蓝牙等近距离无线通信技术无法满足物联网的大规模部署,以ZigBee等为代表WSN网络虽是可以低成本低功耗接入,但目前还形成不了广域的覆盖和部署,也还限于小范围的应用。移动网络虽...了解详情

LoRaWAN版本历史及协议格式说明

译文参考翻译原文链接LoRaWAN 规范 1.0 (章节2~4)LoRaWAN 规范 1.0 (章节5)LoRaWAN 规范 1.0 (章节6)LoRaWAN 规范 1.0 (章节7)LoRaWAN 规范 1.0 (章节10~13)英文文档下载链接LoRaWAN1.0.1_d3LoRaWAN Specification 1R0LoRaWAN1.0.2第7章物理层(Physical layer)的内容放到另一个文档LoRaWAN Regional Parameters修正章节4.3.1.1中与ADR相关的错误描述(要写成ADR_ACK_LIMT而不是ADR_ACK_DELAY)修正章节18.2标题错误(1.0.1中是19.2)增加MAC命令DlChannelRec,该命令用来修改节点下行频率增加MAC命令Tx ParamSetupRec,此命令用来远程修改某些区域中节点的最大TX驻留时间和最大无线电发射功率终端设备能够处理多个ADRreq命令(章节5.2)明确AppKey定义LoRaWAN1.0.1_d3该版本是一些bug修复,协议本身没有什么改动。阅读中文翻译的朋友可以略过大部分改动,因为这些在翻译过程中已经处理了。变化如下:明确 RX 窗口开启时间修正 章节NA 中 DR2 负载大小上限修正 7.2.2 中的拼写错误对 7.2.2 中使用码率 4/5 提出新的规定,以保证无线传输时间 < 400ms修正 6.2.5 中的JoinAccept MIC算法5.2 中的 字段名由 NbRep 改为 NbTrans删掉4.3.3.2,排除 MAC层不对应用数据(Applicative payload)加密的情况。出于应用对安全的进一步要求,不管用什么算法,需要对payload加密(这里无关LoRaWAN协议,跟个人安全有关),然后再使用LoRaWAN中的算法在MAC层再次加密。修正 FHDR 相关错别字修正 7.2.5 中 chMaskCntl 等于6或7时 ChMask 对信道的影响。说明 JoinResp 消息中 RX1 的数据速率偏移删除 7.2.7 中 DRoffset表的下半部分。LoRaWAN Specification 1R0初始版本协议格式整理整个协议包括LoRa和网关交互部分,服务器只需要带颜色的数据。最近有不少朋友对PHYPayload还是搞不清,再分享两张图片,把整个流程都分享给大家1 入网激活2 接收入网3 正常通信本文由 qingchuwudi 整理、译制,除非另有声明,本作品采用知识共享署名 3.0 中国大陆许可协议进行许可。了解详情

LoRaWAN 规范1.0 (章节10~13)

10 B类模式的上行数据帧除了帧头中FCtrl字段的保留(RFU)位,B类和A类的上行数据帧一样。B类使用A类中没有使用的RFU位
第几位3…
FCtrADADRACKReACClassFOptsLe
上行数据中的 ClassB 位设为1,来告诉网络服务器:设备已经转换为B类模式,已经准备在照预定时间接收下行ping。下行数据的 FPending 位意义不变,仍然表示服务器上有等...了解详情