当前位置:
文档之家› 第4章 逻辑链路控制和适配协议规范
第4章 逻辑链路控制和适配协议规范
1 总论
1.1 L2CAP功能要求 1.2 前提 1.3 适用范围
2. 主要操作
2.1 信道标识 2.2 设备间操作 2.3 层间操作 2.4 分段与重组 2.4.1 分段过程 2.4.2 重组过程
3 状态机
3.1 事件 3.1.1 底层到L2CAP的事件 3.1.2 L2CAP到L2CAP的信号事件 3.1.3 L2CAP到L2CAP的数据事件 3.1.4 高层到L2CAP的事件 3.1.5 定时器事件 3.2 动作 3.2.1 L2CAP到底层的动作 3.2.2 L2CAP到L2CAP的信号动作 3.2.3 L2CAP到L2CAP的数据动作 3.2.4 高层到L2CAP的动作 3.3 信道操作状态 3.4 动作与事件的映射
1.3 适用范围 以下特性不属L2CAP适用范围:
● L2CAP 不传输由 SCO链路所指定的音频数据。 ● L2CAP 不能进行可靠信道传输或保证数据完整性,即:L2CAP不会重发
或数据校验。 ● L2CAP 不支持具有可靠性的广播信道。 ● L2CAP 不支持一个全局组名的概念。
2 主要操作 逻辑链路控制和适配协议( L2CAP )是以信道概念为基础的。通过信道
2.4 分段和重组 分段和重组 ( SAR ) 操作用于通过支持最大传输单位 ( MTU )来提高
传输效率。MTU的长度大于最大的基带数据包。这样, 就可以通过在网络广 播和传送高层协议分组降低拥塞。所有L2CAP 分组都可以在基带分组基础 上进行分段。L2CAP协议并不执行任何分段和重组操作,但是其分组格式支
高层协议或应用
高层协议或应用
网络层
网络层
LMP L2CAP 基带
设备甲
数据连接 物理的
L2CAP
LMP
基带
设备乙
图4.1 协议层内的L2CAP
基带规范定义了两种链路类型:同步面向连接链路(SCO)和异步无连接 链路(ACL)。SCO 链路采用保留带宽支持实时语音通信。ACL链路支持最佳 通信。L2CAP规范仅定义ACL链路而不支持 SCO链路。在ACL 链路上禁止使 用 AUX1 分组。该类型分组不支持数据完整性校验(无 CRC )。因为 L2CAP 在基带上依靠完整检查来保护传输的信息,而AUX1分组却不能传输 L2CAP 分组。
面向连接的数据信道 无连接数据信道
信号信道
L2CAP 实体 设备#1
L2CAP 实体
L2CAP 实体
设备#2
图中 为 CID
L2CAP 实体 设备#3
L2CAP 实体 设备#4
图4.5 设备间信道
下表描述了不同信道及其主端和目标端标识。可以创建一条范围为
7
重庆金瓯科技 www.jinoux.com
1 FLOW
9 长度
MSB 4
未定义
用于多时隙分组的ACL有效载荷头
图4.3
下表定义的 2 位逻辑信道( L_CH )域用于区分L2CAP分组与链路管理 器协议分组。其余编码则保留以备将来使用。
表4.1 逻辑信道 L_CH 域的内容
L_CH 信道 00 01 10 11
逻辑信道 RESERVED L2CAP L2CAP LMP
间传送数据。本文件列出了一些L2CAP应用必须实现的服务。每个应用都必 须支持一组用于L2CAP 应用间通信的信号指令。L2CAP应用还应准备从低层 接受某类型的事件, 并可向高层生成事件。事件如何在层间传递则根据实 际应用情况而定。
请求
确认
高层
回答
请求
L2CAP 层 确认
回答
低层
指示 指示
图4.6 L2CAP体系结构
7
CID 0x0000 0x0001 0x0002 0x0003-0x003F 0x0040-0xFFFF
说明 无效标识 正在发信号的信道 无连接的接收信道 保留 动态分配
2.2 设备间操作 下图说明了CID在不同设备对等L2CAP实体间通信中的使用方式。面向
连接的数据信道提供了两设备间的连接,而CID则用于标识信道的每一端。 无连接信道限制数据向单一方向的流动。这些信道用于支持一个信道“组”, 在该信道“组”里发送端CID用于表示一个或多个远程设备。因此保留了一 些CID以备将来特殊用途使用。信号信道是一个保留信道的实例。该信道用 于创建和建立面向连接的数据信道,并可对这些信道的特性变化进行协商。 L2CAP实体必须支持信号信道。另一CID则保留用于呼入的无连接数据通信。 在下面的例子中,CID用于标识由设备#3和设备#4组成的组。而来自ID信道 的数据则被发往保留用于无连接数据通信的远程信道。
识别符引用每条 L2CAP 信道的端点。
2.1 信道标识符 信道标识符(CIDs)是表示逻辑信道本地端设备的名字。从 0x0001 到
0x003F 的标识符保留用于特定的 L2CAP 功能。空标识符( 0x0000 )则定 义为一个非法标识符,并且不得用于目标端。可以根据实际应用目的和情 况, 以合适方式自由管理其余的CID。但在本地设备与多个远端设备存在多 个并发L2CAP信道的情况下,同一CID不得重新用作本地L2CAP信道端。下表 对CID命名空间的定义和划分进行的总结。
CID的指定与特定设备有关,一台设备可以独立于其他设备指定CID (如果它不使用在下表列出的保留CID的话)。这样,即使通过连接到一个本 地设备的多个远程设备, 将同一CID值指定给(远程)信道端,本地设备仍然 能够将远端CID与每一不同的远程设备联系起来。
表4.2 CID定义
6
重庆金瓯科技 www.jinoux.com
下面是ACL有效载荷的格式。下两图表示单时隙分组头和多时隙分组 头。它们的唯一差别是长度段的大小。分组类型则(基带分组头中的一个域) 用于区分单时隙包与多时隙包区。
LSB
L_C2H
流1
长5 度
MSB
3
重庆金瓯科技 www.jinoux.com
4
图4.2 用于单时隙分组的 ACL有效载荷头
LSB 2 L_CH
信息 保留 L2CAP包的延续 L2CAP分组起始位 链路管理协议
链路控制器( LC )作为一个基带执行实体,实施对ACL 报文头的 FLOW位的管理。当不再在ACL链路上进行L2CAP通信时, 该位通常设置 为0(停止发送)。而发送FLOW位设置为1的L2CAP分组则意味着重新开始 接收L2CAP分组流。参见“基带规范”详细描述。
SDP
RFCOMM
TCS
音频
LMP
L2CAP
声音
4
ACL
SCO
基带
重庆金瓯科技 www.jinoux.com
5
图4.4 蓝牙协议体系结构中的L2CAP
L2CAP的必要协议要求包括简单和低拥塞。L2CAP适用于具有计算资源 有限的设备。由于蓝牙无线设备降低了功耗,L2CAP应该不会过分耗费耗电。 协议实施的内存要求也应保持最小化。
1.2 假设 协议基于下列假设为依据而设计:
5
重庆金瓯科技 www.jinoux.com
6
● 使用链路管理器协议在两单元间建立ACL链路。基带提供数据分组的有 序传输, 但也可能有个别分组损坏或重复。任两台设备之间只会有一 条ACL链路。
● 基带通常提供全双工信道。但这并不是说所有L2CAP 通信都是双向的。 多点传送和单向通信(例如,视频)并不要求双工信道。
1.1 L2CAP功能要求 L2CAP的功能要求包括协议复用、分段与重组( SAR ),以及组管理。下
图说明 L2CAP如适配蓝牙协议协议栈。L2CAP处于基带协议上一层,并与蓝 牙服务搜索协议(SDP)、RFCOMM和电话控制(TCS)等其它通信协议具有通信 接口。基带 SCO 链路常用作语音和电话应用的语音信道。经过分组的语音 数据,如IP电话, 通过使用L2CAP上层的通信协议进行发送的。
2
重庆金瓯科技 www.jinoux.com
3
7.17 启用无连接通信 附录: 配置MSCs及实现准则 1 . 总论
本部分定义逻辑来自百度文库接控制和适配协议,缩写为 L2CAP。L2CAP基于基带 协议, 位于数据链路层中,参见图1.1。L2CAP通过协议多路复用、分段重 组操作和组概念,向高层提供面向连接的和无连接的数据服务。L2CAP 允许 高层协议和应用传输和接收长达64 Kb的L2CAP数据分组。
4 数据分组格式
4.1 面向连接的信道 4.2 无连接数据信道
5 信号发送
5.1 指令拒绝(代码0x01) 5.2 连接请求(代码 0x02) 5.3 连接应答(代码0x03)
1
重庆金瓯科技 www.jinoux.com
2
5.4 配置请求(代码0x04) 5.5 配置应答(代码0x05) 5.6 断开请求(代码0x06) 5.7 断开应答(代码0x07) 5.8 回应请求(代码 0x08) 5.9 回应应答(代码0x09) 5.10 信息请求(代码0x0A) 5.11 信息应答(代码0x0B)
6 配置参数选项
6.1 最大传输单元( MTU ) 6.2 最大刷新时间选项 6.3 服务质量( QoS )选项 6.4 配置过程 6.4.1 请求路径 6.4.2 应答路径 6.4.3 配置状态机
7 服务原语
7.1 事件指示 7.1.1 L2CA_ConnectInd 回叫信号 7.1.2 L2CA_ConfigInd 回叫信号 7.1.3 L2CA_DisconnectInd 回叫信号 7.1.4 L2CA_QoSViolationInd 回叫信号 7.2 连接 7.3 连接应答 7.4 配置 7.5 配置应答 7.6 断开连接 7.7 写操作 7.8 读操作 7.9 创建组 7.10 关闭组 7.11 组增加成员 7.12 组撤销成员 7.13 获取组成员 7.14 Ping 7.15 Getinfo 7.16 终止无连接通信
重庆金瓯科技 www.jinoux.com
1
第4章 逻辑链路控制和适配协议规范 本文件主要对逻辑链路控制和适配协议协议( L2CAP )做出描述。该协 议支持高层协议多路复用、数据分段和重组,并且支持传送服务质量信息。 本文件主要针对协议状态自动机、分组格式及构成,以及用于蓝牙测试和 认证的测试接口做出详细阐述。
8
0x0040 到 0Xffff的”已分配”信道代表本地信道端。
表4.3 信道标识类型
信道类型 连接导向 无连接数据 发信号
当地的 CID 动态分配 动态分配 0x0001(固定值)
远程 CID 动态分配 0x0002(固定值) 0x0001(固定值)
2.3 层间操作 L2CAP的实施应遵循下述总体体系结构, 并可在高层协议和低层协议
● 通过使用基带层提供的机制,L2CAP提供了一条可靠的信道。当收到 请求和重发数据时,基带通常要执行数据完整性校验,直到数据成功 确认或发生超时。由于可能会丢失确认报文,所以甚至在数据成功发 送后也会发生超时。基带协议使用长度为1位的序列号,该序列号用于 删除重复发送的分组。由于所有广播的L2CAP数据分组的首段都以同 一序列位为起始位, 如果需要提供可靠传输,就应禁止使用基带广播 分组。
协议复杂性应该适应由蓝牙支持的个人计算机、个人数字助理、数字 蜂窝电话、无线耳机,游戏杆和其它无线设备。而且,协议应该能够达到相 当高的带宽利用效率。 ● 协议复用
L2CAP应支持协议复用,因为基带协议不支持任何 ‘类型’ 域,而这些 类型域则用于标识要复用的更高层协议。L2CAP必须能够区分高层协 议,例如,服务搜索协议,RFCOMM,和电话控制。 ● 分段与重组 与其它有线物理介质相比, 由基带协议定义的分组在大小上受到限 制。输出与最大基带有效载荷(DH5分组中的341字节)关联的最大传输 单位( MTU )限制了更高层协议带宽的有效使用,而高层协议要使用更 大的分组。大 L2CAP分组必须在无线传输前分段成为多个小基带分组。 同样,收到多个小基带分组后也可以重新组装成大的单一的 L2CAP 分 组。在使用比基带分组更大的分组协议时,必须使用分段与重组( SAR ) 功能。 ● 服务质量 L2CAP 连接建立过程,允许交换有关两蓝牙单元之间服务质量的信息。 每个L2CAP设备必须监视由协议使用的资源并保证服务质量(QoS)的 完整实现。 ●组 许多协议包括地址组的概念。基带协议支持匹克网的概念, 匹克网为 能够使用同一时钟进行同步工作的一组设备。L2CAP 组概念可以实现 在匹克网上的有效协议映射。如果没有组概念,为有效管理组,高层 协议就必须直接与基带协议和链路管理器打交道。