• 正文
  • 相关推荐
申请入驻 产业图谱

手把手教你:深度讲解主从机的连接句柄(Connection_Handle)

07/20 08:40
159
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

本篇将讲解连接句柄(Connection_Handle)的作用,以及的连接句柄,。

二、阅读

说明泰凌微芯片学习者。

三、正文

1、连接句柄含义

    官方解释:连接句柄主要被用于标识主机(Host)和控制器(Controller)的逻辑通道。我的理解:连接句柄,从字面上来进行理解,只有在连接的情况下才能使用的标识符叫连接句柄,未连接状态不能使用,未连接状态下的广播和扫描都使用不了该连接句柄。

2、连接句柄使用的场景

2.1、在发送通知数据的时候

blc_gatt_pushHandleValueNotify (BLS_CONN_HANDLE, BATT_LEVEL_INPUT_DP_H, (u8 *)&value, 1);

上述代码中的BLS_CONN_HANDLE代表连接句柄

2.2、在更改PHY参数的时候

blc_ll_setPhy(BLS_CONN_HANDLE, PHY_TRX_PREFER, PHY_PREFER_CODED, PHY_PREFER_CODED, CODED_PHY_PREFER_S2);

上述代码中的BLS_CONN_HANDLE代表连接句柄总结:通过上述的两个例子可以看到连接句柄始终都是BLS_CONN_HANDLE,通过查找代码,发现该值为0x0040,并且代表的是从机的连接句柄,如下图所示。

备注:在蓝牙单连接SDK中,连接句柄是固定的,只有在多连接的SDK中,这个连接句柄才会发生变化。

3、单连接SDK和多连接SDK的含义

单连接SDK指的是:只能有一个主机或者一个从机,不能同时有两个从机或者两个主机,或者一主一从共存。

多连接SDK指的是:允许有多个从机,或者多个主机,或者一主一从等出现。

4、多连接的连接句柄下载地址:https://www.telink-semi.cn/products/bluetooth-le/tlsr825x

连接句柄所在的文件:tc_ble_sdkvendorcommondevice_manage.c

如上图是连接句柄的表格,如果当前是一主一从,那么主机对应的相关数组为conn_dev_list[0].,从机为conn_dev_list[1],如下图所示:

因为该数组是一个结构体,结构体中包含了一系列元素,如下如所示:

该结构体中有一个conn_handle,该元素就代表了句柄,那么从机的连接句柄为conn_dev_list[1].conn_handle,主机的连接句柄为conn_dev_list[0].conn_handle。

四、结尾

本篇结合代码讲解了连接句柄,下一篇将开始讲解配对中的安全连接。

我写了一个合集,不依赖 Nordic、泰凌、瑞萨等厂商商用 BLE 协议栈,从无线底层链路层入手,从零手写 BLE 广播扫描逻辑,拆解蓝牙广播包、信道切换、射频调度、广播数据解析完整流程,适合想吃透 BLE 底层、自主开发蓝牙工具、规避商用协议栈授权限制的嵌入式开发者。

相关推荐