BLE中的设备地址

发布时间 2023-06-13 15:06:09作者: 不回本不改名

简介

设备地址,也叫MAC地址。在BLE中对设备地址分了很多类别,但实际使用的MAC地址只有有四种:

  • Public Device Address :公共设备地址
  • Static Device Address:静态设备地址
  • Non-resolvable Private Address:不可解析私有地址
  • Resolvable Private Address:可解析私有地址

Public Device Address-公共设备地址

特点为:

1、需要向IEEE购买,然后全球唯一。购买后可在官网IEEE Registration Authority: Assignments上查询对应厂商信息

2、全球唯一,在设备的整个生命周期都不会改变。

3、长度48bit,也就是6个byte。其中Company Assigned为公司内部分配,Company ID为公司向IEEE申请分配。

应用场景:

成本较高,随着蓝牙设备增多后ID也越来越不够用。除了少数高端产品,想不出还有谁会用。

Static Device Address-静态设备地址

特点为:

  1. 长度保持六个byte,其中最高两个bit固定为0b11,剩余的46bits是一个随机数,不能全为0,也不能全为1
  2. 在一个上电周期内保持不变,下一次上电的时候可以改变,但一般不变。如果变了,需要重新配对。

应用场景:

非常广泛的应用,成本低,而且大部分为确定一个地址后不会再改变。

Non-resolvable Private Address-不可解析私有地址

  1. 长度保持六个byte,其中最高两个bit固定为0b00,剩余的46bits是一个随机数,不能全为0,也不能全为1
  2. 周期性改变,Spec推荐15分钟更新一次,但不要超过1个小时。由于地址随机,无法追踪,无法保持连接,无法配对。

应用场景:

Beacon类会用,不连接,不配对。只靠广播来传递数据。

Resolvable Private Address-可解析私有地址

  1. 长度保持六个byte,高位24bits是随机数部分,记为prand,其中最高两个Bit为0b10,用于标识地址类型

  2. 低位24bits是随机数和IRK经过hash运算得到的hash值,运算的公式为hash=f(IRK,prand)

    IRK为设备经过配对绑定后得到的hash密钥。主从设备断连后,主机可以通过这扫描到的设备地址中的prand使用IRK进行哈希运算。然后确认哈希结果是否与设备地址中的hash值匹配,由此来是否为配对绑定过的设备。

  3. 周期性改变,Spec推荐15分钟更新一次,但不要超过1个小时。由于地址在配对绑定后可以解析,因此可以追踪,可以保持连接。

应用场景:

有安全要求的会用,比如苹果手表。一定要进行配对绑定。

总结

该文章为总结性笔记,更详细说明参考网上其他资料。