蓝牙数据传输结构

发布时间:2018-06-30 15:59:42   来源:文档文库   
字号:

数据传输结构

Bluetooth®数据传输系统实施分层结构。蓝牙系统的描述中说明了蓝牙核心传输层级(包括L2CAP信道)。所有蓝牙运行方式遵循相同的通用传输结构。

基于效率和传统理由,蓝牙传输结构包括逻辑层的级次划分,这与逻辑链路和逻辑传输存在明显区分。此级次划分提供了有关逻辑链路的一般和通俗易懂的概念,逻辑链路为两个或以上设备提供独立传输。基于遗留行为理由,逻辑传输分层需要描述部分逻辑链路类型相互依赖的关系。

蓝牙1.1版规格规定ACL和SCO链路为物理链路。除增加延伸SCO (eSCO) 和日后扩展外,将这两个链路视为逻辑传输类型较为理想,这能更准确地概述它们的用途。但是,这两个链路并不如想象的那么独立,因为它们共享资源,如LT_ADDR和确认/重复请求(ARQ)方案。此结构无法以单一传输层代表这些逻辑传输。其它逻辑传输层在一定程度上说明了这种行为。

核心流量承载器

蓝牙核心系统为服务协议和应用数据传输提供多个标准的流量承载器。

逻辑链路的命名采用相关逻辑传输的名称和表明所传输数据类型的后缀:C用于运载LMP信息的控制链路,U用于运载用户数据(L2CAP PDU)的L2CAP链路,而S用于运载无格式同步或等时数据的串流链路。在不会引起歧义的情况下,逻辑链路的后缀通常会被删除,因此,默认ACL逻辑传输可用来表示ACL-C逻辑链路(在谈到LMP协议时)或ACL-U逻辑链路(在讨论L2CAP层的情况下)。

应用流量类型映射至蓝牙核心流量承载器基于流量特征与承载器特征的映射。建议使用这些映射,因为它们提供了传送带有给定特征的数据最自然和最具效率的方式。

应用或蓝牙核心系统实施可选择使用不同的流量承载器或不同的映射实现类似的结果。例如,在仅有一个从设备的微微网中,主设备传送L2CAP广播时可选择借助ACL-U逻辑链路,而非通过ASB-U或PSB-U逻辑链路。如果物理信道质量并未降低过多,这将提高带宽方面的效率。 仅在保留了应用流量类型特征的情况下才可使用替代传输路径。

应用流量类型用于对可能提交至蓝牙核心系统的数据类型进行分类。如果干预过程修改了数据流量,原数据流量类型未必与提交至蓝牙核心系统的数据类型相同。例如,视频数据以恒定速度生成,但中间编码过程可能会将恒定速度更改为变速率,如MPEG4编码。对于蓝牙核心系统而言,重要的仅为所提交的数据特征。

成帧数据流量

L2CAP层服务为异步和等时用户数据提供帧导向传输。应用以变长帧(最长为信道的最大协定长度)向此服务提交数据,这些帧会以相同形式传送至远程设备的相应应用。应用无需在数据中插入额外的分帧信息,但如有要求亦可以如此(有关分帧对于蓝牙核心系统是不可见的)。

连接导向L2CAP信道可创建用于传输两个蓝牙设备之间的单播(点到点)数据。无连接L2CAP信道用于广播数据。在微微网拓扑中,主设备总是广播数据的来源,而从设备为接收设备。广播L2CAP信道进行单向通信。单播L2CAP信道可为单向或双向。

L2CAP信道的相关QoS设置定义了传输数据帧的限制因素。例如,这些QoS设置可用于指出数据为异步并因此会在有限的生命期后成为无效数据,数据应在给定的时间期限内发出或数据可靠及应予以无误发送,不论耗时多长。

L2CAP信道管理器负责安排在合适的基带逻辑链路上传输L2CAP信道数据帧,可能在带有类似特征的其它L2CAP信道的基带逻辑链路进行多路传输。

非成帧数据流量

如果因为应用中包括串流成帧或数据为纯串流,应用不要求以帧交付数据,那么应用可避免采用L2CAP信道,并直接使用基带逻辑链路。

蓝牙核心系统支持采用SCO-S或eSCO-S逻辑链路,直接传输等时或固定速度(成帧前数据的比特率或帧率)的应用数据。这些逻辑链路保留了物理信道带宽,并提供锁定至微微网时钟的固定速度传输。数据按固定间隔在固定大小的数据包中传输,这两个参数都在信道建立期间协定。eSCO链路拥有更多的比特率选择,而通过在发生错误时进行有限的重发,则提高了可靠性。eSCO逻辑传输支持增强数据率运行,而SCO逻辑传输则不支持。SCO和eSCO逻辑传输不支持多路复用逻辑链路或蓝牙核心的任何其它层级。如果所提交的SCO/eSCO串流是或似乎是固定速率串流,应用可选择对所提交的串流中的多个串流进行分层。

应用从基带的可用逻辑链路中选择最合适的逻辑链路类型,创建及配置逻辑链路以传输数据流,及在完成传输时解除相关逻辑链路(应用一般还会使用成帧L2CAP单播信道传输控制类信息至远程设备的同类应用。)

如果应用数据为等时及可变速率,那么这仅可由L2CAP单播信道传输,因此将会被视为成帧数据。

流量承载器的可靠性

蓝牙技术是一个无线通信系统。这个系统在射频较弱的环境中被认为是不可靠的。为抵销这个影响,系统在各层级提供不同程度的保护。基带数据包报头使用前向纠错(FEC)编码和报头错误控制(HEC)分别令接收器纠正错误及侦测纠错后遗留的错误。部分基带数据包类型对有效负载进行FEC。另外,部分基带数据包类型包含循环冗余码校验(CRC)。

在ACL逻辑传输中,错误侦测算法的结果用于驱动简单的ARQ协议。通过重新传输未通过接收器的错误校验算法的数据包,这提高了数据的可靠性。此方案可进行修改,通过删除发射器中发送不成功且使用寿命已届满的数据包,支持对延时敏感的数据包。eSCO链路使用经修改的方案,允许有限次数的重发,提高了可靠性。

通过此ARQ方法获得的可靠性仅等同于HEC和CRC代码侦测错误的能力。这在大多数情况下是足够的,但对于较长的数据包类型,未发现错误的可能性太高而难以支持特定应用,尤其是需要传输大量数据的应用。

L2CAP层具有额外的错误控制层,设计目的在于侦测基带层偶尔未发现的错误及要求重新传输受影响数据。这提供了特定蓝牙应用所需的可靠性水平。

广播连接没有反馈路由,不能使用ARQ方法(尽管接收器仍能侦测收到的数据包中的错误)。相反,每个数据包会传输多次,以期接收器能够成功接收到至少一个副本。尽管采用这个方法,但仍不保证成功收到,因此这些链接被视为不可靠。

总之,如果链接或信道被视为可靠,这意味着接收器能够侦测已收到数据包中的错误及请求重发直至删除错误。由于所采用的错误侦测系统,已收到的数据中可能仍然存在部分余留(未发现的)错误。L2CAP信道的剩余错误水平与其它通信系统相若,但逻辑链路的剩余错误水平则较高。

发射器可删除发送队列中的数据包,如此接收器不会收到序列中的所有数据包。在这种情况下,L2CAP层将获授权侦测遗失数据包。

在不可靠的链路中,接收器能够侦测已收到数据包中的错误,但无法请求重发。由接收器传送的数据包可能没有错误,但不保证会收到序列中的所有数据包,因链路被视为基本不可靠。这些链路的的用途十分有限,而且这些用途通常依赖于较高层级在数据有效时持续重复数据。串流链路具有可靠性特征,在一定程度上介于可靠和不可靠链路之间,而这取决于当前的运行条件。

传输结构实体

蓝牙通用数据包结构

通用数据包结构反映蓝牙系统中存在结构层级。数据包结构专为正常运行的优化使用而设计。

一般数据包仅包括代表交易所需层级所必要的字段。通过询问扫描物理信道进行的简单询问请求不会创建或需要逻辑链路或更高层级,因此仅包括信道访问代码(与物理信道相关)。微微网的一般通信使用包含所有字段的数据包,因为所有结构层级都获得应用。

所有数据包都含有信道访问代码。这用于识别特定物理信道的通信,及排除或忽略恰好在物理位置接近的距离内采用相同射频载体的不同物理信道的数据包。

蓝牙数据包结构中并无直接的字段代表或包含有关物理链路的信息。该信息隐含在数据包报头所携带的逻辑传输地址(LT_ADDR)中。

大多数数据包都包含数据包报头。数据包报头总是出现在物理信道上传输的数据包中,这些物理信道支持物理链路、逻辑传输和逻辑链路。数据包报头带有LT_ADDR,由各接收设备用于决定数据包是否以该设备作为目标地址及用于内部按路线发送数据包。

数据包报头还带有部分LC协议,由逻辑传输运行(ACL和SCO传输除外,这两种传输运行任一逻辑传输上运载的共享LC协议)。

EDR数据包在有效负载之前存在保护时间和同步序列。这个字段用于调制方式的物理层更改。

有效负载报头出现于支持多逻辑链路的逻辑传输上的所有数据包中。有效负载报头包括一个用于按路线发送有效负载的逻辑链路标识符字段和一个指明有效负载长度的字段。部分数据包类型在数据包有效负载之后还包含CRC,用于侦测已收数据包中的大部分错误。EDR数据包在CRC之后拥有一个尾部。

数据包有效负载用于传输用户数据。此数据的诠释取决于逻辑传输和逻辑链路标识符。对于ACL逻辑传输而言,LMP信息和L2CAP信号,以及应用的一般用户数据都以数据包有效负载传输。对于SCO和eSCO逻辑传输而言,有效负载包含逻辑链路的用户数据。

物理信道

蓝牙无线技术系统的最低结构层级为物理信道。多个类型的物理信道进行了定义。所有蓝牙物理信道均以射频频率及时间参数为特定,并受空域因素限制。对于基本和适配微微网物理信道而言,跳频用于定期更改频率,以降低干扰影响和合规。

两个蓝牙设备使用共享的物理信道以进行通信。为进行通信,它们的收发器需要同时调到相同的射频频率,而且需要处于彼此各自的名义射程之内。

鉴于射频载体的数量有限,且许多蓝牙设备都可在相同的空间和时间区域内独立运行,因此两个独立的蓝牙设备有很大可能将其收发器调至相同的射频载体,从而导致物理信道冲突。为降低这种冲突带来的不必要影响,物理信道的美称传输都以访问代码开始,该代码用作设备调至物理信道的相关代码。此信道访问代码是物理信道的一个属性。访问代码总是会在每次开始传输数据包的时出现。

定义的蓝牙物理信道为四个。每一个都得到了优化,并用于不同的用途。其中两个物理信道(基本微微网信道和适配微微网信道)用于已连接设备之间的通信和与特定微微网关联。其余两个物理信道用于发现蓝牙设备(询问扫描信道)和连接蓝牙设备(呼叫扫描信道)。

蓝牙设备在任何特定时间仅可使用其中一个物理信道。为支持多并行操作,设备可在信道之间采用时分多路传输。这样,蓝牙设备就可同时在多个微微网中操作,以及可被发现和连接。

无论何时蓝牙设备与物理信道的时间、频率和访问代码同步,蓝牙设备都可被称为与此信道“连接”(无论设备是否是主动通过信道进行通信)。蓝牙规格假设设备在任何时候仅可与一个物理信道连接。高级设备或许能够同时连接至一个以上的物理信道,但蓝牙规格假设这种情况不可能发生。

基本微微网信道

基本微微网信道用于已连接设备在日常操作过程中的通信。基本微微网信道的特点是通过射频信道实现伪随机跳频。跳频独见于微微网,由主设备的蓝牙设备地址决定。跳频相位由主设备的蓝牙时钟决定。微微网中的所有蓝牙设备都与此信道存在时间或跳跃同步。

该信道按时间间隙划分,每个时隙都对应一个射频跳频。连续的跳跃对应于不同的射频跳频。时隙根据微微网主设备的蓝牙时钟编号。数据包由微微网中的蓝牙设备进行传输,并与一个时隙界限的开始对齐。每个数据包都从信道的访问代码开始,这个代码源自微微网的蓝牙设备地址。

在基本微微网信道中,主设备控制信道访问。主设备仅在每个已编号的时隙开始传输。主设备传输的数据包与时隙开端保持一致,并界定微微网的时间。由主设备传输的数据包可占用最多五个时隙,取决于数据包的类型。

每次主设备传输的都是携带一个物理传输信息的数据包。从设备在物理信道中传输,以作出回应。回应的特征由被定址的物理传输界定。

例如,在异步连接逻辑传输中,被定址的从设备通过传输数据包回应,数据包中包含通常与下一个(编号为奇数的)时隙一致的相同逻辑传输的信息。取决于数据包的类型,这种数据包可占用最多五个时隙。在广播逻辑传输中,从设备不得作出回应。

基本微微网物理信道的特殊特点在于使用部分保留间隙传输信标列。信标列仅会在微微网物理信道已停用与其连接的从设备的情况下得到使用。在这种情况下,主设备会在保留的信标列间隙中传输数据包(这些数据包由从设备用于与微微网物理信道再次同步)。主设备可从任何一个逻辑传输将数据包传输至这些间隙中,前提是在每个间隙开始进行传输。如果从休眠从设备广播(PSB)逻辑传输传输信息,那么信息将会在信标列间隙中传输,并优先于任何其它逻辑传输。

拓扑

基本微微网信道可由任何数量的蓝牙设备共享,仅受微微网主设备的可用资源限制。微微网中仅有一个设备为主设备,所有其它设备都是微微网的从设备。所有通信都发生于主设备与从设备之间。从设备之间无法在微微网信道中进行直接的通信。但是,微微网仅可支持有限数目的逻辑传输。这意味着,尽管理论上,共享信道的蓝牙设备不存在数量上限,但可主动与主设备交换数据的蓝牙设备的数量有限。

基本微微网信道支持用于一般目的通信的多个物理链路、逻辑传输、逻辑链路和L2CAP信道。

适配微微网信道

适配微微网信道与基本微微网信道存在两个方面的区别。首先,主设备传输所用频率与前一个主设备传输频率相同。换言之,主设备和随后的从设备数据包所用频率不会重算。适配微微网信道与基本微微网信道的第二个不同之处在于,适配类型可少于全部79个频率。跳频图案中会排除出多个频率,并以“未使用”标记。79个频率中的其余频率则包括在其中。两个序列是相同的,除了在基本伪随机跳频序列选定一个未使用频率时,它都会以已使用频率中选择的一个备选频率替代。

因为适配微微网信道使用与基本微微网信道相同的时间和访问代码,因此两个信道通常会实现同步。这就会带来意料之中的好处,允许基本微微网信道或适配微微网信道的从设备调整与主设备的同步,

适配微微网物理信道的拓扑和支持层级与基本微微网物理信道的相同。

询问扫描信道

概览

询问扫描信道用于发现设备。可被发现的设备会收听询问扫描信道的询问请求,然后会发送对这些请求作出的回应。为发现其它设备,设备会以伪随机的方式迭代所有可能的询问扫描信道频率(跳跃),在每个频率发送询问请求及收听任何回应。

特征

询问扫描信道使用较慢的跳频图案,使用访问代码区分两台同地协作设备使用不同物理信道临时占用相同射频的情况。

询问扫描信道使用的访问代码来自所有蓝牙设备共享的保留询问访问代码集合。一个访问代码用于一般询问,其它大量的访问保留作受限制询问。每一台设备都可访问多个不同的询问扫描信道。由于所有这些信道都采用相同的跳频图形,如果设备能够同时关联一个以上的访问代码,它可以同时占用一个以上的询问扫描信道。

使用一个询问扫描信道的设备仍然处于被动状态,直至它在此信道收到另一台蓝牙设备的询问信息。这由适用的询问访问代码判定。询问扫描设备根据询问回应程序,向询问设备发出回应。

为发现其它蓝牙设备,设备会借助这些设备的询问扫描信道发出询问请求。由于设备事先对发现的设备并无了解,它无法获知该询问扫描信道的准确特征。

设备会利用询问扫描信道的跳频数量较少及跳跃率较慢的特点。询问设备在每个询问扫描跳频发送询问请求及收听询问回应。跳跃率较快,令询问设备能够在合理的较短时间段内覆盖所有询问扫描频率。

拓扑

询问和可被发现设备会简单交换数据包,以完成询问功能。在这个交易过程中形成的拓扑是一个简短短暂的端到端连接。

支持的层级

在询问设备和可被发现设备交换数据包的过程中,可以认为这两个设备之间存在临时的物理链路。然而,这个概念无关紧要,因为它并无实际的表现,仅仅由设备之间的短暂交易暗示得知。信道不支持其它的结构层级。

呼叫扫描信道

可连接的设备(准备接受连接的设备)会接入呼叫扫描信道。可连接设备收听呼叫扫描信道的呼叫请求,并与此设备进入交换序列。为连接其它设备,设备会以伪随机的方式迭代所有可能的呼叫扫描信道频率(跳跃),在每个频率发送呼叫请求及收听任何回应。

特征

呼叫扫描信道使用从呼叫设备的蓝牙设备地址导出的访问代码发现信道中的通信。呼叫扫描信道使用的跳跃率慢于基本和适配微微网信道的跳跃率。跳跃选择算法采用扫描设备的蓝牙设备时钟作为输入值。

使用呼叫扫描信道的设备处于被动状态,直至它收到另一台蓝牙设备的呼叫请求。这由适用的呼叫扫描访问代码判定。然后,两个设备将根据呼叫程序建立连接。在成功完成呼叫程序后,两个设备切换至基本微微网信道,并以呼叫设备作为微微网的主设备。

为连接至另一台蓝牙设备,设备使用目标设备的呼叫扫描信道发送呼叫信息。如果呼叫设备不知道目标设备的呼叫扫描信道相位,它就不知道目标设备的当前跳频。呼叫设备在每个呼叫扫描跳频发送询问请求及收听呼叫回应。跳跃率较快,令呼叫设备能够在合理的较短时间段内覆盖所有呼叫扫描频率。

呼叫设备可能对目标设备的蓝牙时钟有一定的了解(表明两个设备曾进行询问交易,或因设备先前参与一个微微网),在这种情况下,它能够预测目标设备的呼叫扫描信道相位。它可以使用这个信息优化呼叫和呼叫扫描流程的同步,并加快连接的形成。

拓扑

呼叫和可连接设备会简单交换数据包,以完成呼叫功能。在这个交易过程中形成的拓扑是一个简短短暂的端到端连接。

支持的层级

在呼叫设备和可连接设备交换数据包的过程中,可以认为这两个设备之间存在临时的物理链路。然而,这个概念无关紧要,因为它并无实际的表现,仅仅由设备之间的短暂交易暗示得知。信道不支持其它的结构层级。

物理链路

物理链路指蓝牙设备之间的基带连接。物理链路总是与一个物理信道相关联(但物理信道可支持一个以上的物理链路)。

在蓝牙技术系统中,物理链路是一个虚拟的概念,它在传送的数据包结构中并无直接的表现。访问代码数据包域,以及主蓝牙设备的时钟和地址,都可用于识别物理信道。然而,数据包的其余部分不能直接识别出物理链路。相反,物理链路可通过与逻辑传输的相关性识别出,因为每个逻辑传输仅可在一个物理链路上接收。

部分物理链路类型的属性可进行修改。其中一个是链路的发射功率。其它物理链路类型没有这些属性。在拥有可修改属性的物理链路中,LM协议用于调整这些属性。由于LM协议在较高的层级(逻辑链路)获得支持,适当的物理链路可由传输LM信令的逻辑链路暗示而识别出。

如果传输通过多个不同的物理链路广播,那么可选择适合于所有物理链路的传输参数。

基本和适配微微网物理信道支持的链路

基本和适配微微网物理信道支持处于活跃或休眠状态的物理链路。物理链路为主设备和从设备之间的端到端链路。它总是会在微微网中的从设备实现同步时出现。

活跃的物理链路

如果主设备和从设备之间存在默认的ACL逻辑传输,那么这两种设备之间的物理链路是活跃的。活跃的物理链路本身并无直接的标识,但可通过与一一对应的默认ACL逻辑传输ID的关联性识别出来。

活跃的物理链路拥有各个方向的相关无线发射功率属性。从从设备的发射总是通过主设备的活跃物理链路进行,并采用此链路从从设备到主设备的发射功率。从主设备的发射可通过单一的活跃物理链路(至特定的从设备)或通过多个物理链路(至微微网中的一组从设备)进行。在端到端发射的情况下,主设备使用相关物理链路的适用发射功率(在端到多端发射的情况下,主设备使用多个被定址设备的适用发射功率)。

活跃的物理链路可设置为待机或嗅探模式。这些模式的影响是修改物理链路处于活跃状态的期间,并可传输信息。带有界定调度特征的逻辑传输不会受到这些模式的影响,并会根据他们的预先界定调度行为继续进行下去。带有未界定调度特征的默认ACL逻辑传输和其它链路会受到活跃的物理链路所处模式的影响。

休眠的物理链路

当从设备在微微网中实现同步,但并无默认ACL逻辑传输时,主设备和从设备之间的物理链路处于休眠状态。这种情况下的从设备也可被称为处于休眠状态。信标列用于令连接至微微网物理信道的所有休眠从设备实现定期同步。休眠从设备广播(PSB)逻辑传输用于实现向休眠从设备传输LMP信令子集和广播L2CAP。PSB逻辑传输与信标列存在密切相关。

从设备使用休眠程序袖标(其活跃链路更改为休眠链路)。主设备不得令拥有任何用户创建获物理链路支持的逻辑传输的从设备进入休眠状态。这些逻辑传输会被首先删除,任何构建于这些逻辑传输的L2CAP信道也会被删除。广播逻辑传输和默认ACL逻辑传输不会被视为由用户创建,因此不会被明确删除。当活跃链路被休眠链路替代时,默认ACL逻辑传输会被暗中删除。这些获支持的逻辑链路和L2CAP信道仍然存在,但处于暂停状态。当缺乏活跃链路时,这些链路和L2CAP信道不可能用于传输信令或数据。

休眠从设备可使用唤醒程序恢复为活跃状态。这个程序可由从设备在访问窗口作出请求,并由主设备启动。完成唤醒程序后,休眠物理链路会变为活跃的物理链路,并会重新创建默认ACL逻辑传输。在大多数近期休眠程序中被暂停的L2CAP信道与新建默认ACL逻辑传输相关联,并会再次恢复为活跃状态。

休眠链路不支持无线电能控制,因为从休眠从设备到微微网主设备之间并无反馈路径可用于从设备接收信号强度的信号或主设备测量接收到来自从设备的信号强度。休眠链路的发射按名义功率进行。

休眠链路使用与相关活跃链路相同的物理信道。如果主设备管理的微微网包含使用基本微微网物理信道的休眠从设备及使用适配微微网物理信道的休眠从设备,那么住设备必须为每一个物理信道创建休眠从设备广播逻辑传输(和相关传输)。

休眠从设备可利用休眠从设备广播逻辑传输的闲置期间节省电能,或可在与其休眠的微微网无关的其它物理信道上进行活动。

扫描物理信道支持的链路

如为询问扫描和呼叫扫面信道,物理链路存在的时间相对较短,且无法以任何方式控制或修改。这些物理链路类型不再进一步详细阐述。

逻辑链路和逻辑传输

多个逻辑链路可用于支持不同的应用数据传输需求。各逻辑链路与逻辑传输相关联,每个逻辑传输都有多个特征。这些特征包括流量控制、确认/重复机制、序列编号及调度行为。逻辑传输可运载不同类型的逻辑链路(取决于逻辑传输的类型)。部分蓝牙1.1版逻辑链路在相同的逻辑传输进行多路传输。活跃的物理链路可在基本或适配微微网物理信道上传输逻辑传输。

逻辑传输标识和实时(链路控制)信令以数据包报头运载,对于部分逻辑链路而言,标识会以有效负载报头运载。不需要单一间隙回应时间的控制信令采用LMP协议运载。

下表载列所有逻辑传输类型,获支持的逻辑链路类型,可支持这些逻辑传输和逻辑链路的物理链路和物理信道类型及逻辑传输用途的简单说明。

本地传输

链路支持

提供支持的链路和信道

概览

异步连接(ACL)

控制(LMP) ACL-C用户(L2CAP)ACL-U

活跃的物理链路、基本或适配物理信道。

可信赖或有时限的、双向、端到端。

同步连接(SCO)

串流(非成帧)

SCO-S

活跃的物理链路、基本或适配物理信道。

双向、对称、端到端、音频/视频信道。用于64Kb/s恒定速率数据。

延伸同步连接(eSCO)

串流(非成帧)

eSCO-S

活跃的物理链路、基本或适配物理信道。

双向、对称或非对称、端到端、一般的常规数据、有限重发。用于与主设备蓝牙时钟同步的恒定速率数据。

活跃的从设备广播(ASB)

用户(L2CAP)ASB-U

活跃的物理链路、基本或适配物理信道。

不可信赖、单向、向与物理信道同步的任何设备进行广播。用于广播L2CAP组别。

休眠从设备广播(PSB)

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

休眠物理链路、基本或适配物理信道。

不可信赖、单向、向与微微网的所有设备进行广播。用于与休眠设备的LMP和L2CAP的通信及休眠设备的访问请求。

逻辑链路和逻辑传输给出的名称反映蓝牙1.1版中使用的部分名称,以保持一定程度的熟悉性和连贯性。然而,这些名称不表示持续做法,概要如下。

各链路类型的分类产生自三个类别的挑选程序。

转换

第一类为转换。这可能是单播或广播。蓝牙1.2版并无界定多播链路。

单播链路。单播链路存在于两个端点之间。流量可从单播链路的任意方向发送。所有单播链路都为连接导向型,指在链路可以使用前会执行连接程序。如为默认ACL链路,连接程序是用于形成ad-hoc微微网的一般呼叫程序中的隐含步骤

广播链路。广播链路建立于一个源设备和零个或多个接收设备之间。流量为单向,即仅可从源设备发送至接收设备。广播链路为无连接式,意味着创建这些链路并无任何程序,可随时通过这些链路发送数据。广播链路不可信赖,且不保证将收到数据

调度和确认方案

第二类与链路的调度和确认方案有关,表示链路支持的流量类型。这些类型分为同步、等时或异步。蓝牙1.2版并无界定特定的等时链路,但可配置默认ACL链路,从而以这种方式运行。

同步链路。同步链路提供了将蓝牙微微网时间与传输数据相关联的方式。这可通过保留物理信道的定期间隙,及在这些一定的间隔上传输固定大小的数据包。这些链路适合于恒定速率的等时数据。

异步链路。异步链路提供了传输并无时间相关特征的数据的方式。数据通常预定会被重发,直至成功收到,以及每个数据实体都可在收到后的任何时间进行处理,而无需参考先前或连续收到串流的任何实体的时间(前提是保存了数据实体的排序)。

等时链路。等时链路提供了传输拥有时间相关特征的数据的方式。数据会进行重发,直至收到或失效。该链路的数据率无需保持一致(与同步链路最主要的区别)。

数据类别

最后一类与链路携带的数据类别相关。这可分为控制(LMP)数据或用户数据。用户数据类别可再分为L2CAP(或成帧)数据和串流(非成帧)数据。

控制链路。控制链路仅用于传输两个链路管理器之间的LMP信息。这些链路不可见于基带层以上的层级,且不可直接由应用实例化、配置或解除,但可使用连接和断开连接服务隐式地达到这种效果。控制链路总是会与同等L2CAP链路在ACL逻辑传输上多路复用。受限于定义ARQ方案的规则,控制链路流量常常会优先于L2CAP链路流量

L2CAP链路。L2CAP链路用于传输L2CAP PDU,这些PDU会携带提交至用户实例化的L2CAP信道的L2CAP信令信道(仅在默认ACL-U逻辑链路上)或成帧用户数据。提交至基带的L2CAP帧可能会大于可用的基带数据包。当帧以多个分段传送至接收器时,LLID域中嵌入的链路控制协议会保留帧起始和帧连续语意。

串流链路。串流链路用户传输在传送数据时并无内在分帧的用户数据。丢失的数据可以接收器的补白代替。

异步连接(ACL)

异步连接(ACL)逻辑传输用于携带LMP和L2CAP控制信令及尽力服务异步用户数据。ACL逻辑传输使用简单的1位ARQN/SEQN方案提供简单的信道可靠性。微微网中每个活跃的从设备都拥有一个连接至微微网主设备的ACL逻辑传输,被称为默认ACL。

默认ACL在设备加入微微网(连接至基本微微网物理信道)时在主设备和从设备之间建立。这个默认的ACL由微微网的主设备分配逻辑传输地址(LT_ADDR)。LT_ADDR还可用于在需要时识别活跃的物理链路(或作为微微网活跃成员设备的标识符,发挥相同的作用)。

默认ACL的LT_ADDR重新用于相同主设备和从设备之间的同步连接逻辑传输。(这是因为早先蓝牙规格具备兼容性。)因此,LT_ADDR本身不足以识别默认ACL。然而,ACL所用的数据包类型与同步连接逻辑传输所用者不同。因此,ACL逻辑传输可经数据包报头的LT_ADDR域连同数据包类型字段识别出来。

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

如果默认ACL从活跃的物理链路中删除,那么主设备和从设备之间存在的所有其它逻辑传输将同样被删除。如意外与微微网的物理信道失去同步,物理信道及所有逻辑传输和逻辑链路将在发现失去同步之时不再存在。

设备可删除默认ACL(以及活跃的物理链路),但仍与微微网保持同步。这个程序被称为休眠,与微微网同步但并无活跃物理链路的设备在该微微网中处于休眠状态。

当设备过渡至休眠状态,在默认ACL逻辑传输上传输的默认ACL逻辑链路仍然存在,但变为暂停状态。概无数据可通过暂停的逻辑链路转移。当设备由休眠状态转回活跃状态时,设备将会创建新的默认ACL逻辑传输(可能拥有与先前的默认ACL逻辑传输不同的LT_ADDR),而暂停的逻辑链路连接到这个新的默认ACL,并再次变为活跃状态。

同步连接(SCO)

同步连接(SCO) 逻辑传输为主设备和特定从设备之间对称的端到端信道。SCO逻辑层传输保留物理信道的间隙,并可被视为主设备和从设备之间的电路交换连接。SCO逻辑传输携带与微微网时钟同步的64 kb/s信息。通常,这种信息为编码语音串流。存在三种不同的SCO配置,带来鲁棒性、延迟和带宽消耗之间的平衡。

各SCO-S逻辑链路由单一的SCO逻辑传输支持,这个逻辑传输获分配相同的LT_ADDR,作为设备之间的默认ACL逻辑传输。因此,LT_ADDR域不足以用于识别已收数据包的目的地。因为SCO链路使用保留的间隙,设备采用LT_ADDR、间隙数量(物理信道的属性)和数据包类型共同识别SCO链路的重发。

重复将默认ACL的LT_ADDR用于SCO逻辑传输,是由于蓝牙1.1版规格的遗留行为。在这个较早的蓝牙规格版本中,LT_ADDR(当时被称为活跃的成员设备地址)被用于识别与每次传输相关的微微网成员设备。由于这个地址不容易扩展以用于启用更多的逻辑链路,因此这个字段的用途被重新界定用于新功能。然而,部分蓝牙1.1版功能不能简单地套用至描述更加正规的结构中。

虽然间隙被保留用于SCO,但允许使用保留的间隙用作拥有较高优先权的另一个信道的通信。这可能是出于QoS承诺,或在物理信道带宽完全被SCO占用时在默认ACL发送LMP信令的需要。由于SCO传输不同的数据包类型至ACL,数据包类型被用于识别SCO流量(加上间隙数量和LT_ADDR)。蓝牙核心规格并无界定通过SCO链路传输的其它结构层级。所传输的64 kb/s串流拥有多个界定的标准格式,对于负责诠释串流编码的应用,可采用无格式的串流。

3.5.6 延伸同步连接(eSCO)

延伸同步连接(eSCO) 逻辑传输为主设备和特定从设备之间非对称的端到端链路。eSCO保留物理信道的间隙,因此可被视为主设备和从设备之间的电路交换连接。eSCO连接可在标准SCO链路基础上进行多次延伸,这样可支持更灵活的数据包类型、数据可选内容及可选间隙周期组合,从而支持一系列的同步比特率。

eSCO链路还可支持数据包的有限重发(与SCO不同,SCO不可进行重发)。如果需要重发,重发将在保留间隙之后的间隙中进行,否则间隙可用于其它流量。

各eSCO-S逻辑链路获单一的eSCO逻辑传输支持,由微微网中独见于eSCO期间的LT_ADDR来确定。eSCO-S链路通过LM信令创建,并遵循与SCO-S链路相似的调度规则。

蓝牙核心规格并无界定通过eSCO-S链路传输的其它结构层级。相反,在适合于将传输的数据流的传输特征规限下,应用可将数据流用于所需的用途。

活跃的从设备广播(ASB)

活跃的从设备广播逻辑传输用于向微微网中目前连接至ASB所使用的物理信道的所有设备传输L2CAP用户流量。微微网主设备至从设备之间并无确认协议,且流量为单向传输。ASB信道可用于L2CAP组别流量(源自1.1版规格),不得用于L2CAP连接信道、L2CAP控制信令或LMP控制信令。

ASB逻辑传输具有内在的不可靠性,因为缺少确认协议。为提高可靠性,各数据包会进行多次传输。相同的序列号用于协助从设备过滤重发。

ASB逻辑传输由保留的LT_ADDR确定。(PSB逻辑传输也使用保留的LT_ADDR。)活跃的从设备将收到两个逻辑传输的流量,因此无法直接进行区分。由于ASB逻辑传输不能携带LMP流量,因此活跃的从设备可忽略在ASB逻辑传输上通过LMP逻辑链路收到的数据包。然而,通过PSB逻辑传输传送的L2CAP流量也可由活跃的从设备在ASB逻辑传输上接收,故不能与在ASB传输发送的L2CAP流量区分。

ASB在微微网建立时隐式创建,且微微网中总会存在一条与各基本和适配微微网物理信道相关的ASB。因为基本和适配微微网物理信道基本上同时并行,所以从设备不能区分用于传送数据包的ASB信道。这增加了ASB信道整体的不可靠性(尽管如此,可靠程度与整体错失数据包大概相同)。

主设备可决定仅使用两种潜在ASB中之一(当其拥有基本和适配微微网物理信道时),因为有可能在相同的ASB信道上通过足够多次重发,将数据发送至两个组别的从设备。

ASB信道不得用于携带LMP或L2CAP控制信号。

休眠从设备广播(PSB)

休眠从设备广播逻辑传输用于主设备和处于休眠状态的从设备(已放弃它们的默认ACL逻辑传输)之间的通信。休眠从设备广播链路为存在于微微网主设备和休眠从设备之间的唯一逻辑传输。

PSB逻辑传输较其它逻辑传输更加复杂,因为它包含多个相位,每个都具有不同的目的。这些相位包括控制信息相位(用于携带LMP逻辑链路)、用户信息相位(用于携带L2CAP逻辑链路)和访问相位(携带基带信令)。控制信息和广播信息相位通常相互排斥,因为单一信标间隔中仅可支持其中之一(即使并无控制器用户信息相位,主设备仍需要在信标间隙中传送数据包,以便休眠从设备可再次实现同步)。访问相位通常都会出现,除非在控制信息讯息中被注销。

控制信息相位被主设备用于向休眠从设备发送信息,当中包括对PSB传输属性的修改、对信标列属性的修稿或微微网中休眠设备恢复为活跃状态(被称为唤醒)的请求。这个控制信息在LMP逻辑链路中以LMP信息运载(在用户信息相位中的用户需要超过一个的基带数据包时,控制信息相位也会出现)。

控制信息相位的数据包通常会在物理信道信标列间隙中发送,不得在任何其它间隙上发送。控制信息占用一个DM1数据包,并在单一信标间隔的每个信标列间隙中重复(如果不存在控制信息,那么用户信息相位可使用信标间隙。如果这两个相位都不存在,那么信标间隙可用于其它逻辑传输流量或用于NULL数据包)。

用户信息相位由主设备用于发送L2CAP数据包至微微网所有的从设备。用户信息可占用一个或多个基带数据包。如果用户信息占用一个数据包,那么用户信息数据包会在微微信道信标列的每个间隙重复。

如果用户信息占用超过一个基带数据包,那么它会在信标列之后的间隙(广播扫描窗口)中传送,而信标间隙用于传输控制信息相位讯息,当中包含此广播扫描窗口的时间属性。这在休眠从设备仍连接至微微网物理信道以接收用户信息时是必需的。

访问相位通常会出现,除非由控制信息广播相位携带的控制信息暂时注销。访问窗口包含信标列之后的间隙序列。为令休眠从设备恢复为微微网的活跃设备,该设备必须在访问窗口向微微网主设备发送访问请求。每个休眠从设备都会获分配一个访问请求地址(不一定唯一),用于在访问窗口控制从设备请求访问。

PSB逻辑传输由0的保留LT_ADDR来确定。这个保留的LT_ADDR地址也可用于ASB逻辑传输。休眠的从设备一般不会被LT_ADDR的重复使用混淆,因为它们仅在PSB传输使用时与微微网物理信道连接。

逻辑链路

部分逻辑传输可支持不同的逻辑链路,无论并行多路复用或为选择之一。在这些逻辑传输中,逻辑链路由携带数据有效负载的基带数据包的有效负载报头中的逻辑链路标识符(LLID)位来确定。逻辑链路与有限的核心协议系列的区别在于能够在逻辑传输上传输和接收数据。并非所有的逻辑传输都能够携带所有逻辑链路。具体而言,SCO和eSCO逻辑传输仅能够携带恒定速率的数据率串流,这些传输独独依靠LT_ADDR确定。这样的逻辑传输仅适用不包含有效负载报头的数据包,因为可提前知道数据包的长度,且无需LLID。

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

ACL控制逻辑链路(ACL-C)用于携带微微网设备之间的LMP信令。控制链路仅在默认ACL逻辑传输和PSB逻辑传输(以控制信息相位)传输。在以相同的逻辑传输运载时,ACL-C链路通常优先于ACL-U(见下文)链路。

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

用户异步/等时逻辑链路(ACL-U)用于携带所有的异步和等时成帧用户数据。ACL-U链路在除同步逻辑传输之外的所有逻辑传输上运载。ACL-U链路上的数据包依靠两个保留LLID值中的一个确定。一个值用于表明基带数据包中是否包含L2CAP帧的起始值,另一个值用于表明前一帧的持续性。这确保了清除数据包之后重新聚集的L2CAP正确同步。这项技术的运用消除了每个基带数据包对更复杂的L2CAP报头(这个报头仅在L2CAP起始数据包中需要)的需要,但增加了完整L2CAP帧应在新的L2CAP发送之前发送的要求(此规则的一个例外情况是,可为支持另一个L2CAP帧消除已部分发送的L2CAP帧)。

用户同步/延伸同步逻辑链路(SCO-S/eSCO-S)

同步(SCO-S)和延伸同步(eSCO-S)逻辑链路用于支持在并无分帧的串流中传送的等时数据。这些链路与单一的逻辑传输相关,数据以恒定速率和固定大小的单位传送。这些传输上的数据包中并无LLID,因为仅可支持一个逻辑链路,数据包长度和调度周期被预先界定,并在链路的生命周期内维持固定。

SCO-S或eSCO-S逻辑链路不可懈怠可变速率的等时数据。这种数据必须在ACL-U逻辑链路上以带有有效负载报头的数据包传输,蓝牙技术对同时支持可变速率的等时数据和可靠的用户数据的时间设定了一些限制。

L2CAP信道

L2CAP提供多路复用功能,允许许多不同的应用贡献两个设备之间的ACL-U逻辑链路资源。应用和服务协议与L2CAP交互,通过信道导向界面创建与其它设备的同类实体的连接。

L2CAP信道端点被客户端通过信道标识符(CID)确定。这个标识符由L2CAP分配,任何设备的各L2CAP信道端点都有一个不同的CID。

L2CAP信道可进行配置,以提供对应用适合的QoS。L2CAP会将信道映射至ACL-U逻辑链路上。

L2CAP支持连接导向型信道和群组导向型的信道。群组导向型信道可映射至ASB-U逻辑链路,或作为通过ACL-U逻辑链路迭代传输至每个成员设备实现。

除创建、配置和解除信道外,L2CAP的主要作用是从信道客户端多路传输服务数据单位(SDU)至ACL-U逻辑链路上及根据相关优先次序进行简单的调度、挑选SDU。

L2CAP可为同类L2CAP层的每个信道提供流量控制。应用可在信道建立时作出这个选择。L2CAP还可提供增强的错误侦测和重发,以(a)降低未发现错误传输至应用的概率及(b)恢复基带层对ACL-U逻辑链路进行清除时所造成的部分用户数据丢失。

如HCI存在,L2CAP还需要将L2CAP SDU分为分段,以嵌入亟待缓冲,以及通过HCI运行基于令牌的流量控制程序,仅在允许时提交分段至基带。这可能会影响调度算法。

本文来源:https://www.2haoxitong.net/k/doc/88429e760740be1e650e9abd.html

《蓝牙数据传输结构.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式