系统梳理与分析:NB-IoT与eMTC的十轮鏖战

伴随移动通信技术的不断发展,全球物联网即将迎来快速的发展。在国际运营商中, AT&T、Verizon、KDDI、KPN、Orange、NTT DoCoMo、Telefonica、Telstra、Telus都先后开展了eMTC的商用。在我国,电信率先起跑,在确立了800MHz组网能力之后,一口气要建成30万NB-IOT基站。联通与Jasper签订双排他协议,早早确定了NB-IOT作为发展方向。而最早...了解详情

LoRa定位技术

物联网应用对位置的需求越来越多,LoRa技术提供了另一种定位选择LoRa在LPWAN中是独一无二,提供原生免GPS定位技术。LoRa地理位置允许用户定位资产、跟踪设备和检测地理围栏知道某些东西在哪里。这种地理位置功能是LoRaWAN独有的,通过LoRa技术来实现。Machina Research预测,60%的物联网设备将会使用地理位置数据,其中三分之一的应用将严重地依赖于位置。Semtech早期就明确了低功率广域网地理位置的重要性,在地理定位技术方面投入了大量时间和精力,经过了三年多的开发,于2016年6月宣布增加此功能。地理位置有四个主要用处:定位、导航、管理和跟踪。定位:快速识别位置意味着节省时间并提高效率。 例如,通过了解事件的确切位置,用户可以快速做出反应并可能提高安全性。导航:即时的位置信息开启导航功能,帮助确定一个可靠的和有效的路线,并避免延迟和/或拥堵。管理:提供数据的位置关联性有助于增强其价值和实用性。 这对于温度和水位监测特别有用,可以改善自然灾害的反应时间,如火山爆发和洪水。跟踪:LoRa地理位置对跟踪资产和传感器特别有用。 通过访问地理标签的数据,用户可以对偏差做出反应,预测潜在的问题。各种不同的技术都提供了定位解决方案,需要对精度、设备价格、覆盖范围和功耗做个权衡取舍LoRa是唯一无二的,只要终端节点与网络通信,就可以得到地理位置数据。 对物料清单和功耗几乎没有任何影响。 基于LoRa的地理位置可以工作在室外和室内,精度取决于地形和基站密度。我们来看看地理位置的一些典型应用:智慧城市和交通监控:汽车应用中的地理位置功能可用于事故跟踪和通知,以及预测性维护需求。具体位置的数据有助于算法做出更好的预测。计量和物流:地理位置功能在物流中有各种应用。 一些例子包括垃圾桶、回收库、气罐或任何其他任何容器的填充率监测。 数据可用于自动优化收集路线并节省运营成本。 此外,地理位置可用于资产跟踪实现更有效的库存管理。农业:LoRa地理位置目前用于家畜跟踪。 通过跟踪牛并监测它们的健康,例如,你可以更快更容易地照料生病的牛。 在一个大牧场上,了解病畜的具体位置可以明显地提高反应时间。LoRa地理位置还应用在建筑、保险和消费行业等,用于跟踪高价值资产,如建筑材料、保险商品、宠物甚至人等!LoRa地理位置提供最低的功率、成本和环境影响。与地理位置相关的接收、传输或处理在传感器外面完成,因此不需要额外的硬件、电池或时间。介绍LoRa定位技术继续介绍LoRa地理位置,让我们来快速看一下基础的技术。目前,LoRa使用到达时间差(Time Difference of Arrival,TDOA)来实现地理定位。 要了解它是如何工作的,我们来看看从终端节点到服务器的数据传输步骤。开始,所有的基站或网关共享一个共同的时基,这是重要的。当任何LoRaWAN设备发送一个数据包时,该数据包被范围内的所有网关接收,并且每个报文都将报告给服务器。所有的网关都是一样的,它们一直在所有信道上接收所有数据速率的信号。 这意味着终端设备上没有开销,因为它们不必扫描和连接到特定的网关。 传感器简单地唤醒,发送数据包,范围内的所有网关都可以接收它。然后,所有网关都会将相同的数据包发回到服务器,使用内置在最新一代网关中的专用硬件和软件捕获高精度到达时间。 接下来,服务器端的算法比较到达时间、信号强度、信噪比和其他参数来计算终端节点的最可能位置。未来,我们期待混合数据融合技术和地图匹配增强来改善到达时间差,提高定位精度。为了使地理位置准确地工作,需要通过至少三个网关接收到数据包。更多网关的更密集网络会提高定位的精度和容量。这是因为当更多的网关接收到相同的数据包时,服务器算法会收到更多的信息,从而提高了地理位置精度。现在,我们来讨论一下硬件。 网关内部需要下一代的硬件来计算地理位置中使用的一些参数,如高精度的到达时间。Semtech于2016年初创建了网关参考设计,此后在许多网关中成功实现。 它包括了所需的高质量时间戳功能,并且适用于获得授权的网关合作伙伴。 这样确保了多个供应商的部署都能一致地工作,提供高质量的时间戳,从而实现最高质量的地理定位服务。需要重点注意的是,地理位置完全依靠网关和网络技术,因此一旦网关升级,地理位置功能就可用于所有设备。Semtech还提供了一个地理位置解算程序。通用的解算程序不是专用的应用程序,是与终端节点无关的,为LoRa地理定位服务提供了良好的起点。 另外,定义了一个API,允许系统集成商使用第三方可能提高可用位置精度的解算算法。通过这种开放的模式,Semtech鼓励解算技术的创新和发展,确保基于LoRaWAN的地理位置不断改进。当数据包到达网关时,它不知道数据包来自哪个终端设备。因此,网关给接每个接受到的数据包加上时间戳,并将其转发给服务器。由于访问地理位置服务是有价值的,所以这些时间戳在网关中通过加密来保护。时间戳被传输到网络服务器,Semtech授权解密功能给网络服务提供商。 网络服务器提供商可以根据订阅的服务级别对数据进行解密。要提供良好位置最大困难之一是减少多路径传输。如上图所示,一些数据包直接去了网关,有些数据包并没有但有一个反射信号,其他数据包两种情况都有。使用更多数据包传输来减少多路径传输,可以通过更多的信道、更多的网关、更多天线以及使用机器学习或统计技术。最后,我们来看看数据的可控参数。频率分集。通过在所有可用信道上重复发送一条消息,平均来看地理位置结果有50%的改善。 一个工作在8通道网络上的静态终端节点在8个不同信道上发送8个数据包后,那么其结果将提高50%。部署网关网格的形状。 网关部署网格的影响约为25%。 一个长的细网格将比一个方格网格差25%。 因此,网络部署应尽可能侧重于以方形模式部署网关。网关分集。 一般来说,接收信号的网关越多,结果越准确。 然而,超过6个网关,地理位置改善开始变得不明显。 3到4个网关,大概有25%的改善,超过4个网关地理位置改善开始减少。最后,天线分集。 天线分集对最弱的信号影响最大。因此,如果设备在3个网关上处于接收良好的位置,增加一个弱的第四个网关,天线分集通常会改变在第四个网关上接收到的数据包从不可用到可用。在这种情况下,它可以提供25%的地理位置改善。了解详情

深入解析8大关键技术,4大应用场景,看完秒懂5G

未来的网络将会面对:1000倍的数据容量增长,10到100倍的无线设备连接,10到100倍的用户速率需求,10倍长的电池续航时间需求等等。坦白的讲,4G网络无法满足这些需求,所以5G就必须登场。但是,5G不是一次革命。5G是4G的延续,我相信5G在核心网部分不会有太大的变动,5G的关键技术集中在无线部分。虽然5G最终将采用何种技术,目前还没有定论。不过,综合各大高端论坛讨论的焦点,我今天收集了8大...了解详情

LoRa联盟最新白皮书:LoRaWAN安全-可为IoT应用供应商提供完整的端对端加密

这是最近LoRa联盟官方发布的第6份白皮书,主题是安全,由GEMALTO、ACTILITY和SEMTECH一同提供,总体来说技术性较强,翻译难免有不妥之处,还请大家见谅。介绍LoRaWAN?是一种低功耗广域网络协议,可以为IoT、M2M智慧城市和工业应用等场景提供低功耗、可移动、安全的双向通信。LoRaWAN协议为低功耗进行了优化,并且为可支持数以百万计设备的大型网络结构进行了特别设计。LoRaWAN的特点是可以支持冗余操作、定位、低成本和低功耗等应用场景。安全是所有应用场景的基本前提,所以从一开始在LoRaWAN协议中就对安全性进行了设计。然而安全包含众多方面,尤其是LoRaWAN的加密机制需要特殊的解释。所以此白皮书将会对当前LoRaWAN协议的安全性进行说明。首先会针对协议中的安全属性进行阐述,然后呈现具体的实现细节,最后对一些LoRaWAN安全性上的设计进行解释。LoRaWAN?安全属性LoRaWAN的安全性设计原则要符合LoRaWAN的标准初衷,即低功耗、低复杂度、低成本和大扩展性。由于设备在现场部署并持续的时间很长(往往是数年时间),所以安全考虑一定要全面并且有前瞻性。LoRaWAN安全设计遵循先进的原则:标准的采取,算法的审查,以及端到端的安全机制。接下来我们会对LoRaWAN安全性的基本特性进行描述:包括双向认证、完整性校验和保密机制。双向认证作为网络连接的过程,发生在LoRaWAN终端节点与网络之间。这确保只有真正的和已授权的设备才能与真实的网络相连接。LoRaWAN的MAC和应用消息是“生来”经过认证、完整性保护和加密的。这种保护和双向认证一同确保了网络流量没有改变,是来自一个合法的设备,而不是“窃听者”,或者“流氓”设备。LoRaWAN安全性进一步为终端设备和服务器之间的数据交换提供了端对端的加密机制。LoRaWAN是为数不多的支持端对端加密的IoT网络技术。传统的蜂窝网络中,加密发生在空中接口处,但在运营商的核心网络中只是把它当做纯文本来传输的。因此,终端用户还要选择、部署和管理一个额外的安全层(通常通过某种类型的VPN或应用层加密如TLS来实现)。但这种方法并不适合应用在LPWAN技术中,因为这会额外地增加网络功耗、复杂性和成本。安全策略之前提到的安全机制依赖于经过完备测试和标准化的AES加密算法。加密社区已经对这些算法进行了多年的研究和分析,并且被美国国家标准技术研究所认定为适用于节点和网络之间最佳的安全算法。LoRaWAN使用AES加密语句,并结合多个操作模式:用于完整性保护的CMAC、用于加密的CTR。每一个LoRaWAN终端具有一个唯一识别的128位AES Key(称为AppKey)和另外一个唯一标识符(EUI-64-based DevEUI),二者都应用于设备识别过程。EUI – 64标识符的分配要求申请人从 IEEE 登记机关获得组织唯一标识符 (OUI)。同样地,LoRaWAN网络由LoRa 联盟分配的24位全球惟一标识符进行标定。安全应用的负载LoRaWAN? 应用负载的端对端加密发生在终端设备和服务器之间。完整性保护由跳频来实现: 空中跳频通过LoRaWAN提供的完整性保护,网络和服务器之间的跳频通过使用安全传输方案如HTTPS和VPNS来实现。双向认证:空中激活证明了终端设备和网络都具有AppKey的概念。这通过将一个AES-CMAC(使用AppKey)装载到设备的加入请求和后端接收器得到证明。两个会话秘钥接着进行相互认证,一个用来提供完整性保护和LoRaWAN MAC指令和应用程序负载(NwkSKey)的加密,另一个用来提供端对端应用负载(AppSKey)的加密。NwkSKey装载在LoRaWAN网络是为了验证数据包的真实性和完整性。从网络运营商的角度AppKey和AppSKey可以被隐藏,所以破解应用负载是不可能实现的。数据完整性和隐私保护:LoRaWAN通信使用两个会话秘钥进行保护。每个负载由AES-CTR加密,并且携带一个帧计数器(为了避免数据包回放),一个消息完整性代码(MIC)和AES-CMAC(为了避免数据包被篡改)。下图是LoRaWAN包结构示意图。  安全性事实与谬论 LoRaWAN?设备的物理安全:AppKey和衍生而来的会话秘钥会持续的保存在LoRaWAN设备中,它们的安全性依赖于设备的物理安全。一旦设备受到物理损害,这些秘钥存在防篡改存储器中从而受到保护,并且很难提取。密码学:一些资料指出LoRaWAN?密码只使用了XOR而并非AES。事实上,如之前所提到的,AES用在了标准化CTR模式,这利用了XOR加密操作(还有CBC等许多其他模式)。这通过给每个分组密码分配一个惟一的AES码强化了AES算法。会话秘钥分布:由于AppSKey 和NwkSKey从同一个AppKey生成,可以说如果LoRaWAN运营商获得了AppKey,它能够推导出AppSKey从而解码网络。所以为了避免这种情况的发生,服务器要对AppKey的存储进行管理,双向认证和密钥推导的过程可以由运营商以外的实体进行操作。为了给运营商额外的灵活性,LoRaWAN接下来的新版本协议(1.1)会定义两个主秘钥,一个用于网络(NwkKey),一个用于应用(AppKey)。后端接口安全:后端接口包括网络和应用程序服务器之间控制和数据信号。HTTPS和VPN技术用于保护这些关键的基础设施元素之间沟通的安全性。实现和部署安全:LoRa联盟一直在确保其协议和架构规范的安全性,但是解决方案的总体安全性还要依赖于具体的实现和部署方式。所以安全问题需要各个环节的配合,制造商、供应商、运营商都需要参与当中。注解1 AES – 一种高级加密标准。这是一个基于对称密钥的加密算法,允许消息加密和身份认证。2 CMAC – 基于暗码的消息认证码。3 CTR – 计数器模式加密标准。一种依赖于计数器的数据流加密AES算法的操作模式。4 AES-CMAC – 基于暗码的消息认证码,使用AES加密算法提供消息的完整性和真实性。5 CBC是AES算法的一种操作模式,依靠一个初始化向量和前序的数据块进行数据流的加密。  最后这个图是LoRa联盟给出的全球部署情况图,LoRa联盟现阶段有超过400个会员,全球有超过150个正在进行的部署计划,并且有34个运营商的加入。了解详情

LoRaWAN协议(七)–完整数据流程

以下的GW指Gatewa所用指令tcpdump -i lo -nn -x 'length>100入网流程OTAA入网流程,ABP方式入网则不需要NS ->AS ->NS ->AS ->NS->GW Join_accept messGW ->数据通讯流程GW->NS ->AS ->AS ->app.userdata.payload bas...了解详情

LoRaWAN协议(六)–OTAA KEY生成过程

前言通过OTAA方式入网的设备,通讯时使用的KEY需要通过服务器获得,在入网之间,设备无法通讯。相关的OTAA入网流程已经在上一章中讲解过了,有兴趣的可以去看看*LoRaWAN协议(五)__OTAA入网方式详述**这一章讲解的是OTAA中的密钥生成过程。其中使用到的库函数都是从semtech的官方库中来的,官方库代码链接:LoRaMac-node。详解设备在通讯时,会使用的密钥有NwkSKey 和AppSKey。生成的公式如下:NwkSKey = aes128_encrypt(AppKey, 0x01 | AppNonce | NetID | DevNonce | pad16)AppSKey = aes128_encrypt(AppKey, 0x02 | AppNonce | NetID | DevNonce | pad16)可以看到相关的参数一共有四个:1.AppNonce2.NetID3.DevNonce4.pad16其中AppNonce、NetID、pad16 是产生于服务器的,DevNonce产生于node设备本身。还是使用LoRaWAN协议(五)这篇文章中使用的包数据来进行分析。这里,我们调用官方库的接口,因为我们这里只是熟悉协议,并不是要研究Key的生成算法。如果不明白数据协议的,可以去看LoRaWAN协议(五)这篇文章提取DevNonce1.GW->NS JSON包,从中提取出来DevNonce,data为MAC层数据,为join_request message,其数据包格式为
MHDAPPEUDevEUDevNoncMI
1字节8字节8字节2字节4字节
base64解码得到的数据
字段内容
MHD\x0
AppEU\x01 \x00 \x00 \x20 \x00 \xc5 \x26 \x2
DevEU...
了解详情

LoRaWAN协议(五)–OTAA入网方式详述

前言OTAA(Over-The-Air Activation),是LoRaWAN的一种空中入网方式。当node在上电的时候处于非入网状态时,需要先入网才能和服务器进行通信。其操作就是node发送join_request message,请求入网,然后服务器同意入网,并且返回Join-accept message,node再对信息进行解析,获取通信参数,之后就可以和服务器通信了。顺便分享几个工具网站给大家...了解详情

LoRaWAN协议(四)–入网方式概述

前言在LoRaWAN中,node最终和服务器能够正常数据交互,需要先入网,入网的本质,也就是获得一些通信相关的参数,有以下几个NwkSKeAppSKeDevAddDevEu其中NwkSKey用于数据的校验,也就是说在MIC校验时会用到AppSKey用于负载的AES加密,也就是说在加密解密时会使用到DevAddr是node的短地址,在数据通讯时,使用的是node的短地址DevEUI 在AB...了解详情

LoRaWAN协议(三)–Server端数据协议

LoRaWAN Server 端架构LoRaWAN 的server包括 NS(Network server)、AS(application server)、CS(Custom server)....其中NS和AS是必不可少的,是完成LoRaWAN协议的重要组成部分NS 职责NS是直接与GW通信的服务器,也是AS和GW之间的桥梁我所知道的工作有如下几点验证数据的合法性(校验MIC从GW的信息中提取数据,整理成NS 的JSON数据包...了解详情

LoRaWAN协议(二)–LoRaWAN MAC数据包格式

名词解析上行:终端的数据发送经过一个或多个网关中转到达网络服务器。下行:由网络服务器发送给终端设备,每条消息对应的终端设备是唯一确定的,而且只通过一个网关中转。LoRaWAN ClasseLoRaWAN Classes 一共分为3类:Class A,Class B,Class Class A:终端先发送,在发送后开启一段时间的接收窗口,终端只有在发送后才可以接收。也就是说上行没有限制,下行的数...了解详情

LoRaWAN协议(一)–架构解析

LoRaWAN 分层总体架构一共分为4部分LoRaWAN从底层到最后用户拿到数据的通讯过程通讯大致可分为三段MOTE <—> GWGW <—>server <—LoRa联盟 规定了 MAC层的通讯协议,只有在设备(GW、MOTE)共同遵守的MAC层协议的前提下,不同硬件厂商的设备才能互相接入。而GW <—> Server以及Server <—&g...了解详情

LoRa(I) – 相爱容易相处难

之前在 facebook 上,對 LoRa 發了一點牢騷,恐怕有些人以為我討厭 LoRa,但其實並沒有。我只是對於「拱 LoRa」這件事情有點小意見而已啦!我對 LoRa 也是小有興趣的啦!之後隨著我自身的學習,也希望能盡量抽出時間整理一下我的學習成果,跟大家一起分享。 (靠~~ 我想寫的東西真他媽多….接下來,我們就開始來認識一下 LoRa 吧!文章的圖與內容有很多都是從官方文件讀(借)來的,所以若有興趣,不妨可以到LoRa 官網給他逛一逛哦!什麼是 LoRaWAN?LoRaWAN 是眾多 低功率廣域網路LPWAN, Low Power Wide Area Network) 規範的其中一種,它的訴求是能夠讓以電池供電的裝置 可以部署在較廣域的網路中 (原文是 regional, ...了解详情

LoRa(II) – A类装置,装置属性与入网程序

在上一篇跟我一起學 LoRa (I) – 相愛容易相處難」已經介紹過 LoRaWAN 的大概念,這裡很快做一下回顧。下圖是一個典型的 LoRaWAN 的網路架構示意圖,一個網路中有(1) 網路伺服器(2) 閘道器 (或稱基地台)(3) 終端裝置(通常是感測裝置)其中網路伺服器多由系統營運商 (operators) 負責建設,可進一步提供服務給 End User Application,或是由 (4) 應用服務商利用建設進一步發展某種產品,再提供給 (5) End User Application 使用。不過在台灣,大家是怎麼玩的我就不清楚了(有人知道的話,歡迎跟大家 share 一下)。LoRa 終端裝置的 A, B, C 三種類型,也很快地回顧一下:Class 可雙向通訊的終端裝置 (bi-directional end-devices通訊最不頻繁,最省電 (適合電池供電),但即時性也最差Class 必須至少有 A 類的功能通訊較頻繁,較耗電 (能以電池供電),即時性較好Class 必須至少有 A 類的功能通訊最頻繁,最耗電 (不適合電池供電),但即時性最好A 類終端裝置如何與伺服器通訊這篇文章要聊 A 類的裝置,所以我們先...了解详情

LoRaWAN介绍20 中国地区

“模块接口应该像冰山:八分之七都是位于水面以下,而你只能看到水面上的八分之一”—Steve McConnell《代码大全LoRaWAN V1.0.2有一个进步,它将核心机制和和地区无线电规范剥离开来,这样做的好处是,机制和策略分离,接口与引擎分离,实现低耦合。中国地区有2个频段可用:CN779~CN787、CN470~CN510。1 CN779~CN787该频段有一个硬伤:它的最大发射功率仅10mW(10dBm),这对于实际应用是十分有限的。2 CN470~CN510这是中国无委会规定的民用抄表频段,属于ISM免费频段。2.1  EIRP和duty cycleEIRP(最大发射功率)为50mW(17dBm);Duty cycle = 5000ms.2.2 信道范围共96个上行信道,其中6~38和45~77被国家电网使用。
信道0~6~339~445~778~9
MH470.3~471....
了解详情

LoRaWAN介绍19 Server开源

“UNIX很简单,但需要有一定天赋的人才能理解这种简单。”–Dennis RitchiLoRa Server是一个开源的LoRaWAN Server。它能完成Server最主要的任务:处理来自1个或多个GW的上行RF数据包,调度最优的GW回复下行RF数据包。1 整体架构很明显,LoRa Server基本遵循LoRaWAN对Server的4层架构,它们的对应关系如下。loraserver <=> NS (Network Server)lora-app-server <=> AS (Application Server)lora-controller <=> NC (Network Controller)application <=> CS (Customer Server)LoRaWAN规定GW和NS的接口协议是JSON,而本项目使用的是MQTT格式,因此它设计了一个 lora-gateway-bridge 层,它负责JSON和MQTT的转换。2 实现LoRaWAN功能2.1 支持类别
Clas支持说明
完全支持Class-A,NS采用poll方式从AS获取下行RF数据包,这样可以支持最低速率下最大应用数据的发送。
不支持...
了解详情

LoRaWAN介绍18 Server杂谈

“正是暗礁,让奔流激起美丽的浪花”--罗曼罗兰在LoRaWAN主流体系之外,有一些应用的经验和技巧,它包括Server和Gateway的设计和实现。1  Server和GW可以集成吗?目前,至少有2种产品是LoRa GW和Server集成在一个设备上:Semtech Starter Kit和MultiTech Conduit,它们都是基于Linux平台,综合AS、NS和GW以及DataBase(数据库)。如果只使用一个GW(满足演示或实验的需要),上述方法是可行的。如果是部署一个LoRaWAN物联网,是需要将Server和GW分离,更常见的是,一个Server连接多个GW,组建一个较大区域的无线网络。2  NS和AS可以分离吗?LoRAWAN Server主要包括:NS和AS,NS负责收发RF数据包,AS负责数据加密和解密,那么这2者可以分离吗,比如,使用A公司的NS,结合B公司AS?站在技术角度,这是完全可行的。只要NS和AS对同一End Node保持一致的Key和ID。像Loriot公司的NS,预留了API接口,可以连接第三方的AS,用于:同步Key和ID、NS <--> AS数据流等。3  NS和GW断连该怎么办?使用3G/GPRS链路的GW和NS,如果3G通信失败(没有信号等),那么GW如何缓存End Nodes上报的RF数据包呢?LoRaWAN没有指出如何处理该异常,这需要GW执行一些策略:缓存没有应答的报文,持续重连NS,一旦连接NS,马上提交所有缓存报文。如果3G/GPRS链路长时间不可使用,GW不可能,也没有必要,缓存所有RF数据包;可见,处理该异常,需要一个满足客户需要的动态策略。4  GW接收“不需要”的报文吗?设想,2家不同公司的End Nodes都在一家GW的有效通信范围,那么GW能否“拒绝”不属于本公司的End Nodes的报文吗?该GW会接收,只是当它提交给NS时,会发现该报文的DevAddr和MIC错误,因为别的公司的End Nodes没有在NS中注册。由此可见,GW只是一个“桥接器”,它不对报文做加工处理。5  使用3G/GPRS有延迟吗?有用户使用3G/GPRS连接GW和Server,发现End Node在上报后的1秒内(即RX1窗口)接收ACK失败。深入实验发现,原因在于Server通过3G/GPRS发送“下行RF数据包”超时(大于1秒)。测试经验表明,当3G/GPRS链路处于空闲时,第一个数据包的发送时间会达到300~900ms,因为3G/GPRS调制解调器与距离最近的蜂窝基站重建连接,这需要一些时间。后续的数据包发送时间小于100ms。为此,使用3G/GPRS的GW,Server和End Node需要约定RX2窗口接收下行RF数据包,该窗口有2秒的周期,可以有效应对蜂窝链路重建延迟。6  Server如何实现ADR?ADR(Adaptive Data Rate,速率自适应)是LoRaWAN的核心技术之一,End Nodes的空中速率都是由Server自动控制的。那么,Server如何计算ADR呢?LoRaWAN Server一般将ADR算法设计成一个模块,通过提供目标需求(如:吞吐率、稳定性或2者折中。。。),该算法模块结合End Node的历史经验数据(RSSI / SNR / demodulation margin/ 。。。)计算最佳空中速率。7  8个SX127x能否代替SX1301?网络上有太多的主意:能否使用8个SX127x(如:使用DVB-T设备连接)来取代SX1301,实现一个便宜的LoRaWAN Gateway呢?小心!这是一个甜蜜的陷阱,看上去很美好,实际上会深陷泥淖。多个LoRa收发器 != LoRaWAN多通道网关LoRaWAN的无线电通信依赖SX1301基带芯片,它可以看作是:DSP+2xMCU的ASIC。正因为它强大的调制和解调能力,才能实现多通道,多速率,同时解析;还能实现天线分集。更多资料请参考《LoRaWAN介绍13 SX1301http://blog.csdn.net/jiangjunjie_2005/article/details/54603122多个LoRa收发器的方案,在技术上就存在诸多困难:如果实现多速率同时接收?如果实现天线分集?商业上,真值得这么做吗?SX1301昂贵和封闭,是市场处于导入期,没有上量;一旦LoRaWAN规模部署,芯片的成本往往下降很快。了解详情

LoRaWAN介绍17 Server接口

“这样,我的约就立在你们肉体上,作永远的约。”–《圣经.创世纪LoRaWAN规定Server和Gateway的协议为 JSON / GWMP / UDP / IP,底下的2层协议属于IP协议栈,而GWMP和JSON融入LoRaWAN的特点。1  NS和GW协议栈GWMP(LoRa Gateway Message Protocol)如下表所示,包括3个交互协议:PUSH_DATA <–> PUSH_ACK:GW向NS提交上行RF数据包;PULL_RESP <–> TX_ACK:NS向GW提交下行RF数据包;PULL_DATA <–> PULL_ACK:GW向NS发送“心跳”以打开防火墙;2  GWMP时序和格式2.1  PUSH_DATAPUSH_DATA:GW向NS发送上行RF数据包,EUI用于区分不同的GW(一个NS可以连接多个GW),tocken用于区分不同的数据包(一般为自加一)。PUSH_ACK:NS回应GW—成功接收该DATA数据包。PUSH_DATA帧格式如下表,它的总长度≤2408字节。PUSH_ACK帐格式如下表2.2  PULL_RESPPULL_RESP:NS向GW发送下行RF数据包,tocken用于区分不同的数据包(一般为自加一)。TX_ACK:GW回应NS—成功接收该RESP数据包。PULL_RESP帧格式如下表,它的总长度≤1000字节。TX_ACK帐格式如下表。特别注意:仅当V2版本才回应该帧。2.3  PULL_DATAPULL_DATA:GW向NS发送“心跳”数据包,EUI用于区分不同的GW(一个NS可以连接多个GW),tocken用于区分不同的数据包(一般为自加一)。PULL_ACK:NS回应GW—成功接收该“心跳”数据包。PULL_DATA帧格式如下表。特别注意:“心跳”数据包的内容为空。PULL_ACK帧格式如下表。3  JSON协议LoRaWAN使用JSON作为通用数据交换格式,并且JSON仅包含ASCII字符。目前,JSON协议包括3部分定义:GW状态,上行数据,下行数据。3.1  GW状态Server可以取GW的状态,它的组织形式和定义如下例所示。“stat”:{“time”:”2016-11-15 09:27:35 GMT”,   /* UTC system time of the gateway */“lati”:28.3100,    /*latitude */“long”:113.15130,    /*longitude */“alti”:134,    /*altitude */“rxnb”:20,    /* numberof RF frames have received */“rxok”:20,    /* numberof RF frames with correct CRC */“rxfw”:20,    /* numberof RF frames forwarded to the NS */“ackr”:100.0    /* 100%of RF frames ACKed by the NS */“dwnb”:20,    /* numberos RF frames RX from NS */“txnb”:20    /* numberof RF frames TX by gateway */}3.2  上行数据GW提交给NS的上行数据,基于JSON组织如下例所示。“rxpk”[{“time”:”2016-11-15T09:35:17.145359Z”,    /* UTC time of receipt of the LoRa frame */“tmst”:3526705714,    /*gateway internal time counter */“chan”:0,    /* IFchannel=IF0 */“rfch”:0,    /* RFchain=Radio A */“freq”:469.87500,    /*centre frequency=469.875MHz */“stat”:1,    /* 1=CRCcorrect */“modu”:”LORA”,   /* modulation is LoRa */“datr”:”SF9BW125″,   /* SF=9, BW=125kHz */“codr”:”4/5″,   /* FEC code rate=4/5 */“rssi”:-13,    /*RSSI=-13dBm */“lsnr”:5.6,    /*SNR=5.6 */“size”:12,    /* numberof octets=12 */“data”:”rqyo15LfOP4J”    /* data that encoded into Base64 */}]3.3  下行数据NS提交给GW的下行数据,基于JSON组织如下例所示。“txpk”{“imme”:true,    /*transmit the frame immediately */“freq”:470.125000,    /*centre frequency=470.125MHz */“rfch”:0,    /* RFchain=Radio A */“powe”:17,    /* outputpower=17dBm */“modu”:”LORA”,   /* modulation is LoRa */“datr”:”SF9BW125″,   /* SF=9, BW=125kHz */“codr”:”4/5″,   /* FEC code rate=4/5 */“ipol”:false,    /* doNOT invert the polarity of the transmitted bits */“size”:10,    /* numberof octets=10 */“data”:”1Jr8PdOdN5″    /* data that encoded into Base64 */}了解详情