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

知乎讨论:如何评价LoRa这项应用于低功率长距离场景的物联网传输技术?

(以下属于网友内部讨论内容,随时八方意见,却能兼听则明,仅供学习参考,不代表本站观点和立场闫国涛寻找自己我们公司专做无线模块及相关产品,其中LoRa模块及GateWay也是主推的产品,产品的性能和质量怎么样,我们自己说好有点王婆卖瓜,但用过的用户都表示不错。我们也是一家做技术的公司,产品性能和质量做不好就是打脸,这一点我们还是很注重的。若需要了解模块和网关的产品,可以登录网址广州朗威电子科技有限公司|LoRaWAN|ZigBee|Wi-Fi,或淘宝网店首页-朗威科技-淘宝网。也可电话沟通:闫先生,1380928096发布于 2017-01-21谈毅IMIO智能硬件极客平台创始人1人赞同基于大面积家庭的智能家居场景(比如100平米以上,三个房间带家具和水泥墙等等),zwave和zigbee都有明显距离短板,网关和终端的设计不好,很容易断线。相对来说,LORA的信号优势明显,IMIO创智云平台也在基于LORA推相关的智能家庭标准。看好LORA商用的发展。编辑于 2016-12-29TMT猎头有简历冲我来,别欺负HR。中兴成立中国LoRa应用联盟,两技术都布局,华为力推NB-IOT;一个非授权一个授权频段。后面应该会形成与国内运营商差异化布局吧发布于 2016-11-30ZackFu石油勘探设备工程师1人赞同LORA在某些具体行业还是有它不可替代的作用,比如说地震勘探行业。它需要长距离10km, 低功耗是因为用电池供电。另外它需要的传输速度不高30kbps就足够了。最主要的是它是自己的局域网络,保密性好。另外,可以把基站放在车,支持移动。它需要的是支持大量的终端节点1万到5万个。希望大家能够提供更多的信息,比如哪家的LORA 模块性能最好,从哪里可以买到可以信赖的gateway等。发布于 2016-09-02shoko camel物联网从业者5人赞同整体表现还可以,传的远,抗干扰。不过远距离只能在低速率配置下,看应用场景,一般物联网也够用了。———————————————-Semtech未来重点还是对LoRaWAN的支持,毕竟有标准化的路要走完。重点有两颗料SX1301+SX125x,基本上集中器就这个搭配了,Baseband+PHY有点软件无线电的感觉,这不有实力的公司都直接用FPGA自己实现基带。LoRaWAN的好处这里就不多说了,总之可以解决大容量网络无线数据碰撞的问题,而且节点测的软件不用跑算法和复杂逻辑,把这部分工作交给Concentrator似乎更符合物联网设计理念,弱化Node端是降低功耗的必要手段。———————————————-来个框图,了解一下整体结构,不要盯着LoRa/扩频通信这些技术本身。基本上很清晰,PHY出来的I/Q信号交给基带处理,再通过SPI给主控。有个小细节SX1301可以直接识别GPS的timestamp信号,用于基站间的时间同步,毕竟同步是必要的嘛。———————————————-忘记说了,这些都是开源的,在树莓派上跑了一些简单的应用。整体图Radio部分细节图———————————————-似乎就这些了,不定期关注这个技术,有兴趣的可以看一下LoRaWAN spec的Class A和Class B部分,基本够用了,实现起来也简单。———————————————-最后再来张图,这个是非常不错的项目。发布于 2016-08-18张强资深软硬件工程师我个人认为lora技术不适合运营商,用户的需求长尾而破碎。也许NB iot能构建统一的运营商物联网,但我个人觉得协议偏复杂,可能很难把联网芯片的成本做到2个美金以下。我们公司的方向帮客户构建企业级私有物联网络。这是一个高度定制化的ToB生意。这里是我们的一些实施案例:物联网IOT产品及解决方案简介发布于 2016-08-10Acejason物联网1人赞同昨天刚和Semtech的几位攻城狮聊了一下,因为我们是做Z-Wave的,感觉他们的定位也是蛮清楚的,其实芯片的功能大家都知道了,就是看怎么开发和应用,现在市场上zb,zw,ble,wifi,3g/4g.nbiot等等联盟已经蛮多了,应用的地方和场景还有开发的难易度决定了未来的市场份额,以后分的会越来越细的。。。。发布于 2016-04-07知乎用户接触过一点,看到过某公司在郊区实测,单个基站能覆盖20公里的距离,还是很强的。目前在持续观望中。微信号公众号 AUGTEK物联网观察 和 物联网智库目前都在讲这一块,里面好像有讲到国内的一些覆盖问题。发布于 2016-04-06知乎用户 物联网搬砖工Sigfox想要吃独食。Lora让很多急于在物联网方面转型的运营商看到了希望。从技术的角度来说,Lora支持定位,更适合物联网应用;从商业的角度来说,lora的系统更open,大家都能玩。发布于 2016-03-07水思源通信行业硕士在读LoRaTM是Semtech公司为远距离低功耗低速率应用开发的一个无线调制方案,它主要应用在智慧城市的建设和改造中,如智能电表,地下管网侦测等,优点就是超低的功耗,超长的续航可达10余年,在未来的万物互联中有着广泛的应用前景。发布于 2016-03-03丁盛从开发产品到开发人才1人赞同铺网做运营商不太现实,会在某些行业或区域内作为私网出现,现在来看,市政设施监测和无线抄表是lora应用比较好的领域,未来会替换掉zigbee,zigbee的数据率不大不小很尴尬。发布于 2015-12-28MikeWay运营混子,技术油子。4人赞同泻药。刚看了下技术介绍,目前布局的就几大家公司,应该属于战略布局,目前都属于观望阶段。我个人对其技术特点从应用场景的角度分析对其未来发展不是太看好,由于个人眼界有限,不当之处还请高人指正。下面解释原因:1:新型扩频技术,改善接收灵敏度(15公里,10mA接收电流,睡眠电流<200mA),从替代Wi-Fi或3/4G的角度来说,其技术本身对个体流量带宽的承载太小,做近场通讯控制民用市场绝对是BLE的天下,工业那块有倒是有使用的可能,毕竟不需要授权,而且工业环境对距离的要求确实比民用的要求高。2:定位机遇信号的空中传输时间而非RSSI(接收信号强度指标),精度5m@10公里范围。大范围的定位指示依靠GPS能满足要求,小范围定位iBeacon不会比它差,如果两边都不能讨好的话那使用它有什么益处?3:最关键的是其他技术在手机中都有成熟的应用,如果想让这项新技术高速发展必须进入民用市场,这中间的难度系数有多大?需要整合的资源有多少?在有Wi-Fi,3/4G,蓝牙的情况下,增加这项技术到手机终端的可能性有多大?4:家庭智能设备如果要选择这项技术的话没有看出其比zigbee、蓝牙、Wi-Fi作为接入接口的优势,想吞噬已有的市场份额没有强大的动力(技术或成本优势)基本很难做到。5:其他无限技术都是有诸多应用,坑也早被人趟过了,新技术带来的新坑有多少厂商愿意去趟呢?目前来看我所能想象的到的方向基本都在工业应用了。了解详情

LoRaWAN介绍16 Server分类

“软件构建的核心就是管理复杂度”–SteveMcConnell《代码大全在《LoRaWAN介绍2架构》中提到:LoRaWAN的重点和难点–LoRaWAN Serverhttp://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全局唯一标识码...
了解详情

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

LoRaWAN提供了很好的匹配,以物联网的需求,性能特点。除了它的扩展工作范围和低功耗的要求,LoRaWAN提供安全,灵活的通信选项。然而,为了实现一个LoRaWAN溶液所需的硬件和软件可以证明一个主要障碍集中在物联网应用程序本身的开发团队。本文将详细阐述了MicrochipTechnology的第1部分介绍RN2903 LORA模块,并展示如何使用一些额外的硬件和软件,用它来实现远距离,低功耗设计,物联网。快速入门套件MicrochipTechnology的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的进一步发展速度与RN2903LORA莫特。为了证明其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 Txlight = 0;temperature = 0;NOP();// Measure SensorsmoteApp_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 ChannelrandomPortNum = TMR2_ReadTimer();. . .// Prepare DataBuffer for TxmoteApp_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网络评估工具包和RN2483LORA网络评估套件捆绑一对微尘与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);elseSystem.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年的电池寿命的物联网连接解决方案。了解详情

LoRa / LoRaWAN解密教程

在本视频中,我向您介绍了LoRa和LoRaWAN的基本原理及细节,向您展示了我自己的LoRa网关和LoRa客户端,并向网络发送了第一条消息。介绍链路预算和带宽,该技术可用于Arduinos和其他微控制器。【如果您的浏览器不支持直接播放下列视频,可以点击此处下载播放】相关资料:TTN主页:https://www.thethingsnetwork.org/技术说明:https://www.youtube.com/watch?v=T3dGLqZrjIQ&t=395s学习小组招募:喜欢动手的程序猿们喜大普奔时刻来临了!来临了!来临了!来自安爵士亲手制作的有关LoRa网关、终端等硬件开发系列学习视频登陆LoRa学习站,英文好的同学们可以先睹为快了,如果你英文足够好,又有兴趣参与LoRa学习资料翻译组,欢迎注册我们的网站会员并留言“加入学习视频翻译”。了解详情

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片SX...了解详情

LoRaWAN介绍12 唤醒误差

“我若数点,比海沙更多; 我睡醒的时候,仍和你同在。”— (诗篇139:17-18理想情况下,Gateway和End Nodes在精确的时间点完成唤醒通信,然而,晶振的误差,使End Nodes会在该“理想时刻”点徘徊。为保证唤醒通信的成功率,End Nodes需要根据晶振误差,打开一个时间窗口与Gateway“幽会”。1 唤醒窗口LoRaWAN的Class B规定,Gateway发送的数据帧包含8个symbols的preamble(前导码),End Nodes至少需要5个symbols的preamble来同步接收。换一句话说,Gateway和End Nodes需要5个symbols的时间窗口是重叠的,才能保证本次唤醒通信成功。如下图所示,一次成功的唤醒通信有3个重要的参数:RxOffset:Gateway开始发送与End Nodes最佳启动接收的时间差;RxWindow:End Nodes开启接收的时间窗口长度;RxError:End Nodes因晶振误差带来的时钟漂移。2 最早与最迟时刻点以Gateway开始发送时刻为基准,End Nodes有2个边界时间值:T_RX_early和T_RX_late,至少需要5个symbols的重叠,因此有如下公式:T_RX_late = 3 x Tsymb (1)T_RX_early = 5 x Tsymb – RxWindow (2)因晶振误差导致的RxError,落在T_RX_early和T_RX_late之间,因此有公式:T_RX_late – T_RX_early = 2 x RxError (3)为了达到最佳唤醒成功率,EndNodes的开启接收时刻,应位于T_RX_early和T_RX_late的中心,因此有:RxOffset = (T_RX_late + T_RX_early) / 2 (4)在上述时间中,RxError是已知的(它依赖于晶振的固有误差和温度的变化…),需要求解的是:RxWindow:它的值决定End Nodes开启多长时间的接收窗口;RxOffset:它的值决定End Nodes是“提前”还是“推后”开启接收。拿公式(1)减公式(2),结合公式(3),则有如下公式(4):RxWindow= 2 x Tsymb + 2 x RxError (5)拿公式(1)加公式(2),结合公式(5),则有如下公式(6):RxOffset= 4 x Tsymb – RxWindow / 2 (6)3 应用实例实例1某End Node的晶振误差在睡眠1秒后可达到+/- 1.5ms,它工作在SF7/125kHz无线条件下,试推导RxWindow和RxOffset的值。已知RxError =1.5ms;SF7/125kHz下,Tsymb = 1ms;根据公式(5)和(6)有:RxWindow = 2 x Tsymb + 2 x RxError = 2 x 1+ 2 x 1.5 = 5msRxOffset = 4 x Tsymb – RxWindow / 2 = 4 x 1– 5 / 2 = 1.5ms小结:该End Node应该“推迟”1.5ms开启接收,窗口时间值为5ms.实例2某End Node的晶振误差在睡眠1秒后可达到+/- 20ms,它工作在SF7/125kHz无线条件下,试推导RxWindow和RxOffset的值。已知RxError = 20ms;SF7/125kHz下,Tsymb = 1ms;根据公式(5)和(6)有:RxWindow = 2 x Tsymb + 2 x RxError = 2 x 1+ 2 x 20 = 42msRxOffset = 4 x Tsymb – RxWindow / 2 = 4 x 1– 42 / 2 = -17ms小结:该End Node应该“提前”17ms开启接收,窗口时间值为42ms.实例3某End Node的晶振误差在睡眠1秒后可达到+/- 20ms,它工作在SF10/125kHz无线条件下,试推导RxWindow和RxOffset的值。已知RxError = 20ms;SF10/125kHz下,Tsymb =8.2ms;根据公式(5)和(6)有:RxWindow = 2 x Tsymb + 2 x RxError = 2 x 8.2+ 2 x 20 = 56.4ms考虑RxWindow需要取symbol的整数倍,且大小或等于56.4ms,有:RxWindow = 7 x Tsymb = 7 x 8.2 = 57.4ms,RxOffset = 4 x Tsymb – RxWindow / 2 = 4 x 8.2– 57.4 / 2 = 4.1ms小结:该End Node应该“延迟”4.1ms开启接收,窗口时间值为57.4ms.4 常用误差与窗口
RxError = +/- 1.5ms, BW = 125kH
STsym...
了解详情

LoRaWAN介绍11 唤醒通信

“矛盾是一切运动和生命的根源。”--〔德〕黑格尔:《大逻辑在无线通信设计中有一个矛盾的地方:一方面,为了节能,要求节点尽可能长时间地休眠;另一方面,为了快速通信,要求服务器尽可能快地唤醒节点。缓解该矛盾的办法是:约定唤醒、时钟同步和避免冲突。本文通过对LoRaWAN的Class B唤醒通信的分析,您将会看到设计一个物联网不得不在诸多因素中作出折中,即“两害相权取其轻”。1 切换Class 一个...了解详情

LoRaWAN介绍10 定位

“众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。”–《青玉案·元夕无论是追踪老人、小孩和宠物,还是查找资产和贵重物品,节点定位是物联网中高附加值的应用。LoRa宣称,使用3个或多个Gateway而产生TDOA(Time Difference of Arrival,到达时间差)能实现“不依赖其他设备”定位。本文一起来分析下定位的原理和基于LoRa可能的方案。1 一个TDOA的故事在大街上行走的人...了解详情

LoRaWAN介绍9 安全

“引到永生,那门是窄的,路是小的,找著的人也少。”–《马太福音安全对于物联网设备来说很重要,因为他们经常部署在重要的基础设施中。同时,节点在物理上是分布式系统,无线信道很容易被攻击者监听,这些给安全带来更多的挑战。LoRaWAN使用了双重128AES加密机制,以提供安全的通信机制,达到安全的3个要素:保密性、完整性和可用性。1 双密钥的来源在《LoRaWAN介绍7 入网》中提到,LoRaWAN使用2 个密钥:NwkSKey和AppSKey,它们分别对应用层数据和MAC协议帧加密。那么,这2个密钥是怎么来的呢?如果是ABP模式,这2个密钥是在Server和End Nodes双方同步配置。如果是OTAA模式,这2个密钥是按如下公式计算出来的:NwkSKey=aes128_encrypt(AppKey,0x01|AppNonce|NetID|DevNonce|pad16)AppSKey=aes128_encrypt(AppKey,0x02|AppNonce|NetID|DevNonce|pad16)现在,一起检查下这2个密钥的安全性。首先,AppKey是Server和End Nodes的根密钥(至关重要),双方共同拥有,并且不曾参与通信交换,因此攻击者无法通过窃听无线电而破解。Server回复AppNonce和NetID给End Nodes时,使用了基于AppKey的128AES加密,攻击者可以窃听无线电,但很难破解该密文。剩下DevNonce,我们在后续分析它的安全,以及如果防范攻击。2 双重加密逻辑首先,FRMPayload(可以是应用数据,也可以是MAC命令)的明文,通过128AES加密,生成密文。细心的人会发现,为什么Key依赖于FPort的值呢?因为,FPort=0,代表MAC命令,使用NwkSKey密钥;FPort=1~255,代表应用数据,使用AppSKey密钥。这是为了取得信息“保密性”。然后,基于NwkSKey,生成CMAC(Cipher-based MessageAuthentication Code,基于密文消息认证码),取最后4字节做为MIC(Message Integrity Code,消息完整码)。这是为了取得信息“完整性”。因为双方都具备相同的2个Key,而128AES是对称加密机制,Server和End Nodes都可以有效使用该机制。即达到信息的“可用性”。加密过程如下图所示:对密码学熟悉的人们会发现,FRMPayload的加密不具备“完整性”,换一句话说,网络层虽然无法破解应用密文,但可以篡改应用密文,而接收方无法查觉。在LoRaWAN的Server架构中,NS(Network Server)负责网络层,一般情况下认为它是可信设备;如果对安全要求非常高的系统,那么需要在FRMPayload中内嵌MAC(消息认证码),来确保完整性。3 防止重播攻击我们回到OTAA的入网申请Join Request数据帧,此时,因为End Nodes没有办法生成2个Key,所以Join Request是以明文发送的,这可以被攻击者窃取。想象这样一个场景,某Nod#A发送Join Request帧,Server回复Join Accept帧,双方都生成2个Key,准备进行正常的网络通信。此时,攻击者重播窃取的Join Request帧,Server回复Join Accept并生成新的Key。错误出现了:该Node#A(持旧Key)和Server(持新Key),会因为Key不一致导致通信失败。为防止上述重播攻击,LoRaWAN要求Server保存上一次通信的DevNonce,仅当Node完成第一次UPLINK后,才能删除上一次DevNonce。这样,攻击者一旦重播Join Request帧,Server发现DevNonce是相同的,拒绝回复。有一个疑问,攻击者为什么不“伪造”Join Request帧呢?不是明文吗?我们看Join Request帧是受“完整性”保护的,如下:camc=aes128_cmac(AppKey,MHDR | AppEUI | DevEUI| DevNonce)MIC=cmac[0…3]攻击者没有AppKey,它发送“伪造”的Join Request帧,Server检测发现MIC错误,将会拒绝回复!4 管理密钥对于ABP入网机制,因为NwkSKey和AppSKey都是直接存储在End Nodes,特别小心,千万不要基于公开的信息来生成这2个Key,如:DevAddr,攻击者可以窃取该值。AppKey是根密钥,千万要小心保管!现代的加密机制,可靠度很高,暴力破解的难度非常大,大部分漏洞出在密钥上(密钥等于用户名、使用简单密钥、密钥泄露、基于公开信息生成等)。如果不保管好钥匙,再精致牢固的锁,也会被窃贼轻易打开!文章来源:程序园了解详情

LoRaWAN介绍8 服务质量(QoS)

“美好的东西在质不在量。”–伊索QoS(Quality of Service,服务质量)是一个网络的重要指标。SX1301基带芯片的多通道和多速率特性,提供了较高带宽;LoRa扩频调制,提供了长距离和较佳的抗干扰特性,这些是硬件提供的基础。QoS的其他方面:网络管理、自适应速率、可靠通信、快速下发和丢帧检测等,由LoRaWAN协议实现。1 网络管理实现一个网络的QoS,必须提供管理功能。LoRaW...了解详情

LoRaWAN介绍7 入网

“生命在他里头,这生命就是人的光。光照在黑暗里,黑暗却不接受光。”–《新约·约翰福音End Node要加入LoRaWAN网络,首先需要赋值和激活。一般说来,有2种方法完成入网:ABP(Activation by Personalization,个性化激活)和OTAA(Over-the-Air Activation,空中激活)。1 ABABP是一种简单的入网机制,同时,它也不太安全,适合于建设私...了解详情

LoRaWAN介绍6 部署

“历史不会重复自己,但会压着同样的韵脚。”--马克.吐温Orange在法国1300个城镇部署LoRaWAN网络,比利时、荷兰、匈牙利等部署国家或地区级的LoRaWAN网络……为什么都是欧洲?准确地说是欧洲小国,因为面积小,较少的投资即可覆盖全境范围。1 一个成功的WiFi网络2006年,FON公司发起一个建立全球性的无线大网的项目。购买一个FON的WiFi路由器,将它连接到Internet,您就可以在其他地方免费使用FON路由器的WiFi网络,地图上标识了每个FON路由器的位置。如果没有自己的FON路由器,您仍然可以使用FON的WiFi网络,当然,这是需要付费的。FON公司很成功,全球超过3350万个热点,年增长率200%,已经成为世界上最大的Wifi网络。2 LoRa能否效仿?如果LoRa效仿FON公司在WiFi上建设,那么将会有如下逻辑:a. 采购一个定制的LoRa Gateway,将其连接到Internet之上,保持24/7工作;b. 只要您购买的Gateway在线,您就可以连接一定数量的Nodes到全球网络;c. 如果您需要连接Nodes到没有LoRa覆盖的区域(通过地图可以查看),可以购买与安装新的Gateway,您可以获得连接对应Nodes的数量;d. 如果需要连接更多的Nodes(超过免费权限),您可以获取折扣价,作为帮助建设LoRa网络的回报;e. 没有自己Gateway的用户,需要为连接Nodes支付网络费用;f. 可以为科研与学生提供一些免费的LoRa连接带宽。3 演出相同的故事今天,Loriot、TheThingsNetwork、Sertone、Archos PicoWan这些商业公司,都在干同样的事情:建立一个全球、群集、便宜、公共的LoRaWAN网络,彼此之间的商业模式差异很小。其中Archos PicoWan颇具雄心,他们计划在欧洲部署20万个免费的微网LoRaWAN Gateway,2016年,该项目得到1200万欧元的投资。即,把LoRa物联网服务做成可出售的商品,这个市场很大,通过收取Nodes连接费用和后续增值服务来赢利。4 LoRaWAN真正的舞台无论是电信运营商,还是雄心勃勃的物联网公司,要建立一个公共(国家或区域级)的LoRaWAN物联网,都需要巨大的基础投入,并且赢利周期较长;对于全球经济不景气的当下,资金和预期都有很大的挑战。LoRaWAN最适合的场景,很可能第一个大规模应用,是基于工业4.0(智能制造)的测控。原因在于,投资它,几乎能“立竿见影”地获得收益。了解详情

LoRaWAN介绍5 对手

“真正的对手会灌输给你大量的勇气”–卡夫卡提到LoRa的对手,人们立即想到:SigFox(UNB,Ultra Narrow Band,超窄带)和NB-IoT(Narrow BandInternet of Things, 基于蜂窝的窄带物联网),最大的疑虑是:LoRa会不会被对手取代?答案是否定的!LoRa会和其他的物联网技术并存。免费频段的LoRa能提供专用频段所不适合的应用,它们一起为物联网提供...了解详情

LoRaWAN介绍4 缺点

“人类一思考,上帝就发笑”—-米兰·昆德拉尽管LoRaWAN由LoRa Alliance专家们(主要是:Semtech、IBM和Actility)建设,抛开技术复杂度和硬件较贵外,在以下技术方面,还存在缺陷。知道缺陷,是一件好事,它可以让后续的LoRaWAN协议去解决。正所谓,“弱小和无知不是生存的障碍,傲慢才是。”1 免费频段+公开标准=易受攻击LoRaWAN工作在ISM(Industrial Scientific Medical,工业,科学,医学)免费频段,它的协议规范是公开的,这就带来一个问题:易受攻击。要“伪造”一个End Node是困难的,攻击者侦听到4字节的DevAddr,直接使用该地址发送报文,Gateway会转发给Network Server(LoRaWAN Server四种服务器之一,简称为NS),NS检查MIC(Message IntegrityCode,信息完整码,由NwkSKey进行128AES加密)错误,丢弃该“伪造报文”。还有一种攻击,那就是“恶意拥塞”。想象下,攻击者使用LoRa设备,在125kHz带宽,发送最大长度preamble(前导码),那么该通道将被恶意占用。只要攻击者遵守duty cycle和发射功率,这种攻击是“合法的”。很可能,需要政策法规或行业规范,才能让LoRaWAN免受拥塞攻击。2 异步ALOHA协议的低效率美国夏威夷州是一个群岛,铺设有线网络代价很大,为了让各岛用户使用中心计算机,使用了无线电技术。该项目于1968年由美国夏威夷大学承担,是世界上最早的无线电计算机通信网。该通信协议取名ALOHA,是夏威夷人表示致意的问候语。协议原理:很简单,只要用户有数据要发送,就尽管让他们发送。规定时间内若收到应答,表示发送成功,否则重发。重发策略:等待一段随机的时间,然后重发;如再次冲突,则再等待一段随机的时间,直到重发成功为止。优点:简单易行。缺点:极容易冲突。效率:纯ALOHA协议的信道利用率最大不超过18.4%(1/2e)。今天,LoRaWAN的主体Class A也是采用ALOHA协议,在省电和简单的同时,冲突和低效率也不可避免。所幸的是,传感器的通信数据和频率不高,SX1301能提供多通道的FDMA(频分复用),可以有效缓解冲突。进一步预测,多片SX1301,会更受青睐。3 Class B的GPS同步在无线通信协议设计中,唤醒通信是一个难点:节点在休眠,Gateway必须和它约定在精确的时间点通信,这就需要同步技术。LoRaWAN的Class B提供唤醒功能,它的同步源是GPS的秒脉冲。就算所有的Gateway具备GPS功能,处于室内它将无法接收到GPS信号(除非将GPS天线引出)。当然,室内Gateway还可以选择IEEE1588之类的网络对时协议,不管如何,复杂度的提高,会带来设计和部署的代价。仔细看LoRaWAN SpecificationV1.0.2,“Class B must be considered as experimental……”(Class B目前是实验版本)。4 应用数据的封包下图是LoRaWAN中国频段的最大数据帧长度规定,可以看到,DR0/DR1/DR2(分别对应:250/440/980bps)下,应用层最大数据长度为51字节,在不同的速率下,该值还是变化的。这给应用层设计MTU(Maximum Transmission Unit,最大传输单元)大小,增加了额外的困难。了解详情

LoRaWAN介绍3 优点

1 长距离得益于扩频调制和前向纠错码的增益,LoRa取得大约2倍蜂窝技术(手机)的通信距离。长距离的“优秀基因”,使LoRaWAN可以使用star(星型)网络拓扑,相比mesh(网格)具备以下优势。2 大容量物联网的节点特别多,一个LoRaWAN网络能轻松连接上千,甚至上万节点的容量,得益于SX1301基带芯片的特长。多通道如下图所示,一片SX1301芯片,包括IF0~IF7,共8通道的LoRa调...了解详情