经典蓝牙(BR/EDR)的连接过程分析

一、物理链路

同步链路(SCO): 主要用来传输对实时性要求很高的数据,比如蓝牙通话

  1. 我们可以将sco比喻为tcp/ip的udp传输模式,他的数据传输具有实时性
  2. sco可在不被选中的情况下发送sco数据包
  3. 当数据发生错误时,不提供错误重传机制

异步链路(ACL): 主要用于传输对实时性要求不是很高的场景,比如听歌,所以a2dp就是使用的是acl的传输方

  1. 可以将acl比喻为tcp/ip的tcp传输,主要运用于对数据的实时性要求不是很高的场景
  2. 当数据发生错乱时候,会发生重传机制

注意:只有在ACL链接已经建立之后,才可以建立SCO 链接

二、ACL连接过程概述

ACL链接流程图:
在这里插入图片描述
ACL链接步骤(深色的为必须,浅色的为可选):
在这里插入图片描述

三、异步连接(ACL)连接过程步骤详解

1、
设备A通过HCI对Link Management发出HCI_Create_Connection命令,然后链接管理器LM会通过HCI返回当前的链接状态,然后LM开启呼叫设备B的操作。
在这里插入图片描述
2、
在这里插入图片描述
3、
A设备的LM发出LMP_Host_Connection_req到B设备的LM,然后LM通过HCI把这个来自A设备的连接请求发给B设备的Host层。
在这里插入图片描述
4、
在上面第三步操作以后,B设备会接收到来自A设备的连接请求,然后B设备会根据自身情况来作出对应的操作,一般有以下的三种操作:拒绝连接接受连接接受连接但是B设备修改为Master

  1. 拒绝连接:
    在这里插入图片描述
  2. 接受连接:
    在这里插入图片描述
  3. 接受连接但是B设备修改为Master
    在这里插入图片描述
    5、
    AFH(Adaptive Frequency Hopping)。AFH 的实现过程为设备识别、信道分类、分类信息交换、自适应跳频。
    LMP(Link Manager Protocol):链路管理协议。
    这一步主要是根据设备自身情况来设置跳频自适应和信道分类等功能,如果设备不支持或者不定义这些功能,那么这一步可以跳过。
    在这里插入图片描述
    6、
    这一步主要是设置鉴权功能,LM将向Host请求Link key。如果设备不支持或不定义这个鉴权功能,那么可以通过这一步。
    在这里插入图片描述
    7、
    在第三步发出连接请求以后,如果master设备和要连接的slave设备没有相同的link key,那么就需要配对,就是master和slave设备双方输入PIN码,然后把这个PIN码作为这次连接过程的link key,并储存好这个link key以作下次连接时使用,蓝牙的鉴权是基于link key的。
    在这里插入图片描述
    如果master和slave设备具有共同的link key,那么他们就不需要进行配对而是直接进行link key鉴权。
    在这里插入图片描述
    8、
    如果上面的配对过程或鉴权成功了,就开始到数据加密过程 。下面这个图片只是显示了加密的点对点连接的设置流程。
    在这里插入图片描述
    9、
    当上面那些设置流程走完以后,就要通知对方连接配置完成了,master设备的LM会发送LMP_setup_complete PDU给slave设备的LM,slave的LM产生应答,然后双方的LM再通过HCI分别通知双方的Host。
    在这里插入图片描述10、
    如果断开连接,Host会通过HCI主动告诉LM,然后LM再通过LMP PDU来通知slave设备的LM,最后通知slave设备的Host。这个断连是单方面发起的,不需要slave设备的LM的应答,但是需要利用基带传输的ARQ机制(自动重传机制)来确认slave设备的LM是否收到了LMP_detach命令。
    在这里插入图片描述

四、同步连接(SCO/eSCO)连接过程步骤详解

1、
master设备请求EV3、EV4、EV5同步连接
在这里插入图片描述
slave设备请求同步EV3、EV4、EV5同步连接
在这里插入图片描述
master设备请求同步连接,通过使用sco
在这里插入图片描述
master设备请求与老式设备进行sco同步连接
在这里插入图片描述
任何仅支持sco同步连接的设备请求与某个设备进行同步连接
在这里插入图片描述
2、
对于SCO而言,是不会进行重传的。所以对于只支持sco的耳机来说,我们可能会发现在较远距离的通话过程中就会产生杂音,这是无法避免的,这也是esco存在的原因,esco是支持重传的。
下面是master设备重新协商esco连接,即如果已存在的同步连接如果不是esco,修改当前已存在的同步连接为esco
在这里插入图片描述
slave设备重新协商esco连接
在这里插入图片描述
esco断连
在这里插入图片描述
sco断连
在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值