蓝牙应用、Profile、协议栈是什么?

摘要:liwen01 2025.11.09 前言 前面我们介绍的蓝牙核心系统架构、信道、跳频选择算法、状态、角色、地址可靠性和数据处理流程这些,都是比较偏底层的一些知识。 底层协议规范的制定、开发、验证是一项复杂的任务,首先是&#
liwen01 2025.11.09 前言 前面我们介绍的蓝牙核心系统架构、信道、跳频选择算法、状态、角色、地址可靠性和数据处理流程这些,都是比较偏底层的一些知识。 底层协议规范的制定、开发、验证是一项复杂的任务,首先是要传输比特,然后是数据包,这些数据包可能还需要重复传输。 数据包构成通信流的一部分,通信流可以进行复用和路由。通信流又可以使用不同的封装方式传输不同类型的信息,等等。 底层部分一般都是芯片原厂或是操作系统已经做好了封装,对于做应用开发的同学而言,它们都是透明的。 (一)协议栈 以我们常用的互联网为例,假设你的电脑通过以太网链路(网线/物理层)连接。 在 Windows 系统中,设备驱动程序负责管理这个物理层,并与名为 IP(也是 Windows 系统的一部分)的标准数据包级协议进行交互。 在 IP 协议之上,可以选择更高级别的协议来管理面向连接的链路(TCP)或原始数据包传输(UDP)。 然后,在 TCP 或 UDP 协议之上,标准化的接口(套接字)允许使用任何应用层协议,例如用于网页访问的 HTTP、用于邮件的 SMTP 等等。 如果你断开电脑的以太网连接(网线),它很可能会自动切换到附近的 Wi-Fi 网络。 从应用层来看,这种切换是透明的:除了性能方面会受到影响外,你的网络连接不会受到任何干扰,甚至 Windows 内部的 TCP/IP 层也不知道物理层已经发生了变化。 由于各层之间的接口定义非常明确,底层以太网层只是被对应的 Wi-Fi 层透明地替换掉了。 在这个例子中,HTTP 和 SMTP 帧通过 TCP/IP 协议和物理层发送。这对网络层和物理层来说是完全透明的,它们甚至不需要知道正在使用哪些应用层。 这就是协议栈的魅力所在:每一层都与其他层相互独立。 (二)经典蓝牙协议栈 (1)L2CAP 之下 从底层开始,物理层(PHY) 负责实际的调制,而基带层和链路管理协议(LMP) 层则负责所有射频链路管理任务:寻址、数据包帧格式、信道跳频、自动频率选择 (AFH)、同步、网络发现、加密等等。 链路管理层通过名为主机控制接口 (HCI) 的接口连接到逻辑链路控制适配协议层(L2CAP)。 (2)L2CAP L2CAP 层有两个重要任务:分段和复用。 分段意味着它可以接收来自上层的任意大小的消息,并将其分割成与底层兼容的小块。在接收端,它会检查所有数据块是否都已接收,并按顺序重新组装它们。 复用意味着来自上层的多个数据流可以在同一无线链路上进行复用;来自不同应用层协议的数据包可以合并到同一无线链路上。 (3)L2CAP 之上 在 L2CAP 之上,还有实际的蓝牙经典应用层。顾名思义,服务发现协议 (SDP) 用于发现给定蓝牙设备支持哪些服务。 RFCOMM 是最常用的蓝牙经典应用协议之一,因为它在控制器和遥控器之间提供了一种透明的 UART 连接。 最后,人机接口设备 (HID) 专用于键盘、鼠标和类似设备;PAN 提供网络仿真协议;AVP 支持立体声音频流。 (4)SCO SCO(Synchronous Connection-Oriented,同步有连接) 如果您再次查看上图,会发现图左侧有一个奇怪的SCO 音频,它贯穿了所有 LMP、L2CAP 和应用层。 这个 SCO 音频是历史遗留问题:在第一批蓝牙芯片出现时,微控制器是运行频率约为 1MHz 的 8 位 8051。这类处理器无法通过软件处理数字音频。 因此,完整的蓝牙协议栈仅用于建立连接,然后启用一个快速通道(SCO 音频)直接从基带发送或接收数字音频数据包,无需任何软件处理。 这些数据包随后可以通过 DAC 并发送到耳机。即使 32 位处理器不再存在此类限制,出于兼容性考虑,SCO 音频仍然存在。 当您打开蓝牙免提设备或耳机接听电话时,就会用到它。 (5)Profile 在应用层之上,还有所谓的蓝牙应用配置文件(Profile,上图绿色部分)。 应用配置文件本质上是一组指令,用于以特定方式使用给定的协议栈。 例如,基本图像配置文件 (BIP) 允许设备之间发送图像。BIP 规定必须使用 RFCOMM 协议来传输数据流,并具体说明了如何对图像进行编码、如何在需要时调整图像大小、如何通过 RFCOMM 虚拟 UART 发送图像等等。 (6)HSP 与 A2DP HSP(Headset Profile,耳机协议);A2DP(Advanced Audio Distribution Profile,高级音频分发协议) HSP使用 SCO 音频,主要用于耳机。它提供双向、全双工的单声道音频通道,但音质只有电话线那么好。 A2DP提供高质量的立体声音频连接,但只能单向传输。
阅读全文