发布时间:2026/7/3 13:00:43
HCI 功能规范【2. Overview of Host Controller transport layer】
这部分内容是HCI 章节第 2 节Host Controller Transport Layer 概述。它主要想表达的是Host 和 Controller 之间虽然通过 HCI 进行通信但 HCI 数据本身还需要一个“传输层”来负责搬运。这个传输层就是 Host Controller Transport Layer。1. 这部分整体想表达什么蓝牙协议栈中Host 和 Controller 之间通过 HCI 交互。但是 HCI 只是定义了HCI Command HCI Event HCI ACL Data HCI ISO Data HCI Packet 格式 HCI 参数含义 HCI 命令与事件流程可是这些 HCI 数据包要真正从 Host 发送到 Controller还需要经过某种实际传输方式。例如UART USB SDIO SPI 其他物理总线所以这一节讲的就是Host Controller Transport Layer也就是Host 和 Controller 之间的传输层。它的位置可以理解为Host └── HCI Driver / Upper HCI ↓ Host Controller Transport Layer ↓ Controller └── Lower HCI2. Host Controller Transport Layer 的核心目标透明性规范里说The main goal of this transport layer is transparency.意思是这个传输层的主要目标是透明性。这里的“透明性”不是说看得见而是说上层 HCI Driver 不需要关心底层到底是 UART、USB、SDIO 还是其他传输方式。也就是说Host 侧的 HCI Driver 只关心我要发送一个 HCI Command 我要接收一个 HCI Event 我要发送或接收 HCI ACL Data它不应该关心这个 HCI Command 最终是通过 UART 发出去的 还是通过 USB 发出去的 还是通过 SDIO 发出去的这种设计的好处是HCI 逻辑接口可以保持稳定 底层传输方式可以替换 Controller 可以升级 Transport Layer 可以独立实现3. Transport Layer 不应该理解 HCI 数据内容规范里还有一句非常关键the transport should not require any understanding of the data that the Host Controller Interface driver passes to the Controller.意思是传输层不应该需要理解 HCI Driver 传给 Controller 的数据内容。也就是说Transport Layer 只是搬运数据不负责解释数据。可以这样理解HCI Driver知道这是 LE Set Advertising Enable Command Transport Layer不知道也不需要知道只负责把这串字节送过去 Controller收到后再按 HCI 规则解析和执行举个例子Host 要开启 BLE 广播Host HCI Driver ↓ 生成 HCI CommandLE Set Advertising Enable ↓ Transport Layer ↓ 通过 UART / USB / SDIO 搬运这包数据 ↓ Controller Lower HCI ↓ 解析并执行开启广播这里 Transport Layer 不需要知道这是开启广播命令 这是 LE 命令 这是 OGF / OCF / Opcode 这是 Advertising_Enable 参数它只需要知道这是一段要从 Host 送到 Controller 的数据4. 为什么要这样设计这种设计的意义在于解耦。HCI 层和 Transport Layer 分开后可以带来几个好处。4.1 HCI 逻辑不依赖具体总线无论蓝牙芯片通过 UART 接入还是通过 USB 接入Host 侧 HCI 的逻辑都可以保持一致。例如同样是开启广播LE Set Advertising Enable在 UART 蓝牙模块上是这个命令。在 USB 蓝牙适配器上也是这个命令。在 SDIO 蓝牙芯片上还是这个命令。区别只是在于HCI Packet 是通过什么物理通道送过去的4.2 Controller 可以升级不影响传输层规范里说This allows the logical interface (HCI) or the Controller to be upgraded without affecting the transport layer.意思是这样可以让 HCI 逻辑接口或者 Controller 升级时不影响 Transport Layer。例如 Controller 支持了新的 BLE 特性扩展广播 Periodic Advertising LE 2M PHY LE Coded PHY PAwR Channel Sounding这些是 HCI 命令和 Controller 能力层面的变化。但是底层 UART / USB / SDIO 传输层原则上不需要理解这些新功能。它仍然只是搬运 HCI 数据包。4.3 Transport Layer 可以替换不影响 HCI 语义例如同一个蓝牙 Controller有的产品使用 UART 接入主控有的产品使用 USB 接入主控。HCI 命令语义不变设置广播参数 设置扫描参数 建立连接 发送 ACL 数据 接收 HCI Event变化的是底层传输路径UART HCI USB HCI SDIO HCI所以 Transport Layer 的存在让 HCI 成为一个更加稳定的逻辑接口。5. Transport Layer 和 HCI 的关系可以把它们的关系理解成HCI定义 Host 和 Controller 之间说什么 Transport Layer负责把这些话送过去更具体一点HCI CommandHost 要 Controller 做什么 HCI EventController 告诉 Host 发生了什么 HCI ACL DataHost 和 Controller 之间传输连接数据 Transport Layer负责承载这些 HCI Packet所以 Transport Layer 不是 BLE 的业务逻辑层也不是 Link Layer。它只是 Host 和 Controller 之间的数据通道。6. 一个通俗类比可以把 HCI 和 Transport Layer 类比为HCI 语言和命令格式 Transport Layer 快递/运输方式例如你要告诉 Controller开启广播HCI 规定这句话应该怎么说LE Set Advertising Enable Command Opcode 是多少 参数是什么 返回事件是什么Transport Layer 只负责把这句话送过去。至于是通过UART USB SDIO送过去对 HCI 命令本身来说不应该有影响。7. “The specified Host Controller Transport Layers are described in the other parts of Volume 4”是什么意思这句话的意思是具体的 Host Controller Transport Layer 规范不在这一节详细展开而是在 Volume 4 的其他部分中描述。也就是说当前 HCI 章节只是告诉你Host 和 Controller 之间存在 Transport Layer Transport Layer 的目标是透明性 Transport Layer 不应该理解 HCI 数据内容 Transport Layer 负责承载 HCI 数据至于具体 UART HCI、USB HCI、SDIO HCI 怎么定义要看 Volume 4 其他部分。常见的 Transport 相关内容包括HCI USB Transport Layer HCI UART Transport Layer HCI SDIO Transport Layer这些章节会具体说明HCI Packet 怎么封装到 USB 传输里 HCI Packet 怎么封装到 UART 字节流里 HCI Packet 类型如何区分 初始化流程是什么 流控怎么做 错误怎么处理8. 2.1 This section is no longer used 是什么意思截图里有2.1. [This section is no longer used]意思是第 2.1 节已经不再使用。这通常表示蓝牙规范历史版本中这里曾经有内容但后来内容被删除、迁移、废弃或不再适用。学习时可以直接跳过。不要在这里纠结因为它没有有效技术内容。9. 这部分的关键信息9.1 Host 和 Controller 之间不只是 HCI还需要传输层HCI 定义逻辑接口。Transport Layer 负责实际搬运 HCI 数据。HCI 逻辑接口 Transport Layer 传输承载9.2 Transport Layer 的核心目标是透明性Host Controller Interface Driver 不应该依赖具体的传输方式。也就是说HCI Driver 不应该强绑定UART USB SDIO而应该尽量只面对统一的 HCI 逻辑。9.3 Transport Layer 不理解 HCI 数据内容Transport Layer 不需要知道这包数据是LE Set Advertising Parameters LE Set Scan Enable LE Create Connection HCI ACL Data HCI Event它只负责搬运。真正理解 HCI 数据含义的是Host 侧 HCI Driver Controller 侧 Lower HCI9.4 这种设计是为了方便升级和替换由于 HCI 和 Transport Layer 解耦所以Controller 可以升级 HCI 可以增加新命令 Transport Layer 可以保持不变 底层总线可以替换 Host 上层逻辑可以尽量少受影响10. 结合 BLE 开发应该怎么理解对于 BLE App 开发来说一般接触不到 Transport Layer。因为在手机上App ↓ 系统蓝牙 API ↓ 系统 Host 协议栈 ↓ HCI ↓ 蓝牙芯片 ControllerApp 通常无法直接操作 HCI Transport。但是在这些场景下Transport Layer 就很重要做蓝牙芯片驱动 做嵌入式 Linux 蓝牙适配 做 Android 蓝牙底层调试 做蓝牙模块固件对接 分析 btsnoop / HCI log 调试 UART HCI 蓝牙模块 调试 USB 蓝牙 Dongle例如一个 UART 蓝牙模块主控通过串口连接蓝牙芯片MCU / Linux Host ↓ UART Driver ↓ HCI UART Transport ↓ Bluetooth Controller此时你看到的串口数据本质上就是 HCI Packet 被 UART Transport 承载后的字节流。11. 和前面 Introduction 的关系前面 Introduction 讲的是HCI 是 Host 和 Controller 之间的接口这一节进一步补充HCI 数据在 Host 和 Controller 之间传输时需要 Transport Layer 来承载所以完整关系是Host ↓ Upper HCI ↓ Host Controller Transport Layer ↓ Lower HCI ↓ Controller也可以简单总结为Host 通过 HCI 控制 Controller。 HCI Packet 通过 Transport Layer 在 Host 和 Controller 之间传输。 Transport Layer 只负责搬运不负责理解 HCI 语义。12. 对这部分内容的学习建议这部分不需要深挖太多重点掌握一个概念即可HCI 是逻辑接口Transport Layer 是承载通道。如果当前目标是理解 BLE 广播、扫描、连接、GATT 通信那么优先级更高的是HCI Command HCI Event HCI ACL Data LE Controller Commands LE Meta Event ATT / GATT GAPTransport Layer 只需要知道它负责把 HCI Packet 通过 UART、USB、SDIO 等方式送到 Controller 即可。除非后续要做蓝牙芯片驱动、Linux 蓝牙底层、UART HCI 模块调试否则暂时不用深入。

相关新闻

NBTExplorer:简单三步掌握Minecraft数据编辑的终极工具
2026/7/3 13:00:43

NBTExplorer:简单三步掌握Minecraft数据编辑的终极工具

NBTExplorer:简单三步掌握Minecraft数据编辑的终极工具 【免费下载链接】NBTExplorer A graphical NBT editor for all Minecraft NBT data sources 项目地址: https://gitcode.com/gh_mirrors/nb/NBTExplorer 你是否曾经想要深入了解Minecraft世界的内部数据…

阅读更多
视频PPT提取终极指南:一键将视频内容转为PDF的完整方案
2026/7/3 13:00:43

视频PPT提取终极指南:一键将视频内容转为PDF的完整方案

视频PPT提取终极指南:一键将视频内容转为PDF的完整方案 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 在数字化学习时代,你是否经常需要从教学视频、会议录像…

阅读更多
暗黑2存档编辑器d2s-editor终极指南:打造完美单机游戏体验
2026/7/3 13:00:43

暗黑2存档编辑器d2s-editor终极指南:打造完美单机游戏体验

暗黑2存档编辑器d2s-editor终极指南:打造完美单机游戏体验 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为暗黑破坏神2单机模式的角色培养而烦恼吗?想要快速体验各种强力装备和完美属性配置吗&…

阅读更多
合同审查效率提升300%,ChatGPT法律写作必须绕开的7个伦理雷区,资深法官/律所合伙人联合警示
2026/7/3 14:00:43

合同审查效率提升300%,ChatGPT法律写作必须绕开的7个伦理雷区,资深法官/律所合伙人联合警示

更多请点击: https://kaifayun.com 第一章:合同审查效率提升300%的底层技术逻辑 合同审查效率跃升并非依赖单一工具堆砌,而是由语义解析、领域知识图谱与增量式反馈学习三者协同驱动的技术闭环。核心在于将非结构化法律文本转化为可计算、可…

阅读更多
浙江的数学还是太卷了
2026/7/3 14:00:43

浙江的数学还是太卷了

今年高考的数学,仔细一看各地区140分以上的人数,发现浙江人数和其它地区,真的是断层式的差距。一张图就很明显。浙江140分以上有590人,其它省份加起来才53人。浙江看起来“高分数的人多”,核心不是大家突然都变强了&am…

阅读更多
金融核心架构的“Agentic”转身:从集中式到分布式,中间件为何是那根承重梁
2026/7/3 14:00:43

金融核心架构的“Agentic”转身:从集中式到分布式,中间件为何是那根承重梁

2026年5月20日,上海练秋湖园区,华为全球智慧金融峰会HiFS 2026开幕。来自全球60多个国家和地区的800多位金融机构代表、70多家行业伙伴汇聚一堂。峰会传递的核心信号清晰而有力:全球金融业正从“数字化”迈向“Agentic Banking”。AI正从辅助…

阅读更多
在杭州,以真诚相伴,守护每一份用心经营
2026/7/3 14:00:43

在杭州,以真诚相伴,守护每一份用心经营

这座城市里,大大小小的门店散落于街巷之间,每一扇门背后,都是一份努力生活、用心经营的期许。从清晨到日暮,店主们守着一方小店,接待往来客人,把平凡的日子过得认真又温暖。线上运营的出现,原本…

阅读更多
3步精通Magpie:Windows窗口超分辨率终极指南
2026/7/3 14:00:43

3步精通Magpie:Windows窗口超分辨率终极指南

3步精通Magpie:Windows窗口超分辨率终极指南 【免费下载链接】Magpie A general-purpose window upscaler for Windows 10/11. 项目地址: https://gitcode.com/gh_mirrors/mag/Magpie 你是否厌倦了低分辨率窗口在4K显示器上的模糊显示?Magpie作为…

阅读更多
HCI 功能规范【2. Overview of Host Controller transport layer】
2026/7/3 13:00:43

HCI 功能规范【2. Overview of Host Controller transport layer】

这部分内容是 HCI 章节第 2 节:Host Controller Transport Layer 概述。它主要想表达的是:Host 和 Controller 之间虽然通过 HCI 进行通信,但 HCI 数据本身还需要一个“传输层”来负责搬运。这个传输层就是 Host Controller Transport Layer。…

阅读更多
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告
2026/7/2 4:50:04

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

阅读更多
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?
2026/7/3 2:39:23

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

阅读更多
AutoRaise终极指南:3分钟掌握macOS鼠标悬停自动激活窗口技巧
2026/7/3 0:00:39

AutoRaise终极指南:3分钟掌握macOS鼠标悬停自动激活窗口技巧

AutoRaise终极指南:3分钟掌握macOS鼠标悬停自动激活窗口技巧 【免费下载链接】AutoRaise AutoRaise (and focus) a window when hovering over it with the mouse 项目地址: https://gitcode.com/gh_mirrors/au/AutoRaise AutoRaise是一款革命性的macOS窗口管…

阅读更多
AI Agent五大设计模式解析与实战优化
2026/7/3 0:00:39

AI Agent五大设计模式解析与实战优化

1. AI Agent设计模式全景概览在智能系统开发领域,AI Agent的设计模式就像建筑师的蓝图,决定了智能体如何感知环境、处理信息并采取行动。从业五年来,我见证过太多团队因为模式选择不当导致系统重构的案例。最近在金融风控系统升级时&#xff…

阅读更多
iOS自动化测试:基于facebook-wda与weditor的稳定元素定位实战
2026/7/3 0:00:39

iOS自动化测试:基于facebook-wda与weditor的稳定元素定位实战

1. 项目概述:iOS自动化测试的“定位”之痛做iOS自动化测试的朋友,十有八九都卡在“元素定位”这个环节上。你兴冲冲地写好了测试脚本,结果一运行,要么是找不到元素,要么是找到了但点不动,要么是这次能跑通下…

阅读更多
基于Dify与DeepSeek构建私有知识库问答系统实战指南
2026/7/3 2:40:23

基于Dify与DeepSeek构建私有知识库问答系统实战指南

在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…

阅读更多
FAE放射组学分析工具:医学影像特征探索的完整解决方案
2026/7/3 4:59:02

FAE放射组学分析工具:医学影像特征探索的完整解决方案

FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE 你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…

阅读更多
DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!
2026/7/3 11:08:19

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖! 【免费下载链接】DesktopNaotu 桌面版脑图 (百度脑图离线版,思维导图) 跨平台支持 Windows/Linux/Mac OS. (A cross-platform multilingual Mind Map Tool) 项目地址:…

阅读更多