1、扫描介绍
蓝牙的UUID(Universally Unique Identifier,通用唯一标识符)是一串用于唯一标识蓝牙设备中的服务或特征的128位长的数字标识符。它通常以16进制数的形式表示,并且遵循特定的格式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,其中每个x代表一个16进制数字。
1.1 扫描类型
蓝牙扫描通常分为以下两种类型:
- 主动扫描:由扫描设备主动发起,它发送扫描请求并等待广播设备的应答。这种方式可以获取更详细的设备信息。
- 被动扫描:扫描设备仅监听广播通道,不发送扫描请求。它只能接收到广播设备发送的广播数据包,无法获取额外的扫描应答信息。
1.2 扫描术语解释
扫描窗口(Scan Window):是指BLE设备在扫描过程中,打开接收器去监听广播设备的时间段。这个时间段是设备实际进行扫描操作的时间,也称为扫描事件的持续时间。扫描窗口的单位通常是625微秒(μs),并且它的值必须小于或等于扫描间隔。
扫描间隔(Scan Interval):是指两个连续的扫描窗口开始时间之间的时间差。它包括了设备在两次扫描之间休息的时间和进行扫描的时间。扫描间隔的单位与扫描窗口相同,也是625微秒(μs)。
注:如果扫描窗口与扫描间隔一样长,表明主机一直在扫描。

1.3 扫描交互图如下:

- 蓝牙广播:蓝牙设备定期发送广播数据包,包含设备的基本信息和可用的服务。这些数据包通过蓝牙广播通道传输。
- 扫描请求:当另一个蓝牙设备处于扫描模式时,它会监听广播通道并发送扫描请求给广播设备。
- 扫描应答:广播设备在接收到扫描请求后,会回复扫描应答数据包,包含更详细的设备信息和服务信息。
2、连接介绍
2.1 连接流程:

- 发送连接请求:主设备向从设备发送连接请求,其中包含连接参数,如连接间隔、从设备延迟、超时时间等。
- 从设备响应:
- 从设备接收到连接请求后,会根据请求中的参数进行响应。
- 如果参数合适,从设备会接受连接请求,并与主设备建立连接。
- 连接建立:
- 一旦连接建立成功,主从设备之间就可以开始进行数据传输。
- 连接建立后,主设备会负责控制和管理连接,包括调整连接参数、处理数据传输等。
2.2 连接术语简介:
连接间隔(Connection Interval):连接间隔是指两个连续的连接事件之间的时间跨度。在BLE中,连接事件是主设备和从设备之间相互发送数据包的过程。
作用:
-
功耗控制:较大的连接间隔可以降低设备的功耗,因为设备在更长的时间间隔内不需要进行数据传输或接收。然而,这可能会影响数据实时性。
-
数据实时性:较小的连接间隔可以提高数据传输的实时性,因为设备更频繁地进行数据传输和接收。但相应地,这会增加设备的功耗。
范围:连接间隔通常以1.25毫秒为单位进行设置,范围从最小值7.5毫秒(即6个单位)到最大值4秒(即3200个单位)。
从设备延迟(Slave Latency):从设备延迟是指在连接建立后,从设备可以跳过多少个连接事件而不影响连接。换句话说,它决定了从设备在未发送数据的情况下,可以保持休眠状态的时间长度。
作用:
-
功耗降低:通过设置较高的从设备延迟,从设备可以在没有数据传输需求时保持休眠状态,从而降低功耗。
-
数据响应速度:较低的从设备延迟意味着从设备能够更快速地响应主设备的请求,提高数据传输的响应速度。但相应地,这也会增加功耗。
范围:从设备延迟的值可以从0(意味着不能跳过连接事件)到最大值(如499,具体最大值取决于BLE规范和设备实现)。需要注意的是,如果设置了较高的从设备延迟,有效连接间隔(即从设备实际参与连接事件的间隔)可能会变得很长,甚至超过BLE规范允许的最大值(如16秒)。
超时时间(Connection Timeout):超时时间是指在没有数据传输的情况下,连接双方等待对方发起数据传输的最长时间。如果在此时间内没有成功的数据传输事件,则连接可能会被视为断开。
作用:
-
连接稳定性:适当的超时时间设置可以确保连接的稳定性,防止因短暂的数据传输中断而导致连接断开。
-
资源释放:如果连接长时间没有数据传输,通过设置较短的超时时间,设备可以更快地释放连接资源,以便用于其他连接或任务。
范围:超时时间的值通常以10毫秒为单位进行设置,范围从最小值(如100毫秒)到最大值(如32秒或更长,具体取决于BLE规范和设备实现)。
目前文章均为开源,免费,希望大家多多转发和点赞收藏,您的关注就是我坚持的动力!
明天课程:BLE框架、SDK、CCS、安装使用等。