基于SX1301主控芯片的LoRaWAN室内网关解决方案
应用领域:通信广电
方案类型:创意方案
主控芯片:SX1301
方案概述
【方案特性】
*标准LoRaWAN协议;
*工作频率范围 410-510M,862-1020MHz(定制) ;
*发射功率 5-23dBm;
*接收灵敏度 -142dBm@292bps;
*空中传输速率 292bps-5.4Kbps;
*供电方式 DC 12V;
*上行信道 Ethernet;
*谐波指标 ≤1GHz:<-36dBm; >1GHz:< -30dBm;
*工作湿度 10%~90%;
*工作温度 -45℃~85℃;
*基本版8频点,最高支持16频点和98信道;
【方案外观】
【应用领域】
*无线智能水、气、电、热计量仪表;
*交通灯、地磁、智能路灯、消防报警器、温湿毒烟监测仪;
*农业灌溉装置、水利水文气象监测仪,畜牧养殖监测;
*工厂控制装置、智能楼宇和能效监控装置;
*弱势群体、贵重物品、宠物的跟踪和定位;
*景区和文物保护、应急通信装置;
【典型应用场景】
*居民公用设施,电水气热和空气质量监测;
*城市基础设施,管网监控;
*智能交通管理;
*工业园区厂房仓储和智能楼宇能效管控;
*农业养殖和户外监测;
*人员和物品定位;
【技术支持服务】
*LoRaWANGatewayConfiger评估工具,可视化操作;
*LoRaWAN研发工具套装 ,包括Server,Gateway和Node;
*LoRaWAN应用板,带参考设计,GPS,温度气压传感器;
*测试入门(Q&A);
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.4MHz
10通道频率配置如下表所示
通道 | 频率 | 射频前端 | 频偏 | 属性 |
IF1 | 866.875MHz | A | -125kHz | 固定速率LoRa |
IF2 | 868.400MHz | B | 0kHz | 64kbps的GFSK |
IF3 | 866.6875MHz | A | -312.5kHz | 6速率LoRa通道 |
IF4 | 867.0625MHz | A | 62.5kHz | 6速率LoRa通道 |
IF5 | 867.1875MHz | A | 187.5kHz | 6速率LoRa通道 |
IF6 | 867.3125MHz | A | 312.5kHz | 6速率LoRa通道 |
IF7 | 868.0875MHz | B | -312.5kHz | 6速率LoRa通道 |
IF8 | 868.2125MHz | B | -187.5kHz | 6速率LoRa通道 |
IF9 | 868.5875MHz | B | 187.5kHz | 6速率LoRa通道 |
IF10 | 868.7125MHz | B | 312.5kHz | 6速率LoRa通道 |
4 控制接口
SX1301依赖microcode(微代码)来运行,上电后MCU负责发送microcode给SX1301,semtech提供该microcode的二进制文件。MCU和SX1301的通信总线是SPI。
考虑多种射频通道和收发设备(如:SX1257或SX1255)和不同的硬件实现方式(如:1个SX1301或8个SX1301),为简化设计和方便移植,组织了HAL(Hardware AbstractionLayer,硬件抽象层)接口。
数据结构 | 调用函数 | 参数定义 |
lgw_conf_rxrf_s | lgw_rxrf_setconf() | 设置SX125x的中心频率和开启/停止 |
lgw_conf_rxif_s | lgw_rxif_setconf() | 设置IF通道中心频率,射频芯片等参数 |
lgw_pkt_rx_s | lgw_receive() | 接收数据包的有效数据和元数据 |
lgw_pkt_tx_s | lgw_send() | 发送数据包的有效数据和射频参数 |
函数 | 功能 | 定义 |
lgw_rxrf_setconf() | 配置射频参数 | 按用户要求设置SX125x的射频参数 |
lgw_rxif_setconf() | 按用户要求设置IF调制解调器参数 | |
lgw_start() | 硬件管理 | 启动SX1301 |
lgw_stop() | 停止SX1301,节能或重新配置 | |
lgw_receive() | 收发数据包 | 从RX FIFO提取接收数据包 |
lgw_send() | 通过指定IF通道,发送一个数据包 |
5 电气与资源
项目 | 最小值 | 典型值 | 最大值 | 单位 |
供电电压 | 3.0 | / | 3.6 | V |
工作温度 | -40 | / | 85 | ℃ |
全速功耗 | / | 990 | 1350 | mW |
SPI时钟速率 | / | / | 10 | MHz |
射频晶振频率 | / | 32 | / | MHz |
射频晶振精度 | -10 | / | +10 | ppm |
高速处理晶振 | 130 | 133 | 150 | MHz |
LoRaWAN是什么
按照LoRa联盟官方白皮书《what is LoRaWAN》的介绍,LoRaWAN是为LoRa远距离通信网络设计的一套通讯协议和系统架构。
LoRaWAN defines the communication protocol and system architecture for the network while the LoRa physical layer enables the long-range communication link.
另外官方提供了这张略偏技术的协议层次图,各位看官大体感受下。
LoRaWAN在协议和网络架构的设计上,充分考虑了节点功耗,网络容量,QoS,安全性和网络应用多样性等几个因素。经过接下来的这些内容,将会对开头这段介绍有更深刻的体会。
LoRaWAN 网络架构
在前面部分了解了LoRaWAN很火之后,我们具体从技术角度做些了解。如下是LoRa联盟官方白皮书中的网络架构图。
可以看到一个LoRaWAN网络架构中包含了终端、基站、NS(网络服务器)、应用服务器这四个部分。基站和终端之间采用星型网络拓扑,由于LoRa的长距离特性,它们之间得以使用单跳传输。在终端部分官方列了6个典型应用,有个细节,你会发现终端节点可以同时发给多个基站。基站则对NS和终端之间的LoRaWAN协议数据做转发处理,将LoRaWAN数据分别承载在了LoRa射频传输和Tcp/IP上。
下面结合下行业生态再来看下这个网络架构,大家可以有更深的认知。图来自ST的LoRa白皮书《IoT connectivity made easier STM32 MCUs & LoRa》。
协议概述
终端节点的分类
在开头的介绍中我们就看到有协议中有规定 Class A/B/C 三类终端设备,这三类设备基本覆盖了物联网所有的应用场景。
为了方便大家,我又做了个表。
终端节点的上下行传输
下面来点时序图,让大家有更深的感受。
这是Class A 上下行的时序图,目前接收窗口RX1一般是在上行后1秒开始,接收窗口RX2是在上行后2秒开始。
Class C 和 A 基本是相同的,只是在 Class A 休眠的期间,它都打开了接收窗口RX2。
Class B 的时隙则复杂一些,它有一个同步时隙beacon,还有一个固定周期的接收窗口ping时隙。如这个示例中,beacon周期为128秒,ping周期为32秒。
终端节点的加网
搞明白了基础概念之后,就可以了解节点如何工作了。在正式收发数据之前,终端都必须先加网。
有两种加网方式:Over-the-Air Activation(空中激活方式 OTAA),Activation by Personalization(独立激活方式 ABP)。
商用的LoRaWAN网络一般都是走OTAA激活流程,这样安全性才得以保证。此种方式需要准备 DevEUI,AppEUI,AppKey 这三个参数。
DevEUI 是一个类似IEEE EUI64的全球唯一ID,标识唯一的终端设备。相当于是设备的MAC地址。
AppEUI 是一个类似IEEE EUI64的全球唯一ID,标识唯一的应用提供者。比如各家的垃圾桶监测应用、烟雾报警器应用等等,都具有自己的唯一ID。
AppKey 是由应用程序拥有者分配给终端。
终端在发起加网join流程后,发出加网命令,NS(网络服务器)确认无误后会给终端做加网回复,分配网络地址 DevAddr(32位ID),双方利用加网回复中的相关信息以及AppKey,产生会话密钥NwkSKey和AppSKey,用来对数据进行加密和校验。
如果是采用第二种加网方式,即ABP激活,则比较简单粗暴,直接配置 DevAddr,NwkSKey,AppSKey 这三个LoRaWAN最终通讯的参数,不再需要join流程。在这种情况下,这个设备是可以直接发应用数据的。
数据收发
加网之后,应用数据就被加密处理了。
从介绍中可以看到,LoRaWAN设计之初的一大考虑就是要支持应用多样性。除了利用 AppEUI 来划分应用外,在传输时也可以利用 FPort 应用端口来对数据分别处理。FPort 的取值范围是(1~223),有应用层来指定。
ADR 机制
我们知道LoRa调制中有扩频因子的概念,不同的扩频因子会有不同的传输距离和传输速率,且对数据传输互不影响。
为了扩大LoRaWAN网络容量,在协议上了设计一个LoRa速率自适应(Adaptive data rate - ADR)机制,不同传输距离的设备会根据传输状况,尽可能使用最快的数据速率。这样也使得整体的数据传输更有效率。
MAC命令
针对网络管理需要,在协议上设计了一系列的MAC命令,来修改网络相关参数。比如接收窗口的延时,设备速率等等。在实际应用过程中,一般很少涉及,暂时不管。
地区参数
LoRa联盟官方在协议之外,还发布了一个配套补充文档《LoRaWAN 地区参数》,这份文档描述了全球不同地区的LoRaWAN具体参数。为了避免新区域的加入而导致文档的变动,因此将地区参数章节从协议规范中剥离出来。
这份文档主要讲了LoRaWAN在全球各地区的具体物理层参数,不单单是频段有区别,细化到信道划分,甚至是数据速率,发射功率,最大数据长度等等都有区别。
为了方便大家了解总体情况,我又做了个表。
其实这个表也可以看出一个好玩的事情,为什么韩国的参数和亚洲各国其实差不太多,却单独拎出来。如果你有记得前文中的董事会成员记录,就应该知道韩国SK电信在LoRa联盟中的地位。
责任编辑:Davia
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。