HCI(Host Controller Interface)是蓝牙协议栈中主机(Host)与控制器(Controller)之间的标准接口,是整个蓝牙通信的基石。本文基于蓝牙核心规范与 BlueZ 5.x 全套源码,从协议标准出发,逐层对应到 BlueZ 的具体实现,讲清协议字段如何映射为 C 结构体、指令流程如何封装为函数调用、事件上报如何分发到业务逻辑。
目录
一、HCI 协议核心框架
二、BlueZ Lib 层:HCI 协议的原生封装
三、BlueZ Shared 层:HCI 的面向对象封装
四、Management Interface:HCI 的更高层抽象
五、HCI 协议字段与 BlueZ 源码完整映射表
六、理论协议与实际源码的差异
七、开发踩坑要点
八、完整源码层级架构总结
九、总结
一、HCI协议核心框架
1.1HCI分层定位
HCI 位于蓝牙协议栈的中间层,是主机侧与控制器侧的边界:
暂时无法在飞书文档外展示此内容
1.2 四大报文类型
HCI 协议定义了四种基本报文类型,每种报文有独立的头部结构:
报文类型 | 类型值 | 方向 | 作用 | 头部大小 |