1 介绍
SX126X(LLCC68)和SX127X都是Semtech推出的LoRa收发器芯片,都支持LoRa调制和FSK调制,不管是LoRa制作模式还是FSK调制模式下,它们之间都可以实现相互通信。
随着技术的升级更新,作为新一代的LoRa芯片SX126X(LLCC68),在发射功率及电流消耗都有着明显的优势,所以许多客户有使用SX126X(LLCC68)替换SX127X的需求,同时为了兼容之前的产品,所以需要实现SX126X(LLCC68)与SX127X相互通信。本文档主要介绍SX126X(LLCC68)与SX127X在LoRa调制模式下如何实现互联互通,及实现互联互通需要注意的事项。
2 实现互联互通条件
SX126X(LLCC68)与SX127X实现互联互通有一定的条件,对于某些特殊配置也是无法互联互通的,下文主要说明哪些条件下不能互通,需要互联互通应该主要哪些配置条件。
2.1 不支持互联互通配置
2.1.1 特殊配置原因
1)SX127X的扩频因子为SF6时,只可以工作在隐性报头模式,且有特殊寄存器设置,而SX126X及LLCC68在该扩频因子条件下进行了修改,既可以工作在隐性报头也可以工作在显性报头,所有当扩频因子为SF6时,SX126X(LLCC68)无法与SX127X实现互联互通。
2)SX126X(LLCC68)芯片扩展了SF5的扩频因子,所以扩频因子为SF5时,SX126X(LLCC68)也无法同SX127X实现互联互通。
2.1.2 速率配置限制原因
1)由于LLCC68支持配置的速率只SF=5~9@BW=125KHz,SF=5~10@BW=250KHz及SF=5~11@BW=500KHz,所以对于其他速率配置,是无法同LLCC68实现互联互通的。
2.2 支持互联互通配置要求
SX126X(LLCC68)与SX127X实现互联互通的条件是需要保持两者配置一致;涉及到的配置参数有如下:
●中心频率
●扩频因子(SF)
●调制带宽(BW)
●纠错率(CR)
●CRC是否开启
●报头显隐性格式
●低速率优化(Low Data Rate Optimize)
●IQ信号极性
●前导码长度
●数据包长度
3 互联互通操作实例介绍
3.1 实验工具及设备准备
本次操作主要以470MHz的LLCC68模组及SX1278模组为例,进行LLCC68模组与SX1278模组互联互通操作。需要用到的工具设备等如下表3-1。序号 | 设备名称 | 设备型号 | 数量 | 备注 | 1 | 利尔达开发板 | LSD4RF-TEST2002 | 2 | | 2 | LLCC68 LoRa模组 | LSD4RFC-2L722N10 | 1 | | 3 | SX1278 LoRa模组 | LSD4RF-2F717N30 | 1 | | 4 | LLCC68 LoRa通信代码 | LLCC68_LoRa(1.3OLED)_201223 | 1 | | 5 | SX1278 LoRa通信代码 | SX127X-LoRa(1.3OLED)_201223 | 1 | | 6 | PC工具 | MDK5.30(或其他版本) | 1 | | 7 | JLink | | 1 | |
表3-1 测试设备及工具
3.2 通信流程
使用LLCC68模组和SX1278模组分别作为TX设备和RX设备,发射设备通过LoRa无线信号发送数据给接收设备,接收设备收到数据包后将数据包通过LoRa无线信号返回给发射设备端,循环进行通信。
图3-1 LoRa通信流程图
3.3 测试参数配置
正文通过表2-1可以知道,二代LoRa芯片SX126X和LLLCC68在射频性能及功耗上都优
3.3.1 SX1278参数配置
//文件:main_Tx.c
//配置各个参数
G_LoRaConfig.LoRa_Freq = 470800000; //中心频率470MHz
G_LoRaConfig.BandWidth = BW125KHZ; //BW = 125KHz BW125KHZ
G_LoRaConfig.SpreadingFactor = SF09; //SF = 9
G_LoRaConfig.CodingRate = CR_4_6; //CR = 4/6
G_LoRaConfig.PowerCfig = 15; //19±1dBm
G_LoRaConfig.MaxPowerOn = true; //最大功率开启
G_LoRaConfig.CRCON = true; //CRC校验开启?
G_LoRaConfig.ExplicitHeaderOn = true; //显性包头:
G_LoRaConfig.PayloadLength = 10; //数据包长度
//文件:SX127X_Driver.c
//低速率配置
SX127X_Write( REG_LR_MODEMCONFIG3,((G_TsXms>16.0f)?\
RFLR_MODEMCONFIG3_LOWDATARATEOPTIMIZE_ON :
RFLR_MODEMCONFIG3_LOWDATARATEOPTIMIZE_OFF\
) | RFLR_MODEMCONFIG3_AGCAUTO_ON);
//当symbol时间大于16.0ms时开启低速率优化,否则不开启
3.3.2 LLCC68参数配置
//文件:main_Tx.c
//配置各个参数
G_LoRaConfig.LoRa_Freq = 470800000; //中心频率
G_LoRaConfig.BandWidth = LORA_BW_125; //BW = 125KHz BW125KHZ
G_LoRaConfig.SpreadingFactor = LORA_SF9; //SF = 9
G_LoRaConfig.CodingRate = LORA_CR_4_6; //CR = 4/6
G_LoRaConfig.PowerCfig = 22; //输入范围:-3~22,根据实际
G_LoRaConfig.HeaderType = LORA_PACKET_EXPLICIT; //显性包头:
G_LoRaConfig.CrcMode = LORA_CRC_ON; //CRC校验开启:
G_LoRaConfig.InvertIQ = LORA_IQ_NORMAL; //默认NORMAL标准模式
G_LoRaConfig.PreambleLength = 8; //前导码长度
G_LoRaConfig.PayloadLength = 10; //数据包长度
//文件:SX127X_Driver.c
//低速率配置
if(G_TsXms > 16.0)
{
buf[3] = LOWDATARATEOPTIMIZE_ON;
}
else
{
buf[3] = LOWDATARATEOPTIMIZE_OFF;
}//当symbol时间大于16.0ms时开启低速率优化,否则不开启
3.4 互联互通演示
分别演示当LLCC68模组为主机设备或从机设备时与SX1278模组互联互通情况。
3.4.1 LLCC68模组作为主机设备
1)使用Keil工具打开 LLCC68 LoRa通信代码例程,选择TX目标工程进行编译,编译完成后通过Jlink烧写器完成LLCC68模组端开发板烧写;
图3-2 LLCC68 LoRa通信代码TX目标工程
2)使用Keil工具打开 SX1278 LoRa通信代码例程,选择RX目标工程进行编译,编译完成后通过Jlink烧写器完成SX1278模组端开发板烧写;
图3-3 SX127X LoRa通信代码RX目标工程
3)通信效果演示
图3-4 LLCC68互通SX1278演示图
3.4.2 SX1278模组作为主机设备
1)使用Keil工具打开 SX127X LoRa通信代码例程,选择TX目标工程进行编译,编译完成后通过Jlink烧写器完成SX127X模组端开发板烧写;
图3-5 SX127X LoRa通信代码TX目标工程
4)使用Keil工具打开 LLCC68 LoRa通信代码例程,选择RX目标工程进行编译,编译完成后通过Jlink烧写器完成LLCC68模组端开发板烧写;
图3-6 LLCC68 LoRa通信代码RX目标工程
5)通信效果演示
图3-8 SX1278互通LLCC68演示图
3.5 互联互通注意事项
1)配置一定要保持一致,否则可能出现无法通信或者数据错误等现象;
2)在配置也一致时发现还是无法通信,这时需要考虑下时候两者时序上有不同步问题,比如,发送机发送完成后,再重新进入接收模式,这时在切换过程中,由于代码等处理,切换时间较长,但接收机端接收成功后里面切到发送数据包,这时出现接收机已经发送完数据包,但是发射机还未完成接收状态配置,导致丢包。
4 联系我们
有何需求?
扫码填表单即可联系到我们
|