本文所述的原理适用于所有无线传输技术,只是用蓝牙来举例。应该说,嵌入式企鹅圈更加偏重于嵌入式和物联网、安卓技术原理方面的知识分享和传播,其次才是实践,尽管很多开发者都很浮躁地希望能够立刻获得例程源码。本人一直都认为,只有通晓理论,才能把实践做得更好,才能成为真正的专家级工程师,否则就永远都是码农一枚。

一、应用

无线接收信号强度(RSSI)在距离测算方面的应用中需要用到。咱们不说室内定位了,换个例子:学生考勤,由于获取的RSSI只有绝对值,没有方向性,所以需要在校门口的外面和里面各装一个AP接入点。假如是只有一个接入点,那就不知道这个学生到底是进入学校还是离开学校。

现在有两个接入点,那它们可能同时检测到一个学生手环,但明显,如果是进入学校,那当学生在校外时,校外的AP获得的RSSI肯定会高过校内的RSSI。当学生进入校内时,校内的AP获得的RSSI肯定会高过校外的RSSI。换一种说法,校内和校外AP获得RSSI峰值的时间点是有先有后的。比较峰值时间即可判定是进入学校或者离开学校。

二、单位

RSSI的单位是DBm,而不是DB。DB是输出和输入功率的比例值,而DBm确是一个绝对值。

dbm是一个表示功率绝对值的单位,他的计算公式为10lg(功率值/1mw)。例如如果接收到的功率为1mw,按照dbm单位进行折算后的值应该为10lg 1mw/1mw=0dbm。当然在实际传输过程中接收方是很难达到接收功率1mw的。因为还有接收端的天线增益,所以即使接收功率是0.00001mw(即-50db)时,RF射频的接收端也能很好地进行码元解码。

但是,对于某种无线接口(就是802.xx定义的规格,对于蓝牙来说就是IEEE 802.15.1)来说,也是要保障接收功率在一定范围,才能正常工作。对于无线传感器网络来说,低于-95db时信号是不可靠的。

从这里,我们也可以看出,在安卓上利用BLE接口获得的RSSI值都是负数的,是因为它获取的就是以dbm为单位的。

但是,为什么我们从蓝牙单芯片(如NRF52832,DA14580,或者TI 2541)平台来说,我们获得的RSSI数值确实正数的呢?

三、信号等级

获得正数是因为各个蓝牙厂商自己根据自身的信道和信号经验值来给出信号等级。好比,我们手机用户只需要知道电池电量是多个格就好了,无需知道电池电压值。

从这里也可以看出,真正的RSSI信号dbm值和信号等级是厂家的自行进行映射的,而且是跟自家产品相关的,不是标准。就是说NRF52832的信号等级A和DA14580的信号等级A尽管数值一样,但是对应的真正的dbm是可能不一样的。

四、如何获得RSSI

1).一般蓝牙主机在扫描到蓝牙设备时,底层协议栈会给上层一个报告事件,其携带的参数就有一个RSSI值。例如,DA14580平台会返回一个GAPM_ADV_REPORT_IND报告事件,其携带的参数是:

2)当连接上设备之后,如何还想获得RSSI的话(记住,RSSI在每次连接事件时都会发生变化的),就必须想数据链路层(LLC)发送查询RSSI请求,LLC就会启动接收功率积分电路(物理层的事),当电路工作完成并准备好数据后再给上层一个完成事件,通过携带的参数即可获得RSSI。例如,DA14580平台的请求命令是:LLC_RD_RSSI_CMD,而返回的事件是LLC_RD_RSSI_CMP_EVT,携带的参数是:

structllc_rd_rssi_cmd_complete

{

///Status for command reception

uint8_t status;

///Connection handle

uint16_t conhdl;

///RSSI value

 uint8_t rssi;

};

RSSI对于上层的开发知识就这么多,如果你想继续研究发篇高水平的论文也是可以的,那就进入MAC(媒体接入控制)和数据链路层去研究吧,例如根据RSSI的变化来调整发射功率,来达到节省功耗的目的。

无线接收信号强度(RSSI)那些事儿相关推荐

  1. 无线接收信号强度为什么总是负值?

    绝对功率的dBm表示:射频信号的绝对功率常用dBm.dBW表示,它与mW.W的换算关系如下:例如信号功率xW,利用dBm表示其大小为:p(dBm) = 10 log((x*1000(mW)).1(mW ...

  2. 无线知识:dBm、dBw、dB、dBi、dBd、asu、RSSI(接收信号强度)、天线增益、灵敏度等无线参数快速了解

    文章目录 1.dBm 2.dBw 3.dB 4.RSSI(Received Signal Strength Indication,接收信号强度) 5.asu 6.天线增益.dBi.dBd 7.灵敏度 ...

  3. 【无线网络技术】实验二——无线网络环境RSSI测量

    1 实验要求与目的 了解 RSSI 的概念和基本原理 掌握 RSSI 测量过程和方法 不同无线环境下 RSSI 值测量 2 实验背景 针对无线信号测量,服务集标识符(Service Set Ident ...

  4. 实验二 无线网络环境RSSI测量实验

    无线网络技术教程第四版实验二 无线网络环境RSSI测量实验 目录 无线网络技术教程第四版实验二 无线网络环境RSSI测量实验 1 实验要求和目的 2 实验原理和背景 3 实验环境和软件 4 实验过程与 ...

  5. Android 蓝牙信号强度RSSI介绍

    1.RSSI是什么 Received Signal Strength Indication接收的信号强度指示,无线发送层的可选部分,用来判定链接质量,以及是否增大广播发送强度.RSSI(Receive ...

  6. 基于接收信号强度(RSS)的室内定位/无线传感器网络定位——极大似然估计ML/最小二乘估计WLS

    基于接收信号强度(RSS)的室内定位/无线传感器网络定位--极大似然估计ML/最小二乘估计WLS 原创不易,路过的各位大佬请点个赞 针对AOA,TOA,TDOA,RSS等室内定位.导航的探讨.技术支持 ...

  7. 实验2——无线网络环境RSSI测量

    无线网络环境RSSI测量 文章目录 无线网络环境RSSI测量 前言 一.基本概念介绍及实验准备工作 1.RSSI介绍 2.实验环境 3.实验原理介绍 二.实验开始 1.测量前的操作步骤 2.分析实验结 ...

  8. android qt rssi,蓝牙信号强度RSSI

    1.RSSI是什么 Received Signal Strength Indication接收的信号强度指示,无线发送层的可选部分,用来判定链接质量,以及是否增大广播发送强度.RSSI(Receive ...

  9. Arduino ESP8266 RF433无线接收发射超再生模块实验

    Arduino ESP8266 RF433无线接收发射超再生模块实验 实物通讯效果 接收端,串口打印接收数据效果

最新文章

  1. [register]-05-ARMv8中常用系统寄存器详解
  2. 【图专题】三篇图神经网络中的图核函数:主要学习图的拓扑结构从而解决图分类问题...
  3. 【numpy】numpy.zeros()函数
  4. 2019.8.15几道练习题
  5. Coinbase是如何在其加密货币交易平台上应对扩展性挑战的
  6. Flutter - 底部导航详解与案例示范
  7. java读取pdf的文字、图片、线条和对应坐标
  8. 将进酒服务器是哪个位置的,李白的《将进酒》是他什么时候写下的?又是在哪里写的呢?...
  9. java医疗保险系统_医疗保险管理系统设计 Java
  10. 怎么样删除计算机管理员用户账户,怎么样删除电脑中多出来的管理员账户
  11. 商品的SKU与SPU
  12. 微信Jsapi支付实战踩坑
  13. STM32CubeMX学习之旅1:点亮一个LED灯
  14. 数据分析(二)----- 描述性统计分析
  15. 快30岁了还应不应该转行做3D建模师? 年龄大了有错吗?
  16. Java开发工程师面试题
  17. 蓝桥杯Web组备赛笔记3
  18. linux mnt目录清理,linux下mnt目录作用详解
  19. 苹果se2_小米学习苹果?即将发布小屏手机,卢伟冰微博喊话网友|卢伟冰|手机|iphone|安卓手机...
  20. 【学步者日记】C#反射中NonPublic和Instance需要一起使用

热门文章

  1. Python爬虫进行Cookie登录
  2. html+css+javascript实现倒数计时
  3. Echarts详解之饼状图展示
  4. C语言使用EsayX库实现简易贪吃蛇
  5. 八章:GAN和DCGAN入门
  6. 华测服务器进不去系统,华测网络数据查询系统
  7. 面试题(15)|计算机基础(1):一个int类型占用多少字节
  8. 皮肤电数据简介及预处理指南
  9. STM32之bootloader
  10. HTML+CSS的项目练习