首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >蓝牙系统中蓝牙配置文件的定位

蓝牙系统中蓝牙配置文件的定位
EN

Stack Overflow用户
提问于 2017-03-06 13:27:33
回答 1查看 726关注 0票数 17

我的问题很基本,我需要知道蓝牙堆栈中装载的HID、HFP或HSP等蓝牙配置文件在哪里?它是在主机层,还是在蓝牙硬件芯片组,如USB /模块,还是主机和芯片组侧?

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

在BlueZ安卓软件包文档中有一句名言:“宽带语音支持在HFP中被要求BT芯片采用mSBC编解码器。”这意味着,只有当BT芯片组提供像mSBC这样的低级别支持时,主机层才能实现该配置文件。

我的回答是这样的:“如果BT芯片组配备了支持Profile 'X‘的底层固件,我们可以在主机层构建任何蓝牙配置文件,比如’X‘。”.Please同意或不同意我的理解。

我理解profile的位置及其低级固件的PFA图

我需要选择一个与树莓Pi兼容的USB蓝牙软盘,并使用BlueZ定制HID和HFP。

感谢所有聪明的人!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-10 05:39:28

基于在控制器和主机中实现蓝牙功能的数量,在系统中实现蓝牙功能的方式有多种。

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

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

我的回答是这样的:“如果BT芯片组配备了支持Profile 'X‘的底层固件,我们可以在主机层构建任何蓝牙配置文件,比如’X‘。”.Please同意或不同意我的理解。

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42626885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档