全面拆解和构建5G物联网-27:LoRaWAN PingPong终端/Class A/B/C类型终端的常见配置数据

为了让LoRa不同终端之间能够相互发送数据,同时也能让终端与Server之间能够相互发送数据,有很多的参数需要在通信的双方达成一致。如果这些配置参数不正确,很容易导致通信的双方无法收到数据。

这里总结了LoRaWAN pingpong、Class A/B/C类型终端的一些常见配置数据,以及相应的值,以便于比较。

模式 类型 参数说明 参数符号 可选值 Ping Pong Class A
TX 射频 功率 TX_OUTPUT_POWER 22, 17, … 22 17
TX
RX
射频 中心频点
(这是pingpong程序与LoraWan程序不能互发数据的第1个原因)
RF_FREQUENCY 923000000, 915000000, 470300000, 779000000, … 470300000 CN470_FIRST_RX1_CHANNEL 500300000
CN470_RX_WND_2_FREQ     505300000
Tx
Rx
LoRa调制解调器 Modem的类型 PacketType typedef enum
{
    PACKET_TYPE_GFSK = 0x00,
    PACKET_TYPE_LORA = 0x01,
    PACKET_TYPE_NONE = 0x0F
}RadioPacketTypes_t;
PACKET_TYPE_LORA PACKET_TYPE_LORA
Tx
Rx
LoRa调制解调器 分频因子 SpreadingFactor typedef enum
{
    LORA_SF5 = 0x05,
    LORA_SF6 = 0x06,
    LORA_SF7 = 0x07,
    LORA_SF8  = 0x08,
    LORA_SF9  = 0x09,
    LORA_SF10 = 0x0A,
    LORA_SF11 = 0x0B,
    LORA_SF12 = 0x0C
}RadioLoRaSpreadingFactors_t;
LORA_SF12 LORA_SF12
Tx
Rx
LoRa调制解调器 带宽 Bandwidth typedef enum
{
    LORA_BW_500 = 6,
    LORA_BW_250 = 5,
    LORA_BW_125 = 4,
    LORA_BW_062 = 3,
    LORA_BW_041 = 10,
    LORA_BW_031 = 2,
    LORA_BW_020 = 9,
    LORA_BW_015 = 1,
    LORA_BW_010 = 8,
    LORA_BW_007 = 0
}RadioLoRaBandwidths_t;
LORA_BW_125  LORA_BW_125 
Tx
Rx
LoRa调制解调器 编码率 CodingRate typedef enum
{
    LORA_CR_4_5 = 0x01,
    LORA_CR_4_6 = 0x02,
    LORA_CR_4_7 = 0x03,
    LORA_CR_4_8 = 0x04
}RadioLoRaCodingRates_t;
LORA_CR_4_5 LORA_CR_4_5
Tx
Rx
LoRa调制解调器 低速优化 LowDatarateOptimize 0, 1 0 0
Tx
Rx
物理层帧 帧的类型 PacketType typedef enum
{
    PACKET_TYPE_GFSK = 0x00,
    PACKET_TYPE_LORA = 0x01,
    PACKET_TYPE_NONE = 0x0F
}RadioPacketTypes_t;
 PACKET_TYPE_LORA  PACKET_TYPE_LORA
Tx
Rx
物理层帧 前导码长度 PreambleLength 8, 12, 16…. 12 8
Tx
Rx
物理层帧 公网私网设置 RadioPublicNetwork typedef struct
{
    bool Previous; //true or false
    bool Current;  //true or false
}RadioPublicNetwork_t;
   
Tx
Rx
物理层帧 LoRa同步字
(这是pingpong程序与LoraWan程序不能互发数据的第2个原因)
REG_LR_SYNCWORD #define LORA_MAC_PRIVATE_SYNCWORD 0x1424  //默认for点对点
#define LORA_MAC_PUBLIC_SYNCWORD  0x3444  //for点对网关
0x1424  0x3444 
Tx
Rx
物理层帧 帧头的类型 HeaderType typedef enum
{
    LORA_PACKET_VARIABLE_LENGTH = 0x00,     
    LORA_PACKET_FIXED_LENGTH    = 0x01,     
    LORA_PACKET_EXPLICIT= LORA_PACKET_VARIABLE_LENGTH,
    LORA_PACKET_IMPLICIT = LORA_PACKET_FIXED_LENGTH
}RadioLoRaPacketLengthsMode_t;
ORA_PACKET_VARIABLE_LENGTH ORA_PACKET_VARIABLE_LENGTH
Tx
Rx
物理层帧 payload的长度 PayloadLength 0.255 255 255
Tx
Rx
物理层帧 PayLoadCRC开关 CrcMode typedef enum
{
    LORA_CRC_ON = 0x01,
    LORA_CRC_OFF = 0x00
}RadioLoRaCrcModes_t;
 LORA_CRC_ON   LORA_CRC_ON 
Tx
Rx
物理层帧 IQ翻转
(这是pingpong程序与LoraWan程序不能互发数据的第3个原因)
InvertIQ typedef enum
{
    LORA_IQ_NORMAL = 0x00,
    LORA_IQ_INVERTED = 0x01
}RadioLoRaIQModes_t;
LORA_IQ_NORMAL LORA_IQ_INVERTED
Tx 物理层帧 启动Tx模式 OperatingModes:MODE_TX      
Tx 物理层帧 启动Tx发送模式
以及发送超时
(硬件发送超时)
Radio.Tx(timeout)
SX126xSetTx(timeout);
0:  Tx single mode, Tx一致待在Tx模式下,直到数据包发送完成,然后自动进入低功耗模式。
1..262s:超时模式,Tx一致待在Tx模式下,直到数据包发送完成,或超时,然后自动进入低功耗模式。
0s 0s
Tx 物理层帧 发送超时,软件定时器
有TxDone终端负责关闭
(软件发送超时)
TxTimeout 0…xxx 3s 3s
Tx 物理层帧 测试命令,连续发送模式   RADIO_SET_TXCONTINUOUSWAVE NA NA
Tx 物理层帧 测试命令,无限制的发送前导模式   RADIO_SET_TXCONTINUOUSPREAMBLE NA NA
Rx 物理层帧 启动Rx模式 OperatingModes:MODE_RX      
Rx 物理层帧 启动RX模式接收
以及接收超时
(硬超时)
定时模式的作用是为了在特定的时间没有数据要接收时候,进入低功耗。
Radio.Rx(timeout)
SX126xSetRx(timeout);
0: Rx single mode,即一直处于接收模式,直到接收到一个完整的数据包,然后离开Rx新模式,进入低功耗模式。
0xFF FF FF: 连续接收模式,即一直处于接收模式,不进入低功耗模式,可以多次连续接收多个数据包。
其他:超时模式,即处于接收模式,直到接收到一个完整的数据包或超时发生,然后离开Rx新模式,进入低功耗模式。
5*1000
5s
Rx1Win:
Rx2Win:
Rx 物理层帧 从定时模式切换到single 模式,防止在超时的最后期限达的时候,才开始有数据包的接收 StopRxTimerOnPreambleDetect 0:直到接收到完整的物理层帧头,才离开timeout模式,进入single mode,等待接收完整的数据帧。
1: 一旦接收到preamble,就离开timeout模式,就进入single mode,等待接收完整的数据帧。
0 0
Rx 物理层帧 从定时模式切换到single 模式,防止在超时的最后期限达的时候,才开始有数据包的接收。
但由于前导的符号的数量有可能很多,需要指明,接收多多少个前到符号,就可以离开timeout模式,进入single模式
RaSymbNumTimeout 该参数只有在StopRxTimerOnPreambleDetect=1时有效。
0:  当接收到一个前导符的时候,就认为已经接收到前导符号,可以离开timeout模式,进入single mode。0是最敏感的,一旦有一个前导副,就认为有可能有数据。
1:  当接收到设置的RaSymbNumTimeout个数的前导符号的时候,可以离开timeout模式,进入single mode
0 0
Rx 物理层帧 接收增益模式 RxBoosted
REG_RX_GAIN
0x94:power saving低功耗接收增益 (默认的低功耗)
0x96:Boosted临时提升接收增益(功耗增加,但接收灵敏度提升), RxDutyCycle, 必须使用0x96。
0x94 0x94
Rx+RC 物理层帧 启动Rx+RC模式 OperatingModes:MODE_RX_DC   0 0
Rx+RC 物理层帧 自动接收休眠模式切换
硬件listen模式或sniff模式,周期性唤醒进入接收模式,这样避免通过软件设置Rx模式
SX126xSetRxDutyCycle(
uint32_t rxTime,
uint32_t sleepTime )
rxPeriod:Rx的时间
sleepPeriod: 休眠时间
0 0

猜你喜欢

转载自blog.csdn.net/HiWangWenBing/article/details/108371921