当前位置:网站首页 > 编程语言 > 正文

蓝牙的地址是什么(蓝牙地址是什么意思)



目录

1.BLE设备的MAC地址分类

2. MAC地址分类详解

3. 扫码机制

4. 扫描参数

5. 关闭扫描


1.BLE设备的MAC地址分类

BLE全称:Bluetooth Low Energy,低功耗蓝牙。

MAC全称:Media Access Control,设备的媒体存取控制地址,分类

rk3568 android11 获取蓝牙模块mac地址 蓝牙的mac地址是什么意思_随机数

2. MAC地址分类详解

Public Device Address(公共设备地址):

该MAC地址是唯一的,48bit需要向IEE申请购买,高24bit是公司标识,由IEEE分配,低24bit由公司内部自行定义。

rk3568 android11 获取蓝牙模块mac地址 蓝牙的mac地址是什么意思_4s_02

Random Device Address(随机设备地址):

rk3568 android11 获取蓝牙模块mac地址 蓝牙的mac地址是什么意思_4s_03

Private Device Address(私有设备地址):

通过定时更新和地址加密两种方式,提高蓝牙地址的可靠性和安全性。根据地址是否加密分为Non_Resolvable Private Address和Resolvable Private Address。

1)Non_Resolvable Private Address:该地址不加密,不需要解析,会定时更新。相对安全,手机的蓝牙MAC地址一般属于这类。

rk3568 android11 获取蓝牙模块mac地址 蓝牙的mac地址是什么意思_4s_04

2)Resolvable Private Address:该地址加密,需要解析,会定时更新。该类型的地址不能单独使用,需要和Public Device Address或者Static Device Address结合使用。

通过一个随机数和一个称为Identify Resolving Key(IRK)的密码生成地址,对地址进行加密。因此只能被具有相同IRK的设备扫描到,可以避免被未知设备扫描和追踪。低24位是随机数和IRK经过hash运算得到的hash值。

rk3568 android11 获取蓝牙模块mac地址 蓝牙的mac地址是什么意思_随机数_05

当对端BLE设备扫描到该类型的蓝牙地址后,会使用保存在本地的IRK和该地址中的Prand进行相同的hash运算,并将运算结果和地址中的hash字段比较,如果相同才进行后续操作,这个过程称为resolve(解析)。如果不同则继续使用下一个IRK重复上述过程,直至找到一个关键的IRK或者一个也找不到。

3. 扫码机制

扫描是主机设备在一定范围内寻址其他低功耗蓝牙设备广播的过程。扫描设备在扫描过程中活使用广播信道。

在BT 4.2协议中,广播包大小为31B,如果主机采用主动扫描,还有一个31B的广播回包,最多可实现63个字节的空间。BT5.0中,把广播信道抽象为两种,一种是主广播信道,类似于蓝牙4.x的广播,只在37,38,39三个信道工作,最大广播广播包大小为31个字节。另一种叫次广播信道,或者第二广播信道,允许在三个通道外的其他37个信道上发送长度在255B之内的数据。

1) 被动扫描

扫描设备仅仅监听广播,不向广播设备发送任何数据。 注意:被动扫描不会向从设备发送任何数据。

rk3568 android11 获取蓝牙模块mac地址 蓝牙的mac地址是什么意思_4s_06

2)主动扫描

主动扫描可以捕获到对端设备的广播数据包,还可以捕获到响应包,并区分这两种包。主机会给从设备发送一个扫描请求,从设备返回一个扫描响应包,同样也产生一个包含扫描响应数据的Adv_Report事件给主机。

rk3568 android11 获取蓝牙模块mac地址 蓝牙的mac地址是什么意思_数据_07

4. 扫描参数

在执行扫描之前会先设置扫描参数,接着进行扫描初始化,调用nrf_ble_scan_start()启动主机扫描。LE扫描参数如下:

  • LE_Scan_Type:设置扫描类型,1B
  • LE_Scan_Interval:扫描的时间间隔,2B,是指从控制器开始最后一次LE扫描到后续LE扫描的时间间隔。默认10ms,时间范围为:2.5ms ~ 10.24s。
  • LE_Scan_Window:扫描的持续时间,2B,默认10ms,时间范围2.5ms ~ 10.24s。
  • Own_Address_Type:表示主机扫描解析地址,1B。
  • Scanning_Filter_Policy:表示主机扫描过滤策略,1B。

5. 关闭扫描

  • 主函数不需要关闭主机扫描,但是有几处关闭扫描的位置:
  • 在开始设置扫描参数的nrf_ble_scan_default_param_set()里,会先调用nrf_ble_scan_stop()关闭之前的扫描。
  • 在启动主机扫描函数nrf_ble_scan_start()里,调用协议栈开始扫描之前会调用nrf_ble_scan_stop()关闭之前的扫描。
  • 在扫描完成后,主机发起连接时,连接从设备的函数中回调nrf_ble_scan_stop()关闭扫描。
  • 在扫描参数timeout扫描超时时,超过指定时间后,没有扫描到设备将自动停止扫描。
到此这篇蓝牙的地址是什么(蓝牙地址是什么意思)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 反编译ex4文件(exe4j 反编译)2025-03-18 10:09:08
  • impdp导入命令跳过建表(impdp导入语句)2025-03-18 10:09:08
  • 制作自己的网页代码(制作网页的代码列示)2025-03-18 10:09:08
  • max3082中文资料(max3078)2025-03-18 10:09:08
  • 发送验证码显示发送失败(发送验证码显示发送失败怎么办)2025-03-18 10:09:08
  • 拆包装的英语(拆包装的英语怎么说)2025-03-18 10:09:08
  • 柯美c7000代码2453(柯美c7000代码2421怎么解决)2025-03-18 10:09:08
  • 程序员的入门(程序员的入门岗位)2025-03-18 10:09:08
  • 打印机打印控件(打印机打印控件怎么设置)2025-03-18 10:09:08
  • vs如何显示行号(vs2013如何显示行号)2025-03-18 10:09:08
  • 全屏图片