0%

【蓝牙】经典蓝牙和TWS的连接原理

前言

本文内容摘抄自前人笔记,暂略

蓝牙状态

经典蓝牙的基本状态如下:

  • Page寻呼:主动对其它蓝牙设备发起连接
  • Page Scan:可被其它蓝牙设备发起连接。(当设备处于Page Scan状态时,才能被发起Page的蓝牙设备连接)
  • Inquiry扫描:主动搜索和发现周围的蓝牙设备。(通常由手机发起)
  • Inquiry Scan:可被其它蓝牙设备搜索与发起连接。(当设备处于Inquiry Scan状态时,才能被发起Inquiry的蓝牙设备搜索)
  • standby:蓝牙设备默认状态,此模式下设备处于低功耗状态

经典蓝牙不讲述广播概念,其广播过程可以理解为设备通过 Inquiry 和 Inquiry Scan 状态进行发现和建立连接的过程。

蓝牙连接

首次配对流程:

  • 由手机发起Inquiry,搜索周围的蓝牙设备
  • 蓝牙设备要处于Inquiry Scan状态,才能被手机搜索与发起连接

配对完成:手机和耳机都会记录配对信息,配对信息中包含对方的蓝牙地址

关键词Link Key:Link Key 通常是在两个设备首次配对时生成的,用于身份验证和加密通信,便于后续回连

回连流程

即 Page 和 Pagescan

  • 手机发起Page,设备处于Pagescan状态,即为手机回连设备
  • 设备发起Page,手机处于Pagescan状态,即为设备回连手机
1
2
3
4
5
通常,手机蓝牙打开后,本身即在Inquiryscan、Pagescan状态来回切换

首次打开手机蓝牙时,手机会尝试去 Page 记忆的设备

用户刷新蓝牙搜索时,相当于操作手机轮询去 Inquiry 蓝牙设备

能够实现回连的前提下,是设备、手机双方都保存有Link Key

如果有任何一方取消配对或者清除配对记录,则无法回连,需要重新 Inquiry

TWS连接

inquiry inquiry scan
page
page scan

通常手机才会去 inquiry 扫描周围的设备

TWS配对时,两个设备分别在page和page scan来回切换,当有一个处于page,一个处于page scan时,则可以建立连接

TWS配对慢时,可能是因为状态切换周期过长,没卡上时间

TWS之使用公共地址

配置使用公共地址,核心是强配对状态,特点有如下:

  • 可进行任意的主从角色切换,用于 主机设备关机、主机信号不好、主机电量相对较低等情况

主从切换

TWS之不使用公共地址

主从角色、手机介入

思考与拓展

杰理SDK之蓝牙连接相关代码

c表示page,设备主动进行TWS Page
cp表示tws状态回来切换配对中;小p表示设备处于tws_page_scan
I表示可搜索可发现连接
大P表示可被手机回连,即 page scan
C表示设备主动Page手机

Link Key 通常是在两个设备首次配对时生成的,并且在后续的连接中用于快速建立信任关系

作用:身份验证、加密通信

TWS的MAC地址,使用公共地址和不使用公共地址的区别

local bt_addr common remote

参考站点