二、BLE扫描、连接详解

1、扫描介绍

扫描是蓝牙设备的一种工作模式,它允许设备主动或被动地搜索并识别其他蓝牙设备。在扫描过程中,设备会监听蓝牙广播通道,接收并解析来自其他设备的广播数据包,从而获取设备信息,如设备名称、MAC地址、服务UUID等。

蓝牙的UUID(Universally Unique Identifier,通用唯一标识符)是一串用于唯一标识蓝牙设备中的服务或特征的128位长的数字标识符。它通常以16进制数的形式表示,并且遵循特定的格式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,其中每个x代表一个16进制数字。

1.1 扫描类型

蓝牙扫描通常分为以下两种类型:

  1. 主动扫描:由扫描设备主动发起,它发送扫描请求并等待广播设备的应答。这种方式可以获取更详细的设备信息。
  2. 被动扫描:扫描设备仅监听广播通道,不发送扫描请求。它只能接收到广播设备发送的广播数据包,无法获取额外的扫描应答信息。

1.2 扫描术语解释

扫描窗口(Scan Window):是指BLE设备在扫描过程中,打开接收器去监听广播设备的时间段。这个时间段是设备实际进行扫描操作的时间,也称为扫描事件的持续时间。扫描窗口的单位通常是625微秒(μs),并且它的值必须小于或等于扫描间隔。

扫描间隔(Scan Interval):是指两个连续的扫描窗口开始时间之间的时间差。它包括了设备在两次扫描之间休息的时间和进行扫描的时间。扫描间隔的单位与扫描窗口相同,也是625微秒(μs)。

注:如果扫描窗口与扫描间隔一样长,表明主机一直在扫描。

1.3 扫描交互图如下:

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

2、连接介绍

在BLE连接中,采用了先进的跳频方案,使得两个设备能够在预设的特定时间和频道上精确地进行数据的发送与接收。随后,这些设备会在链路层的精心调度下,切换到新的通信频道,并在约定的时间点再次相遇,这一过程被形象地称为“连接事件”。若当前没有应用层面的数据需要传输,它们则会交换链路层数据,以确保连接的持续稳定。值得注意的是,两个相邻的连接事件之间的时间距离,我们称之为“连接间隔”,其时间单位精确到1.25毫秒,范围灵活可调,最小可达7.5毫秒,最长则可延伸至4.0秒。

2.1 连接流程:

  1. 发送连接请求:主设备向从设备发送连接请求,其中包含连接参数,如连接间隔、从设备延迟、超时时间等。
  2. 从设备响应
    • 从设备接收到连接请求后,会根据请求中的参数进行响应。
    • 如果参数合适,从设备会接受连接请求,并与主设备建立连接。
  3. 连接建立
    • 一旦连接建立成功,主从设备之间就可以开始进行数据传输。
    • 连接建立后,主设备会负责控制和管理连接,包括调整连接参数、处理数据传输等。

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、安装使用等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值