蓝牙协议栈之L2CAP(chapter 2)
L2CAP协议概述 L2CAP中文为逻辑链路适配层,主要提供信息数据的分割/重组等传输方式。在bluedroid中,很多的上层会向l2cap注册相关服务,比如rfcomm(虚拟串口,最多可虚拟64路),sdp,gatt等。 1、L2CA_Register (SDP_PSM, &sdp_cb.reg_info) 2、L2CA_Register (BT_PSM_ATT, (tL2CAP_APPL_INFO *) &dyn_info) l2cap的框架结构图如下、 一、通道标识符 l2cap传输是基于信道的概念进行传输,没一个信道都有各自的信道标识符(channel identify,CID),在HCI层完成相关初始化后,信道就会被创建,在ACL链路中通常需要创建一个CID为0x0001的控制信道,用于传输控制命令。 CID为2byte,具体如下图所示(通常用于ER( 常规蓝牙 )传输ACL,ASB和AMP链路) 而在 低功耗蓝牙 中,需要使用如下的CID进行表示 二、信道工作模式 逻辑信道可以工作在5种不同的模式下(可以理解为5种不同的使用场景),最后一种是LE设备特有的: 1、 Basic L2CAP Mode (equivalent to L2CAP specification in Bluetooth v1.1) 默认模式,在未选择其他模式的情况下,用此模式。 2、 Flow