打印
[无线通信]

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

[复制链接]
1900|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
daiqh|  楼主 | 2017-6-5 09:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
背景: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

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

所要解决问题:

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

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

95

帖子

2

粉丝