This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于BLE最大最小连接间隔的疑问?

Other Parts Discussed in Thread: CC2540

两三年前,我在网搜索到说ios的连接参数需要满足下列要求,但是我现在实测iPhone5、6、7,最小间隔设置为6,最大间隔设置为9,把我们公司所以andriod和iPhone手机都试过一遍,没有发现什么问题,完全可以用呀。

我的问题是:

1. 是不是ios以前是那样规定的,现在发现不合理又改掉了?

2. 我把最小间隔设置为6,最大间隔设置为9有没有什么风险?

interval Max*(slave latency+1)<=2s
interval min>=20ms
interval min+20ms<=interval max
slve latency<=4
connsupervisiontimeout <= 6s
interval max*(slave latency+1)*3 < connsupervisiontimeout

  • 我现在的设置是这样的

    #define DEFAULT_DESIRED_MIN_CONN_INTERVAL 6 //最小连接间隔7.25ms
    #define DEFAULT_DESIRED_MAX_CONN_INTERVAL 9 //最大连接间隔11.25ms
    #define SEND_PACK_PERIOD 25//每25 ms 发送4个包的间隔时间
    #define DEFAULT_DESIRED_SLAVE_LATENCY 1 //Rang:0-499 越小通信速度越快,功耗越高;越大速度越慢,功耗越低越不易掉线

  • 你抓包看了连接间隔确实变了吗?

    很可能的情况是:设备请求更改连接参数,主机(手机)认为不符合参数要求,拒绝更改,然后选择的是默认连接参数。只是这个默认参数你也能用而已。

  • 我用SmartRF Packet Sniffer抓包看,弄了很久都抓不到,可能是我不会用。

    抓到的全部是绿色的Advertising Packet,怎么也抓不到黄色的L2CAP Packet

    37,38,39不同的通道都试过了,怎么这么难抓到,是不是因为我的连接间隔太短发是数据量太多,它不容易抓到

    还有SmartRF Packet Sniffer的过滤只能用等号,不能用大小于号,不好把离自己远一点的其它设备过滤,不好用

  • 终于抓到了,这个是连andriod手机的数据,一个notification包全部是0x80的是我的CC2540发的握手包。

    786行cc2540从机申请连接参数8,16,1

    794行andriod告诉cc2540我们执行连接间隔=16延迟=1

  • 这个IPHONE5连接我的CC2540从机的空中抓包图

    72行cc2540从机申请连接参数8,16,1

    77行ios告诉cc2540我们执行连接间隔=16延迟=1

  • 看这个抓包图,我从机设置的最小连接间隔6,最大9根本就没有在空间传输过,这是怎么回事?

  • 原来是个乌龙!我上午调试时把最小连接间隔8,最大16

    我已经把它改成6和9了

    这个附件是我的CC2540从机连接iphone5的空中抓包图,麻烦TI工程师帮我看看,ios同意了6和9这两个参数了没有,最终是按什么连接间隔在工作?谢谢!

  • 高手指点一下嘛,第一次用Sniffer,我下图这个备注对不对呀?

  • 没有高手给我一个明确的答复呀,基于风险考虑,我还是把它改回8,16吧。

    连手机就8,16了。

    连PC的时候,可以通过下发命令将连接间隔改为6和9,以实现更稳定的无线传输。

  • 这个是什么抓包工具?可以看出是主机发给从机的还是从机发给主机的,可以很明显的看出他们最终执行的间隔是0x19,比Sniffer好用呢