0

我正在尝试了解从蓝牙堆栈到 Android 蓝牙芯片的通信流程。我在这里找到了有关 Android 蓝牙的文档。但是,它没有详细描述通信,尤其是从蓝牙堆栈到芯片的通信。以下是我的问题:

  1. 与 BT 芯片及其流程的通信涉及哪些系统模块?

  2. HCI 在上述流程中的作用是什么?

  3. HCI 是否执行与蓝牙芯片的实际通信(命令和数据传输)?还是只执行记录通信(HCISnoop 日志)。

如果有人可以就我的查询提供清晰的解释或链接,我将不胜感激。

提前致谢。

4

1 回答 1

0

与 BT 芯片及其流程的通信涉及哪些系统模块?

通常,蓝牙堆栈(不仅是 Bluedroid)将通过 uart(嵌入式设备,如电话或车载设备)或 USB(大多数用于 PC)与芯片通信,然后在一个线程上用于从芯片读取(使用 H4 协议或 BCSP) ,我们可以把写线程当作一个线程(也是同一个协议)。流程就像初始化过程一样,蓝牙芯片上电(在Linux或Android上使用rfkill),堆栈将打开硬件接口,例如UART,写入一些配置文件(例如本地蓝牙地址)和补丁文件,然后热休息芯片。之后芯片和堆栈可以正常工作:正常:。

What is the role of HCI in the above flow?

我不确定您对“上述流程中的 HCI”一词是什么意思,我假设您是指数据流或其他东西?堆栈会判断从芯片发出的数据包类型,分为HCI事件、用户数据(L2CAP)或其他类型的数据包格式,然后将它们传输(回调)到上层,例如RFCOMM或AVDTP。另一方面,上层协议和配置文件将收集数据然后将其发送到蓝牙芯片。

HCI 是否执行与蓝牙芯片的实际通信(命令和数据传输)?还是只执行记录通信(HCISnoop 日志)。

HCI 实际上只是主机和控制器之间的接口,所以首先是的,它们的某些部分代码会在某处生成 btsnoop 日志,关​​于实际通信,您可以说它属于 HCI 部分(从代码角度来看),但您也可以说它不属于 HCI 部分(从逻辑角度来看)。

于 2016-09-12T04:54:07.423 回答