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 */}了解详情

LoRaWAN介绍16 Server分类

“软件构建的核心就是管理复杂度”–SteveMcConnell《代码大全在《LoRaWAN介绍2架构》中提到:LoRaWAN的重点和难点–LoRaWAN Server!http://blog.csdn.net/jiangjunjie_2005/article/details/54134636“分而治之”是人们降低复杂度的有效方法,LoRaWAN Server很娴熟地运用了该技巧,它将Server分成4种角色。1 服务器框架阅读《InterconnectingSmart Objects with IP》会发现,该书籍的作者极力推荐使用IPv6将智能设备互联,构建一个物联网。目前,更可行的物联网方案是:将智能设备连接到Internet。这样,基于已有的互联网,无论是经济上,还是技术上,都性价比更高。另外,大部分智能设备的计算能力和电能都不适合IPv6的协议栈运行。看到下面LoRaWAN的架构,它是基于Internet建设物联网,Gateway是IP设备(运行IP协议栈),而End Node运行的是LoRaMac-node(没有运行IP协议栈)。LoRaWAN Server共有4种角色,包括:NS(Network Server,网络服务器)、AS(Application Server,应用服务器)、NC(Network Controller,网络控制服务器)和CS(Customer Server,客户服务器)。2 各角色功能4种Server的功能如下表所示。
Serve功能下游设备上游设备
N连接网关,收发RF数据包GatewaAS和N
A加密和解密应用数据NC
N控制网关和终端的RF参数NConsol
C存储终端上传和用户下发数据A
2.1 NS(Network Server,网络服务器)1个NS可以连接1个或多个Gateway,它们之间的接口协议为JSON / GWMP / UDP / IP。同样,NS可以连接1个或多个AS和NC,它们之间的接口协议为JSON / TCP / IP。NS负责RF数据包的完整性校验:上行:End NodeàGatewayàNS,它将检验RF数据包的MIC是否正确;下行:NSàGatewayàEnd Node,它将给RF数据包计算并封装MIC。为此,NS需要记录每一个End Node的如下信息:
属性位宽功能
DevEU6该End Node全局唯一标识码
AppEU6该End Node分配的应用标识码...
了解详情

如何使用Microchip的LORA模块,以加快物联网设计

LoRaWAN提供了很好的匹配,以物联网的需求,性能特点。除了它的扩展工作范围和低功耗的要求,LoRaWAN提供安全,灵活的通信选项。然而,为了实现一个LoRaWAN溶液所需的硬件和软件可以证明一个主要障碍集中在物联网应用程序本身的开发团队。本文将详细阐述了MicrochipTechnology的第1部分介绍RN2903 LORA模块,并展示如何使用一些额外的硬件和软件,用它来实现远距离,低功耗设计,物联网。快速入门套件Microchip Technology的RN2903 LORA模块是一个物联网设计近投递LoRaWAN硬件解决方案。即便如此,它仍然只是一个完整的LoRaWAN网络的基石,开发者仍然必须考虑支持硬件和软件系统。Microchip的满足这一需求提供全面的评估套件,提供了实现LoRaWAN对物联网所需要的其他元素。正如第1部分所提到的,MicrochipTechnology的RN2903支持LoRaWAN兼容的通信频率为915MHz,旨在简化物联网应用的开发。全面认证,Microchip的模块包括了实现LoRaWAN连接(图1)所需的所有组件。该模块的命令处理器采用板载LoRaWAN固件完全支持LoRaWAN类的协议。板载EEPROM提供存储用于LoRaWAN配置参数,从而提高性能和减少主机和模块之间的数据传输增加的安全性。图1:Microchip的LORA模块提供了LoRaWAN连接,其板载命令处理器,LoRaWAN协议栈,射频收发器和串行连接一个简易的解决方案。(图片来源:微芯片科技)Microchip的RN2903模块提供与外部MCU主机通信的专用UART接口。此外,该模块包括14 GPIO引脚,开发者可以使用模块固件监视或控制外部设备,如开关和LED编程。最后,该模块提供了方便的连接到一个简单的套偶极天线的射频信号引脚。模块的命令处理器根据通过其UART接口从外部主机MCU接收的命令执行LoRaWAN交易。正如任何网络通信的方法,LoRaWAN消息被发送,并在特定的格式接收。对于LoRaWAN的LORA联盟标准规定了在字节级苛求细节这些格式。该RN2903模块提供了一个直观的基于文本的方法,抽象LoRaWAN标准字节级别的格式为一组关键字的使用可选参数命令。Microchip的定义了三种类型的关键字:MAC的LoRaWAN MAC配置和控制命令无线电指令针对PHY无线电层SYS额外的模块功能,如提供模块固件版本的信息或访问模块的EEPROM存储器命令例如:mac tx uncnf 30 23A5发送端口30的数据值“2,3,4,5-”的消息。的“uncnf”选项表示设备没有请求从网络服务器确认。或者,使用“CNF”选项表示该设备预计网络服务器确认收到。的洛拉模块负责将其发送到它的网关以便传递到网络服务器之前加密该消息。radio tx 6d657****765发送含有值[0x6d]一揽子[0x65] [0x73] [0x73] [0x61] [0x67] [0x65(十六进制示例文本字符串“消息”)sys set nvm 100 FF存储该值为0xFF在EEPROM中的用户分区的地址为0x100物联网设备设计凭借其串行接口,RN2903需要一些额外的组件来实现兼容LoRaWAN,物联网的硬件设计。Microchip的进一步发展速度与RN2903 LORA莫特。为了证明其LORA模块功能,Microchip的LORA莫特提供实现LoRaWAN兼容的无线传感器需要一套完整的硬件和软件。Microchip的RN2903 LORA莫特和RN2483 LORA莫特各结合各自的LORA模块与MicrochipPIC18LF45K50 8位MCU,作为传感器的操作和LoRaWAN协议执行主处理器。此外,莫特包括用于采集样品的数据,以及用于用户反馈的液晶显示光传感器和温度传感器。该莫特通过一个标准的USB接口,它提供了访问LORA模块的UART接口连接到主机。在开发过程中工程师们可以通过发送执行LoRaWAN操作MAC,无线电和SYS命令字符串使用莫特的USB连接的模块。在运行期间,物联网设备主机上运行的代码会发出需要的物联网应用的命令和处理响应。对于LoRaWAN应用,Microchip提供的硬件莫特丰富的C软件库。例如,一个应用程序级例程,MOTEapp.c,收集的传感器数据,并通过LoRaWAN连接发送数据,处理由RN2903预期低级MAC命令(清单1)。            . . .            moteApp_clearBuffers();            // Make Sure Port is in allowed Range            // Prepare DataBuffer for Tx            light = 0;            temperature = 0;            NOP();                      // Measure Sensors            moteApp_setSensorsInput();            uint8_t sizeOfUpdate = 0;            light = moteApp_convertSensorValue(moteApp_getLightValue());            oled_putString(moteApp_getLightString(), 6, 1);            sizeOfUpdate = moteApp_addToDataBuffer(moteApp_getLightString(), 4);            temperature = moteApp_convertSensorValue(moteApp_getTempValue());            temperature = ADC_TempConversion(temperature);            moteApp_add8bToDataBuffer(temperature, 4 + moteApp_lightStringSize() + 1);            // Do Normal Operation            . . .            // Getting Random Channel            randomPortNum = TMR2_ReadTimer();            . . .            // Prepare DataBuffer for Tx            moteApp_add8bToDataBuffer(randomPortNum, 0);            dataBuffer[3] = 0x20;            NOP();            sendDataCommand("mac tx uncnf ", dataBuffer, 12);            . . .清单1:Microchip提供C语言软件演示样本物联网的应用程序,收集从莫特的光照和温度传感器的数据,建立与数据(消息add8bToDataBuffer),发送消息(sendDataCommand使用MAC TX命令)。(代码源:微芯片科技)应用级开发随着简单的基于关键字的命令方式,Microchip的LORA模块和相关莫特开发板显著简化LoRaWAN终端设备的发展。然而,即使在系统级莫特板及其相关软件地址LoRaWAN层次仅是最低的,终端设备的水平。一个完整的LoRaWAN兼容网络需要额外的硬件部件,包括兼容网关(S)和一个网络服务器。此外,在实施的物联网应用,开发者必须处理的LORA联盟标准只涉及标准OSI堆栈的最低水平这一事实。其结果是,开发者需要完成的其他联网层,开始与位于由LoRaWAN MAC标准寻址的数据链路层之上的OSI网络层。微芯片的地址这一需要使用实现一个完整LoRaWAN兼容网络,包括端设备,网关和网络服务器的硬件和软件开发工具包。Microchip的RN2903LORA网络评估工具包和RN2483 LORA网络评估套件捆绑一对微尘与Microchip的LoRaWAN网关板。董事会是由LoRaWAN网关核心板和相关的无线子卡完整的天线和电缆。在软件方面,该试剂盒使用从MicrochipLORA技术评估套件提供所有全面评估的示例LORA系统所需的软件组件(图2)。图2:Microchip的LORA网络评估套件和软件套件实现完整的LoRaWAN的网络应用,包括终端设备(莫特板),网关(核心板)和网络服务器(mchplora)。(图片来源:微芯片科技)该套件提供了一个网络服务器(mchplora)的设计使其在开发系统的虚拟机上运行泊坞窗容器。网关主板通过USB连接到开发系统和无线方式与莫特板通信。该莫特板通过制定系统的USB到基于Java的开发实用程序连接。设计与评估套件工作,Microchip的LORA开发套件提供了一个全面的Java套件,提供了更为丰富的比提供的服务与莫特C ++类库。例如,发送一个MAC传输,开发套件抽象相关交易一个简单的execute一个方法macTX类(清单2)。  void macTXSendAction()  {    if (this.application.device.updateValueFlag)      this.application.device.wanPojo.setData(this.data.getText());    if (this.application.device.updateValueFlag) {      this.application.device.wanPojo.setPortNumber(this.portNumber.getText());    }    ICommand macTX = CommandFactory.getCommand(CommandFactory.mactx);    DeviceModel currDev = this.application.device;    macTX.setDataModel(currDev);    List task = new ArrayList();    task.add(macTX);    if (currDev != null)      this.application.mvcController.execute(task);    else      System.err.println("Current Device not set");  }清单2:Microchip的LORA开发套件提供了一个完整的LoRaWAN环境,包括一系列广泛的Java包(JAR文件)的抽象LoRaWAN交易,如MAC TX到一组简单的软件电话等macTXSendAction()。(代码源:微芯片科技)在清单2中,CommandFactory在定义的类LoRaDevUtility.jar定义  public static String mactx = "mac tx";然后创建适当的类的一个实例,在这种情况下,一macTx类对象,当工厂称为CommandFactory.mactx:    if (command.compareTo(mactx) == 0)      return new macTX();该macTX.class在LoRaDevUtility.jar提供运行时配置值和各种服务功能,如数据包验证,以及该类的主要实用方法execute。该execute方法创建所需的MAC TX规定格式字符串命令,传送消息(WriteI2cData),然后获取响应:       . . .command = new StringBuilder().append("mac tx").append(((DeviceModel)this.server).wanPojo.getIsConformed()).append("").append(((DeviceModel)this.server).wanPojo.getPortNumber()).append("").append(((DeviceModel)this.server).wanPojo.getData().replace("0x","")).toString();       . . .        byte[] data = command.getBytes();        ((DeviceModel)this.server).getController().transport.WriteI2cData(this.processPacket.pack(data), null, this.timeout);        byte[] read = null;        read = super.readResponseData();结论有效连接是由低功率的IoT器件的海量数的IoT网络的基本要求。LoRaWAN提供了一个有效的物联网连接解决方案,以提供最低的功率要求远距离操作。与任何连接选项,可实现在证明自己的一大创举,从他们的主要集中在物联网应用本身分心开发。基于Microchip的RN2903 LORA模块,MicrochipTechnology的LORA网络评估套件和相应的LORA开发套件提供完整的应用LoRaWAN。使用预认证的硬件和软件的组合,开发人员可以快速调出能够实现15公里无线范围和10年的电池寿命的物联网连接解决方案。了解详情

LoRaWAN介绍15 终端设计

“大自然和智慧在任何事物上都不存在分岐”–玉外纳因为应用在广阔的行业内,在传感器、执行器、供电、通信延时等不同的要求,让LoRaWAN的End Node呈现种类繁多的形态。同时,80%的共性还是存在的,包括:整体架构、LoRaWAN协议栈、软件开发模式等。1 整体架构一般说来,一个End Node硬件包括以下四部分:MCU:实现LoRaWAN协议栈、控制LoRa射频、驱动外设和实现应用程序;LoRa radio:实现LoRa信号接收与发送;外设:驱动传感器、控制I/O端口等;供电:通过电池或市电给整个系统提供电源。一个End Node的软件包括:驱动层:主要是驱动总线,从而与LoRa射频、传感器和执行器通信;中间件:包括LoRaWAN协议栈和能耗管理;应用层:满足用户的业务需求,如采集数据并初步加工,定时上传等。2 产品方案设计一个End Node至少有3种方案:chipset、module和modem。2.1 Chipset硬件:选购一款低功耗的MCU,采购SX127x射频芯片,设计RF电路,实现PCB,调试天线和射频匹配,连接传感器或执行器。软件:MCU实现LoRaWAN协议栈,控制SX127x射频电路,驱动外设,实现用户应用。优点:取得最大灵活性,硬件成本可控。缺点:难度大,周期长,研发和测试成本高。2.2 Module硬件:连接传感器或执行器。软件:MCU实现LoRaWAN协议栈,驱动外设,实现用户应用。优点:省去硬件设计,有成熟的开发与测试平台。缺点:自行实现LoRaWAN,软件方面有挑战。2.3 Modem硬件:选购一款低功耗MCU,通过UART(或SPI等)连接LoRa Modem,连接传感器或执行器。软件:MCU控制LoRa Modem,驱动外设,实现用户应用。优点:难度小,时间短,研发和测试成本低。缺点:硬件成本高,LoRaWAN协议栈升级依赖厂商。针对上面三种方案,一个EndNode该如何选择呢?这依赖下表的因素。3 软件开发一个End Node的软件开发依赖上述三种方案的选择:Chipset:根据MCU选择合适的IDE(如:IAR或Keil等),是否需要移植OS,移植官方的LoRaWAN协议栈,可以从以下链接获取官方源代码:https://github.com/LoRa-net/LoRaMac-nodeModule:一般而言,供应商提供IDE、OS等平台,用户需要实现或管理LoRaWAN。Modem:这是难度最小的方案,根据Modem提供的命令集,初始化LoRaWAN协议栈,读取和发送数据包。4 选择天线工作在470MHz(中国地区)的End Node,1/4波长的天线约16.0cm。有3种可选的天线方案。专用OEM天线:设计专用的天线可以达到最佳的发射功率和接收灵敏度,然而,这需要一个高品质的天线厂商,成本较高。PCB天线:对覆铜的要求高,走线的曲直和宽窄都影响天线的性能。1/4波长天线:实现简单,但容易因天线长度和绕线而引入个体误差,在使用中需要保证天线外形稳定,否则会影响性能。5 降低功耗节能是一个细致功夫,它包括:MCU选型、电路设计、管脚控制、工作模式、开关外设和软件算法等。考察一个End Node的功耗,至少需要了解以下5种模式的功耗和占空比(该模式占用多长的时间)。休眠:MCU,RF和外设都关闭,一般仅RTC工作;空闲:除MCU外,其他都关闭;运行:除RF外,其他(包括MCU和外设)运行;接收:侦听或接收一个数据包;发射:发射一个数据包;关于节能更多资料请链接:http://www.rimelink.com/nd.jsp?id=53&_np=107_3166 固件升级以下2个原因限制了通过LoRa无线升级End Node的固件:LoRa速率低,并且ISM频段有duty cycle法规,不适合传输较大的数据块;每个End Node有2个Key(NwkSKey和AppSKey)的密钥,除非它们的Key都相同,否则无法组播(或广播)升级固件。可见,固件的升级还是依赖厂商使用特殊的工具,如:通过UART或USB升级,通过蓝牙或红外升级等。了解详情

LoRaWAN介绍14 终端类别

“蚂蚁是无力之类,却在夏天豫备粮食。沙番是软弱之类,却在磐石中造房。”–《旧·箴不同的应用场景需要不同的技术条件,LoRaWAN一开始就将End Nodes分成3类,它们在电池寿命和唤醒延时上各有千秋。这是明智的,可以根据应用选择最佳的类别。1 三类终端的特点
Clas属性供电节能下行通信延时
sensor电池-有限最佳大,仅当终端上报时
actuator电池-有限较好小,延时可调节
actuator电源-充足...
了解详情

LoRaWAN介绍13 SX1301

“要以坦克为核心组织部队,而不是以步兵为核心。”–古德里安如果说LoRaWAN是闪电战,那么SX1301就是坦克,前者是建立在后者的基础上。SX1301是基于LoRa调制的基带芯片,它的目标是为广域范围的众多无线节点提供健壮的星型基站。SX1301有一些关键的技术特征:高达-142.5dBm的接收灵敏度、49个LoRa“虚拟”通道和ADR技术。1 整体结构如下图所示,SX1301一般外接2片SX1257(或SX1255)。SX125x是射频前端芯片,它负责将I/Q(In-phase / Quadrature,同相正交数字信号)转换成无线电模拟信号。仔细查看SX1301的结构图,它是由2个MCU和ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)的综合体。主要部件包括:射频MCU:该MCU通过SPI总线连接2片SX125x,主要负责实时自动增益控制、射频校准和收发切换。数据包MCU:该MCU负责分配8个LoRa调制解调器给多个通道,它仲裁数据包的机制包括速率、通道、射频和信号强度。IF0~IF7的LoRa通道:它们的带宽固定为125kHz,每个通道可以设置中心频率,每个通道可以接收SF7~SF12共6种速率的LoRa信号。IF8通道:带宽支持125 / 250 / 500kHz,希望用于网关之间的高速通信。IF9通道:收发(G)FSK信号,LoRaWAN在欧洲地区使用了该通道。2 实现ADR技术ADR(Adaptive Data Rate,速率自适应)是LoRaWAN核心优势,它的原理是:依赖End Nodes和Gateway的距离,越近,End Nodes将采用高速率;越远,End Nodes将采用低速率。其实,ADR是SX1301的“贡献”。如下图所示,SX1301的IF0~IF7的8通道,它们设置了8个中心频率,但每一个通道都能接收SF7~SF12共6种速率的LoRa信号。这样一来,一个End Node可以根据信号强度,自由选择SF(即速率)来发送数据。它至少具备3个优势:End Node可以切换到8个频率中任意一种,有效降低同频干扰;End Node可以使用6种速率中任意一种,Gateway不用记录它的速率,简单化;Gateway可以实现天线分集,有效改善移动End Node的多径衰退;特别注意:8个通道最多同时解调8个LoRa数据包,因为“前导码搜索引擎”和“解调引擎”是分离的,同时解调引擎为8个单元。3 多通道频谱2片SX125x和共10个通道,都可以灵活配置频率。一起看上图的实例:射频前端A配置中心频率=867.0MHz射频前端B配置中心频率=868.4MHz10通道频率配置如下表所示
通道频率射频前端频偏属性
IF866.875MH-125kH...
了解详情

LoRa组网案例5:无线电表,唤醒+总线

案例背景某用电采集系统,为减少布线和施工的代价,计划使用无线采集方案。在方圆1km的区域,连接400块电表。基于国网电表通信协议,响应时间要求小于10秒。需要和某电表通信时先广播该电表号和请求命令,约20字节;对应表号的电表根据命令发送回复帧,约100字节;非该表号的电表不予回应。通信拓扑如下图所示提取需求
因素指标
距离1000米,墙壁、门等会造成信号衰减
带宽纯负载带宽:(20 * 8 + 100 * ...
了解详情