1、文档简介
本文档介绍了
XR806 BLE Controller 驱动接口函数的功能及使用说明。本文档可以指导阅读者使用 XR806 BLE Controlle 提供的接口对接自身的 host。
2、概述
2.1 背景说明
蓝牙协议规定,Host和Controller的交互需要通过HCI协议实现。XR806 BLE Controller驱动位于HCI层,是BLE
firmware提供的API。其主要功能有BLE初始化与反初始化、HCI传输接口初始化、HCI命令传输。
2.2 规格特性
BLE Controlle 的 LL 规格为 5.0 版本。
2.3 文件位置
XR806 BLE Controller 接口属于 BLE FW 的 API,以 FW 为根目录,其代码位置如表 2-1 所示。 FW 的 API 接口定义在 blec.h,已同步至
SDK 的
APPos\
include\blec 目录。
3、技术说明
3.1
模块框架
XR806 BLE Controller驱动模块的系统层次如下图3-1所示。XR806 BLE Controller驱动模块位于BLE系统的HCI层,是BLE Firmware提供给Host的接口。Host调用通过BLE Controller API,实现BLE功能。
3.2 HCI 传输接口使用流程
图 3-2 HCI 传输接口使用流程
ble_ctrl_hci_init()是HCI传输接口的初始化函数,使用图3-3中的处理函数和回调函数前必须要先成功对HCI传输接口进行初始化。虚线框的函数是回调函数,它们的注册是在ble_ctrl_hci_init()内完成的。HCI传输接口的使用分两种情况:
(1)h2c:全称 Host to Controller ,既是 HCI 包从 Host 层传输到 Controller 层。
(2)c2h:全称 Controller to Host,既是 HCI 包从 Controller 层传输到 Host 层。
下面会分别对两种情况的HCI传输接口的使用进行使用说明。
3.2.1 Host to Controller
简单举例 Host 层向 Controller 层传输 HCI 包
(1) Host 通过 blec_hci_h2c 接口把 HCI 包传输给 Controller 进行处理。
(2) Controller 处理完,调用回调函数 blec_hci_h2c_cb()告知 Host 该 HCI 包已使用完,可以进行释放。
3.2.2 Controller to Host
简单举例 Controller 层向 Host 层传输 HCI 包 。
(1)Controller 层 分配空间存放 HCI 包
(2)Controller 调用回调函数 blec_hci_c2h,把 HCI 包传输给 Host 进行处理。
(3)Host 处理完,调用 blec_hci_c2h_cb 告知 Controller 该 HCI 包已使用完,可进行释放
更多详细内容请下载附件查看