微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 请教一下CC2540,手机应用App通信问题。

请教一下CC2540,手机应用App通信问题。

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

本人使用CC2540标准例程SimpleBLEPeripheral进行开发BLE控制设备,目前底层固件和通信命令已经使用TI提供的ios端lightblue软件测试通过,同时自己开发的ios端控制软件也调试OK,ios端数据通信正常;但是使用安卓端软件控制时,有明显的数据通信延时。

备注:安卓发包指令和相关数据通信结构和ios是一致的,同样的安卓软件用来控制其他BLE设备时,数据通信正常。

不知道是什么原因造成安卓端在我们现有设备上的通信延时。

另外,请问一下,安卓端有没有类似于lightblue一样的测试工具呀?

(1)看下那个有延迟的BLE设备与其他BLE设备的连接参数等有什么差异,同时需要注意ios和android的蓝牙连接要求要求也是不同的,对比一下。

(2)似乎还没有吧。

moon,

你可以可以用一下TI 的packet sniffer 抓包看看你的连接参数的情况,这个能一目了然。

hi, key

    首先我的ios和安卓端软件发包属性都定义为WRITE_NO_RSP,同时BLE设备端软件数据写入属性定义为GATT_PROP_WRITE_NO_RSP。

1、使用ios软件连接发送数据时,数据通信没有延迟;

2、同样条件下使用andriod软件连接发送相同数据,刚开始连接时,数据通信也是正常的,大概过了几秒钟之后,数据通信开始出现明显的延迟。

对比了一下其他BLE设备的连接参数,没有发现什么异常,另外,您提到的ios和android的蓝牙连接要求要求也是不同的,这个能明细一下嘛,我不太了解这部分差异。。

thanks。。。。

hi,Yan

    我用packet sniffer抓包的情况如下,但是不知是否正常。

貌似用packet sniffer抓包,很多数据包都捕获不到。

moon,

从这个图来看,都是正常的, 50ms的connection interval。

之后有没有connection update 的请求呢?

hi,Yan

    正常通信时的抓包截图:

异常数据通信时抓包截图:

我感觉像是手机软件的问题,不是我BLE设备底层软件的问题,您觉得呢?

参考附件P22,看到ios对连接时间参数要求相对较严。

手机对BLE设备发包一段时间之后,有connection update 的请求。

参考附件P22,可看到ios对蓝牙连接参数相对较严的。

hi,key

     thans~~

moon,

第912帧可以看到,这是slave发了connection update request了。

请求的connection interval最大是0x0320 (十进制800), 单位1.25ms,所以是 800 x 0.125 = 100 ms。

所以变大了。

所以你可以找一下代码里面什么时候会发送这个请求。

所以这应该就是原因了。

所以看你的了:)

安卓端软件发包属性都定义为WRITE_NO_RSP,这个在哪儿设置的? thanks!

我也在调这个,我想要10ms的通讯速度

hi,Yan

        问题已经解决,现在ios和安卓通信都正常了。

 

谢谢你的提醒。

hi, JOE2

   WRITE_NO_RSP在 simpleGATTprofile.c里面设置

 

  

3Q

请问你用的是哪个安卓软件啊?

我在ios 上使用,控制LED灯,发现有时候延迟300毫秒,有时候只延迟几十毫秒,感觉好像是模块端每隔300毫秒才描扫一下数据,不知道我的推断是不否正确,搞不懂到底是IPHone 端的问题还是模块端的问题 ,请教楼主是否知道解决办法?

hi,mai zi

     建议你抓包看看数据收发情况,同时手机端打开debug看看手机是否正常发包,然后模块是否收到并回应。

hi,chen

    我用的安卓软件是自己开发的。

你好!moon mike!我用lightblue测试正常后,想开发一下安卓的, 您开发的安卓软件 可否借我参考一下,  我的QQ:531374275

邮箱531374275@qq.com  万分感谢!

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

网站地图

Top