首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android系统中的蓝牙通信流程

Android系统中的蓝牙通信流程
EN

Stack Overflow用户
提问于 2016-09-11 01:15:04
回答 1查看 809关注 0票数 0

我试图了解从蓝牙堆栈到Android的蓝牙芯片之间的通信流程。我为安卓这里找到了有关蓝牙的文档。然而,它没有详细描述通信,特别是从蓝牙堆栈到芯片之间的通信。以下是我的问题:

  1. 与BT芯片的通信涉及哪些系统模块及其流程?
  2. HCI在上述流程中的作用是什么?
  3. HCI是否执行与蓝牙芯片的实际通信(命令和数据传输)?或者它只执行记录通信(HCISnoop日志)。

如果有人能为我的查询提供明确的解释或链接,我将不胜感激。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-12 04:54:07

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

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

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

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

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

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

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

https://stackoverflow.com/questions/39431990

复制
相关文章

相似问题

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