BLE(低功耗蓝牙)学习笔记(2)RPA和Static Random Address
1 概述
蓝牙地址有三层四种,主要使用public address、static random address和resolvable private address这三种,本文主要介绍后两种的区别(均可以软件配置),各地址的关系图如下:
2 Static Random Address
2.1地址结构
上图中Random part of address中至少有一位为0,至少有一位为1即可;此外,MSB端是11开头。
2.2用途及现象
在一个生命周期(比如一个遥控器设备,一次烧录程序到下次烧录程序)内,地址是不变的,不随着重启、配对、回连以及上下电改变;下图是用手机nRF抓到的地址:
下图是使用蓝牙分析仪抓到的空中包,可以看到地址类型为Static:
可以看到,地址(slave)的开头两位是11(F:1111;C:1100)。
当两个设备配对后,第二次连接时不希望解析或者重新识别地址,则可以使用static random address,有一定的安全性,也较为方便。
3 RPA
3.1 地址结构
上图中Random part of address中至少有一位为0,至少有一位为1即可;此外,MSB端是01开头。
3.2 用途及现象
可以在软件中设置resolved timeout(RPA额外涉及的一个概念),超出时间后的蓝牙事件,有时候会使slave端更新地址。
下图是蓝牙分析仪抓到的空中包,地址类型是Resolvable:
通常安卓版本较高的手机是支持RPA的,测试时可以与手机配对连接,支持RPA的设备在通信时会更加安全。