BLE 基础知识点

阅读: 评论:0

BLE 基础知识点

BLE 基础知识点

目录

1.BLE设备的MAC地址分类

2. MAC地址分类详解

3. 扫码机制

4. 扫描参数

5. 关闭扫描


1.BLE设备的MAC地址分类

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

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

2. MAC地址分类详解

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

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

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

该地址是BLE协议新增的一种地址类型,该类型的设备地址不是固定分配的,而是设备启动后随机生成的。最高两位为“11”,剩下的46bit是一个随机数,不能全部为0或者1,。这46位随机数在一个上电周期内保持不变,下一次上电时可以改变,也可以保持不变。

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

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

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

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

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

当对端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) 被动扫描

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

2)主动扫描

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

4. 扫描参数

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

 

命令

操作码

命令参数

返回参数

HCI_LE_Set_Scan_Parameters

0x000B

LE_Scan_Type

Status

LE_Scan_Interval

LE_Scan_Window

Own_Address_Type

Scanning_Filter_Policy

  • LE_Scan_Type:设置扫描类型,1B

参数值

功能描述

0x00

被动扫描,不发送PDUs(默认)

0x01

主动扫描。可以发送PDUs

0x02-0xFF

预留值

  • 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。

参数值

功能描述

0x00

接受所有广播,除了定向广播不发送到这个设备,默认

0x01

只接受来自广播客户地址在白名单中的设备广播包。

0x02

接受所有广播,除了定向广播包,其中发起者的身份地址不针对这个设备。

0x03

接受所有广播

0x04-0xFF

预留值

5. 关闭扫描

  • 主函数不需要关闭主机扫描,但是有几处关闭扫描的位置:
  • 在开始设置扫描参数的nrf_ble_scan_default_param_set()里,会先调用nrf_ble_scan_stop()关闭之前的扫描。
  • 在启动主机扫描函数nrf_ble_scan_start()里,调用协议栈开始扫描之前会调用nrf_ble_scan_stop()关闭之前的扫描。
  • 在扫描完成后,主机发起连接时,连接从设备的函数中回调nrf_ble_scan_stop()关闭扫描。
  • 在扫描参数timeout扫描超时时,超过指定时间后,没有扫描到设备将自动停止扫描。

本文发布于:2024-01-28 09:20:54,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064048566401.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:知识点   基础   BLE
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23