Android 中的蓝牙通信流程
Bluetooth Communication flow in Android
我正在尝试了解 Android 从蓝牙堆栈到蓝牙芯片的通信流程。我找到了有关 Android here 蓝牙的文档。但是,它没有详细描述通信,尤其是从蓝牙堆栈到芯片的通信。这是我的问题:
与BT芯片通讯涉及的系统模块有哪些
及其流程?
HCI在上述流程中的作用是什么?
- HCI 是否执行与蓝牙芯片的实际通信(命令和数据传输)?或者它只执行记录通信(HCISnoop 日志)。
如果有人能就我的查询提供明确的解释或链接,我将不胜感激。
提前致谢。
What are the System modules involved in communication to BT chip and
its flow?
一般来说,蓝牙堆栈(不仅是 Bluedroid)会通过 uart(嵌入式设备,例如 phone 或 carkit)或 USB(最常用于 PC)与芯片通信,然后在一个线程用于读取来自芯片(使用H4协议或BCSP),我们可以将写入线程视为一个线程(也是相同的协议)。
流程就像在初始化过程中一样,蓝牙芯片将上电(使用 rfkill 例如在 Linux 或 Android 上),并且堆栈将打开硬件接口,例如UART,写入一些配置文件(例如本地蓝牙地址)和补丁文件,然后对芯片进行预热。之后芯片和堆栈就可以工作了:normally:.
What is the role of HCI in the above flow?
我不确定您所说的术语 "HCI in the above flow" 是什么意思,我想您指的是数据流还是其他?堆栈会判断从芯片发送的数据包类型,将其分为HCI事件,用户数据(L2CAP)或其他类型的数据包格式,然后将它们传输(回调)到上层,例如RFCOMM 或 AVDTP。另一方面,上层协议和配置文件将收集数据,然后将其发送到蓝牙芯片。
Does HCI perform the actual communication (command and data transfer) to the Bluetooth chip? Or does it perform only logging the
communication (HCISnoop log).
HCI 实际上只是主机和控制器之间的一个接口,所以首先是的,它们是某些部分代码会在某处生成 btsnoop 日志,关于实际通信,您可以说它属于 HCI 部分(从代码角度来看)但你也可以说它不属于HCI部分(从逻辑角度)。
我正在尝试了解 Android 从蓝牙堆栈到蓝牙芯片的通信流程。我找到了有关 Android here 蓝牙的文档。但是,它没有详细描述通信,尤其是从蓝牙堆栈到芯片的通信。这是我的问题:
与BT芯片通讯涉及的系统模块有哪些 及其流程?
HCI在上述流程中的作用是什么?
- HCI 是否执行与蓝牙芯片的实际通信(命令和数据传输)?或者它只执行记录通信(HCISnoop 日志)。
如果有人能就我的查询提供明确的解释或链接,我将不胜感激。
提前致谢。
What are the System modules involved in communication to BT chip and its flow?
一般来说,蓝牙堆栈(不仅是 Bluedroid)会通过 uart(嵌入式设备,例如 phone 或 carkit)或 USB(最常用于 PC)与芯片通信,然后在一个线程用于读取来自芯片(使用H4协议或BCSP),我们可以将写入线程视为一个线程(也是相同的协议)。 流程就像在初始化过程中一样,蓝牙芯片将上电(使用 rfkill 例如在 Linux 或 Android 上),并且堆栈将打开硬件接口,例如UART,写入一些配置文件(例如本地蓝牙地址)和补丁文件,然后对芯片进行预热。之后芯片和堆栈就可以工作了:normally:.
What is the role of HCI in the above flow?
我不确定您所说的术语 "HCI in the above flow" 是什么意思,我想您指的是数据流还是其他?堆栈会判断从芯片发送的数据包类型,将其分为HCI事件,用户数据(L2CAP)或其他类型的数据包格式,然后将它们传输(回调)到上层,例如RFCOMM 或 AVDTP。另一方面,上层协议和配置文件将收集数据,然后将其发送到蓝牙芯片。
Does HCI perform the actual communication (command and data transfer) to the Bluetooth chip? Or does it perform only logging the communication (HCISnoop log).
HCI 实际上只是主机和控制器之间的一个接口,所以首先是的,它们是某些部分代码会在某处生成 btsnoop 日志,关于实际通信,您可以说它属于 HCI 部分(从代码角度来看)但你也可以说它不属于HCI部分(从逻辑角度)。