蓝牙架构(8)—— 3 数据传输架构(3.4 物理链路 & 3.5逻辑链路和逻辑传输 & 3.6 L2CAP 信道)

Vol 1架构和术语概述

Part A 3 数据传输架构

Agenda:

3.4 物理链路. 

3.4.1基础微微网和适应型微微网物理信道支持的BR/EDR链路. 

3.4.2 扫描物理信道支持的链路. 

3.4.3 LE物理信道支持的LE链路. 

3.4.4 AMP物理通道支持的链路. 

3.5逻辑链路和逻辑传输.

3.5.1 播送. 

3.5.2 调度和确认方案. 

3.5.3 数据种类. 

3.5.4 逻辑传输. 

3.6 L2CAP 信道. 

 

3.4 物理链路

物理链路代表Bluetooth 设备间的基带连接。物理链路总是正好与一个物理信道相关联(尽管物理信道可能支持多个物理链路)。在 Bluetooth 拓扑系统内,物理链路只是一个虚拟概念,在传输的数据包内并没有直接的表达形式。

访问码数据包字段及主Bluetooth 设备的时钟和地址可用于确定物理信道。但是,并没有直接标识物理链路的后续数据包部分。相反,物理链路可以通过与逻辑传输相关联来确定,因为每个逻辑传输只能在一个物理链路上接收

某些类型的物理链路拥有可以修改的属性。例如,链路的传输功率。其它类型的物理链路不具有此属性。对于具有可修改属性的物理链路,可以使用 LM 协议(BR/EDR)修改这些属性。由于 LM 协议受较高层(逻辑链路)支持,因此相应的物理链路可通过传输 LM 信令的逻辑链路发出的暗示来确定。

如果传输通过多个不同的物理链路播送,则应选择传输参数以适合所有物理链路。

3.4.1基础微微网和适应型微微网物理信道支持的BR/EDR链路

基础或适应型微微网物理信道支持活动或休眠的物理链路。经调整的微微网物理信道可以支持若干物理链路,包括活动,停放和无连接从属广播。 活动或休眠物理链路是主站和从站之间的点对点链路。无连接从属广播物理链路是主设备与零个或多个从设备之间的点对多点链路。当从设备在微微网中同步时,物理链路永远存在。

3.4.1.1活动物理链路

(212页)如果设备间存在默认ACL逻辑传输,则主设备和从设备间的物理链路为活动状态。活动的物理链路没有直接的身份标识,但可通过与默认ACL逻辑传输ID的一一对应关联关系来确定。

活动的物理链路在各个方向上都具有与之关联的无线电传输功率属性。从设备的传输总是通过活动的物理链路定向至主设备,并使用作为此链路属性的从设备到主设备方向上的传输功率。主设备的传输可能通过单个活动物理链路(至特定从设备)或多个物理链路(至微微网中的一组从设备)定向。在点对点传输时,主设备使用适用于涉及物理链路的适当传输功率。(在点对多点传输时,主设备使用适用于一组寻址到的设备的传输功率。)

活动的物理链路可以被置于保持或监听(Hold or Sniff)模式。这些模式可用于修改物理链路处于活动状态和可负载通信量的时间段。已定义了调度特性的逻辑传输将不受这些模式的影响,根据其预定义的调度行为继续。

默认的 ACL 逻辑传输及其它未定义调度特征的链路将跟从活动的物理链路模式。

3.4.1.2休眠的物理链路

如果从设备仍保持与微微网同步,但没有默认的 ACL 逻辑传输,则主设备和从设备间的物理链路将处于休眠状态。此类从设备也被视为休眠。信标列(beacon train可用于为所有连接至微微网物理信道的休眠从设备提供定期同步。休眠从设备广播(parked slave broadcast,PSB)逻辑传输可用于支持 LMP 信令子集通信并向休眠从设备播送 L2CAP。PSB 逻辑传输与信标列密切相关。

从设备使用休眠步骤进入休眠状态(其活动链路将变为休眠链路)。主设备不可以休眠拥有受物理链路支持的用户创建逻辑传输的从设备。这些逻辑传输将首先被删除,任何在这些逻辑传输上建立的L2CAP 信道也将被删除。广播逻辑传输和默认 ACL 逻辑传输不被视为用户创建类型,因此不会被显式删除。当活动链路被休眠链路替代后,默认的 ACL 逻辑传输将被隐式删除。受支持的逻辑链路和 L2CAP 信道仍会存在,但将变为挂起状态。缺少活动链路时,不可能使用这些链路和 L2CAP 信道传输信令或数据。

(213页)休眠的从设备可以使用唤醒步骤激活。此步骤由从设备在访问窗口中请求,并通过主设备启动。完成唤醒步骤后,休眠物理链路将变为活动物理链路,默认 ACL 逻辑传输也将得到重建。在最近一次休眠过程中挂起的 L2CAP 信道将被关联至新的默认 ACL 逻辑传输,并再次激活。

休眠链路不支持无线电功率控制,因为没有从休眠从设备到微微网主设备的反馈路径,也就无法就从设备处收到的信号强度发出信令,主设备也无法测量来自从设备的信号强度。传输将以休眠链路上的额定功率进行。

休眠链路使用与所关联活动链路相同的物理信道。如果主设备管理着包括使用基础微微网物理信道和使用适应型微微网物理信道的休眠从设备的微微网,则它必须为这些物理信道中的每一个创建一个休眠从设备广播逻辑传输(及关联传输)。

休眠从设备可以利用休眠从设备广播逻辑传输的非活动期来节省功率,或在与其休眠所在微微网不相关的其它物理信道上展开活动。

3.4.1.3无连接从属广播物理链路

当从属设备在存在CSB逻辑传输的微微网中同步时,从属设备上存在无连接从属广播物理链路。 在主设备上,当存在CSB逻辑传输时,无论是否有任何从设备同步,都存在无连接从设备广播物理链路。无连接从属广播物理链路是主设备与零个或多个从设备之间的点对多点单向链路

无连接从属广播物理链路不支持电源控制,因为没有从从站到主站的反馈。 流量始终从单个主站指向零个或多个从站。

无连接从属广播包定期发送。BR/EDR控制器选择主机请求的范围内的间隔。

3.4.2 扫描物理信道支持的链路

(214页)在查询扫描和寻呼扫描信道中,物理链路存在的时间相当短,故无法以任何方式进行控制或修改。对于这些类型的物理链路,将不再作深入描述。

3.4.3 LE物理信道支持的LE链路

  • LE微微网物理信道支持LE活动物理链路。物理链路是主站和从站之间的点对点链路。当从站与主站连接时,它始终存在。
  • LE广播物理信道支持LE广播物理链路。物理链路是广播设备设备与一个或多个扫描器或发起者设备之间的广播。 当广播设备正在广播事件时,它总是存在。

3.4.3.1活动物理链路

如果设备之间存在默认的LE ACL逻辑传输,则主设备和从设备之间的物理链路处于活动状态。活动物理链路由链路层数据包中使用的随机生成的访问地址标识。每个访问地址与活动物理链路的主设备和从设备具有一对一的关系。

3.4.3.2广播物理链接

出于形成连接(活动物理链路)的目的,广播设备和发起设备之间的广播物理链路可以存在相对短的时间段。不能以任何方式控制或修改这些广播物理链路,并且不再进一步阐述这些类型的物理链路。

广播设备和用于定期广播用户数据的扫描设备之间的广播物理链路可以存在更长的时间段。没有关于协议内物理链路的标识信息。广播和扫描设备之间的关系应通过使用蓝牙设备地址建立。

3.4.4 AMP物理通道支持的链路

AMP物理链路始终与一个AMP物理信道相关联(尽管AMP物理信道可能支持多个AMP物理链路)。AMP物理链路是两个PAL之间的点对点链路。AMP物理链路的特性取决于底层的AMP技术。

3.5逻辑链路和逻辑传输

(215页)有多种逻辑链路可以支持不同应用数据传输要求。每个逻辑链路与一个具有多种特征的逻辑传输相关联。这些特征包括流控制、确认/重复机制、序列编号及调度行为。逻辑传输可以负载不同类型的逻辑链路(具体视逻辑传输的类型而定)。某些Bluetooth 1.1 版的逻辑链路将在同一逻辑传输上进行多路复用。逻辑传输可以负载于基础或适应型微微网物理信道上的活动物理链路上。

逻辑传输标识和实时(链路控制)信令可以负载于数据包头,对于某些逻辑链路,标识负载于净荷包头。不要求单时隙响应时间的控制信令使用 LMP 协议传送。

表3.1列出了所有逻辑传输类型,支持的逻辑链路类型,物理链路和物理信道可以支持哪种类型,以及逻辑传输目的的简要说明。

逻辑运输

支持的链路

支持者

承载

概述

异步面向连接(ACL)

控制 (LMP) ACL-C

用户(L2CAP) ACL-U

活动物理链路,基础或适应型物理信道

BR/EDR, AMP

可靠或受时间限制,双向,点对点。

同步面向连接(SCO)

流(非帧化)SCO-S

活动物理链路,基础或适应型物理信道

BR/EDR

双向,对称,点对点,AV 信道。适用于 64Kb/s 恒速数据。

扩展同步面向连接(eSCO)

流(非帧化)eSCO-S

活动物理链路,基础或适应型物理信道

BR/EDR

双向,对称或不对称,点对点,通用规则数据,受限重新传输。适用于与主Bluetooth 设备时钟同步的恒速数据。

(216页)活动从设备广播(ASB)

用户 (L2CAP) ASB-U

活动物理链路,基础或适应型物理信道

BR/EDR

不可靠,单向广播到与物理信道同步的任意设备。适用于广播L2CAP 组。

休眠从设备广播(PSB)

控制 (LMP) PSB- C,用户 (L2CAP) PSB-U

休眠物理链路,基础或适应型物理信道

BR/EDR

不可靠,单向广播至所有微微网设备。适用于至休眠设备的LMP 和 L2CAP 通信量,及从休眠设备发出的访问请求。

无连接从属广播(CSB)

协议广播数据(PBD)

无连接从属广播物理链路,BR/EDR适应微微网物理信道

BR/EDR

不可靠,单向,点对多点,定期传输到零或更多设备。

LE异步连接(LE ACL)

控制(LL)用户(L2CAP)LE-U

LE活动物理链路,LE微微网物理信道

LE

LE可靠或时间有限,双向,点对点。

LE广播(ADVB)

控制(LL)ADVB-C,用户(LL)ADVB-U

LE广播物理链接,LE微微网物理频道

LE

LE广播物理链接,LE微微网物理频道。

每种链接类型的分类遵循三个类别中的选择步骤。

3.5.1 播送

第一类为播送。可以是单播或广播。

  • 单播链路。单播链路存在于两个端点之间。在单播链路上,可以在任意一个方向上发送通信量。所有单播链路都是面向连接的,即在使用链路之前进行连接。如果是默认的 ACL 链路,则连接步骤是形成专用微微网的一般寻呼步骤中的一个隐式步骤。
  • 广播链路。广播链路存在于一个源设备和零个或更多接收设备之间。通信量为单向传送,即只从源设备发送至接收设备。广播链路无需连接,即不存在这些链路的创建步骤,而可以随时通过它们发送数据。广播链路并不可靠,无法保证数据能被接收到。

3.5.2 调度和确认方案

(217页)第二类与链路的调度和确认方案有关,暗指链路支持的通信类型。这些可以是同步、等时或异步链路。虽然可以将默认ACL链接配置为以这种方式运行,但没有定义特定的等时链接。

  • 同步链路。同步链路提供了将Bluetooth 微微网时钟与所传输数据相关联的方法。这可以通过在物理信道上保留定期时隙,并通过这些定期时隙传输固定大小的数据包来实现。此类链路适用于恒速的等时数据。
  • 异步链路。异步链路提供了传输不具备时间相关特征的数据的方法。通常,数据会多次传输直至成功接收,每个数据实体均可以在接收后于任意时间处理,而不必参考流中任何先前或后续实体的接收时间(假设数据实体顺序不变)。
  • 等时链路。等时链路提供了传输具备时间相关特征的数据的方法。数据可以多次传输,直至接收到或失效。此链路上的数据速率不必保持恒定(这是与同步链路的主要区别所在)(还是不太懂?)

3.5.3 数据种类

最后一类与链路负载的数据种类相关。数据分控制 (LMP) 数据和用户数据两种。用户数据类别又细分为 L2CAP(即帧化)数据和流(即未帧化)数据。

  • 控制链路。控制链路仅用于在两个链路管理器间传输 LMP消息。这些链路在基带层以上均不可见,除了通过连接或断开连接服务隐式达到效果外,应用过程要直接例示、配置或释放这些链路别无它法。控制链路总是与对等 L2CAP 链路在一个 ACL 逻辑传输上进行多路复用。依据定义ARQ 方案的规则,控制链路通信总是优先于 L2CAP 链路通信。
  • L2CAP 链路。L2CAP 链路可用于传输 L2CAP PDU,L2CAP PDU 可以负载 L2CAP 信令信道(位于默认的 ACL-U 逻辑链路上)或提交至用户例示 L2CAP 信道的帧化用户数据。提交至基带的 L2CAP 帧可能要比可用基带数据包稍大。如果帧以多段形式传送至接收方,则内嵌于 LLID字段的链路控制协议可以保持帧起始和帧延续的语义。
  • 流链路。流链路用于传输不具有在传送数据时应当保留的固有帧的用户数据。丢失的数据可以通过在接收方进行填充替代。

3.5.4 逻辑传输

3.5.4.1 BR/EDR异步连接(ACL)

(218页)异步面向连接 (ACL) 逻辑传输可用于负载 LMP 和 L2CAP 控制信令及尽力而为型 (best effort) 异步用户数据。ACL 逻辑传输使用简单的 1 比特 ARQN/SEQN 方案以提供简单的信道可靠性。微微网中的每个活动从设备都有一个连至微微网主设备的 ACL 逻辑传输,称为默认 ACL。

设备加入微微网时(连接至基础微微网物理信道),主设备和从设备间将创建默认 ACL。微微网主设备将为默认 ACL 分配一个逻辑传输地址 (LT_ADDR)。此 LT_ADDR 还可用于在需要时标识活动物理链路(或作为微微网活动成员标识符,用于相同目的)。

默认 ACL 的 LT_ADDR 将被重新用于相同主设备和从设备间的同步面向连接逻辑传输。(这是出于同早期Bluetooth 规格兼容的原因。)因此,LT_ADDR 自身并不足以标识默认的 ACL。但是,由于 ACL 上使用的数据包类型不同于同步面向连接逻辑传输上的数据包类型, 因此,可以通过数据包头中的 LT_ADDR 字段,并结合数据包类型字段来标识 ACL 逻辑传输。

通过将默认 ACL 配置为在数据包失效后自动清除数据包,可将其用于等时数据传输。

如果将默认 ACL 从活动物理链路中删除,则主设备和从设备间存在的所有其它逻辑传输也将被删除。如果至微微网物理信道的同步意外丢失,则物理链路及所有逻辑传输和逻辑链路将在检测到此同步丢失时消失。

设备可以删除其默认 ACL(通过其活动物理链路的暗示),但仍将保持与微微网同步。此过程称为休眠,与微微网同步但不存在活动物理链路的设备即在该微微网内处于休眠状态。

当设备过渡至休眠状态时,在默认 ACL 逻辑传输上传输的默认 ACL 逻辑链路仍保持存在,但是处于挂起状态。没有数据可以通过挂起的逻辑链路进行传输。当设备从休眠状态过渡回活动状态时,将会创建新的默认 ACL 逻辑传输(它的 LT_ADDR 可能与之前的不同),挂起的逻辑链路将被附加至此新的默认 ACL 并重新变为活动状态。

3.5.4.2 BR/EDR同步连接(SCO)

(219页)同步面向连接 (SCO) 逻辑传输是主设备和特定从设备之间的对称点对点信道。SCO 逻辑传输在物理信道上保留有时隙,因此可被看作主设备和从设备之间的电路交换连接。SCO 逻辑传输可以负载按微微网时钟同步的 64 kb/s 的信息。通常,此信息为编码语音流。共存在三种不同的 SCO 配置,在稳键性、延迟和带宽消耗之间保持平衡。

每个 SCO-S 逻辑链路都由单个 SCO 逻辑传输支持,SCO 逻辑传输分配有相同的 LT_ADDR,作为设备间默认的 ACL 逻辑传输。因此,LT_ADDR 字段并不足以标识接收到的数据包的目的地。由于 SCO 链路使用保留的时隙,所以设备可以结合使用 LT_ADDR、时隙编号(物理信道的属性)及数据包类型来标识 SCO 链路上的传输。

之所以为 SCO 逻辑传输重新使用默认 ACL 的 LT_ADDR,是出于对Bluetooth 1.1 版规格中的遗留行为的考虑。在早期的Bluetooth 规格版本中,LT_ADDR(那时被称为活动成员地址)被用于标识与每个传输相关联的微微网成员。这并不易于扩展以支持更多逻辑链路,因此此字段的目的被重新定义以支持新的功能。但是,部分Bluetooth 1.1 版的功能无法完全适合正规描述的架构。

尽管为 SCO 保留了时隙,但仍允许将保留时隙用于其它拥有更高优先级信道的通信。这可能是 QoS承诺要求的结果,也可能是为了在物理信道带宽完全被 SCO 占用时,在默认 ACL 上发送 LMP 信令。由于 SCO 可以负载不同的数据包类型至 ACL,所以数据包类型可用于标识 SCO 通信(结合时隙编号和 LT_ADDR)。Bluetooth 核心规格未再定义更多通过 SCO 链路传输的架构层。传输的64 kb/s 流定义了多种标准格式,对于应用过程负责翻译流编码的情况,还允许未格式化的流。

3.5.4.3 BR / EDR扩展同步面向连接 (eSCO)

扩展同步面向连接 (eSCO) 逻辑传输是主设备和特定从设备间的对称或不对称点对点链路。eSCO在物理信道上保留有时隙,因此可被看作主设备和从设备之间的电路交换连接。eSCO 链路在标准SCO 链路上提供了许多扩展,这主要表现在:它们支持更灵活的数据包类型组合,支持选择数据包内容和选择时隙时段,从而支持多种同步比特率。

eSCO 链路还可以提供有限的数据包重新传送(SCO 链路不存在重新传送)。如果要求重新传送,则重新传送将发生在跟随保留时隙的时隙内,否则时隙将用于其它通信。

(220页)每个eSCO-S逻辑链路都由单个eSCO 逻辑传输支持,并通过 eSCO 期间在微微网中唯一的LT_ADDR 标识。eSCO-S 链路使用 LM 信令创建,并遵循与 SCO-S 链路类似的调度规则。

Bluetooth 核心规格未再定义通过 eSCO-S 链路传输的更多架构层。相反,应用过程可以出于任何要求的目的使用数据流,只要流的传输特征适用于被传输的数据。

3.5.4.4 活动从设备广播 (ASB)

活动从设备广播逻辑传输可用于向当前连接至 ASB 所用物理信道的微微网中的所有设备传输L2CAP 用户通信。不存在确认协议,且从微微网主设备到从设备的通信为单向传输。ASB 信道可用于 L2CAP 组通信(1.1 版规格的遗留),但从不用于面向连接的 L2CAP 信道、L2CAP 控制信令或 LMP 控制信令。

但由于不进行确认,ASB 逻辑传输从本质上来说并不可靠。为了提高可靠性,每个数据包将进行多次传输。将使用相同的序列号在从设备上协助筛选重新传输。

ASB 逻辑传输通过保留的 LT_ADDR 标识。(保留的 LT_ADDR 地址还可供 PSB 逻辑传输使用。)

活动从设备将在两个逻辑传输上接收通信,但无法轻易区分二者。ASB 逻辑传输不负载 LMP 通信,因此活动的从设备可以忽略通过 ASB 逻辑传输上的 LMP 逻辑链路接收到的数据包。但是,ASB 逻辑传输上的活动从设备也接收通过 PSB 逻辑传输传送的 L2CAP 通信,且无法与 ASB 传输上发送的 L2CAP 通信相区别。

不论何时存在微微网,都将隐式创建一个 ASB,且总有一个 ASB 与微微网中存在的每个基础或适应型微微网物理信道相关联。由于基础和适应型微微网物理信道几乎一致,从设备无法区分哪个 ASB信道用于传输数据包。这进一步加深了 ASB 信道的不可靠性。(不过,它再不可靠最多也就是丢失数据包。)

主设备可以确定使用两个可能存在的 ASB 信道中的哪一个(当同时拥有一个基础和一个适应型微微网物理信道时),因为如果进行充分的重新传输,就可以在同一 ASB 信道上定向至两组从设备。

ASB 信道从不用于负载 LMP 或 L2CAP 控制信令。

3.5.4.5 BR/EDR休眠从设备广播 (PSB)

(221页)休眠从设备广播逻辑传输可用于在主设备和休眠的从设备(已放弃其默认 ACL 逻辑传输)之间通信。休眠从设备广播链路是微微网主设备和休眠从设备间存在的唯一逻辑传输。

PSB 逻辑传输比其它逻辑传输更为复杂,因为它包括多个阶段,而每个阶段都有不同的用途。这些阶段包括控制信息阶段(用于负载 LMP 逻辑链路)、用户信息阶段(用于负载 L2CAP 逻辑链路)以及接入阶段(负载基带信令)。控制信息和广播信息阶段通常不能同时使用,因为在单个信标间隔中只能支持两者中的一个。(即使没有控制器用户信息阶段,仍要求主设备在信标时隙中传输数据包,以便休眠从设备可以重新同步。)接入阶段通常都会存在,除非在控制信息消息中取消。

  • 控制信息阶段用于供主设备发送信息至包含以下项的休眠从设备:对 PSB 传输特性的修改、对信标列特性的修改或休眠从设备要求在微微网中变为活动状态的请求(称为唤醒)。此控制信息负载于LMP 逻辑链路上的 LMP 消息中。(当用户信息要求多个基带数据包时,控制信息阶段还会与用户信息阶段一同出现。)

控制信息阶段中的数据包总是在物理信道信标列时隙中传输,而无法在其它任意时隙中传输。控制信息占用了一个单 DM1 数据包,并在单个信标间隔内的每个信标列时隙中重复。(如果没有控制信息,则可能有用户信息阶段使用信标时隙。如果两个阶段均未使用,则信标时隙可用于其它逻辑传输通信或 NULL 数据包。)

  • 用户信息阶段用于供主设备发送要送至所有微微网从设备的 L2CAP 数据包。用户信息可以占用一个或多个基带数据包。
    • 如果用户信息占用了单个数据包,则用户信息数据包将在每个微微网信道信标列时隙中重复。
    • 如果用户信息占用了多个基带数据包,则它将在信标列(广播扫描窗口)后的时隙中传输,信标时隙可用于传输包含此广播扫描窗口定时特性的控制信息阶段消息。

这样要求是为了使休眠从设备保持连接至微微网物理信道,以接收用户信息。

  • 接入阶段将正常显示,除非临时由控制信息广播阶段中负载的控制消息取消。接入窗口中包含了紧跟信标列的一连串时隙。(222页)为了使微微网中的休眠从设备变为活动状态,必须通过接入窗口向微微网主设备发送接入请求。每个休眠从设备都分配有一个请求接入地址(不必是唯一的),该地址控制从设备在接入窗口持续时间内何时请求接入。

PSB 逻辑传输由值为 0 的保留 LT_ADDR 标识。此保留的 LT_ADDR 地址还可供 ASB 逻辑传输使用。休眠从设备在一般情况下并不会由于重复使用 LT_ADDR 而被混淆,因为它们仅在使用 PSB传输时连接到微微网物理信道。

3.5.4.6 LE异步连接(LE ACL)

LE异步连接(LE ACL)逻辑传输用于承载LL和L2CAP控制信令以及尽力而为的异步用户数据。 LE ACL逻辑传输使用2比特NESN / SN方案来提供简单的信道可靠性。 LE微微网内的每个活动从设备都具有到微微网主设备的一个LE ACL逻辑传输,称为默认LE ACL。

当设备加入微微网时(连接到LE微微网物理信道),在主设备和从设备之间自动创建默认LE ACL。这个默认LE ACL由微微网主设备分配一个访问信道号。此访问地址还用于在需要时标识活动物理链路。如果从LE活动物理链路中删除了默认LE ACL,则还会删除主站和从站之间存在的所有其他LE逻辑传输。在意外丢失与LE微微网物理信道的同步的情况下,LE物理链路和所有LE逻辑传输和LE逻辑链路在检测到该同步丢失时不再存在。

3.5.4.7 LE广播(ADVB)

LE广播逻辑传输用于将广播控制和用户数据传输到给定区域中的所有扫描设备。没有确认协议,并且流量主要是来自广播设备的单向。扫描设备可以通过逻辑传输发送请求以获得附加的广播用户数据,或者形成LE ACL逻辑传输连接。 LE广播逻辑传输数据仅在LE广播链路上传送。

由于缺乏知识,ADVB逻辑传输本质上是不可靠的。为了提高可靠性,通过LE广播链路多次发送每个分组。只要广播设备开始广播,就会创建ADVB。 ADVB逻辑传输由广播设备的蓝牙设备地址标识。

3.5.4.8 无连接从属广播(CSB)

(223页)CSB逻辑传输用于将协议广播数据传输到连接到无连接从属广播逻辑传输的所有设备。没有确认方案,并且流量是从主设备到零个或多个从设备的单向。 为了提高可靠性,可以多次发送简档广播数据。

每当启动无连接从属广播时,就在发送器上创建CSB逻辑传输。 每当配置无连接从属广播接收时,在接收器上创建CSB逻辑传输。 CSB逻辑传输由微微网内的唯一LT_ADDR识别,该唯一LT_ADDR由无连接从属广播发射机专门为此目的保留。

3.5.5 逻辑链路

部分逻辑传输可以支持不同的逻辑链路,这些链路可以同时被多路复用,也可以作为待选项。

3.5.5.1 BR/EDR 逻辑链路

在BR/EDR逻辑传输内,逻辑链路由负载数据净荷的基带数据包净荷包头中的逻辑链路标识符 (LLID) 位来标识。逻辑链路可以区分有限的一组核心协议,这些协议能在逻辑传输上传输和接收数据。并非所有的逻辑传输都能够负载全部的逻辑链路。尤其是 SCO 和 eSCO 逻辑传输仅可以负载恒定数据率的流,它们由 LT_ADDR 唯一标识。此类逻辑传输仅使用不包含净荷包头的数据包,因为这些数据包的长度已事先知道,不需要 LLID。

3.5.5.1.1  ACL 控制逻辑链路 (ACL-C)

ACL 控制逻辑链路 (ACL-C) 可用于在微微网中的设备之间负载 LMP 信令。

  • 控制链路仅负载于默认的 ACL 逻辑传输和 PSB 逻辑传输上(位于控制信息阶段)。
  • 当负载于同一逻辑传输上时,ACL-C 链路总是优先于 ACL-U(见下)链路。

3.5.5.1.2 用户异步/等时逻辑链路 (ACL-U)

用户异步/等时逻辑链路 (ACL-U) 可用于负载所有异步和等时帧化用户数据。ACL-U 链路可负载于同步逻辑传输以外的所有逻辑传输上。ACL-U 链路上的数据包由两个保留 LLID 值中的其中一个值标识。一个值用于指明基带数据包是否含有 L2CAP 帧头,另一个用于表示前一帧的继续。(224页)这确保了跟随所删除数据包的 L2CAP 重组装器正确同步。使用此技术排除了在所有基带数据包中包括更加复杂的 L2CAP 包头的需要(包头只需存在于 L2CAP 起始数据包中),但要求在传输完一个完整的L2CAP 帧后才能开始新传输。(此规则也有例外,即可以删除传输了一部分的 L2CAP 帧以便开始传输另一 L2CAP 帧。)

3.5.5.1.3 用户同步/扩展同步逻辑链路 (SCO-S/eSCO-S)

同步 (SCO-S) 和扩展同步 (eSCO-S) 逻辑链路用于支持在无帧流中传输的等时数据。这些链路与一个逻辑传输相关联,在这个逻辑传输上,数据按固定大小和固定速率传输。在这些传输上,由于只支持单个逻辑链路,数据长度和调度期已预定义并在链路存在周期内保持固定,所以数据包中没有LLID。

SCO-S 或 eSCO-S 逻辑链路无法负载变速等时数据。在这种情况下,数据必须负载于使用带净荷包头的数据包的 ACL-U 逻辑链路。如果在处理可靠用户数据时同时支持变速等时数据,Bluetooth 技术会有一些限制。

3.5.5.1.4协议广播数据(PBD)逻辑链路

PBD逻辑链路用于向多个接收器广播等时非成帧数据并驻留在CSB逻辑传输上。

3.5.5.2 LE逻辑链路

在LE逻辑传输内,逻辑链路由承载数据有效载荷的基带分组的有效载荷报头中的逻辑链路标识符(LLID)比特来标识。 逻辑链路区分能够在逻辑传输上发送和接收数据的有限核心协议集。不是所有逻辑传输都能够承载所有逻辑链路(支持的映射如图3.2所示)。

3.5.5.2.1控制逻辑链路(LE-C

LE ACL控制逻辑链路(LE-C)用于在微微网中的设备之间传送LE LL信令。 控制链路仅在默认的LE ACL逻辑传输上承载。

3.5.5.2.2用户异步逻辑链路(LE-U

用户异步逻辑链路(LE-U)用于承载所有异步和成帧用户数据。 LE-U链路在LE逻辑传输上承载.LE-U链路上的分组由两个保留的LLID值之一标识。(225页)一个值用于指示基带分组是否包含L2CAP帧的开始而另一个值指示前一帧或空PDU的继续。这确保了L2CAP重组器的正确同步。使用该技术不需要在每个基带分组中使用更复杂的L2CAP报头,但增加了在发送新的L2CAP帧之前必须发送完整的L2CAP帧的要求。

3.5.5.2.3广播控制逻辑链路(ADVB-C

LE广播控制逻辑链路(ADVB-C)用于在给定区域中的未连接设备之间传送LE LL信令。该信令是用于收集附加广播用户数据(扫描请求)或连接请求的控制命令。控制链接仅在默认的LE Advertising Broadcast逻辑传输上进行。

3.5.5.2.4广播用户数据逻辑链路(ADVB-U

LE广播用户数据逻辑链路(ADVB-U)用于承载设备之间使用的LE广播用户数据,而不需要设备之间的连接或LE-U。用户数据链接仅在默认LE广播逻辑传输上承载。

3.5.5.3 AMP Logical Links

3.5.5.3.1 AMP控制逻辑链路(AMP-C

每个PAL相对于控制逻辑链路的功能不同。 当存在时,该逻辑链路被称为AMP-C逻辑链路。

3.5.5.3.2 AMP用户异步/同步逻辑链路(AMP-U

AMP用户异步/等时逻辑链路(AMP-U)用于通过AMP传送所有异步和等时帧的用户数据。 与ACL-U逻辑链路不同,AMP-U支持每个物理链路多个逻辑链路句柄,并且每个逻辑链路句柄可能具有不同的服务质量能力。 PAL描述了AMP-U逻辑链路如何映射到底层MAC / PHY的细节。

3.6 L2CAP 信道

(226页)L2CAP 充当多路复用的角色以允许多个不同的应用过程在两个设备之间共享 ACL-U 逻辑链路的资源。应用过程和服务协议使用面向信道的接口与 L2CAP 相接以创建至其它设备上对等实体的连接。

L2CAP 信道端点通过信道标识符 (CID) 为其客户端所识别。此标识符由 L2CAP 分配,任何设备上的 L2CAP 信道端点都有一个不同的 CID。

可以配置 L2CAP 信道以为应用过程提供相应的 QoS 服务。L2CAP 将信道映射至 ACL-U 逻辑链路。

L2CAP 支持面向连接的信道及其它面向组的信道。面向组的信道可以映射至 ASB-U 逻辑链路,或实施为通过 ACL-U 链路向每个成员依次迭代传输。

除了创建、配置和分解信道以外,L2CAP 的主要角色是从信道客户端到 ACL-U 逻辑链路多路传输服务数据单元 (SDU),以及按相应的优先级选择 SDU 以实施简单的调度。

L2CAP 可以通过对等 L2CAP 层提供单信道流控制。信道建立时,应用过程将选择此选项。L2CAP还可以提供增强错误检测及重新传输功能,以 (a) 降低将未检测到的错误传输至应用过程的可能性;(b) 当基带层在 ACL-U 逻辑链路上执行清除操作时恢复丢失的用户数据。

如果存在 HCI,L2CAP 还需要将 L2CAP SDU 分割为适合基带缓冲器的片段,通过 HCI 运行基于令牌的流控制步骤,并只在允许时将片段提交至基带。这可能会影响调度算法。

————————————————————————————————————————

Reference

1 BT specification Core 4.2,Bluetooth SIG.

————————————————————————————————————————

作者按:蓝牙从业者,潜心学习BT stack,蓝牙协议奇多无比,概述只是开始,网上资料还比较多,学到后面的各种spec就只剩下英文原版可以参考了,遂把自己的笔记发出来,互相交流,互相交流。

你可能感兴趣的:(躺雨没的学习笔记——蓝牙架构)