ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

BLE Host 层 L2CAP --介绍篇

BLE Host 层 L2CAP --介绍篇 引言L2CAP 是 BLE Host 层的“数据调度中心”。它用CID区分不同数据流用PSM标识上层服务并让 ATT、SMP、CoC 等协议能够共享同一条物理链路。1. L2CAP 在 BLE 协议栈中的位置BLE 协议栈通常分为Controller和Host两大部分ControllerPHY、Link Layer负责无线收发与链路管理HostL2CAP、ATT、SMP、GATT、GAP 等负责协议逻辑与数据组织。L2CAP 位于 Host 层直接构建在 Link Layer 之上向上为 ATT、SMP 等协议提供数据传输服务。从数据流角度看2.L2CAP 的核心职责L2CAP 的职责可以概括为三件事复用、适配、传递服务质量信息。核心职责说明关键词协议复用让 ATT、SMP、L2CAP 信令、CoC 等不同数据流共享同一条链路CID、信道分段与重组解决上层 SDU 与底层 PDU 大小不匹配的问题BLE 中固定信道与 CoC 的实现不同SAR、MTU、MPSMTU / QoS 抽象向上层屏蔽底层链路细节并传递服务质量相关信息MTU、QoS、流控2.1 协议复用一条 BLE 链路上可能同时存在多种数据ATT 属性读写SMP 安全配对LE L2CAP 信令面向连接的 L2CAP CoC 数据。L2CAP 通过信道Channel和CID将这些数据流多路复用使它们互不干扰地并行传输。2.2 分段与重组经典蓝牙 L2CAP 中分段与重组是核心能力。在 BLE 中需要区分两种情况固定信道L2CAP 层通常不做 SAR更多依赖 Link Layer 分段L2CAP CoC支持 L2CAP 层分段与重组通过 MTU、MPS 和信用流控管理数据传输。2.3 MTU 与 QoS 抽象L2CAP 向上层提供 MTU 抽象使 ATT 等协议不必关心底层单次能传多少字节。在 CoC 中L2CAP 还会协商MTU上层 SDU 的最大长度MPS单个 L2CAP PDU payload 的最大长度初始信用接收方允许发送方先发送多少个 PDU。3. 基本概念信道、CID 与 PSM理解 L2CAP最关键的是三个概念信道、CID、PSM。3.1 信道ChannelL2CAP 信道是两个设备之间的逻辑数据通道。常见类型包括信道类型特点BLE 中的使用情况固定信道CID 固定连接建立后自动可用ATT、SMP、LE L2CAP 信令面向连接信道需要信令建立支持协商与流控L2CAP CoC、EATT 等无连接信道单向、无需连接BLE 中基本不用3.2 CID 与 PSM 的区别概念全称作用类比CIDChannel Identifier标识本地的一个逻辑信道端点端口号PSMProtocol/Service Multiplexer标识信道承载的上层协议或服务协议号 / 服务号一句话记忆PSM 决定“用什么协议”CID 决定“走哪条信道”。3.3 BLE 常用固定 CIDCID用途说明0x0001BR/EDR L2CAP 信令经典蓝牙使用BLE 不使用0x0002无连接信道经典/保留BLE 基本不用0x0004ATT属性协议0x0005LE L2CAP 信令BLE 中用于建立/配置 CoC0x0006SMP安全管理协议⚠️注意BLE 的 LE L2CAP 信令使用固定 CID0x0005不是0x0001。0x0001是 BR/EDR L2CAP 信令信道不要混淆。3.4 PSM 示例PSM 用于面向连接信道建立信道时告诉对端“这条信道承载哪个上层协议”。PSM 值通常为奇数一部分由蓝牙 SIG 分配一部分可动态使用。PSM 示例用途0x0001SDP0x0003RFCOMM其他自定义服务或 SIG 分配值4. BLE L2CAP 的信道机制BLE 对经典蓝牙 L2CAP 做了大幅简化最明显的特点是固定信道为主CoC 为扩展。4.1 固定信道BLE 默认使用多个固定信道0x0004ATT0x0005LE L2CAP 信令0x0006SMP。固定信道的优点是连接建立后自动可用不需要显式建立过程不需要 PSM协议栈实现简单适合低功耗设备。4.2 面向连接的 L2CAP 信道CoC当应用需要更高吞吐量、更大 MTU 或独立于 ATT 的数据通道时可以使用L2CAP CoC。CoC 使用LE Credit Based Flow Control Mode发送方必须先拥有接收方授予的“信用”每发送一个 PDU 消耗一个信用接收方处理完数据后通过Flow Control Credit Ind补充信用。4.3 增强信用流控BLE 5.0 及之后引入Enhanced Credit Based Flow Control Mode进一步扩展 CoC 能力一次连接请求/响应中最多可协商5 条信道同时适用于 LE 和 BR/EDR与 EATT 配合时可改善多应用并发场景下的延迟表现。4.4 固定信道 vs CoC特性固定信道L2CAP CoC建立方式连接后自动可用通过 LE L2CAP 信令建立CID固定动态分配PSM不需要需要分段L2CAP 层通常不 SAR支持 L2CAP SAR流控无 L2CAP 信用流控信用流控典型用途ATT、SMP、LE 信令大数据、EATT、自定义服务5. 与经典蓝牙 L2CAP 的关键差异维度经典蓝牙 BR/EDR L2CAPBLE L2CAP信道类型固定信道 动态面向连接信道固定信道为主 可选 CoC信道模式Basic、重传、流模式、增强重传等固定信道无模式CoC 使用信用流控分段重组完整支持固定信道依赖 LLCoC 支持 L2CAP SAR复杂度高精简降低功耗与实现成本信令 CID0x00010x0005典型设计目标高吞吐、多协议复用低功耗、低开销、够用即可BLE 对 L2CAP 的简化体现了一种工程哲学在满足低功耗需求的前提下把复杂度降到最低。固定 CID 的方式让 BLE 设备无需维护复杂的信道建立状态机这对资源受限的嵌入式设备非常重要。6. 小结L2CAP 是 BLE Host 层中一个“低调但不可或缺”的协议层。它向上层 ATT、SMP 等协议屏蔽底层链路细节通过CID和PSM实现精准的数据路由通过MTU/MPS 协商和信用流控支撑 CoC 数据传输并在经典蓝牙与 BLE 之间呈现出不同的复杂度取舍。理解 L2CAP 的信道模型、固定 CID 和 CoC 机制是深入掌握 BLE 协议栈数据流的关键一步
返回列表