面向连接的信道COC
面向连接的信道COC(Connection Oriented Channel),是L2CAP控制器的一个主要特征。它允许一个LE服务在指定的链路上创建一个专用的信道,服务端和客户端在交换任何数据之前都需要先创建一个COC信道。COC的最大优势是可以通过配置MTU和MPS使得应用层可以发送长包数据,以便提高系统吞吐率,典型的应用为Internet Protocol Support Profile(IPSP)以及Object Transfer Profile(OTP)。
在创建COC信道的过程中,客户端基于指定的PSM(Protocol/Service Multiplexer)发起一个创建COC信道的请求,服务端为了能接受该请求,必须在应用层注册该PSM。任何一个基于未注册的PSM发起的创建COC信道的请求,在服务端都会被直接忽略。PSM可分为固定段和动态分配段,如表 4所示:
范围 | 类型 | 描述 |
---|---|---|
0x0001 - 0x007F |
Bluetooth SIG所分配的PSM |
Bluetooth SIG为已有的标准服务所分配的PSM号 |
0x0080 - 0x00FF |
动态分配的自定义PSM |
自定义服务所指定的PSM |
0x0100 - 0xFFFF |
保留 |
保留 |
在注册PSM时还可指定服务的认证权限。
gap_lepsm_register_t param;
param.le_psm = 0x25;
param.sec_lvl = 0x00;
param.mks_flag = false;
error_code = ble_gap_lepsm_register(¶m);
APP_ERROR_CHECK(error_code);
说明:
代码路径:
SDK_Folder\projects\ble\ble_basic_example\ble_app_l2cap_coc_server\Src\user\user_app.c