微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2540与手机配对及连接参数更新时会连接超时问题

CC2540与手机配对及连接参数更新时会连接超时问题

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

背景:CC2540芯片,1.3.2协议栈(作从机),需要与IOS及安卓手机(作主机)对接,且需要实现配对。

IOS蓝牙版本4.2 ,测试APP:LightBlue

安卓蓝牙版本4.0 ,测试APP:TruthBlue

IOS方面:

严格按照IOS连接参数使其更新参数如下:

#define DEFAULT_DESIRED_MIN_CONN_INTERVAL    160

#define DEFAULT_DESIRED_MAX_CONN_INTERVAL   240

#define DEFAULT_DESIRED_SLAVE_LATENCY    4

#define DEFAULT_DESIRED_CONN_TIMEOUT   600

从抓包可看出可实现参数更新也可实现配对过程,用 APP测试通信正常,算是成功的。

安卓方面:

查阅相关文档,上述IOS的连接参数也是适用于安卓的,每个参数都没超出其范围,也满足:

Supervision Timeout  > (1 +slaveLatency)* (connectionInterval)

所以此处直接使用上述IOS的参数设置。问题来了,使用此参数进行配对时是无法配对成功:手机输入配对密码后一直显示“读取通道信息”,而CC2540则是收到返回值:GAPROLE_WAITING--等候连接超时。抓包工具也并没有抓取到成功更新参数的包。

几种测试排查结果:

1、如果去除配对功能,保留上述的的更新参数连接,却又是可以正常连接,也可以从抓包中看到参数是更新了。可以使用APP实现通信。但本系统需要用到配对功能。

2、如果保留配对功能,改动连接参数如下:

#define DEFAULT_DESIRED_MIN_CONN_INTERVAL    6

#define DEFAULT_DESIRED_MAX_CONN_INTERVAL   6

#define DEFAULT_DESIRED_SLAVE_LATENCY    0

#define DEFAULT_DESIRED_CONN_TIMEOUT   300

则是可以实现配对功能,但连接间隔太过短,不适合产品应用。

所要解决问题:

安卓方面的应用配对功能时连接参数是有更严格的要求吗?需要设置什么值才适合或者是要设置一个怎样的范围内呢?理论上不超出其各参数的值及上述的关系公式不就行了吗?求指导谢谢

首先建议更新协议栈版本,1.3.2比较老了,官网早就提供了新版本

安卓的具体配对参数,最好查一下官方的明确规定

考虑与以前的产品一致性问题,更新协议的方法放最后了。

目前跟踪代码发现,配对时有成功过(返回SUCCESS状态),但成功的瞬间又很快出现等候连接超时状态(GAPROLE_WAITING),如果再保持广播状态时,再过10多秒,又会重新配对成功(返回SUCCESS状态)。相当于自动尝试多次后就连接成功了。正常理应不会出现这现像的。

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

网站地图

Top