乐鑫ESP32-C3 BLE教程
公共基础篇(理论)
红旭无线相关源码的约定俗称
基于VSCODE的ESP32C3开发环境的搭建
基于JTAG对ESP32-C3的调试及下载
初识ESP32-C3
ESP32-C3启动流程详解
第一课:Hello World
基于Docker+WSL+VSCODE的ESP32-C3开发环境搭建
BLE
基础篇(理论)
BLE基础知识
BLE的不同地址类型
不同类型的BLE广播事件浅析
BLE扫描的基本概念
广播篇(实战)
可连接可扫描的非定向广播
基于隐私的可连接可扫描的非定向广播
不可连接不可扫描的非定向广播
不可连接不可扫描的定向广播(扩展广播)
不可连接可扫描非定向广播
不可连接可扫描的定向广播(扩展广播)
可连接不可扫描的非定向广播(扩展广播)
不可连接不可扫描的非定向广播(链式广播)
低占空比的可连接不可扫描定向广播
高占空比的可连接不可扫描定向广播
BLE 5.0新特性---广播集(Advertising Set)
BLE 5.0新特性---周期广播(Periodic Advertising)
不可连接不可扫描的非向定匿名扩展广播
不可连接不可扫描的非向定匿名链式广播
不可连接不可扫描的链式周期广播
扫描篇(实战)
扫描非定向广播
扫描非定向广播(基于白名单)
扫描非定向广播(基于隐私)
扫描非定向的扩展广播
扫描定向的扩展广播
扫描可连接定向扩展广播
扫描不可连接不可扫描的链式广播(1650字节)
扫描不可连接不可扫描的匿名扩展/链式广播
扫描周期广播
如无权限阅读,请联系微信:17625815328
-
+
首页
BLE的不同地址类型
# 前言 在BLE领域中,地址是每个BLE设备不可或缺的重要组成部分,其就类似于我们日常的住宅地址,通过这个地址就可以找到并识别到这个BLE设备,否则周边这么多BLE设备就全乱套了;那么,BLE的地址又分为哪几种呢? <img src=https://docdisk.wireless-tech.cn/img/2021/10/19/ble-different-addressesdrawio_20211019225214846149.png width = "" height = "" alt="" align=center /> # 公共地址(Public Address) BLE的公共地址,就类似于我们日常的身份证号码,是全球唯一的且不可改变的,不同的是: 1. 为了保证BLE公共地址的全球唯一性,其需要向[IEEE](https://standards.ieee.org/products-services/regauth/index.html)购买,然后IEEE组织就会对应地分配公共地址给买家; 1. 如果想要查询某BLE设备的公共地址是哪个厂商的,则可以点此[链接](https://regauth.standards.ieee.org/standards-ra-web/pub/view.html#registries)查询,如ESP32-C3的每个芯片都自带有一个公共地址: <img src=https://docdisk.wireless-tech.cn/img/2021/10/19/public_address_espressif_20211019225239877291.png width = "" height = "" alt="" align=center /> <img src=https://docdisk.wireless-tech.cn/img/2021/10/19/public_address_espressif_ieee_20211019225257760619.png width = "" height = "" alt="" align=center /> 1. 其是全球唯一的且在BLE设备的整个生命周期,都不会改变; 1. 总长度为6个字节,其组成结构如下图所示: <img src=https://docdisk.wireless-tech.cn/img/2021/10/19/Public-Address-Format_20211019225316261985.png width = "" height = "" alt="" align=center /> - Company ID:IEEE分配的(最高有效位) - Company Assigned:公司内部分配的(最低有效位) # 随机地址(Random Address) 除了公共地址类型之外,还有一个随机地址类型,其又分为**静态地址(Static Address)**和**私有地址(Private Address)**,它们之间主要通过最高的2位有效位来区分,具体如下所示: ## 静态地址(Static Address) 同样,其总长度也是48bits,但是最高的2位有效位是`0b11`,组成结构如下图所示: <img src=https://docdisk.wireless-tech.cn/img/2021/10/19/static-address-formatdrawio_20211019225339424241.png width = "" height = "" alt="" align=center /> 该地址类型的主要特点如下: 1. 静态地址的随机部分至少有一个bit是0和1; 1. 用户在满足上述条件的情况下,可以自行配置BLE设备的静态地址; 1. 静态地址在上电之后,不可中途改变; 1. 只能在重新上电之后,才能改变静态地址的内容 **(非强制性,也可以不改变)**; 1. 如果BLE设备的静态地址改变了,那么如果对端设备存放了之前的静态地址,这就会导致重连旧的地址时失败; ## 私有地址(Private Address) BLE的私有地址又分为**不可解析私有地址(Non-resolvable private address)** 和 **可解析私有地址(Resolvable private address)**,它们之间的主要区别如下: ### 可解析私有地址(Resolvable private address) 该类型的地址的长度大小同样为48bits,最高的2位有效位是`0b10`,其组成结构如下图所示: <img src=https://docdisk.wireless-tech.cn/img/2021/10/19/resolvable-private-addressdrawio_20211019225415274851.png width = "" height = "" alt="" align=center /> 该类型的地址所对应的特点如下: 1. 上图中显示的随机部分的内容至少有一个bit是0和1; 1. 该地址会周期性变化;Spec推荐15分钟更新一次,但不要超过1小时 其中,`hash = ah(IRK, prand)`,prand则是设备本地随机产生的24bits数据,而IRK可以是在设备本地随机产生或者在设备生产时分配。 ### 不可解析私有地址(Non-resolvable private address) 顾名思义,就是说该私有地址不可以被解析,其组成结构如下图所示: <img src=https://docdisk.wireless-tech.cn/img/2021/10/19/non-resolvable-private-address-formatdrawio_20211019225452704912.png width = "" height = "" alt="" align=center /> 同样,其总长度为48bits,但是最高的2位有效位是`0b00`,其对应的特点如下: 1. 随机部分的内容至少有一个bit是0和1; 1. 不可解析私有地址不能与公共地址相同; 1. 该地址会周期性变化;Spec推荐15分钟更新一次,但不要超过1小时 # 总结 介绍完上述的不同类型的地址之后,我相信更多的人想知道如何使用这些类型的地址,或者说在什么场景下使用这些类型的地址。 ## 公共地址(Public Address) 该类型的地址是全球唯一且固定的,理论上重复的概率基本为0,因为它们是由[IEEE组织](https://standards.ieee.org/products-services/regauth/index.html)分配给买家的,适用于为保证BLE设备地址的唯一性,方便其他人辩别。 ## 静态地址(Static Address) 说句不好听的,该类型的地址就是方便各BLE设备生产商白嫖,因为这种类型的地址是免费的,不需要向IEEE组织购买,同时在一定范围内还能保证地址的唯一性,简而言之就是**免费+有限的唯一性=真香!** ## 可解析私有地址(Resolvable private address) 可解析私有地址的目的是防止恶意第三方跟踪蓝牙设备,同时仍允许一个或多个受信任方识别感兴趣的BLE设备。而可解析的意思就是说: > BLE设备自身产生的IRK与受信任方分享之后,当受信任方的BLE设备接收到可解析私有地址,就会提取出`prand`值再与对端设备分享的`IRK`,进行**ah**计算得出一个`localHash`值,与可解析私有地址中的`hash`值进行比对,如果匹配上了那么对等设备的身份就已经解析。 ## 不可解析私有地址(Non-resolvable private address) 相较于可解析私有地址,该类型的地址是不可解析的,所以这种类型的地址不太常用,但是有时会在一些Beacon的应用上使用。此类地址的唯一目的是防止任何其他 BLE 设备进行跟踪。 **最后,BLE设备的地址必须是公共地址或者静态地址,而不可解析和可解析地址是可选的。换句话说,即使使用了不可解析或者可解析地址,BLE设备还必须仍然存在公共地址或者静态地址,也就是此时BLE设备有两种类型的地址,因为不可解析和可解析地址仅用于解决隐私问题。**
红旭无线
2022年2月9日 16:34
3605
6 条评论
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
欢迎关注红旭无线官方微信公众号
Markdown文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期