蓝牙配置文件在蓝牙系统中的位置

ABH*_*INI 17 bluetooth profiles

我的问题非常基础.我需要知道所有蓝牙配置文件在蓝牙堆栈中加载了哪些HID,HFP或HSP?它是在主机层还是蓝牙硬件芯片组中,如USB加密狗/模块或主机和芯片组端?

根据我的理解,我们可以使用像BlueZ这样的软件包在主机端实现蓝牙配置文件,但同时连接到主机的蓝牙芯片组应该在其芯片组内部需要某种固件和逻辑(如CSVD,A-law).

在BlueZ Android软件包doc中找到的引用:"HFP中的宽带语音支持要求BT芯片采用mSBC编解码器".这意味着只有当BT芯片组提供像mSBC这样的低级支持时,Host层才能实现该Profile.

我的答案是这样的:"如果BT芯片组配备了支持配置文件'X'的低级固件,我们可以在主机层上构建任何蓝牙配置文件'X'.请同意或不同意我的理解.

我理解的PFA图表 配置文件的位置及其低级固件

我需要选择与Raspberry Pi兼容的USB蓝牙适配器,并使用BlueZ自定义HID和HFP.

提前感谢所有聪明的头脑!

Nit*_*n P 1

在系统中实现蓝牙功能的方式有多种,具体取决于控制器和主机中实现的程度。

  1. 控制器中的所有内容 - 应用程序、上层堆栈、可能也可能不是 HCI(下层和上层堆栈通过 HCI 命令和事件进行通信)、下层堆栈。示例:大多数蓝牙鼠标、键盘等,其中单个控制器负责所有事情(蓝牙、RTOS/调度程序、控制设备中的 LED 等)
  2. 主机中的应用程序以及控制器中堆栈的下部和上部。可能会也可能不会在控制器中实施 HCI。示例:我们使用专用蓝牙芯片并将其与设备集成。这里设备将应用程序数据传输到专用蓝牙芯片。所有与蓝牙协议相关的事情都将由 BT 控制器/芯片完成。如果您将 HC-05 模块与 Arduino 模块一起使用,Arduino 会将串行数据传输到 HC-05 模块。
  3. 应用程序和主机中的上层堆栈以及控制器中的下层堆栈。Bluez、Bluedroid 和操作系统中的所有其他堆栈都属于这种类型。这将通过 HCI 命令和事件与控制器进行通信。例如:手机、电脑、带蓝牙功能的电视等(具有强大应用处理器的设备)

因此,假设您正在询问第三种类型。在这种情况下,你的假设是正确的。这里所有配置文件仅在主机中实现。但是支持它们所需的协议/编解码器将在控制器(固件或硬件块)中实现。例如,GAP(对于 BR-EDR)在主机中实现,但加密和解密算法在控制器中作为固件或硬件块实现。对于 A2DP 配置文件,音频编解码器/解码器将在控制器中实现。然后,BT 芯片通过 I2S 或其他协议将该音频数据传输到主机。对于BLE安全管理器配置文件,加密/解密算法在主机本身中实现,但白名单、自动连接等将在控制器中实现。

我的回答是这样的:“如果 BT 芯片组配备了支持 Profile 'X' 的下划线低级固件,我们可以在主机层构建任何蓝牙 Profile 'X'”。请同意或不同意我的理解。

对于 BlueZ 用例来说,这是正确的。您需要使用具有所需硬件功能(固件+硬件资源)的控制器。

对于场景 1 和 2,配置文件和支持协议将在控制器中实现。