我的问题非常基础。我需要知道所有蓝牙配置文件在蓝牙堆栈中加载了哪些HID,HFP或HSP?它是在主机层还是蓝牙硬件芯片组中,如USB加密狗/模块或主机和芯片组端?
根据我的理解,我们可以使用像BlueZ这样的软件包在主机端实现蓝牙配置文件,但同时连接到主机的蓝牙芯片组在其芯片组内需要某种固件和逻辑(如CSVD,A-law) 。
在BlueZ Android软件包doc中找到的引用:“HFP中的宽带语音支持要求BT芯片采用mSBC编解码器”。这意味着只有当BT芯片组提供像mSBC这样的低级支持时,Host层才能实现该Profile。
我的答案是这样的:“如果BT芯片组配备了支持配置文件'X'的低级固件,我们可以在主机层上构建任何蓝牙配置文件'X'。请同意或不同意我的理解
我理解的PFA图 Position of profile and its low-level firmware
我需要选择与Raspberry Pi兼容的USB蓝牙适配器,并使用BlueZ自定义HID和HFP。
提前感谢所有聪明的人!
答案 0 :(得分:1)
根据控制器和主机中实现的功能,有多种方法在系统中实现蓝牙功能。
因此,假设您要询问第三种类型。在这种情况下,您的假设是正确的。此处,所有配置文件仅在主机中实现。但是支持它们所需的协议/编解码器将在控制器(固件或硬件模块)中实现。例如,GAP(用于BR-EDR)在主机中实现,而加密和解密算法在控制器中作为固件或硬件模块实现。对于A2DP配置文件,音频编解码器/解码器将在控制器中实现。然后,BT芯片将该音频数据传输到具有I2S或其他协议的主机。对于BLE安全管理器配置文件,加密/解密算法在主机本身中实现,但是白名单,自动连接等将在控制器中实现。
我的回答是这样的:“如果BT芯片组配备了支持配置文件'X'的底层低级固件,我们可以在主机层上构建任何蓝牙配置文件,例如'X'。”请同意或不同意我的理解
对于BlueZ用例,这是正确的。您需要使用具有必需硬件功能(固件+硬件资源)的控制器。
对于方案1和2,配置文件和支持协议将在控制器中实现。