我用的蓝牙芯片是CC2540,用了write no response,notify方式等很多提高通信速率的方法,但目前Android到CC2540的速率只能达到2.8KBps,发送速率加快,将会出现丢包情况。CC2540到Android可以达到5.9KBps。IOS端速率基本在1.2KBps左右,无法达到更高速率,不知道为什么。
请问Android 端最大只能达到5.9KBps和 IOS最大只能达到1.5KBps,这些有没有什么文档规定??之前看TI的员工在论坛里说的 是什么规定限制了,请问能提供文档的链接吗??请TI员工帮忙回答一下。
Susan Yang:
您可以看一下
https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf
第23页
The connection parameter request may be rejected if it does not comply with all of these rules:Interval Max * (Slave Latency + 1) ≤ 2 secondsInterval Min ≥ 20 msInterval Min + 20 ms ≤ Interval MaxSlave Latency ≤ 4connSupervisionTimeout ≤ 6 secondsInterval Max * (Slave Latency + 1) * 3 < connSupervisionTimeout
1.5K左右是根据这些限制计算出来的
haha haha2:
回复 Susan Yang:
1、恩恩,这个文档我找到了。那个官方网站提到Android与2540直接速率能达到5.9KBps,目前我从2540发数据到Android能达到5.9K,但从Android发数据到2540速率在2.8KBps左右,Android端发送速率加快的话,2540会出现丢包情况(此处Android和2540我都采用的write no response方式才能达到这么大速率,但这种情况下,就不知道是Android没有发送成功还是2540没有接受到)。请问需要怎么配置才能使双向速率都达到5.9K呢?
2、目前单向速率计算的方式,是2540接收到第一包开始计时,接收完最后一包停止计时,这个时间内接收的所有数据。但实际上,从Android下发数据到 2540接收第一包数据之间有几十毫秒的传输延迟,请问这个延迟有没有办法缩小,或者需要配置什么吗?