lorawan在嵌入式系统中的实现--节点端(一)--SX1278介绍

一 简介

        LoRa作为IOT的技术实现中的一种,伴随着使用该技术的产品和项目逐渐增多,其优势已逐步被人们所熟知 -- 长距离与低功耗。比较适用于对数据传输量较少,传输频率不高的场合。

    LoRa原理简单的说就是因为采用了扩频调制技术,从而在同等的功耗下取得更远的通信距离。具体请看其他文章介绍,本文主要偏向于实际应用。

    说明:本人经验有限,此文仅供参考,如有错误请谅解。

二 SX1278

      目前实现LoRa的硬件有Semtech的SX1272/76/78/79系列,通常作为节点端使用,还有SX1301 SX1255通常作为网关端使用。

lorawan在嵌入式系统中的实现--节点端(一)--SX1278介绍_第1张图片

SX127x原理框图

      Semtech拥有LoRa 的IP,目前似乎只能他们自己生产,除非他们授权给其他公司,例如HopeRF.。市场上也有大量的模组,封装了SX12xx的芯片,方便客户快速开发产品原型和验证。在一些对体积成本不敏感的项目上可以直接使用。

lorawan在嵌入式系统中的实现--节点端(一)--SX1278介绍_第2张图片lorawan在嵌入式系统中的实现--节点端(一)--SX1278介绍_第3张图片lorawan在嵌入式系统中的实现--节点端(一)--SX1278介绍_第4张图片lorawan在嵌入式系统中的实现--节点端(一)--SX1278介绍_第5张图片




      如果需要读datasheet,建议大家读英文原版的,中文翻译的资料有些部分有问题。

      如果产品比较简单,例如只用来进行点对点通讯,或者一对几个节点这种情况,就不需要网关端了。几个SX1278通过外部MCU实现简单的通讯协议,进行数据交互。

相关的技术参数信息,比如链路预算,灵敏度,功耗这些可以看datasheet。

      注意一下不同芯片对应的频率是不同的,在中国主要使用CN470和CN780标准,对应的芯片建议使用SX1278。

三 SX1278关键寄存器及操作介绍

    在使用SX1278的过程中,会发现它的寄存器非常多,而且还分为FSK/OOK和LoRa两部分互相独立的寄存器。下面根据本人的经验就LoRa模式下的几个关键寄存器给予说明,这几个寄存器如配置错误会导致通讯失败。

    1.频率寄存器设置

      频率设置在0x06~0x08寄存器:RegFrMsbRegFrMid、RegFrLsb

      计算公式为:

lorawan在嵌入式系统中的实现--节点端(一)--SX1278介绍_第6张图片

    比如需要设置频率到470M,那么Frf= 470*2(19次幂)/32=0x758000,设置寄存器RegFrMsb = 0x75;RegFrMid=0x80;RegFrLsb=0x00

   2.RF power寄存器

   输出功率的配置寄存器有两个,一个是RegPaConfig(0x09);另一个是RegPaConfig(0x4D)

   如果想设置到最大20dBm的话,参考下面的设置。

SX1276Write( REG_LR_PADAC, 0x87);  //high power
SX1276Write( REG_LR_PACONFIG, 0x8F); 

  3.接收发送配置

   根据原理图,控制GPIO对发送和接收进行配置,保证在芯片发送期间PA_BOOST输出到天线,接收时RFI_LF连接到天线

 4.syncword寄存器

   lora和lorawan两种情况下,SynvWord寄存器对应0x12和0x34

 5.Preamble寄存器

  sx1278在接收数据期间会先接收前导码,如果在设置的时间内接收不到变进入睡眠,如果接收到前导码则开始接收后面的数据。设置该寄存器确定接收前导码的查长度。

在lorawan的模式下一般设置到8

  6.RegSymbTimeout

    设置接收的窗口时间长度,最长是1023个symbols时间,在这个时间内如果接收不到前导码,RxTimeout产生中断,芯片进入休眠。调试期间可以尽量设置大一些,如果芯片定时精度不够有可能会错过接收窗口导致数据无法接收。后期系统稳定后应当尽可能缩小该值以达到降低功耗的目的。

  7.其他寄存器设置

  其他寄存器例如,BW,coderate,datarate等,接收发送双方保持一直即可。

  8.中断配置

  Sx1278有6个中断输出,最少需要使用Dio0和Dio1两个中断,注意中断是高电平有效。

  9.RESET

  低电平有效



你可能感兴趣的:(IOT)