RSSI:Received Signal Strength Indiction,接收信号强度指示。 在Bluetooth Core_v5.0中,英文原文解释RSSI为“The meaning of the RSSI metric is an absolute receiver signal strength value in dBm to ± 6 dB accuracy. If the RSSI cannot be read, the RSSI metric shall be set to 127.”分为以下几个部分别阐述: 上篇讲述3个部分: 1、[What]RSSI是什么? 2、[Where]RSSI从哪里来? 3、[Why]RSSI如何测出? 下篇讲述3个部分: 4、[How]如何获取RSSI? 5、[How]RSSI有什么应用? 如果文中有不正确或者描述不清楚之处,欢迎各位指出,共同学习。 4、[How]如何获取RSSI?(1)一般在蓝牙厂商SDK中会在定义的上报帧结构中定义一个RSSI的参数(蓝牙规范有对部分上报事件的上报参数有要求),只需要访问对应寄存器即可。如下为Telink平台帧结构中的一种,其中就有RSSI,且825X系列芯片精度可做到+/-1dB的误差。
- typedef struct{
- u32 dma_len; //won't be a fixed number as previous, should adjust with the mouse package number
- u8 rf_len;
- u8 proto;
- u8 flow;
- u8 type;
- // u32 gid0; //pipe0 code, used as sync code for control pipe in hamster
- u8 rssi;
- u8 per;
- u8 seq_no;
- u8 rsvd;
- u32 did;
- }rf_packet_pairing_t;
复制代码
(2)当连接上设备之后,如果还想获得RSSI的话(RSSI在每次连接事件时都会发生变化的),就需要向数据链路层(LLC)发送查询RSSI请求,LLC就会启动接收功率积分电路(PHY层),当电路工作完成并准备好数据后再给上层一个完成事件,通过携带的参数即可获得RSSI。如下是Telink在BLE-LLC层自定义的函数。 - static inline void blc_ll_resetInfoRSSI(void)
- {
- bltParam.ll_recentAvgRSSI = 0;
- }
- static inline void blc_ll_recordRSSI(u8 rssi)
- {
- if(bltParam.ll_recentAvgRSSI == 0) {
- bltParam.ll_recentAvgRSSI = rssi;
- }
- else {
- bltParam.ll_recentAvgRSSI = (bltParam.ll_recentAvgRSSI + rssi) >> 1;
- }
- }
复制代码
5、[How]RSSI有什么应用?目前遇到的,大致有三个部分的应用较多:信号强度指示、自动控制发射功率、室内定位 (1)、信号强度指示。
应用场景:成品产测、功能调试等需要测试发射机发射功率的场景。 举例介绍:客户需要在完整的产品(比如蓝牙开关)中测试下发射功率,此时需要通过无线耦合测试方式(或者有线的传导方式)测试下蓝牙发射功率,需要在一定测试环境下,用相同接收机(比如Dongle)去测试不同蓝牙开关的广播信道功率。
优点:不需要破坏完整产品,快速,简单,效率高,可同时测试多个发射机;
缺点:耦合方式,测试精度不高,且易受到环境、距离等外界干扰; (2)、自动控制发射功率 应用场景:低功耗的设备 举例介绍:移动端的蓝牙设备,需要低功耗处理。A设备和B设备进行通信时,A设备接收机测试出B设备发射机的发射功率时,A设备可通知B设备降低或者提高发射功率,从而优化功耗和EMI。 优点:使发射机的发射功率在合适的范围,降低功耗和EMI; 缺点:设计较为复杂 (3)、室内定位 应用场景:室内定位 举例介绍:一个固定于A点发射机范围内,可以通过RSSI值计算出距离A点Xm范围的接收机的同心圆距离;两个固定于A、B两点发射机范围内,可以通过RSSI值计算出接收机“在二维空间中”两个对称的位置;三个固定于A、B、C三点发射机范围内,可以通过RSSI值计算出接收机“在二维空间中”唯一的位置区域;四个固定于不同平面的A、B、C、D四点发射机范围内,可以通过RSSI值计算出接收机“在三维空间中”唯一的位置。 优点:室内无线三维定位 缺点:定位为一个区域,定位精度主要由接收机测试出的RSSI值精度决定,而接收机测试RSSI的精度易受到环境、障碍物等影响;
|