微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 为什么simpleBLEPeripheral与Android手机蓝牙4.0第一次通信慢?

为什么simpleBLEPeripheral与Android手机蓝牙4.0第一次通信慢?

时间:10-02 整理:3721RD 点击:

我是使用CC2541芯片运行例子simpleBLEPeripheral,作为终端从机,手机端开发的软件为主机,

操作步骤如下:

1、把手机蓝牙关闭(清除蓝牙之前连接的缓存),然后再打开(让蓝牙初始化完毕)。

2、运行simpleBLEPeripheral终端。

3、把手机慢慢的靠近终端,当手机扫描到的终端信号达到一定值时就建立连接通信,通信完毕断开连接。

4、通信过程使用抓包软件,抓取到的数据包如下图:

上面是第一次通信抓取的数据包,通信过程到断开连接需要700多毫秒(手机软件做记时),中间有比较多的通信数据包。

当不用关闭手机蓝牙第二次通信时,抓取的数据包如下:

终端与手机之间的通信过程就很快了,只需100多毫秒(手机软件记时),现在我就是不明白为什么第一次通信时中间需要传递那么多数据包,那些数据包有什么用的?能否去掉那些不必要的数据包,缩短两者之间的通信时间。不管第一次通信还是第二次通信如果通信保持在100多毫秒多好啊。希望TI工程师们帮帮忙,如何解决这个问题?

1、看了一下你的数据,有错误的答复,ATT_NO+FOUND(0X0A),可能与你模块的发射功率等有关,具体待查

2、设备广播与连接的流程如下图所示:

      

3、你可以使用bonding 试一下

4、我也坐等TI 相关FAE的答复,希望能增长点姿势^_^

不清楚,是不是第一次需要查找服务?以后就缓存了?

看一下连接流程吧,或许给你点启发

第一次连接主从设备之间通信环节就多了很多,不知道为什么多那些数据包,按我们正常理解应该是第二次连接后的通信数据包就可以了。

 顶起来,我这边也是手机与从机通讯,第一次连接相当慢,之后就快很多。也很纠结这个问题,希望TI工程师能够及时回复,解答,谢谢!

这个问题要顶!望TI的工程师们解答啊

是否还有回复?期待

楼主现在解决了这个问题了吗? 我也碰到这个问题了 跪求解决方案啊

我现在也遇到这个问题了,不过你说的ATT_NO+FOUND(0X0A)好像是正确的回应,不是出错回应

我也是有这个严重的问题,请问楼主解决了没,有没有什么方法

我的理解是:

就像人跟人第一次见面,需要相互介绍自己。而第二次见面,则不需要相互介绍自己。

手机在第一次与CC2541“见面”后,会把必要数据缓存下来。第二次则可以直接利用缓存数据进行使用。

如果你把手机的app缓存清除(关闭手机蓝牙开关,再打开手机蓝牙开关),则应该又会像第一次连接一样,需要“重新认识”一遍。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top