🧩 HCI驱动开发实战手册
30章 · 从入门到精通
蓝牙核心 · 传输层 · 驱动实战
📘 中小学风格
🌈
🎯 30个实战章节
01
蓝牙技术概述
基础
发展史
版本演进
架构体系
HCI位置
02
HCI协议基础
核心
数据包格式
命令/事件
数据流
传输层
03
HCI传输层·UART
H4
UART接口
波特率
H4协议
流控
04
HCI传输层·USB
批量/中断
USB接口
传输协议
描述符
05
HCI传输层·SDIO
块传输
SDIO接口
功能/块
中断
06
HCI传输层·SPI
DMA
SPI接口
片选时钟
DMA优化
07
HCI命令集详解(1)
链路控制
Inquiry
Create Connection
Disconnect
08
HCI命令集详解(2)
策略/流控
Role Discovery
Read RSSI
流控命令
09
HCI命令集详解(3)
状态/测试
Read Local Version
BD ADDR
测试命令
10
HCI命令集详解(4)
LE命令
LE Advertising
LE Create Conn
LE事件
11
HCI事件处理
事件分发
Command Complete
LE Meta
解析机制
12
HCI数据流管理
ACL/SCO
ACL数据包
SCO/eSCO
分段重组
13
HCI驱动架构设计
Linux内核
HCI子系统
设备驱动模型
核心/传输接口
14
驱动核心数据结构
hci_dev
hci_ops
sk_buff
缓冲区管理
15
驱动初始化流程
探测注册
设备探测
资源分配
电源管理
16
数据发送路径
封装/发送
上层到HCI
传输层发送
完成回调
17
数据接收路径
中断/轮询
硬件接收
传输层解析
上报协议栈
18
中断处理
tasklet/workqueue
上半部/下半部
中断共享
并发
19
电源管理
挂起/唤醒
运行时PM
挂起恢复
蓝牙唤醒
20
调试与日志
动态调试
dynamic debug
ftrace
HCI socket
21
性能优化
DMA/内存池
DMA传输
中断合并
批量处理
22
稳定性与容错
看门狗
超时处理
错误恢复
硬件复位
23
测试方法
模拟/注入
单元测试
模拟HCI
压力测试
24
与BlueZ集成
协议栈
HCI socket
hciattach
bluetoothd
25
Android系统实现
HIDL/HAL
Android蓝牙架构
vendor实现
26
RTOS实现
FreeRTOS
任务模型
优先级设计
内存优化
27
安全考虑
审计/防护
缓冲区溢出
权限管理
固件安全
28
常见问题与解决
实战排错
设备发现
连接断开
吞吐量低
29
实战案例·UART驱动
从零编写
完整HCI UART
代码实现
30
实战案例·USB驱动
源码分析
USB蓝牙适配器
驱动剖析