android qt rssi,LoRa笔记01 sx1276 sx1278信号强度RSSI研究

1 前言

RSSI信号强度是无线网络中特别被人关注的一个点,尤其是工程部署中。今天在了解LoRa SX1276的RSSI展示,搜寻了一些资料,做如下笔记留念。(留念。。。真没词用了吗。。。)

2 官方资料

涉及寄存器

uid-20792373-id-5763488.html

官方英文说明

5.5.5. RSSI and SNR in LoRaTM Mode

The RSSI values reported by the LoRaTM modem differ from those expressed by the FSK/OOK modem. The following

formula shows the method used to interpret the LoRaTM RSSI values:

RSSI (dBm) = -157 + Rssi, (when using the High Frequency (HF) port)

or

RSSI (dBm) = -164 + Rssi, (when using the Low Frequency (LF) port)

The same formula can be re-used to evaluate the signal strength of the received packet:

Packet Strength (dBm) = -157 + Rssi, (when using the High Frequency (HF) port)

or

Packet Strength (dBm) = -164 + Rssi, (when using the Low Frequency (LF) port)

Due to the nature of the LoRa modulation, it is possible to receive packets below the noise floor. In this situation, the SNR

is used in conjunction of the PacketRssi to compute the signal strength of the received packet:

Packet Strength (dBm) = -157 + PacketRssi + PacketSnr * 0.25 (when using the HF port and SNR < 0)

or

Packet Strength (dBm) = -164 + PacketRssi + PacketSnr * 0.25 (when using the LF port and SNR < 0)

Note:

1. PacketRssi (in RegPktRssiValue), is an averaged version of Rssi (in RegRssiValue). Rssi can be read at any time

(during packet reception or not), and should be averaged to give more precise results.

2. The constants, -157 and -164, may vary with the front-end setup of the SX1276/77/78/79 (LnaBoost =1 or 0,

presence of an external LNA, mismatch at the LNA input…). It is recommended to adjust these values with a single-point

calibration procedure to increase RSSI accuracy.

3. As signal strength increases (RSSI>-100dBm), the linearity of PacketRssi is not guaranteed and results will diverge

from the ideal 1dB/dB ideal curve. When very good RSSI precision is required over the whole dynamic range of the

receiver, two options are proposed:

- Rssi in RegRssiValue offers better linearity. Rssi can be sampled during the reception of the payload (between

ValidHeader and RxDone IRQ), and used to extract a more high-signal RSSI measurement

- When SNR>=0, the standard formula can be adjusted to correct the slope:

RSSI = -157+16/15 * PacketRssi (or RSSI = -164+16/15 * PacketRssi)

中文解读

常规情况下,公式是这样:

RSSI (dBm) = -157 + Rssi, (高频口)

RSSI (dBm) = -164 + Rssi, (低频口)

另外在SNR<0的噪声环境下,要按照Packet Strength (dBm) = -157 + PacketRssi + PacketSnr * 0.25 这样的公式。

1.PktRssiValue指单个包的信号强度,是收包这段时间内的RSSI的平均值。RssiValue指当前的信号强度。

2.如果有加外部LNA,那需要做单点校准,让RSSI显示更准确。

3.当信号强度超过-100dBm之后,PacketRssi就不能保证线性,结果会偏离 1dB/dB 的曲线。如果SNR>0,那可以使用公式来校准,RSSI = -157+16/15 * PacketRssi (or RSSI = -164+16/15 * PacketRssi)。

3 代码分析

代码中处理信号强度是这样,判断频段是否大于550MHz,据此来进行高频和低频的不同偏移量的处理。

int16_t SX1276ReadRssi( RadioModems_t modem )

{

int16_t rssi = 0;

switch( modem )

{

case MODEM_FSK:

rssi = -( SX1276Read( REG_RSSIVALUE ) >> 1 );

break;

case MODEM_LORA:

if( SX1276.Settings.Channel > RF_MID_BAND_THRESH )

{

rssi = RSSI_OFFSET_HF + SX1276Read( REG_LR_RSSIVALUE );

}

else

{

rssi = RSSI_OFFSET_LF + SX1276Read( REG_LR_RSSIVALUE );

}

break;

default:

rssi = -1;

break;

}

return rssi;

}

4 范例

假如我们收到这样的信号值:

rssi cur: 61,snr: 35

pkt rssi:113

因为频段是433MHz,且SNR>0,因此使用如下公式:

RSSI = -164+16/15 * PacketRssi = -164 + 16/15 * 113 = -43.467

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值